C28x Core
C28x-Bank
C28x System Clock
C28-FMC
Pump
M3-Bank
PUMP SEMAPHORE
Cortex-M3
M3 System Clock
M3-FMC
Flash Controller Memory Module
495
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
Internal Memory
Table 5-83. Programmable OTP Locations in M3 OTP (continued)
Name
Address
Size (x8)
Description
EMACID0
0x680810
4
Default EMAC ID = 0x1A:B6:00:64:00. By
programming these two OTP addresses, the
user can change default EMAC ID. If left
unprogrammed, default EMAC ID =
0x1A:B6:00:64:00
EMACID1
0x680814
4
CUSTOMER_OPT_MAIN_OS
C_CLK_FREQ
0x68081C
4
Input main osc frequency connected to the
device. Mboot ROM reads this location to know
the MAINOSC frequency to configure the bit
rate for CAN / I2C0 and SSI0 master mode /
EMAC bootloader. If left unprogrammed,the
default input main osc frequency = 20 MHz
OTP BOOTMODE GPIO
CONFIG REGISTER
0x680824
4
Used to configure alternate boot mode pins
5.3.5 Flash Module Controller (FMC)
There is a dedicated flash module controller in both the master subsystem (M3-FMC) and the control
subsystem (C28x-FMC). The Cortex M3 core in the master subsystem interfaces with the M3 flash module
controller (M3-FMC), which in turn, interfaces with the M3 flash bank and shared pump to perform
erase/program operations as well as to read data/execute code from the M3 flash bank.
Figure 5-78. FMC Interface with Core, Bank and Pump
The C28x core in the control subsystem interfaces with the C28x flash module controller (C28x-FMC)
which in turn, interfaces with the C28x flash bank and shared pump to perform erase/program operations
as well as to read data/execute code from the C28x flash bank. Control signals to the flash pump will be
controlled by either C28x-FMC or M3-FMC, depending on who gains the flash pump semaphore.
There is a state machine in both M3-FMC and C28x-FMC which generates the erase/program sequences
in hardware. This simplifies the Flash API software (refer to the
C2000 F021 Application Programming
Interface (API) Reference Guide
,
, for details on Flash API) which configures control registers in
FMC to perform flash erase and program operations.
The following sections (
,
,
, and
) will
describe FMC in detail.