Hi,
I have a customer asking the following question, since I'm a analog FAE, I need the assistance of the ARM processor forum.
"I am trying to read two bytes from the I2C_DATA register. Our uP is very, very quick and seems to get back to read that second byte before the register is ready to be read, resulting in a double read sometimes (same byte twice) or an AERR (access error). This is despite RRDY being set (implying I can do a read). My Rx FIFO size is 2 bytes.
How can I tell if the I2C_DATA register contains the second byte and is ready to be read from?"
My own view is that there should be a interrupt buffer flag in the TRM. He should setup a byte counter. Once data comes in the uC and fully completes. Service the ISR, pull the data out, and reset the flag. Do it until all bytes are read.
Please confirm if this is the right line of thought as I'm more familiar with a current probe than an interrupt handler in the A8 architecture.
Thank you in advance.
Best Regards,
Wallace