I have some issues communicating with the MMA8653FC Accelerometer chip with I2C.
To keep it simple, for now I am trying to read the WHO_AM_I register
I took a look at the signal on the scope, and from what I can see its OK, but I am receiving 00 all the time.
- I am not sure if I need to activate the chip (from register 0x2A) before reading the WHO_AM_I but it seems to make a difference. If its activated I receive 0xFF, and if I don't I receive 0x00.
- I tried adding some delays, but I can't see any difference really.
- I compared my scope signal to a picture of what the WHO_AM_I reading process is meant to look like, and as far as I am aware it is OK
- My sequence is: Initialize I2C at 400Khz, activate accelerometer in register 0x2A, read from the WHO_AM_I register
- There is definately some communication, I receive Acks
- I am using a small board with our MCU on it, with wires that are a few cm long to a board with the accelerometer. I am happy to send you any schematics if it will help
- I know there is some overshoot on the screenshot of the scope, I soldered wires onto my board so I could attach my scope probes, I think its because of that.
I have used the same I2C drivers in a few projects now so I think they are ok. It is an ARM cortex M0
I really have no idea why it doesn't work - any one have any idea?