When does the (actual) clock synchronization in multimaster I2C bus take place? Is it always before arbitration?
It looks like sometimes clock stretching is called synchronization, but I got the impression from the I2C specs that clock stretching is just "adding wait states" by a slave, whereas the clock synchronization is done only between masters (the slaves don't generate clocks).
The I2C spec says:
"However, if another clock is still within its LOW period, the LOW to HIGH
transition of this clock may not change the state of the SCL line. The SCL line is therefore
held LOW by the master with the longest LOW period."
Also this suggests that the synchronization is only participated by the masters also participating the arbitration: "When all masters concerned have counted off their LOW period,..."
It looks like sometimes clock stretching is called synchronization, but I got the impression from the I2C specs that clock stretching is just "adding wait states" by a slave, whereas the clock synchronization is done only between masters (the slaves don't generate clocks).
The I2C spec says:
"However, if another clock is still within its LOW period, the LOW to HIGH
transition of this clock may not change the state of the SCL line. The SCL line is therefore
held LOW by the master with the longest LOW period."
Also this suggests that the synchronization is only participated by the masters also participating the arbitration: "When all masters concerned have counted off their LOW period,..."