We are testing an I2C accelerometer connected to the ATMega32A micro-controller. The accelerometer was working fine. We can write and read the registers using I2C protocol. When connected to the oscilloscope, we find it very hard to decode the signals to normal value.
We are just writing a value
00001000) into the register
As per the I2C protocol, after the start condition we have to write SLA+W (slave address + write command). The 8-bit slave address with write command for the accelerometer is
I2C data must be like this
0 0 1 1 0 0 0 0 0(ack) 0 0 0 1 0 0 0 0 0(ack) 0 0 0 0 1 0 0 0 0(ack)
0(ack) is the acknowledgement of the I2C slave (accelerometer). Yet the signal we got from the oscilloscope gives no clue
The clock and I2C settings are as follows
- Controller clock: 4 MHz internal clock
- I2C frequency: 100 kHz
- Pull-up resistors: 4.7 kOhms
Here is the image of the I2C-clock (Yellow signal) and I2C-data (Blue signal) lines.
I really need someone's hand in it to help in decoding