Table 6-5 lists the minimum required Flash wait states with different clock sources and
frequencies. Wait state is the value set in register FRDCNTL[RWAIT].
Table 6-5 Minimum Required Flash Wait
States with Different Clock Sources and Frequencies
CPUCLK (MHz) |
EXTERNAL OSCILLATOR OR CRYSTAL |
INTOSC1 OR INTOSC2 |
NORMAL OPERATION |
BANK OR PUMP SLEEP(1) |
NORMAL OPERATION |
BANK OR PUMP SLEEP(1) |
97 < CPUCLK ≤ 100 |
4 |
4 |
5 |
80 < CPUCLK ≤ 97 |
4 |
77 < CPUCLK ≤ 80 |
3 |
3 |
4 |
60 < CPUCLK ≤ 77 |
3 |
58 < CPUCLK ≤ 60 |
2 |
2 |
3 |
40 < CPUCLK ≤ 58 |
2 |
38 < CPUCLK ≤ 40 |
1 |
1 |
2 |
20 < CPUCLK ≤ 38 |
1 |
19 < CPUCLK ≤ 20 |
0 |
0 |
1 |
CPUCLK ≤ 19 |
0 |
(1) Flash SLEEP operations require an extra wait state when using INTOSC as the
clock source for the frequency ranges indicated. Any wait state FRDCNTL[RWAIT]
change must be made before beginning a SLEEP mode operation. This setting
impacts both flash banks.
The F28002x devices have an improved 128-bit prefetch buffer that provides high flash code execution efficiency across wait states. Figure 6-22 and Figure 6-23 illustrate typical efficiency across wait-state settings compared to previous-generation devices with a 64-bit prefetch buffer. Wait-state execution efficiency with a prefetch buffer will depend on how many branches are present in application software. Two examples of linear code and if-then-else code are provided.
Figure 6-22 Application Code With Heavy 32-Bit Floating-Point Math Instructions Figure 6-23 Application Code With 16-Bit If-Else Instructions Table 6-6 lists
the Flash parameters.
Table 6-6 Flash Parameters
PARAMETER |
MIN |
TYP |
MAX |
UNIT |
Program Time(1) |
128 data bits + 16 ECC bits |
|
150 |
300 |
µs |
8KB sector |
|
50 |
100 |
ms |
Erase Time(2)(3) at < 25 cycles |
8KB sector |
|
15 |
56 |
ms |
Erase Time(2)(3) at 1000 cycles |
8KB sector |
|
25 |
133 |
ms |
Erase Time(2)(3) at 2000 cycles |
8KB sector |
|
30 |
226 |
ms |
Erase
Time(2)(3) at 20K cycles |
8KB
sector |
|
120 |
1026 |
ms |
Nwec Write/Erase Cycles per sector |
|
|
|
20000 |
cycles |
Nwec Write/Erase Cycles for entire Flash (combined
all sectors)(4) |
|
|
|
100000 |
cycles |
tretention Data retention duration at
TJ = 85oC |
|
20 |
|
|
years |
(1) Program time is at the maximum device frequency. Program time
includes overhead of the flash state machine but does not include the time to
transfer the following into RAM:
• Code that uses
flash API to program the flash
• Flash API
itself
• Flash data to be programmed
In other words, the time indicated in
this table is applicable after all the required code/data is available in the
device RAM, ready for
programming. The transfer
time will significantly vary depending on the speed of the JTAG debug probe
used.
Program time calculation is based on
programming 144 bits at a time at the specified operating frequency. Program
time includes
Program verify by the CPU. The
program time does not degrade with write/erase (W/E) cycling, but the erase time
does.
Erase time includes Erase verify by the
CPU and does not involve any data transfer.
(2) Erase time includes Erase verify by the CPU.
(3) The on-chip flash memory is in an
erased state when the device is shipped from TI. As such, erasing the flash
memory is not required prior to programming, when programming the device for the
first time. However, the erase operation is needed on all subsequent programming
operations.
(4) Each sector, by itself, can only be erased/programmed 20,000 times. If you
choose to use a sector (or multiple sectors) like an EEPROM, you can
erase/program only those sectors (still limited to 20,000 cycles) without
erasing/programming the entire Flash memory. Therefore, the total number of W/E
cycles from a device perspective can exceed 20,000 cycles. However, even this
number should not exceed 100,000 cycles.
Note: The Main Array flash programming must be aligned to 64-bit address boundaries and each 64-bit word may only be programmed once per write/erase cycle.
The DCSM OTP programming must be aligned to 128-bit address boundaries and each 128-bit word may only be programmed once. The exceptions are:
- The DCSM Zx-LINKPOINTER1 and Zx-LINKPOINTER2 values in the DCSM OTP should be programmed together, and may be programmed 1 bit at a time as required by the DCSM operation.
- The DCSM Zx-LINKPOINTER3 values in the DCSM OTP may be programmed 1 bit at a time on a 64-bit boundary to separate it from Zx-PSWDLOCK, which must only be programmed once.