SPRSP61C October 2021 – December 2023 TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038C-Q1 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1
PRODMIX
Table 6-6 lists the minimum required Flash wait states with different clock sources and frequencies. Wait state is the value set in register FRDCNTL[RWAIT].
CPUCLK (MHz) | EXTERNAL OSCILLATOR OR CRYSTAL | INTOSC1 OR INTOSC2 | ||
---|---|---|---|---|
NORMAL OPERATION | BANK OR PUMP SLEEP(1) | NORMAL OPERATION | BANK OR PUMP SLEEP(1) | |
116 < CPUCLK ≤ 120 | 5 | 5 | 6 | |
100 < CPUCLK ≤ 116 | 5 | |||
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 |
The F28003x devices have an improved 128-bit prefetch buffer that provides high flash code execution efficiency across wait states. Figure 6-23 and Figure 6-24 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.
Section 6.12.4.1 lists the Flash parameters.
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.
It is important to provide the correct sector mask for the bank erase command. If the mask is mistakenly chosen to erase an inaccessible sector (belongs to another security zone), the bank erase command will continue attempting to erase the sector endlessly and the FSM will never exit (since erase will not succeed). To avoid such a situation, user must take care to provide the correct mask. However, given that there is a chance of choosing an incorrect mask, TI suggests to initialize the max allowed erase pulses to zero after the max number of pulses are issued by the FSM for the bank erase operation. This will ensure that the FSM will end the bank erase command after trying to erase the inaccessible sector up to the max allowed erase pulses.
The Example_EraseBanks() function in the C2000Ware’s flash API usage example depicts the implementation of this sequence (content of the while loop waiting for the FSM to complete the bank erase command). Users must use this code as-is irrespective of whether or not security is used by the application to also ensure that the FSM exits from bank erase operations in case of an erase-failure.