Protocol
- The protocol starts when a node’s SDA and SCL are both low. This node will then become the master, and is responsible for sending clocks
- The master must then specify which node to talk to during the slave address window. Usually 7 bits long.
During this time, SDA only changes when SCL is low
- A read or write bit is sent.
- 0 → Master wants to write data to slave
- 1 → Master wants to read data from slave
- A acknowledgement bit is sent in response
- 0 → acknowledgement (ACK)
- 1 → negative acknowledgement (NACK) This circuit is idle high, so no response will default to NACK
- The data byte is sent if the acknowledgement is 0. All subsequent data sent must also have acknowledgements.
- Stop condition occurs when both SCL and SDA remain high, signalling an idle bus.