SPRUIZ1B
July 2023 – August 2024
1
Read This First
About This Manual
Notational Conventions
Glossary
Related Documentation From Texas Instruments
Support Resources
Trademarks
1
C2000â„¢ Microcontrollers Software Support
1.1
Introduction
1.2
C2000Ware Structure
1.3
Documentation
1.4
Devices
1.5
Libraries
1.6
Code Composer Studioâ„¢ Integrated Development Environment (IDE)
1.7
SysConfig and PinMUX Tool
2
C28x Processor
2.1
Introduction
2.2
C28X Related Collateral
2.3
Features
2.4
Floating-Point Unit (FPU)
2.5
Trigonometric Math Unit (TMU)
2.6
VCRC Unit
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.3
Resets
3.3.1
Reset Sources
3.3.2
External Reset (XRS)
3.3.3
Simulate External Reset (SIMRESET.XRS)
3.3.4
Power-On Reset (POR)
3.3.5
Debugger Reset (SYSRS)
3.3.6
Simulate CPU1 Reset (SIMRESET)
3.3.7
Watchdog Reset (WDRS)
3.3.8
NMI Watchdog Reset (NMIWDRS)
3.3.9
Secure Code Copy Reset (SCCRESET)
3.3.10
EtherCAT SubDevice Controller (ESC) Module Reset Output
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 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
EtherCAT Reset Out
3.5.3.8
CRC Fail
3.5.3.9
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
Using an External Crystal or Resonator
3.7.6.1
X1/X2 Precondition Circuit
3.7.7
PLL/AUXPLL
3.7.7.1
System Clock Setup
3.7.7.2
USB Auxiliary Clock Setup
3.7.7.3
SYS PLL/AUX PLL Bypass
3.7.8
Clock (OSCCLK) Failure Detection
3.7.8.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.11.3
HALT
3.12
Memory Controller Module
3.12.1
Dedicated RAM (Dx RAM)
3.12.2
Local Shared RAM (LSx RAM)
3.12.3
Global Shared RAM (GSx RAM)
3.12.4
CPU Message RAM (CPU MSG RAM)
3.12.5
CLA Message RAM (CLA MSGRAM)
3.12.6
CLA-DMA MSG RAM
3.12.7
Access Arbitration
3.12.8
Access Protection
3.12.8.1
CPU Fetch Protection
3.12.8.2
CPU Write Protection
3.12.8.3
CPU Read Protection
3.12.8.4
CLA Fetch Protection
3.12.8.5
CLA Write Protection
3.12.8.6
CLA Read Protection
3.12.8.7
DMA Write Protection
3.12.9
Memory Error Detection, Correction, and Error Handling
3.12.9.1
Error Detection and Correction
3.12.9.2
Error Handling
3.12.10
Application Test Hooks for Error Detection and Correction
3.12.11
ROM Test
3.12.12
RAM Initialization
3.13
JTAG
3.13.1
JTAG Noise and TAP_STATUS
3.14
Live Firmware Update (LFU)
3.14.1
LFU Background
3.14.2
LFU Switchover Steps
3.14.3
Device Features Supporting LFU
3.14.3.1
Multi-Bank Flash
3.14.3.2
PIE Vector Table Swap
3.14.3.3
LS0/LS1 RAM Memory Swap for CPU1
3.14.3.3.1
Applicability to CLA LFU
3.14.3.4
D2/D3 RAM Memory Swap for CPU2
3.14.3.5
Additional Points Pertaining to LS0/LS1 and D2/D3 RAM Memory Swap
3.14.4
LFU Switchover
3.14.5
LFU Resources
3.15
System Control Register Configuration Restrictions
3.16
MCU Configuration (MCUCNFx)
3.17
Software
3.17.1
SYSCTL Examples
3.17.1.1
Missing clock detection (MCD) - SINGLE_CORE
3.17.1.2
XCLKOUT (External Clock Output) Configuration - SINGLE_CORE
3.17.2
MEMCFG Examples
3.17.2.1
Correctable & Uncorrectable Memory Error Handling
3.17.2.2
Shared RAM Management (CPU1) - C28X_DUAL
3.17.2.3
Shared RAM Management (CPU2) - C28X_DUAL
3.17.3
NMI Examples
3.17.3.1
NMI handling - C28X_DUAL
3.17.3.2
Watchdog Reset - C28X_DUAL
3.17.4
TIMER Examples
3.17.4.1
CPU Timers - SINGLE_CORE
3.17.4.2
CPU Timers - SINGLE_CORE
3.17.5
WATCHDOG Examples
3.17.5.1
Watchdog - SINGLE_CORE
3.18
System Control Registers
3.18.1
SYSCTRL Base Address Table
3.18.2
LFU Base Address Table
3.18.3
CPUTIMER_REGS Registers
3.18.4
PIE_CTRL_REGS Registers
3.18.5
WD_REGS Registers
3.18.6
NMI_INTRUPT_REGS Registers
3.18.7
XINT_REGS Registers
3.18.8
SYNC_SOC_REGS Registers
3.18.9
CPU1_DMA_CLA_SRC_SEL_REGS Registers
3.18.10
CPU2_DMA_CLA_SRC_SEL_REGS Registers
3.18.11
DEV_CFG_REGS Registers
3.18.12
CLK_CFG_REGS Registers
3.18.13
CPU1_SYS_REGS Registers
3.18.14
CPU2_SYS_REGS Registers
3.18.15
CPU1_SYS_STATUS_REGS Registers
3.18.16
CPU2_SYS_STATUS_REGS Registers
3.18.17
CPU1_PERIPH_AC_REGS Registers
3.18.18
CPU2_PERIPH_AC_REGS Registers
3.18.19
MEM_CFG_REGS Registers
3.18.20
ACCESS_PROTECTION_REGS Registers
3.18.21
MEMORY_ERROR_REGS Registers
3.18.22
ROM_WAIT_STATE_REGS Registers
3.18.23
TEST_ERROR_REGS Registers
3.18.24
UID_REGS Registers
3.18.25
CPU1_LFU_REGS Registers
3.18.26
CPU2_LFU_REGS Registers
3.18.27
CPU1TOCPU2_IPC_REGS_CPU1VIEW Registers
3.18.28
CPU1TOCPU2_IPC_REGS_CPU2VIEW Registers
3.18.29
CPU2_DMA_CLA_SRC_SEL_REGS Registers
3.18.30
Register to Driverlib Function Mapping
3.18.30.1
ASYSCTL Registers to Driverlib Functions
3.18.30.2
CPUTIMER Registers to Driverlib Functions
3.18.30.3
MEMCFG Registers to Driverlib Functions
3.18.30.4
NMI Registers to Driverlib Functions
3.18.30.5
PIE Registers to Driverlib Functions
3.18.30.6
SYSCTL Registers to Driverlib Functions
3.18.30.7
WWD Registers to Driverlib Functions
3.18.30.8
XINT Registers to Driverlib Functions
4
ROM Code and Peripheral Booting
4.1
Introduction
4.1.1
ROM Related Collateral
4.2
Device Boot Sequence
4.3
Device Boot Modes
4.3.1
Default Boot Modes
4.3.2
Custom Boot Modes
4.4
Device Boot Configurations
4.4.1
Configuring Boot Mode Pins
4.4.2
Configuring Boot Mode Table Options
4.4.3
Boot Mode Example Use Cases
4.4.3.1
Zero Boot Mode Select Pins
4.4.3.2
One Boot Mode Select Pin
4.4.3.3
Three Boot Mode Select Pins
4.5
Device Boot Flow Diagrams
4.5.1
Boot Flow
4.5.2
Emulation Boot Flow
4.5.3
Standalone Boot Flow
4.6
Device Reset and Exception Handling
4.6.1
Reset Causes and Handling
4.6.2
Exceptions and Interrupts Handling
4.7
Boot ROM Description
4.7.1
Boot ROM Configuration Registers
4.7.1.1
GPREG2 Usage and MPOST Configuration
4.7.2
Booting CPU2
4.7.2.1
Boot Up Procedure
4.7.2.2
IPCBOOTMODE Details
4.7.2.3
Error IPC Command Table
4.7.3
Entry Points
4.7.4
Wait Points
4.7.5
Secure Flash Boot Mode
4.7.5.1
Secure Flash CPU1 Linker File Example
4.7.6
Memory Maps
4.7.6.1
Boot ROM Memory-Maps
4.7.6.2
Reserved RAM Memory-Maps
4.7.7
ROM Tables
4.7.8
Boot Modes and Loaders
4.7.8.1
Boot Modes
4.7.8.1.1
Flash Boot
4.7.8.1.2
RAM Boot
4.7.8.1.3
Wait Boot
4.7.8.1.4
Secure LFU Flash Boot
4.7.8.2
Bootloaders
4.7.8.2.1
SCI Boot Mode
4.7.8.2.2
SPI Boot Mode
4.7.8.2.3
I2C Boot Mode
4.7.8.2.4
Parallel Boot Mode
4.7.8.2.5
CAN Boot Mode
4.7.8.2.6
CAN-FD Boot Mode
4.7.8.2.7
USB Boot Mode
4.7.8.2.8
IPC Message Copy to RAM Boot
4.7.8.2.9
Firmware Update (FWU) Flash Boot
4.7.9
GPIO Assignments
4.7.10
Secure ROM Function APIs
4.7.11
Clock Initializations
4.7.12
Boot Status Information
4.7.12.1
Booting Status
4.7.12.2
Boot Mode and MPOST (Memory Power On Self-Test) Status
4.7.13
ROM Version
4.8
Application Notes for Using the Bootloaders
4.8.1
Bootloader Data Stream Structure
4.8.1.1
Data Stream Structure 8-bit
4.8.2
The C2000 Hex Utility
4.8.2.1
HEX2000.exe Command Syntax
4.9
Software
4.9.1
BOOT Examples
5
Dual Code Security Module (DCSM)
5.1
Introduction
5.1.1
DCSM Related Collateral
5.2
Functional Description
5.2.1
CSM Passwords
5.2.2
Emulation Code Security Logic (ECSL)
5.2.3
CPU Secure Logic
5.2.4
Execute-Only Protection
5.2.5
Password Lock
5.2.6
JTAGLOCK
5.2.7
Link Pointer and Zone Select
5.2.8
C Code Example to Get Zone Select Block Addr for Zone1
5.3
Flash and OTP Erase/Program
5.4
Secure Copy Code
5.5
SecureCRC
5.6
CSM Impact on Other On-Chip Resources
5.6.1
RAMOPEN
5.7
Incorporating Code Security in User Applications
5.7.1
Environments That Require Security Unlocking
5.7.2
CSM Password Match Flow
5.7.3
C Code Example to Unsecure C28x Zone1
5.7.4
C Code Example to Resecure C28x Zone1
5.7.5
Environments That Require ECSL Unlocking
5.7.6
ECSL Password Match Flow
5.7.7
ECSL Disable Considerations for any Zone
5.7.7.1
C Code Example to Disable ECSL for C28x Zone1
5.7.8
Device Unique ID
5.8
Software
5.8.1
DCSM Examples
5.8.1.1
Empty DCSM Tool Example
5.8.1.2
DCSM Memory partitioning Example
5.9
DCSM Registers
5.9.1
DCSM Base Address Table
5.9.2
DCSM_Z1_REGS Registers
5.9.3
DCSM_Z2_REGS Registers
5.9.4
DCSM_COMMON_REGS Registers
5.9.5
DCSM_Z1_OTP Registers
5.9.6
DCSM_Z2_OTP Registers
5.9.7
DCSM Registers to Driverlib Functions
6
Background CRC-32 (BGCRC)
6.1
Introduction
6.1.1
BGCRC Related Collateral
6.1.2
Features
6.1.3
Block Diagram
6.1.4
Memory Wait States and Memory Map
6.2
Functional Description
6.2.1
Data Read Unit
6.2.2
CRC-32 Compute Unit
6.2.3
CRC Notification Unit
6.2.3.1
CPU Interrupt and NMI
6.2.4
Operating Modes
6.2.4.1
CRC Mode
6.2.4.2
Scrub Mode
6.2.5
BGCRC Watchdog
6.2.6
Hardware and Software Faults Protection
6.3
Application of the BGCRC
6.3.1
Software Configuration
6.3.2
Decision on Error Response Severity
6.3.3
Decision of Controller for CLA_CRC
6.3.4
Execution of Time Critical Code from Wait-Stated Memories
6.3.5
BGCRC Execution
6.3.6
Debug/Error Response for BGCRC Errors
6.3.7
BGCRC Golden CRC-32 Value Computation
6.4
Software
6.4.1
BGCRC Examples
6.4.1.1
BGCRC CPU Interrupt Example
6.4.1.2
BGCRC Example with Watchdog and Lock
6.4.1.3
CLA-BGCRC Example in CRC mode
6.4.1.4
CLA-BGCRC Example in Scrub Mode
6.5
BGCRC Registers
6.5.1
BGCRC Base Address Table
6.5.2
BGCRC_REGS Registers
6.5.3
BGCRC Registers to Driverlib Functions
7
Control Law Accelerator (CLA)
7.1
Introduction
7.1.1
Features
7.1.2
CLA Related Collateral
7.1.3
Block Diagram
7.2
CLA Interface
7.2.1
CLA Memory
7.2.2
CLA Memory Bus
7.2.3
Shared Peripherals and EALLOW Protection
7.2.4
CLA Tasks and Interrupt Vectors
7.2.5
CLA Software Interrupt to CPU
7.3
CLA, DMA, and CPU Arbitration
7.3.1
CLA Message RAM
7.3.2
CLA Program Memory
7.3.3
CLA Data Memory
7.3.4
Peripheral Registers (ePWM, HRPWM, Comparator)
7.4
CLA Configuration and Debug
7.4.1
Building a CLA Application
7.4.2
Typical CLA Initialization Sequence
7.4.3
Debugging CLA Code
7.4.3.1
Software Breakpoint Support (MDEBUGSTOP1)
7.4.3.2
Legacy Breakpoint Support (MDEBUGSTOP)
7.4.4
CLA Illegal Opcode Behavior
7.4.5
Resetting the CLA
7.5
Pipeline
7.5.1
Pipeline Overview
7.5.2
CLA Pipeline Alignment
7.5.2.1
Code Fragment For MBCNDD, MCCNDD, or MRCNDD
383
7.5.2.2
Code Fragment for Loading MAR0 or MAR1
385
7.5.2.3
ADC Early Interrupt to CLA Response
7.5.3
Parallel Instructions
7.5.3.1
Math Operation with Parallel Load
7.5.3.2
Multiply with Parallel Add
7.5.4
CLA Task Execution Latency
7.6
Software
7.6.1
CLA Examples
7.6.1.1
CLA arcsine(x) using a lookup table (cla_asin_cpu01)
7.6.1.2
CLA arcsine(x) using a lookup table (cla_asin_cpu01)
7.6.1.3
CLA arctangent(x) using a lookup table (cla_atan_cpu01)
7.6.1.4
CLA background nesting task
7.6.1.5
Controlling PWM output using CLA
7.6.1.6
Just-in-time ADC sampling with CLA
7.6.1.7
Optimal offloading of control algorithms to CLA
7.6.1.8
Handling shared resources across C28x and CLA
7.7
Instruction Set
7.7.1
Instruction Descriptions
7.7.2
Addressing Modes and Encoding
7.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
7.8
CLA Registers
7.8.1
CLA Base Address Table
7.8.2
CLA_ONLY_REGS Registers
7.8.3
CLA_SOFTINT_REGS Registers
7.8.4
CLA_REGS Registers
7.8.5
CLA Registers to Driverlib Functions
8
Configurable Logic Block (CLB)
8.1
Introduction
8.1.1
CLB Related Collateral
8.2
Description
8.2.1
CLB Clock
8.3
CLB Input/Output Connection
8.3.1
Overview
8.3.2
CLB Input Selection
8.3.3
CLB Output Selection
8.3.4
CLB Output Signal Multiplexer
8.4
CLB Tile
8.4.1
Static Switch Block
8.4.2
Counter Block
8.4.2.1
Counter Description
8.4.2.2
Counter Operation
8.4.2.3
Serializer Mode
8.4.2.4
Linear Feedback Shift Register (LFSR) Mode
8.4.3
FSM Block
8.4.4
LUT4 Block
8.4.5
Output LUT Block
8.4.6
Asynchronous Output Conditioning (AOC) Block
8.4.7
High Level Controller (HLC)
8.4.7.1
High Level Controller Events
8.4.7.2
High Level Controller Instructions
8.4.7.3
<Src> and <Dest>
8.4.7.4
Operation of the PUSH and PULL Instructions (Overflow and Underflow Detection)
8.5
CPU Interface
8.5.1
Register Description
8.5.2
Non-Memory Mapped Registers
8.6
DMA Access
8.7
CLB Data Export Through SPI RX Buffer
8.8
CLB Pipeline Mode
8.9
Software
8.9.1
CLB Examples
8.9.1.1
CLB Empty Project
8.9.1.2
CLB Combinational Logic
8.9.1.3
CLB GPIO Input Filter
8.9.1.4
CLB Auxilary PWM
8.9.1.5
CLB PWM Protection
8.9.1.6
CLB Event Window
8.9.1.7
CLB Signal Generator
8.9.1.8
CLB State Machine
8.9.1.9
CLB External Signal AND Gate
8.9.1.10
CLB Timer
8.9.1.11
CLB Timer Two States
8.9.1.12
CLB Interrupt Tag
8.9.1.13
CLB Output Intersect
8.9.1.14
CLB PUSH PULL
8.9.1.15
CLB Multi Tile
8.9.1.16
CLB Tile to Tile Delay
8.9.1.17
CLB Glue Logic
8.9.1.18
CLB based One-shot PWM
8.9.1.19
CLB AOC Control
8.9.1.20
CLB AOC Release Control
8.9.1.21
CLB XBARs
8.9.1.22
CLB AOC Control
8.9.1.23
CLB Serializer
8.9.1.24
CLB LFSR
8.9.1.25
CLB Lock Output Mask
8.9.1.26
CLB INPUT Pipeline Mode
8.9.1.27
CLB Clocking and PIPELINE Mode
8.9.1.28
CLB SPI Data Export
8.9.1.29
CLB SPI Data Export DMA
8.9.1.30
CLB Trip Zone Timestamp
8.9.1.31
CLB CRC
8.9.1.32
CLB TDM Serial Port
8.9.1.33
CLB LED Driver
8.10
CLB Registers
8.10.1
CLB Base Address Table
8.10.2
CLB_LOGIC_CONFIG_REGS Registers
8.10.3
CLB_LOGIC_CONTROL_REGS Registers
8.10.4
CLB_DATA_EXCHANGE_REGS Registers
8.10.5
CLB Registers to Driverlib Functions
9
Dual-Clock Comparator (DCC)
9.1
Introduction
9.1.1
Features
9.1.2
Block Diagram
9.2
Module Operation
9.2.1
Configuring DCC Counters
9.2.2
Single-Shot Measurement Mode
9.2.3
Continuous Monitoring Mode
9.2.4
Error Conditions
9.3
Interrupts
9.4
Software
9.4.1
DCC Examples
9.4.1.1
DCC Single shot Clock verification - SINGLE_CORE
9.4.1.2
DCC Single shot Clock measurement - SINGLE_CORE
9.4.1.3
DCC Continuous clock monitoring - SINGLE_CORE
9.5
DCC Registers
9.5.1
DCC Base Address Table
9.5.2
DCC_REGS Registers
9.5.3
DCC Registers to Driverlib Functions
10
Direct Memory Access (DMA)
10.1
Introduction
10.1.1
Features
10.1.2
Block Diagram
10.2
Architecture
10.2.1
Peripheral Interrupt Event Trigger Sources
10.2.2
DMA Bus
10.3
Address Pointer and Transfer Control
10.4
Pipeline Timing and Throughput
10.5
CPU and CLA Arbitration
10.6
Channel Priority
10.6.1
Round-Robin Mode
10.6.2
Channel 1 High-Priority Mode
10.7
Overrun Detection Feature
10.8
Software
10.8.1
DMA Examples
10.8.1.1
DMA GSRAM Transfer (dma_ex1_gsram_transfer)
10.8.1.2
DMA Transfer Shared Peripheral - C28X_DUAL
10.8.1.3
DMA Transfer for Shared Peripheral Example (CPU2) - C28X_DUAL
10.8.1.4
DMA GSRAM Transfer (dma_ex2_gsram_transfer)
10.9
DMA Registers
10.9.1
DMA Base Address Table
10.9.2
DMA_REGS Registers
10.9.3
DMA_CH_REGS Registers
10.9.4
DMA_CLA_SRC_SEL_REGS Registers
10.9.5
DMA Registers to Driverlib Functions
11
External Memory Interface (EMIF)
11.1
Introduction
11.1.1
Purpose of the Peripheral
11.1.2
EMIF Related Collateral
11.1.3
Features
11.1.3.1
Asynchronous Memory Support
11.1.3.2
Synchronous DRAM Memory Support
11.1.4
Functional Block Diagram
11.1.5
Configuring Device Pins
11.2
EMIF Module Architecture
11.2.1
EMIF Clock Control
11.2.2
EMIF Requests
11.2.3
EMIF Signal Descriptions
11.2.4
EMIF Signal Multiplexing Control
11.2.5
SDRAM Controller and Interface
11.2.5.1
SDRAM Commands
11.2.5.2
Interfacing to SDRAM
11.2.5.3
SDRAM Configuration Registers
11.2.5.4
SDRAM Auto-Initialization Sequence
11.2.5.5
SDRAM Configuration Procedure
11.2.5.6
EMIF Refresh Controller
11.2.5.6.1
Determining the Appropriate Value for the RR Field
11.2.5.7
Self-Refresh Mode
11.2.5.8
Power-Down Mode
11.2.5.9
SDRAM Read Operation
11.2.5.10
SDRAM Write Operations
11.2.5.11
Mapping from Logical Address to EMIF Pins
11.2.6
Asynchronous Controller and Interface
11.2.6.1
Interfacing to Asynchronous Memory
11.2.6.2
Accessing Larger Asynchronous Memories
11.2.6.3
Configuring EMIF for Asynchronous Accesses
11.2.6.4
Read and Write Operations in Normal Mode
11.2.6.4.1
Asynchronous Read Operations (Normal Mode)
11.2.6.4.2
Asynchronous Write Operations (Normal Mode)
11.2.6.5
Read and Write Operation in Select Strobe Mode
11.2.6.5.1
Asynchronous Read Operations (Select Strobe Mode)
11.2.6.5.2
Asynchronous Write Operations (Select Strobe Mode)
11.2.6.6
Extended Wait Mode and the EM1WAIT Pin
11.2.7
Data Bus Parking
11.2.8
Reset and Initialization Considerations
11.2.9
Interrupt Support
11.2.9.1
Interrupt Events
11.2.10
DMA Event Support
11.2.11
EMIF Signal Multiplexing
11.2.12
Memory Map
11.2.13
Priority and Arbitration
11.2.14
System Considerations
11.2.14.1
Asynchronous Request Times
11.2.15
Power Management
11.2.15.1
Power Management Using Self-Refresh Mode
11.2.15.2
Power Management Using Power Down Mode
11.2.16
Emulation Considerations
11.3
Example Configuration
11.3.1
Hardware Interface
11.3.2
Software Configuration
11.3.2.1
Configuring the SDRAM Interface
11.3.2.1.1
PLL Programming for EMIF to K4S641632H-TC(L)70 Interface
11.3.2.1.2
SDRAM Timing Register (SDRAM_TR) Settings for EMIF to K4S641632H-TC(L)70 Interface
11.3.2.1.3
SDRAM Self Refresh Exit Timing Register (SDR_EXT_TMNG) Settings for EMIF to K4S641632H-TC(L)70 Interface
11.3.2.1.4
SDRAM Refresh Control Register (SDRAM_RCR) Settings for EMIF to K4S641632H-TC(L)70 Interface
11.3.2.1.5
SDRAM Configuration Register (SDRAM_CR) Settings for EMIF to K4S641632H-TC(L)70 Interface
11.3.2.2
Configuring the Flash Interface
11.3.2.2.1
Asynchronous 1 Configuration Register (ASYNC_CS2_CFG) Settings for EMIF to LH28F800BJE-PTTL90 Interface
11.4
Software
11.4.1
EMIF Examples
11.4.1.1
Pin setup for EMIF module accessing ASRAM.
11.4.1.2
EMIF1 ASYNC module accessing 16bit ASRAM.
11.4.1.3
EMIF1 module accessing 16bit ASRAM as code memory.
11.4.1.4
EMIF1 module accessing 16bit SDRAM using memcpy_fast_far().
11.4.1.5
EMIF1 module accessing 16bit SDRAM then puts into Self Refresh mode before entering Low Power Mode.
11.4.1.6
EMIF1 module accessing 32bit SDRAM using DMA.
11.4.1.7
EMIF1 module accessing 16bit SDRAM using alternate address mapping.
11.5
EMIF Registers
11.5.1
EMIF Base Address Table
11.5.2
EMIF_REGS Registers
11.5.3
EMIF1_CONFIG_REGS Registers
11.5.4
EMIF Registers to Driverlib Functions
12
Flash Module
12.1
Introduction to Flash and OTP Memory
12.1.1
FLASH Related Collateral
12.1.2
Features
12.1.3
Flash Tools
12.1.4
Default Flash Configuration
12.2
Flash Bank, OTP, and Pump
12.3
Flash Wrapper
12.4
Flash and OTP Memory Performance
12.5
Flash Read Interface
12.5.1
C28x-Flash Read Interface
12.5.1.1
Standard Read Mode
12.5.1.2
Prefetch Mode
12.5.1.3
Data Cache
12.5.1.4
Flash Read Operation
12.6
Flash Erase and Program
12.6.1
Flash Controller Access Semaphore
12.6.2
Erase
12.6.3
Program
12.6.4
Verify
12.7
Error Correction Code (ECC) Protection
12.7.1
Single-Bit Data Error
12.7.2
Uncorrectable Error
12.7.3
Mechanism to Check the Correctness of ECC Logic
12.8
Reserved Locations Within Flash and OTP
12.9
Migrating an Application from RAM to Flash
12.10
Procedure to Change the Flash Control Registers
12.11
Software
12.11.1
FLASH Examples
12.11.1.1
Flash Programming with 512-bit AutoECC, DataAndECC, DataOnly and EccOnly - C28X_DUAL
12.11.1.2
Flash Programming with AutoECC, DataAndECC, DataOnly and EccOnly - C28X_DUAL
12.11.1.3
Flash Programming with 512-bit AutoECC, DataAndECC, DataOnly and EccOnly - C28X_DUAL
12.11.1.4
Flash Programming with AutoECC, DataAndECC, DataOnly and EccOnly - C28X_DUAL
12.12
Flash Registers
12.12.1
FLASH Base Address Table
12.12.2
FLASH_CTRL_REGS Registers
12.12.3
FLASH_ECC_REGS Registers
12.12.4
FLASH Registers to Driverlib Functions
13
Embedded Real-time Analysis and Diagnostic (ERAD)
13.1
Introduction
13.1.1
ERAD Related Collateral
13.2
Enhanced Bus Comparator Unit
13.2.1
Enhanced Bus Comparator Unit Operations
13.2.2
Event Masking and Exporting
13.3
System Event Counter Unit
13.3.1
System Event Counter Modes
13.3.1.1
Counting Active Levels Versus Edges
13.3.1.2
Max Mode
13.3.1.3
Cumulative Mode
13.3.1.4
Input Signal Selection
13.3.2
Reset on Event
13.3.3
Operation Conditions
13.4
ERAD Ownership, Initialization and Reset
13.5
ERAD Programming Sequence
13.5.1
Hardware Breakpoint and Hardware Watch Point Programming Sequence
13.5.2
Timer and Counter Programming Sequence
13.6
Cyclic Redundancy Check Unit
13.6.1
CRC Unit Qualifier
13.6.2
CRC Unit Programming Sequence
13.7
Program Counter Trace
13.7.1
Functional Block Diagram
13.7.2
Trace Qualification Modes
13.7.3
Trace Memory
13.7.4
Trace Input Signal Conditioning
13.7.5
PC Trace Software Operation
13.7.6
Trace Operation in Debug Mode
13.8
Software
13.8.1
ERAD Examples
13.8.1.1
ERAD Profiling Interrupts
13.8.1.2
ERAD Profile Function
13.8.1.3
ERAD Profile Function
13.8.1.4
ERAD HWBP Monitor Program Counter
13.8.1.5
ERAD HWBP Monitor Program Counter
13.8.1.6
ERAD Profile Function
13.8.1.7
ERAD HWBP Stack Overflow Detection
13.8.1.8
ERAD HWBP Stack Overflow Detection
13.8.1.9
ERAD Stack Overflow
13.8.1.10
ERAD Profile Interrupts CLA
13.8.1.11
ERAD Profiling Interrupts
13.8.1.12
ERAD Profiling Interrupts
13.8.1.13
ERAD MEMORY ACCESS RESTRICT
13.8.1.14
ERAD INTERRUPT ORDER
13.8.1.15
ERAD AND CLB
13.8.1.16
ERAD PWM PROTECTION
13.9
ERAD Registers
13.9.1
ERAD Base Address Table
13.9.2
ERAD_GLOBAL_REGS Registers
13.9.3
ERAD_HWBP_REGS Registers
13.9.4
ERAD_COUNTER_REGS Registers
13.9.5
ERAD_CRC_GLOBAL_REGS Registers
13.9.6
ERAD_CRC_REGS Registers
13.9.7
PCTRACE_REGS Registers
13.9.8
PCTRACE_BUFFER_REGS Registers
13.9.9
ERAD Registers to Driverlib Functions
14
General-Purpose Input/Output (GPIO)
14.1
Introduction
14.1.1
GPIO Related Collateral
14.2
Configuration Overview
14.3
Digital Inputs on ADC Pins (AIOs)
14.4
Digital Inputs and Outputs on ADC Pins (AGPIOs)
14.5
Digital General-Purpose I/O Control
14.6
Input Qualification
14.6.1
No Synchronization (Asynchronous Input)
14.6.2
Synchronization to SYSCLKOUT Only
14.6.3
Qualification Using a Sampling Window
14.7
USB Signals
14.8
GPIO and Peripheral Muxing
14.8.1
GPIO Muxing
14.8.2
Peripheral Muxing
14.9
Internal Pullup Configuration Requirements
14.10
Software
14.10.1
GPIO Examples
14.10.1.1
Device GPIO Toggle - SINGLE_CORE
14.10.1.2
XINT/XBAR example - SINGLE_CORE
14.10.2
LED Examples
14.10.2.1
LED Blinky Example - MULTI_CORE
14.10.2.2
LED Blinky Example (CPU1,CPU3) - MULTI_CORE
14.10.2.3
LED Blinky example - SINGLE_CORE
14.10.2.4
LED Blinky Example (CPU1|CPU2|CPU3) - MULTI_CORE
14.10.2.5
LED Blinky Example (CPU2) - MULTI_CORE
14.10.2.6
LED Blinky Example (CPU3) - MULTI_CORE
14.11
GPIO Registers
14.11.1
GPIO Base Address Table
14.11.2
GPIO_CTRL_REGS Registers
14.11.3
GPIO_DATA_REGS Registers
14.11.4
GPIO_DATA_READ_REGS Registers
14.11.5
GPIO Registers to Driverlib Functions
15
Interprocessor Communication (IPC)
15.1
Introduction
15.2
Message RAMs
15.3
IPC Flags and Interrupts
15.4
IPC Command Registers
15.5
Free-Running Counter
15.6
IPC Communication Protocol
15.7
Software
15.7.1
IPC Examples
15.7.1.1
IPC basic message passing example with interrupt - MULTI_CORE
15.7.1.2
IPC basic message passing example with interrupt - MULTI_CORE
15.7.1.3
IPC basic message passing example with interrupt - MULTI_CORE
15.7.1.4
IPC basic message passing example with interrupt - MULTI_CORE
15.8
IPC Registers
15.8.1
IPC Base Address Table
15.8.2
CPU1TOCPU2_IPC_REGS_CPU1VIEW Registers
15.8.3
CPU1TOCPU2_IPC_REGS_CPU2VIEW Registers
15.8.4
IPC Registers to Driverlib Functions
16
Crossbar (X-BAR)
16.1
Input X-BAR, ICL XBAR, MINDB XBAR, and CLB Input X-BAR
16.1.1
CLB Input X-BAR
16.1.2
ICL and MINDB X-BAR
16.2
ePWM , CLB, and GPIO Output X-BAR
16.2.1
ePWM X-BAR
16.2.1.1
ePWM X-BAR Architecture
16.2.2
CLB X-BAR
16.2.2.1
CLB X-BAR Architecture
16.2.3
GPIO Output X-BAR
16.2.3.1
GPIO Output X-BAR Architecture
16.2.4
CLB Output X-BAR
16.2.4.1
CLB Output X-BAR Architecture
16.2.5
X-BAR Flags
16.3
XBAR Registers
16.3.1
XBAR Base Address Table
16.3.2
EPWM_XBAR_REGS Registers
16.3.3
INPUT_XBAR_REGS Registers
16.3.4
XBAR_REGS Registers
16.3.5
MINDB_XBAR_REGS Registers
16.3.6
ICL_XBAR_REGS Registers
16.3.7
CLB_XBAR_REGS Registers
16.3.8
OUTPUT_XBAR_EXT64_REGS Registers
16.3.9
OUTPUT_XBAR_REGS Registers
16.3.10
Register to Driverlib Function Mapping
16.3.10.1
EPWMXBAR Registers to Driverlib Functions
16.3.10.2
INPUTXBAR Registers to Driverlib Functions
16.3.10.3
XBAR Registers to Driverlib Functions
16.3.10.4
MINDBXBAR Registers to Driverlib Functions
16.3.10.5
ICLXBAR Registers to Driverlib Functions
16.3.10.6
CLBXBAR Registers to Driverlib Functions
16.3.10.7
OUTPUTXBAR Registers to Driverlib Functions
17
Analog Subsystem
17.1
Introduction
17.1.1
Features
17.1.2
Block Diagram
17.2
Optimizing Power-Up Time
17.3
Digital Inputs on ADC Pins (AIOs)
17.4
Digital Inputs and Outputs on ADC Pins (AGPIOs)
17.5
Analog Subsystem Registers
17.5.1
ASBSYS Base Address Table
17.5.2
ANALOG_SUBSYS_REGS Registers
18
Analog-to-Digital Converter (ADC)
18.1
Introduction
18.1.1
ADC Related Collateral
18.1.2
Features
18.1.3
Block Diagram
18.2
ADC Configurability
18.2.1
Clock Configuration
18.2.2
Resolution
18.2.3
Voltage Reference
18.2.3.1
External Reference Mode
18.2.3.2
Internal Reference Mode
18.2.3.3
Ganged References
18.2.3.4
Selecting Reference Mode
18.2.4
Signal Mode
18.2.5
Expected Conversion Results
18.2.6
Interpreting Conversion Results
18.3
SOC Principle of Operation
18.3.1
SOC Configuration
18.3.2
Trigger Operation
18.3.2.1
Global Software Trigger
18.3.2.2
Trigger Repeaters
18.3.2.2.1
Oversampling Mode
18.3.2.2.2
Undersampling Mode
18.3.2.2.3
Trigger Phase Delay
18.3.2.2.4
Re-trigger Spread
18.3.2.2.5
Trigger Repeater Configuration
18.3.2.2.5.1
Register Shadow Updates
18.3.2.2.6
Re-Trigger Logic
18.3.2.2.7
Multi-Path Triggering Behavior
18.3.3
ADC Acquisition (Sample and Hold) Window
18.3.4
ADC Input Models
18.3.5
Channel Selection
18.3.5.1
External Channel Selection
18.3.5.1.1
External Channel Selection Timing
18.4
SOC Configuration Examples
18.4.1
Single Conversion from ePWM Trigger
18.4.2
Oversampled Conversion from ePWM Trigger
18.4.3
Multiple Conversions from CPU Timer Trigger
18.4.4
Software Triggering of SOCs
18.5
ADC Conversion Priority
18.6
Burst Mode
18.6.1
Burst Mode Example
18.6.2
Burst Mode Priority Example
18.7
EOC and Interrupt Operation
18.7.1
Interrupt Overflow
18.7.2
Continue to Interrupt Mode
18.7.3
Early Interrupt Configuration Mode
18.8
Post-Processing Blocks
18.8.1
PPB Offset Correction
18.8.2
PPB Error Calculation
18.8.3
PPB Limit Detection and Zero-Crossing Detection
18.8.4
PPB Sample Delay Capture
18.8.5
PPB Oversampling
18.8.5.1
Accumulation, Minimum, Maximum, and Average Functions
18.8.5.2
Outlier Rejection
18.9
Result Safety Checker
18.9.1
Result Safety Checker Operation
18.9.2
Result Safety Checker Interrupts and Events
18.10
Opens/Shorts Detection Circuit (OSDETECT)
18.10.1
Implementation
18.10.2
Detecting an Open Input Pin
18.10.3
Detecting a Shorted Input Pin
18.11
Power-Up Sequence
18.12
ADC Calibration
18.12.1
ADC Zero Offset Calibration
18.13
ADC Timings
18.13.1
ADC Timing Diagrams
18.13.2
Post-Processing Block Timings
18.14
Additional Information
18.14.1
Ensuring Synchronous Operation
18.14.1.1
Basic Synchronous Operation
18.14.1.2
Synchronous Operation with Multiple Trigger Sources
18.14.1.3
Synchronous Operation with Uneven SOC Numbers
18.14.1.4
Synchronous Operation with Different Resolutions
18.14.1.5
Non-overlapping Conversions
18.14.2
Choosing an Acquisition Window Duration
18.14.3
Achieving Simultaneous Sampling
18.14.4
Result Register Mapping
18.14.5
Internal Temperature Sensor
18.14.6
Designing an External Reference Circuit
18.14.7
ADC-DAC Loopback Testing
18.14.8
Internal Test Mode
18.14.9
ADC Gain and Offset Calibration
18.15
Software
18.15.1
ADC Examples
18.15.1.1
ADC Software Triggering - SINGLE_CORE
18.15.1.2
ADC ePWM Triggering - SINGLE_CORE
18.15.1.3
ADC Temperature Sensor Conversion - SINGLE_CORE
18.15.1.4
ADC Synchronous SOC Software Force (adc_soc_software_sync) - SINGLE_CORE
18.15.1.5
ADC Continuous Triggering (adc_soc_continuous) - SINGLE_CORE
18.15.1.6
ADC Continuous Conversions Read by DMA (adc_soc_continuous_dma) - SINGLE_CORE
18.15.1.7
ADC PPB Offset (adc_ppb_offset) - SINGLE_CORE
18.15.1.8
ADC PPB Limits (adc_ppb_limits) - SINGLE_CORE
18.15.1.9
ADC PPB Delay Capture (adc_ppb_delay) - SINGLE_CORE
18.15.1.10
ADC ePWM Triggering Multiple SOC - SINGLE_CORE
18.15.1.11
ADC Burst Mode - SINGLE_CORE
18.15.1.12
ADC Burst Mode Oversampling - SINGLE_CORE
18.15.1.13
ADC SOC Oversampling - SINGLE_CORE
18.15.1.14
ADC PPB PWM trip (adc_ppb_pwm_trip) - SINGLE_CORE
18.15.1.15
ADC Trigger Repeater Oversampling - SINGLE_CORE
18.15.1.16
ADC Trigger Repeater Undersampling - SINGLE_CORE
18.15.1.17
ADC Safety Checker - SINGLE_CORE
18.16
ADC Registers
18.16.1
ADC Base Address Table
18.16.2
ADC_RESULT_REGS Registers
18.16.3
ADC_REGS Registers
18.16.4
ADC_SAFECHECK_INTEVT_REGS Registers
18.16.5
ADC_SAFECHECK_REGS Registers
18.16.6
ADC Registers to Driverlib Functions
19
Buffered Digital-to-Analog Converter (DAC)
19.1
Introduction
19.1.1
DAC Related Collateral
19.1.2
Features
19.1.3
Block Diagram
19.2
Using the DAC
19.2.1
Initialization Sequence
19.2.2
DAC Offset Adjustment
19.2.3
EPWMSYNCPER Signal
19.3
Lock Registers
19.4
Software
19.4.1
DAC Examples
19.4.1.1
Buffered DAC Enable - SINGLE_CORE
19.4.1.2
Buffered DAC Random - SINGLE_CORE
19.5
DAC Registers
19.5.1
DAC Base Address Table
19.5.2
DAC_REGS Registers
19.5.3
DAC Registers to Driverlib Functions
20
Comparator Subsystem (CMPSS)
20.1
Introduction
20.1.1
CMPSS Related Collateral
20.1.2
Features
20.1.3
Block Diagram
20.2
Comparator
20.3
Reference DAC
20.4
Ramp Generator
20.4.1
Ramp Generator Overview
20.4.2
Ramp Generator Behavior
20.4.3
Ramp Generator Behavior at Corner Cases
20.5
Digital Filter
20.5.1
Filter Initialization Sequence
20.6
Using the CMPSS
20.6.1
LATCHCLR, EPWMSYNCPER, and EPWMBLANK Signals
20.6.2
Synchronizer, Digital Filter, and Latch Delays
20.6.3
Calibrating the CMPSS
20.6.4
Enabling and Disabling the CMPSS Clock
20.7
Software
20.7.1
CMPSS Examples
20.7.1.1
CMPSS Asynchronous Trip - SINGLE_CORE
20.7.1.2
CMPSS Digital Filter Configuration - SINGLE_CORE
20.8
CMPSS Registers
20.8.1
CMPSS Base Address Table
20.8.2
CMPSS_REGS Registers
20.8.3
CMPSS Registers to Driverlib Functions
21
Enhanced Capture (eCAP) and High Resolution Capture (HRCAP)
21.1
Introduction
21.1.1
Features
21.1.2
ECAP Related Collateral
21.2
Description
21.3
Configuring Device Pins for the eCAP
21.4
Capture and APWM Operating Mode
21.5
Capture Mode Description
21.5.1
Event Prescaler
21.5.2
Glitch Filter
21.5.3
Edge Polarity Select and Qualifier
21.5.4
Continuous/One-Shot Control
21.5.5
32-Bit Counter and Phase Control
21.5.6
CAP1-CAP4 Registers
21.5.7
eCAP Synchronization
21.5.7.1
Example 1 - Using SWSYNC with ECAP Module
21.5.8
Interrupt Control
21.5.9
DMA Interrupt
21.5.10
ADC SOC Event
21.5.11
Shadow Load and Lockout Control
21.5.12
APWM Mode Operation
21.5.13
Signal Monitoring Unit
21.5.13.1
Pulse Width and Period Monitoring
21.5.13.2
Edge Monitoring
21.6
Application of the eCAP Module
21.6.1
Example 1 - Absolute Time-Stamp Operation Rising-Edge Trigger
21.6.2
Example 2 - Absolute Time-Stamp Operation Rising- and Falling-Edge Trigger
21.6.3
Example 3 - Time Difference (Delta) Operation Rising-Edge Trigger
21.6.4
Example 4 - Time Difference (Delta) Operation Rising- and Falling-Edge Trigger
21.7
Application of the APWM Mode
21.7.1
Example 1 - Simple PWM Generation (Independent Channels)
21.8
High Resolution Capture (HRCAP) Module
21.8.1
Introduction
21.8.1.1
HRCAP Related Collateral
21.8.1.2
Features
21.8.1.3
Description
21.8.2
Operational Details
21.8.2.1
HRCAP Clocking
21.8.2.2
HRCAP Initialization Sequence
21.8.2.3
HRCAP Interrupts
21.8.2.4
HRCAP Calibration
21.8.2.4.1
Applying the Scale Factor
21.8.3
Known Exceptions
21.9
Software
21.9.1
ECAP Examples
21.9.1.1
eCAP APWM Example - SINGLE_CORE
21.9.1.2
eCAP Capture PWM Example - SINGLE_CORE
21.9.1.3
eCAP APWM Phase-shift Example - SINGLE_CORE
21.9.2
HRCAP Examples
21.9.2.1
HRCAP Capture and Calibration Example - SINGLE_CORE
21.10
eCAP Registers
21.10.1
ECAP Base Address Table
21.10.2
ECAP_REGS Registers
21.10.3
ECAP_SIGNAL_MONITORING Registers
21.10.4
ECAP Registers to Driverlib Functions
21.11
HRCAP Registers
21.11.1
HRCAP Base Address Table
21.11.2
HRCAP_REGS Registers
21.11.3
HRCAP Registers to Driverlib Functions
22
Enhanced Pulse Width Modulator (ePWM)
22.1
Introduction
22.1.1
EPWM Related Collateral
22.1.2
Submodule Overview
22.2
Configuring Device Pins
22.3
ePWM Modules Overview
22.4
Time-Base (TB) Submodule
22.4.1
Purpose of the Time-Base Submodule
22.4.2
Controlling and Monitoring the Time-Base Submodule
22.4.3
Calculating PWM Period and Frequency
22.4.3.1
Time-Base Period Shadow Register
22.4.3.2
Time-Base Clock Synchronization
22.4.3.3
Time-Base Counter Synchronization
22.4.3.4
ePWM SYNC Selection
22.4.4
Phase Locking the Time-Base Clocks of Multiple ePWM Modules
22.4.5
Simultaneous Writes to TBPRD and CMPx Registers Between ePWM Modules
22.4.6
Time-Base Counter Modes and Timing Waveforms
22.4.7
Global Load
22.4.7.1
Global Load Pulse Pre-Scalar
22.4.7.2
One-Shot Load Mode
22.4.7.3
One-Shot Sync Mode
22.5
Counter-Compare (CC) Submodule
22.5.1
Purpose of the Counter-Compare Submodule
22.5.2
Controlling and Monitoring the Counter-Compare Submodule
22.5.3
Operational Highlights for the Counter-Compare Submodule
22.5.4
Count Mode Timing Waveforms
22.6
Action-Qualifier (AQ) Submodule
22.6.1
Purpose of the Action-Qualifier Submodule
22.6.2
Action-Qualifier Submodule Control and Status Register Definitions
22.6.3
Action-Qualifier Event Priority
22.6.4
AQCTLA and AQCTLB Shadow Mode Operations
22.6.5
Configuration Requirements for Common Waveforms
22.7
XCMP Complex Waveform Generator Mode
22.7.1
XCMP Allocation to CMPA and CMPB
22.7.2
XCMP Shadow Buffers
22.7.3
XCMP Operation
22.8
Dead-Band Generator (DB) Submodule
22.8.1
Purpose of the Dead-Band Submodule
22.8.2
Dead-band Submodule Additional Operating Modes
22.8.3
Operational Highlights for the Dead-Band Submodule
22.9
PWM Chopper (PC) Submodule
22.9.1
Purpose of the PWM Chopper Submodule
22.9.2
Operational Highlights for the PWM Chopper Submodule
22.9.3
Waveforms
22.9.3.1
One-Shot Pulse
22.9.3.2
Duty Cycle Control
22.10
Trip-Zone (TZ) Submodule
22.10.1
Purpose of the Trip-Zone Submodule
22.10.2
Operational Highlights for the Trip-Zone Submodule
22.10.2.1
Trip-Zone Configurations
22.10.3
Generating Trip Event Interrupts
22.11
Diode Emulation (DE) Submodule
22.11.1
DEACTIVE Mode
22.11.2
Exiting DE Mode
22.11.3
Re-Entering DE Mode
22.11.4
DE Monitor
22.12
Minimum Dead-Band (MINDB) + Illegal Combination Logic (ICL) Submodules
22.12.1
Minimum Dead-Band (MINDB)
22.12.2
Illegal Combo Logic (ICL)
22.13
Event-Trigger (ET) Submodule
22.13.1
Operational Overview of the ePWM Event-Trigger Submodule
22.14
Digital Compare (DC) Submodule
22.14.1
Purpose of the Digital Compare Submodule
22.14.2
Enhanced Trip Action Using CMPSS
22.14.3
Using CMPSS to Trip the ePWM on a Cycle-by-Cycle Basis
22.14.4
Operation Highlights of the Digital Compare Submodule
22.14.4.1
Digital Compare Events
22.14.4.2
Event Filtering
22.14.4.3
Valley Switching
22.14.4.4
Event Detection
22.14.4.4.1
Input Signal Detection
22.14.4.4.2
MIN and MAX Detection Circuit
22.15
ePWM Crossbar (X-BAR)
22.16
Applications to Power Topologies
22.16.1
Overview of Multiple Modules
22.16.2
Key Configuration Capabilities
22.16.3
Controlling Multiple Buck Converters With Independent Frequencies
22.16.4
Controlling Multiple Buck Converters With Same Frequencies
22.16.5
Controlling Multiple Half H-Bridge (HHB) Converters
22.16.6
Controlling Dual 3-Phase Inverters for Motors (ACI and PMSM)
22.16.7
Practical Applications Using Phase Control Between PWM Modules
22.16.8
Controlling a 3-Phase Interleaved DC/DC Converter
22.16.9
Controlling Zero Voltage Switched Full Bridge (ZVSFB) Converter
22.16.10
Controlling a Peak Current Mode Controlled Buck Module
22.16.11
Controlling H-Bridge LLC Resonant Converter
22.17
Register Lock Protection
22.18
High-Resolution Pulse Width Modulator (HRPWM)
22.18.1
Operational Description of HRPWM
22.18.1.1
Controlling the HRPWM Capabilities
22.18.1.2
HRPWM Source Clock
22.18.1.3
Configuring the HRPWM
22.18.1.4
Configuring High-Resolution in Deadband Rising-Edge and Falling-Edge Delay
22.18.1.5
Principle of Operation
22.18.1.5.1
Edge Positioning
22.18.1.5.2
Scaling Considerations
22.18.1.5.3
Duty Cycle Range Limitation
22.18.1.5.4
High-Resolution Period
22.18.1.5.4.1
High-Resolution Period Configuration
22.18.1.6
Deadband High-Resolution Operation
22.18.1.7
Scale Factor Optimizing Software (SFO)
22.18.1.8
HRPWM Examples Using Optimized Assembly Code
22.18.1.8.1
#Defines for HRPWM Header Files
22.18.1.8.2
Implementing a Simple Buck Converter
22.18.1.8.2.1
HRPWM Buck Converter Initialization Code
22.18.1.8.2.2
HRPWM Buck Converter Run-Time Code
22.18.1.8.3
Implementing a DAC Function Using an R+C Reconstruction Filter
22.18.1.8.3.1
PWM DAC Function Initialization Code
22.18.1.8.3.2
PWM DAC Function Run-Time Code
22.18.2
SFO Library Software - SFO_TI_Build_V8.lib
22.18.2.1
Scale Factor Optimizer Function - int SFO()
22.18.2.2
Software Usage
22.18.2.2.1
A Sample of How to Add "Include" Files
1198
22.18.2.2.2
Declaring an Element
1200
22.18.2.2.3
Initializing With a Scale Factor Value
1202
22.18.2.2.4
SFO Function Calls
22.19
Software
22.19.1
EPWM Examples
22.19.1.1
ePWM Trip Zone - SINGLE_CORE
22.19.1.2
ePWM Up Down Count Action Qualifier - SINGLE_CORE
22.19.1.3
ePWM Synchronization - SINGLE_CORE
22.19.1.4
ePWM Digital Compare - SINGLE_CORE
22.19.1.5
ePWM Digital Compare Event Filter Blanking Window - SINGLE_CORE
22.19.1.6
ePWM Valley Switching - SINGLE_CORE
22.19.1.7
ePWM Digital Compare Edge Filter - SINGLE_CORE
22.19.1.8
ePWM Deadband - SINGLE_CORE
22.19.1.9
ePWM DMA - SINGLE_CORE
22.19.1.10
ePWM Chopper - SINGLE_CORE
22.19.1.11
EPWM Configure Signal - SINGLE_CORE
22.19.1.12
Realization of Monoshot mode - SINGLE_CORE
22.19.1.13
EPWM Action Qualifier (epwm_up_aq) - SINGLE_CORE
22.19.1.14
ePWM XCMP Mode - SINGLE_CORE
22.19.1.15
ePWM Event Detection - SINGLE_CORE
22.19.2
HRPWM Examples
22.19.2.1
HRPWM Duty Control with SFO
22.19.2.2
HRPWM Slider
22.19.2.3
HRPWM Period Control
22.19.2.4
HRPWM Duty Control with UPDOWN Mode
22.19.2.5
HRPWM Slider Test
22.19.2.6
HRPWM Duty Up Count
22.19.2.7
HRPWM Period Up-Down Count
22.20
ePWM Registers
22.20.1
EPWM Base Address Table
22.20.2
EPWM_REGS Registers
22.20.3
EPWM_XCMP_REGS Registers
22.20.4
DE_REGS Registers
22.20.5
MINDB_LUT_REGS Registers
22.20.6
HRPWMCAL_REGS Registers
22.20.7
Register to Driverlib Function Mapping
22.20.7.1
EPWM Registers to Driverlib Functions
22.20.7.2
HRPWM Registers to Driverlib Functions
22.20.7.3
HRPWMCAL Registers to Driverlib Functions
23
Enhanced Quadrature Encoder Pulse (eQEP)
23.1
Introduction
23.1.1
EQEP Related Collateral
23.2
Configuring Device Pins
23.3
Description
23.3.1
EQEP Inputs
23.3.2
Functional Description
23.3.3
eQEP Memory Map
23.4
Quadrature Decoder Unit (QDU)
23.4.1
Position Counter Input Modes
23.4.1.1
Quadrature Count Mode
23.4.1.2
Direction-Count Mode
23.4.1.3
Up-Count Mode
23.4.1.4
Down-Count Mode
23.4.2
eQEP Input Polarity Selection
23.4.3
Position-Compare Sync Output
23.5
Position Counter and Control Unit (PCCU)
23.5.1
Position Counter Operating Modes
23.5.1.1
Position Counter Reset on Index Event (QEPCTL[PCRM]Â =Â 00)
23.5.1.2
Position Counter Reset on Maximum Position (QEPCTL[PCRM]Â =Â 01)
23.5.1.3
Position Counter Reset on the First Index Event (QEPCTL[PCRM] = 10)
23.5.1.4
Position Counter Reset on Unit Time-out Event (QEPCTL[PCRM] = 11)
23.5.2
Position Counter Latch
23.5.2.1
Index Event Latch
23.5.2.2
Strobe Event Latch
23.5.3
Position Counter Initialization
23.5.4
eQEP Position-compare Unit
23.6
eQEP Edge Capture Unit
23.7
eQEP Watchdog
23.8
eQEP Unit Timer Base
23.9
QMA Module
23.9.1
Modes of Operation
23.9.1.1
QMA Mode-1 (QMACTRL[MODE] = 1)
23.9.1.2
QMA Mode-2 (QMACTRL[MODE] = 2)
23.9.2
Interrupt and Error Generation
23.10
eQEP Interrupt Structure
23.11
Software
23.11.1
EQEP Examples
23.11.1.1
Frequency Measurement Using eQEP via unit timeout interrupt - SINGLE_CORE
23.11.1.2
Motor speed and direction measurement using eQEP via unit timeout interrupt - SINGLE_CORE
23.12
eQEP Registers
23.12.1
EQEP Base Address Table
23.12.2
EQEP_REGS Registers
23.12.3
EQEP Registers to Driverlib Functions
24
Sigma Delta Filter Module (SDFM)
24.1
Introduction
24.1.1
SDFM Related Collateral
24.1.2
Features
24.1.3
Block Diagram
24.2
Configuring Device Pins
24.3
Input Qualification
24.4
Input Control Unit
24.5
SDFM Clock Control
24.6
Sinc Filter
24.6.1
Data Rate and Latency of the Sinc Filter
24.7
Data (Primary) Filter Unit
24.7.1
32-bit or 16-bit Data Filter Output Representation
24.7.2
Data FIFO
24.7.3
SDSYNC Event
24.8
Comparator (Secondary) Filter Unit
24.8.1
Higher Threshold (HLT) Comparators
24.8.2
Lower Threshold (LLT) Comparators
24.8.3
Digital Filter
24.9
Theoretical SDFM Filter Output
24.10
Interrupt Unit
24.10.1
SDFM (SDyERR) Interrupt Sources
24.10.2
Data Ready (DRINT) Interrupt Sources
24.11
Software
24.11.1
SDFM Examples
24.11.1.1
SDFM Filter Sync CPU
24.11.1.2
SDFM Filter Sync CLA
24.11.1.3
SDFM Filter Sync DMA
24.11.1.4
SDFM PWM Sync
24.11.1.5
SDFM Type 1 Filter FIFO
24.11.1.6
SDFM Filter Sync CLA
24.12
SDFM Registers
24.12.1
SDFM Base Address Table
24.12.2
SDFM_REGS Registers
24.12.3
SDFM Registers to Driverlib Functions
25
Controller Area Network (CAN)
25.1
Introduction
25.1.1
DCAN Related Collateral
25.1.2
Features
25.1.3
Block Diagram
25.1.3.1
CAN Core
25.1.3.2
Message Handler
25.1.3.3
Message RAM
25.1.3.4
Registers and Message Object Access (IFx)
25.2
Functional Description
25.2.1
Configuring Device Pins
25.2.2
Address/Data Bus Bridge
25.3
Operating Modes
25.3.1
Initialization
25.3.2
CAN Message Transfer (Normal Operation)
25.3.2.1
Disabled Automatic Retransmission
25.3.2.2
Auto-Bus-On
25.3.3
Test Modes
25.3.3.1
Silent Mode
25.3.3.2
Loopback Mode
25.3.3.3
External Loopback Mode
25.3.3.4
Loopback Combined with Silent Mode
25.4
Multiple Clock Source
25.5
Interrupt Functionality
25.5.1
Message Object Interrupts
25.5.2
Status Change Interrupts
25.5.3
Error Interrupts
25.5.4
Peripheral Interrupt Expansion (PIE) Module Nomenclature for DCAN Interrupts
25.5.5
Interrupt Topologies
25.6
DMA Functionality
25.7
Parity Check Mechanism
25.7.1
Behavior on Parity Error
25.8
Debug Mode
25.9
Module Initialization
25.10
Configuration of Message Objects
25.10.1
Configuration of a Transmit Object for Data Frames
25.10.2
Configuration of a Transmit Object for Remote Frames
25.10.3
Configuration of a Single Receive Object for Data Frames
25.10.4
Configuration of a Single Receive Object for Remote Frames
25.10.5
Configuration of a FIFO Buffer
25.11
Message Handling
25.11.1
Message Handler Overview
25.11.2
Receive/Transmit Priority
25.11.3
Transmission of Messages in Event Driven CAN Communication
25.11.4
Updating a Transmit Object
25.11.5
Changing a Transmit Object
25.11.6
Acceptance Filtering of Received Messages
25.11.7
Reception of Data Frames
25.11.8
Reception of Remote Frames
25.11.9
Reading Received Messages
25.11.10
Requesting New Data for a Receive Object
25.11.11
Storing Received Messages in FIFO Buffers
25.11.12
Reading from a FIFO Buffer
25.12
CAN Bit Timing
25.12.1
Bit Time and Bit Rate
25.12.1.1
Synchronization Segment
25.12.1.2
Propagation Time Segment
25.12.1.3
Phase Buffer Segments and Synchronization
25.12.1.4
Oscillator Tolerance Range
25.12.2
Configuration of the CAN Bit Timing
25.12.2.1
Calculation of the Bit Timing Parameters
25.12.2.2
Example for Bit Timing at High Baudrate
25.12.2.3
Example for Bit Timing at Low Baudrate
25.13
Message Interface Register Sets
25.13.1
Message Interface Register Sets 1 and 2 (IF1 and IF2)
25.13.2
Message Interface Register Set 3 (IF3)
25.14
Message RAM
25.14.1
Structure of Message Objects
25.14.2
Addressing Message Objects in RAM
25.14.3
Message RAM Representation in Debug Mode
25.15
Software
25.15.1
CAN Examples
25.15.1.1
CAN Dual Core Example - C28X_DUAL
25.15.1.2
CAN External Loopback
25.15.1.3
CAN External Loopback - C28X_DUAL
25.15.1.4
CAN External Loopback with Interrupts
25.15.1.5
CAN External Loopback with Interrupts - C28X_DUAL
25.15.1.6
CAN External Loopback with DMA
25.15.1.7
CAN Transmit and Receive Configurations
25.15.1.8
CAN Error Generation Example
25.15.1.9
CAN Remote Request Loopback
25.15.1.10
CAN example that illustrates the usage of Mask registers
25.16
CAN Registers
25.16.1
CAN Base Address Table
25.16.2
CAN_REGS Registers
25.16.3
CAN Registers to Driverlib Functions
26
EtherCAT® SubordinateDevice Controller (ESC)
26.1
Introduction
26.1.1
ECAT Related Collateral
26.1.2
ESC Features
26.1.3
ESC Subsystem Integrated Features
26.1.4
F28P65x ESC versus Beckhoff ET1100
26.1.5
EtherCAT IP Block Diagram
26.1.6
ESC Functional Blocks
26.1.6.1
Interface to EtherCAT MainDevice
26.1.6.2
Process Data Interface
26.1.6.3
General-Purpose Inputs and Outputs
26.1.6.4
EtherCAT Processing Unit (EPU)
26.1.6.5
Fieldbus Memory Management Unit (FMMU)
26.1.6.6
Sync Manager
26.1.6.7
Monitoring
26.1.6.8
Reset Controller
26.1.6.9
PHY Management
26.1.6.10
Distributed Clock (DC)
26.1.6.11
EEPROM
26.1.6.12
Status / LEDs
26.1.7
EtherCAT Physical Layer
26.1.7.1
MII Interface
26.1.7.2
PHY Management Interface
26.1.7.2.1
PHY Address Configuration
26.1.7.2.2
PHY Reset Signal
26.1.7.2.3
PHY Clock
26.1.8
EtherCAT Protocol
26.1.9
EtherCAT State Machine (ESM)
26.1.10
More Information on EtherCAT
26.1.11
Beckhoff® Automation EtherCAT IP Errata
26.2
ESC and ESCSS Description
26.2.1
ESC RAM Parity and Memory Address Maps
26.2.1.1
ESC RAM Parity Logic
26.2.1.2
CPU1 and CPU2 ESC Memory Address Map
26.2.2
Local Host Communication
26.2.2.1
Byte Accessibility Through PDI
26.2.2.2
Software Details for Operation Across Clock Domains
26.2.3
Debug Emulation Mode Operation
26.2.4
ESC SubSystem
26.2.4.1
CPU1 Bus Interface
26.2.4.2
CPU2 Bus Interface
26.2.5
Interrupts and Interrupt Mapping
26.2.6
Power, Clocks, and Resets
26.2.6.1
Power
26.2.6.2
Clocking
26.2.6.3
Resets
26.2.6.3.1
Chip-Level Reset
26.2.6.3.2
EtherCAT Soft Resets
26.2.6.3.3
Reset Out (RESET_OUT)
26.2.7
LED Controls
26.2.8
SubordinateDevice Node Configuration and EEPROM
26.2.9
General-Purpose Inputs and Outputs
26.2.9.1
General-Purpose Inputs
26.2.9.2
General-Purpose Output
26.2.10
Distributed Clocks – Sync and Latch
26.2.10.1
Clock Synchronization
26.2.10.2
SYNC Signals
26.2.10.2.1
Seeking Host Intervention
26.2.10.3
LATCH Signals
26.2.10.3.1
Timestamping
26.2.10.4
Device Control and Synchronization
26.2.10.4.1
Synchronization of PWM
26.2.10.4.2
ECAP SYNC Inputs
26.2.10.4.3
SYNC Signal Conditioning and Rerouting
26.3
Software Initialization Sequence and Allocating Ownership
26.4
ESC Configuration Constants
26.5
EtherCAT IP Registers
26.5.1
ETHERCAT Base Address Table
26.5.2
ESCSS_REGS Registers
26.5.3
ESCSS_CONFIG_REGS Registers
26.5.4
ESC_SS Registers to Driverlib Functions
27
Fast Serial Interface (FSI)
27.1
Introduction
27.1.1
FSI Related Collateral
27.1.2
FSI Features
27.2
System-level Integration
27.2.1
CPU Interface
27.2.2
Signal Description
27.2.2.1
Configuring Device Pins
27.2.3
FSI Interrupts
27.2.3.1
Transmitter Interrupts
27.2.3.2
Receiver Interrupts
27.2.3.3
Configuring Interrupts
27.2.3.4
Handling Interrupts
27.2.4
CLA Task Triggering
27.2.5
DMA Interface
27.2.6
External Frame Trigger Mux
27.3
FSI Functional Description
27.3.1
Introduction to Operation
27.3.2
FSI Transmitter Module
27.3.2.1
Initialization
27.3.2.2
FSI_TX Clocking
27.3.2.3
Transmitting Frames
27.3.2.3.1
Software Triggered Frames
27.3.2.3.2
Externally Triggered Frames
27.3.2.3.3
Ping Frame Generation
27.3.2.3.3.1
Automatic Ping Frames
27.3.2.3.3.2
Software Triggered Ping Frame
27.3.2.3.3.3
Externally Triggered Ping Frame
27.3.2.3.4
Transmitting Frames with DMA
27.3.2.4
Transmit Buffer Management
27.3.2.5
CRC Submodule
27.3.2.6
Conditions in Which the Transmitter Must Undergo a Soft Reset
27.3.2.7
Reset
27.3.3
FSI Receiver Module
27.3.3.1
Initialization
27.3.3.2
FSI_RX Clocking
27.3.3.3
Receiving Frames
27.3.3.3.1
Receiving Frames with DMA
27.3.3.4
Ping Frame Watchdog
27.3.3.5
Frame Watchdog
27.3.3.6
Delay Line Control
27.3.3.7
Buffer Management
27.3.3.8
CRC Submodule
27.3.3.9
Using the Zero Bits of the Receiver Tag Registers
27.3.3.10
Conditions in Which the Receiver Must Undergo a Soft Reset
27.3.3.11
FSI_RX Reset
27.3.4
Frame Format
27.3.4.1
FSI Frame Phases
27.3.4.2
Frame Types
27.3.4.2.1
Ping Frames
27.3.4.2.2
Error Frames
27.3.4.2.3
Data Frames
27.3.4.3
Multi-Lane Transmission
27.3.5
Flush Sequence
27.3.6
Internal Loopback
27.3.7
CRC Generation
27.3.8
ECC Module
27.3.9
Tag Matching
27.3.10
User Data Filtering (UDATA Matching)
27.3.11
TDM Configurations
27.3.12
FSI Trigger Generation
27.3.13
FSI-SPI Compatibility Mode
27.3.13.1
Available SPI Modes
27.3.13.1.1
FSITX as SPI Controller, Transmit Only
27.3.13.1.1.1
Initialization
27.3.13.1.1.2
Operation
27.3.13.1.2
FSIRX as SPI Peripheral, Receive Only
27.3.13.1.2.1
Initialization
27.3.13.1.2.2
Operation
27.3.13.1.3
FSITX and FSIRX Emulating a Full Duplex SPI Controller
27.3.13.1.3.1
Initialization
27.3.13.1.3.2
Operation
27.4
FSI Programing Guide
27.4.1
Establishing the Communication Link
27.4.1.1
Establishing the Communication Link from the Main Device
27.4.1.2
Establishing the Communication Link from the Remote Device
27.4.2
Register Protection
27.4.3
Emulation Mode
27.5
Software
27.5.1
FSI Examples
27.5.1.1
FSI Loopback:CPU Control - SINGLE_CORE
27.5.1.2
FSI data transfers upon CPU Timer event - SINGLE_CORE
27.6
FSI Registers
27.6.1
FSI Base Address Table
27.6.2
FSI_TX_REGS Registers
27.6.3
FSI_RX_REGS Registers
27.6.4
FSI Registers to Driverlib Functions
28
Inter-Integrated Circuit Module (I2C)
28.1
Introduction
28.1.1
I2C Related Collateral
28.1.2
Features
28.1.3
Features Not Supported
28.1.4
Functional Overview
28.1.5
Clock Generation
28.1.6
I2C Clock Divider Registers (I2CCLKL and I2CCLKH)
28.1.6.1
Formula for the Controller Clock Period
28.2
Configuring Device Pins
28.3
I2C Module Operational Details
28.3.1
Input and Output Voltage Levels
28.3.2
Selecting Pullup Resistors
28.3.3
Data Validity
28.3.4
Operating Modes
28.3.5
I2C Module START and STOP Conditions
28.3.6
Non-repeat Mode versus Repeat Mode
28.3.7
Serial Data Formats
28.3.7.1
7-Bit Addressing Format
28.3.7.2
10-Bit Addressing Format
28.3.7.3
Free Data Format
28.3.7.4
Using a Repeated START Condition
28.3.8
Clock Synchronization
28.3.9
Arbitration
28.3.10
Digital Loopback Mode
28.3.11
NACK Bit Generation
28.4
Interrupt Requests Generated by the I2C Module
28.4.1
Basic I2C Interrupt Requests
28.4.2
I2C FIFO Interrupts
28.5
Resetting or Disabling the I2C Module
28.6
Software
28.6.1
I2C Examples
28.6.1.1
I2C Digital Loopback with FIFO Interrupts - SINGLE_CORE
28.6.1.2
I2C EEPROM - SINGLE_CORE
28.6.1.3
I2C Digital External Loopback with FIFO Interrupts - SINGLE_CORE
28.6.1.4
I2C Extended Clock Stretching Controller TX - SINGLE_CORE
28.6.1.5
I2C Extended Clock Stretching Target RX - SINGLE_CORE
28.7
I2C Registers
28.7.1
I2C Base Address Table
28.7.2
I2C_REGS Registers
28.7.3
I2C Registers to Driverlib Functions
29
Power Management Bus Module (PMBus)
29.1
Introduction
29.1.1
PMBUS Related Collateral
29.1.2
Features
29.1.3
Block Diagram
29.2
Configuring Device Pins
29.3
Target Mode Operation
29.3.1
Configuration
29.3.2
Message Handling
29.3.2.1
Quick Command
29.3.2.2
Send Byte
29.3.2.3
Receive Byte
29.3.2.4
Write Byte and Write Word
29.3.2.5
Read Byte and Read Word
29.3.2.6
Process Call
29.3.2.7
Block Write
29.3.2.8
Block Read
29.3.2.9
Block Write-Block Read Process Call
29.3.2.10
Alert Response
29.3.2.11
Extended Command
29.3.2.12
Group Command
29.4
Controller Mode Operation
29.4.1
Configuration
29.4.2
Message Handling
29.4.2.1
Quick Command
29.4.2.2
Send Byte
29.4.2.3
Receive Byte
29.4.2.4
Write Byte and Write Word
29.4.2.5
Read Byte and Read Word
29.4.2.6
Process Call
29.4.2.7
Block Write
29.4.2.8
Block Read
29.4.2.9
Block Write-Block Read Process Call
29.4.2.10
Alert Response
29.4.2.11
Extended Command
29.4.2.12
Group Command
29.5
PMBUS Registers
29.5.1
PMBUS Base Address Table
29.5.2
PMBUS_REGS Registers
29.5.3
PMBUS Registers to Driverlib Functions
30
Serial Communications Interface (SCI)
30.1
Introduction
30.1.1
Features
30.1.2
SCI Related Collateral
30.1.3
Block Diagram
30.2
Architecture
30.3
SCI Module Signal Summary
30.4
Configuring Device Pins
30.5
Multiprocessor and Asynchronous Communication Modes
30.6
SCI Programmable Data Format
30.7
SCI Multiprocessor Communication
30.7.1
Recognizing the Address Byte
30.7.2
Controlling the SCI TX and RX Features
30.7.3
Receipt Sequence
30.8
Idle-Line Multiprocessor Mode
30.8.1
Idle-Line Mode Steps
30.8.2
Block Start Signal
30.8.3
Wake-Up Temporary (WUT) Flag
30.8.3.1
Sending a Block Start Signal
30.8.4
Receiver Operation
30.9
Address-Bit Multiprocessor Mode
30.9.1
Sending an Address
30.10
SCI Communication Format
30.10.1
Receiver Signals in Communication Modes
30.10.2
Transmitter Signals in Communication Modes
30.11
SCI Port Interrupts
30.11.1
Break Detect
30.12
SCI Baud Rate Calculations
30.13
SCI Enhanced Features
30.13.1
SCI FIFO Description
30.13.2
SCI Auto-Baud
30.13.3
Autobaud-Detect Sequence
30.14
Software
30.14.1
SCI Examples
30.14.1.1
Tune Baud Rate via UART Example
30.14.1.2
SCI FIFO Digital Loop Back
30.14.1.3
SCI Digital Loop Back with Interrupts
30.14.1.4
SCI Echoback
30.14.1.5
stdout redirect example
30.15
SCI Registers
30.15.1
SCI Base Address Table
30.15.2
SCI_REGS Registers
30.15.3
SCI Registers to Driverlib Functions
31
Serial Peripheral Interface (SPI)
31.1
Introduction
31.1.1
Features
31.1.2
SPI Related Collateral
31.1.3
Block Diagram
31.2
System-Level Integration
31.2.1
SPI Module Signals
31.2.2
Configuring Device Pins
31.2.2.1
GPIOs Required for High-Speed Mode
31.2.3
SPI Interrupts
31.2.4
DMA Support
31.3
SPI Operation
31.3.1
Introduction to Operation
31.3.2
Controller Mode
31.3.3
Peripheral Mode
31.3.4
Data Format
31.3.4.1
Transmission of Bit from SPIRXBUF
31.3.5
Baud Rate Selection
31.3.5.1
Baud Rate Determination
31.3.5.2
Baud Rate Calculation in Non-High Speed Mode (HS_MODE = 0)
31.3.6
SPI Clocking Schemes
31.3.7
SPI FIFO Description
31.3.8
SPI DMA Transfers
31.3.8.1
Transmitting Data Using SPI with DMA
31.3.8.2
Receiving Data Using SPI with DMA
31.3.9
SPI High-Speed Mode
31.3.10
SPI 3-Wire Mode Description
31.4
Programming Procedure
31.4.1
Initialization Upon Reset
31.4.2
Configuring the SPI
31.4.3
Configuring the SPI for High-Speed Mode
31.4.4
Data Transfer Example
31.4.5
SPI 3-Wire Mode Code Examples
31.4.5.1
3-Wire Controller Mode Transmit
1721
31.4.5.2.1
3-Wire Controller Mode Receive
1723
31.4.5.2.1
3-Wire Peripheral Mode Transmit
1725
31.4.5.2.1
3-Wire Peripheral Mode Receive
31.4.6
SPI STEINV Bit in Digital Audio Transfers
31.5
Software
31.5.1
SPI Examples
31.5.1.1
SPI Digital Loopback - SINGLE_CORE
31.5.1.2
SPI Digital Loopback with FIFO Interrupts - SINGLE_CORE
31.5.1.3
SPI Digital External Loopback without FIFO Interrupts - SINGLE_CORE
31.5.1.4
SPI Digital External Loopback with FIFO Interrupts - SINGLE_CORE
31.5.1.5
SPI Digital Loopback with DMA - SINGLE_CORE
31.6
SPI Registers
31.6.1
SPI Base Address Table
31.6.2
SPI_REGS Registers
31.6.3
SPI Registers to Driverlib Functions
32
Universal Serial Bus (USB) Controller
32.1
Introduction
32.1.1
Features
32.1.2
USB Related Collateral
32.1.3
Block Diagram
32.1.3.1
Signal Description
32.1.3.2
VBus Recommendations
32.2
Functional Description
32.2.1
Operation as a Device
32.2.1.1
Control and Configurable Endpoints
32.2.1.1.1
IN Transactions as a Device
32.2.1.1.2
Out Transactions as a Device
32.2.1.1.3
Scheduling
32.2.1.1.4
Additional Actions
32.2.1.1.5
Device Mode Suspend
32.2.1.1.6
Start of Frame
32.2.1.1.7
USB Reset
32.2.1.1.8
Connect/Disconnect
32.2.2
Operation as a Host
32.2.2.1
Endpoint Registers
32.2.2.2
IN Transactions as a Host
32.2.2.3
OUT Transactions as a Host
32.2.2.4
Transaction Scheduling
32.2.2.5
USB Hubs
32.2.2.6
Babble
32.2.2.7
Host SUSPEND
32.2.2.8
USB RESET
32.2.2.9
Connect/Disconnect
32.2.3
DMA Operation
32.2.4
Address/Data Bus Bridge
32.3
Initialization and Configuration
32.3.1
Pin Configuration
32.3.2
Endpoint Configuration
32.4
USB Global Interrupts
32.5
Software
32.5.1
USB Examples
32.5.1.1
USB CDC serial example
32.5.1.2
USB HID Mouse Device
32.5.1.3
USB Device Keyboard
32.5.1.4
USB Generic Bulk Device
32.5.1.5
USB HID Mouse Host
32.5.1.6
USB HID Keyboard Host
32.5.1.7
USB Mass Storage Class Host
32.5.1.8
USB Dual Detect
32.5.1.9
USB Throughput Bulk Device Example (usb_ex9_throughput_dev_bulk)
32.5.1.10
USB HUB Host example
32.6
USB Registers
32.6.1
USB Base Address Table
32.6.2
USB_REGS Registers
32.6.3
USB Registers to Driverlib Functions
33
Advanced Encryption Standard (AES) Accelerator
33.1
Introduction
33.1.1
AES Block Diagram
33.1.1.1
Interfaces
33.1.1.2
AES Subsystem
33.1.1.3
AES Wide-Bus Engine
33.1.2
AES Algorithm
33.2
AES Operating Modes
33.2.1
GCM Operation
33.2.2
CCM Operation
33.2.3
XTS Operation
33.2.4
ECB Feedback Mode
33.2.5
CBC Feedback Mode
33.2.6
CTR and ICM Feedback Modes
33.2.7
CFB Mode
33.2.8
F8 Mode
33.2.9
F9 Operation
33.2.10
CBC-MAC Operation
33.3
Extended and Combined Modes of Operations
33.3.1
GCM Protocol Operation
33.3.2
CCM Protocol Operation
33.3.3
Hardware Requests
33.4
AES Module Programming Guide
33.4.1
AES Low-Level Programming Models
33.4.1.1
Global Initialization
33.4.1.2
AES Operating Modes Configuration
33.4.1.3
AES Mode Configurations
33.4.1.4
AES Events Servicing
33.5
Software
33.5.1
AES Examples
33.5.1.1
AES ECB Encryption Example
33.5.1.2
AES ECB De-cryption Example
33.5.1.3
AES GCM Encryption Example
33.5.1.4
AES GCM Decryption Example
33.6
AES Registers
33.6.1
AES Base Address Table
33.6.2
AES_REGS Registers
33.6.3
AES_SS_REGS Registers
33.6.4
Register to Driverlib Function Mapping
33.6.4.1
AES Registers to Driverlib Functions
33.6.4.2
AES_SS Registers to Driverlib Functions
34
Embedded Pattern Generator (EPG)
34.1
Introduction
34.1.1
Features
34.1.2
EPG Block Diagram
34.1.3
EPG Related Collateral
34.2
Clock Generator Modules
34.2.1
DCLK (50% duty cycle clock)
34.2.2
Clock Stop
34.3
Signal Generator Module
34.4
EPG Peripheral Signal Mux Selection
34.5
Application Software Notes
34.6
EPG Example Use Cases
34.6.1
EPG Example: Synchronous Clocks with Offset
34.6.1.1
Synchronous Clocks with Offset Register Configuration
34.6.2
EPG Example: Serial Data Bit Stream (LSB first)
34.6.2.1
Serial Data Bit Stream (LSB first) Register Configuration
34.6.3
EPG Example: Serial Data Bit Stream (MSB first)
34.6.3.1
Serial Data Bit Stream (MSB first) Register Configuration
34.6.4
EPG Example: Clock and Data Pair
34.6.4.1
Clock and Data Pair Register Configuration
34.6.5
EPG Example: Clock and Skewed Data Pair
34.6.5.1
Clock and Skewed Data Pair Register Configuration
34.6.6
EPG Example: Capturing Serial Data with a Known Baud Rate
34.6.6.1
Capturing Serial Data with a Known Baud Rate Register Configuration
34.7
EPG Interrupt
34.8
Software
34.8.1
EPG Examples
34.8.1.1
EPG Generating Synchronous Clocks - SINGLE_CORE
34.8.1.2
EPG Generating Two Offset Clocks - SINGLE_CORE
34.8.1.3
EPG Generating Two Offset Clocks With SIGGEN - SINGLE_CORE
34.8.1.4
EPG Generate Serial Data - SINGLE_CORE
34.8.1.5
EPG Generate Serial Data Shift Mode - SINGLE_CORE
34.9
EPG Registers
34.9.1
EPG Base Address Table
34.9.2
EPG_REGS Registers
34.9.3
EPG_MUX_REGS Registers
34.9.4
EPG Registers to Driverlib Functions
35
Modular Controller Area Network (MCAN)
35.1
MCAN Introduction
35.1.1
MCAN Related Collateral
35.1.2
MCAN Features
35.2
MCAN Environment
35.3
CAN Network Basics
35.4
MCAN Integration
35.5
MCAN Functional Description
35.5.1
Module Clocking Requirements
35.5.2
Interrupt Requests
35.5.3
Operating Modes
35.5.3.1
Software Initialization
35.5.3.2
Normal Operation
35.5.3.3
CAN FD Operation
35.5.4
Transmitter Delay Compensation
35.5.4.1
Description
35.5.4.2
Transmitter Delay Compensation Measurement
35.5.5
Restricted Operation Mode
35.5.6
Bus Monitoring Mode
35.5.7
Disabled Automatic Retransmission (DAR) Mode
35.5.7.1
Frame Transmission in DAR Mode
35.5.8
Clock Stop Mode
35.5.8.1
Suspend Mode
35.5.8.2
Wakeup Request
35.5.9
Test Modes
35.5.9.1
External Loop Back Mode
35.5.9.2
Internal Loop Back Mode
35.5.10
Timestamp Generation
35.5.10.1
External Timestamp Counter
35.5.11
Timeout Counter
35.5.12
Safety
35.5.12.1
ECC Wrapper
35.5.12.2
ECC Aggregator
35.5.12.2.1
ECC Aggregator Overview
35.5.12.2.2
ECC Aggregator Registers
35.5.12.3
Reads to ECC Control and Status Registers
35.5.12.4
ECC Interrupts
35.5.13
Rx Handling
35.5.13.1
Acceptance Filtering
35.5.13.1.1
Range Filter
35.5.13.1.2
Filter for Specific IDs
35.5.13.1.3
Classic Bit Mask Filter
35.5.13.1.4
Standard Message ID Filtering
35.5.13.1.5
Extended Message ID Filtering
35.5.13.2
Rx FIFOs
35.5.13.2.1
Rx FIFO Blocking Mode
35.5.13.2.2
Rx FIFO Overwrite Mode
35.5.13.3
Dedicated Rx Buffers
35.5.13.3.1
Rx Buffer Handling
35.5.14
Tx Handling
35.5.14.1
Transmit Pause
35.5.14.2
Dedicated Tx Buffers
35.5.14.3
Tx FIFO
35.5.14.4
Tx Queue
35.5.14.5
Mixed Dedicated Tx Buffers/Tx FIFO
35.5.14.6
Mixed Dedicated Tx Buffers/Tx Queue
35.5.14.7
Transmit Cancellation
35.5.14.8
Tx Event Handling
35.5.15
FIFO Acknowledge Handling
35.5.16
Message RAM
35.5.16.1
Message RAM Configuration
35.5.16.2
Rx Buffer and FIFO Element
35.5.16.3
Tx Buffer Element
35.5.16.4
Tx Event FIFO Element
35.5.16.5
Standard Message ID Filter Element
35.5.16.6
Extended Message ID Filter Element
35.6
Software
35.6.1
MCAN Examples
35.6.1.1
MCAN Loopback with Interrupts Example Using SYSCONFIG Tool - SINGLE_CORE
35.6.1.2
MCAN Loopback with Polling Example Using SYSCONFIG Tool - SINGLE_CORE
35.7
MCAN Registers
35.7.1
MCAN Base Address Table
35.7.2
MCANSS_REGS Registers
35.7.3
MCAN_REGS Registers
35.7.4
MCAN_ERROR_REGS Registers
35.7.5
MCAN Registers to Driverlib Functions
36
Universal Asynchronous Receiver/Transmitter (UART)
36.1
Introduction
36.1.1
Features
36.1.2
Block Diagram
36.2
Functional Description
36.2.1
Transmit and Receive Logic
36.2.2
Baud-Rate Generation
36.2.3
Data Transmission
36.2.4
Serial IR (SIR)
36.2.5
9-Bit UART Mode
36.2.6
FIFO Operation
36.2.7
Interrupts
36.2.8
Loopback Operation
36.2.9
DMA Operation
36.2.9.1
Receiving Data Using UART with DMA
36.2.9.2
Transmitting Data Using UART with DMA
36.3
Initialization and Configuration
36.4
Software
36.4.1
UART Examples
36.4.1.1
UART Loopback - SINGLE_CORE
36.4.1.2
UART Loopback with Interrupt - SINGLE_CORE
36.4.1.3
UART Loopback with DMA - SINGLE_CORE
36.5
UART Registers
36.5.1
UART Base Address Table
36.5.2
UART_REGS Registers
36.5.3
UART_REGS_WRITE Registers
36.5.4
UART Registers to Driverlib Functions
37
Local Interconnect Network (LIN)
37.1
LIN Overview
37.1.1
SCI Features
37.1.2
LIN Features
37.1.3
LIN Related Collateral
37.1.4
Block Diagram
37.2
Serial Communications Interface Module
37.2.1
SCI Communication Formats
37.2.1.1
SCI Frame Formats
37.2.1.2
SCI Asynchronous Timing Mode
37.2.1.3
SCI Baud Rate
37.2.1.3.1
Superfractional Divider, SCI Asynchronous Mode
37.2.1.4
SCI Multiprocessor Communication Modes
37.2.1.4.1
Idle-Line Multiprocessor Modes
37.2.1.4.2
Address-Bit Multiprocessor Mode
37.2.1.5
SCI Multibuffered Mode
37.2.2
SCI Interrupts
37.2.2.1
Transmit Interrupt
37.2.2.2
Receive Interrupt
37.2.2.3
WakeUp Interrupt
37.2.2.4
Error Interrupts
37.2.3
SCI DMA Interface
37.2.3.1
Receive DMA Requests
37.2.3.2
Transmit DMA Requests
37.2.4
SCI Configurations
37.2.4.1
Receiving Data
37.2.4.1.1
Receiving Data in Single-Buffer Mode
37.2.4.1.2
Receiving Data in Multibuffer Mode
37.2.4.2
Transmitting Data
37.2.4.2.1
Transmitting Data in Single-Buffer Mode
37.2.4.2.2
Transmitting Data in Multibuffer Mode
37.2.5
SCI Low-Power Mode
37.2.5.1
Sleep Mode for Multiprocessor Communication
37.3
Local Interconnect Network Module
37.3.1
LIN Communication Formats
37.3.1.1
LIN Standards
37.3.1.2
Message Frame
37.3.1.2.1
Message Header
37.3.1.2.2
Response
37.3.1.3
Synchronizer
37.3.1.4
Baud Rate
37.3.1.4.1
Fractional Divider
37.3.1.4.2
Superfractional Divider
37.3.1.4.2.1
Superfractional Divider In LIN Mode
37.3.1.5
Header Generation
37.3.1.5.1
Event Triggered Frame Handling
37.3.1.5.2
Header Reception and Adaptive Baud Rate
37.3.1.6
Extended Frames Handling
37.3.1.7
Timeout Control
37.3.1.7.1
No-Response Error (NRE)
37.3.1.7.2
Bus Idle Detection
37.3.1.7.3
Timeout After Wakeup Signal and Timeout After Three Wakeup Signals
37.3.1.8
TXRX Error Detector (TED)
37.3.1.8.1
Bit Errors
37.3.1.8.2
Physical Bus Errors
37.3.1.8.3
ID Parity Errors
37.3.1.8.4
Checksum Errors
37.3.1.9
Message Filtering and Validation
37.3.1.10
Receive Buffers
37.3.1.11
Transmit Buffers
37.3.2
LIN Interrupts
37.3.3
Servicing LIN Interrupts
37.3.4
LIN DMA Interface
37.3.4.1
LIN Receive DMA Requests
37.3.4.2
LIN Transmit DMA Requests
37.3.5
LIN Configurations
37.3.5.1
Receiving Data
37.3.5.1.1
Receiving Data in Single-Buffer Mode
37.3.5.1.2
Receiving Data in Multibuffer Mode
37.3.5.2
Transmitting Data
37.3.5.2.1
Transmitting Data in Single-Buffer Mode
37.3.5.2.2
Transmitting Data in Multibuffer Mode
37.4
Low-Power Mode
37.4.1
Entering Sleep Mode
37.4.2
Wakeup
37.4.3
Wakeup Timeouts
37.5
Emulation Mode
37.6
Software
37.6.1
LIN Examples
37.6.1.1
LIN Internal Loopback with Interrupts - SINGLE_CORE
37.6.1.2
LIN SCI Mode Internal Loopback with Interrupts - SINGLE_CORE
37.6.1.3
LIN SCI MODE Internal Loopback with DMA - SINGLE_CORE
37.6.1.4
LIN Internal Loopback without interrupts (polled mode) - SINGLE_CORE
37.6.1.5
LIN SCI MODE (Single Buffer) Internal Loopback with DMA - SINGLE_CORE
37.7
SCI/LIN Registers
37.7.1
LIN Base Address Table
37.7.2
LIN_REGS Registers
37.7.3
LIN Registers to Driverlib Functions
38
Lockstep Compare Module (LCM)
38.1
Introduction
38.1.1
Features
38.1.2
Block Diagram
38.2
Enabling LCM Comparators
38.3
Disabling LCM Redundant Module
38.4
LCM Error Handling
38.5
LCM Error Flags
38.6
Debug Mode with LCM
38.7
Register Parity Error Protection
38.8
Functional Logic
38.8.1
Comparator Logic
38.8.2
Self-Test Logic
38.8.2.1
Match Test Mode
38.8.2.2
Mismatch Test Mode
38.8.3
Error Injection Tests
38.8.3.1
Comparator Error Force Test
38.8.3.2
Register Parity Error Test
38.9
LCM Registers
38.9.1
LCM Base Address Table
38.9.2
LCM_REGS Registers
38.9.3
LCM Registers to Driverlib Functions
39
Revision History
8.10
CLB Registers
This section describes the Configurable Logic Block Registers.