AnsweredAssumed Answered

Hardware I2C buffering question

Question asked by peter on Sep 23, 2013
Latest reply on Oct 1, 2013 by peter
I am working with an STM32L151xC, and I'm building a bridging between an USB and an I2C interface.
Since they have different time constraints, I came up with some issues I'm not familiar with.

To read out data from my I2C device, I first send the address (and read bit) and wait for an ACK from the device. Then I want to read out the rest of the data.
However, since there is USB communication involved, there is a 1ms delay between the address, and the reading of the data.

The thing I've been seeing, is that after I send the address with read bit, the controller immediately starts reading two bytes, then 1ms later, when I ask for it, it reads out the rest.
Oddly enough, the two bytes that were read out earlier come up correctly 1ms later, so it is working allight.

Is this behaviour normal? Why are those two bytes read out automaticly, and why exactly two?
Can this be dangerous for stability, and is there a way to prevent this from happening?

Sincerely,
Peter

Outcomes