Electronic – Why can’t masters talk to each other in a I2C bus

busi2c

I came across an I2C article which lead me to a question. Specifically this part is creating some confusion:

"Also, unlike SPI, I2C can support a multi-master system, allowing more than one master to communicate with all devices on the bus (although the master devices can’t talk to each other over the bus and must take turns using the bus lines)" Sparkfun

Why can't masters talk to each other in a I2C bus if you supposedly have an unique address bit for each of the devices connected to it?

Best Answer

A master starts a transaction by outputting the clock signal and the slave address.
A slave starts a transaction when it detects a clock signal and its own slave address.

Only one device can control the clock. Therefore, an I²C transaction always must be between a master and a slave.

It is possible for multiple devices to talk to each other while initiating transactions on their own, but this requires that they stay in slave mode while idle and listening, and switching to master mode only when they want to start a transaction.