ADM1060
Rev. B | Page 46 of 52
BLOCK READ
In this operation, the master device reads a block of data from a
slave device. The start address for a block read must previously
have been set. In the case of the ADM1060, this is done by a
Send Byte operation to set a RAM address, or a Write
Byte/Word operation to set an EEPROM address. The block
read operation itself consists of a Send Byte operation that
sends a block read command to the slave, immediately followed
by a repeated start and a read operation that reads out multiple
data bytes, as follows:
1. The master device asserts a START condition on SDA.
2. The master sends the 7-bit slave address followed by the
write bit (low).
3. The addressed slave device asserts ACK on SDA.
4. The master sends a command code that tells the slave device
to expect a block read. The ADM1060 command code for a
block read is 0xFD (1111 1101 binary).
5. The slave asserts ACK on SDA.
6. The master asserts a repeat start condition on SDA.
7. The master sends the 7-bit slave address followed by the
read bit (high).
8. The slave asserts ACK on SDA.
9. The ADM1060 sends a byte count data byte that tells the
master how many data bytes to expect. The ADM1060 will
always return 32 data bytes (0x20), which is the maximum
allowed by the SMBus 1.1 specification.
10. The master asserts ACK on SDA.
11. The master receives 32 data bytes.
12. The master asserts ACK on SDA after each data byte.
13. The master asserts a STOP condition on SDA to end the
transaction.
S
W A
A
A
A
A S
R A
1
2
3
4
5 6
7
8
9
10
11
12
13 14
P
SLAVE
ADDRESS
COMMAND 0xFD
(BLOCK READ)
SLAVE
ADDRESS
BYTE
COUNT
DATA 1
DATA
32
Figure 35. Block Read from EEPROM or RAM
ERROR CORRECTION
The ADM1060 provides the option of issuing a PEC (packet
error correction) byte after a write to RAM, a write to
EEPROM, a block write to RAM/EEPROM, or a block read
from RAM/EEPROM. This enables the user to verify that the
data received by or sent from the ADM1060 is correct. The PEC
byte is an optional byte sent after the last data byte has been
written to or read from the ADM1060. The protocol is as
follows:
1. The ADM1060 issues a PEC byte to the master. The master
should check the PEC byte and issue another block read if the
PEC byte is incorrect.
2. A NACK is generated after the PEC byte to signal the end of
the read.
Note: The PEC byte is calculated using CRC-8. The Frame
Check Sequence (FCS) conforms to CRC-8 by the polynomial
C
(
x
) =
x
8
+
x
2
+
x
1
+ 1
Consult the SMBus 1.1 specification for more information. An
example of a block read with the optional PEC byte is shown in
Figure 36.
S
W
A
A
A
A S
R A
1
2
3
4
5 6
7
8
9
10
11
12
SLAVE
ADDRESS
COMMAND 0xFD
(BLOCK READ)
SLAVE
ADDRESS
BYTE
COUNT
DATA 1
A
13
P
15
A
14
PEC
DATA
32
Figure 36. Block Read from EEPROM or RAM with PEC