OpenCores

Arbitration error in (vhdl) version 1.17 of the i2c_master_bit_ctrl

Back to bugtracker overview.

Information:
Type :: BUG
Status :: CLOSED
Assigned to :: Richard, Herveille

Description:
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

Comments:

Wijsmuller, Arjen Feb 13, 2009
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
Herveille, Richard Feb 12, 2009
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

Post a comment:
Login to post comments!

Back to bugtracker overview.

© copyright 1999-2012 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.