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

Setting up the Oscilloscope

Use an oscilloscope to view entire frames of transferred data when debugging an I2C bus. Adjust the y-axis of an oscilloscope window such that the entire voltage range of the measured SDA and SCL signals are both viewable within the same scope window. Set up the x-axis of the oscilloscope window so that the following is clearly visible: the start condition, stop condition, and all address and data bits of a single frame. If possible, place the measured SDA and SCL signals directly on top of each other with a voltage offset in the oscilloscope window (doing this makes verifying the individual data bits easier to match to their corresponding clock pulses). Figure 3-1 shows an example of how an oscilloscope window screenshot looks.

GUID-20221012-SS0I-9F9J-H1XN-SWJGRDK9GVVS-low.pngFigure 3-1 Example of a Debugging Scope Shot by Looking at the Data While the Clock Period is a Logic High