Atleast one bit in golden_data was
not programmed sufficiently.
It requires another programing
p u l s e
t o
b e
a p p l i e d .
MAX_PRG_PLS_TLV is the value
of maximum number of program
pulses needed to reliably program
a flash location. This value is stored
i n
t h e
d e v i c e
T L V
t a b l e .
WAIT = wait states for program verify mode;
RD_MODE = Program Verify;
RD_MODE_
STATUS = Program
Verify?
NO
YES
actual_data = Read_word from Flash;
temp_var = FLCTL_PRGBRST_DATAn_x;
fail_bits = (NOT temp_var) AND actual_data;
updated_new_data = NOT fail_bits;
(OR and NOT used above are intended to be
bit wise operations.)
RD_MODE = Normal Read;
Clear all error flags in FLCTL_CLRIFG and
FLCTL_PRGBRST_CTLSTAT registers.
Enable auto verify before and after burst
programming
WAIT = wait states for normal read mode;
Rewrite the FLCTL_PRGBRST_DATAn_x
registers with updated_new_data;
Re-start burst programming by writing
START bit in FLCTL_PRGBRST_CTLSTAT
register. AUTO_PRE can be disabled since
the failing bits have been masked.
fail_bits = 0?
NO
Clear all error flags in FLCTL_CLRIFG
and FLCTL_PRGBRST_CTLSTAT
registers.
YES
RD_MODE
_STATUS =
Normal read?
NO
YES
PRGB = 1 in
FLCTL_IE register?
YES
NO
Continue CPU execution of other tasks
or put device in LPM0.
YES
PRGB = 1 in
FLCTL_IFG register?
NO
PRGB interrupt?
NO
YES
F
num_pr
g_pls >
MAX_PRG_PLS_
TLV?
NO
YES
Burst programming failure
End of burst programming
YES
D
PRE_ERR
= 1 or
PST_ERR = 1 in
FLCTL_PRGBRST_CTLSTAT?
NO
Increment programing pulses used.
num_+;
The banks which get set into program
verify mode should depend on the
addresses to which the burst program
is ongoing. Software can use the
S Y S _ F L A S H _ S I Z E r e g i s t e r t o
identify the size of the main flash
memory of the device to determine
bank crossing between addresses.
Advanced Operations using the Flash Controller
470
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
Flash Controller (FLCTL)
Figure 9-6. Handling Auto-Verify Error After the Burst Operation