Hi All,
I'm seeing the following condition with my iMXRT1062 I2C-Master communicating with a Cypress PSOC3 slave.
During a read command that the master sends. The slave ACKs. But SDA is held low. And the master kicks off a kStatus_LPI2C_ArbitrationLost error.
I understand the NXP LPI2C API will register an ArbitrationLost event when "SDA is sampled as low when the master drive high during an address or data transmit cycle". Which appears to be the case here. But I'm hoping someone has insight into how this condition is being created in the first place.
Hi Mike Spenard ,
You said your RT I2C master get the ArbitrationLost event, do you mean when you send 0X77+read?
From the RT1062 reference manual, we can find this information:
I think, before you send the I2C data, you'd better to clear the ALF flag at first, then send the data, whether you still have the problem, actually, when send the bit 9, the master will pull it as high, then if ACK, the slave will pull it low, otherwise, it will get the NACK.
When you write the read data, it get the ArbitrationLost event, now the master stop or not?
Can you share more wave about it?
BTW, do you refer to the RT I2C SDK code on your side, if you use the official code, whether you still have problems or not?
Wish it helps you!
If you still have question about it, please kindly let me know.
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------