Datasheet

ADM1166
Rev. 0 | Page 30 of 32
P
10
Because a page consists of 32 bytes, only the three 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.
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.
To write a single byte of data to the EEPROM. In this case,
the command byte is the high byte of EEPROM Address 0xF8
to EEPROM Address 0xFB. The first data byte is the low
byte of the EEPROM address, and the second data byte is
the actual data, as shown in Figure 43.
An address crosses a page boundary. In this case, both
pages must be erased before programming.
Note that the ADM1166 features a clock extend function for writes
to the EEPROM. Programming an EEPROM byte takes approxi-
mately 250 μs, which limits the SMBus clock for repeated or block
write operations. The ADM1166 pulls SCL low and extends the
clock pulse when it cannot accept any more data.
SLAVE
ADDRESS
EEPROM
ADDRESS
HIGH BYTE
(0xF8 TO 0xFB)
SWA
EEPROM
ADDRESS
LOW BYTE
(0x00 TO 0xFF)
AA
2413 5 7
A
9
DATA
86
09332-043
Figure 43. Single Byte Write to the EEPROM
READ OPERATIONS
Block Write
The ADM1166 uses the following SMBus read protocols.
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 ADM1166, a send byte opera-
tion sets a RAM address, and a write byte/word operation sets
an EEPROM address, as follows:
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).
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 an ACK on SDA.
4.
The master receives a data byte.
3.
The addressed slave device asserts an ACK on SDA.
5.
The master asserts a NACK on SDA.
4.
The master sends a command code that tells the slave
device to expect a block write. The ADM1166 command
code for a block write is 0xFC (1111 1100).
6.
The master asserts a stop condition on SDA, and the
transaction ends.
5.
The slave asserts an ACK on SDA.
In the ADM1166, 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, as shown in Figure 44.
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 an ACK on SDA.
23145
SLAVE
ADDRESS
SRDATAA
6
P
A
09332-045
8.
The master sends N data bytes.
9.
The slave asserts an ACK on SDA after each data byte.
10.
The master asserts a stop condition on SDA to end the
transaction.
Figure 44. Single Byte Read from the EEPROM or RAM
SLAVE
ADDRESS
SWA
2
COMMAND 0xFC
(BLOCK WRITE)
413
A
5
BYTE
COUNT
6
A
7
A
910
A PA
DATA
1
8
DATA
N
DATA
2
09332-044
Figure 45. Block Write to the EEPROM or RAM