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

  • Parkview: Another great idea! Be handy to be able to purchase the corresponding SMD and TH sockets as well.
  • Ryan White: Second that. I'd love the option to extend this already awesome tool to RF cables, hoping it's already in the works because I know the...
  • Tom Keddie: Hi Ian, Congrats on the launch. Suggest you name all the CHRO connectors you have as female. It's not done often but you can insert...
  • Craig Hollabaugh: Excellent post! Thanks
  • Drone: We need RF/Coaxial cables with connectors. Pre-made custom RF cables/connectors are insanely high in price. We'll pay more for an option to sweep them.