STMICROELECTRONICS M58PR256JE96ZB5F

M58PR256J
M58PR512J
256 Mbit or 512 Mbit (x16, Multiple Bank, Multilevel, Burst)
1.8 V supply Flash memories
Features
■
Supply voltage
– VDD = 1.7 V to 2.0 V for program, erase and
read
– VDDQ = 1.7 V to 2.0 V for I/O buffers
– VPP = 9 V for fast program
■
Synchronous / Asynchronous Read
– Synchronous Burst Read mode:
108 MHz, 66 MHz
– Asynchronous Page Read mode
– Random access: 96 ns
■
■
Programming time
– 4.2 µs typical Word program time using
Buffer Enhanced Factory Program
command
Memory organization
– Multiple Bank Memory Array: 32 Mbit
Banks (256 Mbit devices); 64 Mbit Banks
(512 Mbit devices)
– Four Extended Flash Array (EFA) Blocks of
64 Kbits
■
Dual operations
– program/erase in one Bank while read in
others
– No delay between read and write
operations
■
Block locking
– All Blocks locked at power-up
– Any combination of Blocks can be locked
with zero latency
– WP for Block Lock-Down
– Absolute Write Protection with VPP = VSS
Not packaged separately
■
Security
– 64 bit unique device number
– 2112 bit user programmable OTP Cells
■
Common Flash Interface (CFI)
■
100,000 program/erase cycles per block
■
Electronic signature
– Manufacturer Code: 20h
– 256 Mbit Device: 8818
– 512 Mbit Device: 8819
The M58PRxxxJ memories are only available as part of a multi-chip package device.
December 2006
Rev 3
1/114
www.st.com
1
Contents
M58PR256J, M58PR512J
Contents
1
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2
Signal descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3
4
2/114
2.1
Address Inputs (A0-Amax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2
Data Input/Output (DQ0-DQ15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3
Chip Enable (E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4
Output Enable (G) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5
Write Enable (W) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6
Write Protect (WP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.7
Reset (RP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.8
Deep Power-Down (DPD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.9
Latch Enable (L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.10
Clock (K) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.11
Wait (WAIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.12
VDD supply voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.13
VDDQ supply voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.14
VPP Program supply voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.15
VSS ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.16
VSSQ ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Bus operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1
Bus Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2
Bus Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3
Address Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4
Output Disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5
Standby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6
Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.7
Deep Power-Down (DPD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Command interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1
Read Array command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2
Read Status Register command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
M58PR256J, M58PR512J
5
Contents
4.3
Read Electronic Signature command . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4
Read CFI Query command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.5
Clear Status Register command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6
Block Erase command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.7
Program command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.8
Buffer Program command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.9
Buffer Enhanced Factory Program command . . . . . . . . . . . . . . . . . . . . . 26
4.10
Setup phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.11
Program and Verify phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.12
Exit phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.13
Program/Erase Suspend command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.14
Program/Erase Resume command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.15
Protection Register Program command . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.16
Set Configuration Register command . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.17
Block Lock command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.18
Block Unlock command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.19
Block Lock-Down command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.20
Blank Check command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.21
Set Enhanced Configuration Register command . . . . . . . . . . . . . . . . . . . 32
4.22
Read EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.23
Program EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.24
Erase EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.25
Suspend EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.26
Resume EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.27
Lock EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.28
Unlock EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.29
Lock-Down EFA Block command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Program operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.1
Program Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2
Program modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3
Control Program mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4
Object Program mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3/114
Contents
6
7
8
M58PR256J, M58PR512J
5.5
Program methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.6
Single Word Program method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.7
Buffer Program method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.8
Buffer Enhanced Factory Program method . . . . . . . . . . . . . . . . . . . . . . . 44
Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.1
Control Program Mode status bit (SR9) . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2
Object Program Mode status bit (SR8) . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3
Program/Erase Controller status bit (SR7) . . . . . . . . . . . . . . . . . . . . . . . . 46
6.4
Erase Suspend status bit (SR6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.5
Erase status bit (SR5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.6
Program status bit (SR4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.7
VPP status bit (SR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.8
Program Suspend status bit (SR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.9
Block Protection status bit (SR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.10
Bank Write/Multiple Word Program status bit (SR0) . . . . . . . . . . . . . . . . 48
Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.1
Read Select bit (CR15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2
X-Latency bits (CR14-CR11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.3
Wait Polarity bit (CR10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.4
Wait Configuration bit (CR8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.5
Burst length bits (CR2-CR0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Enhanced Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.1
Deep Power-Down Mode bit (ECR15) . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2
Deep Power-Down Polarity bit (ECR14) . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.3
Output Driver Control bits (ECR2-ECR0) . . . . . . . . . . . . . . . . . . . . . . . . . 55
9
Extended Flash Array (EFA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
10
Read modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4/114
10.1
Asynchronous Read mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.2
Synchronous Burst Read mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
10.3
Single Synchronous Read mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
M58PR256J, M58PR512J
Contents
11
Dual operations and multiple bank architecture . . . . . . . . . . . . . . . . . 60
12
Block locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.1
Reading a block’s lock status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.2
Locked state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.3
Unlocked state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.4
Lock-Down state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
12.5
Locking operations during Erase Suspend . . . . . . . . . . . . . . . . . . . . . . . . 63
13
Program and erase times and endurance cycles . . . . . . . . . . . . . . . . . 65
14
Maximum rating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
15
DC and ac parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
16
Part numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Appendix A Block address tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Appendix B Common Flash Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Appendix C Flowcharts and pseudo codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Appendix D Command interface state tables. . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5/114
List of tables
M58PR256J, M58PR512J
List of tables
Table 1.
Table 2.
Table 3.
Table 4.
Table 5.
Table 6.
Table 7.
Table 8.
Table 9.
Table 10.
Table 11.
Table 12.
Table 13.
Table 14.
Table 15.
Table 16.
Table 17.
Table 18.
Table 19.
Table 20.
Table 21.
Table 22.
Table 23.
Table 24.
Table 25.
Table 26.
Table 27.
Table 28.
Table 29.
Table 30.
Table 31.
Table 32.
Table 33.
Table 34.
Table 35.
Table 36.
Table 37.
Table 38.
Table 39.
Table 40.
Table 41.
Table 42.
Table 43.
Table 44.
Table 45.
Table 46.
Table 47.
Table 48.
6/114
Signal names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
M58PR256J bank architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
M58PR512J bank architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
EFA memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Bus operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Command codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Standard commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Factory Program command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Electronic Signature codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Protection Register locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Program methods available with each Program mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Relationships between Program methods and Program modes. . . . . . . . . . . . . . . . . . . . . 44
Status Register bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
X-latency settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Burst type definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Enhanced Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Dual operations allowed in other banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Dual operations allowed in same bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Dual operation limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Lock status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Program/Erase times and endurance cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Operating and ac measurement conditions (M58PRxxxJ) . . . . . . . . . . . . . . . . . . . . . . . . . 68
Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
DC characteristics - currents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
DC characteristics - voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Asynchronous Read ac characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Synchronous Read ac characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Write ac characteristics, Write Enable controlled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Write ac characteristics, Chip Enable controlled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Reset and Power-up ac characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Deep Power Down ac characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Ordering information scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
M58PR256J - bank base addresses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
M58PR512J - bank base addresses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
M58PR256J - block addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
M58PR512J - block addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Query structure overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
CFI query identification string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
CFI query system interface information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Device geometry definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Primary algorithm-specific extended query table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Protection Register information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Burst Read information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Bank and Erase block region information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Bank and Erase block region 1 information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Extended Flash array bank and erase block region information. . . . . . . . . . . . . . . . . . . . . 94
M58PR256J, M58PR512J
Table 49.
Table 50.
Table 51.
Table 52.
Table 53.
Table 54.
List of tables
Extended Flash array bank and erase block region 1 information . . . . . . . . . . . . . . . . . . . 95
Command interface states - Modify table, next state 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Command interface states - Modify table, next state 2. . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Command interface states - Modify table, next output 1 . . . . . . . . . . . . . . . . . . . . . . . . . 110
Command interface states - Modify table, next output 2 . . . . . . . . . . . . . . . . . . . . . . . . . 111
Document Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7/114
List of figures
M58PR256J, M58PR512J
List of figures
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8.
Figure 9.
Figure 10.
Figure 11.
Figure 12.
Figure 13.
Figure 14.
Figure 15.
Figure 16.
Figure 17.
Figure 18.
Figure 19.
Figure 20.
Figure 21.
Figure 22.
Figure 23.
Figure 24.
Figure 25.
Figure 26.
Figure 27.
Figure 28.
8/114
Logic diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Main array architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Protection Register memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Program Regions configured in Control or Object Program mode . . . . . . . . . . . . . . . . . . . 42
X-latency and data output configuration example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Wait configuration example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
AC measurement I/O waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
AC measurement load circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Asynchronous random access Read ac waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Asynchronous Page Read ac waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Synchronous Burst Read ac waveforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Single Synchronous Read ac waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Clock input ac waveform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Write ac waveforms, Write Enable controlled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Write ac waveforms, Chip Enable controlled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Reset and Power-up ac waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Deep Power Down ac waveforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Reset during Deep Power Down ac waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Program and EFA Block Program flowchart and pseudo code. . . . . . . . . . . . . . . . . . . . . . 97
Buffer Program flowchart and pseudo code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Program Suspend & Resume flowchart and pseudo code . . . . . . . . . . . . . . . . . . . . . . . . . 99
Block Erase and EFA Block Erase flowchart and pseudo code . . . . . . . . . . . . . . . . . . . . 100
Erase Suspend & Resume flowchart and pseudo code . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Main Array and EFA locking operations flowchart and pseudo code . . . . . . . . . . . . . . . . 102
Blank Check flowchart and pseudo code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Protection Register Program flowchart and pseudo code . . . . . . . . . . . . . . . . . . . . . . . . 104
Buffer Enhanced Factory Program flowchart and pseudo code . . . . . . . . . . . . . . . . . . . . 105
M58PR256J, M58PR512J
1
Description
Description
The M58PR256J and M58PR512J are 256 Mbit (16 Mbit ×16) and 512 Mbit (32 Mbit ×16)
non-volatile Flash memories, respectively. They are referred to as M58PRxxxJ in the rest of
the document unless otherwise specified.
The M58PRxxxJ may be erased electrically at Block level and programmed in-system on a
Word-by-Word basis using a 1.7 V to 2.0 V VDD supply for the circuitry and a 1.7 V to 2.0 V
VDDQ supply for the Input/Output pins. An optional 9 V VPP power supply is provided to
speed up factory programming.
The M58PRxxxJ has a uniform Block architecture and is based on a Multi-Level cell
technology.
The M58PR256J has an array of 128 Blocks, and is divided into 32 Mbit banks. There are 8
banks each containing 16 Blocks of 128 KWords.
The M58PR512J has an array of 256 Blocks, and is divided into 64 Mbit banks. There are 8
Banks each containing 32 Blocks of 128 KWords.
Each Block contains 256 Program Regions of 1 KByte each, that are divided into 32
Segments of 16 Words. Each Segment is split into two halves (A and B), according by the
value on Address Input A3.
The memory map is illustrated in Figure 2, and the Main Array architecture in Figure 3.
The Multiple Bank Architecture allows Dual Operations, while programming or erasing in
one bank, read operations are possible in other banks. Only one bank at a time is allowed to
be in program or erase mode. It is possible to perform burst reads that cross bank
boundaries. The bank architecture is summarized in Table 2, and the memory maps are
shown in Figure 2.
Each Block can be erased separately. Erase can be suspended, in order to perform a
program or read operation in any other Block, and then resumed. Program can be
suspended to read data at any memory location except for the one being programmed, and
then resumed. Each Block can be programmed and erased over 100,000 cycles using the
supply voltage VDD. There is a Buffer Enhanced Factory programming command available
to speed up programming.
Program and erase commands are written to the Command Interface of the memory. An
internal Program/Erase Controller takes care of the timings necessary for program and
erase operations. The end of a program or erase operation can be detected and any error
conditions identified in the Status Register. The command set required to control the
memory is consistent with JEDEC standards.
The device supports Synchronous Burst Read and Asynchronous Read from all Blocks of
the memory array; at power-up the device is configured for Asynchronous Read. In
Synchronous Burst Read mode, data is output on each clock cycle at frequencies of up to
108 MHz. The Synchronous Burst Read operation can be suspended and resumed.
The device features an Automatic Standby mode and Deep Power-Down mode. When the
bus is inactive during Asynchronous Read operations, the device automatically switches to
the Automatic Standby mode. In this condition the power consumption is reduced to the
standby value and the outputs are still driven.
9/114
Description
M58PR256J, M58PR512J
The Deep Power Down (DPD) mode starts when the device is properly configured (ECR bit
15 is set) and the DPD signal is asserted. In DPD mode the device has the lowest power
consumption.
The M58PRxxxJ features an instant, individual block locking scheme that allows any Block
to be locked or unlocked with no latency, enabling instant code and data protection. All
Blocks have three levels of protection. They can be locked and locked-down individually
preventing any accidental programming or erasure. There is an additional hardware
protection against program and erase. When VPP ≤VPPLK all Blocks are protected against
program or erase. All Blocks are locked at power-up.
In addition to the main memory array, the M58PRxxxJ features an Extended Flash Array
(EFA) divided into 4 Blocks of 64 Kbits each.
The EFA Blocks are accessed through a separate set of commands. The operations
available in the EFA Blocks are Asynchronous Read (in Non-Page mode), Single Word
Program, erase and block locking. See Section 4: Command interface for details of the EFA
commands set.
See Table 4 for an Extended Flash Array memory map. Table 18 and Table 19 describe the
simultaneous operations allowed in the EFA Blocks and the Main Memory array.
The device includes 17 Protection Registers and 2 Protection Register locks, one for the first
Protection Register and the other for the 16 One-Time-Programmable (OTP) Protection
Registers of 128 bits each. The first Protection Register is divided into two areas: a 64 bit
area containing a unique device number written by ST, and a 64 bit area One-TimeProgrammable (OTP) by the user. The user programmable area can be permanently
protected. Figure 4, shows the Protection Register memory map.
The memory is supplied with all the bits erased (set to ’1’).
Note that the M58PRxxxJ memories are only available as part of a multi-chip package
device.
10/114
M58PR256J, M58PR512J
Figure 1.
Description
Logic diagram
VDD VDDQ VPP
16
A0-Amax(1)
DQ0-DQ15
W
WAIT
E
G
RP
M58PR256J
M58PR512J
WP
L
K
DPD
VSS
VSSQ
AI10123c
1. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
Table 1.
Signal names
A0-Amax(1)
Address Inputs
DQ0-DQ15
Data Input/Outputs, Command Inputs
E
Chip Enable
G
Output Enable
W
Write Enable
RP
Reset
WP
Write Protect
K
Clock
L
Latch Enable
WAIT
Wait
DPD
Deep Power-Down
VDD
Supply Voltage
VDDQ
Supply Voltage for Input/Output Buffers
VPP
Optional Supply Voltage for Fast Program & Erase
VSS
Ground
VSSQ
Ground Input/Output Supply
NC
Not Connected Internally
DU
Do Not Use
1. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
11/114
Description
M58PR256J, M58PR512J
M58PR256J bank architecture
Bank 0
32 Mbits
16 Blocks of 128 KWords
Bank 1
32 Mbits
16 Blocks of 128 KWords
Bank 2
32 Mbits
16 Blocks of 128 KWords
----
Blocks
----
Bank Size
Bank 7
32 Mbits
16 Blocks of 128 KWords
M58PR512J bank architecture
Figure 2.
Blocks
Bank 0
64 Mbits
32 Blocks of 128 KWords
Bank 1
64 Mbits
32 Blocks of 128 KWords
Bank 2
64 Mbits
32 Blocks of 128 KWords
----
Bank Size
----
Number
----
Table 3.
Number
----
Table 2.
Bank 7
64 Mbits
32 Blocks of 128 KWords
Memory map
M58PR512J
Address lines A24-A0
M58PR256J
Address lines A23-A0
000000h
01FFFFh
128 KWord
16 Blocks
0000000h
001FFFFh
128 KWord
32 Blocks
Bank 0
Bank 0
1E0000h
1FFFFFh
128 KWord
03E0000h
03FFFFFh
128 KWord
E00000h
E1FFFFh
128 KWord
1C00000h
1C1FFFFh
128 KWord
1FE0000h
1FFFFFFh
128 KWord
16 Blocks
32 Blocks
Bank 7
Bank 7
FE0000h
FFFFFFh
128 KWord
AI10124b
Table 4.
12/114
EFA memory map
EFA Block
Size
Address Range
3
4 KWords (64 Kbits)
0003000 - 0003FFF
2
4 KWords (64 Kbits)
0002000 - 0002FFF
1
4 KWords (64 Kbits)
0001000 - 0001FFF
0
4 KWords (64 Kbits)
0000000 - 0000FFF
M58PR256J, M58PR512J
Figure 3.
Description
Main array architecture
MAIN ARRAY
128 KWord Block
..
.
Bank 0
128 KWord Block
BLOCK
Program Region 0
512 Words
Program Region 1
512 Words
..
.
PROGRAM REGION
Segment 31 - 16 Words
Segment 30 - 16 Words
..
.
Segment 2 - 16 Words
..
.
Program Region 254
512 Words
Program Region 255
512 Words
Segment 1 - 16 Words
Segment 0 - 16 Words
128 KWord Block
Bank 7
..
.
128 KWord Block
256 Mbits
or
512 Mbits
ai10144
13/114
Signal descriptions
2
M58PR256J, M58PR512J
Signal descriptions
See Figure 1: Logic diagram and Table 1: Signal names, for a brief overview of the signals
connected to this device.
2.1
Address Inputs (A0-Amax)
Amax is the highest order Address Input. Amax is A23 in the M58PR256J, and A24 in the
M58PR512J. The Address Inputs select the cells in the memory array to access during Bus
Read operations. During Bus Write operations they control the commands sent to the
Command Interface of the Program/Erase Controller.
2.2
Data Input/Output (DQ0-DQ15)
The Data I/O output the data stored at the selected address during a Bus Read operation or
input a command or the data to be programmed during a Bus Write operation.
2.3
Chip Enable (E)
The Chip Enable input activates the memory control logic, input buffers, decoders and
sense amplifiers. When Chip Enable is at VILand Reset is at VIH the device is in active
mode. When Chip Enable is at VIH the memory is deselected, the outputs are high
impedance and the power consumption is reduced to the stand-by level.
2.4
Output Enable (G)
The Output Enable input controls data outputs during the Bus Read operation of the
memory.
2.5
Write Enable (W)
The Write Enable input controls the Bus Write operation of the memory’s Command
Interface. The data and address inputs are latched on the rising edge of Chip Enable or
Write Enable whichever occurs first.
2.6
Write Protect (WP)
Write Protect is an input that gives an additional hardware protection for each Block. When
Write Protect is at VIL, the Lock-Down is enabled and the protection status of the LockedDown Blocks cannot be changed. When Write Protect is at VIH, the Lock-Down is disabled
and the Locked-Down Blocks can be locked or unlocked. (refer to Table 21: Lock status).
14/114
M58PR256J, M58PR512J
2.7
Signal descriptions
Reset (RP)
The Reset input provides a hardware reset of the memory. When Reset is at VIL, the
memory is in reset mode: the outputs are high impedance and the current consumption is
reduced to the Reset Supply Current IDD2. Refer to Table 26: DC characteristics - currents,
for the value of IDD2. After Reset all Blocks are in the Locked state and the Configuration
Register is reset. When Reset is at VIH, the device is in normal operation. Exiting reset
mode the device enters asynchronous read mode, but a negative transition of Chip Enable
or Latch Enable is required to ensure valid data outputs.
The Reset pin can be interfaced with 3V logic without any additional circuitry. It can be tied
to VRPH (refer to Table 27: DC characteristics - voltages).
2.8
Deep Power-Down (DPD)
The Deep Power-Down input is used to put the device in Deep Power-Down mode.
When the device is in Standby mode and the Enhanced Configuration Register bit ECR15 is
set, asserting the Deep Power-Down input will cause the memory to enter the Deep PowerDown mode.
When the device is in the Deep Power-Down mode, the memory cannot be modified and the
data is protected.
The polarity of the DPD pin is determined by ECR14. The Deep Power-Down input is active
Low by default.
2.9
Latch Enable (L)
Latch Enable latches the address bits on its rising edge. The address latch is transparent
when Latch Enable is at VIL and it is inhibited when Latch Enable is at VIH. Latch Enable can
be kept Low (also at board level) when the Latch Enable function is not required or
supported.
2.10
Clock (K)
The clock input synchronizes the memory to the microcontroller during synchronous read
operations; the address is latched on a Clock edge when Latch Enable is at VIL. Clock is
ignored during asynchronous read and in write operations.
2.11
Wait (WAIT)
Wait is an output signal used during synchronous read to indicate whether the data on the
output bus are valid. This output is high impedance when Chip Enable is at VIH, Output
Enable is at VIH, or Reset is at VIL. It can be configured to be active during the wait cycle or
one data cycle in advance.
15/114
Signal descriptions
2.12
M58PR256J, M58PR512J
VDD supply voltage
VDD provides the power supply to the internal core of the memory device. It is the main
power supply for all operations (Read, Program and Erase).
2.13
VDDQ supply voltage
VDDQ provides the power supply to the I/O pins and enables all Outputs to be powered
independently of VDD. VDDQ can be tied to VDD or can use a separate supply.
VDDQ is sampled at the beginning of program/erase operations. If VDDQ is lower than VLKOQ,
the device is reset.
2.14
VPP Program supply voltage
VPP is both a control input and a power supply pin. The two functions are selected by the
voltage range applied to the pin.
If VPP is kept in a low voltage range (0V to VDDQ) VPP is seen as a control input. In this case
a voltage lower than VPPLK gives an absolute protection against program or erase, while
VPP > VPP1 enables these functions (see Tables 26 and 27, DC Characteristics for the
relevant values). VPP is only sampled at the beginning of a program or erase; a change in its
value after the operation has started does not have any effect and program or erase
operations continue.
If VPP is in the range of VPPH it acts as a power supply pin. In this condition VPP must be
stable until the Program/Erase algorithm is completed.
2.15
VSS ground
VSS ground is the reference for the core supply. It must be connected to the system ground.
2.16
VSSQ ground
VSSQ ground is the reference for the input/output circuitry driven by VDDQ. VSSQ must be
connected to VSS
Note:
16/114
Each device in a system should have VDD, VDDQ and VPP decoupled with a 0.1 µF ceramic
capacitor close to the pin (high frequency, inherently low inductance capacitors should be as
close as possible to the package). See Figure 9: AC measurement load circuit. The PCB
track widths should be sufficient to carry the required VPP program and erase currents.
M58PR256J, M58PR512J
3
Bus operations
Bus operations
There are seven standard bus operations that control the device. These are Bus Read, Bus
Write, Address Latch, Output Disable, Standby, Reset and Deep Power-Down. See Table 5:
Bus operations, for a summary.
Typically glitches of less than 5ns on Chip Enable or Write Enable are ignored by the
memory and do not affect Bus Write operations.
3.1
Bus Read
Bus Read operations are used to output the contents of the Memory Array, the Electronic
Signature, the Status Register and the Common Flash Interface. Both Chip Enable and
Output Enable must be at VIL in order to perform a read operation. The Chip Enable input
should be used to enable the device. Output Enable should be used to gate data onto the
output. The data read depends on the previous command written to the memory (see
Command Interface section). See Figures 10, 11, 12 and 13 Read AC Waveforms, and
Tables 28 and 29 Read AC Characteristics, for details of when the output becomes valid.
3.2
Bus Write
Bus Write operations write Commands to the memory or latch Input Data to be
programmed. A bus write operation is initiated when Chip Enable and Write Enable are at
VIL with Output Enable at VIH. Commands, Input Data and Addresses are latched on the
rising edge of Write Enable or Chip Enable, whichever occurs first. The addresses can also
be latched prior to the write operation by toggling Latch Enable. In this case the Latch
Enable should be tied to VIH during the bus write operation.
See Figures 15 and 16, Write AC Waveforms, and Tables 30 and 31, Write AC
Characteristics, for details of the timing requirements.
3.3
Address Latch
Address latch operations input valid addresses. Both Chip enable and Latch Enable must be
at VIL during address latch operations. The addresses are latched on the rising edge of
Latch Enable.
3.4
Output Disable
The outputs are high impedance when the Output Enable is at VIH.
17/114
Bus operations
3.5
M58PR256J, M58PR512J
Standby
Standby disables most of the internal circuitry allowing a substantial reduction of the current
consumption. The memory is in standby when Chip Enable and Reset are at VIH. The power
consumption is reduced to the standby level IDD3 and the outputs are set to high impedance,
independently from the Output Enable or Write Enable inputs. If Chip Enable switches to VIH
during a program or erase operation, the device enters Standby mode when finished.
3.6
Reset
During Reset mode the memory is deselected and the outputs are high impedance. The
memory is in Reset mode when Reset is at VIL. The power consumption is reduced to the
Reset level, independently from the Chip Enable, Output Enable or Write Enable inputs. If
Reset is pulled to VSS during a Program or Erase, this operation is aborted and the memory
content is no longer valid.
3.7
Deep Power-Down (DPD)
The memory enters the Deep Power-Down mode from the Standby mode (RP and E are deasserted, VIH) by setting ECR15 High (set to ‘1’) and asserting the DPD pin, whatever the
order of the last two events.
The DPD pin polarity is determined by the value of ECR14:
●
when ECR14 is cleared (‘0’) the DPD pin is active Low. The DPD pin is active Low by
default.
●
when ECR14 is set (‘1’), the DPD pin is active High.
While in DPD mode:
●
the values of Configuration Register, Enhanced Configuration Register, Block Lock bits
and Bank states are preserved.
●
the Status Register is reset to 80h.
If the Status Register contains errors before entering the DPD mode, the error bits will be
lost after exiting DPD mode.
The device should not be put in Deep Power-Down mode while a program, erase or
suspend operation is in progress. If the device is put in Deep Power-Down mode during a
program, erase or suspend operation, the operation will abort, and the memory contents will
no longer be valid.
The Deep Power-Down mode is exited tDPHEL after de-asserting the DPD pin. On exiting the
Deep Power-Down mode, the memory reverts to the Standby mode.
If the RP pin is asserted while in DPD mode, the device exits DPD mode after tPHEL and
ECR15 is reset to 0.
18/114
M58PR256J, M58PR512J
Table 5.
Bus operations
Bus operations(1)
Operation
Bus Read
Bus Write
E
G
W
L
RP
DPD(2)
VIL
VIL
VIH
VIL(4)
VIH
de-asserted(5)
VIL
(4)
VIH
(5)
Data Input
(5)
Data Output or Hi-Z(6)
VIL
VIH
VIL
WAIT(3)
DQ15-DQ0
Data Output
de-asserted
Address Latch
VIL
X
VIH
VIL
VIH
de-asserted
Output Disable
VIL
VIH
VIH
X
VIH
de-asserted(5)
Hi-Z
Hi-Z
VIH
(5)
Hi-Z
Hi-Z
(5)
Standby
Reset
Deep PowerDown
VIH
X
X
X
de-asserted
X
X
X
X
VIL
de-asserted
Hi-Z
Hi-Z
VIH
X
X
X
VIH
asserted(7)
Hi-Z
Hi-Z
1. X = Don't care.
2. The DPD signal polarity depends on the value of the ECR14 bit.
3. WAIT signal polarity is configured using the Set Configuration Register command.
4. L can be tied to VIH if the valid address has been previously latched.
5. If ECR15 is set to '0', the device cannot enter the Deep Power-Down mode, even if DPD is asserted.
6. Depends on G.
7. ECR15 has to be set to ‘1’ for the device to enter Deep Power-Down.
19/114
Command interface
4
M58PR256J, M58PR512J
Command interface
All Bus Write operations to the memory are interpreted by the Command Interface.
Commands consist of one or more sequential Bus Write operations. An internal
Program/Erase Controller handles all timings and verifies the correct execution of the
program and erase commands. The Program/Erase Controller provides a Status Register
whose output may be read at any time to monitor the progress or the result of the operation.
The Command Interface is reset to read mode when power is first applied, when exiting from
Reset or whenever VDD is lower than VLKO. Command sequences must be followed exactly.
Any invalid combination of commands will be ignored.
Refer to Table 6: Command codes, Table 7: Standard commands, Table 8: Factory Program
command, for a summary of the Command Interface.
Table 6.
Command codes
Hex Code
20/114
Command
01h
Block Lock Confirm and EFA Block Lock Confirm
03h
Set Configuration Register Confirm
04h
Set Enhanced Configuration Register Confirm
20h
Block Erase Setup
24h
EFA Block Erase Setup
2Fh
Block Lock-Down Confirm and EFA Block Lock-Down Confirm
41h
Program Setup
44h
EFA Program Setup
50h
Clear Status Register
60h
Block Lock Setup, Block Unlock Setup, Block Lock Down Setup, Set Configuration
Register Setup and Enhanced Configuration Register Setup
64h
EFA Block Lock, EFA Block Lock-Down, EFA Block Unlock
70h
Read Status Register
80h
Buffer Enhanced Factory Program
90h
Read Electronic Signature
94h
Read EFA
98h
Read CFI Query
B0h
Program/Erase Suspend
BCh
Blank Check Setup
C0h
Protection Register Program
D0h
Program/Erase Resume, Block Erase Confirm, Block Unlock Confirm or Buffer
Program Confirm, Buffer Enhanced Factory Program Confirm, Blank Check Confirm,
Unlock EFA Block Confirm, EFA Block Erase Confirm
E9h
Buffer Program
FFh
Read Array
M58PR256J, M58PR512J
4.1
Command interface
Read Array command
The Read Array command returns the addressed bank to Read Array mode.
One Bus Write cycle is required to issue the Read Array command. Once a bank is in Read
Array mode, subsequent read operations will output the data from the memory array.
A Read Array command can be issued to any banks while programming or erasing in
another bank.
If the Read Array command is issued to a bank currently executing a program or erase
operation, the bank will return to Read Array mode but the program or erase operation will
continue, however the data output from the bank is not guaranteed until the program or
erase operation has finished. The read modes of other banks are not affected.
4.2
Read Status Register command
The device contains a Status Register that is used to monitor program or erase operations.
The Read Status Register command is used to read the contents of the Status Register for
the addressed bank.
One Bus Write cycle is required to issue the Read Status Register command. Once a bank
is in Read Status Register mode, subsequent read operations will output the contents of the
Status Register.
The Status Register data is latched on the falling edge of the Chip Enable or Output Enable
signals. Either Chip Enable or Output Enable must be toggled to update the Status Register
data
The Read Status Register command can be issued at any time, even during program or
erase operations. The Read Status Register command will only change the read mode of
the addressed bank. The read modes of other banks are not affected. Only Asynchronous
Read and Single Synchronous Read operations should be used to read the Status Register.
A Read Array command is required to return the bank to Read Array mode.
See Table 13 for the description of the Status Register Bits.
21/114
Command interface
4.3
M58PR256J, M58PR512J
Read Electronic Signature command
The Read Electronic Signature command is used to read the Manufacturer and Device
Codes, the Lock Status of the addressed bank, the Protection Register, the Configuration
Register and the Enhanced Configuration Register.
One Bus Write cycle is required to issue the Read Electronic Signature command. Once a
bank is in Read Electronic Signature mode, subsequent read operations in the same bank
will output the Manufacturer Code, the Device Code, the Lock Status of the addressed bank,
the Protection Register, the Configuration Register or the Enhanced Configuration Register
(see Table 9).
The Read Electronic Signature command can be issued at any time, even during program or
erase operations, except during Protection Register Program operations. Dual operations
between the Extended Flash Array (EFA) and the Electronic Signature locations are not
allowed (see Table 20: Dual operation limitations for details).
If a Read Electronic Signature command is issued to a bank that is executing a program or
erase operation the bank will go into Read Electronic Signature mode. Subsequent Bus
Read cycles will output the Electronic Signature data and the Program/Erase controller will
continue to program or erase in the background.
The Read Electronic Signature command will only change the read mode of the addressed
bank. The read modes of other banks are not affected. Only Asynchronous Read and Single
Synchronous Read operations should be used to read the Electronic Signature. A Read
Array command is required to return the bank to Read Array mode.
4.4
Read CFI Query command
The Read CFI Query command is used to read data from the Common Flash Interface
(CFI).
One Bus Write cycle is required to issue the Read CFI Query command. Once a bank is in
Read CFI Query mode, subsequent Bus Read operations in the same bank will output the
contents of the Common Flash Interface.
The Read CFI Query command can be issued at any time, even during program or erase
operations.
If a Read CFI Query command is issued to a bank that is executing a program or erase
operation the bank will go into Read CFI Query mode. Subsequent Bus Read cycles will
output the CFI data and the Program/Erase controller will continue to program or erase in
the background.
The Read CFI Query command will only change the read mode of the addressed bank. The
read modes of other banks are not affected. Only Asynchronous Read and Single
Synchronous Read operations should be used to read from the CFI. A Read Array
command is required to return the bank to Read Array mode.
Dual operations between the Extended Flash Array (EFA) and the CFI memory space are
not allowed (see Table 20: Dual operation limitations for details).
22/114
M58PR256J, M58PR512J
4.5
Command interface
Clear Status Register command
The Clear Status Register command can be used to reset (set to ‘0’) all error bits (SR1,
SR3, SR4, SR5, SR8 and SR9) in the Status Register.
One Bus Write cycle is required to issue the Clear Status Register command. The Clear
Status Register command does not affect the read mode of the bank.
The error bits in the Status Register do not automatically return to ‘0’ when a new command
is issued. The error bits in the Status Register should be cleared before attempting a new
program or erase command.
4.6
Block Erase command
The Block Erase command is used to erase a Block. It sets all the bits within the selected
Block to ’1’. All previous data in the Block is lost.
If the Block is protected then the erase operation will abort, the data in the Block will not be
changed and the Status Register will output the error.
Two Bus Write cycles are required to issue the command.
●
The first bus cycle sets up the Block Erase command.
●
The second latches the Block address and starts the Program/Erase Controller.
If the second bus cycle is not the Block Erase Confirm code, Status Register bits SR4 and
SR5 are set and the command is aborted.
Once the command is issued the bank enters Read Status Register mode and any read
operation within the addressed bank will output the contents of the Status Register. A Read
Array command is required to return the bank to Read Array mode.
During Block Erase operations the bank containing the Block being erased will only accept
the Read Array, Read Status Register, Read Electronic Signature, Read CFI Query and the
Program/Erase Suspend command, all other commands will be ignored.
The Block Erase operation aborts if Reset, RP, goes to VIL. As data integrity cannot be
guaranteed when the Block Erase operation is aborted, the Block must be erased again.
Refer to Dual Operations section for detailed information about simultaneous operations
allowed in banks not being erased.
Typical Erase times are given in Table 22: Program/Erase times and endurance cycles.
See Appendix C, Figure 23: Block Erase and EFA Block Erase flowchart and pseudo code,
for a suggested flowchart for using the Block Erase command.
23/114
Command interface
4.7
M58PR256J, M58PR512J
Program command
The Program command is used to program a single Word to the memory array. It is
supported only by Program Regions configured in the Control Program mode. If a Program
command is issued to a Program Region configured in the Object Program mode, the
Program operation is aborted and the SR4 and SR8 Status Register bits are set (see
Section 5: Program operations).
Two Bus Write cycles are required to issue the Program Command.
●
The first bus cycle sets up the Program command.
●
The second latches the address and data to be programmed and starts the
Program/Erase Controller.
The Program command has to be written to the ’A’ Segment halves (address bit A3 = 0) in
the 1 KByte Program Region, whereas the data to be programmed is written to the specific
address of the bank to be programmed.
Once the programming has started, read operations in the bank being programmed output
the Status Register contents.
Programming can be performed in one bank at a time, meanwhile the other banks must be
in Read or Erase Suspend mode.
The Status Register P/E.C. bit, SR7, indicates the progress of the Program operation. It
should be read to check whether the operation has completed or not.
After completion of the Program operation (SR7 = 1), one of the error bits (SR4, SR3 and
SR1) going High means that an error was detected: either a failure occurred during
programming, VPP is outside the allowed voltage range or an attempt to program a locked
Block was made. See Section 6: Status Register for detailed information.
During a Program operation, the bank containing the Word being programmed will only
accept the Read Array, Read Status Register, Read Electronic Signature, Read CFI Query
and the Program/Erase Suspend command, all other commands will be ignored. A Read
Array command is required to return the bank to Read Array mode.
Refer to Dual Operations section for detailed information about simultaneous operations
allowed in banks not being programmed.
Typical Program times are given in Table 22: Program/Erase times and endurance cycles.
The Program operation aborts if Reset, RP, goes to VIL. As data integrity cannot be
guaranteed when the Program operation is aborted, the Word must be reprogrammed.
See Appendix C, Figure 20: Program and EFA Block Program flowchart and pseudo code,
for the flowchart for using the Program command.
24/114
M58PR256J, M58PR512J
4.8
Command interface
Buffer Program command
The Buffer Program Command makes use of the device’s 1 KByte Write Buffer to speed up
programming. Up to 1 KByte can be loaded into the Write Buffer and programmed into the
specified 1KB aligned location in the main array. The Buffer Program command dramatically
reduces in-system programming time compared to the standard non-buffered Program
command.
The Buffer Program command is supported in both the Object Program mode and the
Control Program mode.
When using the Buffer Program command in a region configured in Object mode, the start
programming address must be aligned to the 1KB buffer.
When using the Buffer Program command in a region configured in the Control Program
mode, the programmed address must be within the ’A’ Segment halves of the Program
Region (addresses with A3 = 0) and the ’B’ Segment halves of the Program Region
(addresses with A3 = 1) must be filled only with FFFFh data.
Before issuing the Buffer Program Setup command, the status register bit SR7 at bank
address should be read to ensure that the buffer is available (SR7=1).
Four successive steps are required to issue the Buffer Program command:
1.
The first Bus Write cycle sets up the Buffer Program command. The setup code can be
addressed to any location within the targeted Block.
2.
The second Bus Write cycle sets up the number of Words to be programmed. Value n
is written to the same Block address, where n+1 is the number of Words to be
programmed. The maximum buffer count is 1FF (512 Words).
3.
Use n+1 Bus Write cycles to load the address and data for each Word into the Write
Buffer. Addresses must lie within the range from the start address to the start address +
n, where the start address is the location of the first data to be programmed. The start
address must be aligned to a 1 KB boundary.
4.
The final Bus Write cycle confirms the Buffer Program command and starts the
program operation.
All the addresses used in the Buffer Program operation must lie within the same Block.
The Buffer Program operation does not change the Read Status of the banks until the Buffer
Program Confirm Command is issued. The Buffer Program Confirm Command change the
Read Status of the Bank to Read Status Register so after Buffer Program Confirm
Command, read operations in the bank will output the contents of the Status Register.
Invalid address combinations or failing to follow the correct sequence of Bus Write cycles
will set an error in the Status Register and abort the operation without affecting the data in
the memory array.
If the Block being programmed is protected an error will be set in the Status Register and
the operation will abort without affecting the data in the memory array.
During Buffer Program operations the bank being programmed will only accept the Read
Array, Read Status Register, Read Electronic Signature, Read CFI Query and the
Program/Erase Suspend command, all other commands will be ignored.
Refer to Dual Operations section for detailed information about simultaneous operations
allowed in banks not being programmed.
See Appendix C, Figure 21: Buffer Program flowchart and pseudo code, for a suggested
flowchart on using the Buffer Program command.
25/114
Command interface
4.9
M58PR256J, M58PR512J
Buffer Enhanced Factory Program command
The Buffer Enhanced Factory Program command has been specially developed to speed up
programming in manufacturing environments where the programming time is critical.
It is used to program one or more Write Buffer(s) of 1KB to an aligned 1KB Program Region.
Once the device enters Buffer Enhanced Factory Program mode, the Write Buffer can be
reloaded any number of times as long as the address remains within the same main array
Block. Only one Block can be programmed at a time.
When programming a Program Region configured in Control Program mode with the Buffer
Enhanced Factory Program command, ’B’ half Segment addresses (A3 = 1) should not
contain ’0’ values. When writing to a Program Region configured in Object Program mode
the B half may contain some ’0’ values.
If the number of Bytes to program is less than 1 KByte, the remaining addresses must be
filled with FFFFh.
The use of the Buffer Enhanced Factory Program command requires certain operating
conditions:
●
VPP must be set to VPPH
●
VDD must be within operating range
●
Ambient temperature TA must be 30°C ± 10°C
●
The targeted Block must be unlocked
●
The start address must be aligned with the start of a 1KB buffer boundary
●
The address must remain the Start Address throughout programming.
Dual operations are not supported during the Buffer Enhanced Factory Program operation
and the command cannot be suspended.
The Buffer Enhanced Factory command programs one Block at a time. All data to be
programmed must be contained in a single Block. If the internal address counter is
incremented beyond the highest Block address, addressing wraps around to the beginning
of the Block.
The Buffer Enhanced Factory Program Command consists of three phases: the Setup
Phase, the Program and Verify Phase, and the Exit Phase, Please refer to Table 8: Factory
Program command for detail information.
4.10
Setup phase
The Buffer Enhanced Factory Program command requires two Bus Write cycles to initiate
the command.
●
The first Bus Write cycle sets up the Buffer Enhanced Factory Program command.
●
The second Bus Write cycle confirms the command.
After the confirm command is issued, read operations output the contents of the Status
Register. The read Status Register command must not be issued as it will be interpreted as
data to program.
The Status Register P/E.C. Bit SR7 should be read to check that the P/E.C. is ready to
proceed to the next phase.
If an error is detected, SR4 goes high (set to ‘1’) and the Buffer Enhanced Factory Program
operation is terminated. See Status Register section for details on the error.
26/114
M58PR256J, M58PR512J
4.11
Command interface
Program and Verify phase
The Program and Verify Phase requires 512 cycles to program the 512 Words to the Write
Buffer. The data is stored sequentially, starting at the first address of the Write Buffer, until
the Write Buffer is full (512 Words). To program less than 512 Words, the remaining Words
should be programmed with FFFFh.
Three successive steps are required to issue and execute the Program and Verify Phase of
the command.
1.
Use one Bus Write operation to latch the Start Address and the first Word to be
programmed. The Status Register Bank Write Status bit SR0 should be read to check
that the P/E.C. is ready for the next Word.
2.
Each subsequent Word to be programmed is latched with a new Bus Write operation.
The address must remain the Start Address as the P/E.C. increments the address
location.If any address that is not in the same Block as the Start Address is given, the
Program and Verify Phase terminates. Status Register bit SR0 should be read between
each Bus Write cycle to check that the P/E.C. is ready for the next Word.
3.
Once the Write Buffer is full, the data is programmed sequentially to the memory array.
After the program operation the device automatically verifies the data and reprograms if
necessary.
The Program and Verify phase can be repeated, without re-issuing the command, to
program additional 512 Word locations as long as the address remains in the same Block.
4.
Finally, after all Words, or the entire Block have been programmed, write FFFFh to any
address outside the Block containing the Start Address, to terminate the Program and
Verify Phase.
Status Register bit SR0 must be checked to determine whether the program operation is
finished. The Status Register may be checked for errors at any time but it must be checked
after the entire Block has been programmed.
4.12
Exit phase
Status Register P/E.C. bit SR7 set to ‘1’ indicates that the device has exited the Buffer
Enhanced Factory Program operation.
On exiting the Buffered Enhanced Factory Program algorithm by writing FFFFh to an
address outside the Block containing the start address, the read mode of the programmed
and addressed banks remains unchanged.
A full Status Register check should be done to ensure that the Block has been successfully
programmed. See the section on the Status Register for more details.
For optimum performance the Buffer Enhanced Factory Program command should be
limited to a maximum of 100 program/erase cycles per Block. If this limit is exceeded the
internal algorithm will continue to work properly but some degradation in performance is
possible. Typical program times are given in Table 22.
See Appendix C, Figure 28: Buffer Enhanced Factory Program flowchart and pseudo code,
for a suggested flowchart on using the Buffer Enhanced Factory Program command.
27/114
Command interface
4.13
M58PR256J, M58PR512J
Program/Erase Suspend command
The Program/Erase Suspend command is used to pause a Program or Block Erase
operation. The command can be addressed to any bank.
The Program/Erase Resume command is required to restart the suspended operation.
One bus write cycle is required to issue the Program/Erase Suspend command. Once the
Program/Erase Controller has paused bits SR7, SR6 and/ or SR2 of the Status Register will
be set to ‘1’.
The following commands are accepted during Program/Erase Suspend:
–
Program/Erase Resume
–
Read Array (data from erase-suspended Block or program-suspended Word is not
valid)
–
Read Status Register
–
Read Electronic Signature
–
Read CFI Query
–
Read EFA
Additionally, if the suspended operation was a Block Erase then the following commands are
also accepted:
–
Clear Status Register
–
Program (except in erase-suspended Block)
–
Buffer Program (except in erase suspended Blocks)
–
Block Lock
–
Block Lock-Down
–
Block Unlock
–
Program EFA
During an erase suspend the Block being erased can be protected by issuing the Block Lock
or Block Lock-Down commands. When the Program/Erase Resume command is issued the
operation will complete.
It is possible to accumulate multiple suspend operations. For example: suspend an erase
operation, start a program operation, suspend the program operation, then read the array.
If a Program command is issued during a Block Erase Suspend, the erase operation cannot
be resumed until the program operation has completed.
The Program/Erase Suspend command does not change the read mode of the banks. If the
suspended bank was in Read EFA, Read Status Register, Read Electronic signature or
Read CFI Query mode the bank remains in that mode and outputs the corresponding data.
Refer to Dual Operations section for detailed information about simultaneous operations
allowed during Program/Erase Suspend.
During a Program/Erase Suspend, the device can be placed in standby mode by taking Chip
Enable to VIH. Program/erase is aborted if Reset, RP, goes to VIL.
See Appendix C, Figure 22: Program Suspend & Resume flowchart and pseudo code, for
flowcharts for using the Program/Erase Suspend command.
28/114
M58PR256J, M58PR512J
4.14
Command interface
Program/Erase Resume command
The Program/Erase Resume command is used to restart the program or erase operation
suspended by the Program/Erase Suspend command. One Bus Write cycle is required to
issue the command. The command can be issued to any address.
The Program/Erase Resume command does not change the read mode of the banks. If the
suspended bank was in Read Status Register, Read Electronic signature or Read CFI
Query mode the bank remains in that mode and outputs the corresponding data.
If a Program command is issued during a Block Erase Suspend, then the erase cannot be
resumed until the program operation has completed.
See Appendix C, Figure 22: Program Suspend & Resume flowchart and pseudo code and
Figure 24: Erase Suspend & Resume flowchart and pseudo code, for flowcharts for using
the Program/Erase Resume command.
4.15
Protection Register Program command
The Protection Register Program command is used to program the user One-TimeProgrammable (OTP) area of the Protection Register and the two Protection Register Locks.
The device features 16 OTP areas of 128 bits and one OTP area of 64 bits, as shown in
Figure 4: Protection Register memory map.
The areas are programmed one Word at a time. When shipped all bits in the area are set to
‘1’. The user can only program the bits to ‘0’.
Two Bus Write cycles are required to issue the Protection Register Program command.
●
The first bus cycle sets up the Protection Register Program command.
●
The second latches the address and data to be programmed to the Protection Register
and starts the Program/Erase Controller.
Read operations to the bank being programmed output the Status Register content after the
program operation has started.
Attempting to program a previously protected Protection Register will result in a Status
Register error.
The Protection Register Program cannot be suspended. Dual operations between the
Extended Flash Array (EFA) and the Protection Register memory space are not allowed
(see Table 20: Dual operation limitations for details).
The two Protection Register Locks are used to protect the OTP areas from further
modification. The protection of the OTP areas is not reversible. Refer to Figure 4: Protection
Register memory map, for details on the Lock bits.
See Appendix C, Figure 27: Protection Register Program flowchart and pseudo code, for a
flowchart for using the Protection Register Program command.
29/114
Command interface
4.16
M58PR256J, M58PR512J
Set Configuration Register command
The Set Configuration Register command is used to write a new value to the Configuration
Register.
Two Bus Write cycles are required to issue the Set Configuration Register command.
●
The first cycle sets up the Set Configuration Register command and the address
corresponding to the Configuration Register content.
●
The second cycle writes the Configuration Register data and the confirm command.
The Configuration Register data must be written as an address during the bus write cycles,
that is A0 = CR0, A1 = CR1, …, A15 = CR15. Addresses A16-Amax are ignored.
Read operations output the array content after the Set Configuration Register command is
issued.
The Read Electronic Signature command is required to read the updated contents of the
Configuration Register.
4.17
Block Lock command
The Block Lock command is used to lock a Block and prevent program or erase operations
from changing the data in it. All Blocks are locked after power-up or reset.
Two Bus Write cycles are required to issue the Block Lock command.
●
The first bus cycle sets up the Block Lock command.
●
The second Bus Write cycle latches the Block address and locks the Block.
The lock status can be monitored for each Block using the Read Electronic Signature
command. Table 21 shows the Lock Status after issuing a Block Lock command.
Once set, the Block Lock bits remain set even after a hardware reset or power-down/powerup. They are cleared by a Block Unlock command.
Refer to the section, Block Locking, for a detailed explanation. See Appendix C, Figure 25:
Main Array and EFA locking operations flowchart and pseudo code, for a flowchart for using
the Lock command.
4.18
Block Unlock command
The Block Unlock command is used to unlock a Block, allowing the Block to be programmed
or erased.
Two Bus Write cycles are required to issue the Block Unlock command.
●
The first bus cycle sets up the Block Unlock command.
●
The second Bus Write cycle latches the Block address and unlocks the Block.
The lock status can be monitored for each Block using the Read Electronic Signature
command. Table 21 shows the protection status after issuing a Block Unlock command.
Refer to the section, Block Locking, for a detailed explanation and Appendix C, Figure 25:
Main Array and EFA locking operations flowchart and pseudo code, for a flowchart for using
the Block Unlock command.
30/114
M58PR256J, M58PR512J
4.19
Command interface
Block Lock-Down command
The Block Lock-Down command is used to lock-down a locked or unlocked Block.
A locked-down Block cannot be programmed or erased. The lock status of a locked-down
Block cannot be changed when WP is low, VIL. When WP is high, VIH, the lock-down
function is disabled and the locked Blocks can be individually unlocked by the Block Unlock
command.
Two Bus Write cycles are required to issue the Block Lock-Down command.
●
The first bus cycle sets up the Block Lock-Down command.
●
The second Bus Write cycle latches the Block address and locks-down the Block.
The lock status can be monitored for each Block using the Read Electronic Signature
command.
Locked-Down Blocks revert to the locked (and not locked-down) state when the device is
reset on power-down. Table 21 shows the Lock Status after issuing a Block Lock-Down
command.
Refer to Section 12: Block locking, for a detailed explanation and Appendix C, Figure 25:
Main Array and EFA locking operations flowchart and pseudo code, for a flowchart for using
the Lock-Down command.
4.20
Blank Check command
The Blank Check command is used to check whether a Main Array Block has been
completely erased. Only one Block at a time can be checked. Two bus cycles are required to
issue the Blank Check command:
●
The first bus cycle writes the Blank Check command to any address in the Block to be
checked.
●
The second bus cycle writes the Blank Check Confirm command (D0h) to any address
in the Block to be checked and starts the Blank Check operation.
If the second bus cycle is not Blank Check Confirm, Status Register bits SR4 and SR5 are
set to ‘1’ and the command aborts.
Once the command is issued the addressed bank automatically enters the Status Register
mode and further reads within the bank output the Status Register contents.
The only operation permitted during Blank Check is Read Status Register. Dual Operations
are not supported while a Blank Check operation is in progress. Blank Check operations
cannot be suspended and are not allowed while the device is in Program/Erase Suspend.
The SR7 Status Register bit indicates the status of the Blank Check operation in progress:
SR7 = ‘0’ means that the Blank Check operation is still ongoing. SR7 = ‘1’ means that the
operation is complete.
The SR5 Status Register bit goes High (SR5 = ‘1’) to indicate that the Blank Check
operation has failed.
At the end of the operation the bank remains in the Read Status Register mode until another
command is written to the Command Interface.
See Appendix C, Figure 26: Blank Check flowchart and pseudo code, for a suggested
flowchart for using the Blank Check command.
Typical Blank Check times are given in Figure 22: Program/Erase times and endurance
cycles.
31/114
Command interface
4.21
M58PR256J, M58PR512J
Set Enhanced Configuration Register command
The Set Enhanced Configuration Register command is used to write a new value to the
Enhanced Configuration Register. Two Bus Write cycles are required to issue the Set
Enhanced Configuration Register command.
●
The first cycle sets up the Set Enhanced Configuration Register command and the
address corresponding to the Enhanced Configuration Register contents.
●
The second cycle writes the Enhanced Configuration Register data and the Confirm
command.
The Enhanced Configuration Register data must be written as an address during the bus
write cycle, that is A0 = ECR0, A1 = ECR1, …, A15 = ECR15.
If the Set Enhanced Configuration Register setup write cycle is not followed by the Set
Enhanced Configuration Register Confirm command (04h), Status Register bits SR4 and
SR5 are set.
After executing successfully this command, the bank addressed returns to Read Array state.
4.22
Read EFA Block command
The Read EFA Block command places the addressed bank in the Read EFA mode, where
all addresses in the addressed bank are remapped to EFA Block addresses.
When the device is in the Read EFA mode, the Main Array Blocks in the addressed bank
can no longer be accessed until a Read Array Command is issued to the bank.
One Bus Write cycle is required to issue the Read EFA Block command. Once a bank is in
Read EFA mode, subsequent read operations from any address within the EFA Block will
output the EFA data from the EFA Block. See Table 4: EFA memory map for details.
EFA Blocks can be read through Asynchronous or Single Synchronous read operations
only. The Asynchronous Page Read mode cannot be used to read the EFA Blocks.
If a Read EFA command is issued in a bank that is programming or erasing, the read mode
of the bank will change to Read EFA mode.
32/114
M58PR256J, M58PR512J
4.23
Command interface
Program EFA Block command
The Program EFA Block command is used to program a single Word to an EFA Block.
Two Bus Write cycles are required to issue the Program EFA Block command.
●
The first bus cycle sets up the Program EFA Block command.
●
The second cycle latches the address and data to be programmed and starts the
Program/Erase Controller.
Once the programming has started, read operations in the bank being programmed output
the Status Register contents.
Issuing the Program EFA Block command to an address outside the EFA Block address
range generates a Program Error in the Status Register (SR4=1)
A Read EFA Block command is required to return the bank to Read EFA mode. Refer to
Section 11: Dual operations and multiple bank architecture for detailed information about
simultaneous operations allowed in the banks not being programmed. Typical EFA Program
times are given in Table 22: Program/Erase times and endurance cycles.
The Program operation aborts if Reset, RP, is at VIL. As data integrity cannot be guaranteed
when a Program EFA Block operation is aborted, the Word must be reprogrammed. See
Appendix C, Figure 20: Program and EFA Block Program flowchart and pseudo code, for
the flowchart for using the Program EFA Block command.
4.24
Erase EFA Block command
The Erase EFA Block command is used to erase an EFA Block. It sets all the bits within the
selected Block to '1'. All previous data in the Block is lost. If the EFA Block is protected then
the erase operation will abort, the data in the EFA Block will not be changed and the Status
Register will output the error.
Two Bus Write cycles are required to issue the command.
●
The first bus cycle sets up the Erase EFA Block command.
●
The second latches the EFA Block address and starts the Program/Erase Controller.
The first cycle brings the EFA plane to the foreground and latches the address of the EFA
Block to be erased. Reading from the bank when the EFA plane is in the foreground returns
the Status Register.
Once the erase operation has started, read operations in the bank being erased output the
Status Register contents.
If the Erase EFA Block Confirm command code is not issued in the second bus cycle, Status
Register bits SR4 and SR5 are set, the command is aborted and the addressed bank
remains in the Read Status Register mode.
Issuing the Erase EFA Block command outside the EFA Block address range generates an
error in the Status Register (SR5=1).
The Erase EFA Block operation will abort if Reset, RP, is at VIL. As data integrity cannot be
guaranteed when the Erase EFA Block operation is aborted, the Block must be erased
again.
Refer to Section 11: Dual operations and multiple bank architecture section for detailed
information about simultaneous operations allowed with array and non-array Blocks. Typical
Erase times are given in Table 22: Program/Erase times and endurance cycles.
See Appendix C, Figure 23: Block Erase and EFA Block Erase flowchart and pseudo code,
for a suggested flowchart for using the Erase EFA Block command.
33/114
Command interface
4.25
M58PR256J, M58PR512J
Suspend EFA Block command
The Suspend EFA Block command is used to pause a Program or Erase EFA Block
operation. The command can be addressed to any bank.
The Resume EFA Block command is required to restart the suspended operation.
One bus write cycle is required to issue the Suspend EFA Block command. Once the
Program/Erase Controller has paused bits SR7, SR6 and/ or SR2 of the Status Register will
be set to '1'.
The following commands are accepted during Suspend EFA Block:
–
Resume EFA Block
–
Read Array
–
Read EFA Block (data from Erase-Suspended Blocks or Program-Suspended
Words is not valid)
–
Read Status Register
–
Read Electronic Signature
–
Read CFI Query.
Additionally, if the suspended operation was an Erase EFA Block operation then the
following commands are also accepted:
–
Clear Status Register
–
Program EFA Block (except in the Erase-Suspended Block)
–
Program and Buffer Program in the main array
–
Block Lock
–
Block Lock-Down
–
Block Unlock
–
EFA Block Lock
–
EFA Block Lock-Down
–
EFA Block Unlock
During Suspend EFA Block the EFA Block being erased can be protected by issuing the
EFA Block Lock or EFA Block Lock-Down commands. When the Resume EFA Block
command is issued the operation is resumed and completes. The Suspend EFA Block
operation can be repeated.
For example, it is possible to suspend an Erase EFA Block operation, to start a Program
EFA Block operation, to suspend the program operation, then read EFA locations...
If a Program EFA Block command is issued during a Suspend EFA Block operation, the
Erase EFA Block operation cannot be resumed until the program operation has completed.
The state of the bank where the command was issued will not change.
Refer to Section 11: Dual operations and multiple bank architecture for detailed information
about simultaneous operations allowed during a Suspend EFA Block operation.
During a Suspend EFA Block operation, the device can be placed in standby mode by taking
Chip Enable to VIH. Program/Erase is aborted if Reset, RP, is VIL.
See Appendix C, Figure 22: Program Suspend & Resume flowchart and pseudo code and
Figure 24: Erase Suspend & Resume flowchart and pseudo code, for flowcharts for using
the Suspend EFA Block command.
34/114
M58PR256J, M58PR512J
4.26
Command interface
Resume EFA Block command
The Resume EFA Block command is used to restart the Program or Erase EFA Block
operation suspended by the Suspend EFA Block command. One Bus Write cycle is required
to issue the command. The command can be issued to any address.
The Resume EFA Block command does not change the read mode of the banks.
If a Program EFA Block command is issued while an Erase EFA Block operation has been
suspended, then the erase operation cannot be resumed until the program operation has
completed.
See Appendix C, Figure 22: Program Suspend & Resume flowchart and pseudo code and
Figure 24: Erase Suspend & Resume flowchart and pseudo code, for flowcharts for using
the Resume EFA Block command.
4.27
Lock EFA Block command
The Lock EFA Block command is used to lock an EFA Block and prevent program or erase
operations from changing the data in it. All EFA Blocks are locked after power-up or reset.
Two Bus Write cycles are required to issue the Lock EFA Block command.
●
The first bus cycle sets up the Lock EFA Block command.
●
The second bus cycle latches the Block address and locks the Block.
The lock status can be monitored for each EFA Block using the Read Electronic Signature
command.
Once set, the Block Lock bits remain set even after a hardware reset or a powerdown/power-up sequence. They are cleared by an Unlock EFA Block command.
Program or Erase operations to a locked EFA Block generates an error in the Status
Register (SR1=1).
Refer to Section 12: Block locking for a detailed explanation. See Appendix C, Figure 25:
Main Array and EFA locking operations flowchart and pseudo code, for a flowchart for using
the Lock EFA Block command.
4.28
Unlock EFA Block command
The Unlock EFA Block command is used to unlock an EFA Block, allowing the EFA Block to
be programmed or erased.
Two Bus Write cycles are required to issue the Unlock EFA Block command.
●
The first bus cycle sets up the Unlock EFA Block command.
●
The second Bus Write cycle latches the Block address and unlocks the Block.
The lock status can be monitored for each EFA Block using the Read Electronic Signature
command.
Refer to Section 12: Block locking for a detailed explanation and to Appendix C, Figure 25:
Main Array and EFA locking operations flowchart and pseudo code, for a flowchart for using
the Unlock EFA Block command.
35/114
Command interface
4.29
M58PR256J, M58PR512J
Lock-Down EFA Block command
The Lock-Down EFA Block command is used to lock down a locked or unlocked EFA Block.
A locked-down EFA Block cannot be programmed or erased. The lock status of a lockeddown EFA Block cannot be changed when WP is low, VIL. When WP is High, VIH, the lockdown function is disabled and the locked EFA Blocks can be individually unlocked by issuing
the Unlock EFA Block command.
Two Bus Write cycles are required to issue the Lock-Down EFA Block command.
●
The first bus cycle sets up the Lock-Down EFA Block command.
●
The second Bus Write cycle latches the Block address and locks down the Block.
The lock status can be monitored for each EFA Block using the Read Electronic Signature
command.
Locked-Down EFA Blocks revert to the locked (and not locked-down) state when the device
is reset on power-down. Table 21 shows the Lock Status after issuing a Lock-Down EFA
Block command.
Refer to Section 12: Block locking for a detailed explanation and to Appendix C, Figure 25:
Main Array and EFA locking operations flowchart and pseudo code, for a flowchart for using
the Lock-Down EFA Block command.
36/114
M58PR256J, M58PR512J
Table 7.
Command interface
Standard commands
Commands
Cycles
Bus operations(1)
1st Cycle
2nd Cycle
Op.
Add
Data
Op.
Add
Data
Read Array
1+
Write
BKA
FFh
Read
WA
RD
Read Status Register
1+
Write
BKA
70h
Read
BKA(2)
SRD
Read
(2)
BKA
ESD
Read
BKA(2)
QD
Read Electronic Signature
1+
Write
BKA
90h
Read CFI Query
1+
Write
BKA
98h
Clear Status Register
1
Write
X
50h
Block Erase
2
Write
BKA or BA(3)
20h
Write
BA
D0h
Write
WA(3)
41h
Write
WA
PD
Program
Buffer Program
2
n+4
(4)
BKA or
Write
BA
E9h
Write
BA
n
Write
PA1
PD1
Write
PA2
PD2
Write
PAn+1
PDn+1
Write
X
D0h
Program/Erase Suspend
1
Write
X
B0h
Program/Erase Resume
1
Write
X
D0h
Protection Register Program
2
Write
PRA
C0h
Write
PRA
PRD
Set Configuration Register
2
Write
CRD
60h
Write
CRD
03h
60h
Write
BA
01h
60h
Write
ECRD
04h
(3)
Block Lock
2
Write
BKA or BA
Set Enhanced Configuration
Register
2
Write
ECRD
Block Unlock
2
Write
BKA or BA(3)
60h
Write
BA
D0h
(3)
60h
Write
BA
2Fh
BCh
Write
BA
D0h
Block Lock-Down
2
Write
Blank Check
2
Write
BA
Read EFA Block
1+
Write
BKA
Program EFA Block
2
Write
BKA or BA
2
Write
Suspend EFA Block
1
Write
X
Resume EFA Block
1
Write
X
2
Write
Unlock EFA Block
2
Write
Lock-Down EFA Block
2
Write
Read
WA
RD
44h
Write
WA
PD
(3)
24h
Write
BA
D0h
BKA or WA
Erase EFA Block
Lock EFA Block
94h
(3)
BKA or BA
B0h
D0h
(3)
64h
Write
BA
01h
BA(3)
64h
Write
BA
D0h
64h
Write
BA
2Fh
BKA or BA
BKA or
BA
1. X = Don't Care, WA = Word Address in targeted bank, RD = Read Data, SRD = Status Register Data, ESD = Electronic
Signature Data, QD = Query Data, BA = Block Address, BKA = Bank Address, PA = Program Address, PD = Program
Data, PRA = Protection Register Address, PRD = Protection Register Data, CRD = Configuration Register Data, ECRD =
Enhanced Configuration Register Data.
2. Must be same bank as in the first cycle. The signature addresses are listed in Table 9.
3. Any address within the bank can be used.
4. n+1 is the number of Words to be programmed.
37/114
Command interface
M58PR256J, M58PR512J
Factory Program command(1)
Table 8.
Command
Phase
Cycles
Bus Write operations
2nd
3rd
Add
Data
Add
Data Add
2
BKA or
WA(2)
80h
WA1
D0h
≥512
WA1
PD1
WA1
PD2
Setup
Buffer
Enhanced Program/
Factory Verify(3)
Program
Exit
1st
WA1
Final -1
Final
Data
Add
Data
Add
Data
PD3
WA1
PD511
WA1
PD512
NOT
FFFFh
BA1(4)
1
1. WA = Word Address in targeted bank, BKA = Bank Address, PD = Program Data, BA = Block Address, X = Don’t Care.
2. Any address within the bank can be used.
3. The Program/Verify phase can be executed any number of times as long as the data is to be programmed to the same
Block.
4. WA1 is the Start Address, NOT BA1 = Not Block Address of WA1.
Table 9.
Electronic Signature codes
Code
Manufacturer Code
256 Mbit
Device Code
512 Mbit
Main Block
Bank Address + 00
0020
Bank Address + 01
8818
8819
DQ1, DQ0 = 01
Unlocked
DQ1, DQ0 = 00
Locked and Locked-Down
DQ1, DQ0 = 11
Locked
EFA Block
Data (h)
Locked
Unlocked and Locked-Down
Block
Protection
Address (h)
Block Address + 02
DQ1, DQ0 = 10
DQ5, DQ4 = 01
Unlocked
DQ5, DQ4 = 00
Locked and Locked-Down
DQ5, DQ4 = 11
Unlocked and Locked-Down
DQ5, DQ4 = 10
Configuration Register
Bank Address + 05
CR(1)
Enhanced Configuration Register
Bank Address + 06
ECR(1)
Protection Register PR0
Lock
ST Factory Default
OTP Area Permanently Locked
Bank Address + 80
Bank Address + 81
Protection Register PR0
Bank Address + 84
Bank Address + 85
Bank Address + 88
Protection Register PR1 through PR16 Lock
Protection Registers PR1-PR16
Bank Address + 89
Bank Address + 8A
Bank Address + 109
0002
0000
Unique Device Number
OTP Area
PRLD(1)
OTP Area
1. CR = Configuration Register, ECR = Enhanced Configuration Register, PRLD = Protection Register Lock Data.
38/114
M58PR256J, M58PR512J
Figure 4.
Command interface
Protection Register memory map
PROTECTION REGISTERS
109h
PR16
User Programmable OTP
102h
91h
PR1
User Programmable OTP
8Ah
89h
88h
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PR0
User Programmable OTP
85h
84h
Unique device number
81h
80h
Protection Register Lock
1 0
AI07563
Table 10.
Protection Register locks
Lock
Description
Number
Lock 1
Address
80h
Bits
Bit 0
preprogrammed to protect Unique Device Number, address
81h to 84h in PR0
Bit 1
protects 64bits of OTP area, address 85h to 88h in PR0
Bits 2 to 15 reserved
Bit 1
protects 128bits of OTP area PR2
Bit 2
protects 128bits of OTP area PR3
----
89h
protects 128bits of OTP area PR1
----
Lock 2
Bit 0
Bit 13
protects 128bits of OTP area PR14
Bit 14
protects 128bits of OTP area PR15
Bit 15
protects 128bits of OTP area PR16
39/114
Program operations
5
M58PR256J, M58PR512J
Program operations
The M58PR256J and M58PR512J have innovative features specially developed to improve
the storage flexibility and efficiency of NOR Flash memory arrays.
Data and code can be stored more efficiently by using the right combination of program
methods and program modes.
There are two types of program methods, which use commands that consist of one or more
sequential Bus Write operations interpreted by the Command Interface:
●
Single Word Program method, which uses the Program command.
●
Buffered Program method, which uses either the Buffer Program command or the
Buffer Enhanced Factory Program command.
There are two program modes:
●
Control Program mode
●
Object Program mode.
The Control Program mode supports the two program methods, whereas the Object
Program mode only supports the Buffered Program method.
This new logical organization of program operations is made possible by the device
architecture, and in particular by the new concept of Program Regions.
5.1
Program Regions
Each Flash memory Block is divided into 256 Program Regions (see Figure 5: Program
Regions configured in Control or Object Program mode). Erase operations have a Block
granularity, whereas program operations have a Program Region granularity.
The user can configure each Program Region to be programmed either in the Control
Program mode or in the Object Program mode.
A given Block can contain Program Regions configured in the Control Program mode and
others configured in the Object Program mode.
Special care should be taken when selecting the programming mode for the Program
Regions because once the Program Regions are configured their program mode cannot be
changed until the entire Block is erased.
Each Program Region is split into 32 Segments of 32 Bytes and each Segment is
subdivided into two halves, ’A’ and ’B’. Address bit A3 determines whether a bit belongs to
the ’A’ half (A3 = 0) or to the ’B’ half (A3 = 1).
5.2
Program modes
There are two program modes, which allow the Flash memory to store different types of
data.
40/114
M58PR256J, M58PR512J
5.3
Program operations
Control Program mode
The Control Program mode is best suited to the storage of small, dynamic information.
Typically such data is contained within one Program Region and it will be frequently updated
and/or new data will be added to it.
Program Regions are configured in the Control Program mode by programming data only to
the ’A’ halves (bit A3= 0) of the Segments they contain. The ’B’ halves of the Segments must
remain erased, that is they should not contain any zero’s (see Figure 5: Program Regions
configured in Control or Object Program mode).
In a Program Region of 1KB configured in the Control Program mode, only 512B of data can
be stored.
When the Program Regions are configured in the Control Program mode, any program
method can be used: the Single Word or the Buffered Program methods.
Once a Program Region has been configured in the Control Program mode, if a zero is
written to a ’B’ half of one of its Segments, the program operation is terminated and an error
is generated. The Status Register Bits SR4 and SR9 are set to ‘1’. (Refer to Status Register
and to Table 12: Relationships between Program methods and Program modes, for details.)
The program mode of a Program Region configured in the Control Program mode can only
be changed by first erasing the Block that contains the Program Region.
5.4
Object Program mode
The Object Program mode is best suited to the storage of large, static information.
In a Program Region of 1KB configured in the Object Program mode, 1KB of data can be
stored.
When a Program Region is configured in the Object Program mode, it cannot be reprogrammed or have new data added without first erasing the entire Block that contains the
Program Region.
Program Regions are configured in the Object Program mode simply by programming at
least one bit in the ’B’ half (A3 = 1) of one of the Segments they contain.
If the programmed data is smaller than 1KB, the unused space remains in the erased state
(all the bits set to FFFFh), but can no longer be used to program data. See Figure 5:
Program Regions configured in Control or Object Program mode.
When the Program Regions are configured in the Object Program mode, only the Buffered
Program methods can be used. If an attempt is made to use the Single Word Program
method, the program operation is aborted and Status Register error bits SR4 and SR8 are
set to ‘1’. (Refer to Status Register and to Table 12: Relationships between Program
methods and Program modes, for details.)
41/114
Program operations
Figure 5.
M58PR256J, M58PR512J
Program Regions configured in Control or Object Program mode
Program Region in Control Program Mode
Data 1
128 KWord BLOCK
Program Region 0
1 KByte (512B Programmable)
Program Region 1
1 KByte (512B Programmable)
Data 2
Data 3
Data 4
SEGMENT 31
F F F F F F F F
SEGMENT 30
F F F F F F F F
SEGMENT 3
F F F F F F F F
SEGMENT 2
F F F F F F F F
SEGMENT 1
F F F F F F F F
SEGMENT 0
...
Data (n – 4)
Data (n – 3)
Data (n – 2)
Data (n – 1)
Data n
:
:
:
:
:
F F F F F F F F
A Halves
(A3 = 0)
B Halves
(A3 = 1)
Program Region in Object Program Mode
F F F F F F F F F F F F F F F F
SEGMENT 31
Program Region 254
1 KByte (512B Programmable)
F F F F F F F F F F F F F F F F
SEGMENT 30
Program Region 255
1 KByte (512B Programmable)
F F F F F F
...
SEGMENT 3
SEGMENT 2
Object
SEGMENT 1
SEGMENT 0
1 KByte
ai10135
5.5
Program methods
The device supports two types of program methods:
●
Single Word Program method, which is used to program a single Word to a specific
address of the memory array.
●
Buffered Program methods, which can be split into two different methods:
–
a Buffer Program method that uses the device's Write Buffer to speed up
programming. The data is written into the Write Buffer and then programmed to
the specified Block address.
–
a Buffer Enhanced Factory Program method, developed to speed up programming
in manufacturing environments where the programming time is critical. The data is
written in the Write Buffer and then programmed to the specified Block.
The following sections describe the relationship between program commands and Program
methods in detail. See Table 12: Relationships between Program methods and Program
modes and Table 11: Program methods available with each Program mode.
42/114
M58PR256J, M58PR512J
5.6
Program operations
Single Word Program method
The Single Word Program method is based on the Program command. It is supported only
by Program Regions configured in the Control Program mode.
If the Single Word Program method is attempted in a Program Region configured in the
Object Program mode, the program operation is aborted and Status Register bits SR4 and
SR8 are set.
See Section 4: Command interface for a detailed description of the Program command.
In Program Regions configured in the Control Program mode, the Program command can
be issued several times.
Using the Single Word Program method to program one or more bits to '0' in the ’B’ halves of
the Segments (A3 = 1), of an erased or already programmed Program Region, will generate
an error:
5.7
●
in the case of an erased Program Region, it is considered an illegal operation that will
set Status Register bits SR4 and SR9.
●
in the case of an already programmed Program Region, an error is always generated
because:
–
to be able to write to a Program Region configured in the Object Program mode,
the entire Block that contains the Program Region must be erased first.
–
it is not allowed to write to the ’B’ halves of the Segments of a Program Region
configured in the Control Program mode.
Buffer Program method
The Buffer Program method is based on the Buffer Program command. It makes use of a
1KByte Write Buffer to speed up programming. The data is written to the Write Buffer and
then programmed to the specified main array location.
The Buffer Program method is supported whatever the program mode of the Program
Regions.
When using the Buffer Program method in a Program Region configured in the Object
Program mode, the start address must be aligned to the 1KB Write Buffer.
When using the Buffer Program method in a Program Region configured in the Control
Program mode, the address to be programmed must be located inside the ’A’ halves of the
Program Region’s Segments (addresses with A3 = 0) and the ’B’ halves of the Segments
(addresses with A3= 1) must be filled only with FFFFh data.
The Buffer Program command can be issued several times to Program Regions configured
in the Control Program mode.
The Buffer Program command can be issued only once in Program Regions configured in
the Object Program mode. Attempts to program the same Program Regions by re-issuing
the Buffer Program command will lead to data corruption.
See Section 4: Command interface for a detailed description of the Buffer Program
command.
43/114
Program operations
5.8
M58PR256J, M58PR512J
Buffer Enhanced Factory Program method
The Buffer Enhanced Factory Program method is based on the Buffer Enhanced Factory
Program command.
The Buffer Enhanced Factory Program method is supported by the Program Regions
regardless of the program mode they are configured in.
In this program method, the Program Region (1KB) must be filled entirely, regardless of the
Program mode used. If the size of the data to be written is less than 1KB, the remaining
addresses in the Program Region must be filled with FFFFh.
When using the Buffer Enhanced Factory Program method in a Program Region configured
in the Control Program mode, the addresses to be programmed must be located in the ’A’
half of the Program Regions’ Segments (A3 = 0) and the ’B’ half of the Segments (A3 = 1)
must be filled only with FFFFh.
See Section 4: Command interface for a detailed description of the Buffer Enhanced Factory
Program command.
Table 11.
Program methods available with each Program mode
Program Methods(1)
Buffered Program
Program Mode
Single Word
Program
Control Program Mode
X
Object Program Mode
Buffer Program
Buffer Enhanced Factory
Program
X
X
X
X
1. X means available.
Table 12.
Relationships between Program methods and Program modes
Program Method
Program
Region Status
Address Bit
A3 Value
Buffered Program
Buffer
Program
A3 = 0 (’A’ Half)
Buffer Enhanced
Factory Program
Single Word Program
Program Region
Program Region configured in Control
configured in Control
Program mode
Program mode
Erased
Program Region configured in Object
A3 = 1 (’B’ Half)
Program mode
NOT ALLOWED
Program aborted, Status
Register Error bits SR4
and SR9 set
A3 = 0 (’A’ Half) Program operation successful
Control Program
NOT ALLOWED
mode
A3 = 1 (’B’ Half)
Program aborted, Status Register Error bits SR4 and SR9 set
Object Program
mode
44/114
A3 = 0 (’A’ Half) SUBSEQUENT PROGRAM NOT ALLOWED
A3 = 1 (’B’ Half) Program aborted, Status Register Error bits SR4 and SR8 set
M58PR256J, M58PR512J
6
Status Register
Status Register
The Status Register provides information on the current or previous program or erase
operations.
Issue a Read Status Register command to read the contents of the Status Register, refer to
Read Status Register Command section for more details.
To output the contents, the Status Register is latched and updated on the falling edge of the
Chip Enable or Output Enable signals and can be read until Chip Enable or Output Enable
returns to VIH.
The Status Register can only be read using single Asynchronous or Single Synchronous
reads.
Bus Read operations from any address within the bank, always read the Status Register
during program and erase operations, if no Read Array command has been issued.
The various bits convey information about the status and any errors of the operation. Bits
SR7, SR6, SR2 and SR0 give information on the status of the device and are set and reset
by the device. Bits SR9, SR8, SR5, SR4, SR3 and SR1 give information on errors, they are
set by the device but must be reset by issuing a Clear Status Register command or a
hardware reset. If an error bit is set to ‘1’ the Status Register should be reset before issuing
another command.
The bits in the Status Register are summarized in Table 13: Status Register bits. Refer to
Table 13 in conjunction with the following text descriptions.
6.1
Control Program Mode status bit (SR9)
The Control Program Mode Status Bit, SR9, is used to indicate whether an error occurred
when writing to a Program Region configured in the Control Program mode.
The SR9 bit should be read once the Program/Erase Controller Status bit SR7 is set to ‘1’
(Program/Erase Controller inactive).
SR9 is set to 1 when the user attempts to program Object data in a Control Mode region.
When:
●
SR9 = 0, the program operation has completed successfully,
●
SR9 = 1, the program operation failed.
Once set to ‘1’, SR9 can only be cleared by issuing a Clear Status Register command or
through a hardware reset.
SR9 should be cleared before a new program command is issued, otherwise the new
command will appear to fail.
45/114
Status Register
6.2
M58PR256J, M58PR512J
Object Program Mode status bit (SR8)
The Object Program Mode Status Bit, SR8, is used to indicate whether an error occurred
when writing to a Program Region configured in the Object Program mode.
The SR8 bit should be read once the Program/Erase Controller Status bit SR7 is set to ‘1’
(Program/Erase Controller inactive).
SR8 is set to 1 when the user attempts to rewrite an Object Mode region.
When:
●
SR8 = 0, the program operation has completed successfully,
●
SR8 = 1, the program operation failed.
Once set, SR8 can only be cleared by issuing a Clear Status Register command or through
a hardware reset.
SR8 should be cleared before a new program command is issued, otherwise the new
command will appear to fail.
6.3
Program/Erase Controller status bit (SR7)
The Program/Erase Controller Status bit indicates whether the Program/Erase Controller is
active or inactive in any bank. When:
●
SR7 = 0, the Program/Erase Controller is active,
●
SR7 = 1, the Program/Erase Controller is inactive, and the device is ready to process a
new command.
The Program/Erase Controller Status bit is set to ’0’ from immediately after a Program/Erase
Suspend command is issued until the Program/Erase Controller pauses. After the
Program/Erase Controller pauses the bit is set to ’1’.
6.4
Erase Suspend status bit (SR6)
The Erase Suspend Status bit indicates that an erase operation has been suspended in the
addressed Block. When:
●
SR6 = 0 no Program/Erase Suspend command has been issued,
●
SR6 = 1 a Program/Erase Suspend command has been issued and the memory is
waiting for a Program/Erase Resume command.
The Erase Suspend Status bit should only be considered valid when the Program/Erase
Controller Status bit is set to ’1’ (Program/Erase Controller inactive). SR6 is set within the
Erase Suspend Latency time of the Program/Erase Suspend command being issued,
therefore the memory may still complete the operation rather than entering the Suspend
mode.
When a Program/Erase Resume command is issued the Erase Suspend Status bit is reset
to ’0’.
46/114
M58PR256J, M58PR512J
6.5
Status Register
Erase status bit (SR5)
The Erase Status bit is used to identify if there was an error during a Block Erase operation.
When:
●
SR5 = 0 no error has occurred,
●
SR5 = 1 the Program/Erase Controller has applied the maximum number of pulses to
the Block or bank and still failed to verify that it has erased correctly.
The Erase Status bit should be read once the Program/Erase Controller Status bit is set to
’1’ (Program/Erase Controller inactive).
Once set, the Erase Status bit must be cleared, by a Clear Status Register command or a
hardware reset, before a new erase command is issued, otherwise the new command will
appear to fail.
6.6
Program status bit (SR4)
The Program Status bit is used to identify if there was an error during a program operation.
The Program Status bit should be read once the Program/Erase Controller Status bit is set
to ‘1’ (Program/Erase Controller inactive).
When:
●
SR4 = 0, no error has occurred,
●
SR4 = 1, the Program/Erase Controller has applied the maximum number of pulses to
the Word and still failed to verify that it has programmed correctly.
Attempting to program a '1' to an already programmed bit while VPP = VPPH will also set the
Program Status bit to ’1’. If VPP is different from VPPH, SR4 remains set to '0' and the
attempt is not shown.
Once set to '1', the Program Status bit must be cleared, by a Clear Status Register
command or a hardware reset, before a new program command is issued, otherwise the
new command will appear to fail.
6.7
VPP status bit (SR3)
The VPP Status bit is used to identify an invalid voltage on the VPP pin during program and
erase operations. The VPP pin is only sampled at the beginning of a program or erase
operation. Program and erase operations are not guaranteed if VPP becomes invalid during
an operation.
When:
●
SR3 = 0, the voltage on the VPP pin was sampled at a valid voltage,
●
SR3 = 1, the VPP pin has a voltage that is below the VPP Lockout Voltage, VPPLK, the
memory is protected and program and erase operations cannot be performed.
Once set to ‘1’, the VPP Status bit must be cleared by a Clear Status Register command or a
hardware reset, before a new program or erase command is issued, otherwise the new
command will appear to fail.
47/114
Status Register
6.8
M58PR256J, M58PR512J
Program Suspend status bit (SR2)
The Program Suspend Status bit indicates that a program operation has been suspended in
the addressed Block. The Program Suspend Status bit should only be considered valid
when the Program/Erase Controller Status bit is set to ‘1’ (Program/Erase Controller
inactive).
When:
●
SR2 = 0, no Program/Erase Suspend command has been issued,
●
SR2 = 1, a Program/Erase Suspend command has been issued and the memory is
waiting for a Program/Erase Resume command.
SR2 is set within the Program Suspend Latency time of the Program/Erase Suspend
command being issued, therefore the memory may still complete the operation rather than
entering the Suspend mode.
When a Program/Erase Resume command is issued the Program Suspend Status bit is
reset to ‘0’.
6.9
Block Protection status bit (SR1)
The Block Protection Status bit is used to identify if a Program or Block Erase operation has
tried to modify the contents of a locked Block.
When:
●
SR1 = 0, no program or erase operation has been attempted on a locked Block,
●
SR1 = 1, a program or erase operation has been attempted on a locked Block.
Once set to ‘1’, the Block Protection Status bit must be cleared by a Clear Status Register
command or a hardware reset, before a new program or erase command is issued,
otherwise the new command will appear to fail.
6.10
Bank Write/Multiple Word Program status bit (SR0)
The Bank Write Status bit indicates if the addressed bank is programming or erasing.
The Bank Write Status bit should only be considered valid when the Program/Erase
Controller Status SR7 is set to ‘0’.
When:
●
SR0 = 0 and SR7 = 0, the addressed bank is executing a program or erase operation.
●
SR0 = 1 and SR7 = 0, a program or erase operation is being executed in a bank other
than the one being addressed.
During Buffer Enhanced Factory Program operations the Multiple Word Program bit, SR0,
shows if the device is ready to accept a new Word to be programmed to the memory array.
When:
●
SR0 = 0, the device is ready for the next Word,
●
SR0 = 1, the device is not ready for the next Word.
For further details on how to use the Status Register, see the Flowcharts and Pseudocodes
provided in Appendix C.
48/114
M58PR256J, M58PR512J
Table 13.
Bit
Status Register
Status Register bits
Name
Type
Logic
Level(1)
Definition
SR15Reserved(2)
SR10
SR9
SR8
SR7
SR6
SR5
SR4
SR3
SR2
SR1
Control Program
mode Status
Object Program
mode Status
P/E.C. Status
Program Error in Program Region configured in
Control Program mode
0
Program Successful
1
Program Error in Program Region configured in
Object Program mode
0
Program Successful
1
Ready
0
Busy
1
Erase Suspended
0
Erase In progress or Completed
1
Erase Error
0
Erase Success
1
Program Error
0
Program Success
1
VPP Invalid, Abort
0
VPP OK
1
Program Suspended
0
Program In Progress or Completed
1
Program/Erase on protected Block, Abort
0
No operation to protected Blocks
Error
Status
Erase Suspend
Status
Status
Erase Status
Error
Program Status
1
Error
Error
VPP Status
Error
Program
Suspend Status
Status
Block Protection
Status
Error
SR7 = ‘1’ Not Allowed
1
Bank Write
Status
SR7 = ‘0’
Program or erase operation in a bank
other than the addressed bank
SR7 = ‘1’
No Program or erase operation in the
device
SR7 = ‘0’
Program or erase operation in addressed
bank
Status
0
SR0
SR7 = ‘1’ Not Allowed
Multiple Word
Program Status
(Buffer Enhanced Status
Factory Program
mode)
1
SR7 = ‘0’
the device is NOT ready for the next Word
or is going to exit the BEFP mode
SR7 = ‘1’ the device is exiting from BEFP
0
SR7 = ‘0’ the device is ready for the next Word
1. Logic level '1' is High, '0' is Low.
2. Reserved bits should always be reset to ‘0’.
49/114
Configuration Register
7
M58PR256J, M58PR512J
Configuration Register
The Configuration Register is used to configure the type of bus access that the memory will
perform. Refer to Section 10: Read modes for details on read operations.
The Configuration Register is set through the Command Interface using the Set
Configuration Register command. The Configuration Register is volatile: after a reset or a
power-down/power-up sequence, the register is set for Asynchronous Read (CR15=1) and
all bits return to their default value. The Configuration Register bits are described in Table 15
They specify the selection of the burst length, burst X latency and the read operation. Refer
to Figure 6 and Figure 7 for examples of synchronous burst configurations.
7.1
Read Select bit (CR15)
The Read Select bit, CR15, is used to switch between Asynchronous and Synchronous
Read operations. When:
●
●
CR15 = 0:
–
read operations in the Main Array are performed in Synchronous Burst mode;
–
operations to read the Status Register, Electronic Signature, CFI and EFA are
performed in Single Synchronous mode (See Section 10.3: Single Synchronous
Read mode for details).
CR15 = 1:
–
read operations in the Main Array are performed in Asynchronous Page mode,
–
operations to read the Status Register, Electronic Signature, CFI and EFA are
performed in Asynchronous Random Access mode.
Synchronous Burst Read can be performed across banks.
On reset or power-up the Read Select bit is set to ’1’ for asynchronous access.
7.2
X-Latency bits (CR14-CR11)
The X-Latency bits are used during Synchronous Read operations to set the number of
clock cycles between the address being latched and the first data becoming available.
For correct operation the X-Latency bits can only assume the values in Table 15:
Configuration Register.
Table 14 shows how to set the X-Latency parameter, taking into account the frequency used
to read the Flash memory in Synchronous mode.
Refer to Figure 6: X-latency and data output configuration example, for an example
waveform.
50/114
M58PR256J, M58PR512J
Table 14.
7.3
Configuration Register
X-latency settings
fmax
tKmin
X-Latency
40 MHz
25 ns
4
54 MHz
19 ns
5
66 MHz
15 ns
6
108 MHz
9 ns
10
Wait Polarity bit (CR10)
The Wait Polarity bit is used to set the polarity of the Wait signal used in Synchronous Burst
Read mode.
When:
●
CR10 = 0, the Wait signal is active Low,
●
CR10 = 1, the Wait signal is active High.
During Synchronous Burst Read mode the Wait signal indicates whether the data output are
valid or a WAIT state must be inserted.
7.4
Wait Configuration bit (CR8)
The Wait Configuration bit is used to control the timing of the Wait output pin, WAIT, in
Synchronous Burst Read mode.
When:
●
CR8 = 0, the Wait output pin is asserted during the WAIT state,
●
CR8 = 1, the Wait output pin is asserted one data cycle before the WAIT state.
When WAIT is asserted, Data is Not Valid and when WAIT is de-asserted, Data is Valid.
7.5
Burst length bits (CR2-CR0)
The Burst Length bits are used to set the number of Words to be output during a
Synchronous Burst Read operation as result of a single address latch cycle.
They can be set for 8 Words, 16 Words or continuous burst, where all the Words are read
sequentially. In Continuous Burst mode the burst sequence can cross bank boundaries.
In Continuous Burst mode, the device asserts the WAIT signal to indicate that a delay is
necessary before the data is output.
In Continuous Burst mode, if the starting address is not aligned to the 16 Word boundary,
WAIT will be asserted when the burst sequence crosses the first 16 Word boundary to
indicate that the device needs an internal delay to read the successive Words in the array.
In the worst case, the number of WAIT states is one clock cycle less than the latency setting.
WAIT will be asserted only once during a continuous burst access. See also Table 16: Burst
type definition.
CR9, CR7, CR6, CR5, CR4 and CR3 are reserved for future use.
51/114
Configuration Register
Table 15.
Bit
CR15
CR14-CR11
M58PR256J, M58PR512J
Configuration Register
Description
Value
Description
0
Synchronous Read
1
Asynchronous Read (Default at power-on)
0011
3 Clock Latency
0100
4 Clock Latency
0101
5 Clock Latency
0110
6 Clock Latency
0111
7 Clock Latency
1000
8 Clock Latency
1001
9 Clock Latency
1010
10 Clock Latency
1011
11 Clock Latency
1100
12 Clock Latency
1101
13 Clock Latency
1110
14 Clock Latency
1111
15 Clock Latency (Default)
Read Select
X-Latency
Other configurations reserved
CR10
Reserved
CR8
Wait
Configuration
CR2-CR0
WAIT is active Low (default)
1
WAIT is active High
0
WAIT is active during WAIT state
1
WAIT is active one data cycle before WAIT state
(default)1
010
8 Words (wrap only)
011
16 Words (wrap only)
111
Continuous (default, no wrap only)
(1)
CR9
CR7-CR3
0
Wait Polarity
Reserved(1)
Burst Length
1. Reserved bits should be cleared to ‘0’.
52/114
M58PR256J, M58PR512J
Table 16.
Configuration Register
Burst type definition
Start Address
8 Words
16 Words
Continuous Burst
0
0-1-2-3-4-5-6-7
0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15
0-1-2-3-4-5-6...
1
1-2-3-4-5-6-7-0
1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-0
1-2-3-4-5-6-7...
2
2-3-4-5-6-7-0-1
2-3-4-5-6-7-8-9-10-11-12-13-14-15-0-1
2-3-4-5-6-7-8...
3
3-4-5-6-7-0-1-2
3-4-5-6-7-8-9-10-11-12-13-14-15-0-1-2
3-4-5-6-7-8-9...
7-0-1-2-3-4-5-6
7-8-9-10-11-12-13-14-15-0-1-2-3-4-5-6
7-8-9-10-11-12-13...
12
12-13-14-15-8-9-10-11
12-13-14-15-0-1-2-3-4-5-6-7-8-9-10-11
12-13-14-15-16-17...
13
13-14-15-8-9-10-11-12
13-14-15-0-1-2-3-4-5-6-7-8-9-10-11-12
13-14-15-16-17-18...
14
14-15-8-9-10-11-12-13
14-15-0-1-2-3-4-5-6-7-8-9-10-11-12-13
14-15-16-17-18-19...
15
15-8-9-10-11-12-13-14
15-0-1-2-3-4-5-6-7-8-9-10-11-12-13-14
15-16-17-18-19-20...
...
7
...
Figure 6.
X-latency and data output configuration example
X-latency
1st cycle
2nd cycle
3rd cycle
4th cycle
K
E
L
Amax-A0(1)
VALID ADDRESS
tQVK_CPU
tKHKH
tKHQV
DQ15-DQ0
VALID DATA VALID DATA
AI08904c
1. The settings shown are X-latency = 4. tQVK_CPU is the data setup time required by the system CPU.
2. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
53/114
Configuration Register
Figure 7.
M58PR256J, M58PR512J
Wait configuration example
E
K
L
Amax-A0(1)
DQ15-DQ0
VALID ADDRESS
VALID DATA VALID DATA
NOT VALID
VALID DATA
WAIT
CR8 = '0'
CR10 = '0'
WAIT
CR8 = '1'
CR10 = '0'
WAIT
CR8 = '0'
CR10 = '1'
WAIT
CR8 = '1'
CR10 = '1'
AI13757
1. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
54/114
M58PR256J, M58PR512J
8
Enhanced Configuration Register
Enhanced Configuration Register
The Enhanced Configuration Register (ECR) is used to enable the Deep Power Down mode
and to configure the output driver strength.
The Enhanced Configuration Register is set through the Command Interface using the Set
Enhanced Configuration Register command.
Its contents can be read by issuing the Read Electronic Signature command and then by
reading from the Bank Base Address + 06h.
The ECR is volatile: after a reset or a power-down/power-up sequence the register is set to
the default value. The Configuration Register bits are described in Table 17
8.1
Deep Power-Down Mode bit (ECR15)
The Deep Power-Down Mode Bit, ECR15, is used to enable the Deep Power-Down mode.
The device can only enter the Deep Power-Down mode from standby, by asserting the DPD
pin and setting ECR15 to ‘1’, whatever the order of the last two operations.
When the device is in the Deep Power-Down mode, de-asserting the DPD pin and/or
resetting ECR15 causes the device to revert to the Standby mode.
8.2
Deep Power-Down Polarity bit (ECR14)
The Deep Power-Down Polarity bit is used to set the polarity of the DPD signal.
When:
8.3
●
ECR14 = 0, the DPD signal is active Low (default),
●
ECR14 = 1, the DPD signal is active High.
Output Driver Control bits (ECR2-ECR0)
The Output Driver Control bits, ECR0, ECR1 and ECR2, are used to select the best suited
output driver impedance to the system requirements.
After reset or power-up the Output Driver Control bits are set to the Enhanced Configuration
Register default value (ECR2-ECR0 = 100, that is 30W (30pF) (Default)). Optimum
performance will be obtained only if the output driver impedance is configured properly.
Once a configuration has been selected, all data and WAIT output drivers are set to the
same setting.
Table 17 gives the output driver impedances at VDDQ/2 and the loads that correspond for
each ECR2-ECR0 bit configuration.
55/114
Enhanced Configuration Register
Table 17.
M58PR256J, M58PR512J
Enhanced Configuration Register
Bit
ECR15
ECR14
ECR13-ECR3
ECR2-ECR0
Description
Value
Description
0
DPD Mode Disabled (default)
1
DPD Mode Enabled
0
DPD is Active Low (default)
1
DPD is Active High
Deep Power Down Mode
DPD Polarity
Reserved
(1)
Output Driver Impedance
001
90Ω (10pF)
010
60Ω (15pF)
011
45Ω (20pF)
100
30Ω (30pF) (Default)
101
20Ω (35pF)
110
15Ω (40pF)
Other configurations reserved
1. Reserved bits should be cleared to ‘0’.
56/114
M58PR256J, M58PR512J
9
Extended Flash Array (EFA)
Extended Flash Array (EFA)
In addition to its Main Array, the M58PRxxxJ features an Extended Flash Array (EFA)
divided into 4 Blocks of 4 KWords each. See Table 4: EFA memory map.
The EFA Blocks are accessed through a separate set of commands (see Section 4:
Command interface for details).
The operations available on the EFA Blocks are Asynchronous Random Access Read,
Single Synchronous Read, (Single Word) Program, Erase, Block Lock, Block Unlock, Block
Lock-down.
The EFA Blocks support Program/Erase Suspend and Dual Operations with Main Array.
Dual Operations between the EFA and the OTP area are not supported. See Table 20: Dual
operation limitations for details.
57/114
Read modes
10
M58PR256J, M58PR512J
Read modes
Read operations can be performed in two different ways depending on the settings in the
Configuration Register. If the clock signal is ‘don’t care’ for the data output, the read
operation is asynchronous; if the data output is synchronized with clock, the read operation
is synchronous.
The read mode and format of the data output are determined by the Configuration Register.
(See Configuration Register section for details). All banks support both asynchronous and
synchronous read operations.
10.1
Asynchronous Read mode
In Asynchronous Read operations the clock signal is ‘Don’t Care’. The device outputs the
data corresponding to the address latched, that is the memory array, Status Register,
Common Flash Interface or Electronic Signature depending on the command issued. CR15
in the Configuration Register must be set to ‘1’ for asynchronous operations.
Asynchronous Read operations can be performed in two different ways, Asynchronous
Random Access Read and Asynchronous Page Read. Only Asynchronous Page Read
takes full advantage of the internal page storage so different timings are applied.
In Asynchronous Read mode a Page of data is internally read and stored in a Page Buffer.
The Page has a size of 16 Words and is addressed by address inputs A0, A1, A2 and A3.
During the Page access, Amax-A4 and L must remain stable.
The first Read operation within the Page has a longer access time (tAVQV, Random access
time), subsequent reads within the same Page have much shorter access times (tAVQV1,
Page access time). If the Page changes then the normal, longer timings apply again.
Read operations to read Non-Array data (Status Register, Electronic Signature, CFI) should
be performed in Asynchronous Single Word mode. If the Asynchronous Page mode is used
to read Non-Array data, only the first output data will be valid, all subsequent data will be
indeterminate.
The Asynchronous Page Read mode is not available in the EFA.
The device features an Automatic Standby mode. During Asynchronous Read operations,
after a bus inactivity of 150ns, the device automatically switches to the Automatic Standby
mode. In this condition the power consumption is reduced to the standby value and the
outputs are still driven.
In Asynchronous Read mode, the WAIT signal is always de-asserted.
See Table 28: Asynchronous Read ac characteristics, Figure 10: Asynchronous random
access Read ac waveforms, and Figure 11: Asynchronous Page Read ac waveforms, for
details.
58/114
M58PR256J, M58PR512J
10.2
Read modes
Synchronous Burst Read mode
In Synchronous Burst Read mode the data is output in bursts synchronized with the clock. It
is possible to perform burst reads across bank boundaries.
Synchronous Burst Read mode can only be used to read the memory array. For other read
operations, such as Read Status Register, Read CFI, Read Electronic Signature and Read
EFA, Single Synchronous Read or Asynchronous Random Access Read must be used.
In Synchronous Burst Read mode, the flow of the data output depends on parameters that
are configured in the Configuration Register.
A burst sequence starts at the first clock edge after the falling edge of Latch Enable or Chip
Enable, whichever occurs last. Addresses are internally incremented and data is output on
each data cycle after a delay which depends on the X latency bits CR14-CR11 of the
Configuration Register.
The number of Words to be output during a Synchronous Burst Read operation can be
configured as 8 Words, 16 Words or Continuous (Burst Length bits CR2-CR0).
The WAIT signal may be asserted to indicate to the system that an output delay will occur.
This delay will depend on the starting address of the burst sequence and on the burst
configuration.
WAIT is asserted during the X latency, the WAIT state and at the end of a 8 and 16 Word
burst. It is only de-asserted when output data are valid.
In Continuous Burst Read mode, a WAIT state will occur when crossing the first 16 Word
boundary if the start address is not 16 Word aligned.
The WAIT signal can be configured to be active Low or active High by setting CR10 in the
Configuration Register.
See Table 29: Synchronous Read ac characteristics, and Figure 12: Synchronous Burst
Read ac waveforms, for details.
10.3
Single Synchronous Read mode
Single Synchronous Read operations are similar to Synchronous Burst Read operations
except that the memory outputs the same data until the burst length requirements are
satisfied (according to Configuration Register bits CR2-CR0).
Single Synchronous Read operations are used to read the EFA, Electronic Signature, Status
Register, CFI, Block Protection Status, Configuration Register Status or Protection Register.
When the addressed bank is in Read CFI, Read Status Register or Read Electronic
Signature mode, the WAIT signal is asserted during the X latency, the WAIT state and at the
end of a 4, 8 and 16 Word burst. It is only de-asserted when output data are valid.
See Table 29: Synchronous Read ac characteristics, and Figure 12: Synchronous Burst
Read ac waveforms, for details.
59/114
Dual operations and multiple bank architecture
11
M58PR256J, M58PR512J
Dual operations and multiple bank architecture
The Multiple Bank Architecture of the M58PRxxxJ gives greater flexibility for software
developers to split the code and data spaces within the memory array. The Dual Operations
feature simplifies the software management of the device by allowing code to be executed
from one bank while another bank is being programmed or erased.
The Dual Operations feature means that while programming or erasing in one bank, read
operations are possible in another bank with zero latency (only one bank at a time is allowed
to be in Program or Erase mode).
If a Read operation is required in a bank, which is programming or erasing, the Program or
Erase operation can be suspended.
Also if the suspended operation was erase then a Program command can be issued to
another Block, so the device can have one Block in Erase Suspend mode, one programming
and other banks in Read mode.
Bus Read operations are allowed in another bank between setup and confirm cycles of
Program or Erase operations.
By using a combination of these features, Read operations are possible at any moment in
the M58PRxxxJ device.
Dual operations between the Extended Flash Array (EFA) and either of the CFI, the OTP or
the Electronic Signature memory space are not allowed. Table 20 shows which dual
operations are allowed or not between the CFI, the OTP, the Electronic Signature locations
and the memory array.
Table 18 and Table 19 show the dual operations possible in other banks and in the same
bank.
Table 18.
Dual operations allowed in other banks
Commands allowed in another bank
Status of bank
60/114
Read
Array
Read
Read
Read
Program,
Program/ Program/
Read
Block
Status
CFI Electronic
Buffer
Erase
Erase
EFA
Erase
Register Query Signature
Program
Suspend Resume
Idle
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Programming
Yes
Yes
Yes
Yes
Yes
–
–
Yes
–
Erasing
Yes
Yes
Yes
Yes
Yes
–
–
Yes
–
Program
Suspended
Yes
Yes
Yes
Yes
Yes
–
–
–
Yes
Erase
Suspended
Yes
Yes
Yes
Yes
Yes
Yes
–
–
Yes
M58PR256J, M58PR512J
Table 19.
Dual operations and multiple bank architecture
Dual operations allowed in same bank
Commands allowed in same bank
Status of
bank
Idle
Programming
Erasing
Read
Array
Read
Status
Register
Read
Read
Program,
Program/ Program/
Read
Block
CFI
Electronic
Buffer
Erase
Erase
EFA
Erase
Query Signature
Program
Suspend Resume
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
–
(1)
Yes
Yes
Yes
Yes
–
–
Yes
–
–
(1)
Yes
Yes
Yes
Yes
–
–
Yes
–
Program
Suspended
Yes(2)
Yes
Yes
Yes
Yes
–
–
–
Yes
Erase
Suspended
Yes(2)
Yes
Yes
Yes
Yes
Yes(1)
–
–
Yes
1. The Read Array command is accepted but the data output is not guaranteed until the Program or Erase
has completed.
2. Not allowed in the Block that is being erased or in the Program Region that is being programmed.
Table 20.
Dual operation limitations
OTP, EFA or CFI
Data
Main Array
Bank
Read
Program/Erase
While programming or erasing in a Main Array bank, the OTP,
CFI data and EFA Blocks may be read from any other bank
Program
Read
While programming to the OTP area, read operations are only
allowed in the other Main Array banks. Access to EFA data or
CFI data is not allowed.
Read
While programming or erasing an EFA Block, it is not allowed
to read OTP or CFI data. Read operations to the banks whose
addresses are not being used to address the EFA, are
supported
Program/Erase
Comments
61/114
Block locking
12
M58PR256J, M58PR512J
Block locking
The M58PRxxxJ features an instant, individual block locking scheme that allows any Block
to be locked or unlocked with no latency. This locking scheme has three levels of protection.
●
Lock/Unlock - this first level allows software only control of block locking.
●
Lock-Down - this second level requires hardware interaction before locking can be
changed.
●
VPP ≤VPPLK - the third level offers a complete hardware protection against program and
erase on all Blocks.
The protection status of each Block can be set to Locked, Unlocked, and Locked-Down.
Table 21, defines all of the possible protection states (WP, DQ1, DQ0), and Appendix C,
Figure 25, shows a flowchart for the locking operations.
12.1
Reading a block’s lock status
The lock status of every Block can be read in the Read Electronic Signature mode of the
device. To enter this mode issue the Read Electronic Signature command. Subsequent
reads at the address specified in Table 9, will output the protection status of that Block.
The lock status is represented by DQ0 and DQ1. DQ0 indicates the Block Lock/Unlock
status and is set by the Lock command and cleared by the Unlock command. DQ0 is
automatically set when entering Lock-Down. DQ1 indicates the Lock-Down status and is set
by the Lock-Down command. DQ1 cannot be cleared by software, only by a hardware reset
or power-down.
The following sections explain the operation of the locking system.
12.2
Locked state
The default status of all Blocks on power-up or after a hardware reset is Locked (states
(0,0,1) or (1,0,1)). Locked Blocks are fully protected from program or erase operations. Any
program or erase operations attempted on a Locked Block will return an error in the Status
Register. The Status of a Locked Block can be changed to Unlocked or Locked-Down using
the appropriate software commands. An Unlocked Block can be Locked by issuing the Lock
command.
12.3
Unlocked state
Unlocked Blocks (states (0,0,0), (1,0,0) (1,1,0)), can be programmed or erased. All unlocked
Blocks return to the Locked state after a hardware reset or when the device is powereddown. The status of an unlocked Block can be changed to Locked or Locked-Down using
the appropriate software commands. A locked Block can be unlocked by issuing the Unlock
command.
62/114
M58PR256J, M58PR512J
12.4
Block locking
Lock-Down state
Blocks that are Locked-Down (state (0,1,x))are protected from program and erase
operations (as for Locked Blocks) but their protection status cannot be changed using
software commands alone. A Locked or Unlocked Block can be Locked-Down by issuing the
Lock-Down command. Locked-Down Blocks revert to the Locked state when the device is
reset or powered-down.
The Lock-Down function is dependent on the Write Protect, WP, input pin.
When WP=0 (VIL), the Blocks in the Lock-Down state (0,1,x) are protected from program,
erase and protection status changes.
When WP=1 (VIH) the Lock-Down function is disabled (1,1,x) and Locked-Down Blocks can
be individually unlocked to the (1,1,0) state by issuing the software command, where they
can be erased and programmed.
When the Lock-Down function is disabled (WP=1) Blocks can be locked (1,1,1) and
unlocked (1,1,0) as desired. When WP=0 Blocks that were previously Locked-Down return
to the Lock-Down state (0,1,x) regardless of any changes that were made while WP=1.
Device reset or power-down resets all Blocks, including those in Lock-Down, to the Locked
state.
12.5
Locking operations during Erase Suspend
Changes to block lock status can be performed during an erase suspend by using the
standard locking command sequences to unlock, lock or lock-down a Block. This is useful in
the case when another Block needs to be updated while an erase operation is in progress.
To change block locking during an erase operation, first write the Erase Suspend command,
then check the Status Register until it indicates that the erase operation has been
suspended. Next write the desired Lock command sequence to a Block and the lock status
will be changed. After completing any desired lock, read, or program operations, resume the
erase operation with the Erase Resume command.
If a Block is locked or locked-down during an erase suspend of the same Block, the locking
status bits will be changed immediately, but when the erase is resumed, the erase operation
will complete. Locking operations cannot be performed during a program suspend.
63/114
Block locking
M58PR256J, M58PR512J
Table 21.
Lock status
Current Protection Status(1)
Next Protection Status(1)
(WP, DQ1, DQ0)
(WP, DQ1, DQ0)
Current
State
Program/Erase
Allowed
After Block
Lock
Command
After Block
Unlock
Command
After Block
Lock-Down
Command
After WP
transition
1,0,0
yes
1,0,1
1,0,0
1,1,1
0,0,0
no
1,0,1
1,0,0
1,1,1
0,0,1
1,1,0
yes
1,1,1
1,1,0
1,1,1
0,1,1
1,1,1
no
1,1,1
1,1,0
1,1,1
0,1,1
0,0,0
yes
0,0,1
0,0,0
0,1,1
1,0,0
no
0,0,1
0,0,0
0,1,1
1,0,1
no
0,1,1
0,1,1
0,1,1
1,1,1 or 1,1,0(3)
(2)
1,0,1
(2)
0,0,1
0,1,1
1. The lock status is defined by the write protect pin and by DQ1 (‘1’ for a locked-down Block) and DQ0 (‘1’ for
a locked Block) as read in the Read Electronic Signature command with A1 = VIH and A0 = VIL.
2. All Blocks are locked at power-up, so the default configuration is 001 or 101 according to WP status.
3. A WP transition to VIH on a locked Block will restore the previous DQ0 value, giving a 111 or 110.
64/114
M58PR256J, M58PR512J
Program and erase times and endurance cycles
The Program and Erase times and the number of Program/ Erase cycles per Block are
shown in Table 22 Exact erase times may change depending on the memory array
condition. The best case is when all the bits in the Block are at ‘0’ (pre-programmed). The
worst case is when all the bits in the Block are at ‘1’ (not preprogrammed). Usually, the
system overhead is negligible with respect to the erase time. In the M58PRxxxJ the
maximum number of Program/Erase cycles depends on the VPP voltage supply used.
Table 22.
Program/Erase times and endurance cycles(1) (2)
Typ
Typical after
100kW/E Max
Cycles
0.4
2.5
s
0.9
4
s
50
230
µs
250
500
µs
50
230
µs
250
500
µs
Buffer (512 Words) (Buffer
Program)
2.15
4.3
ms
EFA Block (4 KWord)
0.2
0.94
s
Main Array Block (128 KWord)
(Buffer Program)
0.55
1.1
s
Program
20
25
µs
Erase
20
30
µs
Parameter
Condition
Min
EFA Block (4 KWord)
Unit
Erase
Main Array Block 128 KWord)
Single Cell(4)
Word
Program(5)
Buffer Program
Single Word(4)
Word
Program(5)
Buffer Program
Program(3)
VPP = VDD
13
Program and erase times and endurance cycles
Suspend Latency
Main Array Block
Program/Erase
Cycles (per Block) EFA Block
Blank Check
Main Array Block
100,000
cycles
100,000
3.2
ms
65/114
Program and erase times and endurance cycles
Table 22.
M58PR256J, M58PR512J
Program/Erase times and endurance cycles(1) (2) (continued)
Parameter
Condition
Min
EFA Block (4 KWord)
Typ
Typical after
100kW/E Max
Cycles
0.4
2.5
s
Unit
Erase
Main Array Block (128 KWord)
(4)
Single Cell
VPP = VPPH
Single Word(4)
Program(3)
Buffer (512
Words)
0.9
4
s
(5)
50
230
µs
Word Program(5)
50
230
µs
Buffer Enhanced
Factory
Program(4)
4.2
Buffer Program
2.15
Buffer Enhanced
Factory Program
2.15
Word Program
Buffer Program
Main Block (128
Buffer Enhanced
KWords)
Factory Program
0.55
EFA Block (4 KWord)
0.2
Main Array Block (128 KWords)
Program/Erase
Cycles (per Block) EFA Block (4 KWords)
Blank Check
Main Array Block
µs
4.3
ms
1.1
0.55
s
s
0.94
s
100,000
cycles
100,000
3.2
1. TA = –30 to 85°C; VDD = 1.7V to 2V; VDDQ = 1.7V to 2V.
2. Values are liable to change with the external system-level overhead (command sequence and Status
Register polling execution).
3. Excludes the time needed to execute the command sequence.
4. This is an average value on the entire device.
5. The first Word Program in a Program Region will take 115µs, the subsequent Words will take 50µs to
program.
66/114
ms
ms
M58PR256J, M58PR512J
14
Maximum rating
Maximum rating
Stressing the device above the rating listed in the Absolute Maximum Ratings table may
cause permanent damage to the device. These are stress ratings only and operation of the
device at these or any other conditions above those indicated in the Operating sections of
this specification is not implied. Exposure to Absolute Maximum Rating conditions for
extended periods may affect device reliability. Refer also to the STMicroelectronics SURE
Program and other relevant quality documents.
Table 23.
Absolute maximum ratings
Value
Symbol
Parameter
Unit
Min
Max
Ambient operating temperature
–30
85
°C
TBIAS
Temperature under bias
–30
85
°C
TSTG
Storage temperature
–65
125
°C
VIO
Input or output voltage
–1
3
V
VDD
Supply voltage
–1
3
V
Input/Output supply voltage
–1
3
V
Program voltage
–1
11.5
V
Output short circuit current
100
mA
Time for VPP at VPPH
100
hours
TA
VDDQ
VPP
IO
tVPPH
67/114
DC and ac parameters
15
M58PR256J, M58PR512J
DC and ac parameters
This section summarizes the operating measurement conditions, and the dc and ac
characteristics of the device. The parameters in the dc and ac characteristics Tables that
follow, are derived from tests performed under the Measurement Conditions summarized in
Table 24: Operating and ac measurement conditions (M58PRxxxJ). Designers should check
that the operating conditions in their circuit match the operating conditions when relying on
the quoted parameters.
Table 24.
Operating and ac measurement conditions (M58PRxxxJ)
Parameter
Min
Max
Units
VDD supply voltage
1.7
2.0
V
VDDQ supply voltage
1.7
2.0
V
VPP supply voltage (Factory environment)
8.5
9.5
V
VPP supply voltage (Application environment)
–0.4
VDDQ+0.4
V
Ambient operating temperature
–30
85
°C
Load capacitance (CL)
30
pF
Input Rise and Fall times
3
Input pulse voltages
Input and output timing ref. voltages
Figure 8.
0 to VDDQ
V
VDDQ/2
V
AC measurement I/O waveform
VDDQ
VDDQ/2
0V
AI06161
68/114
ns
M58PR256J, M58PR512J
Figure 9.
DC and ac parameters
AC measurement load circuit
VDDQ
VDDQ
VDD
16.7kΩ
DEVICE
UNDER
TEST
CL
0.1µF
16.7kΩ
0.1µF
CL includes JIG capacitance
Table 25.
Symbol
CIN
COUT
AI06162
Capacitance(1)
Parameter
Input capacitance
Output capacitance
Test condition
Min
Max
Unit
VIN = 0V
2
8
pF
VOUT = 0V
4
8
pF
1. Sampled only, not 100% tested.
69/114
DC and ac parameters
Table 26.
Symbol
M58PR256J, M58PR512J
DC characteristics - currents
Parameter
Test condition(1)
Max
Unit
0V ≤VIN ≤VDDQ
±1
µA
±1
µA
25
30
mA
11
15
mA
8 Word
22
32
mA
16 Word
19
26
mA
Continuous
25
34
mA
8 Word
26
36
mA
16 Word
23
30
mA
Continuous
30
42
mA
256 Mbit
35
95
512 Mbit
50
120
E = VDDQ ± 0.2 V 256 Mbit
K = VSS
512 Mbit
35
95
50
120
256 Mbit
35
95
512 Mbit
50
120
2
30
µA
ILI
Input leakage current
ILO
Output leakage current
0V ≤VOUT ≤VDDQ
Supply current
Asynchronous Read (f = 5 MHz)
E = VIL, G = VIH
Supply current
Page Read (f = 13 MHz)
IDD1
Supply current
Synchronous Read (f = 66 MHz)
Supply current
Synchronous Read (f = 108 MHz)
IDD2
Supply current (Reset)
IDD3
Supply current (Standby)
IDD4(1)
Supply current (Automatic
Standby)
IDD5(2)
Supply current (Deep Power
Down)
IDD6 (3)
IDD7(3)(4)
IDD8(3)
µA
µA
VPP = VPPH, VPP = VDD
35
50
mA
Supply current (Erase)
VPP = VPPH, VPP = VDD
35
50
mA
Supply current (Blank Check)
VPP = VPPH, VPP = VDD
35
50
mA
Program/Erase in one Bank,
Asynchronous Read in
another Bank
60
80
mA
Program/Erase in one Bank,
Synchronous Read
(Continuous, f = 108 MHz) in
another Bank
65
92
mA
E = VDDQ ± 0.2 V 256 Mbit
K = VSS
512 Mbit
35
95
50
120
VPP = VPPH
8
22
mA
VPP = VDD
0.05
0.1
mA
VPP = VPPH
8
22
mA
VPP = VDD
0.05
0.1
mA
VPP ≤VDD
2
15
µA
Supply current
(Dual operations)
Supply current Program/ Erase
Suspended (Standby)
IPP1(3)
VPP supply current (Erase)
70/114
E = VIL, G = VIH,
RP = VIH
µA
Supply current (Program)
VPP supply current (Program)
IPP2
RP = VSS ± 0.2 V
Typ
VPP supply current (Read)
µA
M58PR256J, M58PR512J
Table 26.
DC characteristics - currents (continued)
Symbol
IPP3(3)
IPP4
DC and ac parameters
Parameter
Test condition(1)
Typ
Max
Unit
VPP ≤VDD
0.2
5
µA
VPP = VPPH
0.05
0.1
mA
VPP = VPP1
0.05
0.1
mA
VPP supply current (Standby,
Program/Erase Suspend)
VPP supply current (Blank Check)
1. All inputs stable.
2. The DPD current is measured 40µs after entering the Deep Power Down mode.
3. Sampled only, not 100% tested.
4. VDD Dual Operation current is the sum of read and program or erase currents.
Table 27.
Symbol
DC characteristics - voltages
Parameter
Test condition
Min
Typ
Max
Unit
VIL
Input low voltage
0
0.4
V
VIH
Input high voltage
VDDQ –0.4
VDDQ + 0.4
V
VOL
Output low voltage
IOL = 100 µA
0.1
V
VOH
Output high voltage
IOH = –100 µA
VDDQ –0.1
VPP1
VPP Program voltage-logic
Program, Erase
1.1
1.8
3.3
V
VPPH
VPP Program voltage factory
Program, Erase
8.5
9.0
9.5
V
VPPLK
Program or Erase lockout
0.4
V
VLKO
VDD lock voltage
VRPH
RP pin Extended High
voltage
VLKOQ
VDDQ lock voltage
V
1
V
3.3
0.9
V
V
71/114
72/114
Hi-Z
Hi-Z
tELLH
tLLLH
tAVLH
tGLTV
tELQX
tELTV
tGLQV
tLHAX
tGLQX
tELQV
tLLQV
tAVQV
VALID
tEHQZ
tEHQX
tEHTZ
tGHQZ
tGHQX
tAXQX
VALID
VALID
tGHTZ
Notes: 1. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
2. Latch Enable, L, can be kept Low (also at board level) when the Latch Enable function is not required or supported.
3. WAIT is active Low.
WAIT(3)
DQ0-DQ15
G
E
L(2)
A0-Amax(1)
tAVAV
AI13758
DC and ac parameters
M58PR256J, M58PR512J
Figure 10. Asynchronous random access Read ac waveforms
Hi-Z
tELQV
Valid Address Latch
tGLQX
tGLQV
tELTV
tGLTV
tELQX
tELLH
tLLQV
tLLLH
tAVLH
VALID ADDRESS
tAVAV
Enabled
Outputs
tLHAX
VALID
DATA
VALID
DATA
tAVQV1
VALID
DATA
VALID
DATA
Valid Data
VALID
DATA
VALID
DATA
VALID
DATA
VALID
DATA
VALID ADD. VALID ADD. VALID ADD. VALID ADD. VALID ADD. VALID ADD. VALID ADD.
VALID ADDRESS
Notes: 1. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
2. WAIT is active Low.
DQ0-DQ15
WAIT (2)
G
E
L
A0-A3
A4-Amax(1)
AI13756
Standby
M58PR256J, M58PR512J
DC and ac parameters
Figure 11. Asynchronous Page Read ac waveforms
73/114
DC and ac parameters
Table 28.
M58PR256J, M58PR512J
Asynchronous Read ac characteristics
Symbol
Alt
tAVAV
tRC
Address Valid to Next Address Valid
Min
96
96
ns
tAVQV
tACC
Address Valid to Output Valid (Random)
Max
96
96
ns
tAVQV1
tPAGE
Address Valid to Output Valid (Page)
Max
15
25
ns
tAXQX(1)
tOH
Address Transition to Output Transition
Min
0
0
ns
Chip Enable Low to Wait Valid
Max
11
14
ns
Read Timings
tELTV
108 MHz 66 MHz Unit
tELQV
(2)
tCE
Chip Enable Low to Output Valid
Max
96
96
ns
tELQX
(1)
tLZ
Chip Enable Low to Output Transition
Min
0
0
ns
Chip Enable High to Wait Hi-Z
Max
9
14
ns
tEHTZ
(1)
tOH
Chip Enable High to Output Transition
Min
0
0
ns
tEHQZ(1)
tHZ
Chip Enable High to Output Hi-Z
Max
9
14
ns
tGLQV(2)
tOE
Output Enable Low to Output Valid
Max
20
20
ns
tGLQX(1)
tOLZ
Output Enable Low to Output Transition
Min
0
0
ns
Output Enable Low to Wait Valid
Max
7
11
ns
tEHQX
tGLTV
tGHQX(1)
tOH
Output Enable High to Output Transition
Min
0
0
ns
tGHQZ(1)
tDF
Output Enable High to Output Hi-Z
Max
9
14
ns
Output Enable High to Wait Hi-Z
Max
9
17
ns
tGHTZ
Latch Timings
Parameter
tAVLH
tAVADVH
Address Valid to Latch Enable High
Min
5
5
ns
tELLH
tELADVH
Chip Enable Low to Latch Enable High
Min
9
10
ns
tLHAX
tADVHAX
Latch Enable High to Address Transition
Min
5
5
ns
Min
7
7
ns
Max
96
96
ns
tLLLH
tLLQV
tADVLADVH Latch Enable Pulse Width
tADVLQV
Latch Enable Low to Output Valid
(Random)
1. Sampled only, not 100% tested.
2. G may be delayed by up to tELQV - tGLQV after the falling edge of E without increasing tELQV.
74/114
Hi-Z
tLLLH
Address
Latch
tKHAX
tAVKH
tLLKH
tAVLH
VALID ADDRESS
X Latency
tGLTV
tGLQX
Note 3
Note 2
VALID
Valid Data Flow
tKHTV
tKHQV
tKHQV
VALID
Note 3
tKHTX
tKHQX
tKHQX
VALID
Notes 1. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
2. The number of clock cycles to be inserted depends on the X latency set in the Burst Configuration Register.
3. The WAIT signal can be configured to be active during wait state or one cycle before. WAIT signal is active Low.
4. Address latched and data output on the rising clock edge.
WAIT
G
E
K
L
tELKH
Hi-Z
A0-Amax(1)
DQ0-DQ15
Boundary
Crossing
Note 3
NOT VALID
Data
Valid
tGHQZ
tGHQX
tEHQZ
tEHQX
AI13759
Standby
tEHTZ
tEHEL
VALID
M58PR256J, M58PR512J
DC and ac parameters
Figure 12. Synchronous Burst Read ac waveforms
75/114
DC and ac parameters
M58PR256J, M58PR512J
Figure 13. Single Synchronous Read ac waveforms
A0-Amax(1)
VALID ADDRESS
tAVKH
L
tLLKH
K(2)
tELKH
tKHQV
tELQV
E
tGLQV
tGLQX
G
tELQX
DQ0-DQ15
tGHTZ
Hi-Z
VALID
tKHTV
tGLTV
WAIT(2,3)
Hi-Z
Notes 1. Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
2. The WAIT signal is configured to be active during wait state. WAIT signal is active Low.
3. Address latched and data output on the rising clock edge.
Figure 14. Clock input ac waveform
tKHKL
tKHKH
tf
tr
tKLKH
AI06981
76/114
AI13760
M58PR256J, M58PR512J
Table 29.
Synchronous Read Timings
Symbol
Synchronous Read ac characteristics
Alt
Parameter
108 MHz
66 MHz
Unit
tAVKH
tAVCLKH
Address Valid to Clock High
Min
5
5
ns
tELKH
tELCLKH
Chip Enable Low to Clock High
Min
5
5
ns
tEHEL
Chip Enable Pulse Width (subsequent
synchronous reads)
Min
9
11
ns
tEHTZ
Chip Enable High to Wait Hi-Z
Max
9
11
ns
tKHAX
tCLKHAX
Clock High to Address Transition
Min
5
5
ns
tKHQV
tKHTV
tCLKHQV
Clock High to Output Valid
Clock High to WAIT Valid
Max
7
11
ns
tKHQX
tKHTX
tCLKHQX
Clock High to Output Transition
Clock High to WAIT Transition
Min
2
3
ns
Min
5
5
ns
15
ns
tLLKH
Clock Specifications
DC and ac parameters
tADVLCLKH Latch Enable Low to Clock High
Clock Period (f=66MHz)
Min
Clock Period (f=108MHz)
Min
9
tKHKL
tKLKH
Clock High to Clock Low
Clock Low to Clock High
Min
2.5
3.5
ns
tf
tr
Min
0.3
-
ns
Clock Fall or Rise Time
Max
2
3
ns
tKHKH
tCLK
ns
1. Sampled only, not 100% tested.
2. For other timings please refer to Table 28: Asynchronous Read ac characteristics.
77/114
78/114
tWHDX
CONFIRM COMMAND
OR DATA INPUT
tVPHWH
tELKH
tWHVPL
tWHWPL
tWHQV
tWHEL
tWHGL
tWHAV
tWHAX
CMD or DATA
VALID ADDRESS
tAVWH
tWPHWH
tWHWL
tWHEH
tWHLL
tWLWH
tLHAX
COMMAND
tLLLH
SET-UP COMMAND
tDVWH
tGHWL
tELWL
tELLH
tAVLH
BANK ADDRESS
Note1: Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
K
VPP
WP
DQ0-DQ15
W
G
E
L
A0-Amax(1)
tAVAV
tQVVPL
tQVWPL
STATUS REGISTER
STATUS REGISTER
READ
1st POLLING
tELQV
VALID ADDRESS
PROGRAM OR ERASE
AI13761
DC and ac parameters
M58PR256J, M58PR512J
Figure 15. Write ac waveforms, Write Enable controlled
M58PR256J, M58PR512J
DC and ac parameters
Write ac characteristics, Write Enable controlled(1)
Table 30.
Symbol
Alt
tAVAV
tWC
Unit
Min
96
96
ns
Address Valid to Latch Enable High
Min
5
5
ns
Address Valid to Write Enable High
Min
40
40
ns
Data Valid to Write Enable High
Min
40
40
ns
Chip Enable Low to Latch Enable High
Min
9
10
ns
Chip Enable Low to Write Enable Low
Min
0
0
ns
tELQV
Chip Enable Low to Output Valid
Min
96
96
ns
tELKH
Chip Enable Low to Clock High
Min
5
5
ns
tGHWL
Output Enable High to Write Enable Low
Min
14
17
ns
tLHAX
Latch Enable High to Address Transition
Min
5
5
ns
tLLLH
Latch Enable Pulse Width
Min
7
7
ns
Write Enable High to Address Valid
Min
0
0
ns
tAVWH
(2)
tDVWH
tDS
tELLH
tELWL
Write Enable Controlled Timings
108 MHz 66 MHz
Address Valid to Next Address Valid
tAVLH
tCS
tWHAV(2)
tWHAX(2)
tAH
Write Enable High to Address Transition
Min
0
0
ns
tWHDX
tDH
Write Enable High to Input Transition
Min
0
0
ns
tWHEH
tCH
Write Enable High to Chip Enable High
Min
0
0
ns
Write Enable High to Chip Enable Low
Min
20
20
ns
tWHGL
Write Enable High to Output Enable Low
Min
0
0
ns
tWHLL
Write Enable High to Latch Enable Low
Min
0
0
ns
tWHWL
tWPH Write Enable High to Write Enable Low
Min
20
20
ns
Write Enable High to Output Valid
Min
116
116
ns
Write Enable Low to Write Enable High
Min
40
40
ns
tQVVPL
Output (Status Register) Valid to VPP Low
Min
0
0
ns
tQVWPL
Output (Status Register) Valid to Write
Protect Low
Min
0
0
ns
VPP High to Write Enable High
Min
200
200
ns
tWHVPL
Write Enable High to VPP Low
Min
200
200
ns
tWHWPL
Write Enable High to Write Protect Low
Min
200
200
ns
tWPHWH
Write Protect High to Write Enable High
Min
200
200
ns
tWHEL(3)
tWHQV
tWLWH
Protection Timings
Parameter
tVPHWH
tWP
tVPS
1. Sampled only, not 100% tested.
2. Meaningful only if L is always kept low.
3. tWHEL has this value when reading in the targeted bank or when reading after a Set Configuration Register
command. System designers should take this into account and may insert a software No-Op instruction to
delay the first read in the same bank after issuing any command and to delay the first read to any address
after issuing a Set Configuration Register command. If the first read after the command is a Read Array
operation in a different bank and no changes to the Configuration Register have been issued, tWHEL is 0ns.
79/114
80/114
tGHEL
tELEH
tLHAX
COMMAND
SET-UP COMMAND
tDVEH
tLLLH
tELLH
tWLEL
tAVLH
BANK ADDRESS
tEHDX
tEHEL
tEHWH
CMD or DATA
tEHAX
CONFIRM COMMAND
OR DATA INPUT
tVPHEH
tWPHEH
tAVEH
VALID ADDRESS
Note 1: Amax is equal to A23 in the M58PR256J and, to A24 in the M58PR512J.
K
VPP
WP
DQ0-DQ15
E
G
W
L
A0-Amax(1)
tAVAV
tELKH
tEHVPL
tEHWPL
tWHEL
tWHQV
tEHGL
tQVVPL
AI13762
tQVWPL
STATUS REGISTER
STATUS REGISTER
READ
1st POLLING
tELQV
VALID ADDRESS
PROGRAM OR ERASE
DC and ac parameters
M58PR256J, M58PR512J
Figure 16. Write ac waveforms, Chip Enable controlled
M58PR256J, M58PR512J
DC and ac parameters
Write ac characteristics, Chip Enable controlled(1)
Table 31.
Symbol
Alt
Chip Enable Controlled Timings
108MHz
66MHz
Unit
tAVAV
tWC
Address Valid to Next Address Valid
Min
96
96
ns
tAVEH
tWC
Address Valid to Chip Enable High
Min
40
45
ns
Address Valid to Latch Enable High
Min
5
5
ns
tAVLH
tDVEH
tDS
Data Valid to Chip Enable High
Min
40
40
ns
tEHAX
tAH
Chip Enable High to Address Transition
Min
0
0
ns
tEHDX
tDH
Chip Enable High to Input Transition
Min
0
0
ns
tEHEL
tCPH Chip Enable High to Chip Enable Low
Min
20
20
ns
Chip Enable High to Output Enable Low
Min
0
0
ns
Chip Enable High to Write Enable High
Min
0
0
ns
Chip Enable Low to Clock High
Min
5
5
ns
Chip Enable Low to Chip Enable High
Min
40
45
ns
tELLH
Chip Enable Low to Latch Enable High
Min
9
10
ns
tELQV
Chip Enable Low to Output Valid
Min
96
96
ns
tGHEL
Output Enable High to Chip Enable Low
Min
14
17
ns
tLHAX
Latch Enable High to Address Transition
Min
5
5
ns
tLLLH
Latch Enable Pulse Width
Min
7
7
ns
Write Enable High to Chip Enable Low
Min
20
20
ns
Write Enable High to Output Valid
Min
116
116
ns
Write Enable Low to Chip Enable Low
Min
0
0
ns
tEHVPL
Chip Enable High to VPP Low
Min
200
200
ns
tEHWPL
Chip Enable High to Write Protect Low
Min
200
200
ns
tQVVPL
Output (Status Register) Valid to VPP Low
Min
0
0
ns
tQVWPL
Output (Status Register) Valid to Write
Protect Low
Min
0
0
ns
Min
200
200
ns
Min
200
200
ns
tEHGL
tEHWH
tCH
tELKH
tELEH
tWHEL
tCP
(2)
tWHQV
tWLEL
Protection Timings
Parameter
tVPHEH
tWPHEH
tCS
tVPS VPP High to Chip Enable High
Write Protect High to Chip Enable High
1. Sampled only, not 100% tested.
2. tWHEL has this value when reading in the targeted bank or when reading after a Set Configuration Register
command. System designers should take this into account and may insert a software No-Op instruction to
delay the first read in the same bank after issuing any command and to delay the first read to any address
after issuing a Set Configuration Register command. If the first read after the command is a Read Array
operation in a different bank and no changes to the Configuration Register have been issued, tWHEL is 0ns.
81/114
DC and ac parameters
M58PR256J, M58PR512J
Figure 17. Reset and Power-up ac waveforms
tPHWL
tPHEL
tPHGL
tPHLL
W, E, G, L
tPLWL
tPLEL
tPLGL
tPLLL
RP
tVDHPH
tPLPH
VDD, VDDQ
Power-Up
Reset
AI06976
Table 32.
Symbol
Reset and Power-up ac characteristics
Parameter
tPLWL
tPLEL
tPLGL
tPLLL
Reset Low to Write Enable Low,
Reset Low to Chip Enable Low,
Reset Low to Output Enable Low,
Reset Low to Latch Enable Low
tPHWL
tPHEL
tPHGL
tPHLL
tPLPH(1),(2)
tVDHPH(3)
Test condition
108 MHz/66 MHz
Unit
During Program
Min
25
µs
During Erase
Min
30
µs
Other Conditions
Min
80
ns
Reset High to Write Enable Low
Reset High to Chip Enable Low
Reset High to Output Enable Low
Reset High to Latch Enable Low
Min
30
ns
RP Pulse Width
Min
50
ns
Supply Voltages High to Reset High
Min
300
µs
1. The device Reset is possible but not guaranteed if tPLPH < 50ns.
2. Sampled only, not 100% tested.
3. It is important to assert RP in order to allow proper CPU initialization during Power-Up or Reset.
82/114
M58PR256J, M58PR512J
DC and ac parameters
Figure 18. Deep Power Down ac waveforms
tDPLDPH
DPD
E
tEHDPL
tDPHEL
Ai11625
Figure 19. Reset during Deep Power Down ac waveforms
DPD
E
tEHDPL
RP
Table 33.
Symbol
tPHEL
Ai11626
Deep Power Down ac characteristics
Parameter
Test condition
108 MHz / 66 MHz Unit
tDPLDPH
Deep Power Down Asserted to
Deep Power Down De-asserted
Min.
50
ns
tEHDPL
Chip Enable Low to Deep Power
Down Asserted
Min.
0
µs
tDPHEL
Deep Power Down De-asserted
to Chip Enable Low
Min.
75
µs
tPHEL
Reset High to Chip Enable Low
Min.
75
µs
During Deep Power
Down
83/114
Part numbering
16
M58PR256J, M58PR512J
Part numbering
Table 34.
Ordering information scheme
Example:
M58PR256J
E 96 ZB
5
E
Device type
M58
Architecture
P = Multilevel, Multiple Bank, Large Buffer
Operating voltage
R = VDD = 1.7 V to 2.0 V, VDDQ = 1.7 V to 2.0 V
Density
256 = 256 Mbit (×16)
512 = 512 Mbit (×16)
Technology
J = 90 nm Technology Multilevel Design
Memory Organization
E = Uniform blocks
Speed
96 = 96 ns
Package
Not packaged separately(1)
Temperature range
5 = –30 to 85 °C
Packing Option
E = ECOPACK® Package, Standard Packing
F = ECOPACK® Package, Tape & Reel Packing
1. The M58PRxxxJ memories are only available as part of a Multi-chip package device.
Devices are shipped from the factory with the memory content bits erased to ’1’.
For a list of available options (Speed, Package, etc.) or for further information on any aspect
of this device, please contact the ST Sales Office nearest to you.
84/114
M58PR256J, M58PR512J
Appendix A
Block address tables
Block address tables
The following set of equations can be used to calculate a complete set of Block addresses
using the information contained in Tables 35, 36, 37 and 38.
To calculate the Block Base Address from the Block Number:
First it is necessary to calculate the Bank Number and the Block Number Offset. This can be
achieved using the following formulas:
For the M58PR256J:
Bank_Number = Block_Number / 16
Block_Number_Offset = Block_Number - (Bank_Number x 16)
For the M58PR512J:
Bank_Number = Block_Number / 32
Block_Number_Offset = Block_Number - (Bank_Number x 32)
The Block Base Address is calculated using the formula below:
Block_Base_Address = Bank_Base_Address + Block_Base_Address_Offset
To calculate the Bank Number and the Block Number from the Block Base Address:
The Block Number, Bank Number and Block Number Offset can be calculated using the
formulas below:
For the M58PR256J:
Block_Number = address / 216
Bank_Number = Block_Number / 16
Block_Number_Offset = Block_Number −(Bank_Number x 16)
For the M58PR512J:
Block_Number = address / 232
Bank_Number = Block_Number / 32
Block_Number_Offset = Block_Number −(Bank_Number x 32)
85/114
Block address tables
Table 35.
M58PR256J - bank base addresses
Bank Number
Block Numbers
Bank Base Address
0
0 - 15
000000
1
16 - 31
200000
2
32 - 47
400000
3
48 - 63
600000
4
64 - 79
800000
5
80 - 95
A00000
6
96 - 111
C00000
7
112 - 127
E00000
Table 36.
M58PR512J - bank base addresses
Bank Number
Block Numbers
Bank Base Address
0
0 - 31
0000000
1
32 - 63
0400000
2
64 - 95
0800000
3
96 - 127
0C00000
4
128 - 159
1000000
5
160 - 191
1400000
6
192 - 223
1800000
7
224 - 255
1C00000
Table 37.
86/114
M58PR256J, M58PR512J
M58PR256J - block addresses
Block Number Offset
Block Base Address Offset
0
0000000
1
0020000
2
0040000
3
0060000
4
0080000
5
00A0000
6
00C0000
7
00E0000
8
0100000
9
0120000
10
0140000
11
0160000
12
0180000
13
01A0000
14
01C0000
15
01E0000
M58PR256J, M58PR512J
Table 38.
Block address tables
M58PR512J - block addresses
Block Number Offset
Block Base Address Offset
0
0000000
1
0020000
2
0040000
3
0060000
4
0080000
5
00A0000
6
00C0000
7
00E0000
8
0100000
9
0120000
10
0140000
11
0160000
12
0180000
13
01A0000
14
01C0000
15
01E0000
16
0200000
17
0220000
18
0240000
19
0260000
20
0280000
21
02A0000
22
02C0000
23
02E0000
24
0300000
25
0320000
26
0340000
27
0360000
28
0380000
29
03A0000
30
03C0000
31
03E0000
87/114
Common Flash Interface
Appendix B
M58PR256J, M58PR512J
Common Flash Interface
The Common Flash Interface is a JEDEC approved, standardized data structure that can be
read from the Flash memory device. It allows a system software to query the device to
determine various electrical and timing parameters, density information and functions
supported by the memory. The system can interface easily with the device, enabling the
software to upgrade itself when necessary.
When the Read CFI Query Command is issued the device enters CFI Query mode and the
data structure is read from the memory. Tables 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 and 49
show the addresses used to retrieve the data. The Query data is always presented on the
lowest order data outputs (DQ0-DQ7), the other outputs (DQ8-DQ15) are set to 0.
The CFI data structure also contains a security area where a 64 bit unique security number
is written (see Figure 4: Protection Register memory map). This area can be accessed only
in Read mode by the final user. It is impossible to change the security number after it has
been written by ST. Issue a Read Array command to return to Read mode.
Table 39.
Offset
Query structure overview(1)
Sub-section Name
Description
000h
Reserved
Reserved for algorithm-specific information
010h
CFI Query Identification String
Command set ID and algorithm data offset
01Bh
System Interface Information
Device timing & voltage information
027h
Device Geometry Definition
Flash device layout
P
Primary Algorithm-specific Extended
Query table
Additional information specific to the Primary
Algorithm (optional)
A
Alternate Algorithm-specific Extended
Query table
Additional information specific to the Alternate
Algorithm (optional)
Security Code Area
Lock Protection Register
Unique device Number and
User Programmable OTP
080h
1. The Flash memory display the CFI data structure when CFI Query command is issued. In this table are
listed the main sub-sections detailed in Tables 40, 41, 42 and 43. Query data is always presented on the
lowest order data outputs.
88/114
M58PR256J, M58PR512J
Table 40.
Common Flash Interface
CFI query identification string
Offset
Sub-section Name
000h
0020h
Manufacturer Code
001h
8818h
8819h
Device Code
002h00Fh
reserved
010h
0051h
011h
0052h
012h
0059h
013h
0000h
014h
0002h
015h
offset = P = 000Ah
016h
0001h
017h
0000h
018h
0000h
019h
value = A = 0000h
01Ah
0000h
Table 41.
Offset
Description
Value
ST
M58PR256J
M58PR512J
256 Mbits
512 Mbits
Reserved
"Q"
Query Unique ASCII String "QRY"
"R"
"Y"
Primary Algorithm Command Set and Control
Interface ID code 16 bit ID code defining a specific
algorithm
Address for Primary Algorithm extended Query table
(see Table 43)
P = 10Ah
Alternate Vendor Command Set and Control
Interface ID Code second vendor - specified
algorithm supported
NA
Address for Alternate Algorithm extended Query
table
NA
CFI query system interface information
Data
Description
Value
01Bh
0017h
VDD Logic Supply Minimum Program/Erase or Write voltage
bit 7 to 4 BCD value in volts
bit 3 to 0 BCD value in 100 millivolts
01Ch
0020h
VDD Logic Supply Maximum Program/Erase or Write voltage
bit 7 to 4 BCD value in volts
bit 3 to 0 BCD value in 100 millivolts
2V
01Dh
0085h
VPP [Programming] Supply Minimum Program/Erase voltage
bit 7 to 4 HEX value in volts
bit 3 to 0 BCD value in 100 millivolts
8.5V
01Eh
0095h
VPP [Programming] Supply Maximum Program/Erase voltage
bit 7 to 4 HEX value in volts
bit 3 to 0 BCD value in 100 millivolts
9.5V
01Fh
0006h
Typical time-out per single byte/word program = 2n µs
64µs
020h
000Bh
Typical time-out for Buffer Program = 2n µs
021h
000Ah
Typical time-out per individual block erase = 2n ms
1s
022h
0000h
Typical time-out for full chip erase = 2n ms
NA
023h
0002h
Maximum time-out for word program = 2n times typical
256µs
024h
0002h
Maximum time-out for Buffer Program = 2n times typical
8192µs
025h
0002h
Maximum time-out per individual block erase = 2n times typical
4s
026h
0000h
Maximum time-out for chip erase = 2n times typical
NA
1.7V
2048µs
89/114
Common Flash Interface
Table 42.
Offset
Device geometry definition
Data
0019h
027h
Description
M58PR256J Device Size = 2n in number of bytes
n
Value
32 MBytes
001Ah
M58PR512J Device Size = 2 in number of bytes
028h
029h
0001h
0000h
Flash Device Interface Code description
02Ah
02Bh
000Ah
0000h
Maximum number of bytes in multi-byte program or page = 2n
1024 Bytes
02Ch
0001h
Number of identical sized erase block regions within the device
bit 7 to 0 = x = number of Erase Block Regions
1
007Fh
0000h
M58PR256J Erase Block Region 1 Information
Number of identical-size erase blocks = 007Fh+1
127
00FFh
0000h
M58PR512J Erase Block Region 1 Information
Number of identical-size erase blocks = 00FFh+1
255
0000h
0004h
Erase Block Region 1 Information
Block size in Region 1 = 0400h * 256 Byte
02Dh
02Eh
02Fh
030h
031h
038h
90/114
M58PR256J, M58PR512J
Reserved Reserved for future erase block region information
64 MBytes
x16
Async.
256 KByte
NA
M58PR256J, M58PR512J
Table 43.
Common Flash Interface
Primary algorithm-specific extended query table
Offset
Data
Description
Value
(P)h = 10Ah
0050h
"P"
0052h Primary Algorithm extended Query table unique ASCII string “PRI”
"R"
0049h
"I"
(P+3)h =10Dh 0031h Major version number, ASCII
"1"
(P+4)h = 10Eh 0034h Minor version number, ASCII
"4"
(P+5)h = 10Fh 00E6h Extended Query table contents for Primary Algorithm. Address (P+5)h
contains less significant byte (1 = Yes, 0 = No)
(P+6)h = 110h 0007h
(P+7)h = 111h 0000h
(P+8)h = 112h 0000h
bit 0 Chip Erase supported
bit 1 Erase Suspend supported
bit 2 Program Suspend supported
bit 3 Legacy Lock/Unlock supported
bit 4 Queued Erase supported
bit 5 Instant individual block locking supported
bit 6 Protection bits supported
bit 7 Page mode read supported
bit 8 Synchronous read supported
bit 9 Simultaneous operation supported
bit 10 Extended Flash Array Blocks supported
bit 11 to 29 Reserved; undefined bits are ‘0’.
bit 30 CFI links to follow
bit 31 Optional features. If bit 31 is ’1’ then another 31 bit field of
optional features follows at the end of the bit-30 field.
Supported Functions after Suspend
Read Array, Read Status Register and CFI Query
(P+9)h = 113h 0001h
bit 0 Program supported after Erase Suspend (1 = Yes, 0 = No)
bit 7 to 1 Reserved; undefined bits are ‘0’
(P+A)h = 114h 0033h Block Protect Status
Defines which bits in the Block Status Register section of the Query
are implemented.
bit 0 Block protect Status Register Lock/Unlock
bit active (1 = Yes, 0 = No)
bit 1 Block Lock Status Register Lock-Down bit active (1 = Yes, 0 =
No)
(P+B)h = 115h 0000h
bit 4 EFA Block protect Status Register Lock/Unlock bit active
(1=yes, 2=No)
bit 5 EFA Block Lock Status Register Lock-Down bit active (1=yes,
2=No)
bit 15 to 6 and 3 to 2 Reserved for future use; undefined bits are ‘0’
VDD Logic Supply Optimum Program/Erase voltage (highest
performance)
(P+C)h = 116h 0018h
bit 7 to 4 HEX value in volts
bit 3 to 0 BCD value in 100 mV
(P+D)h = 117h 0090h
VPP Supply Optimum Program/Erase voltage
bit 7 to 4 HEX value in volts
bit 3 to 0 BCD value in 100 mV
No
Yes
Yes
No
No
Yes
Yes
Yes
Yes
Yes
Yes
No
No
Yes
Yes
Yes
Yes
Yes
1.8V
9V
91/114
Common Flash Interface
Table 44.
M58PR256J, M58PR512J
Protection Register information
Offset
Data
(P+E)h = 118h
0002h
(P+F)h = 119h
0080h
(P+10)h = 11Ah
0000h
(P+ 11)h = 11Bh
0003h
(P+12)h = 11Ch
0003h
(P+13)h = 11Dh
0089h
(P+14)h = 11Eh
0000h
(P+15)h = 11Fh
0000h
(P+16)h = 120h
0000h
(P+17)h = 121h
0000h
(P+18)h = 122h
0000h
(P+19)h = 123h
0000h
(P+1A)h = 124h
0010h
(P+1B)h = 125h
0000h
(P+1C)h = 126h
0004h
Table 45.
Offset
Description
Number of protection register fields in JEDEC ID space.
0000h indicates that 256 fields are available.
Protection Field 1: Protection Description
Bits 0-7 Lower byte of protection register address
Bits 8-15 Upper byte of protection register address
Bits 16-23 2n bytes in factory pre-programmed region
Bits 24-31 2n bytes in user programmable region
Value
2
80h
00h
8 Bytes
8 Bytes
89h
Protection Register 2: Protection Description
Bits 0-31 protection register address
Bits 32-39 n number of factory programmed regions (lower
byte)
Bits 40-47 n number of factory programmed regions (upper
byte)
Bits 48-55 2n bytes in factory programmable region
Bits 56-63 n number of user programmable regions (lower
byte)
Bits 64-71 n number of user programmable regions (upper
byte)
Bits 72-79 2n bytes in user programmable region
00h
00h
00h
0
0
0
16
0
16
Burst Read information
Data
Description
Value
Page-mode read capability
n
32
(P+1D)h = 127h 0005h bits 0-7 ’n’ such that 2 HEX value represents the number of readpage bytes. See offset 0028h for device word width to determine Bytes
page-mode data output width.
(P+1E)h = 128h 0003h
92/114
Number of synchronous mode read configuration fields that
follow.
3
Synchronous mode read capability configuration 1
bit 3-7 Reserved
bit 0-2 ’n’ such that 2n+1 HEX value represents the maximum
number of continuous synchronous reads when the device is
configured for its maximum word width. A value of 07h indicates
(P+1F)h = 129h 0002h that the device is capable of continuous linear bursts that will
output data until the internal burst counter reaches the end of the
device’s burstable address space. This field’s 3-bit value can be
written directly to the read configuration register bit 0-2 if the
device is configured for its maximum word width. See offset
0028h for word width to determine the burst data output width.
8
(P+20)h = 12Ah 0003h Synchronous mode read capability configuration 2
16
(P-21)h = 12Bh 0007h Synchronous mode read capability configuration 3
Cont.
M58PR256J, M58PR512J
Table 46.
Common Flash Interface
Bank and Erase block region information
Offset(1)
Data
(P+22)h = 12Ch
01h
Description
Number of Bank Regions within the device(2)
1. The variable P is a pointer which is defined at CFI offset 015h.
2. Bank Regions. There is one Bank Region, see Tables 35, 36, 37 and 38 in Appendix A.
Table 47.
Bank and Erase block region 1 information(1)
Offset
Data
Description
(P+23)h = 12Dh
16h
(P+24)h = 12Eh
00h
Data size of this Bank Region Information Section (addressable locations
including this one)
(P+25)h = 12Fh
08h
(P+26)h = 130h
00h
Number of identical banks within Bank Region 1
11h
Number of program or erase operations allowed in Bank Region 1:
Bits 0-3: Number of simultaneous program operations
Bits 4-7: Number of simultaneous erase operations
00h
Number of program or erase operations allowed in other banks while a
bank in this region is being erased
Bits 0-3: Number of simultaneous program operations
Bits 4-7: Number of simultaneous erase operations
00h
Number of program or erase operations allowed in other banks while a
bank in this region is being erased
Bits 0-3: Number of simultaneous program operations
Bits 4-7: Number of simultaneous erase operations
(P+2A)h = 134h
01h
Types of erase block regions in Bank Region 1
n = number of erase block regions with contiguous same-size erase
blocks.
Symmetrically blocked banks have one blocking region(2)
(P+2B)h = 135h
0Fh(3)
1Fh(4)
(P+2C)h = 136h
00h
(P+2D)h = 137h
00h
(P+2E)h = 138h
04h
(P+2F)h = 139h
64h
(P+30)h = 13Ah
00h
(P+27)h = 131h
(P+28)h = 132h
(P+29)h = 133h
(P+31)h = 13Bh
12h
Bank Region 1 Erase Block Type 1 Information
Bits 0-15: n+1 = number of identical-sized erase blocks in each bank
Bits 16-31: n×256 = number of bytes in erase block region
Bank Region 1 (Erase Block Type 1)
Minimum block erase cycles × 1000
Bank Region 1 (Erase Block Type 1): BIts per cell, internal ECC
Bits 0-3: bits per cell in erase region
Bit 4: reserved for “internal ECC used”
BIts 5-7: reserved
93/114
Common Flash Interface
Table 47.
M58PR256J, M58PR512J
Bank and Erase block region 1 information(1) (continued)
Offset
Data
(P+32)h = 13Ch
03h
(P+33)h = 13Dh
0Ah
(P+34)h = 13Eh
00h
(P+35)h = 13Fh
10h
(P+36)h = 140h
00h
(P+37)h = 141h
10h
(P+38)h = 142h
00h
Description
"Bank Region 1 (Erase Block Type 1): Page mode and Synchronous
mode capabilities
Bit 0: Page-mode reads permitted
Bit 1: Synchronous reads permitted
Bit 2: Synchronous writes permitted
Bits 3-7: reserved
Bank Region 1 (Erase Block Type 1) Programming Region Information
Bit 0-7: Aligned size of Programming Region in bytes
Bit 8-14: Reserved
Bit 15: Legacy Flash Operation (ignore bit 0-7)
Bit 16-23: Control Mode valid size in bytes
Bit 24-31: Reserved
Bit 32-39: Control Mode invalid size in bytes
Bit 40-46: Reserved
Bit 47: Legacy Flash Operation (ignore bit 16-23 and 32-39)
1. The variable P is a pointer which is defined at CFI offset 015h.
2. Bank Regions. There is one Bank Region, see Tables 35, 36, 37 and 38 in Appendix A.
3. Applies to M58PR256J.
4. Applies to M58PR512J.
Table 48.
Extended Flash array bank and erase block region information
Offset (1)
Data
(P+39)h = 143h
01h
Description
Number of Bank Regions within the device(2)
1. The variable P is a pointer which is defined at CFI offset 015h.
2. Bank Regions. There is one EFA Bank Region.
94/114
M58PR256J, M58PR512J
Table 49.
Offset
Common Flash Interface
Extended Flash array bank and erase block region 1 information
(1)
Data
Description
(P+3A)h = 144h
16h
(P+3B)h = 145h
00h
Data size of this Bank Region Information Section (addressable locations
including this one)
(P+3C)h = 146h
01h
(P+3D)h = 147h
00h
(P+3E)h = 148h
11h
Number of program or erase operations allowed in Bank Region 1:
Bits 0-3: Number of simultaneous program operations
Bits 4-7: Number of simultaneous erase operations
00h
Number of program or erase operations allowed in other banks while a
bank in this region is being erased
Bits 0-3: Number of simultaneous program operations
Bits 4-7: Number of simultaneous erase operations
00h
Number of program or erase operations allowed in other banks while a
bank in this region is being erased
Bits 0-3: Number of simultaneous program operations
Bits 4-7: Number of simultaneous erase operations
(P+41)h = 14Bh
01h
Types of erase block regions in Bank Region 1
n = number of erase block regions with contiguous same-size erase
blocks.
Symmetrically blocked banks have one blocking region(2).
(P+42)h = 14Ch
03h
(P+43)h = 14Dh
00h
(P+44)h = 14Eh
20h
(P+45)h = 14Fh
00h
(P+46)h = 150h
64h
(P+47)h = 151h
00h
Number of identical banks within Bank Region 1
(P+3F)h = 149h
(P+40)h = 14Ah
(P+48)h = 152h
(P+49)h = 153h
"Bank Region 1 Erase Block Type 1 Information
Bits 0-15: n+1 = number of identical-sized erase blocks in each bank
Bits 16-31: n×256 = number of bytes in erase block region
Bank Region 1 (Erase Block Type 1)
Minimum block erase cycles × 1000
01h
Bank Region 1 (Erase Block Type 1): BIts per cell, internal ECC
Bits 0-3: bits per cell in erase region
Bit 4: reserved for “internal ECC used
BIts 5-7: reserved
03h
Bank Region 1 (Erase Block Type 1): Page mode and Synchronous
mode capabilities
Bit 0: Page-mode reads permitted
Bit 1: Synchronous reads permitted
Bit 2: Synchronous writes permitted
Bits 3-7: reserved
95/114
Common Flash Interface
Table 49.
M58PR256J, M58PR512J
Extended Flash array bank and erase block region 1 information
Offset(1)
Data
(P+4A)h = 154h
00h
(P+4B)h = 155h
80h
(P+4C)h = 156h
00h
(P+4D)h = 157h
00h
(P+4E)h = 158h
00h
(P+4F)h = 159h
80h
Description
Bank Region 1 (Erase Block Type 1) Programming Region Information
Bit 0-7: Aligned size of Programming Region in bytes
Bit 8-14: Reserved
Bit 15: Legacy Flash Operation (ignore bit 0-7)
Bit 16-23: Control Mode valid size in bytes
Bit 24-31: Reserved
Bit 32-39: Control Mode invalid size in bytes
Bit 40-46: Reserved
Bit 47: Legacy Flash Operation (ignore bit 16-23 and 32-39)
1. The variable P is a pointer which is defined at CFI offset 015h.
2. Bank Regions. There is one EFA Bank Region.
96/114
M58PR256J, M58PR512J
Appendix C
Flowcharts and pseudo codes
Flowcharts and pseudo codes
Figure 20. Program and EFA Block Program flowchart and pseudo code
program_command (addressToProgram, dataToProgram)
/* EFA_program_command (addressToProgram, dataToProgram) */
{
Start
writeToFlash (addressToProgram, 0x41);
/*writeToFlash (addressToProgram, 0x44);*/
/* 41h is the command for program array, while 44h
is the command for program EFA block */
/*see note (1)*/
Write 41h (Main Array)
or 44h (EFA) (1)
writeToFlash (addressToProgram, dataToProgram) ;
/*Memory enters read status state after
the Program Command*/
Write Address
& Data
do {
status_register=readFlash (addressToProgram);
/* see note (3)*/
/* E or G must be toggled*/
Read Status
Register (3)
SR7 = 1
NO
} while (status_register.SR7== 0) ;
YES
SR3 = 0
NO
VPP Invalid
Error (2, 3)
if (status_register.SR3==1) /*VPP invalid error */
error_handler ( ) ;
NO
Program
Error (2, 3)
if (status_register.SR4==1) /*program error */
error_handler ( ) ;
NO
Program to Protected
Block Error (2, 3)
YES
SR4 = 0
YES
SR1 = 0
if (status_register.SR1==1) /*program to protect block error */
error_handler ( ) ;
YES
End
}
AI10515
1. Any address within the 'A' segment halves (A3=0) in a 1KByte Program Region configured in the Control Program Mode.
If a Program Command is issued to a Program Region configured in the Object Program Mode, SR4 and SR8 are set.
2. Status check of SR1 (Protected Block), SR3 (VPP Invalid) and SR4 (Program Error) can be made after each program
operation or after a sequence.
3. If an error is found, the Status Register must be cleared before further Program/Erase Controller operations.
97/114
Flowcharts and pseudo codes
M58PR256J, M58PR512J
Figure 21. Buffer Program flowchart and pseudo code
Start
Read Status
Register 70h command,
at Bank Address
SR7 = 1
NO
Buffer_Program_command (Start_Address, n, buffer_Program[] )
/*The start address must be aligned to a 1KB boundary
buffer_Program [] is an array structure used to store the address and
data to be programmed to the Flash memory (the address must be within
the segment Start Address and Start Address+n) */
{
status_register=readFlash (Bank_Address);
} while (status_register.SR7==0);
YES
Buffer Program E9h
command, Block Address
writeToFlash (Start_Address, n);
Write n(1),
Start Address
Write Buffer Data,
Start Address
writeToFlash (buffer_Program[0].address, buffer_Program[0].data);
/*buffer_Program[0].address is the start address*/
X=0
X=n
do {writeToFlash (Block_Address, 0xE9) ;
x = 0;
YES
while (x<n)
NO
Write Next Buffer Data,
Next Program Address(2)
{ writeToFlash (buffer_Program[x+1].address, buffer_Program[x+1].data);
x++;
X=X+1
}
Program
Buffer to Flash
Confirm D0h
writeToFlash (Start_Address, 0xD0);
Read Status
Register
SR7 = 1
do {status_register=readFlash (Start_Address);
NO
} while (status_register.SR7==0);
YES
Full Status
Register Check(3)
full_status_register_check();
}
End
AI10516b
1. n + 1 is the number of data being programmed. The maximum buffer count is 1FF (512 Words).
2. Next Program data is an element belonging to buffer_Program[].data; Next Program address is an element belonging to
buffer_Program[].address. In a Program Region configured in Control Program mode buffer_Program[].data = FFFFh if A3
= 1.
3. Routine for Error Check by reading SR3, SR4 and SR1.
98/114
M58PR256J, M58PR512J
Flowcharts and pseudo codes
Figure 22. Program Suspend & Resume flowchart and pseudo code
Start
program_suspend_command ( ) {
writeToFlash (any_address, 0xB0) ;
Write B0h
writeToFlash (bank_address, 0x70) ;
/* read status register to check if
program has already completed */
Write 70h
do {
status_register=readFlash (bank_address) ;
/* E or G must be toggled*/
Read Status
Register
SR7 = 1
NO
} while (status_register.SR7== 0) ;
YES
SR2 = 1
NO
Program Complete
if (status_register.SR2==0) /*program completed */
{ writeToFlash (bank_address, 0xFF) ;
read_data ( ) ;
/*The device returns to Read Array
(as if program/erase suspend was not issued).*/
Write FFh
YES
Read Data
}
else
Write FFh
{ writeToFlash (bank_address, 0xFF) ;
Read data from
another address
read_data ( ); /*read data from another address*/
writeToFlash (any_address, 0xD0) ;
/*write 0xD0 to resume program*/
Write D0h
writeToFlash (bank_address, 0x70) ;
/*read status register to check if program has completed */
Write 70h(1)
}
Program Continues with
Bank in Read Status
Register Mode
}
AI10117b
1. The Read Status Register command (Write 70h) can be issued just before or just after the Program Resume command.
99/114
Flowcharts and pseudo codes
M58PR256J, M58PR512J
Figure 23. Block Erase and EFA Block Erase flowchart and pseudo code
erase_command ( blockToErase )
/* EFA_erase_command (blockToErase) { */
writeToFlash (blockToErase, 0x20) ;
/* writeToFlash (blockToErase, 0x24) */
/* 20h is the command for Block Erase while 24h is the
command for Erase EFA Block*/
/*see note (1) */
Start
Write 20h (Main Array)
or 24h (EFA) (1)
writeToFlash (blockToErase, 0xD0) ;
/* only A12-A20 are significannt */
/* Memory enters read status state after
the Erase Command */
Write Block
Address & D0h
do {
status_register=readFlash (blockToErase) ;
/* see note (1) */
/* E or G must be toggled*/
Read Status
Register (1)
SR7 = 1
NO
} while (status_register.SR7== 0) ;
YES
SR3 = 0
NO
VPP Invalid
Error (2)
YES
Command
Sequence Error (2)
if (status_register.SR3==1) /*VPP invalid error */
error_handler ( ) ;
YES
SR4, SR5 = 1
if ( (status_register.SR4==1) && (status_register.SR5==1) )
/* command sequence error */
error_handler ( ) ;
NO
SR5 = 0
NO
Erase Error (2)
if ( (status_register.SR5==1) )
/* erase error */
error_handler ( ) ;
YES
SR1 = 0
NO
Erase to Protected
Block Error (2)
if (status_register.SR1==1) /*program to protect block error */
error_handler ( ) ;
YES
End
}
AI06174b
1. Any address within the bank can equally be used.
2. If an error is found, the Status Register must be cleared before further Program/Erase operations.
100/114
M58PR256J, M58PR512J
Flowcharts and pseudo codes
Figure 24. Erase Suspend & Resume flowchart and pseudo code
Start
erase_suspend_command ( ) {
writeToFlash (bank_address, 0xB0) ;
Write B0h
writeToFlash (bank_address, 0x70) ;
/* read status register to check if
erase has already completed */
Write 70h
do {
status_register=readFlash (bank_address) ;
/* E or G must be toggled*/
Read Status
Register
SR7 = 1
NO
} while (status_register.SR7== 0) ;
YES
SR6 = 1
NO
Erase Complete
if (status_register.SR6==0) /*erase completed */
{ writeToFlash (bank_address, 0xFF) ;
Write FFh
read_data ( ) ;
/*The device returns to Read Array
(as if program/erase suspend was not issued).*/
Read Data
YES
Write FFh
}
else
{ writeToFlash (bank_address, 0xFF) ;
read_program_data ( );
Read data from another block
or
Program
or
Block Lock/Unlock/Lock-Down
/*read or program data from another block*/
writeToFlash (bank_address, 0xD0) ;
/*write 0xD0 to resume erase*/
Write D0h
writeToFlash (bank_address, 0x70) ;
/*read status register to check if erase has completed */
Write 70h(1)
}
}
Erase Continues with
Bank in Read Status
Register Mode
AI10116c
1. The Read Status Register command (Write 70h) can be issued just before or just after the Erase Resume command.
101/114
Flowcharts and pseudo codes
M58PR256J, M58PR512J
Figure 25. Main Array and EFA locking operations flowchart and pseudo code
Start
Write 60h (Main Array)
or 64h (EFA) (1)
locking_operation_command (address, lock_operation) {
/* EFA_locking_operation_command (address, lock_operation) { */
writeToFlash (address, 0x60) ; /*configuration setup*/
/* writeToFlash (address, 0x64) */
/* 60h is the command for Locking Operations on the array while 64h
is the command for Locking Operations on the EFA */
/* see note (1) */
if (lock_operation==LOCK) /*to protect the block*/
writeToFlash (address, 0x01) ;
else if (lock_operation==UNLOCK) /*to unprotect the block*/
writeToFlash (address, 0xD0) ;
else if (lock_operation==LOCK-DOWN) /*to lock the block*/
writeToFlash (address, 0x2F) ;
Write
01h, D0h or 2Fh
writeToFlash (address, 0x90) ;
/*see note (1) */
Write 90h (1)
Read Block
Lock States
Locking
change
confirmed?
if (readFlash (address) ! = locking_state_expected)
error_handler () ;
/*Check the locking state (see Read Block Signature table )*/
NO
YES
writeToFlash (address, 0xFF) ; /*Reset to Read Array mode*/
/*see note (1) */
Write FFh (1)
}
End
AI10518
1. Any address within the bank can equally be used.
102/114
M58PR256J, M58PR512J
Flowcharts and pseudo codes
Figure 26. Blank Check flowchart and pseudo code
Start
blank_check_command (blockToCheck) {
writeToFlash (blockToCheck, 0xBC);
Write Block
Address & BCh
writeToFlash (blockToCheck, 0xD0);
/* Memory enters read status state after
the Blank Check Command */
Write Block
Address & D0h
do {
status_register = readFlash (blockToCheck);
/* see note (1) */
/* E or G must be toggled */
Read
Status Register (1)
} while (status_register.SR7==0);
SR7 = 1
NO
if (status_register.SR3==1)
/* VPP invalid error */
error_handler () ;
YES
SR3 = 0
SR4 = 1
SR5 = 1
SR5 = 0
SR1 = 0
NO
YES
NO
NO
VPP Invalid
Error (2)
if (status_register.SR4==1) && (status_register.SR5==1)
/* command sequence error */
error_handler () ;
Command Sequence
Error (2)
if (status_register.SR5==1)
/* erase error */
error_handler () ;
if (status_register.SR1==1)
/* protected block error */
error_handler () ;
Erase Error (2)
Protected Block
Error (2)
}
End
ai10520
1. Any address within the bank can equally be used.
2. If an error is found, the Status Register must be cleared before further Program/Erase operations.
103/114
Flowcharts and pseudo codes
M58PR256J, M58PR512J
Figure 27. Protection Register Program flowchart and pseudo code
Start
protection_register_program_command (addressToProgram, dataToProgram) {:
writeToFlash (addressToProgram, 0xC0) ;
/*see note (1) */
Write C0h (1)
writeToFlash (addressToProgram, dataToProgram) ;
/*Memory enters read status state after
the Program Command*/
Write Address
& Data
do {
status_register=readFlash (addressToProgram) ;
/* see note (1) */
/* E or G must be toggled*/
Read Status
Register (1)
SR7 = 1
NO
} while (status_register.SR7== 0) ;
YES
SR3 = 0
NO
VPP Invalid
Error (2, 3)
if (status_register.SR3==1) /*VPP invalid error */
error_handler ( ) ;
NO
Program
Error (2, 3)
if (status_register.SR4==1) /*program error */
error_handler ( ) ;
NO
Program to Protected
Block Error (2, 3)
YES
SR4 = 0
YES
SR1 = 0
if (status_register.SR1==1) /*program to protect block error */
error_handler ( ) ;
YES
End
}
AI06177c
1. Status check of SR1 (Protected Block), SR3 (VPP Invalid) and SR4 (Program Error) can be made after each program
operation or after a sequence.
2. If an error is found, the Status Register must be cleared before further Program/Erase Controller operations.
104/114
M58PR256J, M58PR512J
Flowcharts and pseudo codes
Figure 28. Buffer Enhanced Factory Program flowchart and pseudo code
Start
NO
writeToFlash (start_address, 0x80) ;
Write D0h to
Address WA1
writeToFlash (start_address, 0xD0) ;
Read Status
Register
do {
do {
status_register = readFlash (start_address);
SR7 = 0
Initialize count
X=0
SR4 = 1
Read Status Register
SR3 and SR1for errors
Write PDX (1)
Address WA1
Exit
Increment Count
X=X+1
NO
if (status_register.SR4==1) { /*error*/
if (status_register.SR3==1) error_handler ( ) ;/*VPP error */
if (status_register.SR1==1) error_handler ( ) ;/* Locked Block */
}
PROGRAM AND
while (status_register.SR7==1)
VERIFY PHASE
x=0; /* initialize count */
do {
writeToFlash (start_address, DataFlow[x]);
x++;
X = 512
}while (x<512)
do {
YES
Read Status
Register
NO
Buffer_Enhanced_Factory_Program_Command
(start_address, DataFlow[]) {
Write 80h to
Address WA1
YES
NO
SETUP PHASE
status_register = readFlash (start_address);
SR0 = 0
}while (status_register.SR0==1)
YES
NO
Last data?
} while (not last data)
YES
Write FFFFh to
Address = NOT BA1 (2)
Read Status
Register
NO
SR7 = 1
writeToFlash (another_block_address, FFFFh)
EXIT PHASE
do {
status_register = readFlash (start_address)
}while (status_register.SR7==0)
YES
Full Status Register
Check
End
full_status_register_check();
}
AI10519b
1. When programming a Program Region configured in Control Program mode, ’B’ half Segment addresses (A3 = 1) should
not contain ’0’ values.
2. BA1 = Block containing Start Address WA1.
105/114
Command interface state tables
Appendix D
Table 50.
M58PR256J, M58PR512J
Command interface state tables
Command interface states - Modify table, next state 1
command input to chip and resulting chip next state (7)
Current Chip State
Read
Array
FFh
ready
EFA
Read Program
Program
EFA
Setup
Setup
94h
ready
BP
Block
Erase
Setup
EFA
Block
Erase
Setup
BEFP
Confirm,
Resume
Program/
Erase
suspend
Read
Status
D0h
B0h
70h
41h
44h
E9h(8,9,10)
20h
24h
80h
pgrm
setup
EFA block
pgrm
setup
BP setup
erase
setup
EFA block
erase
setup
BEFP
setup
Lock/CR/ECR Setup
ready
(unlock)
ready (sequence error)
Lock EFA Block Setup
setup
OTP
OTP busy
IS in OTP busy
OTP busy
IS in OTP busy
IS in OTP busy
OTP busy
setup
WP busy
busy
program busy
IS in program busy
pgrm busy
IS in program busy
WP or
IS in program
EFA
busy
Block WP
suspend
PS
IS in PS
program
busy
WP
WP busy
suspend
pgrm
suspend
IS in PS
program
busy
WP suspend
WP suspend
(1), (2)
BP load 1
OTP busy
WP busy
IS in PS
BP load 1 (give word count load (N-1))
(2)
if N=0 go to BP confirm else go to BP load 2 (data load) (4)
BP load 2 (2)
BP confirm when count =0 else BP load 2
BP confirm
BP busy (3)
ready (sequence error)
BP
BP busy
BP busy
IS in BP busy
BP busy
BP suspend
IS in BP suspend
BP suspend
IS in BP busy
IS in BP busy
BP suspend
suspend
IS in ES
BP
suspend
BP busy
IS in BP suspend
BP busy
BP suspend
erase busy
ready (sequence
error)
BP suspend
setup
busy
Erase or
EFA
IS in erase busy
Block
Erase
BP busy
ready (sequence
error)
BP busy
IS in BP
suspend
106/114
ready
(sequence error)
OTP busy
busy
setup
ready
ready (sequence error)
erase busy
IS in erase busy
erase busy
Is in erase busy
erase busy
erase
busy
ES
erase busy
ES
WP
EFA block BP setup in
setup in
WP in ES
ES
ES
IS in ES
ES
erase busy
ES
M58PR256J, M58PR512J
Table 50.
Command interface state tables
Command interface states - Modify table, next state 1 (continued)
command input to chip and resulting chip next state (7)
Current Chip State
Read
Array
FFh
EFA
Read Program
Program
EFA
Setup
Setup
94h
41h
44h
BP
Block
Erase
Setup
EFA
Block
Erase
Setup
BEFP
Confirm,
Resume
Program/
Erase
suspend
Read
Status
E9h(8,9,10)
20h
24h
80h
D0h
B0h
70h
setup
WB busy in ES
busy
WP busy in ES
IS in program busy WP busy in
in ES
ES
WP in ES
or EFA
IS in program
Block WP
busy in ES
in ES
WP suspend
in ES
IS in PS in ES
IS in PS in ES
setup
BP load 2 (2)
BP confirm in ES when count = 0 else BP load 2 in ES
BP confirm
ES (sequence error)
BP suspend
BP busy in ES
IS in BP busy in ES
BP busy in
ES
IS in BP busy in ES
BP suspend in IS in BP suspend in BP suspend
ES
ES suspend
in ES
BP
BP busy in
suspend
ES
in ES
BP busy
in ES
IS in BP suspend in ES
BP busy in
ES
BP suspend in ES
BP suspend in ES
Lock/CR/ECR/Lock EFA
block setup in ES
ES (unlock
ES (sequence error)
block)
ES (sequence error)
setup
blank check
busy
ready (sequence error)
BC busy
IS in BC busy
BC busy
IS in blank
check busy
setup
BP busy in
ES (sequence error)
ES (3)
BP busy in ES
IS in BP
suspend in ES
blank check
busy
WP suspend is ES
if N=0 go to BP confirm in ES else go to BP load 2 in ES (data load) (4)
IS in BP busy in
ES
BEFP
Mode
WP busy in
ES
BP load 1 in ES (give word count load (N-1))
(2)
BP in ES BP busy
Blank
Check
IS in PS in ES
WP suspend in ES
(1) (2)
BP load 1
WP
WP busy in
WP busy
suspend
ES
in ES
is ES
WP busy in ES
WP suspend in
ES
suspend
IS in program busy in ES
IS in BC busy
ready (sequence
error)
BC busy
BC busy
ready (sequence error)
BEFP
loading
data
ready (sequence
error)
BEFP Busy (5) (6) BEFP program and verify busy (in block address given matches on BEFP setup command). Commands treated as data
107/114
Command interface state tables
Table 51.
M58PR256J, M58PR512J
Command interface states - Modify table, next state 2
command input to chip and resulting chip next state
Current Chip State
Clear SR Read ID
50h
ready
90h 98h
ready
Lock, CR,
Lock EFA
ECR
Setup
Setup
Blank
Check
Setup
OTP
Setup
Block
Lock
Confirm
Lockdown
Confirm
Write
CR/ECR
Confirm
Illegal
Cmd or
BEFP
Data
01h
2Fh
03h 04h
others
60h
64h
BCh
C0h
lock/CR/E
CR setup
lock EFA
block
setup
blank
check
setup
OTP
setup
ready
ready
(lock)
Lock/CR/ECR Setup
ready (sequence error)
ready
(EFA lock)
Lock EFA Block Setup
setup
OTP
busy
IS in OTP busy
ready
(sequence
ready
error)
(sequence
error)
N/A
OTP busy
IS ready
WP busy
WP busy
WP busy
IS in program busy
IS
IS in
program
busy
suspend
ready (set
CR)
OTP busy
setup
WP or
EFA
Block
WP
ready
OTP busy
OTP busy
IS in OTP
busy
busy
ready
(lock
down)
WSM
Operation
Complete
WP busy
ready
WP busy
WP
suspend
WP
(error bits suspend
cleared)
IS in PS
N/A
IS ready
WP suspend
N/A
IS in PS
WP suspend
setup
BP load 1 (give word count load (N-1))
BP load 1
if N=0 go to BP confirm else go to BP load 2 (data load)
BP load 2
BP confirm
when
count = 0
else BP
load 2
BP confirm when count =0 else BP load 2
BP confirm
N/A
ready (sequence error)
BP
BP busy
BP busy
IS in BP busy
IS
IS in BP busy
BP suspend
BP
suspend
BP
(error bits suspend
cleared)
IS in BP suspend
IS in ES
108/114
BP suspend
BP suspend
setup
IS in erase
Erase or
busy
EFA
Block
Erase
suspend
ready
IS ready
N/A
IS in BP
suspend
busy
BP busy
BP busy
ready (sequence error)
erase busy
IS in erase busy
IS
N/A
erase busy
IS nonready
erase busy
ES (error
bits
cleared)
ES
lock EFA
Lock/CR/E
block
CR setup
setup in
in ES
ES
IS
ready
ES
N/A
ES
M58PR256J, M58PR512J
Table 51.
Command interface state tables
Command interface states - Modify table, next state 2 (continued)
command input to chip and resulting chip next state
Current Chip State
Clear SR Read ID
50h
90h 98h
Lock, CR,
Lock EFA
ECR
Setup
Setup
60h
64h
Blank
Check
Setup
OTP
Setup
Block
Lock
Confirm
Lockdown
Confirm
Write
CR/ECR
Confirm
Illegal
Cmd or
BEFP
Data
BCh
C0h
01h
2Fh
03h 04h
others
setup
busy
WP in
ES or
EFA
Block
WP in
ES
WP busy in ES
WP busy in ES
IS in
program
busy in ES
suspend
IS in PS in
ES
setup
WP busy in ES
WP busy in
ES
IS in WP suspend in ES
WP suspend in ES
N/A
WP
suspend in
ES
BP confirm
when
count = 0
else BP
load 2
BP confirm in ES when count = 0 else BP load 2 in ES
BP busy in ES
IS in BP busy in ES
IS
BP busy in ES
IS in BP
suspend in
ES
IS in ES
IS in BP suspend in ES
BP suspend in ES
N/A
BP
suspend in
ES
BP suspend in ES
Lock/CR/ECR setup in
ES
ES
ES (lock
block)
ES (sequence error)
Lock EFA block setup
in ES
setup
setup
BEFP
Mode
BEFP Busy
ES
BP busy in ES
BP
suspend in
BP
BP suspend ES (error suspend
bits
is ES
cleared)
IS in blank
check busy
N/A
ready (sequence error) in ES
IS in BP busy
in ES
blank check
busy
IS in ES
BP load 1 in ES (give word count load (N-1))
BP confirm
Blank
Check
ES
if N=0 go to BP confirm in ES else go to BP load 2 in ES (data load)
BP load 2
BP busy
IS
WP suspend in ES
BP load 1
BP in ES
N/A
WP busy in ES
WP
suspend is
WP
ES (error suspend
bits
in ES
cleared)
WSM
Operation
Complete
ES (lock
down)
ES
(sequence
error)
IS in BC busy
IS
N/A
ready
(error)
ready (sequence error)
BC busy
ES (lock
error)
BC busy
BC busy
ready
BC busy
ready (sequence error)
BEFP program and verify busy (in block address given matches on BEFP setup command).
Commands treated as data
IS ready
N/A
BEFP busy
ready
109/114
Command interface state tables
Table 52.
M58PR256J, M58PR512J
Command interface states - Modify table, next output 1
command input to chip and resulting chip next state
Current Chip State
Read
Array
Read
EFA
Block
WP
EFA WP
BP
Erase
Setup
EFA
Block
Erase
Setup
BEFP
Setup
Confirm,
Resume
Program/
Erase
Suspend
Read
Status
FFh
94h
41h
44h
E9h
20h
24h
80h
D0h
B0h
70h
BEFP Setup,
BEFP program and
verify busy,
Erase Setup,
Erase EFA setup
OTP Setup,
BP Confirm,
WP setup,
WP setup in ES,
BP confirm in ES,
blank check setup
status read
EFA block WP setup,
EFA block program
setup in ES
EFA block status read
Lock/CR/ECR setup,
Lock/CR/ECR setup in
ES
status read
EFA block lock setup,
EFA block lock setup in
ES
EFA block status read
OTP busy
ready, ES, BP suspend,
WP busy, erase busy, BP
busy, BP busy in ES,
WP suspend, WP busy in
ES,
PS in ES,
BP suspend in ES, Blank
Check busy
BP setup, BP load 1,
BP load 2, IS
110/114
read
array
read
EFA
blocks
status
read
EFA block
status
read
output state
does not
change
status
read
EFA
block
status
read
output state does not change
status
read
output state does not
change
status
read
M58PR256J, M58PR512J
Table 53.
Command interface state tables
Command interface states - Modify table, next output 2
command input to chip and resulting chip next state
Current Chip State
Clear SR
Read ID
Lock,
CR, ECR
Setup
Lock
EFA
Setup
Blank
Check
OTP
Setup
Lock
Confirm
Lockdown
Confirm
Write
CR/
ECR
Confirm
Illegal
cmd or
BEFP
Data
50h
90h 98h
60h
64h
BCh
C0h
01h
2Fh
03h 04h
others
BEFP Setup,
BEFP program and verify
busy,
Erase Setup,
Erase EFA setup
OTP Setup,
BP Confirm,
WP setup,
WP setup in ES,
BP confirm in ES,
blank check setup
status read
EFA block WP setup,
EFA block program setup
in ES
EFA block status read
Lock/CR/ECR setup,
Lock/CR/ECR setup in ES
status read
array
read
status
read
EFA block lock setup, EFA
block lock setup in ES
EFA block status read
array
read
EFA
block
status
read
OTP busy
ready, ES, BP suspend, WP
busy, erase busy,
BP busy, blank check busy,
BP busy in ES,
WP suspend, WP busy in
ES, PS in ES,
BP suspend in ES
BP setup,
BP load 1,
BP load 2,
IS
Note:
output
state
does not
change
ID read
status
read
EFA
block
status
read
status read
output state does not change
output
state
does not
change
output state does not change
1
WP = Word Program, BP = Buffer program, cmd = command, SR = Status Register, pgrm =
program, IS = Illegal state, PS = Program suspend, ES = Erase suspend, CI = Command
Interface, CR = Configuration Register, BEFP = Buffer Enhanced Factory Program, P/E. C.
= Program/Erase Controller, WA0 = Address in a block different from first BEFP address,
ECR = Enhanced Configuration Register.
2
The output state shows the type of data that appears at the outputs if the bank address is
the same as the command address. A bank can be placed in Read Array, Read Status
Register, Read Electronic Signature or Read CFI mode, depending on the command issued.
Each bank remains in its last output state until a new command is issued to that bank. The
next state does not depend on the bank output state.
3
At Power-Up, all banks are in Read Array mode. Issuing a Read Array command to a busy
bank results in undetermined data output.
4
The Clear Status Register command clears the Status Register error bits except when the
P/E.C. is busy or suspended.
5
BEFP is allowed only when Status Register bit SR0 is reset to ‘0’. BEFP is busy if the Block
Address is the first BEFP Address. Any other commands are treated as data.
111/114
Command interface state tables
6
BEFP aborts when the Block Address is different from the first Block Address and data are
FFFFh.
7
BEFP Exit when Block Address is different from first Block Address and data are FFFFh.
8
During BP setup, while entering the number of Words to be programmed and filling the
buffer, the read status of the partition does not change.
9
The BP confirm command changes the read status of the partition to Status Read.
10
112/114
M58PR256J, M58PR512J
Illegal commands are commands not defined in the command set.
M58PR256J, M58PR512J
Revision history
Revision history
Table 54.
Document Revision History
Date
Version
24-Nov-2005
1
Initial release.
2
Typical Word program time using Buffer Enhanced Factory Program
command corrected on page 1. Max Erase Suspend Latency modified
in Table 22: Program/Erase times and endurance cycles.
VPP range modified in Table 23: Absolute maximum ratings (VPP not
12V tolerant). Small text changes.
Start address specified in step 3 of Section 4.8: Buffer Program
command. Text modified in Definition column for SR0 = 1 with SR7 = 0
in Table 13: Status Register bits.
Note 2 modified below Table 19. Test conditions modified for IDD3, IDD4,
IDD7 and IDD8 in Table 26: DC characteristics - currents. tAVAV, tAVQV,
tELQV and tLLQV changed in Table 28: Asynchronous Read ac
characteristics. tKHKL, tKLKH and tr for 108MHz changed in Table 29:
Synchronous Read ac characteristics. tELTV removed from Table 29:
Synchronous Read ac characteristics and Figure 12: Synchronous
Burst Read ac waveforms. tELKV changed to tELKH in Figure 15,
Figure 16, Table 30 and Table 31. tAVAV, tELQV and tWHQV modified in
Table 30 and Table 31. tPLWL, tPLEL, tPLGL, tPLLL modified in Table 32.
Memory organization added to part number in Table 34: Ordering
information scheme.
Table 50: Command interface states - Modify table, next state 1 and
Table 51: Command interface states - Modify table, next state 2
modified. BCR replaced by ECR and RCR by CR in Appendix D:
Command interface state tables.
3
Note 5 referred to Word Program and unit for EFA Block Program
added in Table 22: Program/Erase times and endurance cycles.
Unit changed for IPP1 parameter when VPP = VDD in Table 26: DC
characteristics - currents.
Address inputs corrected in Figure 7, Figure 10, Figure 11, Figure 12,
Figure 13, Figure 15 and Figure 16. Note 1 added below Table 1:
Signal names and below ac waveforms. Protection Register Program is
not available during Erase Suspend (see Figure 24: Erase Suspend &
Resume flowchart and pseudo code). Small text changes.
31-Mar-2006
21-Dec-2006
Revision Details
113/114
M58PR256J, M58PR512J
Please Read Carefully:
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY AN AUTHORIZED ST REPRESENTATIVE, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.
© 2006 STMicroelectronics - All rights reserved
STMicroelectronics group of companies
Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan Malaysia - Malta - Morocco - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America
www.st.com
114/114