Hello Richard,
We updated our code to the latest available on the web: i2c_master_bit_ctrl (vhdl) 1.17
However, it appeared that arbitration is going wrong. We have a test case where 2 instantiations from the i2c_master tries to access the same serial eeprom. The master that starts first, aborts with an AL error at the moment that the second master is accessing the bus.
We switched back to version 1.14, and arbitration is OK now. The second master aborts due to an AL conditions, and the first master can finish the access properly.
If you wish, I can send you the waveform.
Regards, Arjen Wijsmuller
This might actually be the correct behaviour. Arbitration lost is asserted when a master wants to drive SDA high while another one pulls it low. The master wanting to drive high then loses arbitration.
If you send me the waveforms then we can check if this is the correct behaviour.
Richard
Richard,
I think this is a typically example of user error :-) I should have waited for the busy bit to negate (SR bit 6), before I started an access on the 2nd master.
Doing this, solves my problem. As far as I'm concerned, you can close this bug.
Regards, Arjen Wijsmuller