Block reads can be performed from pre-defined addresses. A special command code has been reserved for each pre-defined address. See the Section 6.3.1.5.2 for more details on the command codes. Below is the sequence of events that occur for this type of block read:
- The master sends a START to start this transaction.
- The master sends the 7-bit slave address followed by a write bit (low).
- The slave asserts an ACK.
- The master sends a Fixed Block Command Code (F2h-FDh) and the slave asserts an ACK.
- The master sends a repeated START.
- The master sends the 7-bit slave address followed by a read bit (high).
- The slave asserts an ACK.
- The master receives the Byte Count (depends on the Fixed Block Command Code used) and asserts an ACK.
- The master receives the first data byte and asserts an ACK.
- The master continues to receive data bytes and asserting an ACK.
- The master receives the last data byte.
- The master asserts a NACK.
- The master issues a STOP to end this transaction.
1 | 2 | | 3 | 4 | | 5 | 6 | | 7 | 8 | | 9 | | 10 | 11 | 12 | 13 |
S | Slave Address | W | A | Fixed Block Command Code (F2h–FDh) | A | S | Slave Address | R | A | Byte Count (N) | A | Data Byte 1 | A | ∼ | Data Byte N | /A | P |
Special Notes:
- The LM94 returns 00h when address locations outside of normal address space are read.
- Block reads do not wrap around from address FFh to 00h.
- If the master acknowledges more bytes that it requested, the LM94 continues to supply data until the master does not acknowledge a byte.
- If the master does not acknowledges a byte to prematurely abort a block read, the LM94 gets off the bus to allow the master to issue a STOP signal.