Sebastien Lorquet email@example.com [nuttx]
2018-01-22 17:30:38 UTC
While upgrading our codebase from 7.20 to 7.23, i2c has stopped working. We have
a PCA9555 on the bus and also an EEPROM, all running at 400 khz
The behaviour is as follow:
* normal case: I2C_TRANSFER fails with -62 (ETIMEDOUT)
* add some i2c_debug messages: it works.
So, something is going TOO FAST and that triggers a timeout indication. Or that
is the symptom. I know that nothing is simple in stm32 i2c.
After loosing time finding what damn i2c driver is really used for the
stm32f427, I noticed a lot of changes recently in stm32f40xxx_i2c.c
Important: Reversing to the driver shipped in nuttx 7.20 fixed the project.
I have no time yet to bisect the problem, but I invite anyone to be aware that
in certain conditions, in the master branch, this i2c driver is broken.
I would be glad if anyone had a starting clue about what could have caused it to