SPRSP19 December   2017 TMS320F28377D-EP

PRODUCTION DATA.  

  1. 1Device Overview
    1. 1.1 Features
    2. 1.2 Applications
    3. 1.3 Description
    4. 1.4 Functional Block Diagram
  2. 2Revision History
  3. 3Terminal Configuration and Functions
    1. 3.1 Pin Diagrams
    2. 3.2 Signal Descriptions
    3. 3.3 Pins With Internal Pullup and Pulldown
    4. 3.4 Pin Multiplexing
      1. 3.4.1 GPIO Muxed Pins
      2. 3.4.2 Input X-BAR
      3. 3.4.3 Output X-BAR and ePWM X-BAR
      4. 3.4.4 USB Pin Muxing
      5. 3.4.5 High-Speed SPI Pin Muxing
    5. 3.5 Connections for Unused Pins
  4. 4Specifications
    1. 4.1  Absolute Maximum Ratings
    2. 4.2  ESD Ratings
    3. 4.3  Recommended Operating Conditions
    4. 4.4  Power Consumption Summary
      1. 4.4.1 Current Consumption Graphs
      2. 4.4.2 Reducing Current Consumption
    5. 4.5  Electrical Characteristics
    6. 4.6  Thermal Resistance Characteristics
      1. 4.6.1 GWT Package
      2. 4.6.2 PTP Package
    7. 4.7  System
      1. 4.7.1 Power Sequencing
      2. 4.7.2 Reset Timing
        1. 4.7.2.1 Reset Sources
        2. 4.7.2.2 Reset Electrical Data and Timing
      3. 4.7.3 Clock Specifications
        1. 4.7.3.1 Clock Sources
        2. 4.7.3.2 Clock Frequencies, Requirements, and Characteristics
          1. 4.7.3.2.1 Input Clock Frequency and Timing Requirements, PLL Lock Times
          2. 4.7.3.2.2 Internal Clock Frequencies
          3. 4.7.3.2.3 Output Clock Frequency and Switching Characteristics
        3. 4.7.3.3 Input Clocks and PLLs
        4. 4.7.3.4 Crystal Oscillator
        5. 4.7.3.5 Internal Oscillators
      4. 4.7.4 Flash Parameters
      5. 4.7.5 Emulation/JTAG
        1. 4.7.5.1 JTAG Electrical Data and Timing
      6. 4.7.6 GPIO Electrical Data and Timing
        1. 4.7.6.1 GPIO - Output Timing
        2. 4.7.6.2 GPIO - Input Timing
        3. 4.7.6.3 Sampling Window Width for Input Signals
      7. 4.7.7 Interrupts
        1. 4.7.7.1 External Interrupt (XINT) Electrical Data and Timing
      8. 4.7.8 Low-Power Modes
        1. 4.7.8.1 Clock-Gating Low-Power Modes
        2. 4.7.8.2 Power-Gating Low-Power Modes
        3. 4.7.8.3 Low-Power Mode Wakeup Timing
      9. 4.7.9 External Memory Interface (EMIF)
        1. 4.7.9.1 Asynchronous Memory Support
        2. 4.7.9.2 Synchronous DRAM Support
        3. 4.7.9.3 EMIF Electrical Data and Timing
          1. 4.7.9.3.1 Asynchronous RAM
          2. 4.7.9.3.2 Synchronous RAM
    8. 4.8  Analog Peripherals
      1. 4.8.1 Analog-to-Digital Converter (ADC)
        1. 4.8.1.1 ADC Electrical Data and Timing
          1. 4.8.1.1.1 ADC Input Models
          2. 4.8.1.1.2 ADC Timing Diagrams
        2. 4.8.1.2 Temperature Sensor Electrical Data and Timing
      2. 4.8.2 Comparator Subsystem (CMPSS)
        1. 4.8.2.1 CMPSS Electrical Data and Timing
      3. 4.8.3 Buffered Digital-to-Analog Converter (DAC)
        1. 4.8.3.1 Buffered DAC Electrical Data and Timing
    9. 4.9  Control Peripherals
      1. 4.9.1 Enhanced Capture (eCAP)
        1. 4.9.1.1 eCAP Electrical Data and Timing
      2. 4.9.2 Enhanced Pulse Width Modulator (ePWM)
        1. 4.9.2.1 Control Peripherals Synchronization
        2. 4.9.2.2 ePWM Electrical Data and Timing
          1. 4.9.2.2.1 Trip-Zone Input Timing
        3. 4.9.2.3 External ADC Start-of-Conversion Electrical Data and Timing
      3. 4.9.3 Enhanced Quadrature Encoder Pulse (eQEP)
        1. 4.9.3.1 eQEP Electrical Data and Timing
      4. 4.9.4 High-Resolution Pulse Width Modulator (HRPWM)
        1. 4.9.4.1 HRPWM Electrical Data and Timing
      5. 4.9.5 Sigma-Delta Filter Module (SDFM)
        1. 4.9.5.1 SDFM Electrical Data and Timing
    10. 4.10 Communications Peripherals
      1. 4.10.1 Controller Area Network (CAN)
      2. 4.10.2 Inter-Integrated Circuit (I2C)
        1. 4.10.2.1 I2C Electrical Data and Timing
      3. 4.10.3 Multichannel Buffered Serial Port (McBSP)
        1. 4.10.3.1 McBSP Electrical Data and Timing
          1. 4.10.3.1.1 McBSP Transmit and Receive Timing
          2. 4.10.3.1.2 McBSP as SPI Master or Slave Timing
      4. 4.10.4 Serial Communications Interface (SCI)
      5. 4.10.5 Serial Peripheral Interface (SPI)
        1. 4.10.5.1 SPI Electrical Data and Timing
          1. 4.10.5.1.1 Non-High-Speed Master Mode Timings
          2. 4.10.5.1.2 Non-High-Speed Slave Mode Timings
          3. 4.10.5.1.3 High-Speed Master Mode Timings
          4. 4.10.5.1.4 High-Speed Slave Mode Timings
      6. 4.10.6 Universal Serial Bus (USB) Controller
        1. 4.10.6.1 USB Electrical Data and Timing
      7. 4.10.7 Universal Parallel Port (uPP) Interface
        1. 4.10.7.1 uPP Electrical Data and Timing
  5. 5Detailed Description
    1. 5.1  Overview
    2. 5.2  Functional Block Diagram
    3. 5.3  Memory
      1. 5.3.1 C28x Memory Map
      2. 5.3.2 Flash Memory Map
      3. 5.3.3 EMIF Chip Select Memory Map
      4. 5.3.4 Peripheral Registers Memory Map
      5. 5.3.5 Memory Types
        1. 5.3.5.1 Dedicated RAM (Mx and Dx RAM)
        2. 5.3.5.2 Local Shared RAM (LSx RAM)
        3. 5.3.5.3 Global Shared RAM (GSx RAM)
        4. 5.3.5.4 CPU Message RAM (CPU MSGRAM)
        5. 5.3.5.5 CLA Message RAM (CLA MSGRAM)
    4. 5.4  Identification
    5. 5.5  Bus Architecture - Peripheral Connectivity
    6. 5.6  C28x Processor
      1. 5.6.1 Floating-Point Unit
      2. 5.6.2 Trigonometric Math Unit
      3. 5.6.3 Viterbi, Complex Math, and CRC Unit II (VCU-II)
    7. 5.7  Control Law Accelerator
    8. 5.8  Direct Memory Access
    9. 5.9  Interprocessor Communication Module
    10. 5.10 Boot ROM and Peripheral Booting
      1. 5.10.1 EMU Boot or Emulation Boot
      2. 5.10.2 WAIT Boot Mode
      3. 5.10.3 Get Mode
      4. 5.10.4 Peripheral Pins Used by Bootloaders
    11. 5.11 Dual Code Security Module
    12. 5.12 Timers
    13. 5.13 Nonmaskable Interrupt With Watchdog Timer (NMIWD)
    14. 5.14 Watchdog
    15. 5.15 Configurable Logic Block (CLB)
  6. 6Applications, Implementation, and Layout
    1. 6.1 TI Design or Reference Design
  7. 7Device and Documentation Support
    1. 7.1 Device and Development Support Tool Nomenclature
    2. 7.2 Tools and Software
    3. 7.3 Device Nomenclature
    4. 7.4 Documentation Support
    5. 7.5 Community Resources
    6. 7.6 Trademarks
    7. 7.7 Electrostatic Discharge Caution
    8. 7.8 Export Control Notice
    9. 7.9 Glossary
  8. 8Mechanical, Packaging, and Orderable Information
    1. 8.1 Via Channel
    2. 8.2 Packaging Information

Package Options

Mechanical Data (Package|Pins)
Thermal pad, mechanical data (Package|Pins)
Orderable Information

Detailed Description

Overview

The Delfino TMS320F28377D-EP is a powerful 32-bit floating-point microcontroller unit (MCU) designed for advanced closed-loop control applications such as industrial drives and servo motor control; solar inverters and converters; digital power; transportation; and power line communications. Complete development packages for digital power and industrial drives are available as part of the powerSUITE and DesignDRIVE initiatives. While the Delfino product line is not new to the TMS320C2000 portfolio, the F28377D supports a new dual-core C28x architecture that significantly boosts system performance. The integrated analog and control peripherals also let designers consolidate control architectures and eliminate multiprocessor use in high-end systems.

The dual real-time control subsystems are based on TI’s 32-bit C28x floating-point CPUs, which provide 200 MHz of signal processing performance in each core. The C28x CPUs are further boosted by the new TMU accelerator, which enables fast execution of algorithms with trigonometric operations common in transforms and torque loop calculations; and the VCU accelerator, which reduces the time for complex math operations common in encoded applications.

The F28377D microcontroller features two CLA real-time control coprocessors. The CLA is an independent 32-bit floating-point processor that runs at the same speed as the main CPU. The CLA responds to peripheral triggers and executes code concurrently with the main C28x CPU. This parallel processing capability can effectively double the computational performance of a real-time control system. By using the CLA to service time-critical functions, the main C28x CPU is free to perform other tasks, such as communications and diagnostics. The dual C28x+CLA architecture enables intelligent partitioning between various system tasks. For example, one C28x+CLA core can be used to track speed and position, while the other C28x+CLA core can be used to control torque and current loops.

The TMS320F28377D-EP supports 1MB (512KW) of onboard flash memory with error correction code (ECC) and up to 204KB (102KW) of SRAM. Two 128-bit secure zones are also available on each CPU for code protection.

Performance analog and control peripherals are also integrated on the F28377D MCU to further enable system consolidation. Four independent 16-bit ADCs provide precise and efficient management of multiple analog signals, which ultimately boosts system throughput. The new sigma-delta filter module (SDFM) works in conjunction with the sigma-delta modulator to enable isolated current shunt measurements. The Comparator Subsystem (CMPSS) with windowed comparators allows for protection of power stages when current limit conditions are exceeded or not met. Other analog and control peripherals include DACs, PWMs, eCAPs, eQEPs, and other peripherals.

Peripherals such as EMIFs, CAN modules (ISO 11898-1/CAN 2.0B-compliant), and a new uPP interface extend the connectivity of the F28377D. The uPP interface is a new feature of the C2000 MCUs and supports high-speed parallel connection to FPGAs or other processors with similar uPP interfaces. Lastly, a USB 2.0 port with MAC and PHY lets users easily add universal serial bus (USB) connectivity to their application.

Functional Block Diagram

Figure 5-1 shows the CPU system and associated peripherals.

TMS320F28377D-EP fbd_prs880.gif Figure 5-1 Functional Block Diagram

Memory

C28x Memory Map

Both C28x CPUs on the device have the same memory map except where noted in Table 5-1. The GSx_RAM (Global Shared RAM) should be assigned to either CPU by the GSxMSEL register. Memories accessible by the CLA or DMA (direct memory access) are noted as well.

Table 5-1 C28x Memory Map

MEMORY SIZE START ADDRESS END ADDRESS CLA ACCESS DMA ACCESS
M0 RAM 1K × 16 0x0000 0000 0x0000 03FF
M1 RAM 1K × 16 0x0000 0400 0x0000 07FF
PieVectTable 512 × 16 0x0000 0D00 0x0000 0EFF
CPUx.CLA1 to CPUx MSGRAM 128 × 16 0x0000 1480 0x0000 14FF Yes
CPUx to CPUx.CLA1 MSGRAM 128 × 16 0x0000 1500 0x0000 157F Yes
UPP TX MSG RAM 512 × 16 0x0000 6C00 0x0000 6DFF Yes
UPP RX MSG RAM 512 × 16 0x0000 6E00 0x0000 6FFF Yes
LS0 RAM 2K × 16 0x0000 8000 0x0000 87FF Yes
LS1 RAM 2K × 16 0x0000 8800 0x0000 8FFF Yes
LS2 RAM 2K × 16 0x0000 9000 0x0000 97FF Yes
LS3 RAM 2K × 16 0x0000 9800 0x0000 9FFF Yes
LS4 RAM 2K × 16 0x0000 A000 0x0000 A7FF Yes
LS5 RAM 2K × 16 0x0000 A800 0x0000 AFFF Yes
D0 RAM 2K × 16 0x0000 B000 0x0000 B7FF
D1 RAM 2K × 16 0x0000 B800 0x0000 BFFF
GS0 RAM(1) 4K × 16 0x0000 C000 0x0000 CFFF Yes
GS1 RAM(1) 4K × 16 0x0000 D000 0x0000 DFFF Yes
GS2 RAM(1) 4K × 16 0x0000 E000 0x0000 EFFF Yes
GS3 RAM(1) 4K × 16 0x0000 F000 0x0000 FFFF Yes
GS4 RAM(1) 4K × 16 0x0001 0000 0x0001 0FFF Yes
GS5 RAM(1) 4K × 16 0x0001 1000 0x0001 1FFF Yes
GS6 RAM(1) 4K × 16 0x0001 2000 0x0001 2FFF Yes
GS7 RAM(1) 4K × 16 0x0001 3000 0x0001 3FFF Yes
GS8 RAM(1) 4K × 16 0x0001 4000 0x0001 4FFF Yes
GS9 RAM(1) 4K × 16 0x0001 5000 0x0001 5FFF Yes
GS10 RAM(1) 4K × 16 0x0001 6000 0x0001 6FFF Yes
GS11 RAM(1) 4K × 16 0x0001 7000 0x0001 7FFF Yes
GS12 RAM(1)(2) 4K × 16 0x0001 8000 0x0001 8FFF Yes
GS13 RAM(1)(2) 4K × 16 0x0001 9000 0x0001 9FFF Yes
GS14 RAM(1)(2) 4K × 16 0x0001 A000 0x0001 AFFF Yes
GS15 RAM(1)(2) 4K × 16 0x0001 B000 0x0001 BFFF Yes
CPU2 to CPU1 MSGRAM(1) 1K × 16 0x0003 F800 0x0003 FBFF Yes
CPU1 to CPU2 MSGRAM(1) 1K × 16 0x0003 FC00 0x0003 FFFF Yes
CAN A Message RAM(1) 2K × 16 0x0004 9000 0x0004 97FF
CAN B Message RAM(1) 2K × 16 0x0004 B000 0x0004 B7FF
Flash 256K × 16 0x0008 0000 0x000B FFFF
Secure ROM 32K × 16 0x003F 0000 0x003F 7FFF
Boot ROM 32K × 16 0x003F 8000 0x003F FFBF
Vectors 64 × 16 0x003F FFC0 0x003F FFFF
Shared between CPU subsystems.
Available only on F28379D, F28378D, F28377D, and F28375D.

Flash Memory Map

On the F28377D device, each CPU has its own flash bank [512KB (256KW)], the total flash for each device is 1MB (512KW). Only one bank can be programmed or erased at a time and the code to program the flash should be executed out of RAM. Table 5-2 shows the addresses of flash sectors on CPU1 and CPU2 for F28377D.

Table 5-2 Addresses of Flash Sectors on CPU1 and CPU2 for F28377D

SECTOR SIZE START ADDRESS END ADDRESS
OTP Sectors
TI OTP 1K × 16 0x0007 0000 0x0007 03FF
User configurable DCSM OTP 1K × 16 0x0007 8000 0x0007 83FF
Sectors
Sector A 8K × 16 0x0008 0000 0x0008 1FFF
Sector B 8K × 16 0x0008 2000 0x0008 3FFF
Sector C 8K × 16 0x0008 4000 0x0008 5FFF
Sector D 8K × 16 0x0008 6000 0x0008 7FFF
Sector E 32K × 16 0x0008 8000 0x0008 FFFF
Sector F 32K × 16 0x0009 0000 0x0009 7FFF
Sector G 32K × 16 0x0009 8000 0x0009 FFFF
Sector H 32K × 16 0x000A 0000 0x000A 7FFF
Sector I 32K × 16 0x000A 8000 0x000A FFFF
Sector J 32K × 16 0x000B 0000 0x000B 7FFF
Sector K 8K × 16 0x000B 8000 0x000B 9FFF
Sector L 8K × 16 0x000B A000 0x000B BFFF
Sector M 8K × 16 0x000B C000 0x000B DFFF
Sector N 8K ×16 0x000B E000 0x000B FFFF
Flash ECC Locations
TI OTP ECC 128 × 16 0x0107 0000 0x0107 007F
User-configurable DCSM OTP ECC 128 × 16 0x0107 1000 0x0107 107F
Flash ECC 32K × 16 0x0108 0000 0x0108 7FFF

EMIF Chip Select Memory Map

The EMIF1 memory map is the same for both CPU subsystems. EMIF2 is available only on the CPU1 subsystem. The EMIF memory map is shown in Table 5-3.

Table 5-3 EMIF Chip Select Memory Map

EMIF CHIP SELECT SIZE(2) START ADDRESS END ADDRESS CLA ACCESS DMA ACCESS
EMIF1_CS0n - Data 256M × 16 0x8000 0000 0x8FFF FFFF Yes
EMIF1_CS2n - Program + Data(3) 2M × 16 0x0010 0000 0x002F FFFF Yes
EMIF1_CS3n - Program + Data 512K × 16 0x0030 0000 0x0037 FFFF Yes
EMIF1_CS4n - Program + Data 393K × 16 0x0038 0000 0x003D FFFF Yes
EMIF2_CS0n - Data(1) 3M × 16 0x9000 0000 0x91FF FFFF
EMIF2_CS2n - Program + Data(1) 4K × 16 0x0000 2000 0x0000 2FFF Yes (Data only)
Available only on the CPU1 subsystem.
Available memory size listed in this table is the maximum possible size assuming 32-bit memory. This may not apply to other memory sizes because of pin mux setting. See Section 3.4.1 to find the available address lines for your use case.
The 2M × 16 size is for a 32-bit interface with the assumption that 16-bit accesses are not performed; hence, byte enables are not used (tied to active value on board). If byte enables are used, then the maximum size is smaller because byte enables are muxed with address pins (see Section 3.4.1). If 16-bit memory is used, then the maximum size is 1M × 16.

Peripheral Registers Memory Map

The peripheral registers memory map can be found in Table 5-4. The peripheral registers can be assigned to either the CPU1 or CPU2 subsystems except where noted in Table 5-4. Registers in the peripheral frames share a secondary master (CLA or DMA) selection with all other registers within the same peripheral frame. See the TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual for details on the CPU subsystem and secondary master selection.

Table 5-4 Peripheral Registers Memory Map

REGISTERS STRUCTURE NAME START
ADDRESS
END
ADDRESS
PROTECTED(1) CLA
ACCESS
DMA
ACCESS
AdcaResultRegs ADC_RESULT_REGS 0x0000 0B00 0x0000 0B1F Yes Yes
AdcbResultRegs ADC_RESULT_REGS 0x0000 0B20 0x0000 0B3F Yes Yes
AdccResultRegs ADC_RESULT_REGS 0x0000 0B40 0x0000 0B5F Yes Yes
AdcdResultRegs ADC_RESULT_REGS 0x0000 0B60 0x0000 0B7F Yes Yes
CpuTimer0Regs(2) CPUTIMER_REGS 0x0000 0C00 0x0000 0C07
CpuTimer1Regs(2) CPUTIMER_REGS 0x0000 0C08 0x0000 0C0F
CpuTimer2Regs(2) CPUTIMER_REGS 0x0000 0C10 0x0000 0C17
PieCtrlRegs(2) PIE_CTRL_REGS 0x0000 0CE0 0x0000 0CFF
Cla1SoftIntRegs CLA_SOFTINT_REGS 0x0000 0CE0 0x0000 0CFF Yes – CLA only, no CPU access
DmaRegs(2) DMA_REGS 0x0000 1000 0x0000 11FF
Cla1Regs(2) CLA_REGS 0x0000 1400 0x0000 147F
Peripheral Frame 1
EPwm1Regs EPWM_REGS 0x0000 4000 0x0000 40FF Yes Yes Yes
EPwm2Regs EPWM_REGS 0x0000 4100 0x0000 41FF Yes Yes Yes
EPwm3Regs EPWM_REGS 0x0000 4200 0x0000 42FF Yes Yes Yes
EPwm4Regs EPWM_REGS 0x0000 4300 0x0000 43FF Yes Yes Yes
EPwm5Regs EPWM_REGS 0x0000 4400 0x0000 44FF Yes Yes Yes
EPwm6Regs EPWM_REGS 0x0000 4500 0x0000 45FF Yes Yes Yes
EPwm7Regs EPWM_REGS 0x0000 4600 0x0000 46FF Yes Yes Yes
EPwm8Regs EPWM_REGS 0x0000 4700 0x0000 47FF Yes Yes Yes
EPwm9Regs EPWM_REGS 0x0000 4800 0x0000 48FF Yes Yes Yes
EPwm10Regs EPWM_REGS 0x0000 4900 0x0000 49FF Yes Yes Yes
EPwm11Regs EPWM_REGS 0x0000 4A00 0x0000 4AFF Yes Yes Yes
EPwm12Regs EPWM_REGS 0x0000 4B00 0x0000 4BFF Yes Yes Yes
ECap1Regs ECAP_REGS 0x0000 5000 0x0000 501F Yes Yes Yes
ECap2Regs ECAP_REGS 0x0000 5020 0x0000 503F Yes Yes Yes
ECap3Regs ECAP_REGS 0x0000 5040 0x0000 505F Yes Yes Yes
ECap4Regs ECAP_REGS 0x0000 5060 0x0000 507F Yes Yes Yes
ECap5Regs ECAP_REGS 0x0000 5080 0x0000 509F Yes Yes Yes
ECap6Regs ECAP_REGS 0x0000 50A0 0x0000 50BF Yes Yes Yes
EQep1Regs EQEP_REGS 0x0000 5100 0x0000 513F Yes Yes Yes
EQep2Regs EQEP_REGS 0x0000 5140 0x0000 517F Yes Yes Yes
EQep3Regs EQEP_REGS 0x0000 5180 0x0000 51BF Yes Yes Yes
DacaRegs DAC_REGS 0x0000 5C00 0x0000 5C0F Yes Yes Yes
DacbRegs DAC_REGS 0x0000 5C10 0x0000 5C1F Yes Yes Yes
DaccRegs DAC_REGS 0x0000 5C20 0x0000 5C2F Yes Yes Yes
Cmpss1Regs CMPSS_REGS 0x0000 5C80 0x0000 5C9F Yes Yes Yes
Cmpss2Regs CMPSS_REGS 0x0000 5CA0 0x0000 5CBF Yes Yes Yes
Cmpss3Regs CMPSS_REGS 0x0000 5CC0 0x0000 5CDF Yes Yes Yes
Cmpss4Regs CMPSS_REGS 0x0000 5CE0 0x0000 5CFF Yes Yes Yes
Cmpss5Regs CMPSS_REGS 0x0000 5D00 0x0000 5D1F Yes Yes Yes
Cmpss6Regs CMPSS_REGS 0x0000 5D20 0x0000 5D3F Yes Yes Yes
Cmpss7Regs CMPSS_REGS 0x0000 5D40 0x0000 5D5F Yes Yes Yes
Cmpss8Regs CMPSS_REGS 0x0000 5D60 0x0000 5D7F Yes Yes Yes
Sdfm1Regs SDFM_REGS 0x0000 5E00 0x0000 5E7F Yes Yes Yes
Sdfm2Regs SDFM_REGS 0x0000 5E80 0x0000 5EFF Yes Yes Yes
Peripheral Frame 2
McbspaRegs MCBSP_REGS 0x0000 6000 0x0000 603F Yes Yes Yes
McbspbRegs MCBSP_REGS 0x0000 6040 0x0000 607F Yes Yes Yes
SpiaRegs SPI_REGS 0x0000 6100 0x0000 610F Yes Yes Yes
SpibRegs SPI_REGS 0x0000 6110 0x0000 611F Yes Yes Yes
SpicRegs SPI_REGS 0x0000 6120 0x0000 612F Yes Yes Yes
UppRegs(3) UPP_REGS 0x0000 6200 0x0000 62FF Yes Yes Yes
 
WdRegs(2) WD_REGS 0x0000 7000 0x0000 703F Yes
NmiIntruptRegs(2) NMI_INTRUPT_REGS 0x0000 7060 0x0000 706F Yes
XintRegs(2) XINT_REGS 0x0000 7070 0x0000 707F Yes
SciaRegs SCI_REGS 0x0000 7200 0x0000 720F Yes
ScibRegs SCI_REGS 0x0000 7210 0x0000 721F Yes
ScicRegs SCI_REGS 0x0000 7220 0x0000 722F Yes
ScidRegs SCI_REGS 0x0000 7230 0x0000 723F Yes
I2caRegs I2C_REGS 0x0000 7300 0x0000 733F Yes
I2cbRegs I2C_REGS 0x0000 7340 0x0000 737F Yes
AdcaRegs ADC_REGS 0x0000 7400 0x0000 747F Yes Yes
AdcbRegs ADC_REGS 0x0000 7480 0x0000 74FF Yes Yes
AdccRegs ADC_REGS 0x0000 7500 0x0000 757F Yes Yes
AdcdRegs ADC_REGS 0x0000 7580 0x0000 75FF Yes Yes
InputXbarRegs(3) INPUT_XBAR_REGS 0x0000 7900 0x0000 791F Yes
XbarRegs(3) XBAR_REGS 0x0000 7920 0x0000 793F Yes
TrigRegs(3) TRIG_REGS 0x0000 7940 0x0000 794F Yes
DmaClaSrcSelRegs(2) DMA_CLA_SRC_SEL_REGS 0x0000 7980 0x0000 798F Yes
EPwmXbarRegs(3) EPWM_XBAR_REGS 0x0000 7A00 0x0000 7A3F Yes
OutputXbarRegs(3) OUTPUT_XBAR_REGS 0x0000 7A80 0x0000 7ABF Yes
GpioCtrlRegs(3) GPIO_CTRL_REGS 0x0000 7C00 0x0000 7D7F Yes
GpioDataRegs(2) GPIO_DATA_REGS 0x0000 7F00 0x0000 7F2F Yes Yes
UsbaRegs(3) USB_REGS 0x0004 0000 0x0004 0FFF Yes
Emif1Regs EMIF_REGS 0x0004 7000 0x0004 77FF Yes
Emif2Regs(3) EMIF_REGS 0x0004 7800 0x0004 7FFF Yes
CanaRegs CAN_REGS 0x0004 8000 0x0004 87FF Yes
CanbRegs CAN_REGS 0x0004 A000 0x0004 A7FF Yes
IpcRegs(2) IPC_REGS_CPU1
IPC_REGS_CPU2
0x0005 0000 0x0005 0023 Yes
FlashPumpSemaphoreRegs(2) FLASH_PUMP_SEMAPHORE_REGS 0x0005 0024 0x0005 0025 Yes
DevCfgRegs(3) DEV_CFG_REGS 0x0005 D000 0x0005 D17F Yes
AnalogSubsysRegs(3) ANALOG_SUBSYS_REGS 0x0005 D180 0x0005 D1FF Yes
ClkCfgRegs(4) CLK_CFG_REGS 0x0005 D200 0x0005 D2FF Yes
CpuSysRegs(2) CPU_SYS_REGS 0x0005 D300 0x0005 D3FF Yes
RomPrefetchRegs(3) ROM_PREFETCH_REGS 0x0005 E608 0x0005 E60B Yes
DcsmZ1Regs(2) DCSM_Z1_REGS 0x0005 F000 0x0005 F02F Yes
DcsmZ2Regs(2) DCSM_Z2_REGS 0x0005 F040 0x0005 F05F Yes
DcsmCommonRegs(2) DCSM_COMMON_REGS 0x0005 F070 0x0005 F07F Yes
MemCfgRegs(2) MEM_CFG_REGS 0x0005 F400 0x0005 F47F Yes
Emif1ConfigRegs(2) EMIF1_CONFIG_REGS 0x0005 F480 0x0005 F49F Yes
Emif2ConfigRegs(3) EMIF2_CONFIG_REGS 0x0005 F4A0 0x0005 F4BF Yes
AccessProtectionRegs(2) ACCESS_PROTECTION_REGS 0x0005 F4C0 0x0005 F4FF Yes
MemoryErrorRegs(2) MEMORY_ERROR_REGS 0x0005 F500 0x0005 F53F Yes
RomWaitStateRegs(3) ROM_WAIT_STATE_REGS 0x0005 F540 0x0005 F541 Yes
Flash0CtrlRegs(2) FLASH_CTRL_REGS 0x0005 F800 0x0005 FAFF Yes
Flash0EccRegs(2) FLASH_ECC_REGS 0x0005 FB00 0x0005 FB3F Yes
  1. The CPU (not applicable for CLA or DMA) contains a write followed by read protection mode to ensure that any read operation that follows a write operation within a protected address range is executed as written by delaying the read operation until the write is initiated.
  2. A unique copy of these registers exist on each CPU subsystem.
  3. These registers are available only on the CPU1 subsystem.
  4. These registers are mapped to either CPU1 or CPU2 based on a semaphore.

Memory Types

Table 5-5 provides more information about each memory type.

Table 5-5 Memory Types

MEMORY TYPE ECC-CAPABLE PARITY SECURITY HIBERNATE RETENTION ACCESS PROTECTION
M0, M1 Yes Yes
D0, D1 Yes Yes Yes
LSx Yes Yes Yes
GSx Yes Yes
CPU/CLA MSGRAM Yes Yes Yes
Boot ROM N/A
Secure ROM Yes N/A
Flash Yes Yes N/A N/A
User-configurable DCSM OTP Yes Yes N/A N/A

Dedicated RAM (Mx and Dx RAM)

The CPU subsystem has four dedicated ECC-capable RAM blocks: M0, M1, D0, and D1. M0/M1 memories are small nonsecure blocks that are tightly coupled with the CPU (that is, only the CPU has access to them). D0/D1 memories are secure blocks and also have the access-protection feature (CPU write/CPU fetch protection).

Local Shared RAM (LSx RAM)

RAM blocks which are dedicated to each subsystem and are accessible to its CPU and CLA only, are called local shared RAMs (LSx RAMs).

All LSx RAM blocks have parity. These memories are secure and have the access protection (CPU write/CPU fetch) feature.

By default, these memories are dedicated to the CPU only, and the user could choose to share these memories with the CLA by configuring the MSEL_LSx bit field in the LSxMSEL registers appropriately.

Table 5-6 shows the master access for the LSx RAM.

Table 5-6 Master Access for LSx RAM
(With Assumption That all Other Access Protections are Disabled)

MSEL_LSx CLAPGM_LSx CPU ALLOWED ACCESS CLA ALLOWED ACCESS COMMENT
00 X All LSx memory is configured as CPU dedicated RAM.
01 0 All Data Read
Data Write
LSx memory is shared between CPU and CLA1.
01 1 Emulation Read
Emulation Write
Fetch Only LSx memory is CLA1 program memory.

Global Shared RAM (GSx RAM)

RAM blocks which are accessible from both the CPU and DMA are called global shared RAMs (GSx RAMs). Each shared RAM block can be owned by either CPU subsystem based on the configuration of respective bits in the GSxMSEL register. Both the CPU and DMA have full read and write access to these memories.

All GSx RAM blocks have parity.

When a GSx RAM block is owned by a CPU subsystem, the CPUx and CPUx.DMA will have full access to that RAM block whereas the other CPUy and CPUy.DMA will only have read access (no fetch/write access).

Table 5-7 shows the master access for the GSx RAM.

Table 5-7 Master Access for GSx RAM
(With Assumption That all Other Access Protections are Disabled)

GSxMSEL CPU INSTRUCTION FETCH READ WRITE CPUx.DMA READ CPUx.DMA WRITE
0 CPU1 Yes Yes Yes Yes Yes
CPU2 Yes Yes
1 CPU1 Yes Yes
CPU2 Yes Yes Yes Yes Yes

The GSx RAMs have access protection (CPU write/CPU fetch/DMA write).

CPU Message RAM (CPU MSGRAM)

These RAM blocks can be used to share data between CPU1 and CPU2. Since these RAMs are used for interprocessor communication, they are also called IPC RAMs. The CPU MSGRAMs have CPU/DMA read/write access from its own CPU subsystem, and CPU/DMA read only access from the other subsystem.

This RAM has parity.

CLA Message RAM (CLA MSGRAM)

These RAM blocks can be used to share data between the CPU and CLA. The CLA has read and write access to the "CLA to CPU MSGRAM." The CPU has read and write access to the "CPU to CLA MSGRAM." The CPU and CLA both have read access to both MSGRAMs.

This RAM has parity.

Identification

Table 5-8 shows the Device Identification Registers.

Table 5-8 Device Identification Registers

NAME ADDRESS SIZE (x16) DESCRIPTION
PARTIDH (CPU1) 0x0005 D00A 2 Device part identification number
PARTIDH (CPU2) 0x0007 0202 TMS320F28377D 0x00FF 0300
REVID 0x0005 D00C 2 Silicon revision number
Revision 0 0x0000 0000
Revision A 0x0000 0000
Revision B 0x0000 0002
Revision C 0x0000 0003
UID_UNIQUE 0x0007 03C0 2 Unique identification number. This number is different on each individual device with the same PARTIDH. This can be used as a serial number in the application. This number is present only on TMS Revision C devices.
CPU ID 0x0007 026D 1 CPU identification number
CPU1 0xXX01
CPU2 0xXX02
JTAG ID N/A N/A JTAG Device ID 0x0B99 C02F

Bus Architecture – Peripheral Connectivity

Table 5-9 shows a broad view of the peripheral and configuration register accessibility from each bus master. Peripherals can be individually assigned to the CPU1 or CPU2 subsystem (for example, ePWM can be assigned to CPU1 and eQEP assigned to CPU2). Peripherals within peripheral frames 1 or 2 will all be mapped to the respective secondary master as a group (if SPI is assigned to CPUx.DMA, then McBSP is also assigned to CPUx.DMA).

Table 5-9 Bus Master Peripheral Access

PERIPHERALS
(BY BUS ACCESS TYPE)
CPU1.DMA CPU1.CLA1 CPU1 CPU2 CPU2.CLA1 CPU2.DMA
Peripherals that can be assigned to CPU1 or CPU2 and have common selectable Secondary Masters
Peripheral Frame 1: Y Y Y Y Y Y
Peripheral Frame 1:
  • HRPWM
Y Y Y
Peripheral Frame 2:
  • SPI
  • McBSP
Y Y Y Y Y Y
Peripheral Frame 2:
  • uPP Configuration(1)
Y Y Y
Peripherals that can be assigned to CPU1 or CPU2 subsystems
SCI Y Y
I2C Y Y
CAN Y Y
ADC Configuration Y Y Y Y
EMIF1 Y Y Y Y
Peripherals and Device Configuration Registers only on CPU1 subsystem
EMIF2 Y Y
USB Y
Device Capability, Peripheral Reset, Peripheral CPU Select Y
GPIO Pin Mapping and Configuration Y
Analog System Control Y
uPP Message RAMs Y Y
Reset Configuration Y
Accessible by only one CPU at a time with Semaphore
Clock and PLL Configuration Y Y
Peripherals and Registers with Unique Copies of Registers for each CPU and CLA Master(2)
System Configuration
(WD, NMIWD, LPM, Peripheral Clock Gating)
Y Y
Flash Configuration(3) Y Y
CPU Timers Y Y
DMA and CLA Trigger Source Select Y Y
GPIO Data(4) Y Y Y Y
ADC Results Y Y Y Y Y Y
These modules are on a Peripheral Frame with DMA access; however, they cannot trigger a DMA transfer.
Each CPUx and CPUx.CLA1 can only access its own copy of these registers.
At any given time, only one CPU can perform program or erase operations on the Flash.
The GPIO Data Registers are unique for each CPUx and CPUx.CLAx. When the GPIO Pin Mapping Register is configured to assign a GPIO to a particular master, the respective GPIO Data Register will control the GPIO. See the General-Purpose Input/Output (GPIO) chapter of the TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual for more details.

C28x Processor

The CPU is a 32-bit fixed-point processor. This device draws from the best features of digital signal processing; reduced instruction set computing (RISC); and microcontroller architectures, firmware, and tool sets.

The CPU features include a modified Harvard architecture and circular addressing. The RISC features are single-cycle instruction execution, register-to-register operations, and modified Harvard architecture. The microcontroller features include ease of use through an intuitive instruction set, byte packing and unpacking, and bit manipulation. The modified Harvard architecture of the CPU enables instruction and data fetches to be performed in parallel. The CPU can read instructions and data while it writes data simultaneously to maintain the single-cycle instruction operation across the pipeline. The CPU does this over six separate address/data buses.

For more information on CPU architecture and instruction set, see the TMS320C28x CPU and Instruction Set Reference Guide.

Floating-Point Unit

The C28x plus floating-point (C28x+FPU) processor extends the capabilities of the C28x fixed-point CPU by adding registers and instructions to support IEEE single-precision floating point operations.

Devices with the C28x+FPU include the standard C28x register set plus an additional set of floating-point unit registers. The additional floating-point unit registers are the following:

  • Eight floating-point result registers, RnH (where n = 0–7)
  • Floating-point Status Register (STF)
  • Repeat Block Register (RB)

All of the floating-point registers, except the repeat block register, are shadowed. This shadowing can be used in high-priority interrupts for fast context save and restore of the floating-point registers.

For more information, see the TMS320C28x Extended Instruction Sets Technical Reference Manual.

Trigonometric Math Unit

The TMU extends the capabilities of a C28x+FPU by adding instructions and leveraging existing FPU instructions to speed up the execution of common trigonometric and arithmetic operations listed in Table 5-10.

Table 5-10 TMU Supported Instructions

INSTRUCTIONS C EQUIVALENT OPERATION PIPELINE CYCLES
MPY2PIF32 RaH,RbH a = b * 2pi 2/3
DIV2PIF32 RaH,RbH a = b / 2pi 2/3
DIVF32 RaH,RbH,RcH a = b / c 5
SQRTF32 RaH,RbH a = sqrt(b) 5
SINPUF32 RaH,RbH a = sin(b * 2pi) 4
COSPUF32 RaH,RbH a = cos(b * 2pi) 4
ATANPUF32 RaH,RbH a = atan(b) / 2pi 4
QUADF32 RaH,RbH,RcH,RdH Operation to assist in calculating ATANPU2 5

No changes have been made to existing instructions, pipeline or memory bus architecture. All TMU instructions use the existing FPU register set (R0H to R7H) to carry out their operations. A detailed explanation of the workings of the FPU can be found in the TMS320C28x Extended Instruction Sets Technical Reference Manual.

Viterbi, Complex Math, and CRC Unit II (VCU-II)

The VCU-II is the second-generation Viterbi, Complex Math, and CRC extension to the C28x CPU. The VCU-II extends the capabilities of the C28x CPU by adding registers and instructions to accelerate the performance of FFTs and communications-based algorithms. The C28x+VCU-II supports the following algorithm types:

  • Viterbi Decoding
  • Viterbi decoding is commonly used in baseband communications applications. The Viterbi decode algorithm consists of three main parts: branch metric calculations, compare-select (Viterbi butterfly), and a traceback operation. Table 5-11 shows a summary of the VCU performance for each of these operations.

    Table 5-11 Viterbi Decode Performance

    VITERBI OPERATION VCU CYCLES
    Branch Metric Calculation (code rate = 1/2) 1
    Branch Metric Calculation (code rate = 1/3) 2p
    Viterbi Butterfly (add-compare-select) 2(1)
    Traceback per Stage 3(2)
    C28x CPU takes 15 cycles per butterfly.
    C28x CPU takes 22 cycles per stage.
  • Cyclic Redundancy Check
  • Cyclic redundancy check (CRC) algorithms provide a straightforward method for verifying data integrity over large data blocks, communication packets, or code sections. The C28x+VCU can perform 8-bit, 16-bit, 24-bit, and 32-bit CRCs. For example, the VCU can compute the CRC for a block length of 10 bytes in 10 cycles. A CRC result register contains the current CRC, which is updated whenever a CRC instruction is executed.

  • Complex Math
  • Complex math is used in many applications, a few of which are:

    • Fast Fourier Transform (FFT)
    • The complex FFT is used in spread spectrum communications, as well as in many signal processing algorithms.

    • Complex filters
    • Complex filters improve data reliability, transmission distance, and power efficiency. The C28x+VCU can perform a complex I and Q multiply with coefficients (four multiplies) in a single cycle. In addition, the C28x+VCU can read/write the real and imaginary parts of 16-bit complex data to memory in a single cycle.

    Table 5-12 shows a summary of the VCU operations enabled by the VCU.

    Table 5-12 Complex Math Performance

    COMPLEX MATH OPERATION VCU CYCLES NOTES
    Add or Subtract 1 32 +/- 32 = 32-bit (Useful for filters)
    Add or Subtract 1 16 +/- 32 = 15-bit (Useful for FFT)
    Multiply 2p 16 x 16 = 32-bit
    Multiply and Accumulate (MAC) 2p 32 + 32 = 32-bit, 16 x 16 = 32-bit
    RPT MAC 2p+N Repeat MAC. Single cycle after the first operation.

For more information, see the TMS320C28x Extended Instruction Sets Technical Reference Manual.

Control Law Accelerator

The CLA is an independent single-precision (32-bit) FPU processor with its own bus structure, fetch mechanism, and pipeline. Eight individual CLA tasks can be specified. Each task is started by software or a peripheral such as the ADC, ePWM, eCAP, eQEP, or CPU Timer 0. The CLA executes one task at a time to completion. When a task completes, the main CPU is notified by an interrupt to the PIE and the CLA automatically begins the next highest-priority pending task. The CLA can directly access the ADC Result registers, ePWM, eCAP, eQEP, Comparator and DAC registers. Dedicated message RAMs provide a method to pass additional data between the main CPU and the CLA.

Figure 5-2 shows the CLA block diagram.

TMS320F28377D-EP CLA_block_diagram.gif Figure 5-2 CLA Block Diagram

Direct Memory Access

Each CPU has its own 6-channel DMA module. The DMA module provides a hardware method of transferring data between peripherals and/or memory without intervention from the CPU, thereby freeing up bandwidth for other system functions. Additionally, the DMA has the capability to orthogonally rearrange the data as it is transferred as well as “ping-pong” data between buffers. These features are useful for structuring data into blocks for optimal CPU processing.

The DMA module is an event-based machine, meaning it requires a peripheral or software trigger to start a DMA transfer. Although it can be made into a periodic time-driven machine by configuring a timer as the interrupt trigger source, there is no mechanism within the module itself to start memory transfers periodically. The interrupt trigger source for each of the six DMA channels can be configured separately and each channel contains its own independent PIE interrupt to let the CPU know when a DMA transfer has either started or completed. Five of the six channels are exactly the same, while Channel 1 has the ability to be configured at a higher priority than the others.

DMA features include:

  • Six channels with independent PIE interrupts
  • Peripheral interrupt trigger sources
    • ADC interrupts and EVT signals
    • Multichannel buffered serial port transmit and receive
    • External interrupts
    • CPU timers
    • EPWMxSOC signals
    • SPIx transmit and receive
    • SDFM
    • Software trigger
  • Data sources and destinations:
    • GSx RAM
    • CPU message RAM (IPC RAM)
    • ADC result registers
    • ePWMx
    • SPI
    • McBSP
    • EMIF
  • Word Size: 16-bit or 32-bit (SPI and McBSP limited to 16-bit)
  • Throughput: four cycles/word (without arbitration)

Figure 5-3 shows a device-level block diagram of the DMA.

TMS320F28377D-EP New_DMA_block_diagram.gif Figure 5-3 DMA Block Diagram

Interprocessor Communication Module

The IPC module supports several methods of interprocessor communication:

  • Thirty-two IPC flags per CPU, which can be used to signal events or indicate status through software polling. Four flags per CPU can generate interrupts.
  • Shared data registers, which can be used to send commands or other small pieces of information between CPUs. Although the register names were chosen to support a command/response system, they can be used for any purpose as defined in software.
  • Boot mode and status registers, which allow CPU1 to control the CPU2 boot process.
  • A general-purpose free-running 64-bit counter.
  • Two shared message RAMs, which can be used to transfer bulk data. Each RAM can be read by both CPUs. CPU1 can write to one RAM and CPU2 can write to the other.

Figure 5-4 shows the IPC architecture.

TMS320F28377D-EP ipc_prs880.gif Figure 5-4 IPC Architecture

Boot ROM and Peripheral Booting

The device boot ROM (on both the CPUs) contains bootloading software. The CPU1 boot ROM does the system initialization before bringing CPU2 out of reset. The device boot ROM is executed each time the device comes out of reset. Users can configure the device to boot to flash (using GET mode) or choose to boot the device through one of the bootable peripherals by configuring the boot mode GPIO pins.

The CPU1 boot ROM, being master, owns the boot mode GPIO and boot configurations. The CPU2 boot ROM either boots to flash (if configured to do so through user configurable DCSM OTP) or enters a WAIT BOOT mode if no OTP is programmed. In WAIT BOOT mode, the CPU1 application instructs the CPU2 boot ROM on how to boot further using boot mode IPC commands supported by CPU2 boot ROM.

Table 5-13 shows the possible boot modes supported on the device. The default boot mode pins are GPIO72 (boot mode pin 1) and GPIO 84 (boot mode pin 0). Users may choose to have weak pullups for boot mode pins if they use a peripheral on these pins as well, so the pullups can be overdriven. On this device, customers can change the factory default boot mode pins by programming user configurable DCSM OTP locations. This is recommended only for cases in which the factory default boot mode pins do not fit into the customer design. More details on the locations to be programmed is available in the TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual.

Table 5-13 Device Boot Mode

MODE NO. CPU1 BOOT MODE CPU2 BOOT MODE TRST GPIO72
(BOOT
MODE
PIN 1)
GPIO84
(BOOT
MODE
PIN 0)
0 Parallel I/O Boot from Master 0 0 0
1 SCI Mode Boot from Master 0 0 1
2 Wait Boot Mode Boot from master 0 1 0
3 Get Mode Boot from Master 0 1 1
4-7 EMU Boot Mode (Emulator Connected) Boot from Master 1 X X

NOTE

The default behavior of Get mode is boot-to-flash. On unprogrammed devices, using Get mode will result in repeated watchdog resets, which may prevent proper JTAG connection and device initialization. Use Wait mode or another boot mode for unprogrammed devices.

CAUTION

Some reset sources are internally driven by the device. The user must ensure the pins used for boot mode are not actively driven by other devices in the system for these cases. The boot configuration has a provision for changing the boot pins in OTP. For more details, see the TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual.

EMU Boot or Emulation Boot

The CPU enters this boot when it detects that TRST is HIGH (in other words, when an emulator/debugger is connected). In this mode, the user can program the EMUBOOTCTRL register (at location 0xD00) to instruct the device on how to boot. If the contents of the EMUBOOTCTRL locations are invalid, then the device would default into WAIT Boot mode. The emulation boot allows users to verify the device boot before programming the boot mode into OTP.

WAIT Boot Mode

The device in this boot mode loops in the boot ROM. This mode is useful if users want to connect a debugger on a secure device or if users do not want the device to execute an application in flash yet.

Get Mode

The default behavior of Get mode is boot-to-flash. This behavior can be changed by programming the Zx-OTPBOOTCTRL locations in user configurable DCSM OTP. The user configurable DCSM OTP on this device is divided in to two secure zones: Z1 and Z2. The Get mode function in boot ROM first checks if a valid OTPBOOTCTRL value is programmed in Z1. If the answer is yes, then the device boots as per the Z1-OTPBOOTCTRL location. The Z2-OTPBOOTCTRL location is read and decodes only if Z1-OTPBOOTCTRL is invalid or not programmed. If either Zx-OTPBOOTCTRL location is not programmed, then the device defaults to factory default operation, which is to use factory default boot mode pins to boot to flash if the boot mode pins are set to GET MODE. Users can choose the device through which to boot—SPI, I2C, CAN, and USB—by programming proper values into the user configurable DCSM OTP. More details on this can be found in the TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual.

Peripheral Pins Used by Bootloaders

Table 5-14 shows the GPIO pins used by each peripheral bootloader. This device supports two sets of GPIOs for each mode, as shown in Table 5-14.

Table 5-14 GPIO Pins Used by Each Peripheral Bootloader

BOOTLOADER GPIO PINS NOTES
SCI-Boot0 SCITXDA: GPIO84
SCIRXDA: GPIO85
SCIA Boot I/O option 1 (default SCI option when chosen through Boot Mode GPIOs)
SCI-Boot1 SCITXDA: GPIO28
SCIRXDA: GPIO29
SCIA Boot option 2 – with alternate I/Os.
Parallel Boot D0 – GPIO65
D1 – GPIO64
D2 – GPIO58
D3 – GPIO59
D4 – GPIO60
D5 – GPIO61
D6 – GPIO62
D7 – GPIO63
HOST_CTRL – GPIO70
DSP_CTRL – GPIO69
CAN-Boot0 CANRXA: GPIO70
CANTXA: GPIO71
CAN-A Boot – I/O option 1
CAN-Boot1 CANRXA: GPIO62
CANTXA: GPIO63
CAN-A Boot – I/O option 2
I2C-Boot0 SDAA: GPIO91
SCLA: GPIO92
I2CA Boot – I/O option 1
I2C-Boot1 SDAA: GPIO32
SCLA: GPIO33
I2CA Boot – I/O option 2
SPI-Boot0 SPISIMOA - GPIO58
SPISOMIA - GPIO59
SPICLKA - GPIO60
SPISTEA - GPIO61
SPIA Boot – I/O option 1
SPI-Boot1 SPISIMOA – GPIO16
SPISOMIA – GPIO17
SPICLKA – GPIO18
SPISTEA – GPIO19
SPIA Boot – I/O option 2
USB Boot USB0DM - GPIO42
USB0DP - GPIO43
The USB Bootloader will switch the clock source to the external crystal oscillator (X1 and X2 pins). A 20-MHz crystal should be present on the board if this boot mode is selected.

Dual Code Security Module

The dual code security module (DCSM) prevents access to on-chip secure memories. The term “secure” means access to secure memories and resources is blocked. The term “unsecure” means access is allowed; for example, through a debugging tool such as Code Composer Studio™ (CSS).

The code security mechanism offers protection for two zones, Zone 1 (Z1) and Zone 2 (Z2). The security implementation for both the zones is identical. Each zone has its own dedicated secure resource (OTP memory and secure ROM) and allocated secure resource (CLA, LSx RAM, and flash sectors).

The security of each zone is ensured by its own 128-bit password (CSM password). The password for each zone is stored in an OTP memory location based on a zone-specific link pointer. The link pointer value can be changed to program a different set of security settings (including passwords) in OTP.

Timers

CPU-Timers 0, 1, and 2 are identical 32-bit timers with presettable periods and with 16-bit clock prescaling. The timers have a 32-bit count-down register that generates an interrupt when the counter reaches zero. The counter is decremented at the CPU clock speed divided by the prescale value setting. When the counter reaches zero, it is automatically reloaded with a 32-bit period value.

CPU-Timer 0 is for general use and is connected to the PIE block. CPU-Timer 1 is also for general use and is connected to INT13 of the CPU. CPU-Timer 2 is reserved for TI-RTOS. It is connected to INT14 of the CPU. If TI-RTOS is not being used, CPU-Timer 2 is available for general use.

CPU-Timer 2 can be clocked by any one of the following:

  • SYSCLK (default)
  • Internal zero-pin oscillator 1 (INTOSC1)
  • Internal zero-pin oscillator 2 (INTOSC2)
  • X1 (XTAL)
  • AUXPLLCLK

Nonmaskable Interrupt With Watchdog Timer (NMIWD)

The NMIWD module is used to handle system-level errors. There is an NMIWD module for each CPU. The conditions monitored are:

  • Missing system clock due to oscillator failure
  • Uncorrectable ECC error on CPU access to flash memory
  • Uncorrectable ECC error on CPU, CLA, or DMA access to RAM
  • Vector fetch error on the other CPU
  • CPU1 only: Watchdog or NMI watchdog reset on CPU2

If the CPU does not respond to the latched error condition, then the NMI watchdog will trigger a reset after a programmable time interval. The default time is 65536 SYSCLK cycles.

Watchdog

The watchdog module is the same as the one on previous TMS320C2000 devices, but with an optional lower limit on the time between software resets of the counter. This windowed countdown is disabled by default, so the watchdog is fully backwards-compatible.

The watchdog generates either a reset or an interrupt. It is clocked from the internal oscillator with a selectable frequency divider.

Figure 5-5 shows the various functional blocks within the watchdog module.

TMS320F28377D-EP watchdog_prs880.gif Figure 5-5 Windowed Watchdog

Configurable Logic Block (CLB)

TI uses the CLB to offer additional interfacing and control features for select C2000 devices. Functions that would otherwise be accomplished using external logic devices are now provided by on-chip TI solutions. For example, absolute encoder master protocol interfaces such as EnDat and BiSS are now provided as Position Manager solutions. Configuration files, application programmer’s interface (API), and use examples for such solutions are provided with the C2000 controlSUITE software package. In some solutions, the TI-configured CLB is used with other on-chip resources, such as the SPI port or the C28x CPU, to perform more complex functionality. In some cases, external communications transceivers may need to be added.