Flowcharts and pseudo codes
M58LT128HST, M58LT128HSB
Figure 22. Program Suspend & Resume flowchart and pseudo code
Start
program_suspend_command ( ) {
writeToFlash (any_address, 0xB0) ;
Write B0h
Write 70h
writeToFlash (bank_address, 0x70) ;
/* read status register to check if
program has already completed */
do {
status_register=readFlash (bank_address) ;
/* E or G must be toggled*/
Read Status
Register
NO
NO
SR7 = 1
YES
} while (status_register.SR7== 0) ;
SR2 = 1
Program Complete
Write FFh
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).*/
Read Data
YES
}
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.
94/110