HI,
if more than one master is connected on same I2C bus and configured with different clock speed how it works at that time.please explain
Regards,
siva
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
HI,
if more than one master is connected on same I2C bus and configured with different clock speed how it works at that time.please explain
Regards,
siva
Hello Siva,
The way multi master arbitration works, is that when a master is transmitting a signal, any device transmitting a low while a high is being transmitted by another master will have a higher priority.
For example, since I2C is an open drain interface, this means that a device can only pull the bus to ground, but to cannot pull the bus high. Instead, it 'releases' the line (you can think of a switch internally that shorts the bus to ground is used to transmit a 0), and a pull-up resistor on the bus is able to pull the line high. In short, this means that if one device is "transmitting" a high (by not pulling it low and letting the pull-up resistor keep the voltage high), and another device transmits a 0, the bus will get pulled to 0.
Because of this, multi-master arbitration looks for data on the line to be different than what it expects to determine if it has won or lost arbitration.
Let's use the example where two masters communicate at the same time. First bit is a 0 for both. For the second bit, master A transmits a 0 and master B "transmits" a 1 (releases the bus). Master B will see that the voltage on the bus is not high like it expects, and assumes that another master has won arbitration, therefor it will stop transmitting immediately and let Master A continue.
Hi,
Thanks for your reply. But my question is when two master trying to transfer the data at same time and different clock rate.assume one is 100khz and another ia 400khz.which clock will be in sclk bus line till any one get wins?