SCPA063 March   2023 PCA9306

 

  1.   Abstract
  2.   Trademarks
  3. 1Introduction
  4. 2General Checks for Dealing With NACKs
    1. 2.1 NACKs
    2. 2.2 Check the Schematic
    3. 2.3 Double Check SDA and SCL Between the Controller and Target
    4. 2.4 RESET Properly Biased
    5. 2.5 Device is Soldered Properly
  5. 3Scopeshots
    1. 3.1 Why use Oscilloscopes for Debugging?
    2. 3.2 Setting up the Oscilloscope
    3. 3.3 Verify the I2C Address When a NACK is Received
    4. 3.4 Validate Start and Stop Conditions
    5. 3.5 Check the Byte Format
    6. 3.6 Are Rise Times Within I2C Standard?
    7. 3.7 Are the Sent Command Bytes Valid?
  6. 4I2C Switches
    1. 4.1 Stop Conditions for TI I2C Switches
  7. 5I2C Buffers
    1. 5.1 VoL versus ViLc of the Buffer
    2. 5.2 VoL of the Buffer Exceeds the ViL of the I2C Target
    3. 5.3 Static Offset of Buffers Cannot Connect to Other Static Offsets
  8. 6Checklists
  9. 7Conclusion

Why use Oscilloscopes for Debugging?

When debugging an I2C bus, an oscilloscope is better to use over a logic analyzer. This is because logic analyzers hide signal details that are critical to the I2C debugging process. Logic analyzers are designed to only display measured data as being either a logic high or a logic low. This is a feature that makes debugging I2C very difficult because I2C signals can hide certain properties of the signal in an I2C frame. Logic analyzers do not capture signal rise times, overshoot voltages, undershoot voltages, and voltage output low (VoL) values. All of these properties provide information that is necessary to debug an I2C system. Conversely, an oscilloscope, provides the ability to view the rise times, overshoots, undershoots, and VoL levels making debugging easier.