Hello! The problem is related to I2C error called USCI30.
I am using MSP430F247. If it was working as I2C
master receiver, the workaround for USCI30 was implemented
and working well. Now I have to use the microcontroller as slave receiver.
Implementing USCI30 workaround when slave receiver
rises the question: how does the slave know when it is the
last byte to read? We must read the last byte immediately,
NOT stretching the clock for 3 periods after 7th clock pulse.
All other bytes before the last need the clock to be stretched.
I have also tried to stretch all bytes including the last, but it made
the I2C traffic unstable.
The master receiver always knows how many bytes he wants to read
and can find when is the last byte. Slave receiver does not know
generally the total count of bytes that the master wants to transmit.
What do you suggest?
Best regards,
Jüri Sheffer.