• 0
Sign in to follow this  
kdumont

I2C ACK before STOP bit

Question

I'm using Waveforms with the AD2 device to do some I2C debug. I'm running into an issue where my slave device hangs because the AD2 master doesn't ACK the final data transmission before sending the STOP signal. I believe it is supposed to per the I2C spec. 

image.png.c17a9075eb381ab421220f372f7e0614.png

image.thumb.png.8b9ab089a345a9b924d811daf1886ded.png

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Hi @kdumont

According the I2C specs the address and written bytes are acknowledged by slave.
The read bytes are acknowledged by the master except the last byte before stop.

A master-receiver is done reading data and indicates this to the slave through a NACK.

Share this post


Link to post
Share on other sites
  • 0

@attila thanks for pointing that out. I was mistaken.

Still, it looks like the device I'm working with does require an ACK even after the final byte (this is because the transfer length is always the same - 3bytes). Is there any way we could get an option to modify this in Waveforms?

It's a TI device, so this is a surprising behavior. I'm working with them to see if we can change it on the device in the future. However, in the meantime this would be helpful.

 

~Kyle

Share this post


Link to post
Share on other sites
  • 0

@attila Yeah, I saw that as well. I'm not sure if this is a common behavior or not, but this is what they call out in the spec and confirmed by their FAEs. It would certainly help me out to have that option.

image.png.b0fa6b31dd482e915f7e79455113337c.png

~Kyle

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this