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?
SW engineer at Beenetic Systems.
-I would suggest you to move your question into i.MX community so it get's more visible for the relevant group of people. If you just place it into the general community it might happen that none of the specialists will notice it.
Placing the question into the right community increases the chances to get answers.
You can do so by editing your question and at the bottom switching to In Place and choosing the i.MX community.