Kittu20
Member level 2
Hello everyone,
I've read the I2C specification multiple times, but I'm still confused about how bus arbitration works.
Let's say we have three masters: A, B, and C. Initially, all three are idle, meaning their SDA and SCL lines are high. When they all want to control the I2C bus at the same time, but Master B pulls the SDA line first, gaining control. How do Masters A and C know that Master B has control of the bus?
What mechanism informs them? I've seen descriptions mentioning an AND-wired connection, but I only understand the operation of an AND gate. I don't understand how each master monitors the SDA line before generating the start condition
I've read the I2C specification multiple times, but I'm still confused about how bus arbitration works.
Let's say we have three masters: A, B, and C. Initially, all three are idle, meaning their SDA and SCL lines are high. When they all want to control the I2C bus at the same time, but Master B pulls the SDA line first, gaining control. How do Masters A and C know that Master B has control of the bus?
What mechanism informs them? I've seen descriptions mentioning an AND-wired connection, but I only understand the operation of an AND gate. I don't understand how each master monitors the SDA line before generating the start condition