R
Platform Flash XL High-Density Configuration and Storage Device
X-Ref Target - Figure 44
Start
protection_register_program_command (addressToProgram, dataToProgram) {:
writeToFlash (addressToProgram, 0xC0) ;
/*see note (3) */
Write C0h(3)
writeToFlash (addressToProgram, dataToProgram) ;
/*Memory enters read status state after
the Program Command*/
Write Address
& Data
do {
Read Status
Register(3)
status_register=readFlash (addressToProgram) ;
/* see note (3) */
/* E or G must be toggled*/
NO
SR7 = 1
YES
}
while (status_register.SR7== 0) ;
NO
V
PP Invalid
if (status_register.SR3==1) /*VPP invalid error */
error_handler ( ) ;
SR3 = 0
YES
Error(1, 2)
NO
NO
Program
Error(1, 2)
if (status_register.SR4==1) /*program error */
error_handler ( ) ;
SR4 = 0
YES
Program to Protected
Block Error(1, 2)
if (status_register.SR1==1) /*program to protect block error */
error_handler ( ) ;
SR1 = 0
YES
End
}
DS617_38_101608
Notes:
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.
3. Any address within the bank can equally be used.
4. To read the memory in Asynchronous mode, the CR15 Configuration Register bit must be written to 1.
Figure 44: Protection Register Program Flowchart and Pseudocode
X-Ref Target - Figure 45
DS617 (v3.0.1) January 07, 2010
www.xilinx.com
Product Specification
76