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.

I2C Errors: SDA and SCL lines held low during read

Other Parts Discussed in Thread: MSP430F2132

We have been using I2C bus communication to communicate between an MSP430F2132 and a gyro, accelerometer, and led controller.

Currently, when the MSP430 is programmed to communicate with either the gyro or the accelerometer the SDA and SCL lines will be held low during a read after an arbitrary number of communications.

The MSP430 chip that we are using is:

MSP430

F2132

TI OAKB

EEVO G4

We believe the problem is related to the silicon errata detailed on page 10 of the following document http://www.ti.com/lit/er/slaz041d/slaz041d.pdf

We have not been able to figure out the workaround. We are trying to determine if our problem is actually caused by the silicon errata (is there a test to be sure that this silicon errata is in fact our problem?) and if there is a reasonable way to solve the problem. Relevant code can be provided if it is needed.

Thanks for your help.

  • Yes, USCI30 is a possible reason for your problem. If you detect it (e.g. by installing a watchdog timer for a communication timeout), you may reset the USCI by setting UCSWRST and start again.
    Or by ensuring that you service the read interrupt immediately (may be difficult if oyu have multiple interrupts active and long and slow ISRs or run MCLK at a slow pace comapred to the I2C clock). Or by lowering the I2C frequency, so you have more time.

**Attention** This is a public forum