herunterladen

AN-0973
APPLICATION NOTE
One Technology Way • P. O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com
Erasing and Programming the Super Sequencer EEPROM
by Enrico Del Mastro and Michael Bradley
This application note describes how to erase the Super
Sequencer EEPROM space and how to write to the space, byte
by byte.
BLOCK ERASING THE EEPROM SPACE
Follow these steps to block erase the EEPROM space.
1. Write 0x01 to the UPDCFG register at 0x90. This register
is the memory update control register. Writing 0x01 to
Register 0x90 enables the configuration register to update
continuously. It is recommended that this bit be set during
the entire read/write in-circuit testing (ICT) process.
2. When erasing or accessing the EEPROM in the 0xFA00 to
0xFBFF address range, the sequence engine must be first
be halted. Write 0x01 to the SECTRL register at 0x93, to
halt the sequencing engine. The sequence engine must be
halted every time there is a read or write transaction to the
sequencing engine EEPROM space.
3. When erasing or accessing the EEPROM in the 0xF800 to
0xF89F or the 0xF900 to 0xF9FF address range on the
ADM1166/ADM1168/ADM1169, write 0x01 to the
BBCTRL register at 0x9C. This write halts black box
operation and enables access to the 0xF800 to 0xF89F and
the 0xF900 to 0xF9FF address ranges of the EEPROM.
4. Write 0x05 to the UPDCFG register at 0x90. This write
enables the EEPROM block erase functions.
5. Use the routine outlined in the following bullet points to
erase pages in any EEPROM space. This routine breaks
down the system management bus (SMBus) transactions
for single page erase functions.
• Send slave address.
• Receive acknowledge.
• Send EEPROM upper address (for example, 0xFA).
• Receive acknowledge.
• Send EEPROM lower address (for example, 0x00).
• Receive acknowledge.
• Send stop.
• Send slave address.
• Receive acknowledge.
• Send command code for a page erase (0xFE).
• Receive acknowledge.
• Send stop.
6. For each page to be erased, repeat the routine outlined in
Step 4, incrementing the lower address by 32 bytes, that is,
0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0, and 0xE0.
7. When all the pages are erased, repeat the routine outlined
in Step 4, changing the upper address to 0xF9, 0xFA, or
0xFB, as required, and setting the lower page address as
outlined in Step 6.
8. Write 0x01 to Register 0x90. This write disables the
EEPROM block erase function.
Note: The EEPROM 0xF8 address range (0xF8A0 to 0xF8FF) is
reserved; any attempt to access this range results in a no
acknowledge (NACK).
WRITING TO THE EEPROM SPACE ONE BYTE AT A
TIME
Byte Write
1. To write to the EEPROM space one byte at a time, follow
these steps:
• Send slave address.
• Receive acknowledge.
• Send EEPROM upper address (for example, 0xF8)
• Receive acknowledge.
• Send EEPROM lower address (for example, 0x00).
• Receive acknowledge.
• Send data.
• Slave acknowledge.
• Send stop.
2. Repeat the routine outlined in Step 1 for all the 0xF8
EEPROM space. However, increment the lower address for
each byte of data written.
3. When all the EEPROM in the 0xF8 address range (0xFA00
to 0xFBFF) is written to, change the upper address to 0xF9,
0xFA, or 0xFB and repeat Step 1 and Step 2.
4. When programming in the 0xFA00 to 0xFBFF range, write
0x00 to the SECTRL register at 0x93, to activate the
sequencing engine for normal operation.
5. When programing the EEPROM in the 0xF800 to 0xF89F
or the 0xF900 to 0xF9FF address range on the
ADM1166
/ADM1168/ADM1169, write 0x00 to the
BBCTRL register at 0x9C, to enable the black box.
Rev. A | Page 1 of 2