We are using the hard I2C bus on a Q24 Plus to control a MCP23008 port expander. The I2C bus operates very strange because after every byte sent, the SDA line remains low and just before sending the next byte, the module issues a STOP-START sequence. This causes sporadic errors on the bus as the port expander loses synchronism - data is written to wrong registers and so on.
This mode of operation of the I2C bus is unusual and risky, apart from the fact that the SDA line remains low almost all the time, causing unnecessary current draw from the pull-up resistor. The SDA remains low even after unsubscribing/resubscribing from/to the bus.
Anyone experiencing the same problem? Is this a bug in the OS or are we using the API incorrectly? Any solution?