25AA010A/25LC010A
DS21832E-page 6 © 2008 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
families, i ncluding M ic r oc hi p’s PIC ® m ic roc on trol 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 SCK. Th e C S 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 data are transferred MSb first , LSb last.
Data (SI) is sampled on the first rising edge of SCK
after CS goes lo w. If the cloc k li ne is sha red wit h ot her
periphera l devi ces on the 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 in struction and ad dress are sent,
the data stored in the memory at the selected address
is shi fted out on the SO pin . Dat a st ored in the me mo 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 after th e WREN i nst ruct io n with out CS driv en hig h,
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 drivin g CS low, issuing a WRITE instruction,
follow ed by th e re ma inder of the ad dres s, and 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 re aches XXXX 1111 and clock sign als
continue to be appli ed to the chip , the ad dres s counter
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 a fter the Leas t Significant 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 more
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 cy cl 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 page 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 the next p a ge 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.