
ADM1069
Rev. A | Page 31 of 36
8
In the ADM1069, the write byte/word protocol is used for three
purposes:
To write a single byte of data to RAM. In this case, the
command byte is the RAM address from 0x00 to 0xDF and
the only data byte is the actual data, as shown in
Figure 40.
04735-041
SLAVE
ADDRESS
RAM
ADDRESS
(0x00 TO 0xDF)
S
W A
DATA
AP
A
24
13
5
7
6
Figure 40. Single Byte Write to RAM
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 0xFB. The only data byte is the low byte of
04735-042
SLAVE
ADDRESS
EEPROM
ADDRESS
HIGH BYTE
(0xF8 TO 0xFB)
SW A
EEPROM
ADDRESS
LOW BYTE
(0x00 TO 0xFF)
AP
A
24
13
5
7
6
8
Figure 41. Setting an EEPROM Address
Because a page consists of 32 bytes, only the 3 MSBs of the
address low byte are important for page erasure. The lower
five bits of the EEPROM address low byte specify the
addresses within a page and are ignored during an erase
operation.
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 0xFB. The first data byte is the low byte of the
EEPROM address, and the second data byte is the actual
04735-043
SLAVE
ADDRESS
EEPROM
ADDRESS
HIGH BYTE
(0xF8 TO 0xFB)
SW A
EEPROM
ADDRESS
LOW BYTE
(0x00 TO 0xFF)
A
24
13
5
7
A
9
DATA
8
6
P
10
Figure 42. Single Byte Write to EEPROM
Block Write
In a block write operation, the master device writes a block of
data to a slave device. The start address for a block write must
have been set previously. In the ADM1069, a send byte opera-
tion sets a RAM address, and a write byte/word operation sets
an EEPROM address, 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 write. The ADM1069 command
code for a block write is 0xFC (1111 1100).
5.
The slave asserts ACK on SDA.
6.
The master sends a data byte that tells the slave device how
many data bytes are being sent. The SMBus specification
allows a maximum of 32 data bytes 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.
04735
-044
SLAVE
ADDRESS
SW A
2
COMMAND 0xFC
(BLOCK WRITE)
4
13
A
5
BYTE
COUNT
6
A
7
A
910
A P
A
DATA
1
8
DATA
N
DATA
2
Figure 43. 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 when
There must be at least N locations from the start address to
the highest EEPROM address (0xFBFF), to avoid writing to
invalid addresses.
The addresses cross a page boundary. In this case, both
pages must be erased before programming.
Note that the ADM1069 features a clock extend function for
writes to EEPROM. Programming an EEPROM byte takes
approximately 250 μs, which limits the SMBus clock for
repeated or block write operations. The ADM1069 pulls SCL
low and extends the clock pulse when it cannot accept any
more data.
READ OPERATIONS
The ADM1069 uses the following SMBus read protocols.
Receive Byte
In a receive byte 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 acknowledge on SDA.
6.
The master asserts a stop condition on SDA, and the
transaction ends.