Here the protocol is described: https://docs.rust-embedded.org/discovery-mb2/12-i2c/the-general-protocol.html
- Should a single image be used? The same one is repeated.
- Here is an image of what they say vs your description (text):
- Controller: Broadcast START
- C: Broadcast target address (7 bits) + the R/W (8th) bit set to WRITE
- Target: Responds ACK (ACKnowledgement)
- C: Send one byte
- T: Responds ACK
- Repeat steps 4 and 5 zero or more times
- C: Broadcast STOP OR (broadcast RESTART and go back to (2))
It seems to me that the SUB-ACK is missing, and this would rather be:
- Controller: Broadcast START
- C: Broadcast target address (7 bits) + the R/W (8th) bit set to WRITE
- Target: Responds ACK (ACKnowledgement)
- C: Sends SUB
- T: Responds ACK
- C: Send one data-byte
- T: Responds ACK
- Repeat steps 6 and 7 zero or more times
- C: Broadcast STOP OR (broadcast RESTART and go back to (2))
The "repeat" is not allowed unless SUB uses MSB=1. Something similar happens for read.
Here the protocol is described: https://docs.rust-embedded.org/discovery-mb2/12-i2c/the-general-protocol.html
It seems to me that the SUB-ACK is missing, and this would rather be:
The "repeat" is not allowed unless SUB uses MSB=1. Something similar happens for read.