25AA010A/25LC010A
DS21832C-page 6 Preliminary © 2006 Microchip Technology Inc.
2.0 FUNCTIONAL DESCRIPTION
2.1 Principles of Operation
The 25XX010A is a 128 byte Serial EEPROM designed
to interface directly with the Serial Peripheral Interface
(SPI) port of many of today’s popular microcontroller
familie s, inclu ding Mic rochip’ s PICmic ro® microcontrol-
lers. It may also interface with microcontrollers that do
not have a built-in SPI port by using discrete I/O lines
programmed properly in firmware to match the SPI
protocol.
The 25XX010A contains an 8-bit instruction register.
The d evic e is acce sse d via the SI pin, w ith data bei ng
clocked in on the ris ing edg e of SC K. Th e CS pin mus t
be low and the HOLD pin must be high for the entire
operation.
Table 2-1 contains a list of the possible instruction
bytes and format for device operation. All instructions,
addresses, and da ta are transferred MSb first, LSb last.
Data (SI) is sampled on the first rising edge of SCK
after CS goes low. If the clock line is shared with other
peripheral devices on t he SPI bus, the user can assert
the HOLD input and place the 25XX010A in ‘HOLD’
mode. After releasing the HOLD pin, operation will
resume from the point when the HOLD was asserted.
2.2 Read Sequence
The device is selected by pulling CS low. The 8-bit
READ instruction is transmitted to the 25XX010A
followed by an 8-bit address. See Figure 2-1 for more
details.
After the correct READ instructio n and address are sent,
the data stored in the memory at the selected address
is shi fted ou t on the SO pi n. Dat a sto red in the memo ry
at the next address can be read sequentially by
continuing to provide clock pulses to the slave. The
internal Address Pointer automatically increments to
the next higher address after each byte of data is
shifted out. When the highest address is reached
(7Fh), the address counter rolls over to address 00h
allow ing the read cy cle to be cont inued indefin itely . Th e
read operation is terminated by raising the CS pin
(Figure 2-1).
2.3 Write Sequence
Prior to any atte mpt to write data to the 25XX010A, the
write enable latch must be set by issuing the WREN
instruction (Figure 2-4). This is done by setting CS low
and then clocking out the proper instruction into the
25XX010A. After all eight bits of the instruction are
transmitted, CS must be driven high to set the write
enable latch. If the write operation is initiated immedi-
ately a fter t he WREN instruction wi tho ut CS d riv en high,
data will not be written to the array since the write
enable latc h wa s not prop erl y set.
After setting the write enable latch, the user may
proce ed by driving C S low, issuing a WRITE instruction,
follow ed by th e re ma in der of the address, an d then th e
dat a to be writ ten. Up to 16 bytes of data can be s ent to
the device before a write cycle is necessary. The only
restriction is that all of the bytes must reside in the
same page. Additionally, a page address begins with
XXXX 0000 and ends with XXXX 1111. If the internal
address counter reaches XXXX 1111 and clock signals
continue to be appli ed to the chip , t he ad dres s co unt er
will roll back to the first address of the page and over-
write any data that previously existed in those
locations.
For the data to be actually written to the array, the CS
must be brought high after the Least Sig nificant bit (D0)
of t he nth dat a byte has been clocked in . If CS is driven
high at any other time, the write operation will not be
comple ted. Refer to Figure 2-2 and Figure 2-3 for mo re
detailed illustrations on the byte write sequence and
the page write sequence, respectively. While the write
is in progress, the STATUS register may be read to
check the status of the WIP, WEL, BP1 and BP0 bits
(Figure 2-6). Attempting to read a memory array
locatio n will not b e possible during a writ e cycle. Pol ling
the WIP bit in the STATUS register is recommended in
order to dete rmi ne if a write cycl e is in pro gre ss . Whe n
the write cycle is completed, the write enable latch is
reset.
Note: Page write opera tions are l imited to wri ting
bytes within a single physical page,
regardless of the number of bytes
actually being written. Physical page
boundaries start at addresses that are
integer multiples of the p age buffer size (or
‘pag e size’) an d, end at addresses tha t are
integer multiples of page size – 1. If a
Page Write command attempts to write
across a physical page boundary, the
result is that the data wraps around to the
beginning of the current page (overwriting
data previously stored there), instead of
being w ritte n to th e nex t page as mi ght be
expected. It is therefore necessary for the
application software to prevent page write
operations that would attempt to cross a
page boundary.