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.

MSP430F2619: Erratum USCI25 I2C in Master Transmitter - Erratum is not complete

Part Number: MSP430F2619

I think this is more information than a question. I am using an MSP430F2619 with the I2C protocol. I have USCI B1 setup for single master mode, and there is a single slave. In a case where the I2C communications fail, subsequent communications fail no matter what the slave does.

This is inline with USCI25, which states "TXIFG is not reset when NACK is received in I2C mode. When the USCI_B module is configured as an I2C master transmitter the TXIFG is not reset after a NACK is received if the master is configured to send a restart (UCTXSTT=1 & UCTXSTP=0). Workaround Reset TXIFG in software within the NACKIFG interrupt service routine."

I implemented the workaround and the I2C still did not recover properly. What I observed through the debugger is that if a NACK was received in the above conditions, then the UCTXSTT and UCTXSTP bits were not cleared. Upone reentry to run the I2C, the subsequent sequences were ignored and the module would not send or receive any data, including the slave address.

I added a line that clears the start and stop bits along with the TXIFG. After doing this, the I2C communications properly recovers and works the next time it is used. I am not sure if this is a different erratum or along the same erratum as USCI25, but that is what I observed and what I did to workaround it.

P.S. All flags are polled. There are no interrupts for the I2C communications.

  • Hi Ivan

    Thanks for your information sharing and glad have already have the workaround on "TXIFG is not reset when NACK is received in I2C mode" issue related with USCI25. I am looking in detailed and check if the Errata description needs to be updated. But, Thanks again for your sharing and I think it should be helpful on ours MSP430F2619 I2C user.