ADM1060
Rev. B | Page 45 of 52
2. To set up a 2-byte EEPROM address for a subsequent read,
write, block read, block write, or page erase. In this case, the
command byte is the high byte of the EEPROM address from
0xF8 to 0xF9. The (only) data byte is the low byte of the
EEPROM address. This is illustrated in Figure 31.
S
A
1
2
3
4
5
6
7
8
SLAVE
ADDRESS
EEPROM
ADDRESS
HIGH BYTE
(0xF8 TO 0xF9)
EEPROM
ADDRESS
LOW BYTE
(0x00 TO 0xFF)
W A
A P
Figure 31. Setting an EEPROM Address
Note for page erasure that as a page consists of 32 bytes, only
the three MSBs of the address low byte are important. The
lower five bits of the EEPROM address low byte only specify
addresses within a page and are ignored during an erase
operation.
3. To write a single byte of data to EEPROM. In this case the
command byte is the high byte of the EEPROM address from
0xF8 to 0xF9. The first data byte is the low byte of the
EEPROM address and the second data byte is the actual data.
This is illustrated in Figure 32.
S
A P
1
2
3
4
5
6
7
8
9 10
SLAVE
ADDRESS
DATA
EEPROM
ADDRESS
HIGH BYTE
(0xF8 TO 0xF9)
EEPROM
ADDRESS
LOW BYTE
(0x00 TO 0xFF)
W
A
A
A
Figure 32. Single Byte Write to EEPROM
BLOCK WRITE
In this operation, the master device writes a block of data to a
slave device. The start address for a block write 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.
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 write. The ADM1060 command code for a
block write is 0xFC (1111 1100 binary).
5. The slave asserts ACK on SDA.
6. The master sends a data byte that tells the slave device how
many data bytes will be sent. The SMBus specification allows
a maximum of 32 data bytes to be sent in a block write.
7. The slave asserts ACK on SDA.
8. The master sends N data bytes.
9. The slave asserts ACK on SDA after each data byte.
10. The master asserts a STOP condition on SDA to end the
transaction.
S
W A
A
A
A
P
A
A
1
2
3
4
5
6
7
8
9
10
SLAVE
ADDRESS
COMMAND 0xFC
(BLOCK WRITE)
BYTE
COUNT
DATA 1
DATA 2
DATA N
Figure 33. Block Write to EEPROM or RAM
Unlike some EEPROM devices that limit block writes to within
a page boundary, there is no limitation on the start address
when performing a block write to EEPROM, except
1. There must be at least N locations from the start address to
the highest EEPROM address (0xF9FF) to avoiding writing
to invalid addresses.
2. If the addresses cross a page boundary, both pages must be
erased before programming.
Note that the ADM1060 features a clock extend function for
writes to EEPROM. Programming an EEPROM byte takes
approximately 250 µs, which would limit the SMBus clock for
repeated or block write operations. The ADM1060 pulls SCL
low and extends the clock pulse when it cannot accept any more
data.
READ OPERATIONS
The ADM1060 uses the following SMBus read protocols:
RECEIVE BYTE
In this operation, the master device receives a single byte from a
slave device, as follows:
1. The master device asserts a START condition on SDA.
2. The master sends the 7-bit slave address followed by the read
bit (high).
3. The addressed slave device asserts ACK on SDA.
4. The master receives a data byte.
5. The master asserts NO ACK on SDA.
6. The master asserts a STOP condition on SDA and the trans-
action ends.
In the ADM1060, the receive byte protocol is used to read a
single byte of data from a RAM or EEPROM location whose
address has previously been set by a send byte or write
byte/word operation. This is illustrated in Figure 34.
S
R
A
P
1
2
3
4
5
6
SLAVE
ADDRESS
DATA
A
Figure 34. Single Byte Read from EEPROM or RAM