Hi,
I'm seeking clarification on the I2C specification UM10204.
If a controller I2C device is communicating with a first I2C target (S, Addr1+w) and then - instead of continuing the communication with the first target - starts communicating with second I2C target (S, Addr2+r/w), how will the first target device handle this? Will it be able to take up the transaction when the controller addresses it again?
For example if a target device specifies a transaction as follows:
<S><Addr,w><Data><Data><S><Addr,r><data><P>
^
Can the transaction be interrupted here ^ and, e.g., <S><Addr2,w><data> inserted?
One could argue that the transaction with first target is not carried out to specification and not cleanly terminated by Stop condition. However, if first target ignores all messages to other I2C addresses, the transaction is complete.
I could not find anything in the I2C specification regarding this situation. All I found was this note:
"I2C-bus compatible devices must reset their bus logic on receipt of a START or repeated START condition such that they all anticipate the sending of a target address, even if these START conditions are not positioned according to the proper format."
And comments are appreciated.
Thanks.
Daniel