Categories

The point of I2C NACKs

Posted on Monday, August 17th, 2009 in Bus Pirate, Development by Ian

nack

The logic analyzer output above (top continues on the bottom) shows the Bus Pirate I2C address scan function. The Bus Pirate sends a DS1307 I2C read address. After the DS1307 ACKnowledges the address (bit 9), it immediately starts sending data to the Bus Pirate and ignores the I2C STOP sequence sent by the address scanner. This caused extra I2C addresses to appear at random.

This is the purpose of the I2C NACK bit that concludes a transfer from the slave IC to the master device. If the master ACKs the last byte and then attempts a STOP condition, the slave might put a 0 on the data line that blocks the STOP condition. If the master NACKs the last byte then the slave IC gives up and everybody exits cleanly.

Read more about this issue here, updates will be in the nightly compiles in a few days.

This entry was posted on Monday, August 17th, 2009 at 2:46 pm and is filed under Bus Pirate, Development. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Recent Comments

  • Barry: Maybe not to late Need new project Free PCB Sunday
  • Larry Couvillion: Please oh please oh pretty please!!!!
  • Clay: Here we go again.
  • Ross Potts: Please oh please oh please!!!!
  • Joe: Another Sunday giveaway.