6 Functional Description
The AT25320B/AT25640B is designed to interface directly with the synchronous Serial Peripheral Interface (SPI) of the 6805 and 68HC11 series of microcontrollers.
The AT25320B/AT25640B utilizes an 8-bit instruction register. The list of instructions and their operation codes are contained in Table 6-1. All instructions, addresses and data are transferred with the MSb first and start with a high-to-low CS transition.
| Instruction Name | Instruction Format | Operation | 
|---|---|---|
WREN | 0000 X110 | Set Write Enable Latch | 
WRDI | 0000 X100 | Reset Write Enable Latch | 
RDSR | 0000 X101 | Read STATUS Register | 
WRSR | 0000 X001 | Write STATUS Register | 
READ | 0000 X011 | Read Data from Memory Array | 
WRITE | 0000 X010 | Write Data to Memory Array | 
- Write Enable (WREN):
 - The device will power-up in the Write Disable state when VCC is applied. All programming instructions must, therefore, be preceded by a Write Enable instruction.
 - Write Disable (WRDI):
 - To protect the device against inadvertent writes, the Write Disable
                    instruction disables all programming modes. The 
WRDIinstruction is independent of the status of the WP pin. - Read STATUS Register (RDSR):
 - The Read STATUS Register instruction provides access to the STATUS
                    register. The Ready/Busy and Write Enable status of the
                    device can be determined by the 
RDSRinstruction. Similarly, the Block Write Protection bits indicate the extent of protection employed. These bits are set by using theWRSRinstruction. 
| Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | 
|---|---|---|---|---|---|---|---|
| WPEN | X | X | X | BP1 | BP0 | WEN | RDY | 
| Bit | Definition | 
|---|---|
| Bit 0 (RDY) | Bit 0 = 0 (RDY)
                            indicates the device is READY. Bit 0 =   | 
| Bit 1 (WEN) | Bit 1= 0 indicates the device is not
                            write enabled. Bit 1 =   | 
| Bit 2 (BP0) | See Table 6-4. | 
| Bit 3 (BP1) | See Table 6-4. | 
| Bits 4 – 6 are zeros when device is not in an internal write cycle. | |
| Bit 7 (WPEN) | See Table 6-5. | 
| Bits 0 – 7 are ones during an internal write cycle. | |
- Write STATUS Register (WRSR):
 - The 
WRSRinstruction allows the user to select one of four levels of protection. The AT25320B/AT25640B is divided into four array segments. One-quarter, one-half or all of the memory segments can be protected. Data within any selected segment will, therefore, be read-only. The Block Write Protection levels and corresponding STATUS register control bits are shown in Table 6-4. 
The three bits BP0, BP1 and WPEN are nonvolatile cells that have the same
            properties and functions as the regular memory cells (e.g., WREN,
                tWC, RDSR).
| Level | STATUS Register Bits | Array Addresses Protected | ||
|---|---|---|---|---|
| BP1 | BP0 | AT25320B | AT25640B | |
| 0 | 0 | 0 | None | None | 
| 1(1/4) | 0 | 1 | 0C00-0FFF | 1800-1FFF | 
| 2(1/2) | 1 | 0 | 0800-0FFF | 1000-1FFF | 
| 3(All) | 1 | 1 | 0000-0FFF | 0000-1FFF | 
The WRSR instruction also allows the user to enable or
            disable the Write-Protect (WP) pin through the use of the
            Write-Protect Enable (WPEN) bit. Hardware Write Protection is enabled when the
                WP pin is low and the WPEN bit is set to a logic
                '1'. Hardware Write Protection is disabled when either the
                WP pin is high or the WPEN bit is set to a logic
                '0'. When the device is Hardware Write-Protected, writes to the
            STATUS register, including the Block Protect bits and the WPEN bit, and the
            block-protected sections in the memory array are disabled. Writes are only allowed to
            sections of the memory that are not block-protected.
0' as long as the
                WP pin is held low.| WPEN | WP | WEN | Protected Blocks | Unprotected Blocks | STATUS Register | 
|---|---|---|---|---|---|
0 | x | 0 | Protected | Protected | Protected | 
0 | x | 1 | Protected | Writeable | Writeable | 
1 | Low | 0 | Protected | Protected | Protected | 
1 | Low | 1 | Protected | Writeable | Protected | 
x | High | 0 | Protected | Protected | Protected | 
x | High | 1 | Protected | Writeable | Writeable | 
- Read Sequence (READ):
 - Reading the AT25320B/AT25640B via the
                    Serial Output (SO) pin requires the following sequence. After the
                        CS line is pulled low to select a device, the
                        
READinstruction is transmitted via the SI line followed by the byte address to be read (A15 – A0, see Table 6-6). Upon completion, any data on the SI line will be ignored. The data (D7 – D0) at the specified address is then shifted out onto the SO line. If only one byte is to be read, the CS line should be driven high after the data comes out. The read sequence can be continued since the byte address is automatically incremented and data will continue to be shifted out. When the highest address is reached, the address counter will roll over to the lowest address allowing the entire memory to be read in one continuous read cycle. - Write Sequence (WRITE):
 - 
                    
In order to program the AT25320B/AT25640B, two separate instructions must be executed. First, the device must be write enabled via the
WRENinstruction. Then, aWRITEinstruction may be executed. Also, the address of the memory location(s) to be programmed must be outside the protected address field location selected by the Block Write Protection level. During an internal write cycle, all instructions will be ignored except theRDSRinstruction.A
WRITEinstruction requires the following sequence. After the CS line is pulled low to select the device, theWRITEinstruction is transmitted via the SI line followed by the byte address (A15 – A0) and the data (D7 – D0) to be programmed (see Table 6-6). Programming will start after the CS pin is brought high. The low-to-high transition of the CS pin must occur during the SCK low-time immediately after clocking in the D0 (LSb) data bit.The Ready/Busy status of the device can be determined by initiating a Read STATUS Register (
RDSR) instruction. If Bit 0 =1, the write cycle is still in progress. If Bit 0 =0, the write cycle has ended. Only theRDSRinstruction is enabled during the write programming cycle.The AT25320B/AT25640B is capable of a 32-byte page write operation. After each byte of data is received, the five low-order address bits are internally incremented by one; the high-order bits of the address will remain constant. If more than 32 bytes of data are transmitted, the address counter will roll over and the previously written data will be overwritten. The AT25320B/AT25640B is automatically returned to the write disable state at the completion of a write cycle.
Note: If the device is not write enabled, it will ignore theWRITEinstruction and will return to the Standby state when CS is brought high. A new CS falling edge is required to reinitiate the serial communication. 
| Address | AT25320B | AT25640B | 
|---|---|---|
| AN | A11–A0 | A12–A0 | 
| Don’t Care Bits | A15–A12 | A15–A13 | 
