This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

5505 I2C Peripheral - can it clear a stuck slave device?

Hi all,

I'm wondering if there's any way the I2C Peripheral of a 5505 DSP can clear a slave device that is stuck waiting for more clocks to complete a transaction.  Without going into the whole background of why this occurs, it would definitely be beneficial to be able to do this.  I've read about devices that use GPIO to control I2C transfers and the procedure given is to:

* Check status of SDA line

* If SDA is low, send a clock (low-hi-low)

* Repeat 2 steps above until SDA goes high

* Send a STOP condition

 

I don't believe this can be done, but perhaps someone has worked through a solution using a similar method.  And just to reiterate: I do not have GPIO connected to the I2C bus, just the standard SDA SCK lines that are part of the I2C peripheral on the 5505 DSP.

 

Thanks in advance for any insight.

Rich

  • Rich,

    The method you described above can be used if I2C bus is muxed with GPIO pins (internally or externally). 

    The C5505 has a dedicated I2C bus which cannot be configured as GPIO, so I can't think of a way to issue clocks while SDA is held low by a slave device unless the I2C bus is muxed with GPIO pins externally in your board.

     

    Regards,

    Peter Chung