I2Cv2 driver
Posted: Mon Feb 16, 2026 12:03 pm
Hi everyone,
I’m running into some issues with the I2Cv2 driver on STM32F769 in a high-noise I²C environment and would like some guidance:
1- When the driver receives a NACK, it stops communication on the bus and does not recover until I fully reinitialize the driver (calling i2cStart). Is it expected that recovery from a NACK should be handled at the upper layer, or should the low-level driver attempt automatic recovery?
2-Under very noisy conditions, I’ve observed bursts of interrupts that can trigger sometimes memory corruption (HardFault). I found a related issue in ArduPilot’s repository where they limited the number of isrs:
https://github.com/ArduPilot/ardupilot/pull/12896
However, this looks like an old workaround from 2019, and I haven’t found any equivalent fix in the current ChibiOS versions.
Has anyone here experienced similar behavior with the I2Cv2 driver?
I’m running into some issues with the I2Cv2 driver on STM32F769 in a high-noise I²C environment and would like some guidance:
1- When the driver receives a NACK, it stops communication on the bus and does not recover until I fully reinitialize the driver (calling i2cStart). Is it expected that recovery from a NACK should be handled at the upper layer, or should the low-level driver attempt automatic recovery?
2-Under very noisy conditions, I’ve observed bursts of interrupts that can trigger sometimes memory corruption (HardFault). I found a related issue in ArduPilot’s repository where they limited the number of isrs:
https://github.com/ArduPilot/ardupilot/pull/12896
However, this looks like an old workaround from 2019, and I haven’t found any equivalent fix in the current ChibiOS versions.
Has anyone here experienced similar behavior with the I2Cv2 driver?