Hi
IKA
Thank you very much for these guidelines, they are very helpful
So the new protocoal would be as follows:
Say that n masters see that SDA=1, SCL=1, i.e. the bus is idle, and they all try to get control of the line.
(is that how a master decides the the bus is free? by sensing whether both SDA and SCL are high?
If so, for how long does it keep sampling the lines to see they're still HIGH before deciding the bus is free? )
Before they attempt for a Start bit, each Master (that wants to take control of the line) needs to send:
1st highest priority master sends - 0x00 - 0000-0000
2nd highest priority master sends - 0x01 - 0000-0001
3rd highest priority master sends - 0x20 - 0000-0011
4th highest priority master sends - 0x40 - 0000-0111
...
8th highest priority master sends - 0x80 - 0111-1111
and so on.
At each bit's transmission, the master should check the if the value of the SDA is the value of the bit it transmitted.
And only then, the Master with the higher priority will be able to send the START BIT.
Is that what you meant?