Datasheet

ADM1062
Rev. C | Page 33 of 36
Block Read Error Correction
In a block read operation, the master device reads a block of
data from a slave device. The start address for a block read must
have been set previously. In the ADM1062, 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:
The ADM1062 provides the option of issuing a packet error
correction (PEC) byte after a write to the RAM, a write to the
EEPROM, a block write to the RAM/EEPROM, or a block read
from the RAM/ EEPROM. This option enables the user to verify
that the data received by or sent from the ADM1062 is correct.
The PEC byte is an optional byte sent after the last data byte has
been written to or read from the ADM1062. The protocol is the
same as a block read for Step 1 to Step 12 and then proceeds 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).
13. The ADM1062 issues a PEC byte to the master. The master
checks the PEC byte and issues another block read if the
PEC byte is incorrect. 3.
The addressed slave device asserts an ACK on SDA.
4.
The master sends a command code that tells the slave
device to expect a block read. The ADM1062 command
code for a block read is 0xFD (1111 1101).
14. A NACK is generated after the PEC byte to signal the end
of the read.
15.
The master asserts a stop condition on SDA to end the
transaction. 5.
The slave asserts an ACK on SDA.
6.
The master asserts a repeat start condition on SDA.
Note that the PEC byte is calculated using CRC-8. The frame
check sequence (FCS) conforms to CRC-8 by the polynomial
7.
The master sends the 7-bit slave address followed by the
read bit (high).
C(x) = x
8
+ x
2
+ x
1
+ 1
8.
The slave asserts an ACK on SDA.
9.
The ADM1062 sends a byte-count data byte that tells the
master how many data bytes to expect. The ADM1062
always returns 32 data bytes (0x20), which is the maximum
allowed by the SMBus Version 1.1 specification.
See the SMBus Version 1.1 specification for details.
An example of a block read with the optional PEC byte is shown
in Figure 50.
04433-047
SLAVE
ADDRESS
SWA
2
COMMAND 0xFD
(BLOCK READ)
413
A
5
S
6
SLAVE
ADDRESS
7
BYTE
COUNT
910 1211
ARA
8
DATA
1
DATA
32
A
13
PEC
14
A
15
P
A
10.
The master asserts an ACK on SDA.
11.
The master receives 32 data bytes.
12.
The master asserts an ACK on SDA after each data byte.
13.
The master asserts a stop condition on SDA to end
the transaction.
04433-046
SLAVE
ADDRESS
SWA
2
COMMAND 0xFD
(BLOCK READ)
413
A
5
S
6
SLAVE
ADDRESS
7
BYTE
COUNT
91011
ARA
8
DATA
1
DATA
32
A
13
12
P
A
Figure 50. Block Read from the EEPROM or RAM with PEC
Figure 49. Block Read from the EEPROM or RAM