AnsweredAssumed Answered

ADXL346 I2C problems (NACK no ACK from slave)

Question asked by percep on Apr 29, 2012
Latest reply on May 1, 2012 by percep



I am trying to talk to ADXL346 with no success. After issuing read on register 0x00 using ADXL alternative address 0x53 (ALT ADDRESS tied to GND) I am getting NACK not ACK as if slave did not answer. This is shown on the first picture take from my logic analyzer (346-LA.jpg).


I have ADXL345 on a breakout board as well which work without any problems. The difference is that ADXL345 CS line is tied to Vcc via 10k resistor and on my ADXL346 I don't have such as doco sheet for ADXL346 does specify that CS should be tied to Vs. Picture 345-LA shows correct read and the response.


On my oscilloscope I compare SDA between ADXL345 and ADXL346. Full wave is shown on 345-CRO.jpg and for ADXL346 on 346-CRO.jpg The first part of the communication - just issued read is show on 345-Read.jpg and 346-Read.jpg. The difference between them is on  345-Live-346-MaskBlack.jpg. The black trace on this photo is from 346.


I have assembled for the first time three of 346 and used re-flow oven. All three exhibit the same behavior of getting NACK instead of ACK, There is a possibility that I have overcooked them but this is unlikely as I have MCU and FET power switch also from AD and they work. So I am thinking that this is some systematic error.


For example I don't know why two different ICs have the same I2C slave address. I know that it is unlikely 345 and 346 will be put on the same bus but since they are two different parts in my view they should have different slave addresses assigned to the. The data-sheets state that they are the same in both cases.


The electrical properties of the bus are the same which is confirmed by doing mask test except the extra hi on the bus (black trace) in case of 346.

I wish I have method of knowing if the 346 is alive or dead but to do this I need comms working.


I have red two post on this forum. Earlier post ( had similar problem but the answer is very general to test pull-up and pin settings.I went through this few times.


View of my test breadboard with 346 on the left and 345 on the right is shown on 346Left-345Right.jpg


I don't have much experience in I2C and went back to electronics after 20 years so at this stage I don't know what this can be and any suggestion from you will be much appreciated.