This patch fixes hangs that can occur with certain I2C devices. These where observed in a weather station running a Metro M4 Express. It uses a number of I2C sensors including HM3301 particle monitors (with 29 byte responses) and a PCA9615 bus extender. I was having hangs about once a day. Using the Watch Dog Timer, I was able to locate places where the code was not check for other error conditions while waiting for the SERCOM I2C controller. These fixes have eliminated these hangs.
This patch fixes hangs that can occur with certain I2C devices. These where observed in a weather station running a Metro M4 Express. It uses a number of I2C sensors including HM3301 particle monitors (with 29 byte responses) and a PCA9615 bus extender. I was having hangs about once a day. Using the Watch Dog Timer, I was able to locate places where the code was not check for other error conditions while waiting for the SERCOM I2C controller. These fixes have eliminated these hangs.