SPRUII0F
May 2019 – June 2024
1
Read This First
About This Manual
Notational Conventions
Glossary
Related Documentation From Texas Instruments
Support Resources
Trademarks
1
► C28x SYSTEM RESOURCES
1.1
Technical Reference Manual Overview
2
C2000™ Microcontrollers Software Support
2.1
Introduction
2.2
C2000Ware Structure
2.3
Documentation
2.4
Devices
2.5
Libraries
2.6
Code Composer Studio™ Integrated Development Environment (IDE)
2.7
SysConfig and PinMUX Tool
3
C28x System Control and Interrupts
3.1
C28x System Control Introduction
3.1.1
SYSCTL Related Collateral
3.2
System Control Functional Description
3.2.1
Device Identification
3.2.2
Device Configuration Registers
3.3
Resets
3.3.1
Reset Sources
3.3.2
External Reset (XRSn)
3.3.3
Simulate External Reset
3.3.4
Power-On Reset (POR)
3.3.5
Debugger Reset (SYSRS)
3.3.6
Simulate CPU1 Reset
3.3.7
Watchdog Reset (WDRS)
3.3.8
NMI Watchdog Reset (NMIWDRS)
3.3.9
Secure Code Copy Reset (SCCRESET)
3.3.10
ESC Reset Output
3.3.11
Test Reset (TRST)
3.4
Peripheral Interrupts
3.4.1
Interrupt Concepts
3.4.2
Interrupt Architecture
3.4.2.1
Peripheral Stage
3.4.2.2
PIE Stage
3.4.2.3
CPU Stage
3.4.2.4
Dual-CPU Interrupt Handling
3.4.3
Interrupt Entry Sequence
3.4.4
Configuring and Using Interrupts
3.4.4.1
Enabling Interrupts
3.4.4.2
Handling Interrupts
3.4.4.3
Disabling Interrupts
3.4.4.4
Nesting Interrupts
3.4.5
PIE Channel Mapping
3.4.5.1
PIE Interrupt Priority
3.4.5.1.1
Channel Priority
3.4.5.1.2
Group Priority
3.4.6
System Error and CM Status Interrupts
3.4.7
Vector Tables
3.5
Exceptions and Non-Maskable Interrupts
3.5.1
Configuring and Using NMIs
3.5.2
Emulation Considerations
3.5.3
NMI Sources
3.5.3.1
Missing Clock Detection
3.5.3.2
RAM Uncorrectable Error
3.5.3.3
Flash Uncorrectable ECC Error
3.5.3.4
ROM Uncorrectable Error
3.5.3.5
NMI Vector Fetch Mismatch
3.5.3.6
CPU2 Watchdog or NMI Watchdog Reset
3.5.3.7
CM NMI Watchdog Reset
3.5.3.8
EtherCAT Reset out
3.5.3.9
CRC Fail
3.5.3.10
ERAD NMI
3.5.4
Illegal Instruction Trap (ITRAP)
3.6
Safety Features
3.6.1
Write Protection on Registers
3.6.1.1
LOCK Protection on System Configuration Registers
3.6.1.2
EALLOW Protection
3.6.2
CPU1 and CPU2 ePIE Vector Address Validity Check
3.6.3
NMIWDs
3.6.4
ECC and Parity Enabled RAMs, Shared RAMs Protection
3.6.5
ECC Enabled Flash Memory
3.6.6
ERRORSTS Pin
3.7
Clocking
3.7.1
Clock Sources
3.7.1.1
Primary Internal Oscillator (INTOSC2)
3.7.1.2
Backup Internal Oscillator (INTOSC1)
3.7.1.3
External Oscillator (XTAL)
3.7.1.4
Auxiliary Clock Input (AUXCLKIN)
3.7.2
Derived Clocks
3.7.2.1
Oscillator Clock (OSCCLK)
3.7.2.2
System PLL Output Clock (PLLRAWCLK)
3.7.2.3
Auxiliary Oscillator Clock (AUXOSCCLK)
3.7.2.4
Auxiliary PLL Output Clock (AUXPLLRAWCLK)
3.7.3
Device Clock Domains
3.7.3.1
System Clock (PLLSYSCLK)
3.7.3.2
CPU Clock (CPUCLK)
3.7.3.3
CPU Subsystem Clock (SYSCLK and PERx.SYSCLK)
3.7.3.4
Low-Speed Peripheral Clock (LSPCLK and PERx.LSPCLK)
3.7.3.5
USB Auxiliary Clock (AUXPLLCLK)
3.7.3.6
CAN Bit Clock
3.7.3.7
CPU Timer2 Clock (TIMER2CLK)
3.7.4
External Clock Output (XCLKOUT)
3.7.5
Clock Connectivity
3.7.6
PLL/AUXPLL
3.7.6.1
Choosing PLL Settings
3.7.6.2
System Clock Setup
3.7.6.3
USB Auxiliary Clock Setup
3.7.6.4
SYS PLL / AUX PLL Bypass
3.7.7
Clock (OSCCLK) Failure Detection
3.7.7.1
Missing Clock Detection Logic
3.8
Clock Configuration Semaphore
3.9
32-Bit CPU Timers 0/1/2
3.10
Watchdog Timers
3.10.1
Servicing the Watchdog Timer
3.10.2
Minimum Window Check
3.10.3
Watchdog Reset or Watchdog Interrupt Mode
3.10.4
Watchdog Operation in Low-Power Modes
3.10.5
Emulation Considerations
3.11
Low-Power Modes
3.11.1
IDLE
3.11.2
STANDBY
3.12
Memory Controller Module
3.12.1
Functional Description
3.12.1.1
Dedicated RAM (Dx RAM)
3.12.1.2
Local Shared RAM (LSx RAM)
3.12.1.3
Global Shared RAM (GSx RAM)
3.12.1.4
CPU Message RAM (CPU MSG RAM)
3.12.1.5
CLA Message RAM (CLA MSGRAM)
3.12.1.6
CLA-DMA MSG RAM
3.12.1.7
Access Arbitration
3.12.1.8
Access Protection
3.12.1.8.1
CPU Fetch Protection
3.12.1.8.2
CPU Write Protection
3.12.1.8.3
CPU Read Protection
3.12.1.8.4
CLA Fetch Protection
3.12.1.8.5
CLA Write Protection
3.12.1.8.6
CLA Read Protection
3.12.1.8.7
DMA Write Protection
3.12.1.9
Memory Error Detection, Correction and Error Handling
3.12.1.9.1
Error Detection and Correction
3.12.1.9.2
Error Handling
3.12.1.10
Application Test Hooks for Error Detection and Correction
3.12.1.11
ROM Test
3.12.1.12
RAM Initialization
3.13
JTAG
3.13.1
JTAG Noise and TAP_STATUS
3.14
System Control Register Configuration Restrictions
3.15
Software
3.15.1
SYSCTL Examples
3.15.1.1
Missing clock detection (MCD)
3.15.1.2
XCLKOUT (External Clock Output) Configuration
3.15.2
MEMCFG Examples
3.15.2.1
Correctable & Uncorrectable Memory Error Handling
3.15.2.2
Shared RAM Management (CPU1) - C28X_DUAL
3.15.2.3
Shared RAM Management (CPU2) - C28X_DUAL
3.15.2.4
Demonstrate memconfig diagnostics and error handling. - CM
3.15.2.5
Shared RAM Management (CPU1) - C28X_DUAL
3.15.2.6
Shared RAM Management (CPU2) - C28X_DUAL
3.15.3
NMI Examples
3.15.3.1
NMI handling - C28X_DUAL
3.15.3.2
Watchdog Reset - C28X_DUAL
3.15.3.3
NMI handling - C28X_DUAL
3.15.3.4
Watchdog Reset - C28X_DUAL
3.15.4
TIMER Examples
3.15.4.1
CPU Timers
3.15.4.2
CPU Timers - CM
3.15.4.3
CPU Timers
3.15.5
WATCHDOG Examples
3.15.5.1
Watchdog
3.15.5.2
Windowed watchdog expiry with NMI handling - CM
3.16
System Control Registers
3.16.1
SYSCTRL Base Address Table (C28)
3.16.2
ACCESS_PROTECTION_REGS Registers
3.16.3
CLK_CFG_REGS Registers
3.16.4
CM_CONF_REGS Registers
3.16.5
CPU_SYS_REGS Registers
3.16.6
CPU_ID_REGS Registers
3.16.7
CPU1_PERIPH_AC_REGS Registers
3.16.8
CPUTIMER_REGS Registers
3.16.9
DEV_CFG_REGS Registers
3.16.10
DMA_CLA_SRC_SEL_REGS Registers
3.16.11
MEM_CFG_REGS Registers
3.16.12
MEMORY_ERROR_REGS Registers
3.16.13
NMI_INTRUPT_REGS Registers
3.16.14
PIE_CTRL_REGS Registers
3.16.15
ROM_PREFETCH_REGS Registers
3.16.16
ROM_WAIT_STATE_REGS Registers
3.16.17
SYNC_SOC_REGS Registers
3.16.18
SYS_STATUS_REGS Registers
3.16.19
TEST_ERROR_REGS Registers
3.16.20
UID_REGS Registers
3.16.21
WD_REGS Registers
3.16.22
XINT_REGS Registers
3.16.23
Register to Driverlib Function Mapping
3.16.23.1
ASYSCTL Registers to Driverlib Functions
3.16.23.2
CPUTIMER Registers to Driverlib Functions
3.16.23.3
DCSM Registers to Driverlib Functions
3.16.23.4
MEMCFG Registers to Driverlib Functions
3.16.23.5
NMI Registers to Driverlib Functions
3.16.23.6
PIE Registers to Driverlib Functions
3.16.23.7
SYSCTL Registers to Driverlib Functions
3.16.23.8
WWD Registers to Driverlib Functions
3.16.23.9
XINT Registers to Driverlib Functions
4
C28x Processor
4.1
Introduction
4.2
C28X Related Collateral
4.3
Features
4.4
Floating-Point Unit
4.5
Trigonometric Math Unit (TMU)
4.6
VCRC Unit
5
ROM Code and Peripheral Booting
5.1
Introduction
5.1.1
ROM Related Collateral
5.2
Device Boot Sequence
5.3
Device Boot Modes
5.4
Device Boot Configurations
5.4.1
Configuring Boot Mode Pins for CPU1
5.4.2
Configuring Boot Mode Table Options for CPU1
5.4.3
Boot Mode Example Use Cases
5.4.3.1
Zero Boot Mode Select Pins
5.4.3.2
One Boot Mode Select Pin
5.4.3.3
Three Boot Mode Select Pins
5.5
Device Boot Flow Diagrams
5.5.1
CPU1 Boot Flow
5.5.2
CPU2 Boot Flow
5.5.3
Connectivity Manager (CM) Boot Flow
5.6
Device Reset and Exception Handling
5.6.1
Reset Causes and Handling
5.6.2
Exceptions and Interrupts Handling
5.7
Boot ROM Description
5.7.1
CPU1 Boot ROM Configuration Registers
5.7.1.1
GPREG2 Usage and MPOST Configuration
5.7.2
Booting CPU2 and CM
5.7.2.1
Boot Up Procedure
5.7.2.2
IPCBOOTMODE Details
5.7.2.3
Error IPC Command Table
5.7.3
Entry Points
5.7.4
Wait Points
5.7.5
Memory Maps
5.7.5.1
Boot ROM Memory Maps
5.7.5.2
CLA Data ROM Memory Maps
5.7.5.3
Reserved RAM Memory Maps
5.7.6
ROM Tables
5.7.7
Boot Modes and Loaders
5.7.7.1
Boot Modes
5.7.7.1.1
Wait Boot
5.7.7.1.2
Flash Boot
5.7.7.1.3
Secure Flash Boot
5.7.7.1.3.1
Secure Flash CPU1 Linker File Example
5.7.7.1.4
RAM Boot
5.7.7.1.5
User OTP Boot
5.7.7.1.6
IPC Message Copy to RAM Boot
5.7.7.2
Bootloaders
5.7.7.2.1
SCI Boot Mode
5.7.7.2.2
SPI Boot Mode
5.7.7.2.3
I2C Boot Mode
5.7.7.2.4
Parallel Boot Mode
5.7.7.2.5
CAN Boot Mode
5.7.7.2.6
USB Boot Mode
5.7.8
GPIO Assignments for CPU1
5.7.9
Secure ROM Function APIs
5.7.10
Clock Initializations
5.7.11
Boot Status information
5.7.11.1
CPU1 Booting Status
5.7.11.2
CPU2 Booting Status
5.7.11.3
CM Booting Status
5.7.11.4
Boot Mode and MPOST (Memory Power On Self-Test) Status
5.7.12
ROM Version
5.8
Application Notes for Using the Bootloaders
5.8.1
Boot Data Stream Structure
5.8.1.1
Bootloader Data Stream Structure
5.8.1.1.1
Data Stream Structure 8-bit
5.8.2
The C2000 Hex Utility
5.8.2.1
HEX2000.exe Command Syntax
5.9
Software
5.9.1
BOOT Examples
5.9.1.1
CM Secure Flash Boot
5.9.1.2
CPU1 Secure Flash Boot
5.9.1.3
CPU2 Secure Flash Boot
6
Dual Code Security Module (DCSM)
6.1
Introduction
6.1.1
DCSM Related Collateral
6.2
Functional Description
6.2.1
CSM Passwords
6.2.2
Emulation Code Security Logic (ECSL)
6.2.3
CPU Secure Logic
6.2.4
Execute-Only Protection
6.2.5
Password Lock
6.2.6
JTAGLOCK
6.2.7
Link Pointer and Zone Select
6.2.8
C Code Example to Get Zone Select Block Addr for Zone1
6.3
Flash and OTP Erase/Program
6.4
Secure Copy Code
6.5
SecureCRC
6.6
CSM Impact on Other On-Chip Resources
6.7
Incorporating Code Security in User Applications
6.7.1
Environments That Require Security Unlocking
6.7.2
CSM Password Match Flow
6.7.3
C Code Example to Unsecure C28x Zone1
6.7.4
C Code Example to Resecure C28x Zone1
6.7.5
Environments That Require ECSL Unlocking
6.7.6
ECSL Password Match Flow
6.7.7
ECSL Disable Considerations for any Zone
6.7.7.1
C Code Example to Disable ECSL for C28x-Zone1
6.7.8
Device Unique ID
6.8
Software
6.8.1
DCSM Examples
6.8.1.1
Empty DCSM Tool Example
6.8.1.2
DCSM Memory Access control by master CPU1 - C28X_CM
6.8.1.3
DCSM Memory Access by CPU2 - C28X_DUAL
6.8.1.4
DCSM Memory Access control by CPU1 - C28X_DUAL
6.8.1.5
DCSM Memory partitioning Example
6.8.1.6
DCSM Memory Access by CM - C28X_CM
6.9
DCSM Registers
6.9.1
DCSM Base Address Table (C28)
6.9.2
CM DCSM Base Address Table (CM)
6.9.3
DCSM_Z1_REGS Registers
6.9.4
DCSM_Z2_REGS Registers
6.9.5
DCSM_COMMON_REGS Registers
6.9.6
DCSM_Z1_OTP Registers
6.9.7
DCSM_Z2_OTP Registers
7
Background CRC-32 (BGCRC)
7.1
Introduction
7.1.1
BGCRC Related Collateral
7.1.2
Features
7.1.3
Block Diagram
7.1.4
Memory Wait States and Memory Map
7.2
Functional Description
7.2.1
Data Read Unit
7.2.2
CRC-32 Compute Unit
7.2.3
CRC Notification Unit
7.2.3.1
CPU Interrupt, CLA Task and NMI
7.2.4
Operating Modes
7.2.4.1
CRC Mode
7.2.4.2
Scrub Mode
7.2.5
BGCRC Watchdog
7.2.6
Hardware and Software Faults Protection
7.3
Application of the BGCRC
7.3.1
Software Configuration
7.3.2
Decision on Error Response Severity
7.3.3
Decision of Controller for CLA_CRC
7.3.4
Execution of Time Critical Code from Wait-Stated Memories
7.3.5
BGCRC Execution
7.3.6
Debug/Error Response for BGCRC Errors
7.3.7
BGCRC Golden CRC-32 Value Computation
7.4
Software
7.4.1
BGCRC Examples
7.4.1.1
BGCRC CPU Interrupt Example
7.4.1.2
BGCRC Example with Watchdog and Lock
7.4.1.3
CLA-BGCRC Example in CRC mode
7.4.1.4
CLA-BGCRC Example in Scrub Mode
7.5
BGCRC Registers
7.5.1
BGCRC Base Address Table (C28)
7.5.2
BGCRC_REGS Registers
7.5.3
BGCRC Registers to Driverlib Functions
8
Control Law Accelerator (CLA)
8.1
Introduction
8.1.1
Features
8.1.2
CLA Related Collateral
8.1.3
Block Diagram
8.2
CLA Interface
8.2.1
CLA Memory
8.2.2
CLA Memory Bus
8.2.3
Shared Peripherals and EALLOW Protection
8.2.4
CLA Tasks and Interrupt Vectors
8.2.5
CLA Software Interrupt to CPU
8.3
CLA, DMA, and CPU Arbitration
8.3.1
CLA Message RAM
8.3.2
Peripheral Registers (ePWM, HRPWM, Comparator)
8.4
CLA Configuration and Debug
8.4.1
Building a CLA Application
8.4.2
Typical CLA Initialization Sequence
8.4.3
Debugging CLA Code
8.4.3.1
Software Breakpoint Support (MDEBUGSTOP1)
8.4.3.2
Legacy Breakpoint Support (MDEBUGSTOP)
8.4.4
CLA Illegal Opcode Behavior
8.4.5
Resetting the CLA
8.5
Pipeline
8.5.1
Pipeline Overview
8.5.2
CLA Pipeline Alignment
8.5.2.1
Code Fragment For MBCNDD, MCCNDD, or MRCNDD
379
8.5.2.2
Code Fragment for Loading MAR0 or MAR1
381
8.5.2.3
ADC Early Interrupt to CLA Response
8.5.3
Parallel Instructions
8.5.3.1
Math Operation with Parallel Load
8.5.3.2
Multiply with Parallel Add
8.5.4
CLA Task Execution Latency
8.6
Software
8.6.1
CLA Examples
8.6.1.1
CLA arcsine(x) using a lookup table (cla_asin_cpu01)
8.6.1.2
CLA arcsine(x) using a lookup table (cla_asin_cpu01) - C28X_DUAL
8.6.1.3
CLA Arcsine Example. - C28X_DUAL
8.6.1.4
CLA arctangent(x) using a lookup table (cla_atan_cpu01)
8.6.1.5
CLA 2 Pole 2 Zero Infinite Impulse Response Filter (cla_iir2p2z_cpu01) - C28X_DUAL
8.6.1.6
CLA 2-pole 2-zero IIR Filter Example for F2837xD. - C28X_DUAL
8.6.1.7
CLA background nesting task
8.6.1.8
Controlling PWM output using CLA
8.6.1.9
Just-in-time ADC sampling with CLA
8.6.1.10
Optimal offloading of control algorithms to CLA
8.6.1.11
Handling shared resources across C28x and CLA
8.7
Instruction Set
8.7.1
Instruction Descriptions
8.7.2
Addressing Modes and Encoding
8.7.3
Instructions
MABSF32 MRa, MRb
MADD32 MRa, MRb, MRc
MADDF32 MRa, #16FHi, MRb
MADDF32 MRa, MRb, #16FHi
MADDF32 MRa, MRb, MRc
MADDF32 MRd, MRe, MRf||MMOV32 mem32, MRa
MADDF32 MRd, MRe, MRf ||MMOV32 MRa, mem32
MAND32 MRa, MRb, MRc
MASR32 MRa, #SHIFT
MBCNDD 16BitDest [, CNDF]
MCCNDD 16BitDest [, CNDF]
MCLRC BGINTM
MCMP32 MRa, MRb
MCMPF32 MRa, MRb
MCMPF32 MRa, #16FHi
MDEBUGSTOP
MDEBUGSTOP1
MEALLOW
MEDIS
MEINVF32 MRa, MRb
MEISQRTF32 MRa, MRb
MF32TOI16 MRa, MRb
MF32TOI16R MRa, MRb
MF32TOI32 MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MF32TOUI32 MRa, MRb
MFRACF32 MRa, MRb
MI16TOF32 MRa, MRb
MI16TOF32 MRa, mem16
MI32TOF32 MRa, mem32
MI32TOF32 MRa, MRb
MLSL32 MRa, #SHIFT
MLSR32 MRa, #SHIFT
MMACF32 MR3, MR2, MRd, MRe, MRf ||MMOV32 MRa, mem32
MMAXF32 MRa, MRb
MMAXF32 MRa, #16FHi
MMINF32 MRa, MRb
MMINF32 MRa, #16FHi
MMOV16 MARx, MRa, #16I
MMOV16 MARx, mem16
MMOV16 mem16, MARx
MMOV16 mem16, MRa
MMOV32 mem32, MRa
MMOV32 mem32, MSTF
MMOV32 MRa, mem32 [, CNDF]
MMOV32 MRa, MRb [, CNDF]
MMOV32 MSTF, mem32
MMOVD32 MRa, mem32
MMOVF32 MRa, #32F
MMOVI16 MARx, #16I
MMOVI32 MRa, #32FHex
MMOVIZ MRa, #16FHi
MMOVZ16 MRa, mem16
MMOVXI MRa, #16FLoHex
MMPYF32 MRa, MRb, MRc
MMPYF32 MRa, #16FHi, MRb
MMPYF32 MRa, MRb, #16FHi
MMPYF32 MRa, MRb, MRc||MADDF32 MRd, MRe, MRf
MMPYF32 MRd, MRe, MRf ||MMOV32 MRa, mem32
MMPYF32 MRd, MRe, MRf ||MMOV32 mem32, MRa
MMPYF32 MRa, MRb, MRc ||MSUBF32 MRd, MRe, MRf
MNEGF32 MRa, MRb[, CNDF]
MNOP
MOR32 MRa, MRb, MRc
MRCNDD [CNDF]
MSETC BGINTM
MSETFLG FLAG, VALUE
MSTOP
MSUB32 MRa, MRb, MRc
MSUBF32 MRa, MRb, MRc
MSUBF32 MRa, #16FHi, MRb
MSUBF32 MRd, MRe, MRf ||MMOV32 MRa, mem32
MSUBF32 MRd, MRe, MRf ||MMOV32 mem32, MRa
MSWAPF MRa, MRb [, CNDF]
MTESTTF CNDF
MUI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
MUI32TOF32 MRa, mem32
MUI32TOF32 MRa, MRb
MXOR32 MRa, MRb, MRc
8.8
CLA Registers
8.8.1
CLA Base Address Table (C28)
8.8.2
CLA_ONLY_REGS Registers
8.8.3
CLA_SOFTINT_REGS Registers
8.8.4
CLA_REGS Registers
8.8.5
CLA Registers to Driverlib Functions
9
Configurable Logic Block (CLB)
9.1
Introduction
9.1.1
CLB Related Collateral
9.2
Description
9.2.1
CLB Clock
9.3
CLB Input/Output Connection
9.3.1
Overview
9.3.2
CLB Input Selection
9.3.3
CLB Output Selection
9.3.4
CLB Output Signal Multiplexer
9.4
CLB Tile
9.4.1
Static Switch Block
9.4.2
Counter Block
9.4.2.1
Counter Description
9.4.2.2
Counter Operation
9.4.2.3
Serializer Mode
9.4.2.4
Linear Feedback Shift Register (LFSR) Mode
9.4.3
FSM Block
9.4.4
LUT4 Block
9.4.5
Output LUT Block
9.4.6
Asynchronous Output Conditioning (AOC) Block
9.4.7
High Level Controller (HLC)
9.4.7.1
High Level Controller Events
9.4.7.2
High Level Controller Instructions
9.4.7.3
<Src> and <Dest>
9.4.7.4
Operation of the PUSH and PULL Instructions (Overflow and Underflow Detection)
9.5
CPU Interface
9.5.1
Register Description
9.5.2
Non-Memory Mapped Registers
9.6
DMA Access
9.7
CLB Data Export Through SPI RX Buffer
9.8
CLB Pipeline Mode
9.9
Software
9.9.1
CLB Examples
9.9.1.1
CLB Empty Project
9.9.1.2
CLB Combinational Logic
9.9.1.3
CLB GPIO Input Filter
9.9.1.4
CLB Auxilary PWM
9.9.1.5
CLB PWM Protection
9.9.1.6
CLB Event Window
9.9.1.7
CLB Signal Generator
9.9.1.8
CLB State Machine
9.9.1.9
CLB External Signal AND Gate
9.9.1.10
CLB Timer
9.9.1.11
CLB Timer Two States
9.9.1.12
CLB Interrupt Tag
9.9.1.13
CLB Output Intersect
9.9.1.14
CLB PUSH PULL
9.9.1.15
CLB Multi Tile
9.9.1.16
CLB Tile to Tile Delay
9.9.1.17
CLB based One-shot PWM
9.9.1.18
CLB AOC Control
9.9.1.19
CLB AOC Release Control
9.9.1.20
CLB XBARs
9.9.1.21
CLB AOC Control
9.9.1.22
CLB Serializer
9.9.1.23
CLB LFSR
9.9.1.24
CLB Lock Output Mask
9.9.1.25
CLB INPUT Pipeline Mode
9.9.1.26
CLB Clocking and PIPELINE Mode
9.9.1.27
CLB SPI Data Export
9.9.1.28
CLB SPI Data Export DMA
9.9.1.29
CLB Trip Zone Timestamp
9.9.1.30
CLB CRC
9.10
CLB Registers
9.10.1
CLB Base Address Table (C28)
9.10.2
CLB_LOGIC_CONFIG_REGS Registers
9.10.3
CLB_LOGIC_CONTROL_REGS Registers
9.10.4
CLB_DATA_EXCHANGE_REGS Registers
9.10.5
CLB Registers to Driverlib Functions
10
Dual-Clock Comparator (DCC)
10.1
Introduction
10.1.1
Features
10.1.2
Block Diagram
10.2
Module Operation
10.2.1
Configuring DCC Counters
10.2.2
Single-Shot Measurement Mode
10.2.3
Continuous Monitoring Mode
10.2.4
Error Conditions
10.3
Interrupts
10.4
Software
10.4.1
DCC Examples
10.4.1.1
DCC Single shot Clock verification
10.4.1.2
DCC Single shot Clock measurement
10.4.1.3
DCC Continuous clock monitoring
10.4.1.4
DCC Continuous clock monitoring
10.4.1.5
DCC Detection of clock failure
10.5
DCC Registers
10.5.1
DCC Base Address Table (C28)
10.5.2
DCC_REGS Registers
10.5.3
DCC Registers to Driverlib Functions
11
Direct Memory Access (DMA)
11.1
Introduction
11.1.1
Features
11.1.2
Block Diagram
11.2
Architecture
11.2.1
Peripheral Interrupt Event Trigger Sources
11.2.2
DMA Bus
11.3
Address Pointer and Transfer Control
11.4
Pipeline Timing and Throughput
11.5
CPU and CLA Arbitration
11.6
Channel Priority
11.6.1
Round-Robin Mode
11.6.2
Channel 1 High-Priority Mode
11.7
Overrun Detection Feature
11.8
Software
11.8.1
DMA Examples
11.8.1.1
DMA GSRAM Transfer (dma_ex1_gsram_transfer)
11.8.1.2
DMA Transfer Shared Peripheral - C28X_DUAL
11.8.1.3
DMA Transfer for Shared Peripheral Example (CPU2) - C28X_DUAL
11.8.1.4
DMA GSRAM Transfer (dma_ex2_gsram_transfer)
11.8.1.5
DMA Transfer Shared Peripheral - C28X_DUAL
11.9
DMA Registers
11.9.1
DMA Base Address Table (C28)
11.9.2
DMA_REGS Registers
11.9.3
DMA_CH_REGS Registers
11.9.4
DMA Registers to Driverlib Functions
12
External Memory Interface (EMIF)
12.1
Introduction
12.1.1
Purpose of the Peripheral
12.1.2
EMIF Related Collateral
12.1.3
Features
12.1.3.1
Asynchronous Memory Support
12.1.3.2
Synchronous DRAM Memory Support
12.1.4
Functional Block Diagram
12.1.5
Configuring Device Pins
12.2
EMIF Module Architecture
12.2.1
EMIF Clock Control
12.2.2
EMIF Requests
12.2.3
EMIF Signal Descriptions
12.2.4
EMIF Signal Multiplexing Control
12.2.5
SDRAM Controller and Interface
12.2.5.1
SDRAM Commands
12.2.5.2
Interfacing to SDRAM
12.2.5.3
SDRAM Configuration Registers
12.2.5.4
SDRAM Auto-Initialization Sequence
12.2.5.5
SDRAM Configuration Procedure
12.2.5.6
EMIF Refresh Controller
12.2.5.6.1
Determining the Appropriate Value for the RR Field
12.2.5.7
Self-Refresh Mode
12.2.5.8
Power-Down Mode
12.2.5.9
SDRAM Read Operation
12.2.5.10
SDRAM Write Operations
12.2.5.11
Mapping from Logical Address to EMIF Pins
12.2.6
Asynchronous Controller and Interface
12.2.6.1
Interfacing to Asynchronous Memory
12.2.6.2
Accessing Larger Asynchronous Memories
12.2.6.3
Configuring EMIF for Asynchronous Accesses
12.2.6.4
Read and Write Operations in Normal Mode
12.2.6.4.1
Asynchronous Read Operations (Normal Mode)
12.2.6.4.2
Asynchronous Write Operations (Normal Mode)
12.2.6.5
Read and Write Operation in Select Strobe Mode
12.2.6.5.1
Asynchronous Read Operations (Select Strobe Mode)
12.2.6.5.2
Asynchronous Write Operations (Select Strobe Mode)
12.2.6.6
Extended Wait Mode and the EM1WAIT Pin
12.2.7
Data Bus Parking
12.2.8
Reset and Initialization Considerations
12.2.9
Interrupt Support
12.2.9.1
Interrupt Events
12.2.10
DMA Event Support
12.2.11
EMIF Signal Multiplexing
12.2.12
Memory Map
12.2.13
Priority and Arbitration
12.2.14
System Considerations
12.2.14.1
Asynchronous Request Times
12.2.15
Power Management
12.2.15.1
Power Management Using Self-Refresh Mode
12.2.15.2
Power Management Using Power Down Mode
12.2.16
Emulation Considerations
12.3
Example Configuration
12.3.1
Hardware Interface
12.3.2
Software Configuration
12.3.2.1
Configuring the SDRAM Interface
12.3.2.1.1
PLL Programming for EMIF to K4S641632H-TC(L)70 Interface
12.3.2.1.2
SDRAM Timing Register (SDRAM_TR) Settings for EMIF to K4S641632H-TC(L)70 Interface
12.3.2.1.3
SDRAM Self Refresh Exit Timing Register (SDR_EXT_TMNG) Settings for EMIF to K4S641632H-TC(L)70 Interface
12.3.2.1.4
SDRAM Refresh Control Register (SDRAM_RCR) Settings for EMIF to K4S641632H-TC(L)70 Interface
12.3.2.1.5
SDRAM Configuration Register (SDRAM_CR) Settings for EMIF to K4S641632H-TC(L)70 Interface
12.3.2.2
Configuring the Flash Interface
12.3.2.2.1
Asynchronous 1 Configuration Register (ASYNC_CS2_CFG) Settings for EMIF to LH28F800BJE-PTTL90 Interface
12.4
Software
12.4.1
EMIF Examples
12.4.1.1
Pin setup for EMIF module accessing ASRAM.
12.4.1.2
EMIF1 ASYNC module accessing 16bit ASRAM.
12.4.1.3
EMIF1 ASYNC module accessing 16bit ASRAM through CPU1 and CPU2. - C28X_DUAL
12.4.1.4
EMIF1 ASYNC module accessing 16bit ASRAM trhough CPU1 and CPU2. - C28X_DUAL
12.4.1.5
EMIF1 module accessing 16bit ASRAM as code memory.
12.4.1.6
EMIF1 module accessing 16bit SDRAM using memcpy_fast_far().
12.4.1.7
EMIF1 module accessing 16bit SDRAM then puts into Self Refresh mode before entering Low Power Mode.
12.4.1.8
EMIF1 module accessing 32bit SDRAM using DMA.
12.4.1.9
EMIF1 module accessing 16bit SDRAM using alternate address mapping.
12.4.1.10
EMIF1 ASYNC module accessing 16bit ASRAM HIC FSI
12.4.1.11
EMIF1 ASYNC module accessing 8bit HIC controller.
12.5
EMIF Registers
12.5.1
EMIF Base Address Table (C28)
12.5.2
EMIF_REGS Registers
12.5.3
EMIF1_CONFIG_REGS Registers
12.5.4
EMIF2_CONFIG_REGS Registers
12.5.5
EMIF Registers to Driverlib Functions
13
Flash Module
13.1
Introduction to Flash and OTP Memory
13.1.1
FLASH Related Collateral
13.1.2
Features
13.1.3
Flash Tools
13.1.4
Default Flash Configuration
13.2
Flash Bank, OTP, and Pump
13.3
Flash Module Controller (FMC)
13.4
Flash and OTP Memory Power-Down Modes and Wakeup
13.5
Active Grace Period
13.6
Flash and OTP Memory Performance
13.7
Flash Read Interface
13.7.1
C28x-FMC (CPU1-FMC and CPU2-FMC) Flash Read Interface
13.7.1.1
Standard Read Mode
13.7.1.2
Prefetch Mode
13.7.1.2.1
Data Cache
13.7.2
M4-FMC (CM-FMC) Flash Read Interface
13.7.2.1
Standard Read Mode
13.7.2.2
Cache Mode
13.7.2.2.1
Program Cache
13.7.2.2.2
Data Cache
13.8
Flash Erase and Program
13.8.1
Erase
13.8.2
Program
13.8.3
Verify
13.9
Error Correction Code (ECC) Protection
13.9.1
Single-Bit Data Error
13.9.2
Uncorrectable Error
13.9.3
SECDED Logic Correctness Check
13.10
Reserved Locations Within Flash and OTP Memory
13.11
Migrating an Application from RAM to Flash
13.12
Procedure to Change the Flash Control Registers
13.13
Flash Pump Ownership Semaphore
13.14
Software
13.14.1
FLASH Examples
13.14.1.1
Flash Programming with AutoECC, DataAndECC, DataOnly and EccOnly - CM
13.14.1.2
Flash Programming with AutoECC, DataAndECC, DataOnly and EccOnly
13.14.1.3
Flash ECC Test Mode
13.14.1.4
Flash ECC Test Mode - CM
13.15
Flash Registers
13.15.1
FLASH Base Address Table (C28)
13.15.2
CM FLASH Base Address Table (CM)
13.15.3
FLASH_CTRL_REGS Registers
13.15.4
FLASH_ECC_REGS Registers
13.15.5
CM_FLASH_CTRL_REGS Registers
13.15.6
CM_FLASH_ECC_REGS Registers
13.15.7
FLASH_PUMP_SEMAPHORE_REGS Registers
13.15.8
FLASH Registers to Driverlib Functions
14
Embedded Real-time Analysis and Diagnostic (ERAD)
14.1
Introduction
14.1.1
ERAD Related Collateral
14.2
Enhanced Bus Comparator Unit
14.2.1
Enhanced Bus Comparator Unit Operations
14.2.2
Event Masking and Exporting
14.3
System Event Counter Unit
14.3.1
System Event Counter Modes
14.3.1.1
Counting Active Levels Versus Edges
14.3.1.2
Max Mode
14.3.1.3
Cumulative Mode
14.3.1.4
Input Signal Selection
14.3.2
Reset on Event
14.3.3
Operation Conditions
14.4
ERAD Ownership, Initialization and Reset
14.5
ERAD Programming Sequence
14.5.1
Hardware Breakpoint and Hardware Watch Point Programming Sequence
14.5.2
Timer and Counter Programming Sequence
14.6
Cyclic Redundancy Check Unit
14.6.1
CRC Unit Qualifier
14.6.2
CRC Unit Programming Sequence
14.7
Program Counter Trace
14.7.1
Functional Block Diagram
14.7.2
Trace Qualification Modes
14.7.3
Trace Memory
14.7.4
Trace Input Signal Conditioning
14.7.5
PC Trace Software Operation
14.7.6
Trace Operation in Debug Mode
14.8
Software
14.8.1
ERAD Examples
14.8.1.1
ERAD Profiling Interrupts
14.8.1.2
ERAD Profile Function
14.8.1.3
ERAD Profile Function
14.8.1.4
ERAD HWBP Monitor Program Counter
14.8.1.5
ERAD HWBP Monitor Program Counter
14.8.1.6
ERAD Profile Function
14.8.1.7
ERAD HWBP Stack Overflow Detection
14.8.1.8
ERAD HWBP Stack Overflow Detection
14.8.1.9
ERAD Stack Overflow
14.8.1.10
ERAD Profile Interrupts CLA
14.8.1.11
ERAD Profiling Interrupts
14.8.1.12
ERAD Profiling Interrupts
14.8.1.13
ERAD MEMORY ACCESS RESTRICT
14.8.1.14
ERAD INTERRUPT ORDER
14.8.1.15
ERAD AND CLB
14.8.1.16
ERAD PWM PROTECTION
14.9
ERAD Registers
14.9.1
ERAD Base Address Table (C28)
14.9.2
ERAD_GLOBAL_REGS Registers
14.9.3
ERAD_HWBP_REGS Registers
14.9.4
ERAD_COUNTER_REGS Registers
14.9.5
ERAD_CRC_GLOBAL_REGS Registers
14.9.6
ERAD_CRC_REGS Registers
14.9.7
ERAD Registers to Driverlib Functions
15
General-Purpose Input/Output (GPIO)
15.1
Introduction
15.1.1
GPIO Related Collateral
15.2
Configuration Overview
15.3
Digital General-Purpose I/O Control
15.4
Input Qualification
15.4.1
No Synchronization (Asynchronous Input)
15.4.2
Synchronization to SYSCLKOUT Only
15.4.3
Qualification Using a Sampling Window
15.5
USB Signals
15.6
SPI Signals
15.7
GPIO and Peripheral Muxing
15.7.1
GPIO Muxing
15.7.2
Peripheral Muxing
15.8
Internal Pullup Configuration Requirements
15.9
Software
15.9.1
GPIO Examples
15.9.1.1
Device GPIO Setup
15.9.1.2
Device GPIO Toggle
15.9.1.3
Device GPIO Interrupt
15.9.2
LED Examples
15.9.2.1
LED Blinky Example (CM) - C28X_CM
15.9.2.2
LED Blinky Example - C28X_DUAL
15.9.2.3
LED Blinky Example - C28X_CM
15.9.2.4
LED Blinky Example with DCSM
15.9.2.5
LED Blinky Example - C28X_DUAL
15.10
GPIO Registers
15.10.1
GPIO Base Address Table (C28)
15.10.2
CM GPIO Base Address Table (CM)
15.10.3
GPIO_CTRL_REGS Registers
15.10.4
GPIO_DATA_REGS Registers
15.10.5
GPIO_DATA_READ_REGS Registers
15.10.6
CM_GPIO_DATA_REGS Registers
15.10.7
CM_GPIO_DATA_READ_REGS Registers
15.10.8
GPIO Registers to Driverlib Functions
16
Interprocessor Communication (IPC)
16.1
Introduction
16.2
Message RAMs
16.3
IPC Flags and Interrupts
16.4
IPC Command Registers
16.5
Free-Running Counter
16.6
IPC Communication Protocol
16.7
Software
16.7.1
IPC Examples
16.7.1.1
IPC basic message passing example with interrupt - C28X_CM
16.7.1.2
IPC basic message passing example with interrupt - C28X_CM
16.7.1.3
IPC basic message passing example with interrupt - C28X_DUAL
16.7.1.4
IPC basic message passing example with interrupt - C28X_DUAL
16.7.1.5
IPC message passing example with interrupt and message queue - C28X_CM
16.7.1.6
IPC message passing example with interrupt and message queue - C28X_CM
16.7.1.7
IPC message passing example with interrupt and message queue - C28X_DUAL
16.7.1.8
IPC message passing example with interrupt and message queue - C28X_DUAL
16.7.1.9
IPC basic message passing example with interrupt - C28X_DUAL
16.7.1.10
IPC basic message passing example with interrupt - C28X_DUAL
16.7.1.11
IPC message passing example with interrupt and message queue - C28X_DUAL
16.7.1.12
IPC message passing example with interrupt and message queue - C28X_DUAL
16.8
IPC Registers
16.8.1
IPC Base Address Table (C28)
16.8.2
CM IPC Base Address Table (CM)
16.8.3
CPU1TOCPU2_IPC_REGS_CPU1VIEW Registers
16.8.4
CPU1TOCPU2_IPC_REGS_CPU2VIEW Registers
16.8.5
CPU1TOCM_IPC_REGS_CPU1VIEW Registers
16.8.6
CPU1TOCM_IPC_REGS_CMVIEW Registers
16.8.7
CPU2TOCM_IPC_REGS_CPU2VIEW Registers
16.8.8
CPU2TOCM_IPC_REGS_CMVIEW Registers
16.8.9
IPC Registers to Driverlib Functions
17
Crossbar (X-BAR)
17.1
Input X-BAR and CLB Input X-BAR
17.1.1
CLB Input X-BAR
17.2
ePWM, CLB, and GPIO Output X-BAR
17.2.1
ePWM X-BAR
17.2.1.1
ePWM X-BAR Architecture
17.2.2
CLB X-BAR
17.2.2.1
CLB X-BAR Architecture
17.2.3
GPIO Output X-BAR
17.2.3.1
GPIO Output X-BAR Architecture
17.2.4
CLB Output X-BAR
17.2.4.1
CLB Output X-BAR Architecture
17.2.5
X-BAR Flags
17.3
XBAR Registers
17.3.1
XBAR Base Address Table (C28)
17.3.2
INPUT_XBAR_REGS Registers
17.3.3
XBAR_REGS Registers
17.3.4
EPWM_XBAR_REGS Registers
17.3.5
CLB_XBAR_REGS Registers
17.3.6
OUTPUT_XBAR_REGS Registers
17.3.7
Register to Driverlib Function Mapping
17.3.7.1
INPUTXBAR Registers to Driverlib Functions
17.3.7.2
XBAR Registers to Driverlib Functions
17.3.7.3
EPWMXBAR Registers to Driverlib Functions
17.3.7.4
CLBXBAR Registers to Driverlib Functions
17.3.7.5
OUTPUTXBAR Registers to Driverlib Functions
18
► ANALOG PERIPHERALS
18.1
Technical Reference Manual Overview
19
Analog Subsystem
19.1
Introduction
19.1.1
Features
19.1.2
Block Diagram
19.2
Optimizing Power-Up Time
19.3
Analog Subsystem Registers
19.3.1
ASBSYS Base Address Table (C28)
19.3.2
ANALOG_SUBSYS_REGS Registers
20
Analog-to-Digital Converter (ADC)
20.1
Introduction
20.1.1
ADC Related Collateral
20.1.2
Features
20.1.3
Block Diagram
20.2
ADC Configurability
20.2.1
Clock Configuration
20.2.2
Resolution
20.2.3
Voltage Reference
20.2.3.1
External Reference Mode
20.2.4
Signal Mode
20.2.5
Expected Conversion Results
20.2.6
Interpreting Conversion Results
20.3
SOC Principle of Operation
20.3.1
SOC Configuration
20.3.2
Trigger Operation
20.3.3
ADC Acquisition (Sample and Hold) Window
20.3.4
ADC Input Models
20.3.5
Channel Selection
20.4
SOC Configuration Examples
20.4.1
Single Conversion from ePWM Trigger
20.4.2
Oversampled Conversion from ePWM Trigger
20.4.3
Multiple Conversions from CPU Timer Trigger
20.4.4
Software Triggering of SOCs
20.5
ADC Conversion Priority
20.6
Burst Mode
20.6.1
Burst Mode Example
20.6.2
Burst Mode Priority Example
20.7
EOC and Interrupt Operation
20.7.1
Interrupt Overflow
20.7.2
Continue to Interrupt Mode
20.7.3
Early Interrupt Configuration Mode
20.8
Post-Processing Blocks
20.8.1
PPB Offset Correction
20.8.2
PPB Error Calculation
20.8.3
PPB Limit Detection and Zero-Crossing Detection
20.8.4
PPB Sample Delay Capture
20.9
Opens/Shorts Detection Circuit (OSDETECT)
20.9.1
Implementation
20.9.2
Detecting an Open Input Pin
20.9.3
Detecting a Shorted Input Pin
20.10
Power-Up Sequence
20.11
ADC Calibration
20.11.1
ADC Zero Offset Calibration
20.11.2
ADC Calibration Routines in OTP Memory
20.12
ADC Timings
20.12.1
ADC Timing Diagrams
20.13
Additional Information
20.13.1
Ensuring Synchronous Operation
20.13.1.1
Basic Synchronous Operation
20.13.1.2
Synchronous Operation with Multiple Trigger Sources
20.13.1.3
Synchronous Operation with Uneven SOC Numbers
20.13.1.4
Synchronous Operation with Different Resolutions
20.13.1.5
Non-overlapping Conversions
20.13.2
Choosing an Acquisition Window Duration
20.13.3
Achieving Simultaneous Sampling
20.13.4
Result Register Mapping
20.13.5
Internal Temperature Sensor
20.13.6
Designing an External Reference Circuit
20.14
Software
20.14.1
ADC Examples
20.14.1.1
ADC Software Triggering
20.14.1.2
ADC ePWM Triggering
20.14.1.3
ADC Temperature Sensor Conversion
20.14.1.4
ADC Synchronous SOC Software Force (adc_soc_software_sync)
20.14.1.5
ADC Continuous Triggering (adc_soc_continuous)
20.14.1.6
ADC Continuous Conversions Read by DMA (adc_soc_continuous_dma)
20.14.1.7
ADC PPB Offset (adc_ppb_offset)
20.14.1.8
ADC PPB Limits (adc_ppb_limits)
20.14.1.9
ADC PPB Delay Capture (adc_ppb_delay)
20.14.1.10
ADC ePWM Triggering Multiple SOC
20.14.1.11
ADC Burst Mode
20.14.1.12
ADC Burst Mode Oversampling
20.14.1.13
ADC SOC Oversampling
20.14.1.14
ADC PPB PWM trip (adc_ppb_pwm_trip)
20.14.1.15
ADC High Priority SOC (adc_high_priority_soc)
20.14.1.16
ADC Interleaved Averaging in Software
20.14.1.17
ADC Open Shorts Detection (adc_open_shorts_detection)
20.15
ADC Registers
20.15.1
ADC Base Address Table (C28)
20.15.2
ADC_REGS Registers
20.15.3
ADC_RESULT_REGS Registers
20.15.4
ADC Registers to Driverlib Functions
21
Buffered Digital-to-Analog Converter (DAC)
21.1
Introduction
21.1.1
DAC Related Collateral
21.1.2
Features
21.1.3
Block Diagram
21.2
Using the DAC
21.2.1
Initialization Sequence
21.2.2
DAC Offset Adjustment
21.2.3
EPWMSYNCPER Signal
21.3
Lock Registers
21.4
Software
21.4.1
DAC Examples
21.4.1.1
Buffered DAC Enable
21.4.1.2
Buffered DAC Random
21.4.1.3
Buffered DAC Sine (buffdac_sine)
21.5
DAC Registers
21.5.1
DAC Base Address Table (C28)
21.5.2
DAC_REGS Registers
21.5.3
DAC Registers to Driverlib Functions
22
Comparator Subsystem (CMPSS)
22.1
Introduction
22.1.1
CMPSS Related Collateral
22.1.2
Features
22.1.3
Block Diagram
22.2
Comparator
22.3
Reference DAC
22.4
Ramp Generator
22.4.1
Ramp Generator Overview
22.4.2
Ramp Generator Behavior
22.4.3
Ramp Generator Behavior at Corner Cases
22.5
Digital Filter
22.5.1
Filter Initialization Sequence
22.6
Using the CMPSS
22.6.1
LATCHCLR, EPWMSYNCPER, and EPWMBLANK Signals
22.6.2
Synchronizer, Digital Filter, and Latch Delays
22.6.3
Calibrating the CMPSS
22.6.4
Enabling and Disabling the CMPSS Clock
22.7
Software
22.7.1
CMPSS Examples
22.7.1.1
CMPSS Asynchronous Trip
22.7.1.2
CMPSS Digital Filter Configuration
22.8
CMPSS Registers
22.8.1
CMPSS Base Address Table (C28)
22.8.2
CMPSS_REGS Registers
22.8.3
CMPSS Registers to Driverlib Functions
23
► CONTROL PERIPHERALS
23.1
Technical Reference Manual Overview
24
Enhanced Capture (eCAP)
24.1
Introduction
24.1.1
Features
24.1.2
ECAP Related Collateral
24.2
Description
24.3
Configuring Device Pins for the eCAP
24.4
Capture and APWM Operating Mode
24.5
Capture Mode Description
24.5.1
Event Prescaler
24.5.2
Edge Polarity Select and Qualifier
24.5.3
Continuous/One-Shot Control
24.5.4
32-Bit Counter and Phase Control
24.5.5
CAP1-CAP4 Registers
24.5.6
eCAP Synchronization
24.5.6.1
Example 1 - Using SWSYNC with ECAP Module
24.5.7
Interrupt Control
24.5.8
DMA Interrupt
24.5.9
Shadow Load and Lockout Control
24.5.10
APWM Mode Operation
24.6
Application of the eCAP Module
24.6.1
Example 1 - Absolute Time-Stamp Operation Rising-Edge Trigger
24.6.2
Example 2 - Absolute Time-Stamp Operation Rising- and Falling-Edge Trigger
24.6.3
Example 3 - Time Difference (Delta) Operation Rising-Edge Trigger
24.6.4
Example 4 - Time Difference (Delta) Operation Rising- and Falling-Edge Trigger
24.7
Application of the APWM Mode
24.7.1
Example 1 - Simple PWM Generation (Independent Channels)
24.8
Software
24.8.1
ECAP Examples
24.8.1.1
eCAP APWM Example
24.8.1.2
eCAP Capture PWM Example
24.8.1.3
eCAP APWM Phase-shift Example
24.8.1.4
eCAP Software Sync Example
24.9
eCAP Registers
24.9.1
ECAP Base Address Table (C28)
24.9.2
ECAP_REGS Registers
24.9.3
ECAP Registers to Driverlib Functions
25
High Resolution Capture (HRCAP)
25.1
Introduction
25.1.1
HRCAP Related Collateral
25.1.2
Features
25.1.3
Description
25.2
Operational Details
25.2.1
HRCAP Clocking
25.2.2
HRCAP Initialization Sequence
25.2.3
HRCAP Interrupts
25.2.4
HRCAP Calibration
25.2.4.1
Applying the Scale Factor
25.3
Known Exceptions
25.4
Software
25.4.1
HRCAP Examples
25.4.1.1
HRCAP Capture and Calibration Example
25.5
HRCAP Registers
25.5.1
HRCAP Base Address Table (C28)
25.5.2
HRCAP_REGS Registers
25.5.3
HRCAP Registers to Driverlib Functions
26
Enhanced Pulse Width Modulator (ePWM)
26.1
Introduction
26.1.1
EPWM Related Collateral
26.1.2
Submodule Overview
26.2
Configuring Device Pins
26.3
ePWM Modules Overview
26.4
Time-Base (TB) Submodule
26.4.1
Purpose of the Time-Base Submodule
26.4.2
Controlling and Monitoring the Time-Base Submodule
26.4.3
Calculating PWM Period and Frequency
26.4.3.1
Time-Base Period Shadow Register
26.4.3.2
Time-Base Clock Synchronization
26.4.3.3
Time-Base Counter Synchronization
26.4.3.4
ePWM SYNC Selection
26.4.4
Phase Locking the Time-Base Clocks of Multiple ePWM Modules
26.4.5
Simultaneous Writes to TBPRD and CMPx Registers Between ePWM Modules
26.4.6
Time-Base Counter Modes and Timing Waveforms
26.4.7
Global Load
26.4.7.1
Global Load Pulse Pre-Scalar
26.4.7.2
One-Shot Load Mode
26.4.7.3
One-Shot Sync Mode
26.5
Counter-Compare (CC) Submodule
26.5.1
Purpose of the Counter-Compare Submodule
26.5.2
Controlling and Monitoring the Counter-Compare Submodule
26.5.3
Operational Highlights for the Counter-Compare Submodule
26.5.4
Count Mode Timing Waveforms
26.6
Action-Qualifier (AQ) Submodule
26.6.1
Purpose of the Action-Qualifier Submodule
26.6.2
Action-Qualifier Submodule Control and Status Register Definitions
26.6.3
Action-Qualifier Event Priority
26.6.4
AQCTLA and AQCTLB Shadow Mode Operations
26.6.5
Configuration Requirements for Common Waveforms
26.7
Dead-Band Generator (DB) Submodule
26.7.1
Purpose of the Dead-Band Submodule
26.7.2
Dead-band Submodule Additional Operating Modes
26.7.3
Operational Highlights for the Dead-Band Submodule
26.8
PWM Chopper (PC) Submodule
26.8.1
Purpose of the PWM Chopper Submodule
26.8.2
Operational Highlights for the PWM Chopper Submodule
26.8.3
Waveforms
26.8.3.1
One-Shot Pulse
26.8.3.2
Duty Cycle Control
26.9
Trip-Zone (TZ) Submodule
26.9.1
Purpose of the Trip-Zone Submodule
26.9.2
Operational Highlights for the Trip-Zone Submodule
26.9.2.1
Trip-Zone Configurations
26.9.3
Generating Trip Event Interrupts
26.10
Event-Trigger (ET) Submodule
26.10.1
Operational Overview of the ePWM Event-Trigger Submodule
26.11
Digital Compare (DC) Submodule
26.11.1
Purpose of the Digital Compare Submodule
26.11.2
Enhanced Trip Action Using CMPSS
26.11.3
Using CMPSS to Trip the ePWM on a Cycle-by-Cycle Basis
26.11.4
Operation Highlights of the Digital Compare Submodule
26.11.4.1
Digital Compare Events
26.11.4.2
Event Filtering
26.11.4.3
Valley Switching
26.12
ePWM Crossbar (X-BAR)
26.13
Applications to Power Topologies
26.13.1
Overview of Multiple Modules
26.13.2
Key Configuration Capabilities
26.13.3
Controlling Multiple Buck Converters With Independent Frequencies
26.13.4
Controlling Multiple Buck Converters With Same Frequencies
26.13.5
Controlling Multiple Half H-Bridge (HHB) Converters
26.13.6
Controlling Dual 3-Phase Inverters for Motors (ACI and PMSM)
26.13.7
Practical Applications Using Phase Control Between PWM Modules
26.13.8
Controlling a 3-Phase Interleaved DC/DC Converter
26.13.9
Controlling Zero Voltage Switched Full Bridge (ZVSFB) Converter
26.13.10
Controlling a Peak Current Mode Controlled Buck Module
26.13.11
Controlling H-Bridge LLC Resonant Converter
26.14
Register Lock Protection
26.15
High-Resolution Pulse Width Modulator (HRPWM)
26.15.1
Operational Description of HRPWM
26.15.1.1
Controlling the HRPWM Capabilities
26.15.1.2
HRPWM Source Clock
26.15.1.3
Configuring the HRPWM
26.15.1.4
Configuring High-Resolution in Deadband Rising-Edge and Falling-Edge Delay
26.15.1.5
Principle of Operation
26.15.1.5.1
Edge Positioning
26.15.1.5.2
Scaling Considerations
26.15.1.5.3
Duty Cycle Range Limitation
26.15.1.5.4
High-Resolution Period
26.15.1.5.4.1
High-Resolution Period Configuration
26.15.1.6
Deadband High-Resolution Operation
26.15.1.7
Scale Factor Optimizing Software (SFO)
26.15.1.8
HRPWM Examples Using Optimized Assembly Code
26.15.1.8.1
#Defines for HRPWM Header Files
26.15.1.8.2
Implementing a Simple Buck Converter
26.15.1.8.2.1
HRPWM Buck Converter Initialization Code
26.15.1.8.2.2
HRPWM Buck Converter Run-Time Code
26.15.1.8.3
Implementing a DAC Function Using an R+C Reconstruction Filter
26.15.1.8.3.1
PWM DAC Function Initialization Code
26.15.1.8.3.2
PWM DAC Function Run-Time Code
26.15.2
SFO Library Software - SFO_TI_Build_V8.lib
26.15.2.1
Scale Factor Optimizer Function - int SFO()
26.15.2.2
Software Usage
26.15.2.2.1
A Sample of How to Add "Include" Files
1176
26.15.2.2.2
Declaring an Element
1178
26.15.2.2.3
Initializing With a Scale Factor Value
1180
26.15.2.2.4
SFO Function Calls
26.16
Software
26.16.1
EPWM Examples
26.16.1.1
ePWM Trip Zone
26.16.1.2
ePWM Up Down Count Action Qualifier
26.16.1.3
ePWM Synchronization
26.16.1.4
ePWM Digital Compare
26.16.1.5
ePWM Digital Compare Event Filter Blanking Window
26.16.1.6
ePWM Valley Switching
26.16.1.7
ePWM Digital Compare Edge Filter
26.16.1.8
ePWM Deadband
26.16.1.9
ePWM DMA
26.16.1.10
ePWM Chopper
26.16.1.11
EPWM Configure Signal
26.16.1.12
Realization of Monoshot mode
26.16.1.13
EPWM Action Qualifier (epwm_up_aq)
26.16.2
HRPWM Examples
26.16.2.1
HRPWM Duty Control with SFO
26.16.2.2
HRPWM Slider
26.16.2.3
HRPWM Period Control
26.16.2.4
HRPWM Duty Control with UPDOWN Mode
26.16.2.5
HRPWM Slider Test
26.16.2.6
HRPWM Duty Up Count
26.16.2.7
HRPWM Period Up-Down Count
26.17
ePWM Registers
26.17.1
EPWM Base Address Table (C28)
26.17.2
EPWM_REGS Registers
26.17.3
SYNC_SOC_REGS Registers
26.17.4
Register to Driverlib Function Mapping
26.17.4.1
EPWM Registers to Driverlib Functions
26.17.4.2
HRPWM Registers to Driverlib Functions
27
Enhanced Quadrature Encoder Pulse (eQEP)
27.1
Introduction
27.1.1
EQEP Related Collateral
27.2
Configuring Device Pins
27.3
Description
27.3.1
EQEP Inputs
27.3.2
Functional Description
27.3.3
eQEP Memory Map
27.4
Quadrature Decoder Unit (QDU)
27.4.1
Position Counter Input Modes
27.4.1.1
Quadrature Count Mode
27.4.1.2
Direction-Count Mode
27.4.1.3
Up-Count Mode
27.4.1.4
Down-Count Mode
27.4.2
eQEP Input Polarity Selection
27.4.3
Position-Compare Sync Output
27.5
Position Counter and Control Unit (PCCU)
27.5.1
Position Counter Operating Modes
27.5.1.1
Position Counter Reset on Index Event (QEPCTL[PCRM]=00)
27.5.1.2
Position Counter Reset on Maximum Position (QEPCTL[PCRM]=01)
27.5.1.3
Position Counter Reset on the First Index Event (QEPCTL[PCRM] = 10)
27.5.1.4
Position Counter Reset on Unit Time-out Event (QEPCTL[PCRM] = 11)
27.5.2
Position Counter Latch
27.5.2.1
Index Event Latch
27.5.2.2
Strobe Event Latch
27.5.3
Position Counter Initialization
27.5.4
eQEP Position-compare Unit
27.6
eQEP Edge Capture Unit
27.7
eQEP Watchdog
27.8
eQEP Unit Timer Base
27.9
QMA Module
27.9.1
Modes of Operation
27.9.1.1
QMA Mode-1 (QMACTRL[MODE]=1)
27.9.1.2
QMA Mode-2 (QMACTRL[MODE]=2)
27.9.2
Interrupt and Error Generation
27.10
eQEP Interrupt Structure
27.11
Software
27.11.1
EQEP Examples
27.11.1.1
Frequency Measurement Using eQEP
27.11.1.2
Position and Speed Measurement Using eQEP
27.11.1.3
ePWM frequency Measurement Using eQEP via xbar connection
27.11.1.4
Frequency Measurement Using eQEP via unit timeout interrupt
27.11.1.5
Motor speed and direction measurement using eQEP via unit timeout interrupt
27.12
eQEP Registers
27.12.1
EQEP Base Address Table (C28)
27.12.2
EQEP_REGS Registers
27.12.3
EQEP Registers to Driverlib Functions
28
Sigma Delta Filter Module (SDFM)
28.1
Introduction
28.1.1
SDFM Related Collateral
28.1.2
Features
28.1.3
Block Diagram
28.2
Configuring Device Pins
28.3
Input Qualification
28.4
Input Control Unit
28.5
SDFM Clock Control
28.6
Sinc Filter
28.6.1
Data Rate and Latency of the Sinc Filter
28.7
Data (Primary) Filter Unit
28.7.1
32-bit or 16-bit Data Filter Output Representation
28.7.2
Data FIFO
28.7.3
SDSYNC Event
28.8
Comparator (Secondary) Filter Unit
28.8.1
Higher Threshold (HLT) Comparators
28.8.2
Lower Threshold (LLT) Comparators
28.8.3
Digital Filter
28.9
Theoretical SDFM Filter Output
28.10
Interrupt Unit
28.10.1
SDFM (SDyERR) Interrupt Sources
28.10.2
Data Ready (DRINT) Interrupt Sources
28.11
Software
28.11.1
SDFM Examples
28.11.1.1
SDFM Filter Sync CPU
28.11.1.2
SDFM Filter Sync CLA
28.11.1.3
SDFM Filter Sync DMA
28.11.1.4
SDFM PWM Sync
28.11.1.5
SDFM Type 1 Filter FIFO
28.11.1.6
SDFM Filter Sync CLA
28.12
SDFM Registers
28.12.1
SDFM Base Address Table (C28)
28.12.2
SDFM_REGS Registers
28.12.3
SDFM Registers to Driverlib Functions
29
► COMMUNICATION PERIPHERALS
29.1
Technical Reference Manual Overview
30
Controller Area Network (CAN)
30.1
Introduction
30.1.1
DCAN Related Collateral
30.1.2
Features
30.1.3
Block Diagram
30.1.3.1
CAN Core
30.1.3.2
Message Handler
30.1.3.3
Message RAM
30.1.3.4
Registers and Message Object Access (IFx)
30.2
Functional Description
30.2.1
Configuring Device Pins
30.2.2
Address/Data Bus Bridge
30.3
Operating Modes
30.3.1
Initialization
30.3.2
CAN Message Transfer (Normal Operation)
30.3.2.1
Disabled Automatic Retransmission
30.3.2.2
Auto-Bus-On
30.3.3
Test Modes
30.3.3.1
Silent Mode
30.3.3.2
Loopback Mode
30.3.3.3
External Loopback Mode
30.3.3.4
Loopback Combined with Silent Mode
30.4
Multiple Clock Source
30.5
Interrupt Functionality
30.5.1
Message Object Interrupts
30.5.2
Status Change Interrupts
30.5.3
Error Interrupts
30.5.4
Peripheral Interrupt Expansion (PIE) Module Nomenclature for DCAN Interrupts
30.5.5
Interrupt Topologies
30.6
DMA Functionality
30.7
Parity Check Mechanism
30.7.1
Behavior on Parity Error
30.8
Debug Mode
30.9
Module Initialization
30.10
Configuration of Message Objects
30.10.1
Configuration of a Transmit Object for Data Frames
30.10.2
Configuration of a Transmit Object for Remote Frames
30.10.3
Configuration of a Single Receive Object for Data Frames
30.10.4
Configuration of a Single Receive Object for Remote Frames
30.10.5
Configuration of a FIFO Buffer
30.11
Message Handling
30.11.1
Message Handler Overview
30.11.2
Receive/Transmit Priority
30.11.3
Transmission of Messages in Event Driven CAN Communication
30.11.4
Updating a Transmit Object
30.11.5
Changing a Transmit Object
30.11.6
Acceptance Filtering of Received Messages
30.11.7
Reception of Data Frames
30.11.8
Reception of Remote Frames
30.11.9
Reading Received Messages
30.11.10
Requesting New Data for a Receive Object
30.11.11
Storing Received Messages in FIFO Buffers
30.11.12
Reading from a FIFO Buffer
30.12
CAN Bit Timing
30.12.1
Bit Time and Bit Rate
30.12.1.1
Synchronization Segment
30.12.1.2
Propagation Time Segment
30.12.1.3
Phase Buffer Segments and Synchronization
30.12.1.4
Oscillator Tolerance Range
30.12.2
Configuration of the CAN Bit Timing
30.12.2.1
Calculation of the Bit Timing Parameters
30.12.2.2
Example for Bit Timing at High Baudrate
30.12.2.3
Example for Bit Timing at Low Baudrate
30.13
Message Interface Register Sets
30.13.1
Message Interface Register Sets 1 and 2 (IF1 and IF2)
30.13.2
Message Interface Register Set 3 (IF3)
30.14
Message RAM
30.14.1
Structure of Message Objects
30.14.2
Addressing Message Objects in RAM
30.14.3
Message RAM Representation in Debug Mode
30.15
Software
30.15.1
CAN Examples
30.15.1.1
NMI handling - C28X_DUAL
30.15.1.2
CAN External Loopback
30.15.1.3
Watchdog Reset - C28X_DUAL
30.15.1.4
CAN Loopback - CM
30.15.1.5
CAN External Loopback with Interrupts
30.15.1.6
CAN External Loopback with Interrupts - C28X_DUAL
30.15.1.7
CAN External Loopback with Interrupts - CM
30.15.1.8
CAN-A to CAN-B External Transmit
30.15.1.9
CAN-A to CAN-B External Transmit - CM
30.15.1.10
CAN External Loopback with DMA
30.15.1.11
CAN Transmit and Receive Configurations - CM
30.15.1.12
CAN Transmit and Receive Configurations
30.15.1.13
CAN Error Generation Example
30.15.1.14
CAN Remote Request Loopback
30.15.1.15
CAN example that illustrates the usage of Mask registers
30.16
CAN Registers
30.16.1
CAN Base Address Table (C28)
30.16.2
CM CAN Base Address Table (CM)
30.16.3
CAN_REGS Registers
30.16.4
CAN Registers to Driverlib Functions
31
EtherCAT® Slave Controller (ESC)
31.1
Introduction
31.1.1
ECAT Related Collateral
31.1.2
ESC Features
31.1.3
ESC Subsystem Integrated Features
31.1.4
F2838x ESC versus Beckhoff ET1100
31.1.5
EtherCAT IP Block Diagram
31.1.6
ESC Functional Blocks
31.1.6.1
Interface to EtherCAT Master
31.1.6.2
Process Data Interface
31.1.6.3
General-Purpose Inputs and Outputs
31.1.6.4
EtherCAT Processing Unit (EPU)
31.1.6.5
Fieldbus Memory Management Unit (FMMU)
31.1.6.6
Sync Manager
31.1.6.7
Monitoring
31.1.6.8
Reset Controller
31.1.6.9
PHY Management
31.1.6.10
Distributed Clock (DC)
31.1.6.11
EEPROM
31.1.6.12
Status / LEDs
31.1.7
EtherCAT Physical Layer
31.1.7.1
MII Interface
31.1.7.2
PHY Management Interface
31.1.7.2.1
PHY Address Configuration
31.1.7.2.2
PHY Reset Signal
31.1.7.2.3
PHY Clock
31.1.8
EtherCAT Protocol
31.1.9
EtherCAT State Machine (ESM)
31.1.10
More Information on EtherCAT
31.1.11
Beckhoff® Automation EtherCAT IP Errata
31.2
ESC and ESCSS Description
31.2.1
ESC RAM Parity and Memory Address Maps
31.2.1.1
ESC RAM Parity Logic
31.2.1.2
CPU1 ESC Memory Address Map
31.2.1.3
CM ESC Memory Address Map
31.2.2
Local Host Communication
31.2.2.1
Byte Accessibility Through PDI
31.2.2.2
Software Details for Operation Across Clock Domains
31.2.3
Debug Emulation Mode Operation
31.2.4
ESC SubSystem
31.2.4.1
CPU1 Bus Interface
31.2.4.2
CM Bus Interface
31.2.5
Interrupts and Interrupt Mapping
31.2.6
Power, Clocks, and Resets
31.2.6.1
Power
31.2.6.2
Clocking
31.2.6.3
Resets
31.2.6.3.1
Chip-Level Reset
31.2.6.3.2
EtherCAT Soft Resets
31.2.6.3.3
Reset Out (RESET_OUT)
31.2.7
LED Controls
31.2.8
Slave Node Configuration and EEPROM
31.2.9
General-Purpose Inputs and Outputs
31.2.9.1
General-Purpose Inputs
31.2.9.2
General-Purpose Output
31.2.10
Distributed Clocks – Sync and Latch
31.2.10.1
Clock Synchronization
31.2.10.2
SYNC Signals
31.2.10.2.1
Seeking Host Intervention
31.2.10.3
LATCH Signals
31.2.10.3.1
Timestamping
31.2.10.4
Device Control and Synchronization
31.2.10.4.1
Synchronization of PWM
31.2.10.4.2
ECAP SYNC Inputs
31.2.10.4.3
SYNC Signal Conditioning and Rerouting
31.3
Software Initialization Sequence and Allocating Ownership
31.4
ESC Configuration Constants
31.5
EtherCAT IP Registers
31.5.1
ECAT Base Address Table (C28)
31.5.2
ESCSS_REGS Registers
31.5.3
ESCSS_CONFIG_REGS Registers
31.5.4
ESC_SS Registers to Driverlib Functions
32
Fast Serial Interface (FSI)
32.1
Introduction
32.1.1
FSI Related Collateral
32.1.2
FSI Features
32.2
System-level Integration
32.2.1
CPU Interface
32.2.2
Signal Description
32.2.2.1
Configuring Device Pins
32.2.3
FSI Interrupts
32.2.3.1
Transmitter Interrupts
32.2.3.2
Receiver Interrupts
32.2.3.3
Configuring Interrupts
32.2.3.4
Handling Interrupts
32.2.4
CLA Task Triggering
32.2.5
DMA Interface
32.2.6
External Frame Trigger Mux
32.3
FSI Functional Description
32.3.1
Introduction to Operation
32.3.2
FSI Transmitter Module
32.3.2.1
Initialization
32.3.2.2
FSI_TX Clocking
32.3.2.3
Transmitting Frames
32.3.2.3.1
Software Triggered Frames
32.3.2.3.2
Externally Triggered Frames
32.3.2.3.3
Ping Frame Generation
32.3.2.3.3.1
Automatic Ping Frames
32.3.2.3.3.2
Software Triggered Ping Frame
32.3.2.3.3.3
Externally Triggered Ping Frame
32.3.2.3.4
Transmitting Frames with DMA
32.3.2.4
Transmit Buffer Management
32.3.2.5
CRC Submodule
32.3.2.6
Conditions in Which the Transmitter Must Undergo a Soft Reset
32.3.2.7
Reset
32.3.3
FSI Receiver Module
32.3.3.1
Initialization
32.3.3.2
FSI_RX Clocking
32.3.3.3
Receiving Frames
32.3.3.3.1
Receiving Frames with DMA
32.3.3.4
Ping Frame Watchdog
32.3.3.5
Frame Watchdog
32.3.3.6
Delay Line Control
32.3.3.7
Buffer Management
32.3.3.8
CRC Submodule
32.3.3.9
Using the Zero Bits of the Receiver Tag Registers
32.3.3.10
Conditions in Which the Receiver Must Undergo a Soft Reset
32.3.3.11
FSI_RX Reset
32.3.4
Frame Format
32.3.4.1
FSI Frame Phases
32.3.4.2
Frame Types
32.3.4.2.1
Ping Frames
32.3.4.2.2
Error Frames
32.3.4.2.3
Data Frames
32.3.4.3
Multi-Lane Transmission
32.3.5
Flush Sequence
32.3.6
Internal Loopback
32.3.7
CRC Generation
32.3.8
ECC Module
32.3.9
Tag Matching
32.3.10
TDM Configurations
32.3.11
FSI-SPI Compatibility Mode
32.3.11.1
Available SPI Modes
32.3.11.1.1
FSITX as SPI Master, Transmit Only
32.3.11.1.1.1
Initialization
32.3.11.1.1.2
Operation
32.3.11.1.2
FSIRX as SPI Slave, Receive Only
32.3.11.1.2.1
Initialization
32.3.11.1.2.2
Operation
32.3.11.1.3
FSITX and FSIRX Emulating a Full Duplex SPI Master
32.3.11.1.3.1
Initialization
32.3.11.1.3.2
Operation
32.4
FSI Programing Guide
32.4.1
Establishing the Communication Link
32.4.1.1
Establishing the Communication Link from the Master Device
32.4.1.2
Establishing the Communication Link from the Slave Device
32.4.2
Register Protection
32.4.3
Emulation Mode
32.5
Software
32.5.1
FSI Examples
32.5.1.1
FSI Multi-Rx Tag-Match - C28X_DUAL
32.5.1.2
FSI Loopback:CPU Control
32.5.1.3
FSI Multi-Rx Tag-Match - C28X_DUAL
32.5.1.4
FSI Loopback CLA control
32.5.1.5
FSI DMA frame transfers:DMA Control
32.5.1.6
FSI data transfer by external trigger
32.5.1.7
FSI data transfers upon CPU Timer event
32.5.1.8
FSI and SPI communication(fsi_ex6_spi_main_tx)
32.5.1.9
FSI and SPI communication(fsi_ex7_spi_remote_rx)
32.5.1.10
FSI P2Point Connection:Rx Side
32.5.1.11
FSI P2Point Connection:Tx Side
32.5.1.12
FSI star connection topology example. FSI communication using CPU control
32.5.1.13
FSI daisy chain topology, lead device example
32.5.1.14
FSI daisy chain topology, node device example
32.6
FSI Registers
32.6.1
FSI Base Address Table (C28)
32.6.2
FSI_TX_REGS Registers
32.6.3
FSI_RX_REGS Registers
32.6.4
FSI Registers to Driverlib Functions
33
Inter-Integrated Circuit Module (I2C)
33.1
Introduction
33.1.1
I2C Related Collateral
33.1.2
Features
33.1.3
Features Not Supported
33.1.4
Functional Overview
33.1.5
Clock Generation
33.1.6
I2C Clock Divider Registers (I2CCLKL and I2CCLKH)
33.1.6.1
Formula for the Master Clock Period
33.2
Configuring Device Pins
33.3
I2C Module Operational Details
33.3.1
Input and Output Voltage Levels
33.3.2
Selecting Pullup Resistors
33.3.3
Data Validity
33.3.4
Operating Modes
33.3.5
I2C Module START and STOP Conditions
33.3.6
Non-repeat Mode versus Repeat Mode
33.3.7
Serial Data Formats
33.3.7.1
7-Bit Addressing Format
33.3.7.2
10-Bit Addressing Format
33.3.7.3
Free Data Format
33.3.7.4
Using a Repeated START Condition
33.3.8
Clock Synchronization
33.3.9
Arbitration
33.3.10
Digital Loopback Mode
33.3.11
NACK Bit Generation
33.4
Interrupt Requests Generated by the I2C Module
33.4.1
Basic I2C Interrupt Requests
33.4.2
I2C FIFO Interrupts
33.5
Resetting or Disabling the I2C Module
33.6
Software
33.6.1
I2C Examples
33.6.1.1
C28x-I2C Library source file for FIFO interrupts
33.6.1.2
C28x-I2C Library source file for FIFO using polling
33.6.1.3
C28x-I2C Library source file for FIFO interrupts
33.6.1.4
I2C Loopback with Slave Receive Interrupt - CM
33.6.1.5
I2C Digital Loopback with FIFO Interrupts
33.6.1.6
I2C EEPROM
33.6.1.7
I2C Digital External Loopback with FIFO Interrupts
33.6.1.8
I2C EEPROM
33.6.1.9
I2C controller target communication using FIFO interrupts
33.6.1.10
I2C EEPROM
33.7
I2C Registers
33.7.1
I2C Base Address Table (C28)
33.7.2
I2C_REGS Registers
33.7.3
I2C Registers to Driverlib Functions
34
Multichannel Buffered Serial Port (McBSP)
34.1
Introduction
34.1.1
MCBSP Related Collateral
34.1.2
Features of the McBSPs
34.1.3
McBSP Pins/Signals
34.1.3.1
McBSP Generic Block Diagram
34.2
Configuring Device Pins
34.3
McBSP Operation
34.3.1
Data Transfer Process of McBSPs
34.3.1.1
Data Transfer Process for Word Length of 8, 12, or 16 Bits
34.3.1.2
Data Transfer Process for Word Length of 20, 24, or 32 Bits
34.3.2
Companding (Compressing and Expanding) Data
34.3.2.1
Companding Formats
34.3.2.2
Capability to Compand Internal Data
34.3.2.3
Reversing Bit Order: Option to Transfer LSB First
34.3.3
Clocking and Framing Data
34.3.3.1
Clocking
34.3.3.2
Serial Words
34.3.3.3
Frames and Frame Synchronization
34.3.3.4
Generating Transmit and Receive Interrupts
34.3.3.4.1
Detecting Frame-Synchronization Pulses, Even in Reset State
34.3.3.5
Ignoring Frame-Synchronization Pulses
34.3.3.6
Frame Frequency
34.3.3.7
Maximum Frame Frequency
34.3.4
Frame Phases
34.3.4.1
Number of Phases, Words, and Bits Per Frame
34.3.4.2
Single-Phase Frame Example
34.3.4.3
Dual-Phase Frame Example
34.3.4.4
Implementing the AC97 Standard With a Dual-Phase Frame
34.3.5
McBSP Reception
34.3.6
McBSP Transmission
34.3.7
Interrupts and DMA Events Generated by a McBSP
34.4
McBSP Sample Rate Generator
34.4.1
Block Diagram
34.4.1.1
Clock Generation in the Sample Rate Generator
34.4.1.2
Choosing an Input Clock
34.4.1.3
Choosing a Polarity for the Input Clock
34.4.1.4
Choosing a Frequency for the Output Clock (CLKG)
34.4.1.4.1
CLKG Frequency
34.4.1.5
Keeping CLKG Synchronized to External MCLKR
34.4.2
Frame Synchronization Generation in the Sample Rate Generator
34.4.2.1
Choosing the Width of the Frame-Synchronization Pulse on FSG
34.4.2.2
Controlling the Period Between the Starting Edges of Frame-Synchronization Pulses on FSG
34.4.2.3
Keeping FSG Synchronized to an External Clock
34.4.3
Synchronizing Sample Rate Generator Outputs to an External Clock
34.4.3.1
Operating the Transmitter Synchronously with the Receiver
34.4.3.2
Synchronization Examples
34.4.4
Reset and Initialization Procedure for the Sample Rate Generator
34.5
McBSP Exception/Error Conditions
34.5.1
Types of Errors
34.5.2
Overrun in the Receiver
34.5.2.1
Example of Overrun Condition
34.5.2.2
Example of Preventing Overrun Condition
34.5.3
Unexpected Receive Frame-Synchronization Pulse
34.5.3.1
Possible Responses to Receive Frame-Synchronization Pulses
34.5.3.2
Example of Unexpected Receive Frame-Synchronization Pulse
34.5.3.3
Preventing Unexpected Receive Frame-Synchronization Pulses
34.5.4
Overwrite in the Transmitter
34.5.4.1
Example of Overwrite Condition
34.5.4.2
Preventing Overwrites
34.5.5
Underflow in the Transmitter
34.5.5.1
Example of the Underflow Condition
34.5.5.2
Example of Preventing Underflow Condition
34.5.6
Unexpected Transmit Frame-Synchronization Pulse
34.5.6.1
Possible Responses to Transmit Frame-Synchronization Pulses
34.5.6.2
Example of Unexpected Transmit Frame-Synchronization Pulse
34.5.6.3
Preventing Unexpected Transmit Frame-Synchronization Pulses
34.6
Multichannel Selection Modes
34.6.1
Channels, Blocks, and Partitions
34.6.2
Multichannel Selection
34.6.3
Configuring a Frame for Multichannel Selection
34.6.4
Using Two Partitions
34.6.4.1
Assigning Blocks to Partitions A and B
34.6.4.2
Reassigning Blocks During Reception/Transmission
34.6.5
Using Eight Partitions
34.6.6
Receive Multichannel Selection Mode
34.6.7
Transmit Multichannel Selection Modes
34.6.7.1
Disabling/Enabling Versus Masking/Unmasking
34.6.7.2
Activity on McBSP Pins for Different Values of XMCM
34.6.8
Using Interrupts Between Block Transfers
34.7
SPI Operation Using the Clock Stop Mode
34.7.1
SPI Protocol
34.7.2
Clock Stop Mode
34.7.3
Enable and Configure the Clock Stop Mode
34.7.4
Clock Stop Mode Timing Diagrams
34.7.5
Procedure for Configuring a McBSP for SPI Operation
34.7.6
McBSP as the SPI Master
34.7.7
McBSP as an SPI Slave
34.8
Receiver Configuration
34.8.1
Programming the McBSP Registers for the Desired Receiver Operation
34.8.2
Resetting and Enabling the Receiver
34.8.2.1
Reset Considerations
34.8.3
Set the Receiver Pins to Operate as McBSP Pins
34.8.4
Digital Loopback Mode
34.8.5
Clock Stop Mode
34.8.6
Receive Multichannel Selection Mode
34.8.7
Receive Frame Phases
34.8.8
Receive Word Lengths
34.8.8.1
Word Length Bits
34.8.9
Receive Frame Length
34.8.9.1
Selected Frame Length
34.8.10
Receive Frame-Synchronization Ignore Function
34.8.10.1
Unexpected Frame-Synchronization Pulses and the Frame-Synchronization Ignore Function
34.8.10.2
Examples of Effects of RFIG
34.8.11
Receive Companding Mode
34.8.11.1
Companding
34.8.11.2
Format of Expanded Data
34.8.11.3
Companding Internal Data
34.8.11.4
Option to Receive LSB First
34.8.12
Receive Data Delay
34.8.12.1
Data Delay
34.8.12.2
0-Bit Data Delay
34.8.12.3
2-Bit Data Delay
34.8.13
Receive Sign-Extension and Justification Mode
34.8.13.1
Sign-Extension and the Justification
34.8.14
Receive Interrupt Mode
34.8.15
Receive Frame-Synchronization Mode
34.8.15.1
Receive Frame-Synchronization Modes
34.8.16
Receive Frame-Synchronization Polarity
34.8.16.1
Frame-Synchronization Pulses, Clock Signals, and Their Polarities
34.8.16.2
Frame-Synchronization Period and the Frame-Synchronization Pulse Width
34.8.17
Receive Clock Mode
34.8.17.1
Selecting a Source for the Receive Clock and a Data Direction for the MCLKR Pin
34.8.18
Receive Clock Polarity
34.8.18.1
Frame Synchronization Pulses, Clock Signals, and Their Polarities
34.8.19
SRG Clock Divide-Down Value
34.8.19.1
Sample Rate Generator Clock Divider
34.8.20
SRG Clock Synchronization Mode
34.8.21
SRG Clock Mode (Choose an Input Clock)
34.8.22
SRG Input Clock Polarity
34.8.22.1
Using CLKXP/CLKRP to Choose an Input Clock Polarity
34.9
Transmitter Configuration
34.9.1
Programming the McBSP Registers for the Desired Transmitter Operation
34.9.2
Resetting and Enabling the Transmitter
34.9.2.1
Reset Considerations
34.9.3
Set the Transmitter Pins to Operate as McBSP Pins
34.9.4
Digital Loopback Mode
34.9.5
Clock Stop Mode
34.9.6
Transmit Multichannel Selection Mode
34.9.7
XCERs Used in the Transmit Multichannel Selection Mode
34.9.8
Transmit Frame Phases
34.9.9
Transmit Word Lengths
34.9.9.1
Word Length Bits
34.9.10
Transmit Frame Length
34.9.10.1
Selected Frame Length
34.9.11
Enable/Disable the Transmit Frame-Synchronization Ignore Function
34.9.11.1
Unexpected Frame-Synchronization Pulses and Frame-Synchronization Ignore
34.9.11.2
Examples Showing the Effects of XFIG
34.9.12
Transmit Companding Mode
34.9.12.1
Companding
34.9.12.2
Format for Data To Be Compressed
34.9.12.3
Capability to Compand Internal Data
34.9.12.4
Option to Transmit LSB First
34.9.13
Transmit Data Delay
34.9.13.1
Data Delay
34.9.13.2
0-Bit Data Delay
34.9.13.3
2-Bit Data Delay
34.9.14
Transmit DXENA Mode
34.9.15
Transmit Interrupt Mode
34.9.16
Transmit Frame-Synchronization Mode
34.9.16.1
Other Considerations
34.9.17
Transmit Frame-Synchronization Polarity
34.9.17.1
Frame Synchronization Pulses, Clock Signals, and Their Polarities
34.9.18
SRG Frame-Synchronization Period and Pulse Width
34.9.18.1
Frame-Synchronization Period and Frame-Synchronization Pulse Width
34.9.19
Transmit Clock Mode
34.9.19.1
Selecting a Source for the Transmit Clock and a Data Direction for the MCLKX pin
34.9.19.2
Other Considerations
34.9.20
Transmit Clock Polarity
34.9.20.1
Frame Synchronization Pulses, Clock Signals, and Their Polarities
34.10
Emulation and Reset Considerations
34.10.1
McBSP Emulation Mode
34.10.2
Resetting and Initializing McBSPs
34.10.2.1
McBSP Pin States: DSP Reset Versus Receiver/Transmitter Reset
34.10.2.2
Device Reset, McBSP Reset, and Sample Rate Generator Reset
34.10.2.3
McBSP Initialization Procedure
34.10.2.4
Resetting the Transmitter While the Receiver is Running
34.10.2.4.1
Resetting and Configuring McBSP Transmitter While McBSP Receiver Running
34.11
Data Packing Examples
34.11.1
Data Packing Using Frame Length and Word Length
34.11.2
Data Packing Using Word Length and the Frame-Synchronization Ignore Function
34.12
Interrupt Generation
34.12.1
McBSP Receive Interrupt Generation
34.12.2
McBSP Transmit Interrupt Generation
34.12.3
Error Flags
34.13
McBSP Modes
34.14
Special Case: External Device is the Transmit Frame Master
34.15
Software
34.15.1
MCBSP Examples
34.15.1.1
Pin Setup for McBSP module
34.15.1.2
McBSP loopback example
34.15.1.3
McBSP loopback with DMA example.
34.15.1.4
McBSP loopback with interrupts example
34.15.1.5
McBSP loopback with interrupts example
34.15.1.6
McBSP loopback example using SPI mode
34.15.1.7
McBSP external loopback example
34.15.1.8
McBSP external loopback example using SPI mode
34.15.1.9
McBSP TDM-8 Test
34.16
McBSP Registers
34.16.1
MCBSP Base Address Table (C28)
34.16.2
McBSP_REGS Registers
34.16.3
MCBSP Registers to Driverlib Functions
35
Power Management Bus Module (PMBus)
35.1
Introduction
35.1.1
PMBUS Related Collateral
35.1.2
Features
35.1.3
Block Diagram
35.2
Configuring Device Pins
35.3
Slave Mode Operation
35.3.1
Configuration
35.3.2
Message Handling
35.3.2.1
Quick Command
35.3.2.2
Send Byte
35.3.2.3
Receive Byte
35.3.2.4
Write Byte and Write Word
35.3.2.5
Read Byte and Read Word
35.3.2.6
Process Call
35.3.2.7
Block Write
35.3.2.8
Block Read
35.3.2.9
Block Write-Block Read Process Call
35.3.2.10
Alert Response
35.3.2.11
Extended Command
35.3.2.12
Group Command
35.4
Master Mode Operation
35.4.1
Configuration
35.4.2
Message Handling
35.4.2.1
Quick Command
35.4.2.2
Send Byte
35.4.2.3
Receive Byte
35.4.2.4
Write Byte and Write Word
35.4.2.5
Read Byte and Read Word
35.4.2.6
Process Call
35.4.2.7
Block Write
35.4.2.8
Block Read
35.4.2.9
Block Write-Block Read Process Call
35.4.2.10
Alert Response
35.4.2.11
Extended Command
35.4.2.12
Group Command
35.5
PMBus Registers
35.5.1
PMBUS Base Address Table (C28)
35.5.2
PMBUS_REGS Registers
35.5.3
PMBUS Registers to Driverlib Functions
36
Serial Communications Interface (SCI)
36.1
Introduction
36.1.1
Features
36.1.2
SCI Related Collateral
36.1.3
Block Diagram
36.2
Architecture
36.3
SCI Module Signal Summary
36.4
Configuring Device Pins
36.5
Multiprocessor and Asynchronous Communication Modes
36.6
SCI Programmable Data Format
36.7
SCI Multiprocessor Communication
36.7.1
Recognizing the Address Byte
36.7.2
Controlling the SCI TX and RX Features
36.7.3
Receipt Sequence
36.8
Idle-Line Multiprocessor Mode
36.8.1
Idle-Line Mode Steps
36.8.2
Block Start Signal
36.8.3
Wake-Up Temporary (WUT) Flag
36.8.3.1
Sending a Block Start Signal
36.8.4
Receiver Operation
36.9
Address-Bit Multiprocessor Mode
36.9.1
Sending an Address
36.10
SCI Communication Format
36.10.1
Receiver Signals in Communication Modes
36.10.2
Transmitter Signals in Communication Modes
36.11
SCI Port Interrupts
36.11.1
Break Detect
36.12
SCI Baud Rate Calculations
36.13
SCI Enhanced Features
36.13.1
SCI FIFO Description
36.13.2
SCI Auto-Baud
36.13.3
Autobaud-Detect Sequence
36.14
Software
36.14.1
SCI Examples
36.14.1.1
Tune Baud Rate via UART Example
36.14.1.2
SCI FIFO Digital Loop Back
36.14.1.3
Watchdog Reset - C28X_DUAL
36.14.1.4
NMI handling - C28X_DUAL
36.14.1.5
SCI Digital Loop Back with Interrupts
36.14.1.6
SCI Echoback
36.14.1.7
stdout redirect example
36.15
SCI Registers
36.15.1
SCI Base Address Table (C28)
36.15.2
SCI_REGS Registers
36.15.3
SCI Registers to Driverlib Functions
37
Serial Peripheral Interface (SPI)
37.1
Introduction
37.1.1
Features
37.1.2
SPI Related Collateral
37.1.3
Block Diagram
37.2
System-Level Integration
37.2.1
SPI Module Signals
37.2.2
Configuring Device Pins
37.2.2.1
GPIOs Required for High-Speed Mode
37.2.3
SPI Interrupts
37.2.4
DMA Support
37.3
SPI Operation
37.3.1
Introduction to Operation
37.3.2
Master Mode
37.3.3
Slave Mode
37.3.4
Data Format
37.3.4.1
Transmission of Bit from SPIRXBUF
37.3.5
Baud Rate Selection
37.3.5.1
Baud Rate Determination
37.3.5.2
Baud Rate Calculation in Non-High Speed Mode (HS_MODE = 0)
37.3.6
SPI Clocking Schemes
37.3.7
SPI FIFO Description
37.3.8
SPI DMA Transfers
37.3.8.1
Transmitting Data Using SPI with DMA
37.3.8.2
Receiving Data Using SPI with DMA
37.3.9
SPI High-Speed Mode
37.3.10
SPI 3-Wire Mode Description
37.4
Programming Procedure
37.4.1
Initialization Upon Reset
37.4.2
Configuring the SPI
37.4.3
Configuring the SPI for High-Speed Mode
37.4.4
Data Transfer Example
37.4.5
SPI 3-Wire Mode Code Examples
37.4.5.1
3-Wire Master Mode Transmit
1924
37.4.5.2.1
3-Wire Master Mode Receive
1926
37.4.5.2.1
3-Wire Slave Mode Transmit
1928
37.4.5.2.1
3-Wire Slave Mode Receive
37.4.6
SPI STEINV Bit in Digital Audio Transfers
37.5
Software
37.5.1
SPI Examples
37.5.1.1
SPI Digital Loopback
37.5.1.2
SPI Digital Loopback with FIFO Interrupts
37.5.1.3
SPI Digital External Loopback without FIFO Interrupts
37.5.1.4
SPI Digital External Loopback with FIFO Interrupts
37.5.1.5
SPI Digital Loopback with DMA
37.5.1.6
SPI EEPROM
37.5.1.7
SPI DMA EEPROM
37.6
SPI Registers
37.6.1
SPI Base Address Table (C28)
37.6.2
SPI_REGS Registers
37.6.3
SPI Registers to Driverlib Functions
38
Universal Serial Bus (USB) Controller
38.1
Introduction
38.1.1
Features
38.1.2
USB Related Collateral
38.1.3
Block Diagram
38.1.3.1
Signal Description
38.1.3.2
VBus Recommendations
38.2
Functional Description
38.2.1
Operation as a Device
38.2.1.1
Control and Configurable Endpoints
38.2.1.1.1
IN Transactions as a Device
38.2.1.1.2
Out Transactions as a Device
38.2.1.1.3
Scheduling
38.2.1.1.4
Additional Actions
38.2.1.1.5
Device Mode Suspend
38.2.1.1.6
Start of Frame
38.2.1.1.7
USB Reset
38.2.1.1.8
Connect/Disconnect
38.2.2
Operation as a Host
38.2.2.1
Endpoint Registers
38.2.2.2
IN Transactions as a Host
38.2.2.3
OUT Transactions as a Host
38.2.2.4
Transaction Scheduling
38.2.2.5
USB Hubs
38.2.2.6
Babble
38.2.2.7
Host SUSPEND
38.2.2.8
USB RESET
38.2.2.9
Connect/Disconnect
38.2.3
DMA Operation
38.2.4
Address/Data Bus Bridge
38.3
Initialization and Configuration
38.3.1
Pin Configuration
38.3.2
Endpoint Configuration
38.4
USB Global Interrupts
38.5
Software
38.5.1
USB Examples
38.5.1.1
Wrapper for interrupt functions and USB support pins. - CM
38.5.1.2
USB CDC serial example
38.5.1.3
USB Composite Serial Device (usb_dev_cserial) - CM
38.5.1.4
USB HID Mouse Device
38.5.1.5
USB HID Mouse Device - CM
38.5.1.6
Data structures defining the USB mouse device. - CM
38.5.1.7
USB Device Keyboard
38.5.1.8
USB HID Keyboard Device (usb_dev_keyboard) - CM
38.5.1.9
Data structures defining the USB keyboard device. - CM
38.5.1.10
Data structures defining this bulk USB device. - CM
38.5.1.11
USB Generic Bulk Device (usb_dev_bulk) - CM
38.5.1.12
USB Generic Bulk Device
38.5.1.13
USB HID Mouse Host
38.5.1.14
USB HID Mouse Host (usb_host_mouse) - CM
38.5.1.15
USB HID Keyboard Host (usb_host_keyboard) - CM
38.5.1.16
USB HID Keyboard Host
38.5.1.17
USB Mass Storage Class Host
38.5.1.18
USB Mass Storage Class Host (usb_host_msc) - CM
38.5.1.19
USB Dual Detect
38.5.1.20
Data structures defining this bulk USB device. - CM
38.5.1.21
USB Throughput Bulk Device Example (usb_ex9_throughput_dev_bulk) - CM
38.5.1.22
USB HUB Host example - CM
38.5.1.23
USB Throughput Bulk Device Example (usb_ex9_throughput_dev_bulk)
38.5.1.24
USB HUB Host example
38.6
USB Registers
38.6.1
USB Base Address Table (C28)
38.6.2
USB_REGS Registers
38.6.3
USB Registers to Driverlib Functions
39
► CONNECTIVITY MANAGER (CM)
39.1
Technical Reference Manual Overview
40
Connectivity Manager Subsystem
40.1
Connectivity Manager Overview
40.2
Connectivity Manager Functional Block Diagram
40.3
Arm® Cortex®-M4 Processor Core Overview
41
Connectivity Manager System Control and Interrupts
41.1
Introduction
41.2
Reset
41.2.1
CPU1 SYSRS
41.2.2
System Reset Request (CMSYSRESETREQ)
41.2.3
CM NMI Watchdog Reset (CMNMIWDRSTn)
41.2.4
CM Secure Code Copy Reset (CMSCCRESETn)
41.3
CM Clocking
41.3.1
CM Clock Sources
41.3.2
CM Derived Clocks
41.3.3
CM Device Clock Domains
41.3.3.1
Connectivity Manager Clock (CMCLK)
41.3.3.2
CM Peripheral Subsystem Clock (CM.PERx.SYSCLK)
41.3.3.3
MCAN Bit Clock
41.3.4
CM Clock Connectivity
41.4
SysTick
41.5
Watchdog Timer
41.6
Exceptions and NMI
41.6.1
CM Subsystem Nested Vectored Interrupt Controller
41.6.2
CM Subsystem Exceptions Handling
41.6.3
CM Subsystem Non-Maskable Interrupt (CMNMI) Module
41.6.3.1
CM Subsystem NMI Sources
41.6.3.1.1
RAM/ROM Uncorrectable Error
41.6.3.1.2
Reset Request from EtherCAT
41.6.3.1.3
Clock Fail Condition
41.6.3.1.4
MCAN Uncorrectable Error
41.6.3.1.5
CM Windowed Watchdog Timed Out
41.6.3.1.6
Flash Uncorrectable Error
41.6.3.2
CM Subsystem NMIWD Module
41.6.3.2.1
Emulation Considerations
41.6.3.3
Handling of CMNMI
41.6.4
CM Interrupts/NMI to CPU1/CPU2
41.7
Nested Vectored Interrupt Controller (NVIC)
41.7.1
Level-Sensitive and Pulse Interrupts
41.7.2
Hardware and Software Control of Interrupts
41.7.3
NVIC Registers Access
41.8
32-Bit CM CPU Timers 0/1/2
41.9
Memory Controller Module
41.9.1
Functional Description
41.9.1.1
Dedicated RAM
41.9.1.2
Shared RAM
41.9.1.3
MSG RAM
41.9.1.4
ROM
41.9.1.5
Interleaving
41.9.1.6
Access Arbitration
41.9.1.7
Access Protection
41.9.1.8
Memory Error Detection, Correction and Error Handling
41.9.1.8.1
Error Detection and Correction
41.9.1.8.2
Error Handling
41.9.1.8.3
Application Test Hooks for Error Detection and Correction
41.9.1.8.4
ROM Test
41.9.1.9
RAM Initialization
41.10
Memory Protection Unit (MPU)
41.10.1
Functional Description
41.10.2
Overlapping Regions
41.10.3
Sub-Regions
41.10.4
Programmers Model
41.11
Debug and Trace
41.11.1
Trace Port Interface Unit
41.12
CM-SysCtrl Registers
41.12.1
CM System Control Base Addresses
41.12.2
CM_MEMCFG_REGS Registers
41.12.3
CM_MEMORYDIAGERROR_REGS Registers
41.12.4
CM_MEMORYERROR_REGS Registers
41.12.5
CMSYSCTL_REGS Registers
41.12.6
CM_CPUTIMER_REGS Registers
41.12.7
MPU_REGS Registers
41.12.8
CM_NMI_INTRUPT_REGS Registers
41.12.9
NVIC Registers
41.12.10
SCB Registers
41.12.11
CSFR Registers
41.12.12
SYSTICK Registers
41.12.13
MPU Registers
41.12.14
CM_WD_REGS Registers
42
Advanced Encryption Standard (AES) Accelerator
42.1
Introduction
42.1.1
AES Block Diagram
42.1.1.1
Interfaces
42.1.1.2
AES Subsystem
42.1.1.3
AES Wide-Bus Engine
42.1.2
AES Algorithm
42.2
AES Operating Modes
42.2.1
GCM Operation
42.2.2
CCM Operation
42.2.3
XTS Operation
42.2.4
ECB Feedback Mode
42.2.5
CBC Feedback Mode
42.2.6
CTR and ICM Feedback Modes
42.2.7
CFB Mode
42.2.8
F8 Mode
42.2.9
F9 Operation
42.2.10
CBC-MAC Operation
42.3
Extended and Combined Modes of Operations
42.3.1
GCM Protocol Operation
42.3.2
CCM Protocol Operation
42.3.3
Hardware Requests
42.4
AES Module Programming Guide
42.4.1
AES Low-Level Programming Models
42.4.1.1
Global Initialization
42.4.1.2
AES Operating Modes Configuration
42.4.1.3
AES Mode Configurations
42.4.1.4
AES Events Servicing
42.5
Software
42.5.1
AES Examples
42.5.1.1
AES ECB Encryption Example (CM) - CM
42.5.1.2
AES ECB De-cryption Example (CM) - CM
42.5.1.3
AES GCM Encryption Example (CM) - CM
42.5.1.4
AES GCM Decryption Example (CM) - CM
42.6
AES Registers
42.6.1
AES Base Addresses
42.6.2
AES_SS_REGS Registers
42.6.3
AES_REGS Registers
43
Ethernet Media Access Controller (EMAC)
43.1
Introduction
43.1.1
Standard Compliance
43.1.2
MAC Features
43.1.2.1
MAC Tx and Rx Features
43.1.2.2
MAC Tx Features
43.1.2.3
MAC Rx Features
43.2
System Level Integration
43.2.1
Ethernet Signal Connection and Description
43.2.1.1
MII Interface Signals
43.2.1.2
RMII Interface Signals
43.2.1.3
RevMII Interface Signals
43.2.1.4
Pulse Per Second Signals
43.2.2
Configuring Device Pins
43.2.3
MAC Interface Selection
43.2.4
Clocks for Ethernet Module
43.2.5
RMII Mode Clocking
43.2.6
RevMII Mode Clocking
43.2.7
Configuring Trigger Sources for Time Stamping
43.2.7.1
Software Trigger for Time Stamping
43.2.8
Ethernet Interrupts
43.3
Features
43.3.1
Multiple Channels and Queues Support
43.3.1.1
Multiple Queues and Channels in Transmit Path
43.3.1.2
Multiple Queues and Channels in Receive Path
43.3.1.3
Rx Queue to DMA Mapping
43.3.1.4
Selection of Tag Priorities Assigned to Tx and Rx Queues
43.3.1.5
Rx Side Routing from MAC to Queues
43.3.2
IEEE 1588 Timestamp Support
43.3.2.1
Feature Description
43.3.2.1.1
Clock Types
43.3.2.1.1.1
Peer-to-Peer Transparent Clock (P2PTC) Message Support
43.3.2.1.1.2
Timestamp Correction
43.3.2.1.1.3
Ingress Correction
43.3.2.1.1.4
Egress Correction
43.3.2.1.1.5
Frequency Range of Reference Timing Clock
43.3.2.1.2
Maximum PTP Clock Frequency
43.3.2.1.3
Minimum PTP Clock Frequency
43.3.2.1.4
PTP Processing and Control
43.3.2.1.5
PTP Packets Over IPv4
43.3.2.1.6
PTP Frames Over IPv6
43.3.2.1.7
PTP Packets Over Ethernet
43.3.2.1.8
Transmit Path Functions
43.3.2.1.9
Receive Path Functions
43.3.2.2
IEEE 1588 System Time Source
43.3.2.2.1
External Timestamp Input
43.3.2.2.2
Internal Reference Time
43.3.2.2.3
System Time Register Module
43.3.2.3
IEEE 1588 Higher Word Register
43.3.2.4
IEEE 1588 Auxillary Snapshot
43.3.2.5
Flexible Pulse-Per-Second Output
43.3.2.5.1
PPS Start or Stop Time
43.3.2.5.2
PPS Width and Interval
43.3.3
Packet Filtering
43.3.3.1
Packet Filtering Sequence
43.3.3.2
Destination Address Filtering
43.3.3.3
Source Address Filtering
43.3.3.4
Inverse Filtering
43.3.3.5
VLAN Filtering
43.3.3.5.1
Comparison Modes
43.3.3.5.2
Filter Status
43.3.3.5.3
Stripping
43.3.3.6
Layer 3 and Layer 4 Filtering
43.3.3.6.1
Layer 3 Filtering
43.3.4
VLAN Support
43.3.4.1
Double VLAN Processing
43.3.4.1.1
Transmit Path
43.3.4.1.2
Receive Path
43.3.4.2
Double VLAN-Related Registers
43.3.4.3
Source Address and VLAN Insertion, Replacement, or Deletion
43.3.4.3.1
Programming VLAN Insertion, Replacement, or Deletion
43.3.4.4
Queue/Channel Based VLAN Tag Insertion on Tx
43.3.5
TCP/IP Offloading Features
43.3.5.1
Transmit Checksum Offload Engine
43.3.5.1.1
IP Header Checksum Engine
43.3.5.1.2
TCP/UDP/ICMP Checksum Engine
43.3.5.2
Receive Checksum Offload Engine
43.3.5.3
TCP/IP Segmentation Offload (TSO) Engine
43.3.5.3.1
DMA Operation with TSO Feature
43.3.5.3.1.1
TCP/IP Header Fields
43.3.5.3.1.2
Header and Payload Fields of Segmented Packets
43.3.5.4
Segmentation Versus Fragmentation
43.3.5.5
Using the IPv4 ARP Offload Engine
43.3.5.6
Energy Efficient Ethernet (EEE) Support
43.3.5.6.1
Magic Packet
43.3.5.6.2
Remote Wakeup Filter
43.3.5.6.3
Energy Efficient Ethernet (EEE)
43.3.5.6.3.1
Transmit Path Functions
43.3.5.6.4
Automated Entry/Exit of LPI mode in Transmit Path
43.3.5.6.5
Receive Path Functions
43.3.5.7
Automated Entry/Exit of LPI Mode in Transmit Path
43.3.5.8
Receive Path Functions
43.3.6
Loopback Mode
43.3.7
Reverse Media Independent Interface (RevMII)
43.3.7.1
RevMII Register Maps
43.3.7.2
MAC_RevMII_PHY_Control
43.3.7.3
MAC_RevMII_Common_Status
43.3.7.4
MAC_RevMII_Common_Ext_Status
43.3.7.5
MAC_RevMII_Interrupt_Status_Mask
43.3.7.6
MAC_RevMII_Remote_PHY_Status
43.3.7.7
MAC_RevMII_PHY_Status Register
43.4
Descriptors
43.4.1
Descriptor Structure
43.4.2
Transmit Descriptor
43.4.2.1
Transmit Normal Descriptor (Read Format)
43.4.2.1.1
TDES0 Normal Descriptor (Read Format)
43.4.2.1.2
TDES1 Normal Descriptor (Read Format)
43.4.2.1.3
TDES2 Normal Descriptor (Read Format)
43.4.2.1.4
TDES3 Normal Descriptor (Read Format)
43.4.2.2
Transmit Normal Descriptor (Write-Back Format)
43.4.2.2.1
TDES0 Normal Descriptor (Write-Back Format)
43.4.2.2.2
TDES1 Normal Descriptor (Write-Back Format)
43.4.2.2.3
TDES2 Normal Descriptor (Write-Back Format)
43.4.2.2.4
TDES3 Normal Descriptor (Write-Back Format)
43.4.2.3
Transmit Context Descriptor
43.4.2.3.1
TDES0 Context Descriptor
43.4.2.3.2
TDES1 Context Descriptor
43.4.2.3.3
TDES2 Context Descriptor
43.4.2.3.4
TDES3 Context Descriptor
43.4.3
Receive Descriptor
43.4.3.1
Receive Normal Descriptor (Read Format)
43.4.3.1.1
RDES0 Normal Descriptor (Read Format)
43.4.3.1.2
RDES1 Normal Descriptor (Read Format)
43.4.3.1.3
RDES2 Normal Descriptor (Read Format)
43.4.3.1.4
RDES3 Normal Descriptor (Read Format)
43.4.3.2
Receive Normal Descriptor (Write-Back Format)
43.4.3.2.1
RDES0 Normal Descriptor (Write-Back Format)
43.4.3.2.2
RDES1 Normal Descriptor (Write-Back Format)
43.4.3.2.3
RDES2 Normal Descriptor (Write-Back Format)
43.4.3.2.4
RDES3 Normal Descriptor (Write-Back Format)
43.4.3.3
Receive Context Descriptor
43.4.3.3.1
RDES0 Context Descriptor
43.4.3.3.2
RDES1 Context Descriptor
43.4.3.3.3
RDES2 Context Descriptor
43.4.3.3.4
RDES3 Context Descriptor
43.5
Programming
43.5.1
Initializing DMA
43.5.2
Initializing MTL Registers
43.5.3
Initializing MAC
43.5.4
Performing Normal Receive and Transmit Operation
43.5.5
Stopping and Starting Transmission
43.5.6
Programming Guidelines for Multi-Channel Multi-Queuing
43.5.6.1
Transmit
43.5.6.2
Receive
43.5.6.3
Programming Guidelines for Recovering from DMA Channel Failure
43.5.6.3.1
Recovering from the Receive DMA Channel Failure
43.5.6.3.2
Recovering from the Transmit DMA Channel Failure
43.5.6.4
Programming Guidelines for IEEE 1588 Timestamping
43.5.6.4.1
Initialization Guidelines for System Time Generation
43.5.6.4.2
System Time Correction
43.5.6.4.2.1
Coarse Correction Method
43.5.6.4.2.2
Fine Correction Method
43.5.6.5
Programming Guidelines for Energy Efficient Ethernet
43.5.6.5.1
Entering and Exiting the Tx LPI Mode
43.5.6.5.2
Gating Off the CSR Clock in the LPI Mode
43.5.6.5.3
Rx LPI Mode
43.5.6.5.4
Gating Off the CSR Clock in the Tx LPI Mode
43.5.6.6
Programming Guidelines for Flexible Pulse-Per-Second Output
43.5.6.6.1
Generating Single Pulse on PPS
43.5.6.6.2
Generating Next Pulse on PPS
43.5.6.6.3
Generating a Pulse Train on PPS
43.5.6.6.4
Generating an Interrupt without Affecting the PPS
43.5.6.7
Programming Guidelines for TSO
43.6
Software
43.6.1
ETHERNET Examples
43.6.1.1
Ethernet + IPC basic message passing example with interrupt - C28X_CM
43.6.1.2
Ethernet + IPC basic message passing example with interrupt - C28X_CM
43.6.1.3
Ethernet MAC Internal Loopback - CM
43.6.1.4
Ethernet Basic Transmit and Receive PHY Loopback - CM
43.6.1.5
Ethernet Threshold mode with level PHY loopback - CM
43.6.1.6
Ethernet PTP Basic Master - CM
43.6.1.7
Ethernet PTP Basic Slave - CM
43.6.1.8
Ethernet PTP Offload Master - CM
43.6.1.9
Ethernet PTP Offload Slave - CM
43.6.1.10
Ethernet MAC CRC and Checksum Offload - CM
43.6.1.11
Ethernet Transmit Segmentation Offload - CM
43.6.1.12
Ethernet MAC Internal Loopback - CM
43.6.1.13
Ethernet RevMII Example MII side - CM
43.6.1.14
Ethernet RevMII Example RevMII side - CM
43.6.1.15
Ethernet Low Latency Interrupt - CM
43.7
Ethernet Registers
43.7.1
Ethernet Base Addresses
43.7.2
ETHERNETSS_REGS Registers
43.7.3
EMAC_REGS Registers
44
Generic Cyclic Redundancy Check (GCRC)
44.1
Generic CRC Overview
44.1.1
GCRC Features
44.1.2
GCRC Block Diagram
44.2
GCRC Functional Description
44.2.1
GCRC Polynomials
44.2.2
Fixed Polynomial
44.2.3
GCRC Data Input
44.2.4
GCRC Execution Sequence Flow
44.2.5
GCRC Transformations
44.2.5.1
Endianness Transformation
44.2.5.2
Mask Transformation
44.2.5.3
Bit Reversal Transformation
44.3
Software
44.3.1
GCRC Examples
44.3.1.1
GCRC example - CM
44.4
GCRC Registers
44.4.1
GCRC Base Addresses
44.4.2
GCRC_REGS Registers
45
Modular Controller Area Network (MCAN)
45.1
MCAN Introduction
45.1.1
MCAN Related Collateral
45.1.2
MCAN Features
45.2
MCAN Environment
45.3
CAN Network Basics
45.4
MCAN Integration
45.5
MCAN Functional Description
45.5.1
Module Clocking Requirements
45.5.2
Interrupt Requests
45.5.3
Operating Modes
45.5.3.1
Software Initialization
45.5.3.2
Normal Operation
45.5.3.3
CAN FD Operation
45.5.4
Transmitter Delay Compensation
45.5.4.1
Description
45.5.4.2
Transmitter Delay Compensation Measurement
45.5.5
Restricted Operation Mode
45.5.6
Bus Monitoring Mode
45.5.7
Disabled Automatic Retransmission (DAR) Mode
45.5.7.1
Frame Transmission in DAR Mode
45.5.8
Clock Stop Mode
45.5.8.1
Suspend Mode
45.5.8.2
Wakeup Request
45.5.9
Test Modes
45.5.9.1
External Loop Back Mode
45.5.9.2
Internal Loop Back Mode
45.5.10
Timestamp Generation
45.5.10.1
External Timestamp Counter
45.5.11
Timeout Counter
45.5.12
Safety
45.5.12.1
ECC Wrapper
45.5.12.2
ECC Aggregator
45.5.12.2.1
ECC Aggregator Overview
45.5.12.2.2
ECC Aggregator Registers
45.5.12.3
Reads to ECC Control and Status Registers
45.5.12.4
ECC Interrupts
45.5.13
Rx Handling
45.5.13.1
Acceptance Filtering
45.5.13.1.1
Range Filter
45.5.13.1.2
Filter for Specific IDs
45.5.13.1.3
Classic Bit Mask Filter
45.5.13.1.4
Standard Message ID Filtering
45.5.13.1.5
Extended Message ID Filtering
45.5.13.2
Rx FIFOs
45.5.13.2.1
Rx FIFO Blocking Mode
45.5.13.2.2
Rx FIFO Overwrite Mode
45.5.13.3
Dedicated Rx Buffers
45.5.13.3.1
Rx Buffer Handling
45.5.14
Tx Handling
45.5.14.1
Transmit Pause
45.5.14.2
Dedicated Tx Buffers
45.5.14.3
Tx FIFO
45.5.14.4
Tx Queue
45.5.14.5
Mixed Dedicated Tx Buffers/Tx FIFO
45.5.14.6
Mixed Dedicated Tx Buffers/Tx Queue
45.5.14.7
Transmit Cancellation
45.5.14.8
Tx Event Handling
45.5.15
FIFO Acknowledge Handling
45.5.16
Message RAM
45.5.16.1
Message RAM Configuration
45.5.16.2
Rx Buffer and FIFO Element
45.5.16.3
Tx Buffer Element
45.5.16.4
Tx Event FIFO Element
45.5.16.5
Standard Message ID Filter Element
45.5.16.6
Extended Message ID Filter Element
45.6
Software
45.6.1
MCAN Examples
45.6.1.1
MCAN Internal Loopback with Interrupt - CM
45.6.1.2
MCAN Internal Loopback with Interrupt
45.6.1.3
MCAN External Loopback with Interrupt - CM
45.6.1.4
MCAN Loopback with Interrupts Example Using SYSCONFIG Tool
45.6.1.5
MCAN receive using Rx Buffer
45.6.1.6
MCAN External Reception (with mask filter) into RX-FIFO1
45.6.1.7
MCAN Classic frames transmission using Tx Buffer
45.6.1.8
MCAN External Reception (with RANGE filter) into RX-FIFO1
45.6.1.9
MCAN External Transmit using Tx Buffer
45.6.1.10
MCAN receive using Rx Buffer
45.6.1.11
MCAN Internal Loopback with Interrupt
45.6.1.12
MCAN External Transmit using Tx Buffer
45.7
MCAN Registers
45.7.1
MCAN Base Address Table (C28)
45.7.2
CM MCAN Base Address Table (CM)
45.7.3
MCANSS_REGS Registers
45.7.4
MCAN_REGS Registers
45.7.5
MCAN_ERROR_REGS Registers
46
Connectivity Manager Inter-Integrated Circuit (I2C) Module
46.1
Introduction
46.1.1
Features
46.1.2
Block Diagram
46.2
Functional Description
46.2.1
I2C Bus Functional Overview
46.2.1.1
START and STOP Conditions
46.2.1.2
Data Format With 7-Bit Address
46.2.1.3
Data Validity
46.2.1.4
Acknowledge
46.2.1.5
Repeated START
46.2.1.5.1
Repeated Start for Master Transmit
46.2.1.5.2
Repeated Start for Master Receive
46.2.1.6
Clock Low Time-out (CLTO)
46.2.1.7
Dual Address
46.2.1.8
Arbitration
46.2.1.9
Glitch Suppression in Multi-Master Configuration
46.2.1.10
SMBus Operation
46.2.1.10.1
Quick Command
46.2.2
Available Speed Modes
46.2.2.1
Standard, Fast, and Fast Plus Modes
46.2.2.2
High-Speed Mode
46.2.3
Interrupts
46.2.4
Loopback Operation
46.2.5
FIFO and µDMA Operation
46.2.5.1
Master Module Burst Mode
46.2.5.1.1
Master Module µDMA Functionality
46.2.5.2
Slave Module
46.2.6
Command Sequence Flow Charts
46.2.6.1
I2C Master Command Sequences
46.2.6.2
I2C Slave Command Sequences
46.3
Initialization and Configuration
46.3.1
Configure the I2C Module to Transmit a Single Byte as a Master
46.3.2
Configure the I2C Master to High-Speed Mode
46.4
CM I2C Registers
46.4.1
CM I2C Base Addresses
46.4.2
CM_I2C_REGS Registers
46.4.3
CM_I2C_WRITE_REGS Registers
47
Synchronous Serial Interface (SSI)
47.1
Introduction
47.1.1
Features
47.1.2
Block Diagram
47.2
Functional Description
47.2.1
Bit Rate Generation
47.2.2
FIFO Operation
47.2.2.1
Transmit FIFO
47.2.2.2
Receive FIFO
47.2.3
SSInFSS Function
47.2.4
Interrupts
47.2.5
Frame Formats
47.2.5.1
Freescale SPI Frame Format
47.2.5.1.1
SPO Clock Polarity Bit
47.2.5.1.2
SPH Phase Control Bit
47.2.5.2
Freescale SPI Frame Format with SPO=0 and SPH=0
47.2.5.3
Freescale SPI Frame Format with SPO=0 and SPH=1
47.2.5.4
Freescale SPI Frame Format with SPO=1 and SPH=0
47.2.5.5
Freescale SPI Frame Format with SPO=1 and SPH=1
47.2.6
DMA Operation
47.3
Initialization and Configuration
47.4
Software
47.4.1
SSI Examples
47.4.1.1
SSI Loopback example with interrupts - CM
47.4.1.2
SSI Loopback example with UDMA - CM
47.5
SSI Registers
47.5.1
SSI Base Addresses
47.5.2
SSI_REGS Registers
48
Universal Asynchronous Receiver/Transmitter (UART)
48.1
Introduction
48.1.1
Features
48.1.2
Block Diagram
48.2
Functional Description
48.2.1
Transmit and Receive Logic
48.2.2
Baud-Rate Generation
48.2.3
Data Transmission
48.2.4
Serial IR (SIR)
48.2.5
9-Bit UART Mode
48.2.6
FIFO Operation
48.2.7
Interrupts
48.2.8
Loopback Operation
48.2.9
DMA Operation
48.3
Initialization and Configuration
48.4
Software
48.4.1
UART Examples
48.4.1.1
UART Echoback - CM
48.4.1.2
UART Loopback example with UDMA - CM
48.5
UART Registers
48.5.1
UART Base Addresses
48.5.2
UART_REGS Registers
48.5.3
UART_REGS_WRITE Registers
49
Micro Direct Memory Access (µDMA)
49.1
Introduction
49.1.1
Features
49.1.2
Block Diagram
49.2
Functional Description
49.2.1
Channel Assignments
49.2.2
Priority
49.2.3
Arbitration Size
49.2.4
Request Types
49.2.4.1
Single Request
49.2.4.2
Burst Request
49.2.5
Channel Configuration
49.2.6
Transfer Modes
49.2.6.1
Stop Mode
49.2.6.2
Basic Mode
49.2.6.3
Auto Mode
49.2.6.4
Ping-Pong
49.2.6.5
Memory Scatter-Gather
49.2.6.6
Peripheral Scatter-Gather
49.2.7
Transfer Size and Increment
49.2.8
Peripheral Interface
49.2.8.1
FIFO Peripherals
49.2.8.2
Trigger Peripherals
49.2.9
Software Request
49.2.10
Interrupts and Errors
49.3
Initialization and Configuration
49.3.1
Module Initialization
49.3.2
Configuring a Memory-to-Memory Transfer
49.3.2.1
Configure the Channel Attributes
49.3.2.2
Configure the Channel Control Structure
49.3.2.2.1
Configure the Source and Destination
49.3.2.2.2
Configure Peripheral Interrupts
49.3.2.3
Start the Transfer
49.3.3
Configuring a Peripheral for Simple Transmit
49.3.3.1
Configure the Channel Attributes
49.3.3.2
Configure the Channel Control Structure
49.3.3.2.1
Configure the Source and Destination
49.3.3.3
Start the Transfer
49.3.4
Configuring a Peripheral for Ping-Pong Receive
49.3.4.1
Configure the Channel Attributes
49.3.4.2
Configure the Channel Control Structure
49.3.4.2.1
Configure the Source and Destination
49.3.4.3
Configure and Enable the Peripheral Interrupt
49.3.4.4
Process Interrupts
49.3.5
Configuring Channel Assignments
49.4
Software
49.4.1
UDMA Examples
49.4.1.1
uDMA RAM to RAM transfer - CM
49.4.1.2
uDMA RAM to RAM transfer - CM
49.5
µDMA Registers
49.5.1
µDMA Base Addresses
49.5.2
UDMAREGS Registers
49.5.3
UDMACHDES Registers
50
Revision History
37.3.5.2
Baud Rate Calculation in Non-High Speed Mode (HS_MODE = 0)