SPRUJD3
July 2025
F28E120SC
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)
3
System Control and Interrupts
3.1
Introduction
3.1.1
SYSCTL Related Collateral
3.1.2
LOCK Protection on System Configuration Registers
3.1.3
EALLOW Protection
3.2
Power Management
3.3
Device Identification and Configuration Registers
3.4
Resets
3.4.1
Reset Sources
3.4.2
External Reset (XRS)
3.4.3
Power-On Reset (POR)
3.4.4
Brown-Out-Reset (BOR)
3.4.5
Watchdog Reset (WDRS)
3.4.6
NMI Watchdog Reset (NMIWDRS)
3.4.7
Debugger Reset (SYSRS)
3.4.8
DCSM Safe Code Copy Reset (SCCRESET)
3.4.9
Simulate External Reset (SIMRESET.XRS)
3.4.10
Simulate CPU Reset (SIMRESET_CPU1RS)
3.5
Peripheral Interrupts
3.5.1
Interrupt Concepts
3.5.2
Interrupt Architecture
3.5.2.1
Peripheral Stage
3.5.2.2
PIE Stage
3.5.2.3
CPU Stage
3.5.3
Interrupt Entry Sequence
3.5.4
Configuring and Using Interrupts
3.5.4.1
Enabling Interrupts
3.5.4.2
Handling Interrupts
3.5.4.3
Disabling Interrupts
3.5.4.4
Nesting Interrupts
3.5.4.5
Vector Address Validity Check
3.5.5
PIE Channel Mapping
3.5.6
PIE Interrupt Priority
3.5.6.1
Channel Priority
3.5.6.2
Group Priority
3.5.7
System Error
3.5.8
Vector Tables
3.6
Exceptions and Non-Maskable Interrupts
3.6.1
Configuring and Using NMIs
3.6.2
Emulation Considerations
3.6.3
NMI Sources
3.6.3.1
Missing Clock Detection Logic
3.6.3.2
Flash Uncorrectable ECC Error
3.6.3.3
Software-Forced Error
3.6.4
Illegal Instruction Trap (ITRAP)
3.6.5
ERRORSTS Pin
3.7
Clocking
3.7.1
Clock Sources
3.7.1.1
Primary Internal Oscillator (SYSOSC)
3.7.1.2
Backup Wide-Range Oscillator (WROSC)
3.7.1.3
External Oscillator (XTAL)
3.7.2
Derived Clocks
3.7.2.1
Oscillator Clock (OSCCLK)
3.7.2.2
System PLL Output Clock (PLLRAWCLK)
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)
3.7.3.4
Low-Speed Peripheral Clock (LSPCLK and PERx.LSPCLK)
3.7.3.5
CPU Timer2 Clock (TIMER2CLK)
3.7.4
XCLKOUT
3.7.5
Clock Connectivity
3.7.6
Clock Source and PLL Setup
3.7.7
Using an External Crystal or Resonator
3.7.8
Using an External Oscillator
3.7.9
Choosing PLL Settings
3.7.10
System Clock Setup
3.7.11
SYS PLL Bypass
3.7.12
Clock (OSCCLK) Failure Detection
3.7.12.1
Missing Clock Detection
3.8
32-Bit CPU Timers 0/1/2
3.9
Watchdog Timer
3.9.1
Servicing the Watchdog Timer
3.9.2
Minimum Window Check
3.9.3
Watchdog Reset or Watchdog Interrupt Mode
3.9.4
Watchdog Operation in Low Power-Modes
3.9.5
Emulation Considerations
3.10
Low-Power Modes
3.10.1
Clock-Gating Low-Power Modes
3.10.2
IDLE
3.10.3
STANDBY
3.10.4
HALT
3.11
Memory Controller Module
3.11.1
Dedicated RAM (Mx RAM)
3.11.2
Global Shared RAM (GSx RAM)
3.11.3
Access Arbitration
3.11.4
Memory Error Detection, Correction, and Error Handling
3.11.4.1
Error Detection and Correction
3.11.4.2
Error Handling
3.11.5
Application Test Hooks for Error Detection and Correction
3.11.6
RAM Initialization
3.12
JTAG
3.12.1
JTAG Noise and TAP_STATUS
3.13
System Control Register Configuration Restrictions
3.14
Software
3.14.1
SYSCTL Examples
3.14.1.1
Missing clock detection (MCD)
3.14.1.2
XCLKOUT (External Clock Output) Configuration
3.15
SYSCTRL Registers
3.15.1
SYSCTRL Base Address Table
3.15.2
CPUTIMER_REGS Registers
3.15.3
PIE_CTRL_REGS Registers
3.15.4
WD_REGS Registers
3.15.5
NMI_INTRUPT_REGS Registers
3.15.6
XINT_REGS Registers
3.15.7
SYNC_SOC_REGS Registers
3.15.8
DMA_CLA_SRC_SEL_REGS Registers
3.15.9
DEV_CFG_REGS Registers
3.15.10
CLK_CFG_REGS Registers
3.15.11
CPU_SYS_REGS Registers
3.15.12
SYS_STATUS_REGS Registers
3.15.13
MEM_CFG_REGS Registers
3.15.14
MEMORY_ERROR_REGS Registers
3.15.15
ROM_WAIT_STATE_REGS Registers
3.15.16
TEST_ERROR_REGS Registers
3.15.17
UID_REGS Registers
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 Configuration
4.7.2
Entry Points
4.7.3
Wait Points
4.7.4
Secure Flash Boot
4.7.4.1
Secure Flash CPU1 Linker File Example
4.7.5
Memory Maps
4.7.5.1
Boot ROM Memory Maps
4.7.5.2
Reserved RAM Memory Maps
4.7.6
ROM Tables
4.7.7
Boot Modes and Loaders
4.7.7.1
Boot Modes
4.7.7.1.1
Flash Boot
4.7.7.1.2
RAM Boot
4.7.7.1.3
Wait Boot
4.7.7.2
Bootloaders
4.7.7.2.1
SCI Boot Mode
4.7.7.2.2
SPI Boot Mode
4.7.7.2.3
I2C Boot Mode
4.7.7.2.4
Parallel Boot Mode
4.7.8
GPIO Assignments
4.7.9
Secure ROM Function APIs
4.7.10
Clock Initializations
4.7.11
Boot Status Information
4.7.11.1
Booting Status
4.7.12
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.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
6
Flash Module
6.1
Introduction to Flash and OTP Memory
6.1.1
FLASH Related Collateral
6.1.2
Features
6.1.3
Flash Tools
6.1.4
Default Flash Configuration
6.2
Flash Bank, OTP, and Pump
6.3
Flash Wrapper
6.4
Flash and OTP Memory Performance
6.5
Flash Read Interface
6.5.1
C28x-Flash Read Interface
6.5.1.1
Standard Read Mode
6.5.1.2
Prefetch Mode
6.5.1.3
Data Cache
6.5.1.4
Flash Read Operation
6.6
Flash Erase and Program
6.6.1
Erase
6.6.2
Program
6.6.3
Verify
6.7
Error Correction Code (ECC) Protection
6.7.1
Single-Bit Data Error
6.7.2
Uncorrectable Error
6.7.3
ECC Logic Self Test
6.8
Reserved Locations Within Flash and OTP
6.9
Migrating an Application from RAM to Flash
6.10
Procedure to Change the Flash Control Registers
6.11
Software
6.11.1
FLASH Examples
6.11.1.1
Flash Programming with AutoECC, DataAndECC, DataOnly and EccOnly
6.12
FLASH Registers
6.12.1
FLASH Base Address Table
6.12.2
FLASH_CTRL_REGS Registers
6.12.3
FLASH_ECC_REGS Registers
7
Dual-Clock Comparator (DCC)
7.1
Introduction
7.1.1
Features
7.1.2
Block Diagram
7.2
Module Operation
7.2.1
Configuring DCC Counters
7.2.2
Single-Shot Measurement Mode
7.2.3
Continuous Monitoring Mode
7.2.4
Error Conditions
7.3
Interrupts
7.4
Software
7.4.1
DCC Examples
7.4.1.1
DCC Single shot Clock verification
7.4.1.2
DCC Single shot Clock measurement
7.4.1.3
DCC Continuous clock monitoring
7.4.1.4
DCC Continuous clock monitoring
7.4.1.5
DCC Detection of clock failure
7.5
DCC Registers
7.5.1
DCC Base Address Table
7.5.2
DCC_REGS Registers
8
General-Purpose Input/Output (GPIO)
8.1
Introduction
8.1.1
GPIO Related Collateral
8.2
Configuration Overview
8.3
Digital Inputs on ADC Pins (AIOs)
8.4
Digital Inputs and Outputs on ADC Pins (AGPIOs)
8.5
Digital General-Purpose I/O Control
8.6
Input Qualification
8.6.1
No Synchronization (Asynchronous Input)
8.6.2
Synchronization to SYSCLKOUT Only
8.6.3
Qualification Using a Sampling Window
8.7
GPIO and Peripheral Muxing
8.7.1
GPIO Muxing
8.7.2
Peripheral Muxing
8.8
Internal Pullup Configuration Requirements
8.9
Open-Drain Configuration Requirements
8.10
Software
8.10.1
GPIO Examples
8.10.1.1
Device GPIO Setup
8.10.1.2
Device GPIO Toggle
8.10.1.3
Device GPIO Interrupt
8.10.1.4
External Interrupt (XINT)
8.10.2
LED Examples
8.11
GPIO Registers
8.11.1
GPIO Base Address Table
8.11.2
GPIO_CTRL_REGS Registers
8.11.3
GPIO_DATA_REGS Registers
8.11.4
GPIO_DATA_READ_REGS Registers
9
Crossbar (X-BAR)
9.1
Input X-BAR
9.2
MCPWM and GPIO Output X-BAR
9.2.1
MCPWM X-BAR
9.2.1.1
MCPWM X-BAR Architecture
9.2.2
GPIO Output X-BAR
9.2.2.1
GPIO Output X-BAR Architecture
9.2.3
X-BAR Flags
9.3
XBAR Registers
9.3.1
XBAR Base Address Table
9.3.2
INPUT_XBAR_REGS Registers
9.3.3
XBAR_REGS Registers
9.3.4
PWM_XBAR_REGS Registers
9.3.5
OUTPUT_XBAR_REGS Registers
10
Analog Subsystem
10.1
Introduction
10.1.1
Features
10.1.2
Block Diagram
10.2
Digital Inputs on ADC Pins (AIOs)
10.3
Digital Inputs and Outputs on ADC Pins (AGPIOs)
10.4
Analog Pins and Internal Connections
10.5
ASBSYS Registers
10.5.1
ASBSYS Base Address Table
10.5.2
ANALOG_SUBSYS_REGS Registers
11
Analog-to-Digital Converter (ADC)
11.1
Introduction
11.1.1
Features
11.1.2
ADC Related Collateral
11.1.3
Block Diagram
11.2
ADC Configurability
11.2.1
Clock Configuration
11.2.2
Resolution
11.2.3
Voltage Reference
11.2.3.1
External Reference Mode
11.2.3.2
Internal Reference Mode
11.2.3.3
Selecting Reference Mode
11.2.4
Signal Mode
11.2.4.1
Expected Conversion Results
11.2.4.2
Interpreting Conversion Results
11.3
SOC Principle of Operation
11.3.1
SOC Configuration
11.3.2
Trigger Operation
11.3.2.1
Trigger Repeaters
11.3.2.1.1
Oversampling Mode
11.3.2.1.2
Re-trigger Spread
11.3.2.1.3
Trigger Repeater Configuration
11.3.2.1.3.1
Register Shadow Updates
11.3.2.1.4
Re-Trigger Logic
11.3.2.1.5
Multi-Path Triggering Behavior
11.3.3
ADC Acquisition (Sample and Hold) Window
11.3.4
Sample Capacitor Reset
11.3.5
ADC Input Models
11.3.6
Channel Selection
11.4
SOC Configuration Examples
11.4.1
Single Conversion from MCPWM Trigger
11.4.2
Multiple Conversions from CPU Timer Trigger
11.4.3
Software Triggering of SOCs
11.5
ADC Conversion Priority
11.6
EOC and Interrupt Operation
11.6.1
Interrupt Overflow
11.6.2
Continue to Interrupt Mode
11.6.3
Early Interrupt Configuration Mode
11.7
Post-Processing Blocks
11.7.1
PPB Offset Correction
11.7.2
PPB Error Calculation
11.7.3
PPB Limit Detection and Zero-Crossing Detection
11.8
Opens/Shorts Detection Circuit (OSDETECT)
11.8.1
Implementation
11.8.2
Detecting an Open Input Pin
11.8.3
Detecting a Shorted Input Pin
11.9
Power-Up Sequence
11.10
ADC Calibration
11.10.1
ADC Zero Offset Calibration
11.11
ADC Timings
11.11.1
ADC Timing Diagrams
11.11.2
Post-Processing Block Timings
11.12
Additional Information
11.12.1
Choosing an Acquisition Window Duration
11.12.2
Result Register Mapping
11.12.3
Internal Temperature Sensor
11.12.4
Designing an External Reference Circuit
11.12.5
ADC-DAC Loopback Testing
11.12.6
Internal Test Mode
11.13
Software
11.13.1
ADC Examples
11.13.1.1
ADC Software Triggering
11.13.1.2
ADC MCPWM Triggering
11.13.1.3
ADC Temperature Sensor Conversion
11.13.1.4
ADC Continuous Conversions Read by DMA (adc_soc_continuous_dma)
11.13.1.5
ADC PPB Offset (adc_ppb_offset)
11.13.1.6
ADC PPB Limits (adc_ppb_limits)
11.13.1.7
ADC SOC Oversampling
11.13.1.8
ADC Trigger Repeater Oversampling
11.14
ADC Registers
11.14.1
ADC Base Address Table
11.14.2
ADC_LITE_RESULT_REGS Registers
11.14.3
ADC_LITE_REGS Registers
12
Comparator Subsystem (CMPSS)
12.1
Introduction
12.1.1
Features
12.1.2
CMPSS Related Collateral
12.1.3
Block Diagram
12.2
Comparator
12.3
Reference DAC
12.4
Digital Filter
12.4.1
Filter Initialization Sequence
12.5
Using the CMPSS
12.5.1
LATCHCLR, and MCPWMSYNCPER Signals
12.5.2
Synchronizer, Digital Filter, and Latch Delays
12.5.3
Calibrating the CMPSS
12.5.4
Enabling and Disabling the CMPSS Clock
12.6
CMPSS DAC Output
12.7
Software
12.7.1
CMPSS Examples
12.7.2
CMPSS_LITE Examples
12.7.2.1
CMPSSLITE Asynchronous Trip
12.8
CMPSS Registers
12.8.1
CMPSS Base Address Table
12.8.2
CMPSS_LITE_REGS Registers
13
Multi-Channel Pulse Width Modulator (MCPWM)
13.1
Introduction
13.1.1
EPWM Related Collateral
13.1.2
Submodule Overview
13.2
Configuring Device Pins
13.3
MCPWM Modules Overview
13.4
Time-Base (TB) Submodule
13.4.1
Purpose of the Time-Base Submodule
13.4.2
Controlling and Monitoring the Time-Base Submodule
13.4.3
Calculating PWM Period and Frequency
13.4.3.1
Time-Base Period Shadow Register
13.4.3.2
Time-Base Clock Synchronization
13.4.3.3
Time-Base Counter Synchronization
13.4.4
Phase Locking the Time-Base Clocks of Multiple MCPWM Modules
13.4.5
Time-Base Counter Modes and Timing Waveforms
13.4.6
Global Load
13.4.6.1
One-Shot Load Mode
13.5
Counter-Compare (CC) Submodule
13.5.1
Purpose of the Counter-Compare Submodule
13.5.2
Controlling and Monitoring the Counter-Compare Submodule
13.5.3
Operational Highlights for the Counter-Compare Submodule
13.5.4
Count Mode Timing Waveforms
13.6
Action-Qualifier (AQ) Submodule
13.6.1
Purpose of the Action-Qualifier Submodule
13.6.2
Action-Qualifier Submodule Control and Status Register Definitions
13.6.3
Action-Qualifier Event Priority
13.6.4
AQCTLA and AQCTLB Shadow Mode Operations
13.6.5
Configuration Requirements for Common Waveforms
13.7
Dead-Band Generator (DB) Submodule
13.7.1
Purpose of the Dead-Band Submodule
13.7.2
Dead-Band Submodule Additional Operating Modes
13.7.3
Operational Highlights for the Dead-Band Submodule
13.8
Trip-Zone (TZ) Submodule
13.8.1
Purpose of the Trip-Zone Submodule
13.8.2
Operational Highlights for the Trip-Zone Submodule
13.8.2.1
Trip-Zone Configurations
13.8.3
Generating Trip Event Interrupts
13.9
Event-Trigger (ET) Submodule
13.9.1
Operational Overview of the MCPWM Event-Trigger Submodule
13.10
PWM Crossbar (X-BAR)
13.11
MCPWM Registers
13.11.1
MCPWM Base Address Table
13.11.2
MCPWM_6CH_REGS Registers
13.11.3
MCPWM_2CH_REGS Registers
14
Enhanced Capture (eCAP)
14.1
Introduction
14.1.1
Features
14.1.2
ECAP Related Collateral
14.2
Description
14.3
Configuring Device Pins for the eCAP
14.4
Capture and APWM Operating Mode
14.5
Capture Mode Description
14.5.1
Event Prescaler
14.5.2
Edge Polarity Select and Qualifier
14.5.3
Continuous/One-Shot Control
14.5.4
32-Bit Counter and Phase Control
14.5.5
CAP1-CAP4 Registers
14.5.6
eCAP Synchronization
14.5.6.1
Example 1 - Using SWSYNC with ECAP Module
14.5.7
Interrupt Control
14.5.8
Shadow Load and Lockout Control
14.5.9
APWM Mode Operation
14.6
Application of the eCAP Module
14.6.1
Example 1 - Absolute Time-Stamp Operation Rising-Edge Trigger
14.6.2
Example 2 - Absolute Time-Stamp Operation Rising- and Falling-Edge Trigger
14.6.3
Example 3 - Time Difference (Delta) Operation Rising-Edge Trigger
14.6.4
Example 4 - Time Difference (Delta) Operation Rising- and Falling-Edge Trigger
14.7
Application of the APWM Mode
14.7.1
Example 1 - Simple PWM Generation (Independent Channels)
14.8
Software
14.8.1
ECAP Examples
14.8.1.1
eCAP APWM Example
14.8.1.2
eCAP Capture PWM Example
14.9
ECAP Registers
14.9.1
ECAP Base Address Table
14.9.2
ECAP_REGS Registers
15
Enhanced Quadrature Encoder Pulse (eQEP)
15.1
Introduction
15.1.1
EQEP Related Collateral
15.2
Configuring Device Pins
15.3
Description
15.3.1
EQEP Inputs
15.3.2
Functional Description
15.3.3
eQEP Memory Map
15.4
Quadrature Decoder Unit (QDU)
15.4.1
Position Counter Input Modes
15.4.1.1
Quadrature Count Mode
15.4.1.2
Direction-Count Mode
15.4.1.3
Up-Count Mode
15.4.1.4
Down-Count Mode
15.4.2
eQEP Input Polarity Selection
15.4.3
Position-Compare Sync Output
15.5
Position Counter and Control Unit (PCCU)
15.5.1
Position Counter Operating Modes
15.5.1.1
Position Counter Reset on Index Event (QEPCTL[PCRM] = 00)
15.5.1.2
Position Counter Reset on Maximum Position (QEPCTL[PCRM] = 01)
15.5.1.3
Position Counter Reset on the First Index Event (QEPCTL[PCRM] = 10)
15.5.1.4
Position Counter Reset on Unit Time-out Event (QEPCTL[PCRM] = 11)
15.5.2
Position Counter Latch
15.5.2.1
Index Event Latch
15.5.2.2
Strobe Event Latch
15.5.3
Position Counter Initialization
15.5.4
eQEP Position-compare Unit
15.6
eQEP Edge Capture Unit
15.7
eQEP Watchdog
15.8
eQEP Unit Timer Base
15.9
QMA Module
15.9.1
Modes of Operation
15.9.1.1
QMA Mode-1 (QMACTRL[MODE] = 1)
15.9.1.2
QMA Mode-2 (QMACTRL[MODE] = 2)
15.9.2
Interrupt and Error Generation
15.10
eQEP Interrupt Structure
15.11
Software
15.11.1
EQEP Examples
15.11.1.1
Frequency Measurement Using eQEP
15.11.1.2
Position and Speed Measurement Using eQEP
15.11.1.3
Frequency Measurement Using eQEP via unit timeout interrupt
15.11.1.4
Motor speed and direction measurement using eQEP via unit timeout interrupt
15.12
EQEP Registers
15.12.1
EQEP Base Address Table
15.12.2
EQEP_REGS Registers
16
Inter-Integrated Circuit Module (I2C)
16.1
Introduction
16.1.1
I2C Related Collateral
16.1.2
Features
16.1.3
Features Not Supported
16.1.4
Functional Overview
16.1.5
Clock Generation
16.1.6
I2C Clock Divider Registers (I2CCLKL and I2CCLKH)
16.1.6.1
Formula for the Controller Clock Period
16.2
Configuring Device Pins
16.3
I2C Module Operational Details
16.3.1
Input and Output Voltage Levels
16.3.2
Selecting Pullup Resistors
16.3.3
Data Validity
16.3.4
Operating Modes
16.3.5
I2C Module START and STOP Conditions
16.3.6
Non-repeat Mode versus Repeat Mode
16.3.7
Serial Data Formats
16.3.7.1
7-Bit Addressing Format
16.3.7.2
10-Bit Addressing Format
16.3.7.3
Free Data Format
16.3.7.4
Using a Repeated START Condition
16.3.8
Clock Synchronization
16.3.9
Clock Stretching
16.3.10
Arbitration
16.3.11
Digital Loopback Mode
16.3.12
NACK Bit Generation
16.4
Interrupt Requests Generated by the I2C Module
16.4.1
Basic I2C Interrupt Requests
16.4.2
I2C FIFO Interrupts
16.5
Resetting or Disabling the I2C Module
16.6
Software
16.6.1
I2C Registers to Driverlib Functions
16.6.2
I2C Examples
16.6.2.1
C28x-I2C Library source file for FIFO interrupts
16.6.2.2
C28x-I2C Library source file for FIFO using polling
16.6.2.3
I2C Digital Loopback with FIFO Interrupts
16.6.2.4
I2C EEPROM
16.6.2.5
I2C EEPROM
16.6.2.6
I2C EEPROM
16.7
I2C Registers
16.7.1
I2C Base Address Table
16.7.2
I2C_REGS Registers
17
Serial Communications Interface (SCI)
17.1
Introduction
17.1.1
Features
17.1.2
SCI Related Collateral
17.1.3
Block Diagram
17.2
Architecture
17.3
SCI Module Signal Summary
17.4
Configuring Device Pins
17.5
Multiprocessor and Asynchronous Communication Modes
17.6
SCI Programmable Data Format
17.7
SCI Multiprocessor Communication
17.7.1
Recognizing the Address Byte
17.7.2
Controlling the SCI TX and RX Features
17.7.3
Receipt Sequence
17.8
Idle-Line Multiprocessor Mode
17.8.1
Idle-Line Mode Steps
17.8.2
Block Start Signal
17.8.3
Wake-Up Temporary (WUT) Flag
17.8.3.1
Sending a Block Start Signal
17.8.4
Receiver Operation
17.9
Address-Bit Multiprocessor Mode
17.9.1
Sending an Address
17.10
SCI Communication Format
17.10.1
Receiver Signals in Communication Modes
17.10.2
Transmitter Signals in Communication Modes
17.11
SCI Port Interrupts
17.11.1
Break Detect
17.12
SCI Baud Rate Calculations
17.13
SCI Enhanced Features
17.13.1
SCI FIFO Description
17.13.2
SCI Auto-Baud
17.13.3
Autobaud-Detect Sequence
17.14
Software
17.14.1
SCI Examples
17.14.1.1
Tune Baud Rate via UART Example
17.14.1.2
SCI FIFO Digital Loop Back
17.14.1.3
SCI Digital Loop Back with Interrupts
17.14.1.4
SCI Echoback
17.14.1.5
stdout redirect example
17.15
SCI Registers
17.15.1
SCI Base Address Table
17.15.2
SCI_REGS Registers
18
Serial Peripheral Interface (SPI)
18.1
Introduction
18.1.1
Features
18.1.2
Block Diagram
18.2
System-Level Integration
18.2.1
SPI Module Signals
18.2.2
Configuring Device Pins
18.2.2.1
GPIOs Required for High-Speed Mode
18.2.3
SPI Interrupts
18.2.4
DMA Support
18.3
SPI Operation
18.3.1
Introduction to Operation
18.3.2
Controller Mode
18.3.3
Peripheral Mode
18.3.4
Data Format
18.3.4.1
Transmission of Bit from SPIRXBUF
18.3.5
Baud Rate Selection
18.3.5.1
Baud Rate Determination
18.3.5.2
Baud Rate Calculation in Non-High Speed Mode (HS_MODE = 0)
18.3.6
SPI Clocking Schemes
18.3.7
SPI FIFO Description
18.3.8
SPI DMA Transfers
18.3.8.1
Transmitting Data Using SPI with DMA
18.3.8.2
Receiving Data Using SPI with DMA
18.3.9
SPI High-Speed Mode
18.3.10
SPI 3-Wire Mode Description
18.4
Programming Procedure
18.4.1
Initialization Upon Reset
18.4.2
Configuring the SPI
18.4.3
Configuring the SPI for High-Speed Mode
18.4.4
Data Transfer Example
18.4.5
SPI 3-Wire Mode Code Examples
18.4.5.1
3-Wire Controller Mode Transmit
669
18.4.5.2.1
3-Wire Controller Mode Receive
671
18.4.5.2.1
3-Wire Peripheral Mode Transmit
673
18.4.5.2.1
3-Wire Peripheral Mode Receive
18.4.6
SPI STEINV Bit in Digital Audio Transfers
18.5
Software
18.5.1
SPI Examples
18.5.1.1
SPI Digital Loopback
18.5.1.2
SPI Digital Loopback with FIFO Interrupts
18.5.1.3
SPI Digital Loopback with DMA
18.5.1.4
SPI EEPROM
18.5.1.5
SPI DMA EEPROM
18.6
SPI Registers
18.6.1
SPI Base Address Table
18.6.2
SPI_REGS Registers
19
Programmable Gain Amplifier (PGA)
19.1
Programmable Gain Amplifier (PGA) Overview
19.1.1
Features
19.1.2
Block Diagram
19.2
Linear Output Range
19.3
Gain Values
19.4
Modes of Operation
19.4.1
Buffer Mode
19.4.2
Standalone Mode
19.4.3
Non-inverting Mode
19.4.4
Subtractor Mode
19.5
External Filtering
19.5.1
Low-Pass Filter Using Internal Filter Resistor and External Capacitor
19.5.2
Single Pole Low-Pass Filter Using Internal Gain Resistor and External Capacitor
19.6
Error Calibration
19.6.1
Offset Error
19.6.2
Gain Error
19.7
Chopping Feature
19.8
Enabling and Disabling the PGA Clock
19.9
Lock Register
19.10
Analog Front-End Integration
19.10.1
Analog-to-Digital Converter (ADC)
19.10.1.1
Unfiltered Acquisition Window
19.10.1.2
Filtered Acquisition Window
19.10.2
Comparator Subsystem (CMPSS)
19.10.3
Alternate Functions
19.11
Examples
19.11.1
Non-Inverting Amplifier Using Non-Inverting Mode
19.11.2
Buffer Mode
19.11.3
Low-Side Current Sensing
19.11.4
Bidirectional Current Sensing
19.12
Software
19.12.1
PGA Examples
19.12.1.1
PGA CMPSSDAC-ADC External Loopback Example
19.13
PGA Registers
19.13.1
PGA Base Address Table
19.13.2
PGA_REGS Registers
20
Direct Memory Access (DMA)
20.1
Introduction
20.1.1
Features
20.1.2
Block Diagram
20.2
Architecture
20.2.1
Peripheral Interrupt Event Trigger Sources
20.2.2
DMA Bus
20.3
Address Pointer and Transfer Control
20.4
Pipeline Timing and Throughput
20.5
Channel Priority
20.5.1
Round-Robin Mode
20.5.2
Channel 1 High-Priority Mode
20.6
Overrun Detection Feature
20.7
Software
20.7.1
DMA Examples
20.7.1.1
DMA GSRAM Transfer (dma_ex1_gsram_transfer)
20.7.1.2
DMA GSRAM Transfer (dma_ex2_gsram_transfer)
20.8
DMA Registers
20.8.1
DMA Base Address Table
20.8.2
DMA_REGS Registers
20.8.3
DMA_CH_REGS Registers
21
Universal Asynchronous Receiver/Transmitter (UART)
21.1
Introduction
21.1.1
Features
21.1.2
Block Diagram
21.2
Functional Description
21.2.1
Transmit and Receive Logic
21.2.2
Baud-Rate Generation
21.2.3
Data Transmission
21.2.4
Serial IR (SIR)
21.2.5
9-Bit UART Mode
21.2.6
FIFO Operation
21.2.7
Interrupts
21.2.8
Loopback Operation
21.2.9
DMA Operation
21.2.9.1
Receiving Data Using UART with DMA
21.2.9.2
Transmitting Data Using UART with DMA
21.3
Initialization and Configuration
21.4
Software
21.4.1
UART Examples
21.4.1.1
UART Echoback
21.4.1.2
UART Loopback
21.4.1.3
UART Loopback with interrupt
21.4.1.4
UART Digital Loopback with DMA
21.5
UART Registers
21.5.1
UART Base Address Table
21.5.2
UART_REGS Registers
21.5.3
UART_REGS_WRITE Registers
22
Revision History
Technical Reference Manual
F28E12x Real-Time Microcontrollers