I'm currently working on rewriting some of the code on my I2C driver, and I'm trying to figure out the exact purpose of the STOP condition.
I believe that on a multi-master system, once a START condition has happened, the other masters can't/shouldn't drive the bus until a STOP has happened.
- But what about on a single master system?
- Does the STOP condition have any function? What exactly does it do?
- Because the I2C bus works DC-x Hz, couldn't you just keep doing start conditions and re-start conditions any time you need to send data?
- What does doing the STOP at the end give you?