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 Data line held low

I have a strange problem where the I2C data line is being held low, this obviously stops all communications on the bus. I cannot recover from this situation and there doesnt seem to be any common cause for this event occurring.

The data line has been set to open drain and has 10k pull ups, as does the clock line. Im unsure if its the micro or the device holding it low. (device = PCF8575).

If anyone has experienced this problem or have any ideas for a reason or solution, i would be greatfull.

Parents Reply Children
  • Have you verified your signal integrity? With bad signal integrity, it isn't uncommon for a connected device to clock wrong, so at the end of a transfer, it is hung still emitting a data bit.

    I don't know for the built-in I2C controller in your chip, but in some situations, it may be needed to reconfigure the processor pins as normal outputs, and tick out enough clock pulses to get the device into a stable state. Then you can reactivate the I2C controller and restart the failed operation.