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

Are Rise Times Within I2C Standard?

Rise time in I2C is defined as the time taken for the I2C signal to transition from a logic low to a logic high. The minimum value for a logic high in the I2C standard is defined as 70% of VCC; the maximum value for a logic low in the I2C standard is defined as 30% of VCC. Therefore, measure rise time as the time for the I2C signal to transition from 30% of VCC to 70% of VCC. Figure 3-5 shows an example of SDA, SCL during the rise transition. Use an oscilloscope to measure rise times for both the SDA and SCL lines on the I2C bus.

GUID-20221012-SS0I-X9VC-RLHL-HP70X1F8V0CH-low.svgFigure 3-5 Example of Rise Time

When debugging an I2C bus, verifying that the rise time does not exceed the maximum rise time requirement for the frequency that the I2C bus is operating at (see the table in Figure 3-5) is important. Rise times over the limits outlined by the I2C standards can cause bits of data to be unintentionally removed from a data transfer frame (for each ACK bit from the target, there should be 8 bits sent from the controller). Bus capacitance and pullup resistance are both factors that can affect rise times, so check these two parameters whenever you run into issues with your rise times being over the allowed limits (see the I2C Bus Pullup Resistor Calculation application note for more information on how pullup resistance and capacitance can be used to calculate rise times).

Figure 3-6 shows an example where the rise time exceeds the maximum specified by the I2C standard.

GUID-20221012-SS0I-X2ZL-6XLN-5ML4LK8D3V5R-low.pngFigure 3-6 Out-of-Specification Rise Time Example

Figure 3-7 shows an example where the rise time is compliant with the I2C standard.

GUID-20221012-SS0I-PT9T-R0FT-PDPCG1RH8PQV-low.pngFigure 3-7 Rise Time Within Specification Example