ADM1026
Block Read
When block reading from EEPROM, Bit 0 of EEPROM
Register 3 must be set.
In this 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 case of the ADM1026 this is done by a
send byte operation to set a RAM address, or by a write
byte/word operation to set an EEPROM address. The block read
operation 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:
Note that although the ADM1026 supports packet error
checking (PEC), its use is optional. The PEC byte is calculated
using CRC-8. The frame check sequence (FCS) conforms to
CRC-8 by the polynomial:
C(x) = x8 + x2 + x1 + 1
Consult the SMBus 1.1 Specification for more information.
1. The master device asserts a start condition on the SDA.
2. The master sends the 7-bit slave address followed by the
write bit (low).
3. The addressed slave device asserts an ACK on the SDA.
4. The master sends a command code that tells the slave
device to expect a block read. The ADM1026 command
code for a block read is A1h (10100001).
5. The slave asserts an ACK on the SDA.
6. The master asserts a repeat start condition on the SDA.
7. The master sends the 7-bit slave address followed by the
read bit (high).
8. The slave asserts an ACK on the SDA.
9. The ADM1026 sends a byte count data byte that tells the
master how many data bytes to expect. The ADM1026
always returns 32 data bytes (20h), the maximum allowed
by the SMBus 1.1 specification.
MEASUREMENT INPUTS
The ADM1026 has 17 external analog measurement pins that
can be configured to perform various functions. It also meas-
ures two supply voltages, 3.3 V MAIN and 3.3 V STBY, and the
internal chip temperature.
Pins 25 and 26 are dedicated to remote temperature measure-
ment, while Pins 27 and 28 can be configured as analog inputs
with a range of 0 V to 2.5 V, or as inputs for a second remote
temperature sensor.
Pins 29 to 33 are dedicated to measuring VBAT, + 5 V, − 1 2 V,
+12 V supplies, and the processor core voltage VCCP. The
remaining analog inputs, Pins 34 to 41, are general-purpose
analog inputs with a range of 0 V to 2.5 V (Pins 34 and 35) or
0 V to 3 V (Pins 36 to 41).
10. The master asserts an ACK on the SDA.
A-to-D Converter (ADC)
11. The master receives 32 data bytes.
These inputs are multiplexed into the on-chip, successive
approximation, analog-to-digital converter. The ADC has a
resolution of 8 bits. The basic input range is 0 V to 2.5 V, which
is the input range of AIN6 to AIN9, but five of the inputs have
built-in attenuators to allow measurement of VBAT, +5 V, −12 V,
+12 V, and the processor core voltage VCCP, without any external
components. To allow the tolerance of these supply voltages, the
ADC produces an output of 3/4 full scale (decimal 192) for the
nominal input voltage, and so has adequate headroom to cope
with over voltages. Table 6 shows the input ranges of the analog
inputs and output codes of the ADC.
12. The master asserts an ACK on the SDA after each data byte.
13. The ADM1026 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.
14. A NACK is generated after the PEC byte to signal the end
of the read.
15. The master asserts a stop condition on the SDA to end the
transaction.
COMMAND
A1h BLOCK
READ
SLAVE
ADDRESS
SLAVE
ADDRESS
S
A
W
A
A
S
R
P
When the ADC is running, it samples and converts an analog
or local temperature input every 711 µs (typical value). Each
input is measured 16 times and the measurements are averaged
to reduce noise, so the total conversion time for each input is
11.38 ms.
BYTE
COUNT
DATA
32
A
DATA 1
A
A
PEC
A
Figure 26. Block Read from EEPROM or RAM
Measurements on the remote temperature (D1 and D2) inputs
take 2.13 ms. These are also measured 16 times and are
averaged, so the total conversion time for a remote temperature
input is 34.13 ms.
Rev. A | Page ±6 of 56