I,
We are building a solution with MMA8451Q accelerometer and MC1322x.
I2C bus is used between 8451 and 1322.
I’m having problems reading MMA8451 registers.
When I attempt reading 8451 WHO I AM register (address 0x0D), I always go a wrong value (different from 0x1A).
I had a look to Freescale community and I found that a repeated Start method must be used to read 8451 registers (https://community.freescale.com/message/348167#348167).
I thought I was using this method when transfer mode is set to gI2cMstrHoldBus_c in the I2c_senddata function call.
What I discovered is that frame sent on I2C bus is the same if I use gI2cMstrHoldBus_c or gI2cMstrReleaseBus_c I2C transfer Modes. (see attached images)
Which function or Option Should I use to generate a repeated Start?
Best regards.
Fabrice Tocci
SW engineer at Beenetic Systems.