This transaction is used to read a block of data from the LM94. Below is the sequence of events that occur in this transaction:
- The master device asserts a START condition.
- The master sends the 7-bit slave address followed by the write bit (low).
- The addressed slave device asserts ACK.
- The master sends a command code that tells the slave device to expect a block read (F1h) and the slave asserts ACK.
- The master sends the Byte Count for this write which is 2 and the slave asserts ACK.
- The master sends the Start Register Address for the block read and the slave asserts the ACK.
- The master sends the Byte Count (1-32) for the block read processes call and the slave asserts ACK.
- The master asserts a repeat START condition.
- The master sends the 7-bit slave address followed by the read bit (high).
- The slave asserts ACK.
- The master receives a byte count data byte that tells it how many data bytes will received. This field reflects the number of bytes requested by the Byte Count transmitted to the LM94. The SMBus specification allows a maximum of 32 data bytes to be received in a block read. Then master asserts ACK.
- The master receives byte 1 and then asserts ACK.
- The master receives byte 2 and then asserts ACK.
- The master receives N-3 data bytes, and asserts ACK for each one.
- The master receives data byte N and asserts a NACK.
- The master asserts a STOP condition to end the transaction.
1 | 2 | | 3 | 4 | | 5 | | 6 | | 7 | | 8 | 9 | | 10 | ∼ |
S | Slave Address | W | A | Block Read Command Code (F1h) | A | Byte Count (2h) | A | Start Register Address | A | Byte Count (1–20h) (N) | A | S | Slave Address | R | A |
∼ | 11 | | 12 | | 13 | | 14 | 15 | 15 | 16 |
Byte Count (1–20h) (N) | A | Data Byte 1 | A | Data Byte 2 | 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.