This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

I2C bad clock stops transmission

I'm using ADuC7026's I2C to interface with AD5254 (digital potentiometer). Every once in a while, I get a bad pulse on the SCL line, and the AD5254 does not acknowledge the byte. The bad pulse is essentially a pulse that only rises 40-50% of the normal logic level (3.3V). Subsequently, the SDA line remains low, and I must do a hard reset of the micro to get the line back to it's high logic level.

This condition seems to occur more frequently when I'm interfacing with a host PC through the ADuC7026's serial port.

Any help would be appreciated.
Matt.

Parents
  • I will attempt to implement this recovery routine, thanks for the heads-up.

    But to further diagnose where the source of the problem is, how could I post a screenshot from the oscilloscope showing the i2c lines? What i'm seeing is that one of the clock pulses rises to approximately 1.5V, then gets pulled low immediately. Normally, clock pulses rise to 2.85V (using a 3.3Vcc system). As I understand, the SCL line is wired-AND.

Reply
  • I will attempt to implement this recovery routine, thanks for the heads-up.

    But to further diagnose where the source of the problem is, how could I post a screenshot from the oscilloscope showing the i2c lines? What i'm seeing is that one of the clock pulses rises to approximately 1.5V, then gets pulled low immediately. Normally, clock pulses rise to 2.85V (using a 3.3Vcc system). As I understand, the SCL line is wired-AND.

Children