Should I2C Master ACK after last byte in read sequence?
![DavidZemon](https://forums.parallax.com/uploads/userpics/876/nWSV4UHX2JZ2M.jpg)
I've never dived into the I2C protocol too much. However, I started doing a bit of a dive recently and noticed that I have some code in PropWare which is sending a NACK instead of an ACK after the last byte that a master reads. This seems crazy to me. Why would the master ever be coded to explicitly send a NACK? Here's an example:
![i2c_no_ack.png](/discussion/download/118936/i2c_no_ack.png)
And this read sequence returns 0x01 to the calling function, so the master is indeed reading the value from the slave correctly.
![i2c_no_ack.png](/discussion/download/118936/i2c_no_ack.png)
And this read sequence returns 0x01 to the calling function, so the master is indeed reading the value from the slave correctly.
Comments
-Phil
It will probably make problems when the master just sends a stop-condition, because the write method does not expect it.
Since this seems like a reasonable thread to grumble about it, I'll also add I've been surprised how often I seen clock stretching in Wii controllers.
http://forums.parallax.com/discussion/comment/1388668/#Comment_1388668