Should I2C Master ACK after last byte in read sequence?
DavidZemon
Posts: 2,973
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:
And this read sequence returns 0x01 to the calling function, so the master is indeed reading the value from the slave correctly.
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