Monday, March 18, 2013

i2c and repeated start

Note : 04 April 2016 : I2C repeated start transfers have been supported by the kernel device drivers for some time. Explicit support has been added to the HiPi modules with Release 0.46 

The module version 0.22 had some timing issues with the hardware ( susceptible to hangs under high load ) .

HiPi Modules version 0.23 has been released with appropriate fixes.

For info I have three main i2c devices that I have used for testing the latest release. The MCP23017 port extender has been tested at 1MHz, 400Khz, 100KHz and 32KHz with the system under both heavy and light load using full 22 byte reads and writes.

The MPL3115A2 pressure and temperature sensor that requires the repeated start operation has been tested at 1MHz, 400Khz, 100KHz and 32KHz with the system under both heavy and light load using 24 byte reads and single byte writes.

I also have an ADC from UK supplier HobbyTronics that employs clock stretching. I need to run the bus at 32KHz for this controller to work but it too has no problems at that speed.

It all seems good now.