Groups



Login

Tiva uC Guide



Tiva MCU - TM4C123FH6PM

From TI's Tiva family, the TM4C123FH6PM is an ARM Cortex-M4F class of microcontroller (MCU) is used to control and monitor the peripheral circuitry, as well as booting the DSP itself. The MCU has 256k of internal NVRAM (flash) used to store constants and tables for both the peripheral circuitry as well as the DSP's boot mode value, which may be altered by the SI sample utility.

Four (4) of the MCU's serial ports are used as follows:

  1. USB: a dedicated OTG uUSB port used to communicate with a host PC using the SI sample utility; the uUSB port is NOT connected to the DSP and is only intended for board configuration.
  2. I2C0: configured as a slave mapped at the DSP's I2C master address 0x50, used to communicate directly with the DSP.
  3. I2C3: configured as a master and only connected to communicate with the PM bus of the external main power device that supplies the 1VAR rail to the DSP, mapped at address 0x22.
  4. SPI2: configured as a master and only connected to set up the CDCM6208 external clock generator that feeds the DSP's clock inputs.

Upon power up, the MCU launches all of the peripheral circuitry including power and clocking, and once successful it will proceed to activate the DSP. This activation includes deasserting the DSP's RESET line in order to boot the DSP, at which point the DSP will retrieve all of the essential boot information from the MCU's internal NVRAM. The overall boot time of the DSP card is within 50msec~75msec.

Please refer to TI's Tiva documentation for more details:
https://www.ti.com/product/TM4C123FH6PM


MCU Flash

Flash 0x0000_0000 - 0x0004_0000 = 256KB
Flash Block size = 0x400 bytes

Memory Map

Tiva Memory Map
ScriptMemory TypeUsageStarting~Ending AddressLengthUsed/Not Used (% Used)AttributesNotes
CMDSRAMSRAM0x2000_0000~0x2000_7FFF0x8000 (32KB)0x2AF9/0x5507 (33.6%)RWXApplication uses internal RAM for data.
NVRAMAPP_FLASH0x0_0000~0x2_FFFF0x3_0000 (192KB)0x62A0/0x0002_9D60 (12.8%)R-XApplication resides and executes from internal flash.
I2C E2PROM TABLE (PCIe)0x3_0000~0x3_01FF0x0200 (512B)0x0052/0x01AE (4%)RWXMCU's I2C0 slave is linked to the DSP's I2C master and is accessed after reset with boot parameters, mapped at 0x50. The table contains values for an I2C Extended Boot cycle to ultimately boot as a PCIe Endpoint device.
I2C E2PROM TABLE (SPI)0x3_0200~0x3_03FF0x0200 (512B)0x0052/0x01AE (4%)MCU's I2C0 slave is linked to the DSP's I2C master and is accessed after reset with boot parameters, mapped at 0x50. The table contains values for an I2C Extended Boot cycle to ultimately boot from the external SPI flash device.
I2C EBM0x3_0400~0x3_07FF0x0400 (1KB)0x0004/0x003FC (1%)Single DWord value that sets the I2C Extended or Secondary Boot Mode.
n/u0x3_0800~0x3_0FFF0x0800 (2KB)0x0000/0x0800 (0%)Not used.
BOOT MODE0x3_1000~0x3_13FF0x0004 (4B)0x0004/0x0400 (1%)Single DWord value that sets the DSP's hardware boot mode along the DSP's GPIO lines, effectively substituting for a DIP switch.
REVISION ID0x3_1400~0x3_17FF0x0004 (4B)0x0004/0x0400 (1%)Format: ID:Counter:MM:DD:YY (defaulted to 0x0002_1115).
PM STATUS FLAG0x3_1800~0x3_1BFF0x0004 (4B)0x0004/0x0400 (1%)Single DWord value that reflects the status of the power module for the 1V variable DSP supply rail.
CLOCK0x3_1C00~0x3_1FFF0x0400 (1KB)0x00xx/0x0400 (x%)MCU's SPI2 is linked to the CDCM6208 external clock generator and loads its parameters.
POWER0x3_2000~0x3_27FF0x0800 (2KB)0x059B/0x0265 (70%)MCU's I2C3 master is linked to the power module for the 1V variable DSP supply rail, mapped at 0x22.
n/u0x3_2800~0x3_2BFF0x0400 (1KB)0x0000/0x0400 (0%)Not used.
NON-CMDLOG_ADDR0x3_2C00~0x3_2FFF0x0400 (1KB)0xXXXX/0x0400 (x%)R--Used for log info.
DEBUG_ADDR0x3_3000~0x3_3FFF0x1000 (4KB)0xYYYY/0x1000 (Y%)Used for output errors per run.
n/u0x3_40000~x3_FFFF0xC000 (48KB)0x0000/0xC000 (0%)Not used.


NOTES:

  1. Gaps of the NVRAM mapping have been left open for future use and currently unused.
  2. R: Read, W: Write, X: Execute.

MCU Status LEDs

There are two set of LEDs used for debugging and system monitoring:

  1. 3 LEDs controlled by the MCU which serve as status indicators for the card's initialization process during the boot phase as well as normal run.
  2. Optional set of 4 user configurable LEDs controlled by the FPGA. For more details, please refer to the FPGA Pinout To LED Control Lines section of the FPGA Hardware Guide.
MCU Controlled Status LEDs
Hex ValueLED PatternPeripheral In SequenceStatus
0x0Off-Off-OffNoneNormal Operation
0x1Off-Off-GreenDVDD181st DSP Power Rail (1.8Vdc)
0x2Off-Yellow-OffCVDD VAR2nd DSP Power Rail (1Vdc Variable)
0x3Off-Yellow-GreenCVDD13rd DSP Power Rail (1Vdc)
0x4Red-Off-OffDVDD154th DSP Power Rail (1.5Vdc)
0x5Red-Off-GreenFVDD111st FPGA Power Rail (1.1Vdc)
0x6Red-Yellow-OffExternal PLL & DSP_Reset-StatnDSP Activation (External PLL & DSP Reset/Status)
0x7Red-Yellow-GreenFVDDR152nd FPGA Power Rail (1.5Vdc)


NOTES:

  1. An earlier version of MCU firmware only enables a single green LED to indicate that the DSP card initiated properly with all power rails and external clocking in working order.