P55 Reference Manual (1)
P55 Reference Manual (1)
Microcontrollers
Table of Contents
19.13.9 Controlling Zero Voltage Switched Full Bridge (ZVSFB) Converter.................................................................. 2474
19.13.10 Controlling a Peak Current Mode Controlled Buck Module............................................................................. 2476
19.13.11 Controlling H-Bridge LLC Resonant Converter................................................................................................2477
19.14 Register Lock Protection.......................................................................................................................................... 2478
19.15 High-Resolution Pulse Width Modulator (HRPWM)................................................................................................. 2479
19.15.1 Operational Description of HRPWM.................................................................................................................. 2481
19.15.2 SFO Library Software - SFO_TI_Build_V8.lib................................................................................................... 2502
19.16 Software................................................................................................................................................................... 2505
19.16.1 EPWM Registers to Driverlib Functions............................................................................................................ 2505
19.16.2 HRPWM Registers to Driverlib Functions..........................................................................................................2512
19.16.3 EPWM Examples...............................................................................................................................................2516
19.16.4 HRPWM Examples............................................................................................................................................2521
19.17 EPWM Registers......................................................................................................................................................2524
19.17.1 EPWM Base Address Table.............................................................................................................................. 2524
19.17.2 EPWM_REGS Registers................................................................................................................................... 2525
20 Enhanced Capture (eCAP)............................................................................................................................................. 2655
20.1 Introduction................................................................................................................................................................ 2656
20.1.1 Features.............................................................................................................................................................. 2656
20.1.2 ECAP Related Collateral..................................................................................................................................... 2656
20.2 Description................................................................................................................................................................. 2657
20.3 Configuring Device Pins for the eCAP....................................................................................................................... 2658
20.4 Capture and APWM Operating Mode........................................................................................................................ 2661
20.5 Capture Mode Description......................................................................................................................................... 2663
20.5.1 Event Prescaler................................................................................................................................................... 2664
20.5.2 Edge Polarity Select and Qualifier.......................................................................................................................2664
20.5.3 Continuous/One-Shot Control............................................................................................................................. 2665
20.5.4 32-Bit Counter and Phase Control.......................................................................................................................2666
20.5.5 CAP1-CAP4 Registers........................................................................................................................................ 2666
20.5.6 eCAP Synchronization.........................................................................................................................................2666
20.5.7 Interrupt Control...................................................................................................................................................2667
20.5.8 DMA Interrupt...................................................................................................................................................... 2669
20.5.9 Shadow Load and Lockout Control..................................................................................................................... 2669
20.5.10 APWM Mode Operation.....................................................................................................................................2669
20.6 Application of the eCAP Module................................................................................................................................ 2671
20.6.1 Example 1 - Absolute Time-Stamp Operation Rising-Edge Trigger.................................................................... 2671
20.6.2 Example 2 - Absolute Time-Stamp Operation Rising- and Falling-Edge Trigger.................................................2672
20.6.3 Example 3 - Time Difference (Delta) Operation Rising-Edge Trigger..................................................................2673
20.6.4 Example 4 - Time Difference (Delta) Operation Rising- and Falling-Edge Trigger.............................................. 2674
20.7 Application of the APWM Mode................................................................................................................................. 2675
20.7.1 Example 1 - Simple PWM Generation (Independent Channels)......................................................................... 2675
20.8 Software..................................................................................................................................................................... 2676
20.8.1 ECAP Registers to Driverlib Functions................................................................................................................2676
20.8.2 ECAP Examples.................................................................................................................................................. 2677
20.9 ECAP Registers......................................................................................................................................................... 2678
20.9.1 ECAP Base Address Table..................................................................................................................................2678
20.9.2 ECAP_REGS Registers...................................................................................................................................... 2679
21 Enhanced Quadrature Encoder Pulse (eQEP)............................................................................................................. 2698
21.1 Introduction................................................................................................................................................................ 2699
21.1.1 EQEP Related Collateral..................................................................................................................................... 2701
21.2 Configuring Device Pins.............................................................................................................................................2701
21.3 Description................................................................................................................................................................. 2702
21.3.1 EQEP Inputs........................................................................................................................................................2702
21.3.2 Functional Description......................................................................................................................................... 2705
21.3.3 eQEP Memory Map............................................................................................................................................. 2706
21.4 Quadrature Decoder Unit (QDU)................................................................................................................................2707
21.4.1 Position Counter Input Modes............................................................................................................................. 2707
21.4.2 eQEP Input Polarity Selection............................................................................................................................. 2710
21.4.3 Position-Compare Sync Output........................................................................................................................... 2710
21.5 Position Counter and Control Unit (PCCU)................................................................................................................ 2710
21.5.1 Position Counter Operating Modes..................................................................................................................... 2710
21.5.2 Position Counter Latch........................................................................................................................................ 2713
List of Figures
Figure 3-1. Device Interrupt Architecture.................................................................................................................................103
Figure 3-2. Interrupt Propagation Path.................................................................................................................................... 105
Figure 3-3. System Error..........................................................................................................................................................110
Figure 3-4. ERRORSTS Pin Diagram...................................................................................................................................... 118
Figure 3-5. Clocking System.................................................................................................................................................... 119
Figure 3-6. System PLL........................................................................................................................................................... 120
Figure 3-7. AUXCLKIN............................................................................................................................................................ 121
Figure 3-8. Single-ended 3.3V External Clock.........................................................................................................................122
Figure 3-9. External Crystal..................................................................................................................................................... 122
Figure 3-10. External Resonator..............................................................................................................................................123
Figure 3-11. Missing Clock Detection Logic.............................................................................................................................132
Figure 3-12. CPU Timers......................................................................................................................................................... 133
Figure 3-13. CPU Timer Interrupt Signals and Output Signal..................................................................................................133
Figure 3-14. Watchdog Timer Module......................................................................................................................................134
Figure 3-15. Memory Architecture........................................................................................................................................... 140
Figure 3-16. Arbitration Scheme on Local Shared Memories..................................................................................................143
Figure 3-17. Arbitration Scheme on Global Shared Memories................................................................................................ 143
Figure 3-18. Simplified LFU Representation............................................................................................................................149
Figure 3-19. PIE Vector Table Swap........................................................................................................................................150
Figure 3-20. LS0/LS1 RAM Memory Swap..............................................................................................................................151
Figure 3-21. TIM Register........................................................................................................................................................180
Figure 3-22. PRD Register...................................................................................................................................................... 181
Figure 3-23. TCR Register.......................................................................................................................................................182
Figure 3-24. TPR Register.......................................................................................................................................................184
Figure 3-25. TPRH Register.................................................................................................................................................... 185
Figure 3-26. PIECTRL Register...............................................................................................................................................188
Figure 3-27. PIEACK Register.................................................................................................................................................189
Figure 19-30. Up-Down Count, Dual-Edge Symmetric Waveform, with Independent Modulation on EPWMxA and
EPWMxB — Active Low.....................................................................................................................................................2424
Figure 19-31. Up-Down Count, Dual-Edge Symmetric Waveform, with Independent Modulation on EPWMxA and
EPWMxB — Complementary.............................................................................................................................................2425
Figure 19-32. Up-Down Count, Dual-Edge Asymmetric Waveform, with Independent Modulation on EPWMxA—Active
Low.....................................................................................................................................................................................2425
Figure 19-33. Up-Down Count, PWM Waveform Generation Utilizing T1 and T2 Events..................................................... 2426
Figure 19-34. Dead_Band Submodule.................................................................................................................................. 2427
Figure 19-35. Configuration Options for the Dead-Band Submodule.................................................................................... 2430
Figure 19-36. Dead-Band Waveforms for Typical Cases (0% < Duty < 100%)..................................................................... 2432
Figure 19-37. PWM Chopper Submodule..............................................................................................................................2434
Figure 19-38. PWM Chopper Submodule Operational Details.............................................................................................. 2435
Figure 19-39. Simple PWM Chopper Submodule Waveforms Showing Chopping Action Only............................................ 2435
Figure 19-40. PWM Chopper Submodule Waveforms Showing the First Pulse and Subsequent Sustaining Pulses........... 2436
Figure 19-41. PWM Chopper Submodule Waveforms Showing the Pulse Width (Duty Cycle) Control of Sustaining Pulses 2437
Figure 19-42. Trip-Zone Submodule......................................................................................................................................2438
Figure 19-43. Trip-Zone Submodule Mode Control Logic......................................................................................................2442
Figure 19-44. Trip-Zone Submodule Interrupt Logic..............................................................................................................2443
Figure 19-45. Event-Trigger Submodule................................................................................................................................2444
Figure 19-46. Event-Trigger Submodule Showing Event Inputs and Prescaled Outputs...................................................... 2445
Figure 19-47. Event-Trigger Interrupt Generator................................................................................................................... 2447
Figure 19-48. Event-Trigger SOCA Pulse Generator............................................................................................................ 2448
Figure 19-49. Event-Trigger SOCB Pulse Generator............................................................................................................ 2448
Figure 19-50. Digital-Compare Submodule High-Level Block Diagram.................................................................................2449
Figure 19-51. GPIO MUX-to-Trip Input Connectivity............................................................................................................. 2450
Figure 19-52. DCxEVT1 Event Triggering............................................................................................................................. 2453
Figure 19-53. DCxEVT2 Event Triggering............................................................................................................................. 2454
Figure 19-54. Event Filtering................................................................................................................................................. 2455
Figure 19-55. Blanking Window Timing Diagram...................................................................................................................2456
Figure 19-56. Valley Switching...............................................................................................................................................2458
Figure 19-57. ePWM X-BAR..................................................................................................................................................2459
Figure 19-58. Simplified ePWM Module................................................................................................................................ 2460
Figure 19-59. EPWM1 Configured as a Typical Sync Source, EPWM2 Configured as a Sync Receiver ............................ 2461
Figure 19-60. Control of Four Buck Stages. Here FPWM1≠ FPWM2≠ FPWM3≠ FPWM4 ............................................................. 2462
Figure 19-61. Buck Waveforms for Control of Four Buck Stages (Note: Only three bucks shown here).............................. 2463
Figure 19-62. Control of Four Buck Stages. (Note: FPWM2 = N x FPWM1).............................................................................. 2464
Figure 19-63. Buck Waveforms for Control of Four Buck Stages (Note: FPWM2 = FPWM1).................................................... 2465
Figure 19-64. Control of Two Half-H Bridge Stages (FPWM2 = N x FPWM1)............................................................................ 2466
Figure 19-65. Half-H Bridge Waveforms for Control of Two Half-H Bridge Stages (Note: Here FPWM2 = FPWM1)................. 2467
Figure 19-66. Control of Dual 3-Phase Inverter Stages as Is Commonly Used in Motor Control..........................................2468
Figure 19-67. 3-Phase Inverter Waveforms for Control of Dual 3-Phase Inverter Stages (Only One Inverter Shown)......... 2469
Figure 19-68. Configuring Two PWM Modules for Phase Control......................................................................................... 2470
Figure 19-69. Timing Waveforms Associated with Phase Control Between Two Modules....................................................2471
Figure 19-70. Control of 3-Phase Interleaved DC/DC Converter.......................................................................................... 2472
Figure 19-71. 3-Phase Interleaved DC/DC Converter Waveforms for Control of 3-Phase Interleaved DC/DC Converter....2473
Figure 19-72. Control of Full-H Bridge Stage (FPWM2 = FPWM1)............................................................................................ 2474
Figure 19-73. ZVS Full-H Bridge Waveforms........................................................................................................................ 2475
Figure 19-74. Peak Current Mode Control of Buck Converter...............................................................................................2476
Figure 19-75. Peak Current Mode Control Waveforms for Control of Buck Converter.......................................................... 2476
Figure 19-76. Control of Two Resonant Converter Stages....................................................................................................2477
Figure 19-77. H-Bridge LLC Resonant Converter PWM Waveforms.....................................................................................2477
Figure 19-78. HRPWM Block Diagram.................................................................................................................................. 2479
Figure 19-79. Resolution Calculations for Conventionally Generated PWM......................................................................... 2480
Figure 19-80. Operating Logic Using MEP............................................................................................................................ 2481
Figure 19-81. HRPWM Extension Registers and Memory Configuration.............................................................................. 2482
Figure 19-82. HRPWM System Interface.............................................................................................................................. 2483
Figure 19-83. HRPWM and HRCAL Source Clock................................................................................................................2484
Figure 19-84. Required PWM Waveform for a Requested Duty = 40.5%..............................................................................2487
Figure 19-85. Low % Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 0)............................................................ 2490
Figure 19-86. High % Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 0)............................................................2491
Figure 19-87. Up-Count Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 1)........................................................2491
Figure 19-88. Up-Down Count Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 1)..............................................2491
Figure 19-89. Simple Buck Controlled Converter Using a Single PWM................................................................................ 2498
Figure 19-90. PWM Waveform Generated for Simple Buck Controlled Converter................................................................ 2498
Figure 19-91. Simple Reconstruction Filter for a PWM-based DAC......................................................................................2500
Figure 19-92. PWM Waveform Generated for the PWM DAC Function................................................................................ 2500
Figure 19-93. TBCTL Register...............................................................................................................................................2528
Figure 19-94. TBCTL2 Register.............................................................................................................................................2530
Figure 19-95. EPWMSYNCINSEL Register.......................................................................................................................... 2531
Figure 19-96. TBCTR Register.............................................................................................................................................. 2532
Figure 19-97. TBSTS Register.............................................................................................................................................. 2533
Figure 19-98. EPWMSYNCOUTEN Register........................................................................................................................ 2534
Figure 19-99. TBCTL3 Register.............................................................................................................................................2536
Figure 19-100. CMPCTL Register......................................................................................................................................... 2537
Figure 19-101. CMPCTL2 Register....................................................................................................................................... 2539
Figure 19-102. DBCTL Register............................................................................................................................................ 2541
Figure 19-103. DBCTL2 Register.......................................................................................................................................... 2544
Figure 19-104. AQCTL Register............................................................................................................................................ 2545
Figure 19-105. AQTSRCSEL Register.................................................................................................................................. 2547
Figure 19-106. PCCTL Register............................................................................................................................................ 2548
Figure 19-107. VCAPCTL Register....................................................................................................................................... 2550
Figure 19-108. VCNTCFG Register.......................................................................................................................................2552
Figure 19-109. HRCNFG Register.........................................................................................................................................2554
Figure 19-110. HRPWR Register...........................................................................................................................................2556
Figure 19-111. HRMSTEP Register....................................................................................................................................... 2557
Figure 19-112. HRCNFG2 Register....................................................................................................................................... 2558
Figure 19-113. HRPCTL Register.......................................................................................................................................... 2559
Figure 19-114. TRREM Register............................................................................................................................................2561
Figure 19-115. GLDCTL Register.......................................................................................................................................... 2562
Figure 19-116. GLDCFG Register......................................................................................................................................... 2564
Figure 19-117. EPWMXLINK Register...................................................................................................................................2566
Figure 19-118. AQCTLA Register.......................................................................................................................................... 2568
Figure 19-119. AQCTLA2 Register........................................................................................................................................ 2570
Figure 19-120. AQCTLB Register..........................................................................................................................................2571
Figure 19-121. AQCTLB2 Register........................................................................................................................................2573
Figure 19-122. AQSFRC Register......................................................................................................................................... 2574
Figure 19-123. AQCSFRC Register...................................................................................................................................... 2575
Figure 19-124. DBREDHR Register...................................................................................................................................... 2576
Figure 19-125. DBRED Register........................................................................................................................................... 2577
Figure 19-126. DBFEDHR Register.......................................................................................................................................2578
Figure 19-127. DBFED Register............................................................................................................................................2579
Figure 19-128. TBPHS Register............................................................................................................................................ 2580
Figure 19-129. TBPRDHR Register.......................................................................................................................................2581
Figure 19-130. TBPRD Register............................................................................................................................................2582
Figure 19-131. CMPA Register.............................................................................................................................................. 2583
Figure 19-132. CMPB Register..............................................................................................................................................2584
Figure 19-133. CMPC Register............................................................................................................................................. 2585
Figure 19-134. CMPD Register............................................................................................................................................. 2586
Figure 19-135. GLDCTL2 Register........................................................................................................................................2587
Figure 19-136. SWVDELVAL Register...................................................................................................................................2588
Figure 19-137. TZSEL Register.............................................................................................................................................2589
Figure 19-138. TZDCSEL Register........................................................................................................................................2591
Figure 19-139. TZCTL Register.............................................................................................................................................2592
Figure 19-140. TZCTL2 Register...........................................................................................................................................2594
Figure 19-141. TZCTLDCA Register..................................................................................................................................... 2596
Figure 19-142. TZCTLDCB Register..................................................................................................................................... 2598
Figure 19-143. TZEINT Register........................................................................................................................................... 2600
Figure 19-144. TZFLG Register.............................................................................................................................................2601
Figure 19-145. TZCBCFLG Register..................................................................................................................................... 2603
Figure 19-146. TZOSTFLG Register..................................................................................................................................... 2605
Figure 19-147. TZCLR Register............................................................................................................................................ 2607
Figure 19-148. TZCBCCLR Register.....................................................................................................................................2609
List of Tables
Table 1-1. C2000Ware Root Directories.................................................................................................................................... 92
Table 2-1. TMU Supported Instructions..................................................................................................................................... 96
Table 3-1. Access to EALLOW-Protected Registers................................................................................................................100
Table 3-2. Reset Signals..........................................................................................................................................................100
Table 3-3. PIE Channel Mapping............................................................................................................................................. 108
Table 3-4. CPU Interrupt Vectors..............................................................................................................................................111
Table 3-5. PIE Interrupt Vectors............................................................................................................................................... 112
Table 3-6. ALT Modes.............................................................................................................................................................. 123
Table 3-7. Clock Connections Sorted by Clock Domain.......................................................................................................... 126
Table 3-8. Clock Connections Sorted by Module Name.......................................................................................................... 127
Table 3-9. Clock Source (OSCCLK) Failure Detection............................................................................................................ 131
Table 3-10. Example Watchdog Key Sequences.....................................................................................................................135
Table 3-11. Effect of Clock-Gating Low-Power Modes on the Device......................................................................................137
Table 3-12. Local Shared RAM................................................................................................................................................141
Table 3-13. Global Shared RAM.............................................................................................................................................. 141
Table 3-14. Addressable Memory Range for MCAN Message RAMs..................................................................................... 142
Table 3-15. Error Handling in Different Scenarios....................................................................................................................146
Table 3-16. Mapping of ECC Bits in Read Data from ECC/Parity Address Map..................................................................... 147
Table 3-17. Mapping of Parity Bits in Read Data from ECC/Parity Address Map....................................................................147
Table 3-18. System Control Registers Impacted..................................................................................................................... 153
Table 3-19. SYSCTL Registers to Driverlib Functions............................................................................................................. 154
Table 3-20. CPUTIMER Registers to Driverlib Functions........................................................................................................ 163
Table 3-21. MEMCFG Registers to Driverlib Functions........................................................................................................... 164
Table 3-22. PIE Registers to Driverlib Functions..................................................................................................................... 168
Table 3-23. NMI Registers to Driverlib Functions.................................................................................................................... 169
Table 3-24. XINT Registers to Driverlib Functions...................................................................................................................170
Table 3-25. WWD Registers to Driverlib Functions..................................................................................................................171
Table 3-26. SYSCTRL Base Address Table............................................................................................................................ 178
Table 3-27. CPUTIMER_REGS Registers...............................................................................................................................179
Table 3-28. CPUTIMER_REGS Access Type Codes.............................................................................................................. 179
Table 3-29. TIM Register Field Descriptions............................................................................................................................180
Table 3-30. PRD Register Field Descriptions.......................................................................................................................... 181
Table 3-31. TCR Register Field Descriptions...........................................................................................................................182
Table 3-32. TPR Register Field Descriptions...........................................................................................................................184
Table 3-33. TPRH Register Field Descriptions........................................................................................................................ 185
Preface
Read This First
Note
Texas Instruments is transitioning to use more inclusive terminology. Some language may be different
than what you would expect to see for certain technology areas.
Notational Conventions
This document uses the following conventions.
• Hexadecimal numbers can be shown with the suffix h or the prefix 0x. For example, the following number is
40 hexadecimal (decimal 64): 40h or 0x40.
• Registers in this document are shown in figures and described in tables.
– Each register figure shows a rectangle divided into fields that represent the fields of the register. Each field
is labeled with its bit name, its beginning and ending bit numbers above, and its read/write properties with
default reset value below. A legend explains the notation used for the properties.
– Reserved bits in a register figure can have one of multiple meanings:
• Not implemented on the device
• Reserved for future device expansion
• Reserved for TI testing
• Reserved configurations of the device that are not supported
– Writing nondefault values to the Reserved bits could cause unexpected behavior and should be avoided.
Glossary
TI Glossary This glossary lists and explains terms, acronyms, and definitions.
Related Documentation From Texas Instruments
For a complete listing of related documentation and development-support tools for these devices, visit the Texas
Instruments website at www.ti.com.
Additionally, the TMS320C28x DSP CPU and Instruction Set Reference Guide and the TMS320C28x Floating
Point Unit and Instruction Set Reference Guide must be used in conjunction with this TRM.
Support Resources
TI E2E™ support forums are an engineer's go-to source for fast, verified answers and design help — straight
from the experts. Search existing answers or ask your own question to get the quick design help you need.
Linked content is provided "AS IS" by the respective contributors. They do not constitute TI specifications and do
not necessarily reflect TI's views; see TI's Terms of Use.
Trademarks
TI E2E™, C2000™, Code Composer Studio™, and Texas Instruments™ are trademarks of Texas Instruments.
USB Specification Revision 2.0™ is a trademark of Compaq Computer Corp.
All trademarks are the property of their respective owners.
Chapter 1
C2000™ Microcontrollers Software Support
This chapter discusses the C2000Ware for the C2000™ microcontrollers. The C2000Ware can be downloaded
from: www.ti.com/tool/C2000WARE
1.1 Introduction.................................................................................................................................................................92
1.2 C2000Ware Structure................................................................................................................................................. 92
1.3 Documentation............................................................................................................................................................92
1.4 Devices........................................................................................................................................................................ 92
1.5 Libraries...................................................................................................................................................................... 92
1.6 Code Composer Studio™ Integrated Development Environment (IDE)................................................................92
1.7 SysConfig and PinMUX Tool......................................................................................................................................93
1.1 Introduction
C2000Ware for the C2000™ microcontrollers is a cohesive set of development software and documentation
designed to minimize software development time. From device-specific drivers and libraries to device peripheral
examples, C2000Ware provides a solid foundation to begin development and evaluation of your product.
C2000Ware can be downloaded from: www.ti.com/tool/C2000WARE
1.2 C2000Ware Structure
The C2000Ware software package is organized into the following directory structure as shown in Table 1-1.
Table 1-1. C2000Ware Root Directories
Directory Name Description
boards Contains the hardware design schematics, BOM, Gerber files, and documentation for C2000 controlCARDS.
device_support Contains all device-specific support files, bit field headers and device development user's guides.
docs Contains the C2000Ware package user's guides and the HTML index page of all package documentation.
driverlib Contains the device-specific driver library and driver-based peripheral examples.
libraries Contains the device-specific and core libraries.
1.3 Documentation
Within C2000Ware, there is an extensive amount of development documentation ranging from board design
documentation, to library user's guides, to driver API documentation. The "boards" directory contains all the
hardware design, BOM, Gerber files, and more for controlCARDs. To assist with locating the necessary
documentation, an HTML page is provided that contains a full list of all the documents in the C2000Ware
package. Locate this page in the "docs" directory.
1.4 Devices
C2000Ware contains the necessary software and documentation to jumpstart development for C2000™
microcontrollers. Each device includes device-specific common source files, peripheral example projects, bit
field headers, and if available, a device peripheral driver library. Additionally, documentation is provided for each
device on how to set up a CCS project, as well as give an overview of all the included example projects and
assist with troubleshooting. For devices with a driver library, documentation is also included that details all the
peripheral APIs available.
To learn more about C2000™ microcontrollers, visit: www.ti.com/c2000.
1.5 Libraries
The libraries included in C2000Ware range from fixed-point and floating-point math libraries, to specialized DSP
libraries, as well as calibration libraries. Each library includes documentation and examples, where applicable.
Additionally, the Flash API files and boot ROM source code are located in the "libraries" directory.
1.6 Code Composer Studio™ Integrated Development Environment (IDE)
Code Composer Studio™ is an integrated development environment (IDE) that supports TI's microcontroller and
embedded processors portfolio. The Code Composer Studio™ IDE comprises a suite of tools used to develop
and debug embedded applications. The latest version of Code Composer Studio™ IDE can be obtained at:
www.ti.com/ccstudio
All projects and examples in C2000Ware are built for and tested with the Code Composer Studio™ IDE.
Although the Code Composer Studio™ IDE is not included with the C2000Ware installer, Code Composer
Studio™ IDE is easily obtainable in a variety of versions.
Chapter 2
C28x Processor
This chapter contains a short description of the C28x processor and extended instruction sets.
Further information can be found in the following documents:
• TMS320C28x CPU and Instruction Set Reference Guide
• TMS320C28x Extended Instruction Sets Technical Reference Manual
• Accelerators: Enhancing the Capabilities of the C2000 MCU Family Technical Brief
• TMS320C28x FPU Primer Application Report
2.1 Introduction.................................................................................................................................................................95
2.2 C28X Related Collateral............................................................................................................................................. 95
2.3 Features.......................................................................................................................................................................95
2.4 Floating-Point Unit (FPU)...........................................................................................................................................96
2.5 Trigonometric Math Unit (TMU)................................................................................................................................. 96
2.6 VCRC Unit....................................................................................................................................................................97
2.1 Introduction
The C28x CPU is a 32-bit fixed-point processor. This device draws from the best features of digital signal
processing, reduced instruction set computing (RISC), microcontroller architectures, firmware, and tool sets.
For more information on CPU architecture and instruction set, see the TMS320C28x CPU and Instruction Set
Reference Guide.
2.2 C28X Related Collateral
Foundational Materials
• C2000 Academy - C28x
• C2000 C28x Migration from COFF to EABI
• C2000 C28x Optimization Guide
• C2000 Performance Tips and Tricks
• C2000 Software Guide
• CGT Data Blocking C2000
• Enhancing the Computational Performance of the C2000™ Microcontroller Family Application Report
Expert Materials
• Fast Integer Division - A Differentiated Offering From C2000 Product Family Application Report
2.3 Features
The CPU features include a modified Harvard architecture and circular addressing. The RISC features
are single-cycle instruction execution, register-to-register operations, and modified Harvard architecture. The
microcontroller features include ease of use through an intuitive instruction set, byte packing and unpacking,
and bit manipulation. The modified Harvard architecture of the CPU enables instruction and data fetches to be
performed in parallel. The CPU can read instructions and data while the CPU writes data simultaneously to
maintain the single-cycle instruction operation across the pipeline.
Exponent instruction IEXP2F32 and logarithmic instruction LOG2F32 have been added to support computation
of floating-point power function for the nonlinear proportional integral derivative control (NLPID) component of
the C2000 Digital Control Library. These two added instructions reduce the power function calculations from a
typical of 300 cycles using library emulation to less than 10 cycles.
No changes have been made to existing instructions, pipeline, or memory bus architecture. All TMU instructions
use the existing FPU register set (R0H to R7H) to carry out the operations.
For more information, see the TMS320C28x Extended Instruction Sets Technical Reference Manual.
Chapter 3
System Control and Interrupts
The system-level functionality of this microcontroller configures the clocking, resets, and interrupts of the CPU
and peripherals, as well as the operation of the on-chip memories, timers, and security features.
3.1 Introduction.................................................................................................................................................................99
3.2 Power Management..................................................................................................................................................100
3.3 Device Identification and Configuration Registers............................................................................................... 100
3.4 Resets........................................................................................................................................................................100
3.5 Peripheral Interrupts................................................................................................................................................ 103
3.6 Exceptions and Non-Maskable Interrupts.............................................................................................................. 117
3.7 Clocking.....................................................................................................................................................................118
3.8 32-Bit CPU Timers 0/1/2........................................................................................................................................... 133
3.9 Watchdog Timer........................................................................................................................................................134
3.10 Low-Power Modes.................................................................................................................................................. 137
3.11 Memory Controller Module.................................................................................................................................... 140
3.12 JTAG........................................................................................................................................................................ 148
3.13 Live Firmware Update............................................................................................................................................ 148
3.14 System Control Register Configuration Restrictions......................................................................................... 153
3.15 Software.................................................................................................................................................................. 154
3.16 SYSCTRL Registers............................................................................................................................................... 178
3.1 Introduction
System-level configuration is controlled by a group of submodules that are collectively referred to as the system
control module. The system control module provides the following capabilities:
• System-level resets, including power-on and brownout resets
• Clock source selection and PLL configuration
• Missing clock detection
• Clock-gating low-power modes
• Peripheral interrupt handling
• Non-maskable interrupts for certain fault conditions
• Three 32-bit timers
• Windowed watchdog timer, which can generate an interrupt or a reset
• RAM initialization, write protection, and controller control
• Flash memory ECC, wait state, and cache configuration
• Dual-zone code security module
Foundational Materials
• C2000 MCU JTAG Connectivity Debug Application Report
Expert Materials
• C2000 CPU Memory Built-In Self-Test Application Report
• Live Firmware Update Without Device Reset on C2000 MCUs Application Report
• Programming of External Nonvolatile Memory Using SDFlash for TMS320C28x Devices Application Report
• Software Phased-Locked Loop (PLL) Design Using C2000 Microcontrollers Application Report
3.1.2 LOCK Protection on System Configuration Registers
Several system configuration registers are protected from spurious CPU writes by LOCK registers. Once these
associated LOCK register bits are set, the respective locked registers can no longer be modified by software.
See the register descriptions for details.
3.1.3 EALLOW Protection
Some registers in the system are protected from spurious CPU writes by the EALLOW protection mechanism.
This uses the special CPU instructions EALLOW and EDIS to enable and disable access to protected registers.
The current protection state is given by the EALLOW bit in the CPU ST1 register, as shown in Table 3-1.
Register protection is enabled by default at startup. While protected, all writes to protected registers by the CPU
are ignored. Only CPU reads, JTAG reads, and JTAG writes are allowed. If protection is disabled by executing
the EALLOW instruction, the CPU is allowed to write freely to protected registers. After modifying registers, the
registers can once again be protected by executing the EDIS instruction to clear the EALLOW bit.
Writes to the clock configuration and peripheral clock enable registers can be disabled until the next reset by
writing to special lock registers.
(1) The EALLOW bit is overridden by way of the JTAG port, allowing full access of protected registers during debug from the Code
Composer Studio™ IDE interface.
3.4 Resets
This section explains the types and effects of the different resets on this device.
3.4.1 Reset Sources
Table 3-2 summarizes the various reset signals and the effect on the device.
Table 3-2. Reset Signals
Reset Source CPU Core Reset Peripherals JTAG / Debug IOs XRS Output
(C28x, FPU, VCU) Reset Logic Reset
POR Yes Yes Yes Hi-Z Yes
BOR Yes Yes Yes Hi-Z Yes
XRS Pin Yes Yes No Hi-Z -
WDRS Yes Yes No Hi-Z Yes
NMIWDRS Yes Yes No Hi-Z Yes
SYSRS (Debugger Reset) Yes Yes No Hi-Z No
SCCRESET Yes Yes No Hi-Z No
SIMRESET.XRS Yes Yes No Hi-Z Yes
SIMRESET.CPU1RS Yes Yes No Hi-Z No
100 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
After a reset, the reset cause register (RESC) is updated with the reset cause. The bits in this register maintain
the state across multiple resets. The bits can only be cleared by a power-on reset (POR) or by writing ones to
the RESCCLR register. Some are cleared by the boot ROM as part of the start-up routines.
Many peripheral modules have individual resets accessible through the SOFTPRESx registers. For information
about a module's reset state, refer to the appropriate chapter for that module.
After any reset, the CPU begins execution from address 0x3FFFC0 (the reset vector), which is in the boot ROM.
After running the boot ROM code, the CPU typically branches to the start of the Flash memory at address
0x80000. For more information on controlling the boot process, see Chapter 4 .
Note
After a POR, the boot ROMs clear the M0/M1, LSx, GSx, and message RAMs to make sure that the
memories contain valid ECC or parity.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 101
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
102 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
TIMER1 INT13
TIMER2 INT14
Peripherals
See ePIE Table
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 103
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
104 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
When a peripheral generates an interrupt (on PIE group x, channel y), the interrupt triggers the following
sequence of events:
1. The interrupt is latched in PIEIFRx.y.
2. If PIEIERx.y is set, the interrupt propagates.
3. If PIEACK.x is clear, the interrupt propagates and PIEACK.x is set.
4. The interrupt is latched in IFR.x.
5. If IER.x is set, the interrupt propagates.
6. If INTM is clear, the CPU receives the interrupt.
7. Any instructions in the D2 or later stage of the pipeline are run to completion. Instructions in earlier stages
are flushed.
8. The CPU saves the context on the stack.
9. IFR.x and IER.x are cleared. INTM is set. EALLOW is cleared.
10. The CPU fetches the ISR vector from the PIE. PIEIFRx.y is cleared.
11. The CPU branches to the ISR.
The interrupt latency is the time between PIEIFRx.y latching the interrupt and the first ISR instruction entering
the execution stage of the CPU pipeline. The minimum interrupt latency is 14 SYSCLK cycles. Wait states on the
ISR or stack memories add to the latency. External interrupts add a minimum of two SYSCLK cycles for GPIO
synchronization plus extra time for input qualification (if used). Loops created using the C28x RPT instruction
cannot be interrupted.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 105
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
106 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
The PIEIFR bits must never be cleared in software since the read/modify/write operation can cause incoming
interrupts to be lost. The only safe way to clear a PIEIFR bit is to have the CPU take the interrupt. The following
procedure can be used to bypass the normal ISR:
1. Disable interrupts globally (DINT or SETC INTM).
2. Modify the PIE vector table to map the PIEIFR bit's interrupt vector to an empty ISR. This ISR only contains
a return from interrupt instruction (IRET).
3. Disable the interrupt in the peripheral registers.
4. Enable interrupts globally (EINT or CLRC INTM).
5. Wait for the pending interrupt to be serviced by the empty ISR.
6. Disable interrupts globally.
7. Modify the PIE vector table to map the interrupt vector back to the original ISR.
8. Clear the PIEACK bit for the interrupt's PIE group.
9. Enable interrupts globally.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 107
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
Cells that are empty are Reserved.
108 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 109
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
110 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 111
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
112 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 113
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
114 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 115
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
116 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
CPU Suspended When the CPU is suspended, the NMI watchdog counter is suspended.
Run-Free Mode When the CPU is placed in run-free mode, the NMI watchdog counter
resumes operation as normal.
Real-Time Single-Step Mode When the CPU is in real-time single-step mode, the NMI watchdog
counter is suspended. The counter remains suspended even within real-
time interrupts.
Real-Time Run-Free Mode When the CPU is in real-time run-free mode, the NMI watchdog counter
operates as normal.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 117
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
A RAM fetch access violation triggers an ITRAP in addition to the normal peripheral interrupt for RAM
access violations. The CPU handles the ITRAP first.
NMISHDFLG.Bit-0
PGIO
NMISHDFLG.Bit-1
3.3 1.2 IN (not used)
ERROR
3.3 1.2 ERR
Edge
STS
detect
REG
‘0’
NMISHDFLG.Bit-15
(Always
Output)
PGIO_33
(from PMM)
3.7 Clocking
This section explains the clock sources and clock domains on this device, and how to configure them for
application use. Figure 3-5 and Figure 3-6 provide an overview of the device's clocking system.
118 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
WDCLK Watchdog
Timer
PERCLKDIVSEL.USBCLKDIV
/1 CLBCLKCTL
/2
. SYSCLK
USBBITCLK
.
.
/8 CLB_TILE_CLK
/1 /1 or /2
PLLCLK
/2
.
.
CLB_REG_CLK
.
SYSCLKDIVSEL /8
SYSCLK
SYS PLLSYSCLK
Divider NMIWD
INTOSC1 SYSPLL PLLRAWCLK
INTOSC2 OSCCLK
PLLCLKEN
X1 (XTAL)
OSCCLKRCSEL CPUCLK
CPU FPU
TMU
GSx RAMs
Boot ROM CLA ROM LSx RAMs
SYSCLK SYSCLK ePIE DCSM Mx RAMs
FLASH XINT Message RAM
GPIO WD System Control
KDIV
AUXCLKDIVSEL.MCANxCLKDIV
/1
0
/2
Reserved 1
.
AUXCLKIN(GPIO29) MCAN Bit Clock
2 .
PLLRAWCLK 3 .
/20
CLKSRCCTL2.MCANxBCLKSEL
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 119
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
SYSPLL
÷
IMULT
fOSCCLK
fPLLRAWCLK = × IMULT (1)
REFDIV + 1 ODIV + 1
120 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
GPIO29
VSS (AUXCLKIN)
+3.3 V
VDD Out
3.3-V Oscillator
Gnd
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 121
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
• An external crystal. The crystal can be connected across X1 and X2 with the load capacitors connected to
VSS as shown in Figure 3-9.
122 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
• An external resonator. The resonator can be connected across X1 and X2 with the ground connected to VSS
as shown in Figure 3-10.
(1) OSCOFF and SE determine the ALT mode of GPIO18 and GPIO19.
(2) There is an approximately 1Kohm pull-down on X1 in this mode, external single-ended clock must be able to drive this load.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 123
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
The application needs to wait for 5 SYSCLK cycles after enabling the clock to the peripherals when
using PCLKCRx.
124 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 125
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
126 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 127
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
128 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Note
The system clock frequency (PLLSYSCLK) can not exceed the limit specified in the TMS320F28P55x
Real-Time Microcontrollers Data Sheet. This limit does not allow for oscillator tolerance.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 129
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
1. SYSPLL must be bypassed and powered down manually before changing the OSCCLK source.
2. At least 60 CPU clock cycles delay is needed after bypassing PLL, SYSPLLCTL1.PLLCLKEN = 0.
3. At least 60 CPU clock cycles delay is needed after PLL is powered down, that is,
SYSPLLCTL1.PLLEN = 0.
4. At least 300 CPU clock cycles delay is needed after OSSCLK source is changed.
5. PLL SLIP bit is not supported. The DCC can be used to check the validity of the PLL clock. This
feature is included as part of SysCtl_setClock() function inside C2000Ware.
130 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 131
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
On a complete clock failure when OSCCLK is dead, it can take a maximum time of 8192 INTOSC1
cycles (that is, 0.8192ms) before the CLOCKFAIL signal goes high, after which:
• NMI is generated
• OSCCLK is switched to INTOSC1
• PWM Trip happens
132 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
A. The timer registers are connected to the memory bus of the C28x processor.
B. The CPU timers are synchronized to SYSCLKOUT.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 133
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
134 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 135
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
If the watchdog interrupt is used to wake-up from an IDLE low-power mode condition, software must
make sure that the WDINT signal goes back high before attempting to reenter the IDLE mode. The
WDINT signal is held low for 512 INTOSC1 cycles when the watchdog interrupt is generated. The
current state of WDINT can be determined by reading the watchdog interrupt status bit (WDINTS) bit
in the SCSR register. WDINTS follows the state of WDINT by two SYSCLKOUT cycles.
In IDLE mode, the watchdog interrupt (WDINT) signal can generate an interrupt to the CPU to take the CPU out
of IDLE mode. As with any other peripheral, the watchdog interrupt triggers a WAKE interrupt in the PIE during
IDLE mode. User software must determine which peripheral caused the interrupt.
In HALT mode, the internal oscillators and watchdog timer are kept active if the user sets
CLKSRCCTL1.WDHALTI = 1. A watchdog reset can wake the system from HALT mode, but a watchdog
interrupt cannot.
3.9.5 Emulation Considerations
The watchdog module behaves as follows under various debug conditions:
CPU Suspended When the CPU is suspended, the watchdog clock (WDCLK) is
suspended.
Run-Free Mode When the CPU is placed in run-free mode, then the watchdog module
resumes operation as normal.
Real-Time Single-Step Mode When the CPU is in real-time single-step mode, the watchdog clock
(WDCLK) is suspended. The watchdog remains suspended even within
real-time interrupts.
Real-Time Run-Free Mode When the CPU is in real-time run-free mode, the watchdog operates as
normal.
136 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
(1) The Flash module is not powered down by hardware in any LPM. The Flash module can be powered down using software if required
by the application. For more information, see the Flash Module chapter.
(2) The XTAL is not powered down by hardware in any LPM. The XTAL can be powered down using software by setting the
XTALCR.OSCOFF bit to 1. This can be done at any time during the application if the XTAL is not required.
3.10.2 IDLE
IDLE is a standard feature of the C28x CPU. In this mode, the CPU clock is gated while all peripheral clocks are
left running. IDLE can thus be used to conserve power while a CPU is waiting for peripheral events.
Any enabled interrupt wakes up the CPU from IDLE mode.
To enter IDLE mode, set LPMCR.LPM to 0x0 and execute the IDLE instruction.
The CPU resumes normal operations upon any enabled interrupt event.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 137
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
3.10.3 STANDBY
STANDBY is a more aggressive low-power mode that gates both the CPU clock and any peripheral clocks
derived from the CPU's SYSCLK. The watchdog however, is left active. STANDBY is best suited for an
application where the wake-up signal comes from an external system (or CPU subsystem) rather than a
peripheral input.
An NMI (or optionally) a watchdog interrupt or a configured GPIO can wake the CPU from STANDBY mode.
Each GPIO can be configured to wake up the CPU when the GPIOs are driven active low. Upon wake up, the
CPU receives the WAKEINT interrupt if configured.
To enter STANDBY mode:
1. Set LPMCR.LPM to 0x1.
2. Enable the WAKEINT interrupt in the PIE.
3. For watchdog interrupt wakeup, set LPMCR.WDINTE to 1 and configure the watchdog to generate
interrupts.
4. For GPIO wakeup, set GPIOLPMSEL0 and GPIOLPMSEL1 to connect the chosen GPIOs to the LPM
module, and set LPMCR.QUALSTDBY to select the number of OSCCLK cycles for input qualification.
5. Execute the IDLE instruction to enter STANDBY.
To wake up from STANDBY mode:
1. Configure the desired GPIO to trigger the wakeup.
2. Drive the selected GPIO signal low; the signal must remain low for the number of OSCCLK cycles specified
in the QUALSTDBY bits in the LPMCR register. If the signal is sampled high during this period, the count
restarts.
At the end of the qualification period, the PLL enables the CLKIN to the CPU and the WAKEINT interrupt is
latched in the PIE block.
The CPU is now out of STANDBY mode and can resume normal execution.
138 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
3.10.4 HALT
HALT is a global low-power mode that gates almost all system clocks and allows for power-down of oscillators
and analog blocks.
Unlike on other C2000™ devices, HALT mode does not automatically power down the XTAL upon HALT entry.
Additionally, if the XTAL is not powered on, waking up from HALT mode does not automatically power on the
XTAL. The XTALCR.OSCOFF bit has been added to power on and off the XTAL circuitry when not needed
through application software.
For applications that require minimal power consumption during HALT mode, application software can power off
the XTAL prior to entering HALT. If the OSCCLK source is configured to be XTAL, the application can first switch
the OSSCLK source to INTOSC1 or INTOSC2 prior to setting XTALCR.OSCOFF.
Each GPIO can be configured to wake up the system from HALT. No other wake up option is available. However,
the watchdog timer can still be clocked, and can be configured to produce a watchdog reset if a timeout
mechanism is needed. On wake up, the CPU receives a WAKEINT interrupt.
To enter HALT mode:
1. Enable the WAKEINT interrupt in the PIE.
2. Set LPMCR.LPM to 0x2. Set GPIOLPMSEL0 and GPIOLPMSEL1 to connect the chosen GPIOs to the LPM
module.
3. Set CLKSRCCTL1.WDHALTI to 1 to keep the watchdog timer active and INTOSC1 and INTOSC2 powered
up in HALT.
4. Set CLKSRCCTL1.WDHALTI to 0 to disable the watchdog timer and power down INTOSC1 and INTOSC2 in
HALT.
5. Execute the IDLE instruction to enter HALT.
If an interrupt or NMI is received while the IDLE instruction is in the pipeline, the system begins executing the
WAKEINT ISR. After HALT wake up, ISR execution resumes where execution left off.
Note
Before entering HALT mode, if the system PLL is locked (SYSPLL.LOCKS = 1), the PLL must also be
connected to the system clock (PLLCTL1.PLLCLKEN = 1). Otherwise, the device never wakes up.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 139
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
140 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
01 0 All Data Read LSx memory is shared between CPU and CLA1
Data Write
The shared RAM has different levels of access protection that can be enabled or disabled by configuring specific
bits in the GSxACCPROT registers.
Access protection configuration for the GSx RAM block can be locked by the user to prevent further updates to
this bit field. The user can also choose to permanently lock the configuration to individual bit fields by setting
the specific bit fields in the GSxCOMMIT register (refer to the register description for more details). Once a
configuration is committed for a particular GSx RAM block, the configuration can not be changed further until
CPU.SYSRS is issued.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 141
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
Control of the CAN message RAMs can only be given to the CPU if the MCAN module is not used by
the system. The reset source for the MCANRAMACC register is PORSn (Power On Reset) and not
XRSn. This is to align the behavior with other CPU controlled RAMs. It is not recommended to change
the MCANRAMACC bit once the bit is set, as the contents of the RAM are not compatible with the
MCAN module. Even if the MCAN module is only used for boot purposes, it is not recommended to
change the ownership to the CPU.
Each MCAN module has 4KB of message RAM embedded locally and exclusively accessible by the MCAN
module.
In systems that do not use one or both MCAN modules, there is the ability to re-assign the RAM to the CPU
memory domain in data space only. The MCANRAMACC register in the Section 3.16.11 provides control of each
MCAN instance RAM assignment individually. Once set, the MCAN module has no access to these RAMs. If the
MCAN module is used at all in the system, it is not recommended to allocate this RAM to the CPU.
The C28x is a 16-bit word based CPU, as such the addressable memory is reduced to 2KB in size as shown in
Table 3-14.
Table 3-14. Addressable Memory Range for MCAN Message RAMs
MCANRAMACC MCANA Memory Addresses MCANB Memory Addresses
0 (owned by MCAN) 0x58000-0x58FFF 0x5A000-0x5AFFF
1 (owned by C28x) 0x58000-0x587FF 0x5A000-0x5A7FF
142 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
C28x CPU
Fixed Round Robin Arbitraon
DATA WRITE
CPU RR CPU
DATA READ Fixed
Priority
Arbiter
PROGRAM
READ/FETCH
RR NPU RR DMA
DMA READ/WRITE
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 143
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
For debug accesses, all the protections are disabled.
144 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Note 1: All access protections are ignored during debug accesses. Write access to a protected
memory go through when the write is done using the debugger, irrespective of the write
protection configuration for that memory.
Note 2: Access protection is not implemented for M0 and M1 memories.
Note 1: All access protections are ignored during debug accesses. Write access to a protected
memory go through when the write is done using the debugger, irrespective of the write
protection configuration for that memory.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 145
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Note
In the case of an uncorrectable error during fetch on the CPU, there is the possibility of getting an
ITRAP before an NMI exception, since garbage instructions enter into the CPU pipeline before the
NMI gets generated.
During debug accesses, correctable as well as uncorrectable errors are masked.
146 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Note
The memory map for ECC/Parity bits and data bits are the same. The user must choose a different
test mode to access ECC/Parity bits. In test mode, all access to memories (data as well as ECC/
Parity) can be done as 32-bit access only.
Table 3-16 and Table 3-17 show the bit mapping for the ECC/Parity bits when the bits are read in RAMTEST
mode using the respective addresses.
Table 3-16. Mapping of ECC Bits in Read Data from ECC/Parity Address Map
Data Bits Location in Read Data Content (ECC Memory)
6:0 ECC Code for lower 16 bits of data
7 Not Used
14:8 ECC Code for upper 16 bits of data
15 Not Used
22:16 ECC Code for address
31:23 Not Used
Table 3-17. Mapping of Parity Bits in Read Data from ECC/Parity Address Map
Data Bits Location in Read Data Content (Parity Memory)
0 Parity for lower 16 bits of data
7:1 Not Used
8 Parity for upper 16 bits of data
15:9 Not Used
16 Parity for address
31:17 Not Used
Note
None of the hosts must access the memory while initialization is taking place. If memory is accessed
before RAMINITDONE is set, the memory read/write as well as initialization does not happen
correctly.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 147
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
3.12 JTAG
Gel files perform certain initialization tasks. This helps the users in a debug environment. However, when
executed standalone (without the emulator connected) the application can not work as expected, since there is
no gel file to perform those initializations. For example, gel file disables watchdog. If user code does not service
the watchdog in the application (or fails to disable the watchdog), there is a difference in how the application
behaves with the debugger and without the debugger.
Common tasks performed by the gel files (but not boot-ROM):
• On Reset:
– Disable Flash ECC on some devices.
• Disabling ECC only when using Flash API functions, see the Flash API User Guide for details.
Otherwise, TI suggests to always program ECC and enable ECC-check.
– Disable Watchdog
– Enable CLA clock
– Select real-time mode or C28x mode
• On Restart:
– Select real-time mode or C28x mode
– Clear IER and IFR
• On Target Connect:
– Select real-time mode or C28x mode
148 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
User application code initiates this transition, typically by jumping to an entry point in the new firmware. There,
a compiler provided initialization routine specific to LFU is called. This initializes user-specified data variables.
When execution arrives in main() of the new application, user application code performs minimal initialization to
get the new application running.
3.13.2 LFU Switchover Steps
A simplified representation of the LFU switchover is shown in Figure 3-18 and is described in the following steps:
1. In typical systems, a host – typically a PC or another MCU, initiates the LFU (depicted as LFU Request) on
the application MCU (in this case, the C2000 MCU) that is executing the real-time control application. This
initiates the Flash Program sequence in the application MCU. This runs as a background process even as
the application MCU continues executing firmware (depicted as Firmware - 1).
2. Since the compiler can move existing PIE vectors and function pointers to new locations between firmware
versions, PIE vectors or function pointers can get added or removed between firmware versions. User
application code needs to manage these properly and efficiently during LFU. In the absence of Flash
remapping (where different Flash memory banks can be mapped to the same address), PIE vector table
remapping, that is “swapping” and RAM memory block swapping are features supported on the device.
Without swapping, user application code needs to individually update each PIE vector and each function
pointer, adding valuable cycles to the LFU switchover time. With swapping, prior to LFU switchover, user
application code can populate a different PIE vector table (depicted as PIE Swap Memory Update) and a
different LS RAM region (depicted as LSx Swap Memory Update).
3. When complete (depicted as LFU Switchover – waiting for appropriate time), user application code initiates
the transition to new firmware. Once the compiler LFU initialization routine completes and transfers
execution to the new application (depicted as Firmware – 2), user application code needs to perform
necessary initialization before the new application can begin running. Since PIE vectors and function
pointers have already been populated in the “swap” locations, all that is required is a PIE vector table
swap and LSx RAM Memory Swap (depicted as PIE Vector Swap, LSx Memory Swap).
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 149
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
PIE-2 PIE-2
150 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
If physical memory Block 1 contains function pointers for the current firmware, the same relative locations in
physical memory Block 2 can be populated with function pointers for the new firmware prior to LFU switchover.
During LFU switchover, a simple swap operation is initiated by user application code, and this operation takes
just 1 CPU clock cycle. This allows user application code to always have function pointers in LS0, yet have two
different physical blocks that can map to the LS0 address range.
For example, if current firmware contains 10 function pointers present at the start of Block 1 (LS0 address
space). If the new firmware contains the same 10 function pointers that now need to be updated, user
application code can place these at the start of Block 2 (LS1 address space) prior to LFU switchover. During
LFU switchover, user application code executes a LS0/LS1 RAM memory swap, where the physical RAM block
previously mapped to the LS1 address space can now be mapped to the LS0 address space, and hence can be
used seamlessly for function pointer addressing for the new firmware.
The register bit LFUStatus.LS01Swap provides the status of LS0/LS1 RAM memory swap.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 151
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7. LS0/LS1 RAM memory swap shall not be initiated when RAM-test (LSxTEST.TEST_LS0 = 1 or
LSxTEST.TEST_LS1 = 1) is in progress for LS0 or LS1 blocks.
8. With DCSM security on the device, in general, LS0 and LS1 RAM blocks can be assigned to different
security zones. However, with LS0/LS1 RAM memory swaps, different physical RAM blocks can get mapped
to the same address space. Application software shall therefore make sure that both LS0 and LS1 have the
same security settings (for example, zone, EXE protection), if there is a plan to implement LS0/LS1 RAM
memory swap. Hardware logic is implemented on the device to prevent swap of LS0 and LS1 if the blocks
have different security configurations.
9. To prevent security vulnerabilities, LS0/LS1 RAM memory swap is not allowed if the memory swap is
initiated by code from a different zone. For example:
• if LS0 and LS1 are part of Zone1, the swap is not allowed if the code that initiates the swap resides in
Zone2 or unsecure zone
• if LS0 and LS1 are part of Zone2, the swap is not allowed if the code that initiates the swap resides in
Zone1 or unsecure zone
• if LS0 and LS1 are part of the same zone that is unsecure, the swap is allowed in all cases irrespective of
where the code that initiates the swap resides
• if LS0 and LS1 are part of the same zone and is unlocked, the swap can be initiated from code residing
anywhere (including from the debugger)
10. Once the swap is initiated, the swap happens in the next cycle, subject to the swap meeting the security
requirements previously mentioned. After initiation of a swap, application software shall check if the swap
was correctly configured by checking the LFUStatus.LS01Swap status register. Consistency between
LFUStatus.LS01Swap and LFUConfig.LS01Swap helps determine if the swap was correctly configured. If
LFUStatus.LS01Swap does not match LFUConfig.LS01Swap, LFUConfig.LS01Swap needs to be cleared by
user application code.
152 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 153
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
3.15 Software
3.15.1 SYSCTL Registers to Driverlib Functions
Table 3-19. SYSCTL Registers to Driverlib Functions
File Driverlib Function
PARTIDL
sysctl.c SysCtl_getDeviceParametric
PARTIDH
sysctl.c SysCtl_getDeviceParametric
REVID
sysctl.h SysCtl_getDeviceRevision
TRIMERRSTS
-
SOFTPRES0
sysctl.h SysCtl_resetPeripheral
SOFTPRES2
- See SOFTPRES0
SOFTPRES3
- See SOFTPRES0
SOFTPRES4
- See SOFTPRES0
SOFTPRES7
- See SOFTPRES0
SOFTPRES8
- See SOFTPRES0
SOFTPRES9
- See SOFTPRES0
SOFTPRES10
- See SOFTPRES0
SOFTPRES11
- See SOFTPRES0
SOFTPRES13
- See SOFTPRES0
SOFTPRES14
- See SOFTPRES0
SOFTPRES15
- See SOFTPRES0
SOFTPRES16
- See SOFTPRES0
SOFTPRES17
-
SOFTPRES18
-
SOFTPRES19
-
SOFTPRES20
-
154 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 155
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
156 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 157
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
158 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 159
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
160 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 161
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
162 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 163
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
164 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 165
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
166 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 167
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
168 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 169
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
170 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 171
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
172 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
This example demonstrates error handling in case of various erroneous memory read/write operations.
Error handling in case of CPU read/write violations, correctable & uncorrectable memory errors has been
demonstrated. Correctable memory errors & violations can generate SYS_INT interrupt to CPU while
uncorrectable errors lead to NMI generation.
External Connections
• None
Watch Variables
• testStatusGlobal - Equivalent to TEST_PASS if test finished correctly, else the value is set to TEST_FAIL
• errCountGlobal - Error counter
3.15.11 INTERRUPT Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/interrupt
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
3.15.11.1 External Interrupts (ExternalInterrupt)
FILE: interrupt_ex1_external.c
This program sets up GPIO0 as XINT1 and GPIO1 as XINT2. Two other GPIO signals are used to trigger the
interrupt (GPIO10 triggers XINT1 and GPIO11 triggers XINT2). The user is required to externally connect these
signals for the program to work properly.
XINT1 input is synced to SYSCLKOUT.
XINT2 has a long qualification - 6 samples at 510*SYSCLKOUT each.
GPIO16 will go high outside of the interrupts and low within the interrupts. This signal can be monitored on a
scope.
Each interrupt is fired in sequence - XINT1 first and then XINT2
External Connections
• Connect GPIO10 to GPIO0. GPIO0 will be assigned to XINT1
• Connect GPIO11 to GPIO1. GPIO1 will be assigned to XINT2
Monitor GPIO16 with an oscilloscope. GPIO16 will be high outside of the ISRs and low within each ISR.
Watch Variables
• xint1Count for the number of times through XINT1 interrupt
• xint2Count for the number of times through XINT2 interrupt
• loopCount for the number of times through the idle loop
3.15.11.2 Multiple interrupt handling of I2C, SCI & SPI Digital Loopback
FILE: interrupt_ex2_with_i2c_sci_spi_loopback.c
This program is used to demonstrate how to handle multiple interrupts when using multiple communication
peripherals like I2C, SCI & SPI Digital Loopback all in a single example. The data transfers would be done with
FIFO Interrupts.
It uses the internal loopback test mode of these modules. Both the TX and RX FIFOs and their interrupts are
used. Other than boot mode pin configuration, no other hardware configuration is required.
A stream of data is sent and then compared to the received stream. The sent data looks like this for I2C and
SCI:
0000 0001
0001 0002
0002 0003
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 173
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
....
00FE 00FF
00FF 0000
etc..
The sent data looks like this for SPI:
0000 0001
0001 0002
0002 0003
....
FFFE FFFF
FFFF 0000
etc..
This pattern is repeated forever.
External Connections
• None
Watch Variables
• sDatai2cA - Data to send through I2C
• rDatai2cA - Received I2C data
• rDataPoint - Used to keep track of the last position in the receive I2C stream for error checking
• sDataspiA - Data to send through SPI
• rDataspiA - Received SPI data
• rDataPointspiA - Used to keep track of the last position in the receive SPI stream for error checking
• sDatasciA - SCI Data being sent
• rDatasciA - SCI Data received
• rDataPointA - Keep track of where we are in the SCI data stream. This is used to check the incoming data
3.15.11.3 CPU Timer Interrupt Software Prioritization
FILE: interrupt_ex3_sw_prioritization.c
This examples demonstrates the software prioritization of interrupts through CPU Timer Interrupts. Software
prioritization of interrupts is achieved by enabling interrupt nesting.
In this device, hardware priorities for CPU Timer 0, 1 and 2 are set as timer 0 being highest priority and timer 2
being lowest priority. This example configures CPU Timer0, 1, and 2 priority in software with timer 2 priority being
highest and timer 0 being lowest in software and prints a trace for the order of execution.
For most applications, the hardware prioritizing of the interrupts is sufficient. For applications that need custom
prioritizing, this example illustrates how this can be done through software.User specific priorities can be
configured in sw_prioritized_isr_level.h header file.
To enable interrupt nesting, following sequence needs to followed in ISRs. Step 1: Set the global priority: Modify
the IER register to allow CPU interrupts with a higher user priority to be serviced. Note: at this time IER has
already been saved on the stack. Step 2: Set the group priority: (optional) Modify the appropriate PIEIERx
register to allow group interrupts with a higher user set priority to be serviced. Do NOT clear PIEIER register bits
from another group other than that being serviced by this ISR. Doing so can cause erroneous interrupts to occur.
Step 3: Enable interrupts: There are three steps to do this: a. Clear the PIEACK bits b. Wait at least one cycle c.
Clear the INTM bit. Step 4: Run the main part of the ISR Step 5: Set INTM to disable interrupts. Step 6: Restore
PIEIERx (optional depending on step 2) Step 7: Return from ISR
Refer to below link on more details on Interrupt nesting in C28x devices:
<C2000Ware>\docs\c28x_interrupt_nesting\html\index.html
External Connections
• None
Watch Variables
174 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 175
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Initially, pull GPIO0 high externally. To wake device from IDLE mode by triggering an XINT1 interrupt, pull GPIO0
low (falling edge). The wakeup process begins as soon as GPIO0 is held low for the time indicated in the device
datasheet.
GPIO1 is pulled high before entering the IDLE mode and is pulled low when in the external interrupt ISR.
External Connections
• GPIO0 needs to be pulled low to wake up the device.
• On device wakeup, the GPIO1 will be low and LED1 will start blinking
3.15.12.2 Low Power Modes: Device Idle Mode and Wakeup using Watchdog
FILE: lpm_ex2_idlewake_watchdog.c
This example puts the device into IDLE mode and then wakes up the device from IDLE using watchdog timer.
The device wakes up from the IDLE mode when the watchdog timer overflows, triggering an interrupt. A pre
scalar is set for the watchdog timer to change the counter overflow time.
GPIO1 is pulled high before entering the IDLE mode and is pulled low when in the wakeup ISR.
External Connections
• On device wakeup, the GPIO1 will be low and LED1 will start blinking
3.15.12.3 Low Power Modes: Device Standby Mode and Wakeup using GPIO
FILE: lpm_ex3_standbywake_gpio.c
This example puts the device into STANDBY mode. If the lowest possible current consumption in STANDBY
mode is desired, the JTAG connector must be removed from the device board while the device is in STANDBY
mode.
This example puts the device into STANDBY mode and then wakes up the device from STANDBY using an LPM
wakeup pin.
The pin GPIO0 is configured as the LPM wakeup pin to trigger a WAKEINT interrupt upon detection of a low
pulse. Initially, pull GPIO0 high externally. To wake device from STANDBY mode, pull GPIO0 low for at least
(2+QUALSTDBY), OSCLKS, then pull it high again.
The example then wakes up the device from STANDBY using GPIO0. GPIO0 wakes the device from STANDBY
mode when a low pulse (signal goes high->low->high)is detected on the pin. This pin must be pulsed by an
external agent for wakeup.
GPIO1 is pulled high before entering the STANDBY mode and is pulled low when in the wakeup ISR.
External Connections
• GPIO0 needs to be pulled low to wake up the device.
• On device wakeup, the GPIO1 will be low and LED1 will start blinking
3.15.12.4 Low Power Modes: Device Standby Mode and Wakeup using Watchdog
FILE: lpm_ex4_standbywake_watchdog.c
This example puts the device into STANDBY mode. If the lowest possible current consumption in STANDBY
mode is desired, the JTAG connector must be removed from the device board while the device is in STANDBY
mode.
This example puts the device into STANDBY mode then wakes up the device from STANDBY using watchdog
timer.
The device wakes up from the STANDBY mode when the watchdog timer overflows triggering an interrupt. In the
ISR, the GPIO1 is pulled low. the GPIO1 is toggled to indicate the device is out of STANDBY mode. A pre scalar
is set for the watchdog timer to change the counter overflow time.
176 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
GPIO1 is pulled high before entering the STANDBY mode and is pulled low when in the wakeup ISR.
External Connections
• On device wakeup, the GPIO1 will be low and LED1 will start blinking
3.15.12.5 Low Power Modes: Halt Mode and Wakeup using GPIO
FILE: lpm_ex5_haltwake_gpio.c
This example puts the device into HALT mode. If the lowest possible current consumption in HALT mode is
desired, the JTAG connector must be removed from the device board while the device is in HALT mode.
For applications that require minimal power consumption during HALT mode, application software should power
off the XTAL prior to entering HALT by setting the XTALCR.OSCOFF bit or by using the driverlib function
SysCtl_turnOffOsc(SYSCTL_OSCSRC_XTAL);. If the OSCCLK source is configured to be XTAL, the application
should first switch the OSSCLK source to INTOSC1 or INTOSC2 prior to setting XTALCR.OSCOFF.
This example puts the device into HALT mode and then wakes up the device from HALT using an LPM wakeup
pin.
The pin GPIO0 is configured as the LPM wakeup pin to trigger a WAKEINT interrupt upon detection of a low
pulse.The GPIO0 pin must be pulled from high to low by an external agent for wakeup.
GPIO1 is pulled high before entering the STANDBY mode and is pulled low when in the wakeup ISR.
External Connections
• On device wakeup, the GPIO1 will be low and LED1 will start blinking
3.15.12.6 Low Power Modes: Halt Mode and Wakeup
FILE: lpm_ex6_haltwake_gpio_watchdog.c
This example puts the device into HALT mode. If the lowest possible current consumption in HALT mode is
desired, the JTAG connector must be removed from the device board while the device is in HALT mode.
For applications that require minimal power consumption during HALT mode, application software should power
off the XTAL prior to entering HALT by setting the XTALCR.OSCOFF bit or by using the driverlib function
SysCtl_turnOffOsc(SYSCTL_OSCSRC_XTAL);. If the OSCCLK source is configured to be XTAL, the application
should first switch the OSSCLK source to INTOSC1 or INTOSC2 prior to setting XTALCR.OSCOFF.
This example puts the device into HALT mode and then wakes up the device from HALT using an LPM wakeup
pin.
The pin GPIO0 is configured as the LPM wakeup pin to trigger a WAKEINT interrupt upon detection of a low
pulse.The GPIO0 pin must be pulled from high to low by an external agent for wakeup.
In this example, the watchdog timer is clocked, and is configured to produce watchdog reset as a timeout
mechanism.
GPIO1 is pulled high before entering the STANDBY mode and is pulled low when in the wakeup ISR.
External Connections
• On device wakeup, the GPIO1 will be low and LED1 will start blinking
3.15.13 WATCHDOG Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/watchdog
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
3.15.13.1 Watchdog
FILE: watchdog_ex1_service.c
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 177
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
This example shows how to service the watchdog or generate a wakeup interrupt using the watchdog. By default
the example will generate a Wake interrupt. To service the watchdog and not generate the interrupt, uncomment
the SysCtl_serviceWatchdog() line in the main for loop.
External Connections
• None.
Watch Variables
• wakeCount - The number of times entered into the watchdog ISR
• loopCount - The number of loops performed while not in ISR
3.16 SYSCTRL Registers
This Section describes the SYSCTRL Registers.
3.16.1 SYSCTRL Base Address Table
Table 3-26. SYSCTRL Base Address Table
Bit Field Name Pipeline
DriverLib Name Base Address CPU1 CPU1.DMA CPU1.CLA1
Instance Structure Protected
CPUTIMER_REG
CpuTimer0Regs CPUTIMER0_BASE 0x0000_0C00 YES - - -
S
CPUTIMER_REG
CpuTimer1Regs CPUTIMER1_BASE 0x0000_0C08 YES - - -
S
CPUTIMER_REG
CpuTimer2Regs CPUTIMER2_BASE 0x0000_0C10 YES - - -
S
PieCtrlRegs PIE_CTRL_REGS PIECTRL_BASE 0x0000_0CE0 YES - - -
PieVectTable PIE_VECT_TABLE PIEVECTTABLE_BASE 0x0000_0D00 YES - - -
WdRegs WD_REGS WD_BASE 0x0000_7000 YES - - YES
NMI_INTRUPT_R
NmiIntruptRegs NMI_BASE 0x0000_7060 YES - - YES
EGS
XintRegs XINT_REGS XINT_BASE 0x0000_7070 YES - - YES
SYNC_SOC_REG
SyncSocRegs SYNCSOC_BASE 0x0000_7940 YES - - YES
S
DmaClaSrcSelReg DMA_CLA_SRC_
DMACLASRCSEL_BASE 0x0000_7980 YES - - YES
s SEL_REGS
LfuRegs LFU_REGS LFU_BASE 0x0000_7FE0 YES - YES YES
DevCfgRegs DEV_CFG_REGS DEVCFG_BASE 0x0005_D000 YES - - YES
ClkCfgRegs CLK_CFG_REGS CLKCFG_BASE 0x0005_D200 YES - - YES
CpuSysRegs CPU_SYS_REGS CPUSYS_BASE 0x0005_D300 YES - - YES
SYS_STATUS_RE
SysStatusRegs SYSSTAT_BASE 0x0005_D400 YES - - YES
GS
PERIPH_AC_REG
PeriphAcRegs PERIPHAC_BASE 0x0005_D500 YES - - YES
S
MemCfgRegs MEM_CFG_REGS MEMCFG_BASE 0x0005_F400 YES - - YES
AccessProtectionR ACCESS_PROTE ACCESSPROTECTION_BA
0x0005_F500 YES - - YES
egs CTION_REGS SE
MEMORY_ERRO
MemoryErrorRegs MEMORYERROR_BASE 0x0005_F540 YES - - YES
R_REGS
TEST_ERROR_R
TestErrorRegs TESTERROR_BASE 0x0005_F590 YES - - YES
EGS
UidRegs UID_REGS UID_BASE 0x0007_2168 YES - - -
178 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Complex bit access types are encoded to fit into small table cells. Table 3-28 shows the codes that are used for
access types in this section.
Table 3-28. CPUTIMER_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
Write Type
W W Write
W1C W Write
1C 1 to clear
Reset or Default Value
-n Value after reset or the default
value
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 179
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
180 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 181
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
RESERVED TRB TSS RESERVED
R-0h R/W-0h R/W-0h R-1h
182 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 183
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
TDDR
R/W-0h
184 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
TDDRH
R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 185
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-35 shows the codes that are used for
access types in this section.
Table 3-35. PIE_CTRL_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
Reset or Default Value
186 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 187
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
PIEVECT ENPIE
R-0h R/W-0h
188 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
ACK8 ACK7 ACK6 ACK5 ACK4 ACK3 ACK2 ACK1
R/W1S-0h R/W1S-0h R/W1S-0h R/W1S-0h R/W1S-0h R/W1S-0h R/W1S-0h R/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 189
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
190 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 191
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
192 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 193
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
194 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 195
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
196 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 197
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
198 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 199
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
200 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 201
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
202 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 203
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
204 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 205
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
206 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 207
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
208 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 209
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
210 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 211
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
212 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 213
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
214 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 215
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
216 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 217
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
218 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 219
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
220 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 221
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
222 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 223
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
224 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 225
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
226 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 227
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
228 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 229
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
230 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 231
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
232 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 233
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
234 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 235
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTx8 INTx7 INTx6 INTx5 INTx4 INTx3 INTx2 INTx1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
236 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 237
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-63 shows the codes that are used for
access types in this section.
Table 3-63. NMI_INTRUPT_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
238 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED NMIE
R-0-0h R/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 239
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
SYSDBGNMI RESERVED RESERVED RESERVED RESERVED UNCERR CLOCKFAIL NMIINT
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
240 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 241
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
SYSDBGNMI RESERVED RESERVED RESERVED RESERVED UNCERR CLOCKFAIL NMIINT
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
242 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 243
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
SYSDBGNMI RESERVED RESERVED RESERVED RESERVED UNCERR CLOCKFAIL RESERVED
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0-0h
244 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
NMIWDCNT
R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 245
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
NMIWDPRD
R/W-FFFFh
246 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
SYSDBGNMI RESERVED RESERVED RESERVED RESERVED UNCERR CLOCKFAIL RESERVED
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 247
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
248 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED PINSTS ERROR
R-0-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 249
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
RESERVED ERROR
R-0-0h R-0/W1S-0h
250 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED ERROR
R-0-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 251
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
RESERVED ERRORPOLSE
L
R-0-0h R/W-0h
252 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED ERRORCTL
R-0-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 253
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-77 shows the codes that are used for
access types in this section.
Table 3-77. XINT_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
254 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED POLARITY RESERVED ENABLE
R-0-0h R/W-0h R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 255
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
RESERVED POLARITY RESERVED ENABLE
R-0-0h R/W-0h R-0-0h R/W-0h
256 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED POLARITY RESERVED ENABLE
R-0-0h R/W-0h R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 257
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
RESERVED POLARITY RESERVED ENABLE
R-0-0h R/W-0h R-0-0h R/W-0h
258 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED POLARITY RESERVED ENABLE
R-0-0h R/W-0h R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 259
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTCTR
R-0h
260 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
INTCTR
R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 261
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
INTCTR
R-0h
262 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Complex bit access types are encoded to fit into small table cells. Table 3-87 shows the codes that are used for
access types in this section.
Table 3-87. SYNC_SOC_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 263
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED
R-0-0h R/W-7h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED
R/W-7h R/W-7h R/W-7h R/W-7h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED
R/W-7h R/W-7h R/W-7h
264 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 265
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
PWM8SOCBEN PWM7SOCBEN PWM6SOCBEN PWM5SOCBEN PWM4SOCBEN PWM3SOCBEN PWM2SOCBEN PWM1SOCBEN
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED PWM12SOCAE PWM11SOCAE PWM10SOCAE PWM9SOCAEN
N N N
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
PWM8SOCAEN PWM7SOCAEN PWM6SOCAEN PWM5SOCAEN PWM4SOCAEN PWM3SOCAEN PWM2SOCAEN PWM1SOCAEN
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
266 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 267
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
268 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED ADCSOCOUTS SYNCSELECT
ELECT
R-0-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 269
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-92 shows the codes that are used for
access types in this section.
Table 3-92. DMA_CLA_SRC_SEL_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
270 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED CLA1TASKSRC CLA1TASKSRC
SEL2 SEL1
R-0-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 271
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMACHSRCSE DMACHSRCSE
L2 L1
R-0-0h R/WSonce-0h R/WSonce-0h
272 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 273
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
274 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 275
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
276 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Complex bit access types are encoded to fit into small table cells. Table 3-100 shows the codes that are used for
access types in this section.
Table 3-100. LFU_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 277
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED LS01Swap RESERVED
R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED PieVectorSwap RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED LFU_CLA1 RESERVED LFU_CPU
R/W-0h R/W-0h R/W-0h R/W-0h
278 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED LS01Swap RESERVED
R-0-0h R/W-0h R-0-0h
15 14 13 12 11 10 9 8
RESERVED PieVectorSwap RESERVED
R-0-0h R/W-0h R-0-0h
7 6 5 4 3 2 1 0
RESERVED
R-0-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 279
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED SWConfig2_PO SWConfig1_PO SWConfig2_XR SWConfig1_XR SWConfig2_SY SWConfig1_SY
RESETn RESETn Sn Sn SRSn SRSn
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED LFUConfig
R-0-0h R/W-0h
280 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED SWConfig2_PO SWConfig1_PO SWConfig2_XR SWConfig1_XR SWConfig2_SY SWConfig1_SY
RESETn RESETn Sn Sn SRSn SRSn
R-0-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
RESERVED LFUConfig
R-0-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 281
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
282 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 283
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-106 shows the codes that are used for
access types in this section.
Table 3-106. DEV_CFG_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1C W Write
1C 1 to clear
W1S W Write
1S 1 to set
WOnce W Write
Once Write once
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
284 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
FLASH_SIZE
R-XXh
15 14 13 12 11 10 9 8
RESERVED INSTASPIN RESERVED RESERVED PIN_COUNT
R-0h R-Xh R-0h R-Xh R-Xh
7 6 5 4 3 2 1 0
QUAL RESERVED RESERVED RESERVED
R-Xh R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 285
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
286 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FAMILY RESERVED RESERVED
R-5h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 287
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
REVID_EXT REVID
R-0h R/WOnce-0h
288 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 289
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED CPU1_CLA1
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
290 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED EPWM12 EPWM11 EPWM10 EPWM9
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
EPWM8 EPWM7 EPWM6 EPWM5 EPWM4 EPWM3 EPWM2 EPWM1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 291
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
292 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED ECAP2 ECAP1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 293
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED EQEP3 EQEP2 EQEP1
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
294 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED SCI_C SCI_B SCI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 295
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED SPI_B SPI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
296 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED I2C_B I2C_A
R-0-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 297
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED MCAN_B MCAN_A RESERVED RESERVED RESERVED RESERVED
R-Xh R-Xh R-Xh R-Xh R/W-0h R/W-0h R/W-0h R/W-0h
298 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED RESERVED USB_A
R-0-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 299
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED ADC_E ADC_D ADC_C ADC_B ADC_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
300 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED CMPSS4 CMPSS3 CMPSS2 CMPSS1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 301
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED PGA3 PGA2 PGA1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
302 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED DAC_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 303
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CLB2 CLB1
R-0h R/W-0h R/W-0h R-Xh R-Xh
304 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED FSIRX_A FSITX_A
R-0h R/W-0h R/W-0h R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 305
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED LIN_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
306 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-Xh
15 14 13 12 11 10 9 8
RESERVED
R-Xh
7 6 5 4 3 2 1 0
RESERVED RESERVED PMBUS_A
R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 307
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DCC1 DCC0
R-0-0h R/W-0h R/W-0h
308 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED AESA
R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 309
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED EPG1
R-0-0h R/W-0h
310 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED FLASHA
R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 311
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED NPU
R-0-0h R/W-0h
312 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED JTAG_nTRST
R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 313
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
TAP_STATE
R-0h
7 6 5 4 3 2 1 0
TAP_STATE
R-0h
314 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
KEY
R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED BSCAN_DIS
R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 315
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
7 6 5 4 3 2 1 0
RESERVED TYPE
R-0-0h R/W-0h
316 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
7 6 5 4 3 2 1 0
RESERVED TYPE
R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 317
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED EPWM12 EPWM11 EPWM10 EPWM9
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
7 6 5 4 3 2 1 0
EPWM8 EPWM7 EPWM6 EPWM5 EPWM4 EPWM3 EPWM2 EPWM1
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
318 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 319
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED SCI_C SCI_B SCI_A
R-0-0h R-Xh R-Xh R-Xh R-Xh
320 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED MCAN_B MCAN_A RESERVED RESERVED RESERVED RESERVED
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 321
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED USB_A
R-0-0h R-Xh R-0-0h R-Xh
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED
R-0-0h R-Xh R-Xh
322 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED ADC_E ADC_D ADC_C ADC_B ADC_A
R-0-0h R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 323
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED PGA3 PGA2 PGA1
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
324 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED LS9_1 LS8_1
R-0-0h R-Xh R-Xh
7 6 5 4 3 2 1 0
LS7_1 LS6_1 LS5_1 LS4_1 LS3_1 LS2_1 LS1_1 LS0_1
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 325
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
326 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED GS3 GS2 GS1 GS0
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 327
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
328 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CLB2 CLB1
R-0h R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 329
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED LIN_A
R-0h R-Xh R-Xh R-Xh R-Xh
330 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
SECT127_112 SECT111_96 SECT95_80 SECT79_64 SECT63_48 SECT47_32 SECT31_16 SECT15_0
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 331
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
332 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
SECT127_112 SECT111_96 SECT95_80 SECT79_64 SECT63_48 SECT47_32 SECT31_16 SECT15_0
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 333
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
334 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
SECT127_112 SECT111_96 SECT95_80 SECT79_64 SECT63_48 SECT47_32 SECT31_16 SECT15_0
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 335
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
336 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
SECT127_112 SECT111_96 SECT95_80 SECT79_64 SECT63_48 SECT47_32 SECT31_16 SECT15_0
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 337
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
338 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED SECT31_16 SECT15_0
R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh R-Xh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 339
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED MCUCNFLOCK
R-0-0h R/WSonce-0h
340 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Complex bit access types are encoded to fit into small table cells. Table 3-155 shows the codes that are used for
access types in this section.
Table 3-155. CLK_CFG_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1C W Write
1C 1 to clear
W1S W Write
1S 1 to set
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 341
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
342 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED EXTRFLTDET XTALCR
R-0-0h R/WSonce-0h R/WSonce-0h
15 14 13 12 11 10 9 8
LOSPCP CLBCLKCTL PERCLKDIVSE AUXCLKDIVSE SYSCLKDIVSE RESERVED RESERVED RESERVED
L L L
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R-0-0h R-0-0h
7 6 5 4 3 2 1 0
RESERVED SYSPLLMULT RESERVED RESERVED SYSPLLCTL1 CLKSRCCTL3 CLKSRCCTL2 CLKSRCCTL1
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 343
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
344 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED
R-0-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED WDHALTI RESERVED RESERVED RESERVED OSCCLKSRCSEL
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 345
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
346 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED RESERVED
R-0-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED MCANBBCLKSEL MCANABCLKSEL RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 347
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED XCLKOUTSEL
R-0-0h R/W-0h
348 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED PLLCLKEN PLLEN
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 349
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED ODIV
R-0-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED
R-0-0h R/W-0h R-0-0h R/W-0h
7 6 5 4 3 2 1 0
IMULT
R/W-0h
350 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED REF_LOSTS RESERVED SLIPS_NOTSU LOCKS
PPORTED
R-0-0h R-1h R-1h W1C-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 351
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED PLLSYSCLKDI
V_LSB
R-0-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED PLLSYSCLKDIV
R-0-0h R/W-0h
352 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MCANBCLKDIV MCANACLKDIV RESERVED RESERVED
R/W-13h R/W-13h R-0-0h R/W-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 353
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED NPUCLKDIV
R-0-0h R/W-1h
15 14 13 12 11 10 9 8
LINACLKDIV USBCLKDIV
R/W-1h R/W-1h
7 6 5 4 3 2 1 0
USBCLKDIV RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-1h R/W-1h R-0-0h R/W-1h R/W-0h R/W-0h
354 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED XCLKOUTDIV
R-0-0h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 355
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED CLKMODECLB CLKMODECLB
2 1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED TILECLKDIV RESERVED CLBCLKDIV
R-0-0h R/W-0h R-0-0h R/W-7h
356 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED LSPCLKDIV
R-0-0h R/W-2h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 357
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0-0h R/W-1h R/W-1h R/W-0h R-0/W1S-0h R-0h R/W-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
RESERVED SYSREF_LOST SYSREF_LOST SYSREF_LOST OSCOFF MCLKOFF MCLKCLR MCLKSTS
_MCD_EN SCLR S
R-0h R/W-0h R-0/W1S-0h R-0h R/W-0h R/W-0h R-0/W1S-0h R-0h
358 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 359
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED X1CNT
R-0-0h R-0h
360 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED SE OSCOFF
R-0-0h R/W-1h R/W-0h R/W-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 361
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED FEN XOF XIF
R-0-0h R/W-0h R/W-1h R/W-1h
362 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DCC1_ERROR DCC0_ERROR
_EN _EN
R-0-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 363
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
364 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Complex bit access types are encoded to fit into small table cells. Table 3-175 shows the codes that are used for
access types in this section.
Table 3-175. CPU_SYS_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1C W Write
1C 1 to clear
W1S W Write
1S 1 to set
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 365
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
GPIOLPMSEL1 GPIOLPMSEL0 LPMCR RESERVED PCLKCR16 PCLKCR15 PCLKCR14 PCLKCR13
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
15 14 13 12 11 10 9 8
PCLKCR12 PCLKCR11 PCLKCR10 PCLKCR9 PCLKCR8 PCLKCR7 RESERVED RESERVED
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
PCLKCR4 PCLKCR3 PCLKCR2 RESERVED PCLKCR0 PIEVERRADDR RESERVED RESERVED
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
366 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 367
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
368 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED RESERVED
R/WSonce-0h R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED CMPSSLPMSE LSEN PCLKCR27 PCLKCR26 RESERVED RESERVED
L
R-0-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 369
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
370 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 371
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED TBCLKSYNC RESERVED HRCAL
R-0-0h R/W-0h R/W-0h R-0-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h R-0-0h
7 6 5 4 3 2 1 0
RESERVED CPUTIMER2 CPUTIMER1 CPUTIMER0 DMA RESERVED CLA1
R-0-0h R/W-1h R/W-1h R/W-1h R/W-0h R/W-0h R/W-0h
372 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 373
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED EPWM12 EPWM11 EPWM10 EPWM9
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
EPWM8 EPWM7 EPWM6 EPWM5 EPWM4 EPWM3 EPWM2 EPWM1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
374 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 375
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED ECAP2 ECAP1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
376 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED EQEP3 EQEP2 EQEP1
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 377
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED SCI_C SCI_B SCI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
378 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED SPI_B SPI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 379
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED I2C_B I2C_A
R-0-0h R/W-0h R/W-0h
380 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED MCAN_B MCAN_A RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 381
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED USB_A
R-0-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h
382 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED NPU
R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 383
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED ADC_E ADC_D ADC_C ADC_B ADC_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
384 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED CMPSS4 CMPSS3 CMPSS2 CMPSS1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 385
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED PGA3 PGA2 PGA1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
386 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED DAC_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 387
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CLB2 CLB1
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
388 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED FSIRX_A FSITX_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 389
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED LIN_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
390 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED PMBUS_A
R-0-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 391
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DCC1 DCC0
R-0-0h R/W-0h R/W-0h
392 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED AESA
R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 393
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED EPG1
R-0-0h R/W-0h
394 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
KEY
R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED XRSn CPU1RSn
R-0-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 395
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED
R-0-0h R/W-0h
15 14 13 12 11 10 9 8
WDINTE RESERVED
R/W-0h R-0-0h
7 6 5 4 3 2 1 0
QUALSTDBY LPM
R/W-3Fh R/W-0h
396 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 397
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
398 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 399
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO39 GPIO38 GPIO37 GPIO36 GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
400 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 401
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
402 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED TMR2CLKPRESCALE TMR2CLKSRCSEL
R-0-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 403
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED SIMRESET_XR SIMRESET_CP RESERVED SCCRESETn
Sn U1RSn
R-0-0h W1C-0h W1C-0h R-0-0h W1S-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED NMIWDRSn WDRSn XRSn POR
R-0-0h W1S-0h W1S-0h R-0-0h W1S-0h W1S-0h W1S-0h W1S-0h
404 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 405
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED SIMRESET_XR SIMRESET_CP RESERVED SCCRESETn
Sn U1RSn
R-0-0h R-0h R-0h R-0-0h R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED NMIWDRSn WDRSn XRSn POR
R-0-0h R-0h R-0h R-0-0h R-0h R-0h R-1h R-1h
406 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 407
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
CMPSS4L CMPSS4H CMPSS3L CMPSS3H CMPSS2L CMPSS2H CMPSS1L CMPSS1H
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
408 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 409
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED MCAN_B_RAM MCAN_A_RAM
ACC ACC
R-0-0h R/W-0h R/W-0h
410 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED WAKE_MCANB WAKE_MCANA
R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 411
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED WAKE_MCANB WAKE_MCANA
R-0h R-0/W1S-0h R-0/W1S-0h
412 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
KEY
R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED MCAN_B MCAN_A
R-0-0h R-0-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0-0h R/W-0h R/W-0h R-0-0h R/W-0h R-0-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 413
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED MCAN_B MCAN_A
R-0-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0-0h R-0h R-0h R-0-0h R-0h R-0-0h R-0h
414 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 415
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
416 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 417
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
418 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 419
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
420 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 421
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
422 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 423
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-223 shows the codes that are used for
access types in this section.
Table 3-223. SYS_STATUS_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
424 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED CLA_OFLOW CLA_UFLOW FPU_OFLOW FPU_UFLOW
R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED EPG1_INT AES_BUS_ER RESERVED RESERVED
ROR
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RAM_ACC_VIO RESERVED CORRECTABL RESERVED GINT
L E_ERR
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 425
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
426 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED CLA_OFLOW CLA_UFLOW FPU_OFLOW FPU_UFLOW
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED EPG1_INT AES_BUS_ER RESERVED RESERVED
ROR
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RAM_ACC_VIO RESERVED CORRECTABL RESERVED GINT
L E_ERR
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 427
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
428 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED CLA_OFLOW CLA_UFLOW FPU_OFLOW FPU_UFLOW
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED EPG1_INT AES_BUS_ER RESERVED RESERVED
ROR
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RAM_ACC_VIO RESERVED CORRECTABL RESERVED RESERVED
L E_ERR
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 429
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
430 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED CLA_OFLOW CLA_UFLOW FPU_OFLOW FPU_UFLOW
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED EPG1_INT AES_BUS_ER RESERVED RESERVED
ROR
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RAM_ACC_VIO RESERVED CORRECTABL RESERVED RESERVED
L E_ERR
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 431
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
432 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 433
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-229 shows the codes that are used for
access types in this section.
Table 3-229. PERIPH_AC_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
434 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 435
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
436 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 437
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
438 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 439
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
440 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 441
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
442 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 443
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
444 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 445
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
446 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 447
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
448 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 449
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
450 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 451
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
452 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 453
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
454 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 455
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
456 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 457
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
458 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 459
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
460 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 461
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
462 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 463
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
464 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 465
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
466 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CPU1_ACC
R/W-3h R-0-0h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 467
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CPU1_ACC
R/W-3h R-0-0h R/W-3h R/W-3h
468 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CPU1_ACC
R/W-3h R-0-0h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 469
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
470 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 471
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CPU1_ACC
R/W-3h R-0-0h R/W-3h R/W-3h
472 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED CPU1_ACC
R/W-3h R-0-0h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 473
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
474 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 475
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC RESERVED CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
476 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC RESERVED CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 477
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
478 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 479
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC RESERVED CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
480 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC CLA1_ACC CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 481
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED DMA1_ACC RESERVED CPU1_ACC
R/W-3h R/W-3h R/W-3h R/W-3h
482 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED LOCK_AC_WR
R-0-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 483
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-280 shows the codes that are used for
access types in this section.
484 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 485
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED LOCK_PIEVEC RESERVED RESERVED LOCK_M1 LOCK_M0
T
R-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
486 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED COMMIT_PIEV RESERVED RESERVED COMMIT_M1 COMMIT_M0
ECT
R-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 487
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED
R-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED CPUWRPROT_ FETCHPROT_
M1 M1
R-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED CPUWRPROT_ FETCHPROT_
M0 M0
R-0h R/W-0h R/W-0h
488 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED CPUWRPROT_ RESERVED
PIEVECT
R-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 489
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED TEST_PIEVECT
R-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED TEST_M1 TEST_M0
R/W-0h R/W-0h R/W-0h R/W-0h
490 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED INIT_PIEVECT RESERVED RESERVED INIT_M1 INIT_M0
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 491
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED INITDONE_PIE RESERVED RESERVED INITDONE_M1 INITDONE_M0
VECT
R-0h R-0h R-0h R-0h R-0h R-0h
492 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
KEY
R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED PIEVECT RESERVED RESERVED M1 M0
R-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 493
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED LOCK_LS9 LOCK_LS8
R-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
LOCK_LS7 LOCK_LS6 LOCK_LS5 LOCK_LS4 LOCK_LS3 LOCK_LS2 LOCK_LS1 LOCK_LS0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
494 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 495
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED COMMIT_LS9 COMMIT_LS8
R-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
COMMIT_LS7 COMMIT_LS6 COMMIT_LS5 COMMIT_LS4 COMMIT_LS3 COMMIT_LS2 COMMIT_LS1 COMMIT_LS0
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
496 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 497
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED MSEL_LS9 MSEL_LS8
R-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
MSEL_LS7 MSEL_LS6 MSEL_LS5 MSEL_LS4
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
MSEL_LS3 MSEL_LS2 MSEL_LS1 MSEL_LS0
R/W-0h R/W-0h R/W-0h R/W-0h
498 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 499
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED CLAPGM_LS9 CLAPGM_LS8
R-0h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
CLAPGM_LS7 CLAPGM_LS6 CLAPGM_LS5 CLAPGM_LS4 CLAPGM_LS3 CLAPGM_LS2 CLAPGM_LS1 CLAPGM_LS0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
500 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 501
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED CPUWRPROT_ FETCHPROT_L
LS2 S2
R-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED CPUWRPROT_ FETCHPROT_L
LS1 S1
R-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED CPUWRPROT_ FETCHPROT_L
LS0 S0
R-0h R/W-0h R/W-0h
502 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 503
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED CPUWRPROT_ FETCHPROT_L
LS6 S6
R-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED CPUWRPROT_ FETCHPROT_L
LS5 S5
R-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED CPUWRPROT_ FETCHPROT_L
LS4 S4
R-0h R/W-0h R/W-0h
504 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 505
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED CPUWRPROT_ FETCHPROT_L
LS9 S9
R-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED CPUWRPROT_ FETCHPROT_L
LS8 S8
R-0h R/W-0h R/W-0h
506 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED TEST_LS9 TEST_LS8
R-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
TEST_LS7 TEST_LS6 TEST_LS5 TEST_LS4
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
TEST_LS3 TEST_LS2 TEST_LS1 TEST_LS0
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 507
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
508 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 509
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED INIT_LS9 INIT_LS8
R-0h R-0/W1S-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
INIT_LS7 INIT_LS6 INIT_LS5 INIT_LS4 INIT_LS3 INIT_LS2 INIT_LS1 INIT_LS0
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
510 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 511
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED INITDONE_LS9 INITDONE_LS8
R-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED INITDONE_LS1 INITDONE_LS0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
512 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED LS9 LS8 LS7 LS6 LS5 LS4 LS3 LS2 LS1 LS0
R-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 513
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED LOCK_GS3 LOCK_GS2 LOCK_GS1 LOCK_GS0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
514 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 515
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED COMMIT_GS3 COMMIT_GS2 COMMIT_GS1 COMMIT_GS0
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
516 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 517
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED NPU_WRPROT DMAWRPROT_ CPUWRPROT_ FETCHPROT_
_GS2 GS2 GS2 GS2
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED NPU_WRPROT DMAWRPROT_ CPUWRPROT_ FETCHPROT_
_GS1 GS1 GS1 GS1
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED NPU_WRPROT DMAWRPROT_ CPUWRPROT_ FETCHPROT_
_GS0 GS0 GS0 GS0
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
518 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 519
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
TEST_GS3 TEST_GS2 TEST_GS1 TEST_GS0
R/W-0h R/W-0h R/W-0h R/W-0h
520 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 521
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED INIT_GS3 INIT_GS2 INIT_GS1 INIT_GS0
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
522 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 523
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS
3 2 1 0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
524 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 525
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
KEY
R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED GS3 GS2 GS1 GS0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
526 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED LOCK_DMATO LOCK_CLA1TO RESERVED RESERVED LOCK_CLA1TO LOCK_CPUTO RESERVED
CLA1 DMA CPU CLA1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 527
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
528 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
RESERVED COMMIT_DMA COMMIT_CLA1 RESERVED RESERVED COMMIT_CLA1 COMMIT_CPU RESERVED
TOCLA1 TODMA TOCPU TOCLA1
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 529
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
530 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED TEST_DMATOCLA1 TEST_CLA1TODMA RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED TEST_CLA1TOCPU TEST_CPUTOCLA1 RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 531
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
532 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
RESERVED INIT_DMATOCL INIT_CLA1TOD RESERVED RESERVED INIT_CLA1TOC INIT_CPUTOCL RESERVED
A1 MA PU A1
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 533
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED INITDONE_DM INITDONE_CL RESERVED RESERVED INITDONE_CL INITDONE_CP RESERVED
ATOCLA1 A1TODMA A1TOCPU UTOCLA1
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
534 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
KEY
R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED DMATOCLA1 CLA1TODMA RESERVED RESERVED CLA1TOCPU CPUTOCLA1 RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 535
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
KEY
R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED LOCK_CLADAT LOCK_SECUR LOCK_BOOTR
AROM EROM OM
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
536 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R/W-0h
7 6 5 4 3 2 1 0
RESERVED TEST_CLADATAROM TEST_SECUREROM TEST_BOOTROM
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 537
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED FORCE_CLAD FORCE_SECU FORCE_BOOT
ATAROM_ERR REROM_ERRO ROM_ERROR
OR R
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
538 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
Complex bit access types are encoded to fit into small table cells. Table 3-317 shows the codes that are used for
access types in this section.
Table 3-317. ACCESS_PROTECTION_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 539
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
540 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED NPUWRITE NPUREAD DMAREAD RESERVED RESERVED
R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED CLA1FETCH CLA1WRITE CLA1READ DMAWRITE CPUFETCH CPUWRITE CPUREAD
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 541
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
542 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED NPUWRITE NPUREAD DMAREAD RESERVED RESERVED
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
RESERVED CLA1FETCH CLA1WRITE CLA1READ DMAWRITE CPUFETCH CPUWRITE CPUREAD
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 543
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
544 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED NPUWRITE NPUREAD DMAREAD RESERVED RESERVED
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
7 6 5 4 3 2 1 0
RESERVED CLA1FETCH CLA1WRITE CLA1READ DMAWRITE CPUFETCH CPUWRITE CPUREAD
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 545
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
546 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED NPUWRITE NPUREAD DMAREAD RESERVED RESERVED
R-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED CLA1FETCH CLA1WRITE CLA1READ DMAWRITE CPUFETCH CPUWRITE CPUREAD
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 547
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
548 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 549
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
550 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 551
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
552 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 553
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
554 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 555
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
556 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED DMAWRITE CPUWRITE CPUFETCH
R-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 557
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED DMAWRITE CPUWRITE CPUFETCH
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
558 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED DMAWRITE CPUWRITE CPUFETCH
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 559
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED DMAWRITE CPUWRITE CPUFETCH
R-0h R/W-0h R/W-0h R/W-0h R/W-0h
560 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 561
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
562 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 563
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
564 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 565
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-340 shows the codes that are used for
access types in this section.
Table 3-340. MEMORY_ERROR_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
566 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 567
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED NPURDERR RESERVED RESERVED CLA1RDERR DMARDERR CPURDERR
R-0h R-0h R-0h R-0h R-0h R-0h R-0h
568 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED NPURDERR RESERVED RESERVED CLA1RDERR DMARDERR CPURDERR
R-0h R-0/W1S-0h R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 569
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED NPURDERR RESERVED RESERVED CLA1RDERR DMARDERR CPURDERR
R-0h R-0/W1S-0h R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
570 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 571
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
572 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 573
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
574 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED DIAG_H_FAIL UNC_ERR_H
R-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED DIAG_L_FAIL UNC_ERR_L
R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 575
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
ERR_POS_H ERR_TYPE_L ERR_POS_L
R-0h R-0h R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED FAIL_1_H FAIL_0_H RESERVED FAIL_1_L FAIL_0_L
R-0h R-0h R-0h R-0h R-0h R-0h R-0h
576 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 577
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1RDERR DMARDERR CPURDERR
R-0h R-0h R-0h R-0h R-0h
578 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1RDERR DMARDERR CPURDERR
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 579
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED CLA1RDERR DMARDERR CPURDERR
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
580 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 581
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
582 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 583
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
584 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 585
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED CEINTFLAG
R-0h R-0h
586 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED CEINTCLR
R-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 587
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED CEINTSET
R-0h R-0/W1S-0h
588 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED CEINTEN
R-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 589
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-363 shows the codes that are used for
access types in this section.
Table 3-363. TEST_ERROR_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W1S W Write
1S 1 to set
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
590 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED UNC_ERROR COR_ERROR
R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 591
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED UNC_ERROR COR_ERROR
R-0h R-0/W1S-0h R-0/W1S-0h
592 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 593
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-368 shows the codes that are used for
access types in this section.
Table 3-368. UID_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
Reset or Default Value
-n Value after reset or the default
value
594 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 595
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
596 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 597
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
598 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 599
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
600 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupts
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 601
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupts www.ti.com
602 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Chapter 4
ROM Code and Peripheral Booting
This chapter explains the boot procedure, the available boot modes, and the various details of the ROM code
including memory maps, initializations, reset handling, and status information.
4.1 Introduction...............................................................................................................................................................604
4.2 Device Boot Sequence.............................................................................................................................................605
4.3 Device Boot Modes.................................................................................................................................................. 605
4.4 Device Boot Configurations.................................................................................................................................... 606
4.5 Device Boot Flow Diagrams.....................................................................................................................................611
4.6 Device Reset and Exception Handling................................................................................................................... 615
4.7 Boot ROM Description............................................................................................................................................. 617
4.8 Application Notes for Using the Bootloaders........................................................................................................648
4.9 Software.................................................................................................................................................................... 651
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 603
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
4.1 Introduction
The purpose of this chapter is to explain the boot read-only memory (ROM) code functionality for the CPU core,
including the boot procedure. This chapter also discusses the functions and features of the boot ROM code, and
provides details about the ROM memory-map contents. On every reset, the device executes a boot sequence
in the ROM depending on the reset type and boot configuration. This sequence initializes the device to run the
application code. For the CPU, the boot ROM also contains peripheral bootloaders that can be used to load an
application into RAM. These bootloaders can be disabled for safety or security purposes.
See Table 4-1 for details on available boot features for the C28x CPU. Additionally, Table 4-2 shows the sizes of
the various ROMs on the device.
For details on the security APIs provided, refer to Section 4.7.10.
Various tables are provided in ROM for use in software library, refer to Section 4.7.7 for more details.
Table 4-1. Boot System Overview
Boot Feature CPU
Initial boot process Device reset
Boot mode selection GPIOs
Boot modes supported Flash boot
Secure Flash boot
Firmware update (FWU) Flash boot
RAM boot
Peripheral boot loaders supported Parallel IO
SCI / Wait
CANFD
I2C
SPI
USB
Foundational Materials
• Bootloading 101 (Video)
Expert Materials
• C2000 Software Controlled Firmware Update Process Application Report
604 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
(1) SCI boot mode is used as a wait boot mode as long as SCI continues to wait for an 'A' or 'a' during the SCI autobaud lock process.
(2) If the default Flash entry address is not programmed, the boot mode switches to USB Boot for those devices that include the USB
peripheral. On devices without a USB, the action is to enter the ITRAP ISR if the default Flash entry address is not programmed. The
switch to USB boot is only supported for the default Flash entry address option and not all entry address options.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 605
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Note
All the peripheral boot modes that are supported use the first instance of the peripheral module (SCIA,
SPIA, I2CA, MCANA, and so on). Whenever these boot modes are referred to in this chapter, such as
SCI boot, the boot mode is actually referring to the first module instance, which means the SCI boot
on the SCIA port. The same applies to the other peripheral boot modes.
606 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
When using Z2-OTP-BOOTPIN-CONFIG, the configurations programmed in this location take priority
over the configurations in Z1-OTP-BOOTPIN-CONFIG. It is recommended to use Z1-OTP-BOOTPIN-
CONFIG first and then if OTP configurations need to be altered, switch to using Z2-OTP-BOOTPIN-
CONFIG.
Note
The following GPIOs cannot be used as a BMSP. If selected for a particular BMSP, the boot ROM
automatically selects the factory default GPIOs for BMSP0 and BMSP1. Factory default for BMSP2 is
0xFF, which disables the BMSP.
• GPIO36, GPIO38, GPIO39
• GPIO82 to GPIO210, GPIO216 to GPIO223, GPIO225, GPIO229
• GPIO231 to GPIO235, GPIO237 to GPIO241, GPIO243 to GPIO246
• GPIO248 to GPIO252, and GPIO254
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 607
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Note
When decoding the boot mode, BMSP0 is the least-significant bit and BMSP2 is the most-significant
bit of the boot table index value. It is recommended when disabling BMSPs to start with disabling
BMSP2. For example, in an instance when only using BMSP2 (BMSP1 and BMSP0 are disabled),
then only the boot table indexes of 0 and 4 are selectable. In the instance when using only BMSP0,
then the selectable boot table indexes are 0 and 1.
608 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
The locations Z2-OTP-BOOTDEF-LOW and Z2-OTP-BOOTDEF-HIGH is used instead of Z1-OTP-
BOOTDEF-LOW and Z1-OTP-BOOTDEF-HIGH locations when Z2-OTP-BOOTPIN-CONFIG is
configured. Refer to Section 4.4.1 for more details on BOOTPIN_CONFIG usage.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 609
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
610 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
BOR follows same flow as POR.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 611
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Security (SCC)
NMI Watchdog HWBIST POR XRS Debugger Watchdog
Reset
Note: Any resets that also cause the XRS reset bit to be set (excluding
CPU Boot Start
POR) will follow the flow relating to an XRS reset.
Value
FUSE Single Bit
is Yes
Error? Error?
Branch to Application zero
Yes
Disable wdg No
HWBIST, SCC, or
Debugger Reset Wait for
Timeout
Device Configuration
- PARTIDH/L Load
Initialize all of boot ROM stack space
XRS Reset Cause - DCX Load Set pump and bank power mode to Flash Powered up/
in M0RAM to zero
- CPUROM DCx Load active Timeout expired
- Package bonding config
Flash powered up
POR
POR
Capture any single bit flash Enable PLL and switch PLL O/P to
error addresses PBIST Enabled drive sysclk (TI OTP flag)
Verify RAM init
Field in
Is complete
GPREG2
=0x5A
Set flash pump wakeup time and wait
states for 120MHz
RAM Init complete
(delay if not complete)
Disabled
Check Z2/Z1 ROM
GPREG2 key integrity check
with BGCRC Run PBIST Memory Test
Adjust PLL clock as Passed (log staus)
configured in OTP
Any other value RAM Initialization (all RAMs)
(Wait for M0 RAM init)
Failed
Device
Calibration (ROM Code)
Wait of RAMInit
Completion (give error
status on timeout)
Is Debugger
Standalone Boot No Yes Emulation Boot
Connected?
612 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Unsupported
(=0xA5) Check Key
Emulate Wait
EMU_BOOTPIN_CON
Standalone Boot Boot
FIG_KEY
(=0x5A)
Unsupported
Decode Boot mode
BOOTDEF options for Wait Boot
boot mode
Supported
Boot mode
Is Flash /
Yes
Secure Flash / FWU Flash
Boot?
No
Enable
Watchdog
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 613
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Any
Check Other
Z2 value Read OTP loaded registers:
OTP_BOOTPIN_C Z1-BOOTPINCONFIG
ONFIG_KEY
Any
Check Other
Z1 value Read factory default two boot
OTP_BOOTPIN_C mode GPIO pins
(=0x5A)
ONFIG_KEY
(=0x5A)
Decode boot mode from pins
Use Z2 registers: Use Z1 registers:
Z2-BOOTPINCONFIG Z1-BOOTPINCONFIG
Z2-BOOTDEF Z1-BOOTDEF
Enable
Watchdog
Unsupported
Decode Boot mode
BOOTDEF table Flash Boot
for boot mode Branch to
Parallel Boot Application Code
SPI Boot
SCI Boot
CAN Boot Supported
CAN-FD Boot Boot mode
Flash Boot
Secure Flash Boot (C28x AES)
FWU Flash Boot
Is Flash Yes
Boot?
No
Enable
Watchdog
614 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 615
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
(1) A RAM uncorrectable error or ROM parity error clears the boot status information stored in RAM because a RAM initialization is
performed to attempt to correct the error. Since the boot status information is erased, this exception can be identified in that a NMIWD
reset occurred and all the RAMs are erased.
616 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
Z1-GPREG2 shares ECC with Z1-GPREG1, so users must program both these locations at the same
time in User OTP.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 617
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
(1) If MPOST is configured to run with PLL enabled and the PLL fails to lock, then the MPOST run is skipped. This does not apply, if
MPOST is configured to use INTOSC2 with PLL disabled.
(2) Bits 23:9 are only present on Z1 GPREG2 and are reserved for Z2 GPREG2
618 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
Z1-GPREG2 shares ECC with Z1-GPREG1, so users can program both these locations at the same
time in User OTP.
Table 4-16 explains how the bit field values from the user configurable DCSM OTP location, Z1-DIAG or
Z2-DIAG, are decoded by the boot ROM.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 619
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
During boot ROM execution, there are situations where the CPU can enter a wait loop in the code. This state
can occur for a variety of reasons. Table 4-20 details the address ranges that the CPU PC register value falls
between if the CPU has entered one of these instances.
Following are the actions for entering wait boot mode:
• Wait boot is set by the user as the boot mode.
• Boot mode is unrecognizable and a debugger is connected to the device.
• The emulation BOOTPIN_CONFIG key is not equal to 0xA5 or 0x5A.
• An error occurs during emulation boot and the boot mode pins are decoded with a value not recognized as a
valid boot mode.
Table 4-20. Wait Point Addresses
Address Range Description
0x3F B8B9-0x3F B8C0 In Wait Boot Mode
0x3F C7D0-0x3F C7D8 In SCI Boot waiting on autobaud lock
0x3F EDFE-0x3F EEC8 In NMI Handler
0x3F EEC9-0x3F EEF9 In ITRAP ISR
0x3F CB96-0x3F CB9A In Parallel boot waiting for control signal
620 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
Both the CMAC golden signature and CMAC key are stored in the most-significant double format, but
each 32-bit section is in little-endian format.
Key: 2B7E 1516 28AE D2A6 ABF7 1588 09CF 4F3C
(MSB is 2B and LSB is 3C)
CMACKEY0 = 0x2B7E 1516
CMACKEY1 = 0x28AE D2A6
CMACKEY2 = 0xABF7 1588
CMACKEY3 = 0x09CF 4F3C
Make sure that the Flash sector that encompasses the configured Flash entry point and the first 16KB
of Flash is assigned to Zone 1 for the core setup for secure Flash boot.
Recommended to use device JTAGLOCK when using secure Flash boot.
APIs for CMAC calculation and authentication is provided as part of ROM. Details are available in Section 4.7.10
Table 4-21. Secure Flash Tag and Key Details
Name Address Details
CMAC Golden Tag CPU: Located in Flash, offset from the entry point address, by 2 words (CPU).
(128-bit) Flash Entry Point Address + 0x2 When CMAC calculations are performed, the golden tag location in memory
is considered all 0xF. Refer to Example 4-1 for an example regarding linker
configuration on CPU.
Lower memory contains the tag most-significant word (MSW) and higher
memory contains the least-significant word (LSW).
Example (on CPU):
Tag = 0x0011 2233 4455 6677 8899 AABB CCDD EEFF
Address 0x0 = 0x0011 2233
Address 0x2 = 0x4455 6677
Address 0x4 = 0x8899 AABB
Address 0x6 = 0xCCDD EEFF
CMAC 128-Bit Key 0x0007 8018 Located in CPU Zone 1 User Header OTP
(CMACKEY0, CMACKEY1, CMACKEY2, CMACKEY3)
CMACKEY0 contains the key MSW and CMACKEY3 contains the LSW.
Example:
Key = 0x0011 2233 4455 6677 8899 AABB CCDD EEFF
CMACKEY0 = 0x0011 2233
CMACKEY1 = 0x4455 6677
CMACKEY2 = 0x8899 AABB
CMACKEY3 = 0xCCDD EEFF
Address Range for Start: Flash Entry Point Address
CMAC Calculation End: Flash Entry Point Address + 16KB
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 621
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
MEMORY
{
/* Code Start branch to _c_int00 */
BEGIN : origin = 0x80000, length = 0x0002
/* User calculated golden CMAC tag for Flash Sector 0 */
GOLDEN_CMAC_TAG : origin = 0x80002, length = 0x0008
/* Flash Sector 0 containing application code */
FLASH_SECTOR_0 : origin = 0x8000A, length = 0x1FF6
.
.
.
}
622 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Application entry point: This is the code execution start address of the image stored in Flash.
Key: This 32-bit field determines if this image is valid. The image in a bank is considered valid only if the location
contains the value 0x5A5A 5A5A. In case all the banks have invalid keys, an error is flagged in the boot_status
variable and the program jumps to a while loop in standalone boot mode (ESTOP in emulation boot mode).
Firmware version number: This 32-bit field is the version number of the firmware or application. 0xFFFF FFFF
is considered as the initial value and this needs to be decremented after every update. The image with the lower
version number is the latest application. If all valid images have the same version number, then bank-0 (or the
lowest numbered bank) is chosen.
For example, if bank-0 has invalid Key and bank-1 and bank-2 have valid keys, then the one having the lowest
Firmware version number is selected for boot. If both are the same, then bank-1 is selected.
Table 4-26 shows the entry points for FWU boot mode.
Table 4-26. FWU Entry Point Addresses
Option BOOTDEFx Value Bank 0 Bank 2
0 0x0B 0x0008 0000 0x000C 0000
1 0x2B 0x0008 8000 0x000C 8000
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 623
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Note
Load refers to the memory addresses where the C28x CPU can view the data. Run refers to the CLA
memory addresses that the CLA uses to access the data.
624 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 625
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
4.7.8.2 Bootloaders
This section details the available boot modes that use a peripheral boot loader. For more specific details on the
supported data stream structure used by the following bootloaders, refer to Section 4.8.1.
4.7.8.2.1 SCI Boot Mode
The SCI boot mode asynchronously transfers code from SCI-A to internal memory. This boot mode only
supports an incoming 8-bit data stream and follows the data flow as shown in Figure 4-4.
The device communicates with the external host by communication through the SCI-A peripheral. The autobaud
feature of the SCI port is used to lock baud rates with the host. For this reason the SCI loader is very flexible and
you can use a number of different baud rates to communicate with the device.
After each data transfer, the bootloader echoes back the 8-bit character received to the host. This allows the
host to check that each character was received by the bootloader.
At higher baud rates, the slew rate of the incoming data bits can be affected by transceiver and connector
performance. While normal serial communications can work well, this slew rate can limit reliable auto-baud
detection at higher baud rates (typically beyond 100 kbaud) and cause the auto-baud lock feature to fail. To
avoid this, the following is recommended:
1. Achieve a baud-lock between the host and SCI bootloader using a lower baud rate.
2. Load the incoming application or custom loader at this lower baud rate.
3. The host can then handshake with the loaded application to set the SCI baud rate register to the desired
high baud rate.
626 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 627
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
The SPI boot ROM loader initializes the SPI module to interface to a serial SPI EEPROM or Flash. Devices
of this type include, but are not limited to, the Xicor X25320 (4Kx8) and Xicor X25256 (32Kx8) SPI serial SPI
EEPROMs and the Atmel AT25F1024A serial Flash.
The SPI boot ROM loader initializes the SPI with the following settings: FIFO enabled, 8-bit character, internal
SPICLK controller mode and talk mode, clock phase = 1, polarity = 0, using the slowest baud rate.
If the download is to be performed from an SPI port on another device, then that device must be set up to
operate in the peripheral mode and mimic a serial SPI EEPROM. Immediately after entering the SPI_Boot
function, the pin functions for the SPI pins are set to primary and the SPI is initialized. The initialization is done at
the slowest speed possible. Once the SPI is initialized and the key value read, you can specify a change in baud
rate or low-speed peripheral clock. Table 4-34 shows the 8-bit data stream used by the SPI.
Table 4-34. SPI 8-Bit Data Stream
Byte Contents
1 LSB: AA (KeyValue for memory width = 8 bits)
2 MSB: 08h (KeyValue for memory width = 8 bits)
3 LSB: LOSPCP
4 MSB: SPIBRR
5 LSB: reserved for future use
6 MSB: reserved for future use
... Reserved
17 LSB: reserved for future use
18 MSB: reserved for future use
19 LSB: Upper half (MSW) of Entry point PC[23:16]
20 MSB: Upper half (MSW) of Entry point PC[31:24] (Note: Always 0x00)
21 LSB: Lower half (LSW) of Entry point PC[7:0]
22 MSB: Lower half (LSW) of Entry point PC[15:8]
... ....
... Data for this section.
... Blocks of data in the format size/destination address/data as shown in the generic data stream description
... ...
... Data for this section.
n LSB: 00h
n+1 MSB: 00h - indicates the end of the source
628 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
The data transfer is done in "burst" mode from the serial SPI EEPROM. The transfer is carried out entirely in
byte mode (SPI at 8 bits/character). A step-by-step description of the sequence is:
1. The SPI-A port is initialized.
2. The GPIO pin, as defined by SPI option configured from Table 4-45, is used as a chip-select for the serial
SPI EEPROM or Flash.
3. The SPI-A outputs a read command for the serial SPI EEPROM or Flash.
4. The SPI-A sends the serial SPI EEPROM an address 0x0000; that is, the host requires that the EEPROM or
Flash must have the downloadable packet starting at address 0x0000 in the EEPROM or Flash. The loader
is compatible with both 16-bit addresses and 24-bit addresses.
5. The next word fetched must match the key value for an 8-bit data stream (0x08AA). The least-significant
byte of this word is the byte read first and the most-significant byte is the next byte fetched. This is true of
all word transfers on the SPI. If the key value does not match, then the load is aborted and the bootloader
jumps to Flash.
6. The next two bytes fetched can be used to change the value of the low speed peripheral clock register
(LOSPCP) and the SPI baud rate register (SPIBRR). The first byte read is the LOSPCP value and the
second byte read is the SPIBRR value. The next seven words are reserved for future enhancements. The
SPI bootloader reads these seven words and discards them.
7. The next two words makeup the 32-bit entry point address where execution continues after the boot load
process is complete. This is typically the entry point for the program being downloaded through the SPI port.
8. Multiple blocks of code and data are then copied into memory from the external serial SPI EEPROM through
the SPI port. The blocks of code are organized in the standard data stream structure presented earlier. This
is done until a block size of 0x0000 is encountered. At that point in time the entry point address is returned to
the calling routine that then exits the bootloader and resumes execution at the address specified.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 629
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
630 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
If the download is to be performed from a device other than an EEPROM, then that device must be set up to
operate in the peripheral mode and mimic the I2C EEPROM. Immediately after entering the I2C boot function,
the GPIO pins are configured for I2C-A operation and the I2C is initialized. The following requirements must be
met when booting from the I2C module:
• The input frequency to the device must be in the appropriate range.
• The EEPROM must be at peripheral address 0x50.
The bit-period prescalers (I2CCLKH and I2CCLKL) are configured by the bootloader to run the I2C at a
50 percent duty cycle at 100kHz bit rate (standard I2C mode) when the system clock is 10MHz. These registers
can be modified after receiving the first few bytes from the EEPROM. This allows the communication to be
increased up to a 400kHz bit rate (fast I2C mode) during the remaining data reads.
Arbitration, bus busy, and peripheral signals are not checked. Therefore, no other controller is allowed to control
the bus during this initialization phase. If the application requires another controller during I2C boot mode, that
controller must be configured to hold off sending any I2C messages until the application software signals that the
controller is past the bootloader portion of initialization.
The non-acknowledgment bit is checked only during the first message sent to initialize the EEPROM base
address. This is to make sure that an EEPROM is present at address 0x50 before continuing. If an EEPROM is
not present, the non-acknowledgment bit is not checked during the address phase of the data read messages
(I2C_Get Word). If a non-acknowledgment is received during the data read messages, the I2C bus hangs. Table
4-35 shows the 8-bit data stream used by the I2C.
The I2C EEPROM protocol required by the I2C bootloader is shown in Figure 4-10 and Figure 4-11. The first
communication, which sets the EEPROM address pointer to 0x0000 and reads the KeyValue (0x08AA), is shown
in Figure 4-10. All subsequent reads are shown in Figure 4-11 and are read two bytes at a time.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 631
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
632 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 633
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
The control subsystem communicates with the external host device by polling/driving the Host Control and C28x
control lines. The handshake protocol shown in Figure 4-13 must be used to successfully transfer each word
using GPIO [D0:D7]. This protocol is very robust and allows for a slower or faster host to communicate with the
controller subsystem.
Two consecutive 8-bit words are read to form a single 16-bit word. The least-significant byte (LSB) is read first
followed by the most-significant byte (MSB). In this case, data is read from GPIO[D0:D7].
The 8-bit data stream is shown in Table 4-36.
Table 4-36. Parallel GPIO Boot 8-Bit Data Stream
Bytes GPIO[D0:D7] GPIO[D0:D7] Description
(Byte 1 of 2) (Byte 2 of 2)
1 2 AA 08 0x08AA (KeyValue for memory width = 16 bits)
3 4 00 00 8 reserved words (words 2 to 9)
... ... ... ... ...
17 18 00 00 Last reserved word
19 20 BB 00 Entry point PC[22:16]
21 22 DD CC Entry point PC[15:0] (PC = 0x00BB CCDD)
23 24 NN MM Block size of the first block of data to load = 0xMMNN words
25 26 BB AA Destination address of first block Addr[31:16]
27 28 DD CC Destination address of first block Addr[15:0] (Addr = 0xAABB CCDD)
29 30 BB AA First word of the first block in the source being loaded = 0xAABB
... ...
... Data for this section.
... ...
. BB AA Last word of the first block of the source being loaded = 0xAABB
. NN MM Block size of the 2nd block to load = 0xMMNN words
. BB AA Destination address of second block Addr[31:16]
. DD CC Destination address of second block Addr[15:0]
. BB AA First word of the second block in the source being loaded
... …
n n+1 BB AA Last word of the last block of the source being loaded
(More sections if required)
n+2 n+3 00 00 Block size of 0000h - indicates end of the source program
634 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
The device first signals the host that the device is ready to begin data transfer by pulling the C28x control pin
low. The host load then initiates the data transfer by pulling the control pin low. The complete protocol is shown
in Figure 4-13.
1. The device indicates the device is ready to start receiving data by pulling the control pin low.
2. The bootloader waits until the host puts data on GPIO [D0:D7]. The host signals to the device that data is
ready by pulling the host control pin low.
3. The device reads the data and signals the host that the read is complete by pulling the control pin high.
4. The bootloader waits until the host acknowledges the device by pulling the host control pin high.
5. The device again indicates the device is ready for more data by pulling the control pin low.
This process is repeated for each data value to be sent.
Figure 4-14 shows an overview of the Parallel GPIO bootloader flow.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 635
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Figure 4-15 shows the transfer flow from the host side. The operating speed of the CPU and host are not critical
in this mode as the host waits for the device and the device waits for the host. In this manner, the protocol works
with both a host running faster and a host running slower than the device.
Figure 4-16 shows the flow used to read a single word of data from the parallel port. The 8-bit routine, shown in
Figure 4-16, discards the upper 8 bits of the first read from the port and treats the lower 8 bits masked with D7
in bit position 7 and D6 in bit position 6 as the least-significant byte (LSB) of the word to be fetched. The routine
then performs a second read to fetch the most-significant byte (MSB). The routine then combines the MSB and
LSB into a single 16-bit value to be passed back to the calling routine.
636 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 637
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
The bit timing registers are programmed in such a way that a 100kbps bit rate is achieved with a 20MHz external
oscillator, as shown in Table 4-37.
Table 4-37. Bit-Rate Value for Internal Oscillators
OSCCLK SYSCLK Bit Rate
20MHz 10MHz 100kbps
The SYSCLKOUT values shown are the reset values with the default PLL setting. The BRP and bit-time values
are hard-coded to 10 and 20, respectively.
Note
The CAN boot loader uses XTAL as the bit clock source and INTOSC2 as the system clock source.
Mailbox 1 is programmed with a standard MSGID of 0x1 for boot-loader communication. The CAN host can
transmit only two bytes at a time, LSB first and MSB next. For example, to transmit the word 0x08AA to
the device, transmit AA first, followed by 08. The program flow of the CAN bootloader is identical to the SCI
bootloader. The data sequence for the CAN bootloader is shown in Table 4-38.
638 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 639
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
640 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Enumerate to host
PC with ID 1cbe:00ff Valid key
Jump to flash
(0x08AA)?
Host PC installs
drivers
MCU loads data into
RAM
MCU waits
for data MCU disconnects
from the USB bus
Return EntryPoint
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 641
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Implementing PC-side USB software is not trivial. It is recommended to use the TI-provided tools and drivers to
load data in USB boot mode. Hex and binary files for loader tools can be generated from COFF (.out) files using
the hex2000 tool. To produce a plain binary file in the boot loader format, use the following command line:
hex2000 -boot -b Program_to_Load.out -o Binary_Loader_Data.dat
For more information on hex2000, see the TMS320C28x Assembly Language Tools User's Guide.
Note
INTOSC2 must be enabled before invoking the USB boot loader. If INTOSC2 is not enabled, the
boot loader hangs. A debugger reset or SCC reset does not enable INTOSC2, if INTOSC2 has been
disabled by the application.
642 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note: CAN boot modes are implemented with the MCAN module in "non-FD" mode.
Note: These GPIOs are muxed with analog functions, AGPIO share pins. If the system is using these as analog
pins during normal operation, extra circuitry needs to be used to support the use of these as boot pins.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 643
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
644 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
The application must disable interrupts before calling one of the EXEONLY function APIs.
If a vector fetch request is given by the CPU (C28x) while the program counter (PC) is within the
EXEONLY function API code of the Secure ROM, a reset fires (RSN if from C28x). The consequence
of this is if an NMI or ITRAP or Bus Fault occurs while the PC is executing one of the EXEONLY API
functions, the NMI/ITRAP/Fault cannot be serviced because a reset is fired to the subsystem.
The secure copy code zone 1 and zone 2 functions allow EXEONLY Flash to be copied to EXEONLY RAM
in a secure manner. The source must be from EXEONLY Flash and the destination to EXEONLY RAM. There is
no support to copy EXEONLY ROM or EXEONLY RAM to RAM. Both Flash and RAM must be set to EXEONLY
and configured for the same zone. Additionally, the copy size must not cross over the Flash sector boundary.
Any violations of these requirements results in a failure status returned. Upon successful copy of the data, the
number of 16-bit words copied is returned.
Table 4-48. Secure Copy Code Function
CPU Function Prototype Function Parameters Function Return Value
uint16_t SecureCopyCodeZ1(uint32_t 0xXXXX : Returns the number of
size, uint16_t *dst, uint16_t *src) size : The number of 16-bit words to 16-bit words copied
copy 0x0000 : Indicates one of the
dst : The destination memory address following: Copy length is zero; Copy
CPU (C28x) size crosses over Flash sector
uint16_t SecureCopyCodeZ2(uint32_t in EXEONLY RAM
boundary; Flash and RAM do not
size, uint16_t *dst, uint16_t *src) src : The source memory address in
belong to the same zone; Flash and/or
EXEONLY Flash RAM are not set to EXEONLY; Error
occurred during data copy
The secure CRC calculation zone 1 and zone 2 functions allow a safety CRC check of EXEONLY memory
in a secure manner. The CRC length provided must be a value from 1 to 8 where 1 represents a CRC size of
32 16-bit words and 8 represents a CRC size of 4096 16-bit words. The source address specifies the starting
address for the CRC and the destination address is the location that the resulting CRC value is stored. The
source and destination memories must be configured for the same zone. Additionally, the CRC length must not
cross over the Flash sector or RAM block boundary. Any violations of these requirements results in a failure
status returned. Upon successful CRC, the number of 16-bit words CRC'd is returned.
Table 4-49. Secure CRC Calculation Function
CPU Function Prototype Function Parameters Function Return Value
uint16_t SecureCRCCalcZ1(uint16_t 0xXXXX : Returns the number of
len_id, uint16_t *dst, uint16_t *src) len_id : A number from 1 to 8 which 16-bit words CRC'd
corresponds to length options of 32, 0x0000 : Indicates one of the
64, 128, 256, 512, 1024, 2048, or following: Invalid length option; Source
4096 16-bit words address is not modulo of length value;
CPU (C28x) dst : The destination memory address Destination address is not within
uint16_t SecureCRCCalcZ2(uint16_t
for resulting CRC secure RAM; CRC size crosses over
size, uint16_t *dst, uint16_t *src)
src : The source memory address to Flash sector or RAM block boundary;
The source and destination memory
begin CRC calculation do not belong to the same zone; On
CM, CRCLOCK is enabled
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 645
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
The CMAC calculate and compare function allows to calculate CMAC signature of a Flash memory block and
compare against a golden signature. This is used in the secure boot mode to authenticate the boot image.
Table 4-50. Secure CRC Calculation Function
CPU Function Prototype Function Parameters Function Return Value
startAddress: Starting address of 0xFFFF FFFFU: Calculated CMAC
memory for which CMAC has to be signature did not match golden
calculated signature (fail)
uint32_t endAddress: Ending address of 0xA5A5 A5A5U: Memory range
CPU1BROM_calculateCMAC(uint32_t memory for which CMAC has to be provided is not aligned to 128-bit
CPU (C28x)
startAddress, uint32_t endAddress, calculated boundary or length is zero
uint32_t signatureAddress)
signatureAddress: Address of 0xE1E1 E1E1U: AES Engine timed
location where golden CMAC out
signature is stored 0x0000 0000U: No Error
Note
CPU performs clock configurations during boot up. If the PLL is used during the boot process, the PLL
is bypassed by the boot ROM code before branching to the user application.
646 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 647
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
648 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
The next two words indicate to the loader the destination address of the block of data. Following the size and
address is the 16-bit words that makeup that block of data.
This pattern of block size/destination address repeats for each block of data to be transferred. Once all the
blocks have been transferred, a block size of 0x0000 signals to the loader that the transfer is complete. At this
point, the loader returns the entry point address to the calling routine, which cleans up and exits. Execution then
continues at the entry point address as determined by the input data stream contents.
Table 4-57. LSB/MSB Loading Sequence in 8-Bit Data Stream
Contents
Byte LSB (First Byte of 2) MSB (Second Byte of 2)
1 2 LSB: AA (KeyValue for memory width = 8 bits) MSB: 08h (KeyValue for memory width = 8 bits)
3 4 LSB: Register initialization value or reserved MSB: Register initialization value or reserved
5 6 LSB: Register initialization value or reserved MSB: Register initialization value or reserved
7 8 LSB: Register initialization value or reserved MSB: Register initialization value or reserved
... ... ... ...
... ... ... ...
17 18 LSB: Register initialization value or reserved MSB: Register initialization value or reserved
19 20 LSB: Upper half of Entry point PC[23:16] MSB: Upper half of entry point PC[31:24] (Always 0x00)
21 22 LSB: Lower half of Entry point PC[7:0] MSB: Lower half of Entry point PC[15:8]
23 24 LSB: Block size in words of the first block to load. If the MSB: block size
block size is 0, this indicates the end of the source program.
Otherwise another block follows. For example, a block size of
0x000A indicates 10 words or 20 bytes in the block.
25 26 LSB: MSW destination address, first block Addr[23:16] MSB: MSW destination address, first block Addr[31:24]
27 28 LSB: LSW destination address, first block Addr[7:0] MSB: LSW destination address, first block Addr[15:8]
29 30 LSB: First word of the first block being loaded MSB: First word of the first block being loaded
... ... ... ...
... ... ... ...
. . LSB: Last word of the first block to load MSB: Last word of the first block to load
. . LSB: Block size of the second block MSB: Block size of the second block
. . LSB: MSW destination address, second block Addr[23:16] MSB: MSW destination address, second block Addr[31:24]
. . LSB: LSW destination address, second block Addr[7:0] MSB: LSW destination address, second block Addr[15:8]
. . LSB: First word of the second block being loaded MSB: First word of the second block being loaded
... ... ... ...
... ... ... ...
. . LSB: Last word of the second block MSB: Last word of the second block
. . LSB: Block size of the last block MSB: Block size of the last block
. . LSB: MSW of destination address of last block Addr[23:16] MSB: MSW destination address, last block Addr[31:24]
. . LSB: LSW destination address, last block Addr[7:0] MSB: LSW destination address, last block Addr[15:8]
. . LSB: First word of the last block being loaded MSB: First word of the last block being loaded
... ... ... ...
... ... ... ...
. . LSB: Last word of the last block MSB: Last word of the last block
n n+1 LSB: 00h MSB: 00h - indicates the end of the source
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 649
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
650 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
See the TMS320C28x Assembly Language Tools User's Guide and the TMS320C28x Optimizing C/C++
Compiler User's Guide for more information on the compiling and linking process.
Table 4-58 summarizes the hex conversion utility options available for the bootloader. See the TMS320C28x
Assembly Language Tools User's Guide for a detailed description of the hex2000 operations used to generate a
boot table. Updates are made to support the I2C boot. See the Codegen release notes for the latest information.
Table 4-58. Boot Loader Options
Option Description
-boot Convert all sections into bootable form (use instead of a SECTIONS directive)
-sci8 Specify the source of the bootloader table as the SCI-A port, 8-bit mode
-spi8 Specify the source of the bootloader table as the SPI-A port, 8-bit mode
-gpio8 Specify the source of the bootloader table as the GPIO port, 8-bit mode
-bootorg value Specify the source address of the bootloader table
-lospcp value Specify the initial value for the LOSPCP register. This value is used only for the spi8 boot table format and
ignored for all other formats. If the value is greater than 0x7F, the value is truncated to 0x7F.
-spibrr value Specify the initial value for the SPIBRR register. This value is used only for the spi8 boot table format and
ignored for all other formats. If the value is greater than 0x7F, the value is truncated to 0x7F.
-e value Specify the entry point at which to begin execution after boot loading. The value can be an address or a global
symbol. This value is optional. The entry point can be defined at compile time using the linker -e option to
assign the entry point to a global symbol. The entry point for a C program is normally _c_int00 unless defined
otherwise by the -e linker option.
-i2c8 Specify the source of the bootloader table as the I2C-A port, 8-bit
-i2cpsc value Specify the value for the I2CPSC register. This value is loaded and takes effect after all I2C options are loaded,
prior to reading data from the EEPROM. This value is truncated to the eight least-significant bits and can be set
to maintain an I2C module clock of 7 to 12MHz.
-i2cclkh value Specify the value for the I2CCLKH register. This value is loaded and takes effect after all I2C options are
loaded, prior to reading data from the EEPROM.
-i2cclkl value Specify the value for the I2CCLKL register. This value is loaded and takes effect after all I2C options are
loaded, prior to reading data from the EEPROM.
4.9 Software
4.9.1 BOOT Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/boot
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 651
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
Chapter 5
Dual Code Security Module (DCSM)
5.1 Introduction...............................................................................................................................................................653
5.2 Functional Description.............................................................................................................................................653
5.3 Flash and OTP Erase/Program................................................................................................................................660
5.4 Secure Copy Code....................................................................................................................................................660
5.5 SecureCRC................................................................................................................................................................661
5.6 CSM Impact on Other On-Chip Resources.............................................................................................................662
5.7 Incorporating Code Security in User Applications................................................................................................663
5.8 Software.................................................................................................................................................................... 667
5.9 DCSM Registers........................................................................................................................................................672
652 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
5.1 Introduction
The dual code security module (DCSM) is a security feature incorporated in this device and prevents access
and visibility to on-chip secure memories (and other secure resources) by unauthorized persons. The DCSM
also prevents duplication and reverse-engineering of proprietary code. The term “secure” means that access to
on-chip secure memories and resources is blocked. The term “unsecure” means that access is allowed; that is,
the contents of the memory can be read by any means (for example, through a debugging tool such as Code
Composer Studio™ IDE.
The CSM has dual-zone security, Zone1 (Z1) and Zone2 (Z2).
5.1.1 DCSM Related Collateral
Table 5-1 shows the status of a RAM block/Flash sector based on the configuration in the GRABRAM/
GRABSECT register.
The security of each zone is provided by a 128-bit (four 32-bit words) password (CSM password). The password
for each zone is stored in USER OTP. A zone can be unsecured by executing the password match flow (PMF),
described in Section 5.7.4.
There are three types of accesses:
• Data/program reads: Data reads to secure memory are always blocked unless the program is executing
from a memory that belongs to the same zone. Data reads to unsecure memory are always allowed. Table
5-2 shows the levels of security.
• JTAG access: JTAG accesses are always blocked when a memory is secure.
• Instruction fetches (calls, jumps, code executions, ISRs): Instruction fetches are never blocked.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 653
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
CAUTION
Never program any other values in these fields. Failing any of these conditions for a RAM block/
Flash sector makes that RAM block/Flash sector inaccessible.
(1) Zone1 must be unsecure. Assumption in this case is that the user is not using Zone1 so none of the fields, including passwords, in
Zone1 USER OTP are programmed by the user, hence, Zone1 is always unsecure.
(2) Zone2 must be unsecure. Assumption in this case is that the user is not using Zone2 so none of the fields, including passwords, in
Zone2 USER OTP are programmed by the user, hence, Zone2 is always unsecure.
654 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 655
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
Note
Password unlock only makes password locations non-secure. All other secure memories remains
secure as per security settings. Since password locations are non-secure, anyone can read the
password and make the zone unsecure by running through PMF, user must program PSWDLOCK
locations to lock the password before sending the device in field.
656 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
5.2.6 JTAGLOCK
Sometimes you want to disable the JTAG access on a device to avoid any debug access to the device. This can
be done by using the JTAGLOCK feature on this device. You need to follow a two step process to enable the
JTAGLOCK feature (both steps can be performed at the same time).
1. Program the JTAG passwords. This device has a 128-bit JTAG password that needs to be programmed in
Z1 USER OTP. JTAG passwords are split into two parts, JTAGPSWDH and JTAGPSWDL. JTAGPSWDH is
part of Z1 USER OTP header and JTAGPSWDL is part of Z1 Zone Select Block (ZSB). What this means
is program JTAGPSWDH once and change the JTAGPSWDL multiple times, if needed. Code Composer
Studio has an integrated tool that you need to use to unlock the JTAGLOCK on device.
2. After programming the JTAG passwords, you need to enable the JTAGLOCK module (JLM) by programming
bit [3:0] of Z1OTP_JLM_ENABLE with any value other than 0xF. It is recommended to program all four bits
with a value 0x0.
Since OTP cannot be erased, the following configurations are placed in zone select blocks of each zone’s OTP
Flash of both the banks:
• ZxOTP_CSMPSWD0 • ZxOTP_GRABRAM1
• ZxOTP_CSMPSWD1 • ZxOTP_EXEONLYSECT1
• ZxOTP_CSMPSWD2 • ZxOTP_EXEONLYSECT2
• ZxOTP_CSMPSWD3 • ZxOTP_EXEONLYRAM1
• ZxOTP_GRABSECT1 • Z1OTP_JTAGPSWDL
• ZxOTP_GRABSECT2
• ZxOTP_GRABSECT3
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 657
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
The location of the valid zone select block in OTP is decided based on the value of three 14-bit link pointers
(Zx-LINKPOINTERx) programmed in the OTP of each zone. All OTP locations except link pointers and
Z1OTP_JLM_ENABLE locations are protected with ECC. Since the link pointer locations are not protected with
ECC, three link pointers are provided that need to be programmed with the same value. The final value of the
link pointer is resolved in hardware, when a dummy read is done to all the link pointers, by comparing all the
three values (bit-wise voting logic). Since in OTP, a 1 can be flipped by the user to 0, but 0 can not be flipped to
1 (no erase operation for OTP), the most-significant bit position in the resolved link pointer that is 0, defines the
valid base address for the zone select block. While generating the final link pointer value, if the bit pattern is not
one of those listed in Figure 5-1, the final link pointer value becomes All_1 (0xFFFF_FFFF), which selects the
Zone-Select-Block1 (also known as the default zone select block).
Note
Address locations for other security settings that are not part of Zone Select blocks can be
programmed only once; therefore, program the locations towards the end of the development cycle.
658 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
0x18 ZxOTP_EXEONLYRAM1
Zone Select Block 15
Zone Select Block 15 0x783E0
0x781E0 (32x16 Bits)
(32x16 Bits) 0x1a Z1_DIAG
0x1c ZxOTP_JTAGPSWDL0
0x1e ZxOTP_JTAGPSWDL1
CAUTION
USER OTP is ECC protected. Program the ECC value while programming the security setting in
USER OTP. Failing to program the correct ECC value causes the device to be blocked permanently
and replacing the device can be possible.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 659
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
5.2.8 C Code Example to Get Zone Select Block Addr for Zone1
660 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
5.5 SecureCRC
Since reads from EXEONLY memories are not allowed, the user cannot calculate the CRC on content in
EXEONLY memories using the CRC engine available on this device (for example, VCUCRC, GCRC) or
software. In some safety-critical applications, the user can calculate the CRC even on these memories. To
enable this without compromising on security, TI provides specific “SecureCRC” library functions for each zone.
These functions do the CRC calculation in highly secure environment and allow a CRC calculation to be
performed only when the following conditions are met:
• The source address can be modulo the number of words (based on length_id) for which the CRC needs to be
calculated.
• The destination address can belong to the same zone as the source address.
For further usage of these library functions, see the device-specific Boot ROM documentation.
Note
The user must disable all the interrupts before calling the secure functions in ROM. If there is a vector
fetch during secure function execution, the CPU gets reset immediately.
Disclaimer: The Code Security Module (CSM) included on this device was designed to password protect the
data stored in the associated memory and is warranted by Texas Instruments (TI), in accordance with its
standard terms and conditions, to conform to TI's published specifications for the warranty period applicable
for this device. TI DOES NOT, HOWEVER, WARRANT OR REPRESENT THAT THE CSM CANNOT BE
COMPROMISED OR BREACHED OR THAT THE DATA STORED IN THE ASSOCIATED MEMORY CANNOT
BE ACCESSED THROUGH OTHER MEANS. MOREOVER, EXCEPT AS SET FORTH ABOVE, TI MAKES
NO WARRANTIES OR REPRESENTATIONS CONCERNING THE CSM OR OPERATION OF THIS DEVICE,
INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. IN NO EVENT SHALL TI BE LIABLE FOR ANY CONSEQUENTIAL, SPECIAL, INDIRECT,
INCIDENTAL, OR PUNITIVE DAMAGES, HOWEVER CAUSED, ARISING IN ANY WAY OUT OF YOUR USE
OF THE CSM OR THIS DEVICE, WHETHER OR NOT TI HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES. EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO LOSS OF DATA, LOSS OF
GOODWILL, LOSS OF USE OR INTERRUPTION OF BUSINESS OR OTHER ECONOMIC LOSS.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 661
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
Note
Security Initialization is done by BOOTROM code on all the resets (as part of device initialization) that
assert SYSRSn. This is not part of user application code.
The order of initialization matters; hence, if a memory watch window with the USER OTP address is
opened in the debugger (CCS IDE), the security initialization can occur in an incorrect order locking
the device down. To avoid this, do not keep a memory window with USER OTP address opened in the
debugger (CCS IDE) when performing a reset.
662 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 663
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
664 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
volatile long int *CSM = (volatile long int *)5F090; //CSM register file volatile
long int *CSMPWL = (volatile long int *)0x78020; //CSM Password location (assuming default Zone
select block)
volatile int tmp;
int I;
// Read the 128-bits of the CSM password locations (PWL)
//
for (I=0;I<4; I++) tmp = *CSMPWL++;
// Write the 128-bit password to the CSMKEY registers
// If this password matches that stored in the CSLPWL,
// then the CSM becomes unsecure. If this password does not match,
// then the zone remains secure.
// An example password of: // 0x11112222333344445555666677778888 is used.
*CSM++ = 0x22221111; // Register Z1_CSMKEY0 at 0x5F090
*CSM++ = 0x44443333; // Register Z1_CSMKEY1 at 0x5F092
*CSM++ = 0x66665555; // Register Z1_CSMKEY2 at 0x5F094
*CSM++ = 0x88887777; // Register Z1_CSMKEY3 at 0x5F096
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 665
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
START
NO
Correct Password?
YES
666 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
volatile long int *ECSL = (volatile int *)0x5F090; //ECSL register file
volatile long int *ECSLPWL = (volatile int *)0x78028; //ECSL Password location (assuming default
Zone sel block)
volatile int tmp;
int I;
// Read the 64-bits of the password locations (PWL).
for (I=0;I<2; I++) tmp = *ECSLPWL++;
// Write the 64-bit password to the CSMKEYx registers
// If this password matches that stored in the CSMPWL,
// then ECSL gets disabled. If this password does not match,
// then the zone remains secure.
// An example password of: // 0x1111222233334444 is used.
*ECSL++ = 0x22221111; // Register Z1_CSMKEY0 at 0x5F090
*ECSL++ = 0x44443333; // Register Z1_CSMKEY1 at 0x5F092
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 667
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
668 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 669
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
670 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 671
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
This example is an empty project setup for DCSM Tool and Driverlib development. For guidance refer to: C2000
DCSM Security Tool
5.9 DCSM Registers
This Section describes the DCSM Registers.
5.9.1 DCSM Base Address Table
Table 5-5. DCSM Base Address Table
Bit Field Name Pipeline
DriverLib Name Base Address CPU1 CPU1.DMA CPU1.CLA1
Instance Structure Protected
672 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
Complex bit access types are encoded to fit into small table cells. Table 5-7 shows the codes that are used for
access types in this section.
Table 5-7. DCSM_Z1_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
Reset or Default Value
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 673
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
674 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 675
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED CRCLOCK
R-0h R-0h
7 6 5 4 3 2 1 0
PSWDLOCK RESERVED JTAGLOCK
R-0h R-0h R-1h
676 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED Z1_JLM_ENABLE
R-0-0h R-Fh
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 677
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED Z1_LINKPOINTERERR
R-0-0h R-0h
678 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 679
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
680 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 681
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
682 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 683
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
684 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 685
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
686 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED ARMED UNSECURE ALLONE ALLZERO RESERVED
R-0h R-0h R-0h R-0h R-1h R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 687
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
688 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
GRAB_B1_SECT3 GRAB_B1_SECT2 GRAB_B1_SECT1 GRAB_B1_SECT0
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_B0_SECT127_96 GRAB_B0_SECT95_64 GRAB_B0_SECT63_32 GRAB_B0_SECT31_4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_B0_SECT3 GRAB_B0_SECT2 GRAB_B0_SECT1 GRAB_B0_SECT0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 689
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
690 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 691
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
692 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
GRAB_B3_SECT3 GRAB_B3_SECT2 GRAB_B3_SECT1 GRAB_B3_SECT0
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_B2_SECT127_96 GRAB_B2_SECT95_64 GRAB_B2_SECT63_32 GRAB_B2_SECT31_4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_B2_SECT3 GRAB_B2_SECT2 GRAB_B2_SECT1 GRAB_B2_SECT0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 693
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
694 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 695
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
696 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED GRAB_B4_SECT31_4
R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_B4_SECT3 GRAB_B4_SECT2 GRAB_B4_SECT1 GRAB_B4_SECT0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 697
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
698 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED GRAB_RAM9 GRAB_RAM8
R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_RAM7 GRAB_RAM6 GRAB_RAM5 GRAB_RAM4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_RAM3 GRAB_RAM2 GRAB_RAM1 GRAB_RAM0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 699
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
700 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 701
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_
SECT127_96 SECT95_64 SECT63_32 SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_
SECT127_96 SECT95_64 SECT63_32 SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_
SECT127_96 SECT95_64 SECT63_32 SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
702 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 703
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
704 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 705
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
706 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 707
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED EXEONLY_B4_ EXEONLY_B4_ EXEONLY_B4_ EXEONLY_B4_ EXEONLY_B4_
SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h
708 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 709
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED EXEONLY_RA EXEONLY_RA
M9 M8
R-0h R-0h R-0h
7 6 5 4 3 2 1 0
EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA
M7 M6 M5 M4 M3 M2 M1 M0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
710 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 711
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
712 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 713
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
714 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 715
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
716 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 717
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
718 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 719
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED MPOST_EN RESERVED RESERVED
R-0-0h R-0h R-0h R-0h
720 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
Complex bit access types are encoded to fit into small table cells. Table 5-38 shows the codes that are used for
access types in this section.
Table 5-38. DCSM_Z2_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
Reset or Default Value
-n Value after reset or the default
value
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 721
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
722 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED CRCLOCK
R-0h R-0h
7 6 5 4 3 2 1 0
PSWDLOCK RESERVED JTAGLOCK
R-0h R-0h R-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 723
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED Z2_LINKPOINTERERR
R-0-0h R-0h
724 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 725
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
726 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 727
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
728 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 729
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
730 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 731
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
732 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED ARMED UNSECURE ALLONE ALLZERO RESERVED
R-0h R-0h R-0h R-0h R-1h R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED
R-0-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 733
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
734 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
GRAB_B1_SECT3 GRAB_B1_SECT2 GRAB_B1_SECT1 GRAB_B1_SECT0
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_B0_SECT127_96 GRAB_B0_SECT95_64 GRAB_B0_SECT63_32 GRAB_B0_SECT31_4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_B0_SECT3 GRAB_B0_SECT2 GRAB_B0_SECT1 GRAB_B0_SECT0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 735
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
736 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 737
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
738 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
GRAB_B3_SECT3 GRAB_B3_SECT2 GRAB_B3_SECT1 GRAB_B3_SECT0
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_B2_SECT127_96 GRAB_B2_SECT95_64 GRAB_B2_SECT63_32 GRAB_B2_SECT31_4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_B2_SECT3 GRAB_B2_SECT2 GRAB_B2_SECT1 GRAB_B2_SECT0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 739
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
740 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 741
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
742 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED GRAB_B4_SECT31_4
R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_B4_SECT3 GRAB_B4_SECT2 GRAB_B4_SECT1 GRAB_B4_SECT0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 743
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
744 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED GRAB_RAM9 GRAB_RAM8
R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_RAM7 GRAB_RAM6 GRAB_RAM5 GRAB_RAM4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_RAM3 GRAB_RAM2 GRAB_RAM1 GRAB_RAM0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 745
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
746 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 747
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_ EXEONLY_B2_
SECT127_96 SECT95_64 SECT63_32 SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_ EXEONLY_B1_
SECT127_96 SECT95_64 SECT63_32 SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_ EXEONLY_B0_
SECT127_96 SECT95_64 SECT63_32 SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
748 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 749
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
750 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 751
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
752 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 753
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED EXEONLY_B4_ EXEONLY_B4_ EXEONLY_B4_ EXEONLY_B4_ EXEONLY_B4_
SECT31_4 SECT3 SECT2 SECT1 SECT0
R-0h R-0h R-0h R-0h R-0h R-0h
754 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 755
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED EXEONLY_RA EXEONLY_RA
M9 M8
R-0h R-0h R-0h
7 6 5 4 3 2 1 0
EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA EXEONLY_RA
M7 M6 M5 M4 M3 M2 M1 M0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
756 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 757
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 5-59 shows the codes that are used for
access types in this section.
Table 5-59. DCSM_COMMON_REGS Access Type
Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
WOnce W Write
Once Write once
Reset or Default Value
-n Value after reset or the default
value
758 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
KEY RESERVED SEM
R-0/W-0h R-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 759
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
STATUS_B1_SECT3 STATUS_B1_SECT2 STATUS_B1_SECT1 STATUS_B1_SECT0
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
STATUS_B0_SECT127_96 STATUS_B0_SECT95_64 STATUS_B0_SECT63_32 STATUS_B0_SECT31_4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
STATUS_B0_SECT3 STATUS_B0_SECT2 STATUS_B0_SECT1 STATUS_B0_SECT0
R-0h R-0h R-0h R-0h
760 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 761
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
762 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
STATUS_B3_SECT3 STATUS_B3_SECT2 STATUS_B3_SECT1 STATUS_B3_SECT0
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
STATUS_B2_SECT127_96 STATUS_B2_SECT95_64 STATUS_B2_SECT63_32 STATUS_B2_SECT31_4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
STATUS_B2_SECT3 STATUS_B2_SECT2 STATUS_B2_SECT1 STATUS_B2_SECT0
R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 763
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
764 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 765
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED STATUS_B4_SECT31_4
R-0h R-0h
7 6 5 4 3 2 1 0
STATUS_B4_SECT3 STATUS_B4_SECT2 STATUS_B4_SECT1 STATUS_B4_SECT0
R-0-0h R-0-0h R-0-0h R-0-0h
766 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 767
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED STATUS_RAM9 STATUS_RAM8
R-0h R-0h R-0h
15 14 13 12 11 10 9 8
STATUS_RAM7 STATUS_RAM6 STATUS_RAM5 STATUS_RAM4
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
STATUS_RAM3 STATUS_RAM2 STATUS_RAM1 STATUS_RAM0
R-0h R-0h R-0h R-0h
768 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 769
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED ERR
R-0-0h R-0h
770 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED ERR
R-0-0h R-0/
W1S-0
h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 771
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED ERR
R-0-0h R-0/
W1S-0
h
772 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
ILLSIZE ILLCMD ILLMODECH ILLRDVER ILLERASE ILLPROG ILLADDR BLOCKED
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 773
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
774 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 775
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
776 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 777
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED GRABRSTCTL
R-0-0h R/W-0h
7 6 5 4 3 2 1 0
GRABCLKCTL GRABTIMER1 GRABNMIWD GRABWD
R/W-0h R/W-0h R/W-0h R/W-0h
778 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 779
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 5-74 shows the codes that are used for
access types in this section.
Table 5-74. DCSM_Z1_OTP Access Type Codes
Access Type Code Description
Read Type
R R Read
Reset or Default Value
-n Value after reset or the default
value
780 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 781
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
782 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 783
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
784 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 785
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
786 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 787
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
788 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 789
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
790 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 791
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
792 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 793
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
794 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 795
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
796 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
Complex bit access types are encoded to fit into small table cells. Table 5-92 shows the codes that are used for
access types in this section.
Table 5-92. DCSM_Z2_OTP Access Type Codes
Access Type Code Description
Read Type
R R Read
Reset or Default Value
-n Value after reset or the default
value
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 797
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
798 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 799
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
800 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 801
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
802 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 803
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
804 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual Code Security Module (DCSM)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 805
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual Code Security Module (DCSM) www.ti.com
806 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
Chapter 6
Flash Module
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 807
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
Foundational Materials
• C2000 Academy - FLASH
• Embedded Flash Memory (Video)
808 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
Note
Before initializing wait-states, turn off the pre-fetch and data caching in the FRD_INTF_CTRL register.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 809
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
Flash Wrapper
Bank0
256 KB
128 * 2KB
sectors
Bank1
256 KB
128 * 2KB
sectors
ePIE/NMI
Bank3
256 KB
128 * 2KB
sectors
Bank4
64 KB
32 * 2KB
sectors
Flash Pump
810 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
Note
When programming the FRDCNTL register, be sure to avoid writing values to bits other than the
RWAIT field as described in the register description. Overwriting reserved register fields can result in
errors or unpredictable behavior.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 811
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
Flash prefetch
Instruction buffer
128-bit 128-bit
buffer buffer
Instruction fetch
128-bit
M Data cache
CPU 32-bit U
X
812 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
The Flash prefetch is aborted only when there is a code discontinuity caused by executing an instruction such
as a branch, function call, or loop. When this occurs, the prefetch mechanism is aborted, and the contents of the
prefetch buffer are flushed. There are two possible scenarios when this occurs:
1. If the destination address is within the Flash or OTP, the prefetch aborts and then resumes at the destination
address.
2. If the destination address is outside of the Flash and OTP, the prefetch is aborted, and begins again
only when the code branches back into the Flash or OTP. The Flash prefetch mechanism only applies to
instruction fetches from program space. Data reads from data memory and from program memory do not
utilize the prefetch mechanism and thus bypass the prefetch buffer. For example, instructions such as MAC,
DMAC, and PREAD read a data value from program memory. When such a read happens, the prefetch
buffer is bypassed, but the buffer is not flushed. If an instruction prefetch is already in progress when a data
read operation is initiated, then the data read is stalled until the prefetch completes.
Note that the prefetch mechanism gets bypassed when RWAIT is configured as zero.
6.5.1.3 Data Cache
In addition to the prefetch mechanism, a data cache of 128-bits wide has been implemented to improve data
space read performance. This data cache is separate from the instruction prefetch buffer, and is used for data
reads only. Whenever a data read access is performed by the CPU to a Flash bank address, if the data located
at that address is not presently loaded into the data cache, then the Flash wrapper reads 128 bits of data from
the Flash bank and stores the data in the data cache. This data is eventually sent to the CPU for processing.
The starting address of the Flash bank access is automatically aligned to a 128-bit boundary, such that the
requested address location is within the 128 bits to be read from the bank.
The data cache is disabled by default at reset. To enable the data cache, set the DATA_CACHE_EN bit in the
FRD_INTF_CTRL register, or call the Flash_enableCache() driverlib function. Note that the data cache gets
bypassed when RWAIT is set to zero.
Note
The data cache does not get updated on a debugger access, or when a read to the ECC memory-
mapped region is performed.
Note
ECC checks are performed on data read from Flash before the data is stored in the prefetch buffer or
data cache. Once data has entered the cache or buffer, there are no further ECC checks performed.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 813
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
6.6.1 Erase
When the target Flash is erased, the Flash reads as all 1s. This state is called 'blank.' The erase function must
be executed before programming. The user cannot skip erase on sectors that read as 'blank' because these
sectors can require additional erasing due to marginally erased bits columns. The FSM provides an Erase Sector
command to erase the target sector. The erase function erases the data and the ECC together. Bank erase is
also supported in this device.
6.6.2 Program
The Flash wrapper provides a command to program the Flash and User OTP. This command is also used to
program ECC check bits.
Note
The main array Flash programming must be aligned to 64-bit address boundaries, and each 64-bit
word can only be programmed once per write/erase cycle.
The DCSM OTP programming must be aligned to 128-bit address boundaries and each 128-bit word
can only be programmed once. The exceptions are:
• The DCSM Zx-LINKPOINTER1 and Zx-LINKPOINTER2 values in the DCSM OTP can be
programmed together and can be programmed one bit at a time as required by the DCSM
operation.
• The DCSM Zx-LINKPOINTER3 values in the DCSM OTP can be programmed one bit at a time as
required by the DCSM operation.
To avoid exceeding data retention capability limits, do not perform more than 4 program operations
on the same Flash word line before performing an erase operation. Each Flash word line consists
of sixteen 128-bit words (256 bytes). This limit is especially important to observe when writing to
one-time-programmable/non-erasable Flash regions, such as the User OTP.
6.6.3 Verify
After programming, the user must perform verify using API function Fapi_doVerify(). This function verifies the
Flash contents against supplied data.
Application software typically perform a CRC check of the Flash memory contents during power-up and at
regular intervals during runtime (as needed). Apart from this, ECC logic, when enabled (enabled by default),
catches single-bit errors, double-bit errors, and address errors whenever the CPU reads/fetches from a Flash
address.
814 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
Data[127:64] FAIL_0_H
ERR_TYPE_H
ECC_H[7:0]
SINGLE_ERR_H
ECC64_H UNC_ERR_H MEMCONFIG
(Error Logger)
AIN[15:0] ERR_POS_H[5:0]
UCERRFLG
CERRFLG
ECC_L[7:0] FAIL_0_L
ECC64_L ERR_TYPE_L
AIN[15:0] SINGLE_ERR_H
UNC_ERR_H
ERR_POS_H[5:0]
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 815
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
Note
Since ECC is calculated for an entire 64-bit data word, a non 64-bit read such as a byte read or a
half-word read still forces the entire 64-bit data word to be read and calculated, even though only the
byte or half-word is actually used by the CPU.
The ECC feature is enabled by default at reset, and can be enabled or disabled by writing to the ECC_ENABLE
register. ECC logic is automatically bypassed when the 64 data bits and associated ECC bits fetched from the
bank are either all ones or all zeros.
6.7.1 Single-Bit Data Error
This section provides information for both single-bit data errors and single-bit ECC check bit errors. If there is a
single bit flip (0 to 1 or 1 to 0) in Flash data or in ECC data, then the error is considered as a single-bit data error.
The SECDED module detects and corrects single-bit errors, if any, in the 64-bit Flash data or eight ECC check
bits read from the Flash/ECC memory map before the read data is provided to the CPU.
When SECDED finds and corrects single bit data errors, the following information is logged in the ECC registers
if the ECC feature is enabled:
• Address where the error occurred: if the single-bit error occurs in the lower 64 bits of a 128-bit memory-
aligned Flash data word, the address of the lower 64-bit word is captured in the SINGLE_ERR_ADDR_LOW
register. If the single-bit error occurs in the upper 64 bits of the 128-bit data word, then the address of the
upper 64-bit word is captured in the SINGLE_ERR_ADDR_HIGH register.
• Whether the error occurred in data bits or ECC bits: the ERR_TYPE_L and ERR_TYPE_H bit fields in the
ERR_POS register indicate whether the error occurred in data bits or ECC bits of the lower 64 bits, or the
upper 64 bits respectively, of a 128-bit memory-aligned Flash data word.
• Bit position at which the error occurred: the ERR_POS_L and ERR_POS_H bit fields in the ERR_POS
register indicate the bit position of the error in the lower 64 bits/lower 8-bit ECC, or the upper 64 bits/upper
8-bit ECC respectively, of a 128-bit memory-aligned Flash data word.
• Whether the corrected value is 0 (FAIL_0_L, FAIL_0_H flags in ERR_STATUS register).
• Whether the corrected value is 1 (FAIL_1_L, FAIL_1_H flags in ERR_STATUS register).
• A single bit error counter that increments on every single bit error occurrence (ERR_CNT register) until a
user-configurable threshold (see ERR_THRESHOLD) is met.
• A flag that gets set when one or more single-bit errors occurs after ERR_CNT equals ERR_THRESHOLD
(SINGLE_ERR_INT_FLG flag in the ERR_INTFLG register).
When the ERR_CNT value equals ERR_THRESHOLD+1, and a single bit error occurs, the Flash module sets
the SINGLE_ERR_INT flag and generates an interrupt signal. To enable propagation of the generated interrupt
pulse to the CPU, the user application must enable the FLASH_CORRECTABLE_ERROR channel in the C28
Peripheral Interrupt Expansion module (PIE). The interrupt signal remains high until the application clears the
SINGLE_ERR_INTFLG flag by writing to the SINGLE_ERR_INTCLR bit in the ERR_INTCLR register. The Flash
module cannot generate any further FLASH_CORRECTABLE_ERROR interrupt signals to the PIE/CPU until
SINGLE_ERR_INTFLG is cleared, as this is an edge-based interrupt.
When multiple single-bit errors have been detected by ECC logic, the contents of the Flash ECC registers reflect
the most recent ECC error. When multiple single-bit errors have been detected, both FAIL_0_L and FAIL_1_L
(or FAIL_0_H and FAIL_1_H) can be set, indicating that single-bit fail0/fail1 occurred in different 64-bit aligned
addresses.
Although ECC is calculated on 64-bit basis, a read of any address location within a 128-bit aligned Flash data
word causes the single-bit error flag to get set, if there is a single-bit error in both or in either the lower 64 or
upper 64 bits (or corresponding ECC check bits) of that 128-bit data word.
816 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
Note
When ECC self-test is enabled and CPU issues a read access to the Flash, ECC errors are captured
in the data cache and prefetch buffers. TI recommends that application software disables caching
while performing diagnostic checks.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 817
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
FAIL_1_H
FAIL_0_H
Data[127:64]
ERR_TYPE_H
ECC_H[7:0] SINGLE_ERR_H
ECC64_H UNC_ERR_H
(func)
AIN[21:0] ERR_POS_H[5:0]
C_Data[127:64]
DIAG_H
Output
Comparator
ERR FAIL_1_H
Inse rtio n FAIL_0_H
ERR_TYPE_H
SINGLE_ERR_H
ECC64_H UNC_ERR_H
(Redun dant)
ERR_POS_H[5:0]
C_Data[127:64]
UNC_ERR_H
FAIL_1_H
FAIL_0_H
FECC_CTRL.ECC_TEST_EN
From ECC64_H ERR_TYPE_H
SINGLE_ERR_H
(func) ERR_POS_H[5:0]
ECC C_Data[127:64]
Enable
FAIL_1_L
FAIL_0_L
Data[63:0]
ERR_TYPE_L
ECC_L[7:0] SINGLE_ERR_L
ECC64_L UNC_ERR_L
(func)
AIN[21:0] ERR_POS_L[5:0]
C_Data[63:0]
DIAG_L
Output
Comparator
ERR FAIL_1_L
Inse rtio n FAIL_0_L
ERR_TYPE_L
SINGLE_ERR_L
ECC64_L UNC_ERR_L
(Redun dant)
ERR_POS_L[5:0]
C_Data[63:0]
UNC_ERR_L
FAIL_1_L
FAIL_0_L
FECC_CTRL.ECC_TEST_EN
From ECC64_L ERR_TYPE_L
SINGLE_ERR_L
(func) ERR_POS_L[5:0]
C_Data[63:0]
818 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 819
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
6.11 Software
6.11.1 FLASH Registers to Driverlib Functions
Table 6-1. FLASH Registers to Driverlib Functions
File Driverlib Function
FRDCNTL
flash.h Flash_setWaitstates
FLPROT
flash.h Flash_setFLWEPROT
FRD_INTF_CTRL
flash.h Flash_enablePrefetch
flash.h Flash_disablePrefetch
flash.h Flash_enableCache
flash.h Flash_disableCache
ECC_ENABLE
flash.h Flash_enableECC
flash.h Flash_disableECC
FECC_CTRL
flash.h Flash_enableSingleBitECCTestMode
flash.h Flash_enableDoubleBitECCTestMode
flash.h Flash_disableSingleBitECCTestMode
flash.h Flash_disableDoubleBitECCTestMode
820 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
1. AutoEcc generation
2. DataOnly and EccOnly
3. DataAndECC
External Connections
• None.
Watch Variables
• None.
6.11.2.2 Flash Programming with AutoECC, DataAndECC, DataOnly and EccOnly
FILE: flashapi_512bit_programming.c
This example demonstrates how to program Flash using API's following options
1. AutoEcc generation
2. DataOnly and EccOnly
3. DataAndECC
External Connections
• None.
Watch Variables
• None.
6.12 FLASH Registers
This Section describes the FLASH Registers.
6.12.1 FLASH Base Address Table
Table 6-2. FLASH Base Address Table
Bit Field Name Pipeline
DriverLib Name Base Address CPU1 CPU1.DMA CPU1.CLA1
Instance Structure Protected
FLASH_CTRL_RE FLASH0CTRL_BAS
Flash0CtrlRegs 0x0005_F800 YES - - YES
GS E
FLASH_ECC_RE
Flash0EccRegs FLASH0ECC_BASE 0x0005_FB00 YES - - YES
GS
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 821
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 6-4 shows the codes that are used for
access types in this section.
Table 6-4. FLASH_CTRL_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
Write Type
W W Write
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
822 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RWAIT
R-0h R/W-Fh
7 6 5 4 3 2 1 0
RESERVED
R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 823
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED FLWEPROT
R-0h R/W-0h
824 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED DATA_CACHE_ PREFETCH_E
EN N
R-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 825
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 6-9 shows the codes that are used for
access types in this section.
Table 6-9. FLASH_ECC_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
826 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Flash Module
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED ENABLE
R-0h R/W-Ah
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 827
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Flash Module www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED ECC_TEST_EN
R-0h R/W-0h
828 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Chapter 7
Control Law Accelerator (CLA)
The Control Law Accelerator (CLA) Type-2 is an independent, fully-programmable, 32-bit floating-point math
processor that brings concurrent control-loop execution to the C28x family. The low interrupt latency of the
CLA allows the CLA to read ADC samples "just-in-time." This significantly reduces the ADC sample to output
delay to enable faster system response and higher MHz control loops. By using the CLA to service time-critical
control loops, the main CPU is free to perform other system tasks such as communications and diagnostics. This
chapter provides an overview of the architectural structure and components of the control law accelerator.
7.1 Introduction...............................................................................................................................................................830
7.2 CLA Interface............................................................................................................................................................ 832
7.3 CLA, DMA, and CPU Arbitration..............................................................................................................................838
7.4 CLA Configuration and Debug................................................................................................................................ 841
7.5 Pipeline......................................................................................................................................................................844
7.6 Software.................................................................................................................................................................... 850
7.7 Instruction Set...........................................................................................................................................................857
7.8 CLA Registers...........................................................................................................................................................988
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 829
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7.1 Introduction
The Control Law Accelerator extends the capabilities of the C28x CPU by adding parallel processing. Time-
critical control loops serviced by the CLA can achieve low ADC sample to output delay. Thus, the CLA enables
faster system response and higher frequency control loops. Utilizing the CLA for time-critical tasks frees up the
main CPU to perform other system and communication functions concurrently.
7.1.1 Features
The following is a list of major features of the CLA:
• C compilers are available for CLA software development.
• Clocked at the same rate as the main CPU (SYSCLKOUT).
• An independent architecture allowing CLA algorithm execution independent of the main C28x CPU.
– Complete bus architecture:
• Program Address Bus (PAB) and Program Data Bus (PDB)
• Data Read Address Bus (DRAB), Data Read Data Bus (DRDB), Data Write Address Bus (DWAB), and
Data Write Data Bus (DWDB)
– Independent eight stage pipeline.
– 16-bit program counter (MPC)
– Four 32-bit result registers (MR0-MR3)
– Two 16-bit auxiliary registers (MAR0, MAR1)
– Status register (MSTF)
• Instruction set includes:
– IEEE single-precision (32-bit) floating-point math operations
– Floating-point math with parallel load or store
– Floating-point multiply with parallel add or subtract
– 1/X and 1/sqrt(X) estimations
– Data type conversions.
– Conditional branch and call
– Data load/store operations
• The CLA program code can consist of up to eight tasks or interrupt service routines
– The start address of each task is specified by the MVECT registers.
– No limit on task size as long as the tasks fit within the configurable CLA program memory space.
– One task is serviced at a time until completion. There is no nesting of tasks.
– Upon task completion a task-specific interrupt is flagged within the PIE.
– When a task finishes the next highest-priority pending task is automatically started.
• Task trigger mechanisms:
– C28x CPU using the IACK instruction
– Task1 to Task8: trigger sources from peripherals connected to the shared bus on which the CLA assumes
secondary ownership.
• Memory and Shared Peripherals:
– Two dedicated message RAMs for communication between the CLA and the main CPU.
– The C28x CPU can map CLA program and data memory to the main CPU space or CLA space.
Foundational Materials
• C2000 Academy - CLA
• C2000 CLA C Compiler Series (Video)
• CLA Hands On Workshop (Video)
• CLA usage in Valley Switching Boost Power Factor Correction (PFC) Reference Design (Video)
• Enhancing the Computational Performance of the C2000™ Microcontroller Family Application Report
830 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Expert Materials
• Digital Control of Two Phase Interleaved PFC and Motor Drive Using MCU With CLA Application Report
• Sensorless Field Oriented Control:3-Phase Perm.Magnet Synch. Motors With CLA Application Report
7.1.3 Block Diagram
Figure 7-1 is a block diagram of the CLA.
CLA Control
Register Set
MIFR(16)
MPERINT1 MIOVF(16) CLA_INT1
From Shared to to
Peripherals MPERINT8 MICLR(16) CLA_INT8
MICLROVF(16) C28x
PIE INT11
MIFRC(16) CPU
MIER(16) INT12
MIRUN(16)
LVF
MCTLBGRND(16)
LUF
MSTSBGRND(16)
CLA1SOFTINTEN(16)
CLA1INTFRC(16)
SYSCLK
CLA Clock Enable MVECT1(16)
CPU Read/Write Data Bus
SYSRS MVECT2(16)
MVECT3(16)
MVECT4(16) CLA Program
MVECT5(16) CLA Program Bus Memory (LSx)
MVECT6(16)
MVECT7(16)
MVECT8(16) LSxMSEL[MSEL_LSx]
MVECTBGRND(16) LSxCLAPGM[CLAPGM_LSx]
MVECTBGRNDACTIVE(16)
MPSACTL(16)
MCTL(16)
CLA Data Bus
CLA Message
CLA Execution
RAMs
Register Set
MPC(16)
MSTF(32)
MR0(32)
MR1(32) Shared
MR2(32) MEALLOW Peripherals
MR3(32)
MAR0(16)
MAR1(16)
CPU Read Data Bus
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 831
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
832 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 833
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
0 CLA_SOFTWARE_TRIGGER
1 ADCAINT1
2 ADCAINT2
3 ADCAINT3
4 ADCAINT4
5 ADCA_EVT_INT
6 ADCBINT1
7 ADCBINT2
8 ADCBINT3
9 ADCBINT4
10 ADCB_EVT_INT
11 ADCCINT1
12 ADCCINT2
13 ADCCINT3
14 ADCCINT4
15 ADCC_EVT_INT
16 ADCDINT1
17 ADCDINT2
18 ADCDINT3
834 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
19 ADCDINT4
20 ADCD_EVT_INT
21-28 Reserved
29 XINT1
30 XINT2
31 XINT3
32 XINT4
33 XINT5
34-35 Reserved
36 EPWM1_INT
37 EPWM2_INT
38 EPWM3_INT
39 EPWM4_INT
40 EPWM5_INT
41 EPWM6_INT
42 EPWM7_INT
43 EPWM8_INT
44 EPWM9_INT
45 EPWM10_INT
46 EPWM11_INT
47 EPWM12_INT
48-51 Reserved
52 MCANA_FEVT0
53 MCANA_FEVT1
54 MCANA_FEVT2
55 MCANB_FEVT0
56 MCANB_FEVT1
57 MCANB_FEVT2
58-67 Reserved
68 CPU_TINT0
69 CPU_TINT1
70 CPU_TINT2
71-74 Reserved
75 ECAP1_INT
76 ECAP2_INT
77-82 Reserved
83 EQEP1_INT
84 EQEP2_INT
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 835
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
85 EQEP3_INT
86-98 Reserved
99 LINA_INT1
100 LINA_INT0
101-104 Reserved
105 PMBUSA_INT
106-108 Reserved
109 SPIA_TXINT
110 SPIA_RXINT
111 SPIB_TXINT
112 SPIB_RXINT
113-122 Reserved
123 FSITXA_INT1
124 FSITXA_INT2
125 FSIRXA_INT1
126 FSIRXA_INT2
127 CLB1_INT
128 CLB2_INT
129-136 Reserved
137 ADCEINT1
138 ADCEINT2
139 ADCEINT3
140 ADCEINT4
141 ADCE_EVT_INT
142-183 Reserved
184 DMA_CH1INT
185 DMA_CH2INT
186 DMA_CH3INT
187 DMA_CH4INT
188 DMA_CH5INT
189 DMA_CH6INT
836 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
• Software Trigger
CPU software can trigger tasks by writing to the MIFRC register or by the IACK instruction. Using the
IACK instruction is more efficient because the instruction does not require the need to issue an EALLOW
to set MIFR bits. Set the MCTL[IACKE] bit to enable the IACK feature. Each bit in the operand of the IACK
instruction corresponds to a task. For example, IACK #0x0001 sets bit 0 in the MIFR register to start task 1.
Likewise, IACK #0x0003 set bits 0 and 1 in the MIFR register to start task 1 and task 2.
• Background Task
The Type-2 CLA allows the use of Task 8 as a background task that runs continuously until Task 8 disables
the task or resets the device (or the CLA using a soft reset). The background task vector is given by the
MVECTBGRND register and the operation is controlled by the MCTLBGRND register; the task is enabled
by setting the BGEN bit to 1. Then start the task through software by writing a 1 to the BGSTART bit
(TRIGEN must be 0), or through a peripheral by setting the TRIGEN bit to 1 and then setting the trigger
source in the bit-field, DmaClaSrcSelRegs.CLA1TASKSRCSEL2.bit.TASK8. By default, the background task
is interruptible; the highest priority pending task is executed first. When a task completes and there are not
any pending tasks, the execution returns to the background task. The CLA keeps track of the branching point
by saving the return address to the MVECTBGRNDACTIVE register, and then popping this address to the
MPC when execution returns. Choose to make sections of the background task uninterruptible by possibly
doing this with the MSETC BGINTM assembly instruction.
Subsequently, enabling interrupts with the MCLRC BGINTM instruction.
The background interrupt mask bit, BGINTM, can be queried in the MSTSBGRND register. This register also
provides the current status of the background task. If the task is currently executing, the RUN bit is set to 1, if
another trigger for the background task is received while the task has already started, the overflow (BGOVF)
bit is set.
The CLA has a fetch mechanism and can run and execute a task independently of the CPU. Only one task is
serviced at a time; there is no nesting of tasks unless the background task in enabled, then one level of nesting
is possible. The task currently running is indicated in the MIRUN register; if the background task is enabled and
running, the task is reflected in the MSTSBGRND register (the RUN bit).
Interrupts that have been received but not yet serviced are indicated in the flag register (MIFR). If an interrupt
request from a peripheral is received and that same task is already flagged, then the overflow flag bit is set.
Overflow flags remain set until the flags are cleared by the CPU. If the CLA is idle (no task is currently running)
or is executing the background task, then the highest priority interrupt request that is both flagged (MIFR) and
enabled (MIER) starts.
The flow is as follows:
1. The associated RUN register bit is set (MIRUN) and the flag bit (MIFR) is cleared.
2. The CLA begins execution at the location indicated by the associated interrupt vector (MVECTx). MVECT
contains the absolute 16-bit address of the task in the lower 64K memory space. If a task is interrupting
the background task then the current program address is stored in the MVECTBGRNDACTIVE register
before execution jumps to the task; this saved address is restored to the MPC when the task completes and
execution returns to the background task.
3. The CLA executes instructions until the MSTOP instruction is found. This indicates the end of the task.
4. The MIRUN bit is cleared.
5. The task-specific interrupt to the PIE is issued. This informs the main CPU that the task has completed.
6. The CLA returns to idle (or to the background task, if enabled). Once a task completes the next highest-
priority pending task is automatically serviced and this sequence repeats.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 837
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
838 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
• MMEMCFG[PROGE] == 1
In this case, the memory block is mapped to CLA space. The CPU can only make debug accesses.
– CLA reads and writes cannot occur
– CLA fetches are allowed
– CPU fetches return 0 that is an illegal opcode and causes an ITRAP interrupt.
– CPU data reads and program reads return 0
– CPU data writes and program writes are ignored
Note
Because the CLA fetch has higher priority than CPU debug reads, there is a possibility for the CLA
to permanently block debug accesses if the CLA is executing in a loop. This can occur when initially
developing CLA code due to a bug. To avoid this issue, the program memory returns all 0x0000 for
CPU debug reads (ignore writes) when the CLA is running. When the CLA is halted or idle, then
normal CPU debug read and write access can be performed.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 839
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
• MMEMCFG[RAMxE] == 1
In this case the memory block is mapped to CLA space. The CPU can make only debug accesses.
– CLA fetches cannot occur to this block.
– CLA read and CLA writes are allowed.
– CPU fetches return 0
– CPU data reads and program reads return 0.
– CPU data writes and program writes are ignored.
840 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 841
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
842 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Note
A CLA fetch has higher priority than CPU debug reads. For this reason, the CLA to permanently
block CPU debug accesses if the CLA is executing in a loop is possible. This can occur when initially
developing CLA code due to a bug that causes an infinite loop. To avoid locking up the main CPU,
the program memory returns all 0x0000 for CPU debug reads when the CLA is running. When the
CLA is halted or idle, then normal CPU debug read and write access to CLA program memory can be
performed.
If the CLA gets caught in an infinite loop, use a soft or hard reset to exit the condition. A debugger
reset also exits the condition.
There are special cases that can occur when single-stepping a task such that the program counter, MPC,
reaches the MSTOP instruction at the end of the task.
• MPC halts at or after the MSTOP with a task already pending
If single-stepping or halted in "task A" and "task B" comes in before the MPC reaches the MSTOP, then
"task B" starts if continuing to step through the MSTOP instruction. Basically, if "task B" is pending before
the MPC reaches MSTOP in "task A" then there is no issue in "task B" starting and no special action is
required.
• MPC halts at or after the MSTOP with no task pending
In this case, if single-stepped or halted in "task A" and the MPC has reached the MSTOP with no tasks
pending. If "task B" comes in at this point, "task B" is flagged in the MIFR register but "task B" can or
cannot start if continuing to single-step through the MSTOP instruction of "task A."
Depending on exactly when the new task comes in, to reliably start "task B", perform a soft reset and
reconfigure the MIER bits. Once this is done, start single-stepping "task B."
This case can be handled slightly differently if there is control over when "task B" comes in (for example,
using the IACK instruction to start the task). In this case, the task is single-stepped or halted in "task A"
and the MPC has reached the MSTOP with no tasks pending. Before forcing "task B," run free to force
the CLA out of the debug state. Once this is done, force "task B" and continue debugging.
5. Disable CLA breakpoints, if desired
In the Code Composer Studio™ IDE, disable the CLA breakpoints by disconnecting the CLA core in the
debug perspective. Make sure to first issue a run or reset; otherwise, the CLA is halted and no other tasks
start.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 843
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7.5 Pipeline
This section describes the CLA pipeline stages and presents cases where pipeline alignment must be
considered.
7.5.1 Pipeline Overview
The CLA pipeline is very similar to the C28x pipeline with eight stages:
1. Fetch 1 (F1): During the F1 stage the program read address is placed on the CLA program address bus.
2. Fetch 2 (F2): During the F2 stage the instruction is read using the CLA program data bus.
3. Decode 1 (D1): During D1 the instruction is decoded.
4. Decode 2 (D2): Generate the data read address. Changes to MAR0 and MAR1 due to post-increment using
indirect addressing takes place in the D2 phase. Conditional branch decisions are also made at this stage
based on the MSTF register flags.
5. Read 1 (R1): Place the data read address on the CLA data-read address bus. If a memory conflict exists,
the R1 stage is stalled.
6. Read 2 (R2): Read the data value using the CLA data read data bus.
7. Execute (EXE): Execute the operation. Changes to MAR0 and MAR1 due to loading an immediate value or
value from memory take place in this stage.
8. Write (W): Place the write address and write data on the CLA write data bus. If a memory conflict exists, the
W stage is stalled.
844 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 845
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
846 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 847
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
The ADCINTCYCLE register of the ADC can be programmed by the application to adjust the generation of the
interrupt pulse to align with the ADC read operation. For example, if the first instruction in the task reads the
ADC and the conversion time is N SYSCLK cycles, then the delay programmed is (N-2) - 4 = N-6.
848 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Note
If background task has been configured in the system, then the compiler during code compilation
adds context save instructions at the start of each regular task and restore instructions at end of each
task so that register content can be saved and restored in case a background task is executing while
the regular task is triggered. When a regular task is entered, this compiler-generated context save
instruction is the first instruction of the task.
Note
If the MBCNDD/MCCNDD/MRCNDD instructions in the background task are in the D2 phase of the
pipeline when a new task gets triggered, the task takes a minimum of 3 more cycles to complete these
uninterruptible instructions adding to the delay.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 849
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7.6 Software
7.6.1 CLA Registers to Driverlib Functions
Table 7-5. CLA Registers to Driverlib Functions
File Driverlib Function
MVECT1
cla.h CLA_mapTaskVector
MVECT2
- See MVECT1
MVECT3
- See MVECT1
MVECT4
- See MVECT1
MVECT5
- See MVECT1
MVECT6
- See MVECT1
MVECT7
- See MVECT1
MVECT8
- See MVECT1
MCTL
cla.h CLA_performHardReset
cla.h CLA_performSoftReset
cla.h CLA_enableIACK
cla.h CLA_disableIACK
cla.h CLA_enableBackgroundTask
cla.h CLA_disableBackgroundTask
cla.h CLA_startBackgroundTask
cla.h CLA_enableHardwareTrigger
cla.h CLA_disableHardwareTrigger
MVECTBGRNDACTIVE
cla.h CLA_getBackgroundActiveVector
SOFTINTEN
cla.h CLA_enableSoftwareInterrupt
cla.h CLA_disableSoftwareInterrupt
MSTSBGRND
cla.h CLA_getBackgroundTaskStatus
MCTLBGRND
cla.h CLA_enableBackgroundTask
cla.h CLA_disableBackgroundTask
cla.h CLA_startBackgroundTask
cla.h CLA_enableHardwareTrigger
cla.h CLA_disableHardwareTrigger
MVECTBGRND
cla.h CLA_getBackgroundActiveVector
cla.h CLA_mapBackgroundTaskVector
850 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 851
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
852 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 853
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
use-cases, the control logic could be modified to much more complex depending upon the application. The other
CLA task (CLA task 8) is triggered by software at beginning to initialize the CLA global variables
External Connections
• Observe GPIO0 (EPWM1A) on oscilloscope
• Observe GPIO1 (EPWM1B) on oscilloscope
Watch Variables
• duty
7.6.2.6 Just-in-time ADC sampling with CLA
FILE: cla_ex5_adc_just_in_time.c
This example showcases how to utilize early-interrupt feature of ADC in combination with the low interrupt
response of CLA to enable faster system response and achieve high frequency control loops. EPWM1 is
configured to generate a PWM output signal of frequency 1 MHz and this is also used to trigger the ADC
sampling at each cycle. ADCA is configured to sample the input on Channel 0 and to generate the early interrupt
at the end of S/H + offset cycles. This interrupt is used to trigger the CLA control task. The CLA task implements
the control logic to update the duty of the PWM output based on reading the ADC sample data just-in-time i.e.
as soon as the ADC results gets latched.The early interrupt feature and low interrupt latency of CLA allows
to do some pre-processing as well before reading the ADC data and still completes updating the PWM output
before the next interrupts comes in i.e. data read and PWM update is done within a 1 MHz cycle. For illustration
purposes, 3-point moving average filter is used to simulate some processing and few steps of the filtering code
are done before reading the ADC result which we consider as pre-processing code. The ADC interrupt offset is
programmed based on the cycles consumed by the pre-processing code.
The calculation for interrupt offset value is as follows :- -ADC acquisition cycles programmed = 10 SYSCLKS
-Conversion time for 12-bit data = 10.5 ADCCLKS = N = 42 SYSCLKS -CLA task trigger to first instruction in
Fetch delay = 4 -Let the interrupt offset value be 'x' -The code inside CLA control task before ADC read takes
below cycles : Setting up profiling gpio : 3 cycles Pre-processing : 13 cycles Total = 3 + 13 = 16 cycles
As described in device TRM, in order to read just-in-time the total delay before reading ADC should be (N-2)
cycles = 40 i.e. : x + 4 + 16 = 40 : x = 20
NOTE :- The optimization is off for this project and the cycles quoted above corresponds to that case.
GPIO2 is used for profiling purposes. GPIO2 is set at the beginning of CLA task 1 and is reset at the end of the
task. Thus ON time of GPIO2 indicates the CLA activity. In order to validate the example functionality , observe
the GPIO0 (PWM output) and GPIO2 (profiling GPIO) on CRO. The cycles difference between the rising edge of
the GPIO0 and GPIO2 indicate the total delay from the time of ADC trigger to setting up of profiling GPIO inside
CLA task which should be around 44 cycles (293 ns) based on the above calculation.
External Connections
• Provide constant DC input on ADCA0 for quick validation. GND -> Should observe PWM output duty = 0.1
3.3V -> Should observe PWM output duty = 0.9 Can also provide analog input in range 0 - 3.3V upto fs / 10 =
100 KHz for observing continuous duty variations
• Observe GPIO0 on oscilloscope
• Observe GPIO2 on oscilloscope
Watch Variables
• None
7.6.2.7 Optimal offloading of control algorithms to CLA
FILE: cla_ex6_cpu_offloading.c
This example showcases how to optimally offload the control algorithms from CPU to CLA in order to meet the
system requirements. In this example, two control loops are simulated, the faster one (loop1) running at 200 KHz
and the slower one (loop2) running at 20 KHz. Loop1 senses the first parameter at ADCA Channel 0, runs the
854 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
PI controller to achieve the target and contributes to the duty of EPWM1A output with 80% weightage. Loop2
senses the second parameter at ADCB Channel 2, runs the PI controller and contributes to the duty of EPWM1A
output with 20% weightage. It is important to note that since these are just software simulated control loops but
there is no actual physical process involved and hence updating the duty is not going to have any affect on
sampled inputs. ADCA is configured to oversample the first parameter using SOCs 0-3 to suppress the noise
and similarly ADCB is used to oversample the second parameter. EPWM4 and EPWM5 are configured to trigger
the ADCA and ADCB sampling at loop1 and loop2 frequencies respectively. Once the conversion of all 4 SOCs
complete, a CPU ISR or a CLA task is triggered based on the user-configuration. There is also a background
task running in the main loop which disables the entire system including PWM output and the control loops
when "system_OFF" is set to 1. The system gets enabled again once "system_OFF" is restored back to 0. By
default system_OFF is set to 0 but it's value can be updated dynamically by adding it to expression window and
writing to it. DCL library is included in the project to make use of optimal PI controllers used in both the loops.
User-configurable pre-defined symbol "run_loop1_cla" has been added to the project options in order to specify
whether to run the loop1 on C28x or CLA. GPIO2 and GPIO3 are used to profile the execution of loop1 and
loop2.
For run_loop1_cla == 0 i.e. both loops running on CPU -> Loop1 Utilization = ~77.5% (measured using profiling
GPIO2) -> Loop2 Utilization = ~6% (measured using profiling GPIO3) -> Background task in a while loop ->
Total CPU utilization is greater than Utilization bound (UB) Hence the system is non-schedulable, lower priority
task (Loop2) execution never completes (no toggling observed on GPIO3) and also background task never gets
chance to execute
For run_loop1_cla == 1 i.e. high frequency control loop (loop1) is offloaded to CLA while loop2 runs on CPU ->
Loop1 Utilization (CLA) = ~73% -> Loop2 Utilization (CPU)= ~6% -> Total CPU utilization has come down to just
~6% Hence the system is perfectly schedulable, no miss happens for any of the loops and offloading of loop1 to
CLA saves CPU bandwidth to execute background tasks as well
For quick inspection of the example functionality, constant DC HIGH/LOW inputs can be provided to the analog
channels instead of varying analog voltages. The target value for both the loops are set as some intermediate
value i.e. 3500 corresponds to ~2.8V. Now since the sensed inputs are constant and not same as target so the
controller outputs will get saturated soon to either 1 or 0. Thus the "duty" variable can take only fixed values
based on the equations used in the loops. Infact the duty output would be very intutive, for instance if both inputs
are LOW(GND), the controller will try to produce the maximum duty as the target is higher than sensed value
hence the duty should be 1.0(0.2 + 0.8) but will get saturated to 0.9(the maximum value defined). Similarly if
both inputs are made HIGH, the duty will be 0.1 (the minimum saturation value defined). The final duty table is
shown below :
External Connections
• Observe GPIO2 (Loop1 Profiling) on oscilloscope
• Observe GPIO3 (Loop2 Profiling) on oscilloscope
• Observe GPIO0 (EPWM1A Output) on oscilloscope
• Provide constant HIGH(3.3V)/LOW(0V) on both ADCA Ch0 and ADCB Ch2 for quick validation, the following
duty value should be observable at EPWM1A for various combinations if the system is perfectly schedulable
i.e. both loops gets chance to execute properly :- A0 B2 duty GND GND 0.9 3.3V GND 0.2 GND 3.3V 0.8
3.3V 3.3V 0.1
Note :- The optimization is OFF for this project and all the profiling data quoted above corresponds to this case.
7.6.2.8 Handling shared resources across C28x and CLA
FILE: cla_ex7_shared_resource_handling.c
This example showcases how to handle shared resource challenges across C28x and CLA. As the peripherals
are shared between CLA and the CPU, overlapping read-modify-write to the registers by them can lead to data
race conditions ultimately leading to data violation or incorrect functionality. In this example, CPU ISR and CLA
tasks runs independently. CPU ISR gets triggered by EPWM4 @10KHz and toggles the EPWM1B output via
software by controlling CSFB bits of AQCSFRC. CLA task gets triggered by EPWM5 @100Khz and toggles the
EPWM1A output via software by controlling CSFA bits of AQCSFRC. Thus in this process both CPU and CLA
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 855
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
do read-modify -write to AQCSFRC register independently at different frequencies so there is chance of race
condition and updates due to one of them can get lost/. overwritten. This can be clearly observed by updating
"phase_shift_ON" to 0U and probing the EPWM1A and 1B outputs on a scope.
This is a standard critical section problem and can be handled by software handshaking mechanism like
mutex etc. But most of the real-time control applications are time-sensitive and cannot afford addition software
overhead hence this example suggests an alternative hardware based technique to avoid shared resource
conflicts between CPU and CLA. The phase shifting mechanism of the EPWM modules is utilized to schedule
the CLA task and CPU ISR as desired. EPWM4 generates a synchronous pulse every ZERO event and provides
a phase shift of 20 cycles to EPWM5. This way both CLA task and C28x ISR runs at original frequencies
i.e. 100KHz and 10KHz but CLA task leads with a phase offset of 20 cycles wrt CPU ISR. Hence concurrent
read-modify-writes to AQCSFRC never happens and the EPWM1A and EPWM1B outputs behave as desired
i.e. consistent 50 KHz PWM output on EPWM1A and 5 KHz PWM output on EPWM1B with a duty ~50% on
both should be generated. In order to utilize this phase shifting mechanism in this example, please make sure
"phase_shift_ON" is set to 1.
External Connections
• Observe GPIO0 (EPWM1A Output) on oscilloscope
• Observe GPIO1 (EPWM1B Output) on oscilloscope
• Observe GPIO2 (CLA Task Profiling) on oscilloscope
• Observe GPIO3 (CPU ISR Profiling) on oscilloscope
Note :- The phase offset value can easily be configured by updating TBPHS register to schedule the CLA task
and C28x ISR as desired depending upon the application need so as to avoid overlapping register writes by
CPU and CLA
Note :- The optimization is on and set to O2 for the project and all the results quoted correspond to this case.
856 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 857
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Each instruction has a table that gives a list of the operands and a short description. Instructions always have
the destination operands first followed by the source operands.
Table 7-7. INSTRUCTION dest, source1, source2 Short Description
Description
dest1 Description for the 1st operand for the instruction
source1 Description for the 2nd operand for the instruction
source2 Description for the 3rd operand for the instruction
Opcode This section shows the opcode for the instruction
Description Detailed description of the instruction execution is described. Any constraints on the operands imposed by the
processor or the assembler are discussed.
Restrictions Any constraints on the operands or use of the instruction imposed by the processor are discussed.
Pipeline This section describes the instruction in terms of pipeline cycles as described in Section 7.5
Example Examples of instruction execution. If applicable, register and memory values are given before and after instruction
execution. Some examples are code fragments while other examples are full tasks that assume the CLA is correctly
configured and the main CPU has passed the CLA data.
Operands Each instruction has a table that gives a list of the operands and a short description. Instructions always have the
destination operands first followed by the source operands.
858 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Encoding for the shift fields in the MASR32, MLSR32 and MLSL32 instructions is shown in Table 7-9.
Table 7-9. Shift Field Encoding
Shift Value 'shift' Opcode
Field Encode
1 0000
2 0001
3 0010
.... ....
32 1111
For instructions that use MRx (where x can be 'a' through 'f') as operands, the trailing alphabet appears in the
opcode as a two-bit field. For example:
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 859
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
The two-bit field specifies one of four working registers according to Table 7-10.
Table 7-10. Operand Encoding
Two-Bit Field Working Register
00 MR0
01 MR1
10 MR2
11 MR3
Table 7-11 shows the condition field encoding for conditional instructions such as MNEGF, MSWAPF, MBCNDD,
MCCNDD, and MRCNDD.
Table 7-11. Condition Field Encoding
Encode(1) CNDF Description MSTF Flags Tested
0000 NEQ Not equal to zero ZF == 0
0001 EQ Equal to zero ZF == 1
0010 GT Greater than zero ZF == 0 AND NF == 0
0011 GEQ Greater than or equal to zero NF == 0
0100 LT Less than zero NF == 1
0101 LEQ Less than or equal to zero ZF == 1 OR NF == 1
1010 TF Test flag set TF == 1
1011 NTF Test flag not set TF == 0
1100 LU Latched underflow LUF == 1
1101 LV Latched overflow LVF == 1
1110 UNC Unconditional None
1111 UNCF(2) Unconditional with flag modification None
860 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7.7.3 Instructions
The instructions are listed alphabetically.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 861
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
MMOVI16 MARx, #16I — Load the Auxiliary Register with the 16-Bit Immediate Value.................................... 944
MMOVI32 MRa, #32FHex — Load the 32-Bits of a 32-Bit Floating-Point Register with the Immediate............. 946
MMOVIZ MRa, #16FHi — Load the Upper 16-Bits of a 32-Bit Floating-Point Register ......................................948
MMOVZ16 MRa, mem16 — Load MRx with 16-Bit Value...................................................................................949
MMOVXI MRa, #16FLoHex — Move Immediate Value to the Lower 16-Bits of a Floating-Point Register.........950
MMPYF32 MRa, MRb, MRc — 32-Bit Floating-Point Multiply.............................................................................951
MMPYF32 MRa, #16FHi, MRb — 32-Bit Floating-Point Multiply ....................................................................... 952
MMPYF32 MRa, MRb, #16FHi — 32-Bit Floating-Point Multiply ....................................................................... 954
MMPYF32 MRa, MRb, MRc||MADDF32 MRd, MRe, MRf — 32-Bit Floating-Point Multiply with Parallel Add...956
MMPYF32 MRd, MRe, MRf ||MMOV32 MRa, mem32 — 32-Bit Floating-Point Multiply with Parallel Move...... 958
MMPYF32 MRd, MRe, MRf ||MMOV32 mem32, MRa — 32-Bit Floating-Point Multiply with Parallel Move...... 960
MMPYF32 MRa, MRb, MRc ||MSUBF32 MRd, MRe, MRf — 32-Bit Floating-Point Multiply with Parallel Subtract
.............................................................................................................................................................................961
MNEGF32 MRa, MRb{, CNDF} — Conditional Negation....................................................................................963
MNOP — No Operation....................................................................................................................................... 965
MOR32 MRa, MRb, MRc — Bitwise OR............................................................................................................. 966
MRCNDD {CNDF} — Return Conditional Delayed..............................................................................................967
MSETFLG FLAG, VALUE — Set or Clear Selected Floating-Point Status Flags............................................... 970
MSTOP — Stop Task...........................................................................................................................................971
MSUB32 MRa, MRb, MRc — 32-Bit Integer Subtraction.................................................................................... 973
MSUBF32 MRa, MRb, MRc — 32-Bit Floating-Point Subtraction.......................................................................974
MSUBF32 MRa, #16FHi, MRb — 32-Bit Floating-Point Subtraction...................................................................975
MSUBF32 MRd, MRe, MRf ||MMOV32 MRa, mem32 — 32-Bit Floating-Point Subtraction with Parallel Move....
977
MSUBF32 MRd, MRe, MRf ||MMOV32 mem32, MRa — 32-Bit Floating-Point Subtraction with Parallel Move....
978
MSWAPF MRa, MRb {, CNDF} — Conditional Swap......................................................................................... 979
MTESTTF CNDF — Test MSTF Register Flag Condition....................................................................................981
MUI16TOF32 MRa, mem16 — Convert Unsigned 16-Bit Integer to 32-Bit Floating-Point Value........................983
MUI16TOF32 MRa, MRb — Convert Unsigned 16-Bit Integer to 32-Bit Floating-Point Value............................ 984
MUI32TOF32 MRa, mem32 — Convert Unsigned 32-Bit Integer to 32-Bit Floating-Point Value........................985
MUI32TOF32 MRa, MRb — Convert Unsigned 32-Bit Integer to 32-Bit Floating-Point Value............................ 986
MXOR32 MRa, MRb, MRc — Bitwise Exclusive Or............................................................................................ 987
862 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 0010 0000
Description
The absolute value of MRb is loaded into MRa. Only the sign bit of the operand is
modified by the MABSF32 instruction.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
NF = 0;
ZF = 0;
if ( MRa(30:23) == 0) ZF = 1;
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #-2.0 ; MR0 = -2.0 (0xC0000000)
MABSF32 MR0, MR0 ; MR0 = 2.0 (0x40000000), ZF = NF = 0
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MABSF32 MR0, MR0 ; MR0 = 5.0 (0x40A00000), ZF = NF = 0
MMOVIZ MR0, #0.0 ; MR0 = 0.0
MABSF32 MR0, MR0 ; MR0 = 0.0 ZF = 1, NF = 0
See also
MNEGF32 MRa, MRb {, CNDF}
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 863
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 000cc bbaa
MSW: 0111 1110 1100 0000
Description
32-bit integer addition of MRb and MRc.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1; };
Pipeline
This is a single-cycle instruction.
Example
; Given A = (int32)1
; B = (int32)2
; C = (int32)-7
;
; Calculate Y2 = A + B + C
;
_Cla1Task1:
MMOV32 MR0, @_A ; MR0 = 1 (0x00000001)
MMOV32 MR1, @_B ; MR1 = 2 (0x00000002)
MMOV32 MR2, @_C ; MR2 = -7 (0xFFFFFFF9)
MADD32 MR3, MR0, MR1 ; A + B
MADD32 MR3, MR2, MR3 ; A + B + C = -4 (0xFFFFFFFC)
MMOV32 @_y2, MR3 ; Store y2
MSTOP ; end of task
See also
MAND32 MRa, MRb, MRc
MASR32 MRa, #SHIFT
MLSL32 MRa, #SHIFT
MLSR32 MRa, #SHIFT
MOR32 MRa, MRb, MRc
MXOR32 MRa, MRb, MRc
MSUB32 MRa, MRb, MRc
864 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 0111 1100 bbaa
Description
Add MRb to the floating-point value represented by the immediate operand. Store the
result of the addition in MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0. #16FHi is
most useful for representing constants where the lowest 16-bits of the mantissa are 0.
Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and -1.5
(0xBFC00000). The assembler accepts either a hex or float as the immediate value. That
is, the value -1.5 can be represented as #-1.5 or #0xBFC0.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
Example
; Add to MR1 the value 2.0 in 32-bit floating-point format
; Store the result in MR0
MADDF32 MR0, #2.0, MR1 ; MR0 = 2.0 + MR1
; Add to MR3 the value -2.5 in 32-bit floating-point format
; Store the result in MR2
MADDF32 MR2, #-2.5, MR3 ; MR2 = -2.5 + MR3
; Add to MR3 the value 0x3FC00000 (1.5)
; Store the result in MR3
MADDF32 MR3, #0x3FC0, MR3 ; MR3 = 1.5 + MR3
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 865
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
See also
MADDF32 MRa, MRb, #16FHi
MADDF32 MRa, MRb, MRc
MADDF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MADDF32 MRd, MRe, MRf || MMOV32 mem32, MRa
MMPYF32 MRa, MRb, MRc || MADDF32 MRd, MRe, MRf
866 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 0111 1100 bbaa
Description
Add MRb to the floating-point value represented by the immediate operand. Store the
result of the addition in MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0. #16FHi is
most useful for representing constants where the lowest 16-bits of the mantissa are 0.
Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and -1.5
(0xBFC00000). The assembler accepts either a hex or float as the immediate value. That
is, the value -1.5 can be represented as #-1.5 or #0xBFC0.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 867
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example 1
; X is an array of 32-bit floating-point values
; Find the maximum value in an array X
; and store the value in Result
;
_Cla1Task1:
MMOVI16 MAR1,#_X ; Start address
MUI16TOF32 MR0, @_len ; Length of the array
MNOP ; delay for MAR1 load
MNOP ; delay for MAR1 load
MMOV32 MR1, *MAR1[2]++ ; MR1 = X0
LOOP
MMOV32 MR2, *MAR1[2]++ ; MR2 = next element
MMAXF32 MR1, MR2 ; MR1 = MAX(MR1, MR2)
MADDF32 MR0, MR0, #-1.0 ; Decrement the counter
MCMPF32 MR0 #0.0 ; Set/clear flags for MBCNDD
MNOP
MNOP
MNOP
MBCNDD LOOP, NEQ ; Branch if not equal to zero
MMOV32 @_Result, MR1 ; Always executed
MNOP ; Always executed
MNOP ; Always executed
MSTOP ; End of task
Example 2
; Show the basic operation of MADDF32
;
; Add to MR1 the value 2.0 in 32-bit floating-point format
; Store the result in MR0
MADDF32 MR0, MR1, #2.0 ; MR0 = MR1 + 2.0
; Add to MR3 the value -2.5 in 32-bit floating-point format
; Store the result in MR2
MADDF32 MR2, MR3, #-2.5 ; MR2 = MR3 + (-2.5)
; Add to MR0 the value 0x3FC00000 (1.5)
; Store the result in MR0
MADDF32 MR0, MR0, #0x3FC0 ; MR0 = MR0 + 1.5
See also
MADDF32 MRa, #16FHi, MRb
MADDF32 MRa, MRb, MRc
MADDF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MADDF32 MRd, MRe, MRf || MMOV32 mem32, MRa
MMPYF32 MRa, MRb, MRc || MADDF32 MRd, MRe, MRf
868 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 000 0000 00cc bbaa
MSW: 0111 1100 0010 0000
Description
Add the contents of MRc to the contents of MRb and load the result into MRa.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
Example
; Given M1, X1, and B1 are 32-bit floating-point numbers
; Calculate Y1 = M1*X1+B1
;
_Cla1Task1:
MMOV32 MR0,@M1 ; Load MR0 with M1
MMOV32 MR1,@X1 ; Load MR1 with X1
MMPYF32 MR1,MR1,MR0 ; Multiply M1*X1
|| MMOV32 MR0,@B1 ; and in parallel load MR0 with B1
MADDF32 MR1,MR1,MR0 ; Add M*X1 to B1 and store in MR1
MMOV32 @Y1,MR1 ; Store the result
MSTOP ; end of task
See also
MADDF32 MRa, #16FHi, MRb
MADDF32 MRa, MRb, #16FHi
MADDF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MADDF32 MRd, MRe, MRf || MMOV32 mem32, MRa
MMPYF32 MRa, MRb, MRc || MADDF32 MRd, MRe, MRf
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 869
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands MRd CLA floating-point destination register for the MADDF32 (MR0 to
MR3)
MRe CLA floating-point source register for the MADDF32 (MR0 to MR3)
MRf CLA floating-point source register for the MADDF32 (MR0 to MR3)
mem32 32-bit memory location accessed using one of the available
addressing modes. This is the destination of the MMOV32.
MRa CLA floating-point source register for the MMOV32 (MR0 to MR3)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0101 ffee ddaa addr
Description
Perform an MADDF32 and a MMOV32 in parallel. Add MRf to the contents of MRe
and store the result in MRd. In parallel move the contents of MRa to the 32-bit location
mem32.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
Both MADDF32 and MMOV32 complete in a single cycle.
Example
; Given A, B, and C are 32-bit floating-point numbers
; Calculate Y2 = (A * B)
; Y3 = (A * B) + C
;
_Cla1Task2:
MMOV32 MR0, @_A ; Load MR0 with A
MMOV32 MR1, @_B ; Load MR1 with B
MMPYF32 MR1, MR1, MR0 ; Multiply A*B
|| MMOV32 MR0, @_C ; and in parallel load MR0 with C
MADDF32 MR1, MR1, MR0 ; Add (A*B) to C
|| MMOV32 @_Y2, MR1 ; and in parallel store A*B
MMOV32 @_Y3, MR1 ; Store the A*B + C
MSTOP ; end of task
See also
MADDF32 MRa, #16FHi, MRb
MADDF32 MRa, MRb, #16FHi
MADDF32 MRa, MRb, MRc
MMPYF32 MRa, MRb, MRc || MADDF32 MRd, MRe, MRf
MADDF32 MRd, MRe, MRf || MMOV32 MRa, mem32
870 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Operands MRd CLA floating-point destination register for the MADDF32 (MR0 to
MR3).
MRd cannot be the same register as MRa.
MRe CLA floating-point source register for the MADDF32 (MR0 to MR3)
MRf CLA floating-point source register for the MADDF32 (MR0 to MR3)
MRa CLA floating-point destination register for the MMOV32 (MR0 to
MR3).
MRa cannot be the same register as MRd.
mem32 32-bit memory location accessed using one of the available
addressing modes. This is the source for the MMOV32.
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0001 ffee ddaa addr
Description
Perform an MADDF32 and a MMOV32 operation in parallel. Add MRf to the contents
of MRe and store the result in MRd. In parallel move the contents of the 32-bit location
mem32 to MRa.
Restrictions
The destination register for the MADDF32 and the MMOV32 must be unique. That is,
MRa and MRd cannot be the same register.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes Yes Yes
NF = MRa(31);
ZF = 0;
if(MRa(30:23) == 0) { ZF = 1; NF = 0; };
Pipeline
The MADDF32 and the MMOV32 both complete in a single cycle.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 871
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example 1
; Given A, B, and C are 32-bit floating-point numbers
; Calculate Y1 = A + 4B
; Y2 = A + C
;
_Cla1Task1:
MMOV32 MR0, @A ; Load MR0 with A
MMOV32 MR1, @B ; Load MR1 with B
MMPYF32 MR1, MR1, #4.0 ; Multiply 4 * B
|| MMOV32 MR2, @C and in parallel load C
MADDF32 MR3, MR0, MR1 ; Add A + 4B
MADDF32 MR3, MR0, MR2 ; Add A + C
|| MMOV32 @Y1, MR3 ; and in parallel store A+4B
MMOV32 @Y2, MR3 ; store A + C MSTOP
; end of task
Example 2
; Given A, B, and C are 32-bit floating-point numbers
; Calculate Y3 = (A + B)
; Y4 = (A + B) * C
;
_Cla1Task2:
MMOV32 MR0, @A ; Load MR0 with A
MMOV32 MR1, @B ; Load MR1 with B
MADDF32 MR1, MR1, MR0 ; Add A+B
|| MMOV32 MR0, @C ; and in parallel load MR0 with C
MMPYF32 MR1, MR1, MR0 ; Multiply (A+B) by C
|| MMOV32 @Y3, MR1 ; and in parallel store A+B
MMOV32 @Y4, MR1 ; Store the (A+B) * C
MSTOP ; end of task
See also
MADDF32 MRa, #16FHi, MRb
MADDF32 MRa, MRb, #16FHi
MADDF32 MRa, MRb, MRc
MADDF32 MRd, MRe, MRf || MMOV32 mem32, MRa
MMPYF32 MRa, MRb, MRc || MADDF32 MRd, MRe, MRf
872 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Bitwise AND
Opcode
LSW: 0000 0000 00cc bbaa
MSW: 0111 1100 0110 0000
Description
Bitwise AND of MRb with MRc.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1; }
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #0x5555 ; MR0 = 0x5555AAAA
MMOVXI MR0, #0xAAAA
MMOVIZ MR1, #0x5432 ; MR1 = 0x5432FEDC
MMOVXI MR1, #0xFEDC
; 0101 AND 0101 = 0101 (5)
; 0101 AND 0100 = 0100 (4)
; 0101 AND 0011 = 0001 (1)
; 0101 AND 0010 = 0000 (0)
; 1010 AND 1111 = 1010 (A)
; 1010 AND 1110 = 1010 (A)
; 1010 AND 1101 = 1000 (8)
; 1010 AND 1100 = 1000 (8)
MAND32 MR2, MR1, MR0 ; MR3 = 0x5410AA88
See also
MADD32 MRa, MRb, MRc
MASR32 MRa, #SHIFT
MLSL32 MRa, #SHIFT
MLSR32 MRa, #SHIFT
MOR32 MRa, MRb, MRc
MXOR32 MRa, MRb, MRc
MSUB32 MRa, MRb, MRc
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 873
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 0shi ftaa
MSW: 0111 1011 0100 0000
Description
Arithmetic shift right of MRa by the number of bits indicated. The number of bits can be 1
to 32.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1; }
Pipeline
This is a single-cycle instruction.
Example
; Given m2 = (int32)32
; x2 = (int32)64
; b2 = (int32)-128
;
; Calculate
; m2 = m2/2
; x2 = x2/4
; b2 = b2/8
;
_Cla1Task2:
MMOV32 MR0, @_m2 ; MR0 = 32 (0x00000020)
MMOV32 MR1, @_x2 ; MR1 = 64 (0x00000040)
MMOV32 MR2, @_b2 ; MR2 = -128 (0xFFFFFF80)
MASR32 MR0, #1 ; MR0 = 16 (0x00000010)
MASR32 MR1, #2 ; MR1 = 16 (0x00000010)
MASR32 MR2, #3 ; MR2 = -16 (0xFFFFFFF0)
MMOV32 @_m2, MR0 ; store results
MMOV32 @_x2, MR1
MMOV32 @_b2, MR2
MSTOP ; end of task
874 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
See also
MADD32 MRa, MRb, MRc
MAND32 MRa, MRb, MRc
MLSL32 MRa, #SHIFT
MLSR32 MRa, #SHIFT
MOR32 MRa, MRb, MRc
MXOR32 MRa, MRb, MRc
MSUB32 MRa, MRb, MRc
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 875
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: dest dest dest dest
MSW: 0111 1001 1000 cndf
Description
If the specified condition is true, then branch by adding the signed 16BitDest value to the
MPC value. Otherwise, continue without branching. If the address overflows, the address
wraps around. Therefore, a value of "0xFFFE" puts the MPC back to the MBCNDD
instruction.
Refer to the Pipeline section for important information regarding this instruction.
Restrictions
The MBCNDD instruction is not allowed three instructions before or after a MBCNDD,
MCCNDD, or MRCNDD instruction. Refer to the Pipeline section for more information.
Flags
This instruction does not modify flags in the MSTF register.
Flag TF ZF NF LUF LVF
Modified No No No No No
876 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Pipeline
The MBCNDD instruction alone is a single-cycle instruction. As shown in Table 7-12, 6
instruction slots are executed for each branch; 3 slots before the branch instruction (I2-I4)
and 3 slots after the branch instruction (I5-I7). The total number of cycles for a branch
taken or not taken depends on the usage of these slots. That is, the number of cycles
depends on how many slots are filled with a MNOP as well as which slots are filled. The
effective number of cycles for a branch can, therefore, range from 1 to 7 cycles. The
number of cycles for a branch taken cannot be the same as for a branch not taken.
Referring to Table 7-12 and Table 7-13, the instructions before and after MBCNDD have
the following properties:
• I1
– I1 is the last instruction that can effect the CNDF flags for the MBCNDD instruction.
The CNDF flags are tested in the D2 phase of the pipeline. That is, a decision is
made whether to branch or not when MBCNDD is in the D2 phase.
– There are no restrictions on the type of instruction for I1.
• I2, I3, and I4
– The three instructions proceeding MBCNDD can change MSTF flags but have no
effect on whether the MBCNDD instruction branches or not. This is because the
flag modification occurs after the D2 phase of the MBCNDD instruction.
– These instructions must not be the following: MSTOP, MDEBUGSTOP, MBCNDD,
MCCNDD, or MRCNDD.
• I5, I6, and I7
– The three instructions following MBCNDD are always executed irrespective of
whether the branch is taken or not.
– These instructions must not be the following: MSTOP, MDEBUGSTOP, MBCNDD,
MCCNDD, or MRCNDD.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 877
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
878 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example 1
; if (State == 0.1)
; RampState = RampState || RAMPMASK
; else if (State == 0.01)
; CoastState = CoastState || COASTMASK
; else
; SteadyState = SteadyState || STEADYMASK
;
_Cla1Task1:
MMOV32 MR0, @State
MCMPF32 MR0, #0.1 ; Affects flags for 1st MBCNDD (A)
MNOP
MNOP
MNOP
MBCNDD Skip1, NEQ ; (A) If State != 0.1, go to Skip1
MNOP ; Always executed
MNOP ; Always executed
MNOP ; Always executed
MMOV32 MR1, @RampState ; Execute if (A) branch not taken
MMOVXI MR2, #RAMPMASK ; Execute if (A) branch not taken
MOR32 MR1, MR2 ; Execute if (A) branch not taken
MMOV32 @RampState, MR1 ; Execute if (A) branch not taken
MSTOP ; end of task if (A) branch not taken
Skip1:
MCMPF32 MR0,#0.01 ; Affects flags for 2nd MBCNDD (B)
MNOP
MNOP
MNOP
MBCNDD Skip2,NEQ ; (B) If State != 0.01, go to Skip2
MNOP ; Always executed
MNOP ; Always executed
MNOP ; Always executed
MMOV32 MR1, @CoastState ; Execute if (B) branch not taken
MMOVXI MR2, #COASTMASK ; Execute if (B) branch not taken
MOR32 MR1, MR2 ; Execute if (B) branch not taken
MMOV32 @CoastState, MR1 ; Execute if (B) branch not taken
MSTOP
Skip2:
MMOV32 MR3, @SteadyState ; Executed if (B) branch taken
MMOVXI MR2, #STEADYMASK ; Executed if (B) branch taken
MOR32 MR3, MR2 ; Executed if (B) branch taken
MMOV32 @SteadyState, MR3 ; Executed if (B) branch taken
MSTOP
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 879
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example 2
; This example is the same as Example 1, except
; the code is optimized to take advantage of delay slots
;
; if (State == 0.1)
; RampState = RampState || RAMPMASK
; else if (State == 0.01)
; CoastState = CoastState || COASTMASK
; else
; SteadyState = SteadyState || STEADYMASK
;
_Cla1Task2:
MMOV32 MR0, @State
MCMPF32 MR0, #0.1 ; Affects flags for 1st MBCNDD (A)
MCMPF32 MR0, #0.01 ; Check used by 2nd MBCNDD (B)
MTESTTF EQ ; Store EQ flag in TF for 2nd MBCNDD (B)
MNOP
MBCNDD Skip1, NEQ ; (A) If State != 0.1, go to Skip1
MMOV32 MR1, @RampState ; Always executed
MMOVXI MR2, #RAMPMASK ; Always executed
MOR32 MR1, MR2 ; Always executed
MMOV32 @RampState, MR1 ; Execute if (A) branch not taken
MSTOP ; end of task if (A) branch not taken
Skip1:
MMOV32 MR3, @SteadyState
MMOVXI MR2, #STEADYMASK
MOR32 MR3, MR2
MBCNDD Skip2, NTF ; (B) if State != .01, go to Skip2
MMOV32 MR1, @CoastState ; Always executed
MMOVXI MR2, #COASTMASK ; Always executed
MOR32 MR1, MR2 ; Always executed
MMOV32 @CoastState, MR1 ; Execute if (B) branch not taken
MSTOP ; end of task if (B) branch not taken
Skip2:
MMOV32 @SteadyState, MR3 ; Executed if (B) branch taken
MSTOP
See also
MCCNDD 16BitDest, CNDF
MRCNDD CNDF
880 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: dest dest dest dest
MSW: 0111 1001 1001 cndf
Description
If the specified condition is true, then store the return address in the RPC field of MSTF
and make the call by adding the signed 16BitDest value to the MPC value. Otherwise,
continue code execution without making the call. If the address overflows, the address
wraps around. Therefore a value of "0xFFFE" puts the MPC back to the MCCNDD
instruction.
Refer to the Pipeline section for important information regarding this instruction.
if (CNDF == TRUE)
{
RPC = return address;
MPC += 16BitDest;
};
Restrictions
The MCCNDD instruction is not allowed three instructions before or after a MBCNDD,
MCCNDD, or MRCNDD instruction. Refer to the Pipeline section for more details.
Flags
This instruction does not modify flags in the MSTF register.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 881
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Pipeline
The MCCNDD instruction alone is a single-cycle instruction. As shown in Table 7-14, 6
instruction slots are executed for each call; 3 before the call instruction (I2-I4) and 3 after
the call instruction (I5-I7). The total number of cycles for a call taken or not taken depends
on the usage of these slots. That is, the number of cycles depends on how many slots are
filled with a MNOP as well as which slots are filled. The effective number of cycles for a
call can, therefore, range from 1 to 7 cycles. The number of cycles for a call taken cannot
be the same as for a call not taken.
Referring to the following code fragment and the pipeline diagrams in Table 7-14 and
Table 7-15, the instructions before and after MCCNDD have the following properties:
• I1
– I1 is the last instruction that can effect the CNDF flags for the MCCNDD instruction.
The CNDF flags are tested in the D2 phase of the pipeline. That is, a decision is
made whether to branch or not when MCCNDD is in the D2 phase.
– There are no restrictions on the type of instruction for I1.
• I2, I3, and I4
– The three instructions proceeding MCCNDD can change MSTF flags but have no
effect on whether the MCCNDD instruction makes the call or not. This is because
the flag modification occurs after the D2 phase of the MCCNDD instruction.
– These instructions must not be the following: MSTOP, MDEBUGSTOP, MBCNDD,
MCCNDD, or MRCNDD.
• I5, I6, and I7
– The three instructions following MBCNDD are always executed irrespective of
whether the branch is taken or not.
– These instructions must not be the following: MSTOP, MDEBUGSTOP, MBCNDD,
MCCNDD, or MRCNDD.
882 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 883
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
(1) The RPC value in the MSTF register points to the instruction following I7 (instruction I8).
See also
MBCNDD #16BitDest, CNDF
MMOV32 mem32, MSTF
MMOV32 MSTF, mem32
MRCNDD CNDF
884 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1111 0010 0000
Description
Set ZF and NF flags on the result of MRa - MRb where MRa and MRb are 32-bit integers.
For a floating-point compare, refer to MCMPF32.
Note
A known hardware issue exists in the MCMP32 instruction. Signed-integer
comparisons using MCMP32 alone set the status bits in a way that is not useful
for comparison when the difference between the two operands is too large,
such as when the inputs have opposite sign and are near the extreme 32-bit
signed values. This affects both signed and unsigned integer comparisons.
The compiler (version 18.1.5.LTS or higher) has implemented a workaround for
this issue. The compiler checks the upper bits of the operands by performing
a floating point comparison before proceeding to do the integer comparison or
subtraction.
The compiler flag --cla_signed_compare_workaround enables this workaround.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
Pipeline
This is a single-cycle instruction.
Example
; Behavior of ZF and NF flags for different comparisons
;
; Given A = (int32)1
; B = (int32)2
; C = (int32)-7
;
MMOV32 MR0, @_A ; MR0 = 1 (0x00000001)
MMOV32 MR1, @_B ; MR1 = 2 (0x00000002)
MMOV32 MR2, @_C ; MR2 = -7 (0xFFFFFFF9)
MCMP32 MR2, MR2 ; NF = 0, ZF = 1
MCMP32 MR0, MR1 ; NF = 1, ZF = 0
MCMP32 MR1, MR0 ; NF = 0, ZF = 0
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 885
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
See also
MADD32 MRa, MRb, MRc
MSUB32 MRa, MRb, MRc
886 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 0000 0000
Description
Set ZF and NF flags on the result of MRa - MRb. The MCMPF32 instruction is performed
as a logical compare operation. This is possible because of the IEEE format offsetting the
exponent. Basically the bigger the binary number, the bigger the floating-point value.
Special cases for inputs:
• Negative zero is treated as positive zero.
• A denormalized value is treated as positive zero.
• Not-a-Number (NaN) is treated as infinity.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
Pipeline
This is a single-cycle instruction.
Example
; Behavior of ZF and NF flags for different comparisons
MMOVIZ MR1, #-2.0 ; MR1 = -2.0 (0xC0000000)
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MCMPF32 MR1, MR0 ; ZF = 0, NF = 1
MCMPF32 MR0, MR1 ; ZF = 0, NF = 0
MCMPF32 MR0, MR0 ; ZF = 1, NF = 0
See also
MCMPF32 MRa, #16FHi
MMAXF32 MRa, #16FHi
MMAXF32 MRa, MRb
MMINF32 MRa, #16FHi
MMINF32 MRa, MRb
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 887
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 1000 1100 00aa
Description
Compare the value in MRa with the floating-point value represented by the immediate
operand. Set the ZF and NF flags on (MRa - #16FHi:0).
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0. This
addressing mode is most useful for constants where the lowest 16-bits of the mantissa
are 0. Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and
-1.5 (0xBFC00000). The assembler accepts either a hex or float as the immediate value.
That is, -1.5 can be represented as #-1.5 or #0xBFC0.
The MCMPF32 instruction is performed as a logical compare operation. This is possible
because of the IEEE floating-point format offsets the exponent. Basically the bigger the
binary number, the bigger the floating-point value.
Special cases for inputs:
• Negative zero is treated as positive zero.
• Denormalized value is treated as positive zero.
• Not-a-Number (NaN) is treated as infinity.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
Pipeline
This is a single-cycle instruction
Example 1
; Behavior of ZF and NF flags for different comparisons
MMOVIZ MR1, #-2.0 ; MR1 = -2.0 (0xC0000000)
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MCMPF32 MR1, #-2.2 ; ZF = 0, NF = 0
MCMPF32 MR0, #6.5 ; ZF = 0, NF = 1
MCMPF32 MR0, #5.0 ; ZF = 1, NF = 0
888 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example 2
; X is an array of 32-bit floating-point values
; and has length elements. Find the maximum value in
; the array and store the value in Result
;
; Note: MCMPF32 and MSWAPF can be replaced with MMAXF32
;
_Cla1Task1:
MMOVI16 MAR1,#_X ; Start address
MUI16TOF32 MR0, @_len ; Length of the array
MNOP ; delay for MAR1 load
MNOP ; delay for MAR1 load
MMOV32 MR1, *MAR1[2]++ ; MR1 = X0
LOOP
MMOV32 MR2, *MAR1[2]++ ; MR2 = next element
MCMPF32 MR2, MR1 ; Compare MR2 with MR1
MSWAPF MR1, MR2, GT ; MR1 = MAX(MR1, MR2)
MADDF32 MR0, MR0, #-1.0 ; Decrememt the counter
MCMPF32 MR0 #0.0 ; Set/clear flags for MBCNDD
MNOP
MNOP
MNOP
MBCNDD LOOP, NEQ ; Branch if not equal to zero
MMOV32 @_Result, MR1 ; Always executed
MNOP ; Always executed
MNOP ; Always executed
MSTOP ; End of task
See also
MCMPF32 MRa, MRb
MMAXF32 MRa, #16FHi
MMAXF32 MRa, MRb
MMINF32 MRa, #16FHi
MMINF32 MRa, MRb
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 889
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
MDEBUGSTOP
Opcode
LSW: 0000 0000 0000 0000
MSW: 0111 1111 0110 0000
Description
When CLA breakpoints are enabled, the MDEBUGSTOP instruction is used to halt a task
so that the task can be debugged. That is, MDEBUGSTOP is the CLA breakpoint. If CLA
breakpoints are not enabled, the MDEBUGSTOP instruction behaves like a MNOP. Unlike
the MSTOP, the MIRUN flag is not cleared and an interrupt is not issued. A single-step or
run operation continues execution of the task.
Restrictions
The MDEBUGSTOP instruction cannot be placed 3 instructions before or after a
MBCNDD, MCCNDD, or MRCNDD instruction.
Flags
This instruction does not modify flags in the MSTF register.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
See also
MSTOP
890 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
MEALLOW
Opcode
LSW: 0000 0000 0000 0000
MSW: 0111 1111 1001 0000
Description
This instruction sets the MEALLOW bit in the CLA status register MSTF. When this bit
is set, the CLA is allowed write access to EALLOW protected registers. To again protect
against CLA writes to protected registers, use the MEDIS instruction.
MEALLOW and MEDIS only control CLA write access; reads are allowed even if
MEALLOW has not been executed. MEALLOW and MEDIS are also independent from
the main CPU's EALLOW/EDIS. This instruction does not modify the EALLOW bit in the
main CPU's status register. The MEALLOW bit in MSTF only controls access for the CLA
while the EALLOW bit in the ST1 register only controls access for the main CPU.
As with EALLOW, the MEALLOW bit is overridden using the JTAG port, allowing full
control of register accesses during debug from Code Composer Studio.
Flags
This instruction does not modify flags in the MSTF register.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
; C header file including definition of
; the EPwm1Regs structure
;
; The ePWM TZSEL register is EALLOW protected
;
.cdecls C,LIST,"CLAShared.h"
...
_Cla1Task1:
...
MEALLOW ; Allow CLA write access
MMOV16 @_EPwm1Regs.TZSEL.all, MR3 ; Write to TZSEL
MEDIS ; Disallow CLA write access
...
...
MSTOP
See also
MEDIS
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 891
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
MEDIS
Opcode
LSW: 0000 0000 0000 0000
MSW: 0111 1111 1011 0000
Description
This instruction clears the MEALLOW bit in the CLA status register MSTF. When this bit is
clear, the CLA is not allowed write access to EALLOW-protected registers. To enable CLA
writes to protected registers, use the MEALLOW instruction.
MEALLOW and MEDIS only control CLA write access; reads are allowed even if
MEALLOW has not been executed. MEALLOW and MEDIS are also independent from
the main CPU's EALLOW/EDIS. This instruction does not modify the EALLOW bit in the
main CPU's status register. The MEALLOW bit in MSTF only controls access for the CLA
while the EALLOW bit in the ST1 register only controls access for the main CPU.
As with EALLOW, the MEALLOW bit is overridden using the JTAG port, allowing full
control of register accesses during debug from the Code Composer Studio™ IDE.
Flags
This instruction does not modify flags in the MSTF register.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
; C header file including definition of
; the EPwm1Regs structure
;
; The ePWM TZSEL register is EALLOW protected
;
.cdecls C,LIST,"CLAShared.h"
...
_Cla1Task1:
...
MEALLOW ; Allow CLA write access
MMOV16 @_EPwm1Regs.TZSEL.all, MR3 ; Write to TZSEL
MEDIS ; Disallow CLA write access
...
...
MSTOP
See also
MEALLOW
892 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1111 0000 0000
Description
This operation generates an estimate of 1/X in 32-bit floating-point format accurate to
approximately 8 bits. This value can be used in a Newton-Raphson algorithm to get a
more accurate answer. That is:
Ye = Estimate(1/X);
Ye = Ye*(2.0 - Ye*X);
Ye = Ye*(2.0 - Ye*X);
After two iterations of the Newton-Raphson algorithm, you get an exact answer
accurate to the 32-bit floating-point format. On each iteration, the mantissa bit accuracy
approximately doubles. The MEINVF32 operation does not generate a negative zero,
DeNorm, or NaN value.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 893
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example
; Calculate Num/Den using a Newton-Raphson algorithum for 1/Den
; Ye = Estimate(1/X)
; Ye = Ye*(2.0 - Ye*X)
; Ye = Ye*(2.0 - Ye*X)
;
_Cla1Task1:
MMOV32 MR1, @_Den ; MR1 = Den
MEINVF32 MR2, MR1 ; MR2 = Ye = Estimate(1/Den)
MMPYF32 MR3, MR2, MR1 ; MR3 = Ye*Den
MSUBF32 MR3, #2.0, MR3 ; MR3 = 2.0 - Ye*Den
MMPYF32 MR2, MR2, MR3 ; MR2 = Ye = Ye*(2.0 - Ye*Den)
MMPYF32 MR3, MR2, MR1 ; MR3 = Ye*Den
|| MMOV32 MR0, @_Num ; MR0 = Num
MSUBF32 MR3, #2.0, MR3 ; MR3 = 2.0 - Ye*Den
MMPYF32 MR2, MR2, MR3 ; MR2 = Ye = Ye*(2.0 - Ye*Den)
|| MMOV32 MR1, @_Den ; Reload Den To Set Sign
MNEGF32 MR0, MR0, EQ ; if(Den == 0.0) Change Sign Of Num
MMPYF32 MR0, MR2, MR0 ; MR0 = Y = Ye*Num
MMOV32 @_Dest, MR0 ; Store result
MSTOP ; end of task
See also
MEISQRTF32 MRa, MRb
894 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 0100 0000
Description
This operation generates an estimate of 1/sqrt(X) in 32-bit floating-point format accurate
to approximately 8 bits. This value can be used in a Newton-Raphson algorithm to get a
more accurate answer. That is:
Ye = Estimate(1/sqrt(X));
Ye = Ye*(1.5 - Ye*Ye*X/2.0);
Ye = Ye*(1.5 - Ye*Ye*X/2.0);
After 2 iterations of the Newton-Raphson algorithm, you get an exact answer accurate to
the 32-bit floating-point format. On each iteration, the mantissa bit accuracy approximately
doubles. The MEISQRTF32 operation does not generate a negative zero, DeNorm, or
NaN value.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 895
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example
; Y = sqrt(X)
; Ye = Estimate(1/sqrt(X));
; Ye = Ye*(1.5 - Ye*Ye*X*0.5)
; Ye = Ye*(1.5 - Ye*Ye*X*0.5)
; Y = X*Ye
;
_Cla1Task3:
MMOV32 MR0, @_x ; MR0 = X
MEISQRTF32 MR1, MR0 ; MR1 = Ye = Estimate(1/sqrt(X))
MMOV32 MR1, @_x, EQ ; if(X == 0.0) Ye = 0.0
MMPYF32 MR3, MR0, #0.5 ; MR3 = X*0.5
MMPYF32 MR2, MR1, MR3 ; MR2 = Ye*X*0.5
MMPYF32 MR2, MR1, MR2 ; MR2 = Ye*Ye*X*0.5
MSUBF32 MR2, #1.5, MR2 ; MR2 = 1.5 - Ye*Ye*X*0.5
MMPYF32 MR1, MR1, MR2 ; MR1 = Ye = Ye*(1.5 - Ye*Ye*X*0.5)
MMPYF32 MR2, MR1, MR3 ; MR2 = Ye*X*0.5
MMPYF32 MR2, MR1, MR2 ; MR2 = Ye*Ye*X*0.5
MSUBF32 MR2, #1.5, MR2 ; MR2 = 1.5 - Ye*Ye*X*0.5
MMPYF32 MR1, MR1, MR2 ; MR1 = Ye = Ye*(1.5 - Ye*Ye*X*0.5)
MMPYF32 MR0, MR1, MR0 ; MR0 = Y = Ye*X
MMOV32 @_y, MR0 ; Store Y = sqrt(X)
MSTOP ; end of task
See also
MEINVF32 MRa, MRb
896 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 1110 0000
Description
Convert a 32-bit floating point value in MRb to a 16-bit integer and truncate. The result is
stored in MRa.
MRa(15:0) = F32TOI16(MRb);
MRa(31:16) = sign extension of MRa(15);
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MF32TOI16 MR1, MR0 ; MR1(15:0) = MF32TOI16(MR0) = 0x0005
; MR1(31:16) = Sign extension of MR1(15) = 0x0000
MMOVIZ MR2, #-5.0 ; MR2 = -5.0 (0xC0A00000)
MF32TOI16 MR3, MR2 ; MR3(15:0) = MF32TOI16(MR2) = -5 (0xFFFB)
; MR3(31:16) = Sign extension of MR3(15) = 0xFFFF
See also
MF32TOI16R MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MI16TOF32 MRa, MRb
MI16TOF32 MRa, mem16
MUI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 897
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 0110 0000
Description
Convert the 32-bit floating point value in MRb to a 16-bit integer and round to the nearest
even value. The result is stored in MRa.
MRa(15:0) = F32TOI16round(MRb);
MRa(31:16) = sign extension of MRa(15);
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #0x3FD9 ; MR0(31:16) = 0x3FD9
MMOVXI MR0, #0x999A ; MR0(15:0) = 0x999A
; MR0 = 1.7 (0x3FD9999A)
MF32TOI16R MR1, MR0 ; MR1(15:0) = MF32TOI16round (MR0) = 2 (0x0002)
; MR1(31:16) = Sign extension of MR1(15) = 0x0000
MMOVF32 MR2, #-1.7 ; MR2 = -1.7 (0xBFD9999A)
MF32TOI16R MR3, MR2 ; MR3(15:0) = MF32TOI16round (MR2) = -2 (0xFFFE)
; MR3(31:16) = Sign extension of MR2(15) = 0xFFFF
See also
MF32TOI16 MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MI16TOF32 MRa, MRb
MI16TOF32 MRa, mem16
MUI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
898 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 0110 0000
Description
Convert the 32-bit floating-point value in MRb to a 32-bit integer value and truncate. Store
the result in MRa.
MRa = F32TOI32(MRb);
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example 1
MMOVF32 MR2, #11204005.0 ; MR2 = 11204005.0 (0x4B2AF5A5)
MF32TOI32 MR3, MR2 ; MR3 = MF32TOI32(MR2) = 11204005 (0x00AAF5A5)
MMOVF32 MR0, #-11204005.0 ; MR0 = -11204005.0 (0xCB2AF5A5)
MF32TOI32 MR1, MR0 ; MR1 = MF32TOI32(MR0) = -11204005 (0xFF550A5B)
Example 2
; Given X, M and B are IQ24 numbers:
; X = IQ24(+2.5) = 0x02800000
; M = IQ24(+1.5) = 0x01800000
; B = IQ24(-0.5) = 0xFF800000
;
; Calculate Y = X * M + B
;
; Convert M, X, and B from IQ24 to float
;
_Cla1Task2:
MI32TOF32 MR0, @_M ; MR0 = 0x4BC00000
MI32TOF32 MR1, @_X ; MR1 = 0x4C200000
MI32TOF32 MR2, @_B ; MR2 = 0xCB000000
MMPYF32 MR0, MR0, #0x3380 ; M = 1/(1*2^24) * iqm = 1.5 (0x3FC00000)
MMPYF32 MR1, MR1, #0x3380 ; X = 1/(1*2^24) * iqx = 2.5 (0x40200000)
MMPYF32 MR2, MR2, #0x3380 ; B = 1/(1*2^24) * iqb = -.5 (0xBF000000)
MMPYF32 MR3, MR0, MR1 ; M*X
MADDF32 MR2, MR2, MR3 ; Y=MX+B = 3.25 (0x40500000)
; Convert Y from float32 to IQ24
MMPYF32 MR2, MR2, #0x4B80 ; Y * 1*2^24
MF32TOI32 MR2, MR2 ; IQ24(Y) = 0x03400000
MMOV32 @_Y, MR2 ; store result
MSTOP ; end of task
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 899
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
See also
MF32TOUI32 MRa, MRb
MI32TOF32 MRa, MRb
MI32TOF32 MRa, mem32
MUI32TOF32 MRa, MRb
MUI32TOF32 MRa, mem32
900 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 1010 0000
Description
Convert the 32-bit floating point value in MRb to an unsigned 16-bit integer value and
truncate to zero. The result is stored in MRa. To instead round the integer to the nearest
even value, use the MF32TOUI16R instruction.
MRa(15:0) = F32TOUI16(MRb);
MRa(31:16) = 0x0000;
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #9.0 ; MR0 = 9.0 (0x41100000)
MF32TOUI16 MR1, MR0 ; MR1(15:0) = MF32TOUI16(MR0) = 9 (0x0009)
; MR1(31:16) = 0x0000
MMOVIZ MR2, #-9.0 ; MR2 = -9.0 (0xC1100000)
MF32TOUI16 MR3, MR2 ; MR3(15:0) = MF32TOUI16(MR2) = 0 (0x0000)
; MR3(31:16) = 0x0000
See also
MF32TOI16 MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MI16TOF32 MRa, MRb
MI16TOF32 MRa, mem16
MUI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 901
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 1100 0000
Description
Convert the 32-bit floating-point value in MRb to an unsigned 16-bit integer and round to
the closest even value. The result is stored in MRa. To instead truncate the converted
value, use the MF32TOUI16 instruction.
MRa(15:0) = MF32TOUI16round(MRb);
MRa(31:16) = 0x0000;
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #0x412C ; MR0 = 0x412C
MMOVXI MR0, #0xCCCD ; MR0 = 0xCCCD ; MR0 = 10.8 (0x412CCCCD)
MF32TOUI16R MR1, MR0 ; MR1(15:0) = MF32TOUI16round(MR0) = 11 (0x000B)
; MR1(31:16) = 0x0000
MMOVF32 MR2, #-10.8 ; MR2 = -10.8 (0x0xC12CCCCD)
MF32TOUI16R MR3, MR2 ; MR3(15:0) = MF32TOUI16round(MR2) = 0 (0x0000)
; MR3(31:16) = 0x0000
See also
MF32TOI16 MRa, MRb
MF32TOI16R MRa, MRb
MF32TOUI16 MRa, MRb
MI16TOF32 MRa, MRb
MI16TOF32 MRa, mem16
MUI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
902 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 1010 0000
Description
Convert the 32-bit floating-point value in MRb to an unsigned 32-bit integer and store the
result in MRa.
MRa = F32TOUI32(MRb);
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #12.5 ; MR0 = 12.5 (0x41480000)
MF32TOUI32 MR0, MR0 ; MR0 = MF32TOUI32 (MR0) = 12 (0x0000000C)
MMOVIZ MR1, #-6.5 ; MR1 = -6.5 (0xC0D00000)
MF32TOUI32 MR2, MR1 ; MR2 = MF32TOUI32 (MR1) = 0.0 (0x00000000)
See also
MF32TOI32 MRa, MRb
MI32TOF32 MRa, MRb
MI32TOF32 MRa, mem32
MUI32TOF32 MRa, MRb
MUI32TOF32 MRa, mem32
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 903
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 0000 0000
Description
Returns in MRa the fractional portion of the 32-bit floating-point value in MRb
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR2, #19.625 ; MR2 = 19.625 (0x419D0000)
MFRACF32 MR3, MR2 ; MR3 = MFRACF32(MR2) = 0.625 (0x3F200000)0)
904 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 1000 0000
Description
Convert the 16-bit signed integer in MRb to a 32-bit floating-point value and store the
result in MRa.
MRa = MI16TOF32(MRb);
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #0x0000 ; MR0(31:16) = 0.0 (0x0000)
MMOVXI MR0, #0x0004 ; MR0(15:0) = 4.0 (0x0004)
MI16TOF32 MR1, MR0 ; MR1 = MI16TOF32 (MR0) = 4.0 (0x40800000)
MMOVIZ MR2, #0x0000 ; MR2(31:16) = 0.0 (0x0000)
MMOVXI MR2, #0xFFFC ; MR2(15:0) = -4.0 (0xFFFC)
MI16TOF32 MR3, MR2 ; MR3 = MI16TOF32 (MR2) = -4.0 (0xC0800000)
MSTOP
See also
MF32TOI16 MRa, MRb
MF32TOI16R MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MI16TOF32 MRa, mem16
MUI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 905
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0101 00aa addr
Description
Convert the 16-bit signed integer indicated by the mem16 pointer to a 32-bit floating-point
value and store the result in MRa.
MRa = MI16TOF32[mem16];
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction:
Example
; Assume A = 4 (0x0004)
; B = -4 (0xFFFC)
MI16TOF32 MR0, @_A ; MR0 = MI16TOF32(A) = 4.0 (0x40800000)
MI16TOF32 MR1, @_B ; MR1 = MI16TOF32(B) = -4.0 (0xC0800000
See also
MF32TOI16 MRa, MRb
MF32TOI16R MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MI16TOF32 MRa, MRb
MUI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
906 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0100 01aa addr
Description
Convert the 32-bit signed integer indicated by mem32 to a 32-bit floating-point value and
store the result in MRa.
MRa = MI32TOF32[mem32];
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
; Given X, M and B are IQ24 numbers:
; X = IQ24(+2.5) = 0x02800000
; M = IQ24(+1.5) = 0x01800000
; B = IQ24(-0.5) = 0xFF800000
;
; Calculate Y = X * M + B
;
; Convert M, X, and B from IQ24 to float
;
_Cla1Task3:
MI32TOF32 MR0, @_M ; MR0 = 0x4BC00000
MI32TOF32 MR1, @_X ; MR1 = 0x4C200000
MI32TOF32 MR2, @_B ; MR2 = 0xCB000000
MMPYF32 MR0, MR0, #0x3380 ; M = 1/(1*2^24) * iqm = 1.5 (0x3FC00000)
MMPYF32 MR1, MR1, #0x3380 ; X = 1/(1*2^24) * iqx = 2.5 (0x40200000)
MMPYF32 MR2, MR2, #0x3380 ; B = 1/(1*2^24) * iqb = -.5 (0xBF000000)
MMPYF32 MR3, MR0, MR1 ; M*X
MADDF32 MR2, MR2, MR3 ; Y=MX+B = 3.25 (0x40500000)
; Convert Y from float32 to IQ24
MMPYF32 MR2, MR2, #0x4B80 ; Y * 1*2^24
MF32TOI32 MR2, MR2 ; IQ24(Y) = 0x03400000
MMOV32 @_Y, MR2 ; store result
MSTOP ; end of task
See also
MF32TOI32 MRa, MRb
MF32TOUI32 MRa, MRb
MI32TOF32 MRa, MRb
MUI32TOF32 MRa, MRb
MUI32TOF32 MRa, mem32
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 907
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 1000 0000
Description
Convert the signed 32-bit integer in MRb to a 32-bit floating-point value and store the
result in MRa.
MRa = MI32TOF32(MRb);
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR2, #0x1111 ; MR2(31:16) = 4369 (0x1111)
MMOVXI MR2, #0x1111 ; MR2(15:0) = 4369 (0x1111)
; MR2 = +286331153 (0x11111111)
MI32TOF32 MR3, MR2 ; MR3 = MI32TOF32 (MR2) = 286331153.0 (0x4D888888)
See also
MF32TOI32 MRa, MRb
MF32TOUI32 MRa, MRb
MI32TOF32 MRa, mem32
MUI32TOF32 MRa, MRb
MUI32TOF32 MRa, mem32
908 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0shi ftaa
MSW: 0111 1011 1100 0000
Description
Logical shift-left of MRa by the number of bits indicated. The number of bits can be 1 to
32.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1; }
Pipeline
This is a single-cycle instruction.
Example
; Given m2 = (int32)32
; x2 = (int32)64
; b2 = (int32)-128
;
; Calculate:
; m2 = m2*2
; x2 = x2*4
; b2 = b2*8
;
_Cla1Task3:
MMOV32 MR0, @_m2 ; MR0 = 32 (0x00000020)
MMOV32 MR1, @_x2 ; MR1 = 64 (0x00000040)
MMOV32 MR2, @_b2 ; MR2 = -128 (0xFFFFFF80)
MLSL32 MR0, #1 ; MR0 = 64 (0x00000040)
MLSL32 MR1, #2 ; MR1 = 256 (0x00000100)
MLSL32 MR2, #3 ; MR2 = -1024 (0xFFFFFC00)
MMOV32 @_m2, MR0 ; Store results
MMOV32 @_x2, MR1
MMOV32 @_b2, MR2
MSTOP ; end of task
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 909
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
See also
MADD32 MRa, MRb, MRc
MASR32 MRa, #SHIFT
MAND32 MRa, MRb, MRc
MLSR32 MRa, #SHIFT
MOR32 MRa, MRb, MRc
MXOR32 MRa, MRb, MRc
MSUB32 MRa, MRb, MRc
910 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0shi ftaa
MSW: 0111 1011 1000 0000
Description
Logical shift-right of MRa by the number of bits indicated. The number of bits can be 1 to
32. Unlike the arithmetic shift (MASR32), the logical shift does not preserve the number's
sign bit. Every bit in the operand is moved the specified number of bit positions, and the
vacant bit positions are filled in with zeros.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1;}
Pipeline
This is a single-cycle instruction.
Example
; Illustrate the difference between MASR32 and MLSR32
MMOVIZ MR0, #0xAAAA ; MR0 = 0xAAAA5555
MMOVXI MR0, #0x5555
MMOV32 MR1, MR0 ; MR1 = 0xAAAA5555
MMOV32 MR2, MR0 ; MR2 = 0xAAAA5555
MASR32 MR1, #1 ; MR1 = 0xD5552AAA
MLSR32 MR2, #1 ; MR2 = 0x55552AAA
MASR32 MR1, #1 ; MR1 = 0xEAAA9555
MLSR32 MR2, #1 ; MR2 = 0x2AAA9555
MASR32 MR1, #6 ; MR1 = 0xFFAAAA55
MLSR32 MR2, #6 ; MR2 = 0x00AAAA55
See also
MADD32 MRa, MRb, MRc
MASR32 MRa, #SHIFT
MAND32 MRa, MRb, MRc
MLSL32 MRa, #SHIFT
MOR32 MRa, MRb, MRc
MXOR32 MRa, MRb, MRc
MSUB32 MRa, MRb, MRc
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 911
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0011 ffee ddaa addr
Description
Multiply and accumulate the contents of floating-point registers and move from register to
memory. The destination register for the MMOV32 cannot be the same as the destination
registers for the MMACF32.
Restrictions
The destination registers for the MMACF32 and the MMOV32 must be unique. That is,
MRa cannot be MR3 and MRa cannot be the same register as MRd.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes Yes Yes
NF = MRa(31);
ZF = 0;
if(MRa(30:23) == 0) { ZF = 1; NF = 0; }
Pipeline
MMACF32 and MMOV32 complete in a single cycle.
912 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
MMACF32 MR3, MR2, MRd, MRe, MRf ||MMOV32 MRa, mem32 (continued)
Example 1
; Perform 5 multiply and accumulate operations:
;
; X and Y are 32-bit floating-point arrays
;
; 1st multiply: A = X0 * Y0
; 2nd multiply: B = X1 * Y1
; 3rd multiply: C = X2 * Y2
; 4th multiply: D = X3 * Y3
; 5th multiply: E = X3 * Y3
;
; Result = A + B + C + D + E
;
_Cla1Task1:
MMOVI16 MAR0, #_X ; MAR0 points to X array
MMOVI16 MAR1, #_Y ; MAR1 points to Y array
MNOP ; Delay for MAR0, MAR1 load
MNOP ; Delay for MAR0, MAR1 load
; <-- MAR0 valid
MMOV32 MR0, *MAR0[2]++ ; MR0 = X0, MAR0 += 2
; <-- MAR1 valid
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y0, MAR1 += 2
MMPYF32 MR2, MR0, MR1 ; MR2 = A = X0 * Y0
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X1, MAR0 += 2
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y1, MAR1 += 2
MMPYF32 MR3, MR0, MR1 ; MR3 = B = X1 * Y1
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X2, MAR0 += 2
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y2, MAR2 += 2
MMACF32 MR3, MR2, MR2, MR0, MR1 ; MR3 = A + B, MR2 = C = X2 * Y2
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X3
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y3 M
MACF32 MR3, MR2, MR2, MR0, MR1 ; MR3 = (A + B) + C, MR2 = D = X3 * Y3
|| MMOV32 MR0, *MAR0 ; In parallel MR0 = X4
MMOV32 MR1, *MAR1 ; MR1 = Y4
MMPYF32 MR2, MR0, MR1 ; MR2 = E = X4 * Y4
|| MADDF32 MR3, MR3, MR2 ; in parallel MR3 = (A + B + C) + D
MADDF32 MR3, MR3, MR2 ; MR3 = (A + B + C + D) + E
MMOV32 @_Result, MR3 ; Store the result
MSTOP ; end of task
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 913
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
MMACF32 MR3, MR2, MRd, MRe, MRf ||MMOV32 MRa, mem32 (continued)
Example 2
; sum = X0*B0 + X1*B1 + X2*B2 + Y1*A1 + Y2*B2
;
; X2 = X1
; X1 = X0
; Y2 = Y1 ; Y1 = sum
;
_ClaTask2:
MMOV32 MR0, @_B2 ; MR0 = B2
MMOV32 MR1, @_X2 ; MR1 = X2
MMPYF32 MR2, MR1, MR0 ; MR2 = X2*B2
|| MMOV32 MR0, @_B1 ; MR0 = B1
MMOVD32 MR1, @_X1 ; MR1 = X1, X2 = X1
MMPYF32 MR3, MR1, MR0 ; MR3 = X1*B1
|| MMOV32 MR0, @_B0 ; MR0 = B0
MMOVD32 MR1, @_X0 ; MR1 = X0, X1 = X0
; MR3 = X1*B1 + X2*B2, MR2 = X0*B0
; MR0 = A2
MMACF32 MR3, MR2, MR2, MR1, MR0
|| MMOV32 MR0, @_A2 M
See also
MMPYF32 MRa, MRb, MRc || MADDF32 MRd, MRe, MRf
914 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 0010 0000
Description
if(MRa < MRb) MRa = MRb;
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The ZF and NF flags are configured on the result of the operation, not the result stored in
the destination register.
Pipeline
This is a single-cycle instruction.
Example 1
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MMOVIZ MR1, #-2.0 ; MR1 = -2.0 (0xC0000000)
MMOVIZ MR2, #-1.5 ; MR2 = -1.5 (0xBFC00000)
MMAXF32 MR2, MR1 ; MR2 = -1.5, ZF = NF = 0
MMAXF32 MR1, MR2 ; MR1 = -1.5, ZF = 0, NF = 1
MMAXF32 MR2, MR0 ; MR2 = 5.0, ZF = 0, NF = 1
MAXF32 MR0, MR2 ; MR2 = 5.0, ZF = 1, NF = 0
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 915
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example 2
; X is an array of 32-bit floating-point values
; Find the maximum value in an array X
; and store the value in Result
;
_Cla1Task1:
MMOVI16 MAR1,#_X ; Start address
MUI16TOF32 MR0, @_len ; Length of the array
MNOP ; delay for MAR1 load
MNOP ; delay for MAR1 load
MMOV32 MR1, *MAR1[2]++ ; MR1 = X0
LOOP
MMOV32 MR2, *MAR1[2]++ ; MR2 = next element
MMAXF32 MR1, MR2 ; MR1 = MAX(MR1, MR2)
MADDF32 MR0, MR0, #-1.0 ; Decrememt the counter
MCMPF32 MR0 #0.0 ; Set/clear flags for MBCNDD
MNOP
MNOP
MNOP
MBCNDD LOOP, NEQ ; Branch if not equal to zero
MMOV32 @_Result, MR1 ; Always executed
MNOP ; Always executed
MNOP ; Always executed
MSTOP ; End of task
See also
MCMPF32 MRa, MRb
MCMPF32 MRa, #16FHi
MMAXF32 MRa, #16FHi
MMINF32 MRa, MRb
MMINF32 MRa, #16FHi
916 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 1001 0000 00aa
Description
Compare MRa with the floating-point value represented by the immediate operand. If the
immediate value is larger, then load the value into MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0. This
addressing mode is most useful for constants where the lowest 16-bits of the mantissa
are 0. Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and
-1.5 (0xBFC00000). The assembler accepts either a hex or float as the immediate value.
That is, -1.5 can be represented as #-1.5 or #0xBFC0.
Special cases for the output from the MMAXF32 operation:
• NaN output is converted to infinity
• A denormalized output is converted to positive zero.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The ZF and NF flags are configured on the result of the operation, not the result stored in
the destination register.
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MMOVIZ MR1, #4.0 ; MR1 = 4.0 (0x40800000)
MMOVIZ MR2, #-1.5 ; MR2 = -1.5 (0xBFC00000)
MMAXF32 MR0, #5.5 ; MR0 = 5.5, ZF = 0, NF = 1
MMAXF32 MR1, #2.5 ; MR1 = 4.0, ZF = 0, NF = 0
MMAXF32 MR2, #-1.0 ; MR2 = -1.0, ZF = 0, NF = 1
MMAXF32 MR2, #-1.0 ; MR2 = -1.5, ZF = 1, NF = 0
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 917
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
See also
MMAXF32 MRa, MRb
MMINF32 MRa, MRb
MMINF32 MRa, #16FHi
918 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 0100 0000
Description
if(MRa > MRb) MRa = MRb;
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The ZF and NF flags are configured on the result of the operation, not the result stored in
the destination register.
Pipeline
This is a single-cycle instruction.
Example 1
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MMOVIZ MR1, #4.0 ; MR1 = 4.0 (0x40800000)
MMOVIZ MR2, #-1.5 ; MR2 = -1.5 (0xBFC00000)
MMINF32 MR0, MR1 ; MR0 = 4.0, ZF = 0, NF = 0
MMINF32 MR1, MR2 ; MR1 = -1.5, ZF = 0, NF = 0
MMINF32 MR2, MR1 ; MR2 = -1.5, ZF = 1, NF = 0
MMINF32 MR1, MR0 ; MR2 = -1.5, ZF = 0, NF = 1
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 919
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example 2
;
; X is an array of 32-bit floating-point values
; Find the minimum value in an array X
; and store the value in Result
;
_Cla1Task1:
MMOVI16 MAR1,#_X ; Start address
MUI16TOF32 MR0, @_len ; Length of the array
MNOP ; delay for MAR1 load
MNOP ; delay for MAR1 load
MMOV32 MR1, *MAR1[2]++ ; MR1 = X0
LOOP
MMOV32 MR2, *MAR1[2]++ ; MR2 = next element
MMINF32 MR1, MR2 ; MR1 = MAX(MR1, MR2)
MADDF32 MR0, MR0, #-1.0 ; Decrememt the counter
MCMPF32 MR0 #0.0 ; Set/clear flags for MBCNDD
MNOP
MNOP
MNOP
MBCNDD LOOP, NEQ ; Branch if not equal to zero
MMOV32 @_Result, MR1 ; Always executed
MNOP ; Always executed
MNOP ; Always executed
MSTOP ; End of task
See also
MMAXF32 MRa, MRb
MMAXF32 MRa, #16FHi
MMINF32 MRa, #16FHi
920 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 1001 0100 00aa
Description
Compare MRa with the floating-point value represented by the immediate operand. If the
immediate value is smaller, then load the value into MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0. This
addressing mode is most useful for constants where the lowest 16-bits of the mantissa
are 0. Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and
-1.5 (0xBFC00000). The assembler accepts either a hex or float as the immediate value.
That is, -1.5 can be represented as #-1.5 or #0xBFC0.
Special cases for the output from the MMINF32 operation:
• NaN output is converted to infinity
• A denormalized output is converted to positive zero.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The ZF and NF flags are configured on the result of the operation, not the result stored in
the destination register.
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MMOVIZ MR1, #4.0 ; MR1 = 4.0 (0x40800000)
MMOVIZ MR2, #-1.5 ; MR2 = -1.5 (0xBFC00000)
MMINF32 MR0, #5.5 ; MR0 = 5.0, ZF = 0, NF = 1
MMINF32 MR1, #2.5 ; MR1 = 2.5, ZF = 0, NF = 0
MMINF32 MR2, #-1.0 ; MR2 = -1.5, ZF = 0, NF = 1
MMINF32 MR2, #-1.5 ; MR2 = -1.5, ZF = 1, NF = 0
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 921
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
See also
MMAXF32 MRa, #16FHi
MMAXF32 MRa, MRb
MMINF32 MRa, MRb
922 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: IIII IIII IIII IIII (opcode of MMOV16 MAR0, MRa, #16I)
MSW: 0111 1111 1101 00AA
LSW: IIII IIII IIII IIII (opcode of MMOV16 MAR1, MRa, #16I)
MSW: 0111 1111 1111 00AA
Description
Load the auxiliary register, MAR0 or MAR1, with MRa(15:0) + 16-bit immediate value.
Refer to the Pipeline section for important information regarding this instruction.
Flags
This instruction does not modify flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction. The load of MAR0 or MAR1 occurs in the EXE phase
of the pipeline. Any post increment of MAR0 or MAR1 using indirect addressing occurs in
the D2 phase of the pipeline. Therefore, the following applies when loading the auxiliary
registers:
• I1 and I2
The two instructions following MMOV16 use MAR0 or MAR1 before the update occurs.
Thus, these two instructions use the old value of MAR0 or MAR1.
• I3
Loading of an auxiliary register occurs in the EXE phase while updates due to post-
increment addressing occur in the D2 phase. Thus, I3 cannot use the auxiliary register
or there is a conflict. In the case of a conflict, the update due to address-mode post
increment wins and the auxiliary register is not updated with #_X.
• I4
Starting with the 4th instruction, MAR0 or MAR1 is the new value loaded with
MMOVI16.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 923
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example 1
; Calculate an offset into a sin/cos table
;
_Cla1Task1:
MMOV32 MR0,@_rad ; MR0 = rad
MMOV32 MR1,@_TABLE_SIZEDivTwoPi ; MR1 = TABLE_SIZE/(2*Pi)
MMPYF32 MR1,MR0,MR1 ; MR1 = rad* TABLE_SIZE/(2*Pi)
|| MMOV32 MR2,@_TABLE_MASK ; MR2 = TABLE_MASK
MF32TOI32 MR3,MR1 ; MR3 = K=int(rad*TABLE_SIZE/(2*Pi))
MAND32 MR3,MR3,MR2 ; MR3 = K & TABLE_MASK
MLSL32 MR3,#1 ; MR3 = K * 2
MMOV16 MAR0,MR3,#_Cos0 ; MAR0 K*2+addr of table.Cos0
MFRACF32 MR1,MR1 ; I1
MMOV32 MR0,@_TwoPiDivTABLE_SIZE ; I2
MMPYF32 MR1,MR1,MR0 ; I3
|| MMOV32 MR0,@_Coef3
MMOV32 MR2,*MAR0[#-64]++ ; MR2 = *MAR0, MAR0 += (-64)
...
...
MSTOP ; end of task
924 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example 2
; This task logs the last NUM_DATA_POINTS
; ADCRESULT1 values in the array VoltageCLA
;
; When the last element in the array has been
; filled, the task goes back to the
; the first element.
;
; Before starting the ADC conversions, force
; Task 8 to initialize the ConversionCount to zero
;
; The ADC is set to sample (acquire) for 15 SYSCLK cycles
; or 75ns. After the capacitor has captured the analog
; value, the ADC triggers this task early.
; It takes 10.5 ADCCLKs to complete a conversion,
; the ADCCLK being SYSCLK/4
; T_sys = 1/200MHz = 5ns
; T_adc = 4*T_sys = 20ns
; The ADC takes 10.5 * 4 or 42 SYSCLK cycles to complete
; a conversion. The ADC result register can be read on the
; 36th instruction after the task begins.
;
_Cla1Task2:
.asg 0, N
.loop
MNOP ;I1 - I28 Wait till I36 to read
result
.eval N + 1, N
.break N = 28
.endloop
MMOVZ16 MR0, @_ConversionCount ;I29 Current Conversion
MMOV16 MAR1, MR0, #_VoltageCLA ;I30 Next array location
MUI16TOF32 MR0, MR0 ;I31 Convert count to float32
MADDF32 MR0, MR0, #1.0 ;I32 Add 1 to conversion count
MCMPF32 MR0, #NUM_DATA_POINTS.0 ;I33 Compare count to max
MF32TOUI16 MR0, MR0 ;I34 Convert count to Uint16
MNOP ;I35 Wait till I36 to read
result
MMOVZ16 MR2, @_AdcaResultRegs.ADCRESULT1 ;I36 Read ADCRESULT1
MMOV16 *MAR1, MR2 ; Store ADCRESULT1
MBCNDD _RestartCount, GEQ ; If count >= NUM_DATA_POINTS
MMOVIZ MR1, #0.0 ; Always executed: MR1=0
MNOP
MNOP
MMOV16 @_ConversionCount, MR0 ; If branch not taken
MSTOP ; store current count
_RestartCount
MMOV16 @_ConversionCount, MR1 ; If branch taken, restart
count
MSTOP ; end of task
; This task initializes the ConversionCount
; to zero
;
_Cla1Task8:
MMOVIZ MR0, #0.0
MMOV16 @_ConversionCount, MR0
MSTOP
_ClaT8End:
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 925
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: mmmm mmmm mmmm mmmm (Opcode for MMOV16 MAR0, mem16)
MSW: 0111 0110 0000 addr
LSW: mmmm mmmm mmmm mmmm (Opcode for MMOV16 MAR1, mem16)
MSW: 0111 0110 0100 addr
Description
Load MAR0 or MAR1 with the 16-bit value pointed to by mem16. Refer to the Pipeline
section for important information regarding this instruction.
MAR1 = [mem16];
Flags
No flags MSTF flags are affected.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction. The load of MAR0 or MAR1 occurs in the EXE phase
of the pipeline. Any post increment of MAR0 or MAR1 using indirect addressing occurs in
the D2 phase of the pipeline. Therefore, the following applies when loading the auxiliary
registers:
• I1 and I2
The two instructions following MMOV16 use MAR0 or MAR1 before the update occurs.
Thus, these two instructions use the old value of MAR0 or MAR1.
• I3
Loading of an auxiliary register occurs in the EXE phase while updates due to post-
increment addressing occur in the D2 phase. Thus, I3 cannot use the auxiliary register
or there is a conflict. In the case of a conflict, the update due to address-mode post
increment, the auxiliary register is not updated with #_X.
• I4
Starting with the 4th instruction, MAR0 or MAR1 is the new value loaded with
MMOV16.
926 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 927
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example
; This task logs the last NUM_DATA_POINTS
; ADCRESULT1 values in the array VoltageCLA
;
; When the last element in the array has been
; filled, the task goes back to the
; the first element.
;
; Before starting the ADC conversions, force
; Task 8 to initialize the ConversionCount to zero
;
; The ADC is set to sample (acquire) for 15 SYSCLK cycles
; or 75ns. After the capacitor has captured the analog
; value, the ADC triggers this task early.
; It takes 10.5 ADCCLKs to complete a conversion,
; the ADCCLK being SYSCLK/4
; T_sys = 1/200MHz = 5ns
; T_adc = 4*T_sys = 20ns
; The ADC takes 10.5 * 4 or 42 SYSCLK cycles to complete
; a conversion. The ADC result register can be read on the
; 36th instruction after the task begins.
;
_Cla1Task2:
.asg 0, N
.loop
MNOP
;I1 - I28 Wait till I36 to read result
.eval N + 1, N
.break N = 28
.endloop
MMOVZ16 MR0, @_ConversionCount ;I29 Current Conversion
MMOV16 MAR1, MR0, #_VoltageCLA ;I30 Next array location
MUI16TOF32 MR0, MR0 ;I31 Convert count to float32
MADDF32 MR0, MR0, #1.0 ;I32 Add 1 to conversion count
MCMPF32 MR0, #NUM_DATA_POINTS.0 ;I33 Compare count to max
MF32TOUI16 MR0, MR0 ;I34 Convert count to Uint16
MNOP ;I35 Wait until I36 to read
result
MMOVZ16 MR2, @_AdcaResultRegs.ADCRESULT1 ;I36 Read ADCRESULT1
MMOV16 *MAR1, MR2 ; Store ADCRESULT1
MBCNDD _RestartCount, GEQ ; If count >= NUM_DATA_POINTS
MMOVIZ MR1, #0.0 ; Always executed: MR1=0
MNOP
MNOP
MMOV16 @_ConversionCount, MR0 ; If branch not taken
MSTOP ; store current count
_RestartCount
MMOV16 @_ConversionCount, MR1 ; If branch taken, restart
count
MSTOP ; end of task
; This task initializes the ConversionCount
; to zero
;
_Cla1Task8:
MMOVIZ MR0, #0.0
MMOV16 @_ConversionCount, MR0
MSTOP
_ClaT8End:
928 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Operands mem16 16-bit destination memory accessed using one of the available
addressing modes
MARx CLA auxiliary register MAR0 or MAR1
Opcode
LSW: mmmm mmmm mmmm mmmm (Opcode for MMOV16 mem16, MAR0)
MSW: 0111 0110 1000 addr
LSW: mmmm mmmm mmmm mmmm (Opcode for MMOV16 mem16, MAR1)
MSW: 0111 0110 1100 addr
Description
Store the contents of MAR0 or MAR1 in the 16-bit memory location pointed to by mem16.
[mem16] = MAR0;
Flags
No flags MSTF flags are affected.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 929
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands mem16 16-bit destination memory accessed using one of the available
addressing modes
MRa CLA floating-point source register (MR0 to MR3)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0101 11aa addr
Description
Move 16-bit value from the lower 16-bits of the floating-point register (MRa(15:0)) to the
location pointed to by mem16.
[mem16] = MRa(15:0);
Flags
No flags MSTF flags are affected.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
930 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example
; This task logs the last NUM_DATA_POINTS
; ADCRESULT1 values in the array VoltageCLA
;
; When the last element in the array has been
; filled, the task goes back to the
; the first element.
;
; Before starting the ADC conversions, force
; Task 8 to initialize the ConversionCount to zero
;
; The ADC is set to sample (acquire) for 15 SYSCLK cycles
; or 75ns. After the capacitor has captured the analog
; value, the ADC triggers this task early.
; It takes 10.5 ADCCLKs to complete a conversion,
; the ADCCLK being SYSCLK/4
; T_sys = 1/200MHz = 5ns
; T_adc = 4*T_sys = 20ns
; The ADC takes 10.5 * 4 or 42 SYSCLK cycles to complete
; a conversion. The ADC result register can be read on the
; 36th instruction after the task begins.
;
_Cla1Task2:
.asg 0, N
.loop
MNOP
;I1 - I28 Wait till I36 to read result
.eval N + 1, N
.break N = 28
.endloop
MMOVZ16 MR0, @_ConversionCount ;I29 Current Conversion
MMOV16 MAR1, MR0, #_VoltageCLA ;I30 Next array location
MUI16TOF32 MR0, MR0 ;I31 Convert count to float32
MADDF32 MR0, MR0, #1.0 ;I32 Add 1 to conversion count
MCMPF32 MR0, #NUM_DATA_POINTS.0 ;I33 Compare count to max
MF32TOUI16 MR0, MR0 ;I34 Convert count to Uint16
MNOP ;I35 Wait till I36 to read
result
MMOVZ16 MR2, @_AdcaResultRegs.ADCRESULT1 ;I36 Read ADCRESULT1
MMOV16 *MAR1, MR2 ; Store ADCRESULT1
MBCNDD _RestartCount, GEQ ; If count >= NUM_DATA_POINTS
MMOVIZ MR1, #0.0 ; Always executed: MR1=0
MNOP
MNOP
MMOV16 @_ConversionCount, MR0 ; If branch not taken
MSTOP ; store current count
_RestartCount
MMOV16 @_ConversionCount, MR1 ; If branch taken, restart
count
MSTOP ; end of task
; This task initializes the ConversionCount
; to zero
;
_Cla1Task8:
MMOVIZ MR0, #0.0
MMOV16 @_ConversionCount, MR0
MSTOP
_ClaT8End:
See also
MMOVIZ MRa, #16FHi
MMOVXI MRa, #16FLoHex
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 931
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0100 11aa addr
Description
Move from MRa to 32-bit memory location indicated by mem32.
[mem32] = MRa;
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
No flags affected.
Pipeline
This is a single-cycle instruction.
932 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example
; Perform 5 multiply and accumulate operations:
;
; X and Y are 32-bit floating-point arrays;
; 1st multiply: A = X0 * Y0
; 2nd multiply: B = X1 * Y1
; 3rd multiply: C = X2 * Y2
; 4th multiply: D = X3 * Y3
; 5th multiply: E = X3 * Y3;
; Result = A + B + C + D + E
;
_Cla1Task1:
MMOVI16 MAR0, #_X ; MAR0 points to X array
MMOVI16 MAR1, #_Y ; MAR1 points to Y array
MNOP ; Delay for MAR0, MAR1 load
MNOP ; Delay for MAR0, MAR1 load
; <-- MAR0 valid
MMOV32 MR0, *MAR0[2]++ ; MR0 = X0, MAR0 += 2
; <-- MAR1 valid
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y0, MAR1 += 2
MMPYF32 MR2, MR0, MR1 ; MR2 = A = X0 * Y0
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X1, MAR0 += 2
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y1, MAR1 += 2
MMPYF32 MR3, MR0, MR1 ; MR3 = B = X1 * Y1
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X2, MAR0 += 2
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y2, MAR2 += 2
MMACF32 MR3, MR2, MR2, MR0, MR1 ; MR3 = A + B, MR2 = C = X2 * Y2
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X3
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y3
MMACF32 MR3, MR2, MR2, MR0, MR1 ; MR3 = (A + B) + C, MR2 = D = X3 *
Y3
|| MMOV32 MR0, *MAR0 ; In parallel MR0 = X4
MMOV32 MR1, *MAR1 ; MR1 = Y4
MMPYF32 MR2, MR0, MR1 ; MR2 = E = X4 * Y4
|| MADDF32 MR3, MR3, MR2 ; in parallel MR3 = (A + B + C) + D
MADDF32 MR3, MR3, MR2 ; MR3 = (A + B + C + D) + E
MMOV32 @_Result, MR3 ; Store the result MSTOP ; end of task
See also
MMOV32 mem32, MSTF
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 933
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0111 0100 addr
Description
Copy the CLA floating-point status register, MSTF, to memory.
[mem32] = MSTF;
Flags
This instruction does not modify flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
One of the uses of this instruction is to save off the return PC (RPC) prior to calling a
function. The decision to jump to a function is made when the MCCNDD is in the decode2
(D2) phase of the pipeline; the RPC is also updated in this phase. The actual jump occurs
3 cycles later when MCCNDD enters the execution (E) phase. You must save the old RPC
before MCCNDD updates in the D2 phase; that is, save MSTF 3 instructions prior to the
function call.
Example
The following example illustrates the pipeline flow for the context save (of the flags and
RPC) prior to a function call. The first column in the comments shows the pipeline stages
for the MMOV32 instruction while the second column pertains to the MCCNDD instruction.
See also
MMOV32 mem32, MRa
934 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 00cn dfaa addr
Description
If the condition is true, then move the 32-bit value referenced by mem32 to the floating-
point register indicated by MRa.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
if(CNDF == UNCF)
{
NF = MRa(31);
ZF = 0;
if(MRa(30:23) == 0) { ZF = 1; NF = 0; }
}
else No flags modified;
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 935
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Pipeline
This is a single-cycle instruction.
Example
; Given A, B, X, M1 and M2 are 32-bit floating-point numbers
;
; if(A == B) calculate Y = X*M1
; if(A! = B) calculate Y = X*M2
;
_Cla1Task5:
MMOV32 MR0, @_A
MMOV32 MR1, @_B
MCMPF32 MR0, MR1
MMOV32 MR2, @_M1, EQ ; if A == B, MR2 = M1
; Y = M1*X
MMOV32 MR2, @_M2, NEQ ; if A! = B, MR2 = M2
; Y = M2*X
MMOV32 MR3, @_X
MMPYF32 MR3, MR2, MR3 ; Calculate Y
MMOV32 @_Y, MR3 ; Store Y
MSTOP ; end of task
See also
MMOV32 MRa, MRb {, CNDF}
MMOVD32 MRa, mem32
936 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 cndf bbaa
MSW: 0111 1010 1100 0000
Description
If the condition is true, then move the 32-bit value in MRb to the floating-point register
indicated by MRa.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
if(CNDF == UNCF)
{
NF = MRa(31); ZF = 0;
if(MRa(30:23) == 0) {ZF = 1; NF = 0;}
}
else No flags modified;
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 937
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Pipeline
This is a single-cycle instruction.
Example
; Given: X = 8.0
; Y = 7.0
; A = 2.0
; B = 5.0
; _ClaTask1
MMOV32 MR3, @_X ; MR3 = X = 8.0
MMOV32 MR0, @_Y ; MR0 = Y = 7.0
MMAXF32 MR3, MR0 ; ZF = 0, NF = 0, MR3 = 8.0
MMOV32 MR1, @_A, GT ; true, MR1 = A = 2.0
MMOV32 MR1, @_B, LT ; false, does not load MR1
MMOV32 MR2, MR1, GT ; true, MR2 = MR1 = 2.0
MMOV32 MR2, MR0, LT ; false, does not load MR2
MSTOP
See also
MMOV32 MRa, mem32 {,CNDF}
938 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0111 0000 addr
Description
Move from memory to the CLA's status register MSTF. This instruction is most useful
when nesting function calls (using MCCNDD).
MSTF = [mem32];
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified Yes Yes Yes Yes Yes
Loading the status register can overwrite all flags and the RPC field. The MEALLOW field
is not affected.
Pipeline
This is a single-cycle instruction.
See also
MMOV32 mem32, MSTF
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 939
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0100 00aa addr
Description
Move the 32-bit value referenced by mem32 to the floating-point register indicated by
MRa.
MRa = [mem32];
[mem32+2] = [mem32];
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
NF = MRa(31);
ZF = 0;
if(MRa(30:23) == 0){ ZF = 1; NF = 0; }
Pipeline
This is a single-cycle instruction.
940 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example
; sum = X0*B0 + X1*B1 + X2*B2 + Y1*A1 + Y2*B2
;
; X2 = X1
; X1 = X0
; Y2 = Y1
; Y1 = sum
;
_Cla1Task2:
MMOV32 MR0, @_B2 ; MR0 = B2
MMOV32 MR1, @_X2 ; MR1 = X2
MMPYF32 MR2, MR1, MR0 ; MR2 = X2*B2
|| MMOV32 MR0, @_B1 ; MR0 = B1
MMOVD32 MR1, @_X1 ; MR1 = X1, X2 = X1
MMPYF32 MR3, MR1, MR0 ; MR3 = X1*B1
|| MMOV32 MR0, @_B0 ; MR0 = B0
MMOVD32 MR1, @_X0 ; MR1 = X0, X1 = X0
; MR3 = X1*B1 + X2*B2, MR2 = X0*B0
; MR0 = A2
MMACF32 MR3, MR2, MR2, MR1, MR0
|| MMOV32 MR0, @_A2
See also
MMOV32 MRa, mem32 {,CNDF}
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 941
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands
This instruction is an alias for the MMOVIZ and MMOVXI instructions. The second
operand is translated by the assembler such that the instruction becomes:
Opcode
LSW: IIII IIII IIII IIII (opcode of MMOVIZ MRa, #16FHiHex)
MSW: 0111 1000 0100 00aa
LSW: IIII IIII IIII IIII (opcode of MMOVXI MRa, #16FLoHex)
MSW: 0111 1000 1000 00aa
Description
This instruction accepts the immediate operand only in floating-point representation. To
specify the immediate value as a hex value (IEEE 32-bit floating- point format), use the
MOVI32 MRa, #32FHex instruction.
Load the 32-bits of MRa with the immediate float value represented by #32F.
#32F is a float value represented in floating-point representation. The assembler only
accepts a float value represented in floating-point representation. That is, 3.0 can only be
represented as #3.0 (#0x40400000 results in an error).
MRa = #32F;
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
Depending on #32F, this instruction takes one or two cycles. If all of the lower 16-bits
of the IEEE 32-bit floating-point format of #32F are zeros, then the assembler converts
MMOVF32 into only an MMOVIZ instruction. If the lower 16-bits of the IEEE 32-bit
floating-point format of #32F are not zeros, then the assembler converts MMOVF32 into
MMOVIZ and MMOVXI instructions.
Example
MMOVF32 MR1, #3.0 ; MR1 = 3.0 (0x40400000)
; Assembler converts this instruction as
; MMOVIZ MR1, #0x4040
MMOVF32 MR2, #0.0 ; MR2 = 0.0 (0x00000000)
; Assembler converts this instruction as
; MMOVIZ MR2, #0x0
MMOVF32 MR3, #12.265 ; MR3 = 12.625 (0x41443D71)
; Assembler converts this instruction as
; MMOVIZ MR3, #0x4144
; MMOVXI MR3, #0x3D71
942 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
See also
MMOVIZ MRa, #16FHi
MMOVXI MRa, #16FLoHex
MMOVI32 MRa, #32FHex
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 943
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: IIII IIII IIII IIII (opcode of MMOVI16 MAR0, #16I)
MSW: 0111 1111 1100 0000
LSW: IIII IIII IIII IIII (opcode of MMOVI16 MAR1, #16I)
MSW: 0111 1111 1110 0000
Description
Load the auxiliary register, MAR0 or MAR1, with a 16-bit immediate value. Refer to the
Pipeline section for important information regarding this instruction.
MARx = #16I;
Flags
This instruction does not modify flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction. The immediate load of MAR0 or MAR1 occurs in
the EXE phase of the pipeline. Any post increment of MAR0 or MAR1 using indirect
addressing occurs in the D2 phase of the pipeline. Therefore, the following applies when
loading the auxiliary registers:
• I1 and I2
The two instructions following MMOVI16 use MAR0 or MAR1 before the update
occurs. Thus, these two instructions use the old value of MAR0 or MAR1.
• I3
Loading of an auxiliary register occurs in the EXE phase while updates due to post-
increment addressing occur in the D2 phase. Thus, I3 cannot use the auxiliary register
or there is a conflict. In the case of a conflict, the update due to address-mode post
increment, the auxiliary register is not updated with #_X.
• I4
Starting with the 4th instruction, MAR0 or MAR1 is the new value loaded with
MMOVI16.
944 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 945
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
This instruction is an alias for the MMOVIZ and MMOVXI instructions. The second
operand is translated by the assembler such that the instruction becomes:
Opcode
LSW: IIII IIII IIII IIII (opcode of MMOVIZ MRa, #16FHiHex)
MSW: 0111 1000 0100 00aa
LSW: IIII IIII IIII IIII (opcode of MMOVXI MRa, #16FLoHex)
MSW: 0111 1000 1000 00aa
Description
This instruction only accepts a hex value as the immediate operand. To specify the
immediate value with a floating-point representation, use the MMOVF32 MRa, #32F
instruction.
Load the 32-bits of MRa with the immediate 32-bit hex value represented by #32FHex.
#32FHex is a 32-bit immediate hex value that represents the IEEE 32-bit floating-point
value of a floating-point number. The assembler only accepts a hex immediate value. That
is, 3.0 can only be represented as #0x40400000 (#3.0 results in an error).
MRa = #32FHex;
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
Depending on #32FHex, this instruction takes one or two cycles. If all of the lower 16-bits
of #32FHex are zeros, then the assembler converts MOVI32 to an MMOVIZ instruction.
If the lower 16-bits of #32FHex are not zeros, then the assembler converts MOVI32 to
MMOVIZ and MMOVXI instructions.
946 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example
MOVI32 MR1, #0x40400000 ; MR1 = 0x40400000
; Assembler converts this instruction as
; MMOVIZ MR1, #0x4040
MOVI32 MR2, #0x00000000 ; MR2 = 0x00000000
; Assembler converts this instruction as
; MMOVIZ MR2, #0x0
MOVI32 MR3, #0x40004001 ; MR3 = 0x40004001
; Assembler converts this instruction as
; MMOVIZ MR3, #0x4000
; MMOVXI MR3, #0x4001
MOVI32 MR0, #0x00004040 ; MR0 = 0x00004040
; Assembler converts this instruction as
; MMOVIZ MR0, #0x0000
; MMOVXI MR0, #0x4040
See also
MMOVIZ MRa, #16FHi
MMOVXI MRa, #16FLoHex
MMOVF32 MRa, #32F
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 947
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 1000 0100 00aa
Description
Load the upper 16-bits of MRa with the immediate value #16FHi and clear the low 16-bits
of MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE
32-bit floating-point value. The low 16-bits of the mantissa are assumed to be all 0.
The assembler only accepts a decimal or hex immediate value. That is, -1.5 can be
represented as #-1.5 or #0xBFC0.
MMOVIZ is useful for loading a floating-point register with a constant in which the lowest
16-bits of the mantissa are 0. Some examples are 2.0 (0x40000000), 4.0 (0x40800000),
0.5 (0x3F000000), and -1.5 (0xBFC00000). If a constant requires all 32-bits of a floating-
point register to be initialized, then use MMOVIZ along with the MMOVXI instruction.
MRa(31:16) = #16FHi;
MRa(15:0) = 0;
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
; Load MR0 and MR1 with -1.5 (0xBFC00000)
MMOVIZ MR0, #0xBFC0 ; MR0 = 0xBFC00000 (1.5)
MMOVIZ MR1, #-1.5 ; MR1 = -1.5 (0xBFC00000)
; Load MR2 with pi = 3.141593 (0x40490FDB)
MMOVIZ MR2, #0x4049 ; MR2 = 0x40490000
MMOVXI MR2, #0x0FDB ; MR2 = 0x40490FDB
See also
MMOVF32 MRa, #32F
MMOVI32 MRa, #32FHex
MMOVXI MRa, #16FLoHex
948 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0101 10aa addr
Description
Move the 16-bit value referenced by mem16 to the floating-point register indicated by
MRa.
MRa(31:16) = 0;
MRa(15:0) = [mem16];
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = 0;
if (MRa(31:0)== 0) { ZF = 1; }
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 949
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 1000 1000 00aa
Description
Load the lower 16-bits of MRa with the immediate value #16FLoHex. #16FLoHex
represents the lower 16-bits of an IEEE 32-bit floating-point value. The upper 16-bits of
MRa are not modified. MMOVXI can be combined with the MMOVIZ instruction to initialize
all 32-bits of a MRa register.
MRa(15:0) = #16FLoHex;
MRa(31:16) = Unchanged;
Pipeline
This is a single-cycle instruction.
Example
; Load MR0 with pi = 3.141593 (0x40490FDB)
MMOVIZ MR0,#0x4049 ; MR0 = 0x40490000
MMOVXI MR0,#0x0FDB ; MR0 = 0x40490FDB
See also
MMOVIZ MRa, #16FHi
950 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 00cc bbaa
MSW: 0111 1100 0000 0000
Description
Multiply the contents of two floating-point registers.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
Example
; Calculate Num/Den using a Newton-Raphson algorithum for 1/Den
; Ye = Estimate(1/X)
; Ye = Ye*(2.0 - Ye*X)
; Ye = Ye*(2.0 - Ye*X)
;
_Cla1Task1:
MMOV32 MR1, @_Den ; MR1 = Den
MEINVF32 MR2, MR1 ; MR2 = Ye = Estimate(1/Den)
MMPYF32 MR3, MR2, MR1 ; MR3 = Ye*Den
MSUBF32 MR3, #2.0, MR3 ; MR3 = 2.0 - Ye*Den
MMPYF32 MR2, MR2, MR3 ; MR2 = Ye = Ye*(2.0 - Ye*Den)
MMPYF32 MR3, MR2, MR1 ; MR3 = Ye*Den
|| MMOV32 MR0, @_Num ; MR0 = Num
MSUBF32 MR3, #2.0, MR3 ; MR3 = 2.0 - Ye*Den
MMPYF32 MR2, MR2, MR3 ; MR2 = Ye = Ye*(2.0 - Ye*Den)
|| MMOV32 MR1, @_Den ; Reload Den To Set Sign
MNEGF32 MR0, MR0, EQ ; if(Den == 0.0) Change Sign Of Num
MMPYF32 MR0, MR2, MR0 ; MR0 = Y = Ye*Num
MMOV32 @_Dest, MR0 ; Store result
MSTOP ; end of task
See also
MMPYF32 MRa, #16FHi, MRb
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
MMACF32 MR3, MR2, MRd, MRe, MRf || MMOV32 MRa, mem32
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 951
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 0111 1000 bbaa
Description
Multiply MRb with the floating-point value represented by the immediate operand. Store
the result of the addition in MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The lower 16-bits of the mantissa are assumed to be all 0. #16FHi
is most useful for representing constants where the lowest 16-bits of the mantissa are
0. Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and -1.5
(0xBFC00000). The assembler accepts either a hex or float as the immediate value. That
is, the value -1.5 can be represented as #-1.5 or #0xBFC0.
Flags
This instruction modifies the following flags in the MSTF register:.
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
Example 1
; Same as example 2 but #16FHi is represented in float
MMOVIZ MR3, #2.0 ; MR3 = 2.0 (0x40000000)
MMPYF32 MR0, #3.0, MR3 ; MR0 = 3.0 * MR3 = 6.0 (0x40C00000)
MMOV32 @_X, MR0 ; Save the result in variable X
Example 2
; Same as example 1 but #16FHi is represented in Hex
MMOVIZ MR3, #2.0 ; MR3 = 2.0 (0x40000000)
MMPYF32 MR0, #0x4040, MR3 ; MR0 = 0x4040 * MR3 = 6.0 (0x40C00000)
MMOV32 @_X, MR0 ; Save the result in variable X
952 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example 3
; Given X, M, and B are IQ24 numbers:
; X = IQ24(+2.5) = 0x02800000
; M = IQ24(+1.5) = 0x01800000
; B = IQ24(-0.5) = 0xFF800000
;
; Calculate Y = X * M + B
;
;
_Cla1Task2:
;
; Convert M, X, and B from IQ24 to float
MI32TOF32 MR0, @_M ; MR0 = 0x4BC00000
MI32TOF32 MR1, @_X ; MR1 = 0x4C200000
MI32TOF32 MR2, @_B ; MR2 = 0xCB000000
MMPYF32 MR0, MR0, #0x3380 ; M = 1/(1*2^24) * iqm = 1.5 (0x3FC00000)
MMPYF32 MR1, MR1, #0x3380 ; X = 1/(1*2^24) * iqx = 2.5 (0x40200000)
MMPYF32 MR2, MR2, #0x3380 ; B = 1/(1*2^24) * iqb = -.5 (0xBF000000)
MMPYF32 MR3, MR0, MR1 ; M*X
MADDF32 MR2, MR2, MR3 ; Y=MX+B = 3.25 (0x40500000)
; Convert Y from float32 to IQ24
MMPYF32 MR2, MR2, #0x4B80 ; Y * 1*2^24
MF32TOI32 MR2, MR2 ; IQ24(Y) = 0x03400000
MMOV32 @_Y, MR2 ; store result
MSTOP ; end of task
See also
MMPYF32 MRa, MRb, #16FHi
MMPYF32 MRa, MRb, MRc
MMPYF32 MRa, MRb, MRc || MADDF32 MRd, MRe, MRf
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 953
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 0111 1000 bbaa
Description
Multiply MRb with the floating-point value represented by the immediate operand. Store
the result of the addition in MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0. #16FHi is
most useful for representing constants where the lowest 16-bits of the mantissa are 0.
Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and -1.5
(0xBFC00000). The assembler accepts either a hex or float as the immediate value. That
is, the value -1.5 can be represented as #-1.5 or #0xBFC0.
Flags
This instruction modifies the following flags in the MSTF register:.
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
Example 1
;Same as example 2 but #16FHi is represented in float
MMOVIZ MR3, #2.0 ; MR3 = 2.0 (0x40000000)
MMPYF32 MR0, MR3, #3.0 ; MR0 = MR3 * 3.0 = 6.0 (0x40C00000)
MMOV32 @_X, MR0 ; Save the result in variable X
Example 2
;Same as example 1 but #16FHi is represented in Hex
MMOVIZ MR3, #2.0 ; MR3 = 2.0 (0x40000000)
MMPYF32 MR0, MR3, #0x4040 ; MR0 = MR3 * 0x4040 = 6.0 (0x40C00000)
MMOV32 @_X, MR0 ; Save the result in variable X
954 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example 3
; Given X, M, and B are IQ24 numbers:
; X = IQ24(+2.5) = 0x02800000
; M = IQ24(+1.5) = 0x01800000
; B = IQ24(-0.5) = 0xFF800000
;
; Calculate Y = X * M + B
;
_Cla1Task2:
;
; Convert M, X, and B from IQ24 to float
MI32TOF32 MR0, @_M ; MR0 = 0x4BC00000
MI32TOF32 MR1, @_X ; MR1 = 0x4C200000
MI32TOF32 MR2, @_B ; MR2 = 0xCB000000
MMPYF32 MR0, #0x3380, MR0 ; M = 1/(1*2^24) * iqm = 1.5 (0x3FC00000)
MMPYF32 MR1, #0x3380, MR1 ; X = 1/(1*2^24) * iqx = 2.5 (0x40200000)
MMPYF32 MR2, #0x3380, MR2 ; B = 1/(1*2^24) * iqb = -.5 (0xBF000000)
MMPYF32 MR3, MR0, MR1 ; M*X
MADDF32 MR2, MR2, MR3 ; Y=MX+B = 3.25 (0x40500000)
; Convert Y from float32 to IQ24
MMPYF32 MR2, #0x4B80, MR2 ; Y * 1*2^24
MF32TOI32 MR2, MR2 ; IQ24(Y) = 0x03400000
MMOV32 @_Y, MR2 ; store result
MSTOP ; end of task
See also
MMPYF32 MRa, #16FHi, MRb
MMPYF32 MRa, MRb, MRc
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 955
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands MRa CLA floating-point destination register for MMPYF32 (MR0 to MR3)
MRa cannot be the same register as MRd
MRb CLA floating-point source register for MMPYF32 (MR0 to MR3)
MRc CLA floating-point source register for MMPYF32 (MR0 to MR3)
MRd CLA floating-point destination register for MADDF32 (MR0 to MR3)
MRd cannot be the same register as MRa
MRe CLA floating-point source register for MADDF32 (MR0 to MR3)
MRf CLA floating-point source register for MADDF32 (MR0 to MR3)
Opcode
LSW: 0000 ffee ddcc bbaa
MSW: 0111 1010 0000 0000
Description
Multiply the contents of two floating-point registers with parallel addition of two registers.
Restrictions
The destination register for the MMPYF32 and the MADDF32 must be unique. That is,
MRa cannot be the same register as MRd.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
Both MMPYF32 and MADDF32 complete in a single cycle.
956 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example
; Perform 5 multiply and accumulate operations:
;
; X and Y are 32-bit floating-point arrays
;
; 1st multiply: A = X0 * Y0
; 2nd multiply: B = X1 * Y1
; 3rd multiply: C = X2 * Y2
; 4th multiply: D = X3 * Y3
; 5th multiply: E = X3 * Y3
;
; Result = A + B + C + D + E
;
_Cla1Task1:
MMOVI16 MAR0, #_X ; MAR0 points to X array
MMOVI16 MAR1, #_Y ; MAR1 points to Y array
MNOP ; Delay for MAR0, MAR1 load
MNOP ; Delay for MAR0, MAR1 load
; <-- MAR0 valid
MMOV32 MR0, *MAR0[2]++ ; MR0 = X0, MAR0 += 2
; <-- MAR1 valid
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y0, MAR1 += 2
MMPYF32 MR2, MR0, MR1 ; MR2 = A = X0 * Y0
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X1, MAR0 += 2
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y1, MAR1 += 2
MMPYF32 MR3, MR0, MR1 ; MR3 = B = X1 * Y1
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X2, MAR0 += 2
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y2, MAR2 += 2
MMACF32 MR3, MR2, MR2, MR0, MR1 ; MR3 = A + B, MR2 = C = X2 * Y2
|| MMOV32 MR0, *MAR0[2]++ ; In parallel MR0 = X3
MMOV32 MR1, *MAR1[2]++ ; MR1 = Y3
MMACF32 MR3, MR2, MR2, MR0, MR1 ; MR3 = (A + B) + C, MR2 = D = X3 * Y3
|| MMOV32 MR0, *MAR0 ; In parallel MR0 = X4
MMOV32 MR1, *MAR1 ; MR1 = Y4
MMPYF32 MR2, MR0, MR1 ; MR2 = E = X4 * Y4
|| MADDF32 MR3, MR3, MR2 ; in parallel MR3 = (A + B + C) + D
See also
MMACF32 MR3, MR2, MRd, MRe, MRf || MMOV32 MRa, mem32
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 957
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands MRd CLA floating-point destination register for MMPYF32 (MR0 to MR3)
MRd cannot be the same register as MRa
MRe CLA floating-point source register for MMPYF32 (MR0 to MR3)
MRf CLA floating-point source register for MMPYF32 (MR0 to MR3)
MRa CLA floating-point destination register for MMOV32 (MR0 to MR3)
MRa cannot be the same register as MRd
mem32 32-bit memory location accessed using one of the available
addressing modes. This is the source of MMOV32.
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0000 ffee ddaa addr
Description
Multiply the contents of two floating-point registers and load another.
Restrictions
The destination register for the MMPYF32 and the MMOV32 must be unique. That is,
MRa cannot be the same register as MRd.
Flags
This instruction modifies the following flags in the MSTF register:.
Flag TF ZF NF LUF LVF
Modified No Yes Yes Yes Yes
NF = MRa(31);
ZF = 0;
if(MRa(30:23) == 0) { ZF = 1; NF = 0; }
Pipeline
Both MMPYF32 and MMOV32 complete in a single cycle.
Example 1
; Given M1, X1, and B1 are 32-bit floating point
; Calculate Y1 = M1*X1+B1
;
_Cla1Task1:
MMOV32 MR0, @M1 ; Load MR0 with M1
MMOV32 MR1, @X1 ; Load MR1 with X1
MMPYF32 MR1, MR1, MR0 ; Multiply M1*X1
|| MMOV32 MR0, @B1 ; and in parallel load MR0 with B1
MADDF32 MR1, MR1, MR0 ; Add M*X1 to B1 and store in MR1
MMOV32 @Y1, MR1 ; Store the result
MSTOP ; end of task
958 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Example 2
; Given A, B, and C are 32-bit floating-point numbers
; Calculate Y2 = (A * B)
; Y3 = (A * B) * C
;
_Cla1Task2:
MMOV32 MR0, @A ; Load MR0 with A
MMOV32 MR1, @B ; Load MR1 with B
MMPYF32 MR1, MR1, MR0 ; Multiply A*B
|| MMOV32 MR0, @C ; and in parallel load MR0 with C
MMPYF32 MR1, MR1, MR0 ; Multiply (A*B) by C
|| MMOV32 @Y2, MR1 ; and in parallel store A*B
MMOV32 @Y3, MR1 ; Store the result
MSTOP ; end of task
See also
MMPYF32 MRd, MRe, MRf || MMOV32 mem32, MRa
MMACF32 MR3, MR2, MRd, MRe, MRf || MMOV32 MRa, mem32
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 959
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands MRd CLA floating-point destination register for MMPYF32 (MR0 to MR3)
MRe CLA floating-point source register for MMPYF32 (MR0 to MR3)
MRf CLA floating-point source register for MMPYF32 (MR0 to MR3)
mem32 32-bit memory location accessed using one of the available
addressing modes. This is the destination of MMOV32.
MRa CLA floating-point source register for MMOV32 (MR0 to MR3)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0100 ffee ddaa addr
Description
Multiply the contents of two floating-point registers and move from memory to register.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
MMPYF32 and MMOV32 both complete in a single cycle.
Example
; Given A, B, and C are 32-bit floating-point numbers
; Calculate Y2 = (A * B)
; Y3 = (A * B) * C
;
_Cla1Task2:
MMOV32 MR0, @A ; Load MR0 with A
MMOV32 MR1, @B ; Load MR1 with B
MMPYF32 MR1, MR1, MR0 ; Multiply A*B
|| MMOV32 MR0, @C ; and in parallel load MR0 with C
MMPYF32 MR1, MR1, MR0 ; Multiply (A*B) by C
|| MMOV32 @Y2, MR1 ; and in parallel store A*B
MMOV32 @Y3, MR1 ; Store the result
MSTOP ; end of task
See also
MMPYF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MMACF32 MR3, MR2, MRd, MRe, MRf || MMOV32 MRa, mem32
960 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Operands MRa CLA floating-point destination register for MMPYF32 (MR0 to MR3)
MRa cannot be the same register as MRd
MRb CLA floating-point source register for MMPYF32 (MR0 to MR3)
MRc CLA floating-point source register for MMPYF32 (MR0 to MR3)
MRd CLA floating-point destination register for MSUBF32 (MR0 to MR3)
MRd cannot be the same register as MRa
MRe CLA floating-point source register for MSUBF32 (MR0 to MR3)
MRf CLA floating-point source register for MSUBF32 (MR0 to MR3)
Opcode
LSW: 0000 ffee ddcc bbaa
MSW: 0111 1010 0100 0000
Description
Multiply the contents of two floating-point registers with parallel subtraction of two
registers.
Restrictions
The destination register for the MMPYF32 and the MSUBF32 must be unique. That is,
MRa cannot be the same register as MRd.
Flags
This instruction modifies the following flags in the MSTF register:.
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Example
; Given A, B, and C are 32-bit floating-point numbers
; Calculate Y2 = (A * B)
; Y3 = (A - B)
;
_Cla1Task2:
MMOV32 MR0, @A ; Load MR0 with A
MMOV32 MR1, @B ; Load MR1 with B
MMPYF32 MR2, MR0, MR1 ; Multiply (A*B)
|| MSUBF32 MR3, MR0, MR1 ; and in parallel Sub (A-B)
MMOV32 @Y2, MR2 ; Store A*B
MMOV32 @Y3, MR3 ; Store A-B
MSTOP ; end of task
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 961
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
See also
MSUBF32 MRa, MRb, MRc
MSUBF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MSUBF32 MRd, MRe, MRf || MMOV32 mem32, MRa
962 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Conditional Negation
Opcode
LSW: 0000 0000 cndf bbaa
MSW: 0111 1010 1000 0000
Description
if (CNDF == true) {MRa = - MRb; }
else {MRa = MRb; }
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 963
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Conditional Negation
Example 1
; Show the basic operation of MNEGF32
;
MMOVIZ MR0, #5.0 ; MR0 = 5.0 (0x40A00000)
MMOVIZ MR1, #4.0 ; MR1 = 4.0 (0x40800000)
MMOVIZ MR2, #-1.5 ; MR2 = -1.5 (0xBFC00000)
MMPYF32 MR3, MR1, MR2 ; MR3 = -6.0
MMPYF32 MR0, MR0, MR1 ; MR0 = 20.0
MMOVIZ MR1, #0.0
MCMPF32 MR3, MR1 ; NF = 1
MNEGF32 MR3, MR3, LT ; if NF = 1, MR3 = 6.0
MCMPF32 MR0, MR1 ; NF = 0
MNEGF32 MR0, MR0, GEQ ; if NF = 0, MR0 = -20.0
Example 2
; Calculate Num/Den using a Newton-Raphson algorithum for 1/Den
; Ye = Estimate(1/X)
; Ye = Ye*(2.0 - Ye*X)
; Ye = Ye*(2.0 - Ye*X)
;
_Cla1Task1:
MMOV32 MR1, @_Den ; MR1 = Den
MEINVF32 MR2, MR1 ; MR2 = Ye = Estimate(1/Den)
MMPYF32 MR3, MR2, MR1 ; MR3 = Ye*Den
MSUBF32 MR3, #2.0, MR3 ; MR3 = 2.0 - Ye*Den
MMPYF32 MR2, MR2, MR3 ; MR2 = Ye = Ye*(2.0 - Ye*Den)
MMPYF32 MR3, MR2, MR1 ; MR3 = Ye*Den
|| MMOV32 MR0, @_Num ; MR0 = Num
MSUBF32 MR3, #2.0, MR3 ; MR3 = 2.0 - Ye*Den
MMPYF32 MR2, MR2, MR3 ; MR2 = Ye = Ye*(2.0 - Ye*Den)
|| MMOV32 MR1, @_Den ; Reload Den To Set Sign
MNEGF32 MR0, MR0, EQ ; if(Den == 0.0) Change Sign Of Num
MMPYF32 MR0, MR2, MR0 ; MR0 = Y = Ye*Num
MMOV32 @_Dest, MR0 ; Store result
MSTOP ; end of task
See also
MABSF32 MRa, MRb
964 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
MNOP
No Operation
Opcode
LSW: 0000 0000 0000 0000
MSW: 0111 1111 1010 0000
Description
Do nothing. This instruction is used to fill required pipeline delay slots when other
instructions are not available to fill the slots.
Flags
This instruction does not modify flags in the MSTF register.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
; X is an array of 32-bit floating-point values
; Find the maximum value in an array X
; and store the value in Result
;
_Cla1Task1:
MMOVI16 MAR1,#_X ; Start address
MUI16TOF32 MR0, @_len ; Length of the array
MNOP ; delay for MAR1 load
MNOP ; delay for MAR1 load
MMOV32 MR1, *MAR1[2]++ ; MR1 = X0
LOOP
MMOV32 MR2, *MAR1[2]++ ; MR2 = next element
MMAXF32 MR1, MR2 ; MR1 = MAX(MR1, MR2)
MADDF32 MR0, MR0, #-1.0 ; Decrememt the counter
MCMPF32 MR0 #0.0 ; Set/clear flags for MBCNDD
MNOP ; Too late to affect MBCNDD
MNOP ; Too late to affect MBCNDD
MNOP ; Too late to affect MBCNDD
MBCNDD LOOP, NEQ ; Branch if not equal to zero
MMOV32 @_Result, MR1 ; Always executed
MNOP ; Pad to seperate MBCNDD and MSTOP
MNOP ; Pad to seperate MBCNDD and MSTOP
MSTOP ; End of task
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 965
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Bitwise OR
Opcode
LSW: 0000 0000 00cc bbaa
MSW: 0111 1100 1000 0000
Description
Bitwise OR of MRb with MRc.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1; }
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0,
#0x5555 ; MR0 = 0x5555AAAA
MMOVXI MR0,
#0xAAAA
MMOVIZ MR1,
#0x5432 ; MR1 = 0x5432FEDC
MMOVXI MR1,
#0xFEDC
; 0101 OR 0101 = 0101 (5)
; 0101 OR 0100 = 0101 (5)
; 0101 OR 0011 = 0111 (7)
; 0101 OR 0010 = 0111 (7)
; 1010 OR 1111 = 1111 (F)
; 1010 OR 1110 = 1110 (E)
; 1010 OR 1101 = 1111 (F)
; 1010 OR 1100 = 1110 (E)
MOR32 MR2, MR1, MR0 ; MR3 = 0x5555FEFE
See also
MAND32 MRa, MRb, MRc
MXOR32 MRa, MRb, MRc
966 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
MRCNDD {CNDF}
Opcode
LSW: 0000 0000 0000 0000
MSW: 0111 1001 1010 cndf
Description
If the specified condition is true, then the RPC field of MSTF is loaded into MPC and
fetching continues from that location. Otherwise, program fetches continue without the
return.
Refer to the Pipeline section for important information regarding this instruction.
Flags
This instruction does not modify flags in the MSTF register.
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
The MRCNDD instruction is a single-cycle instruction. As shown in Table 7-19, 6
instruction slots are executed for each return; 3 slots before the return instruction (d5-d7)
and 3 slots after the return instruction (d8-d10). The total number of cycles for a return
taken or not taken depends on the usage of these slots. That is, the number of cycles
depends on how many slots are filled with a MNOP as well as which slots are filled.
The effective number of cycles for a return can, therefore, range from 1 to 7 cycles. The
number of cycles for a return taken cannot be the same as for a return not taken.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 967
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Referring to the following code fragment and the pipeline diagrams in Table 7-19 and
Table 7-20, the instructions before and after MRCNDD have the following properties:
;
;
<Instruction 1> ; I1 Last instruction that can affect flags for
; the MCCNDD operation
<Instruction 2> ; I2 Cannot be stop, branch, call or return
<Instruction 3> ; I3 Cannot be stop, branch, call or return
<Instruction 4> ; I4 Cannot be stop, branch, call or return
MCCNDD _func, NEQ ; Call to func if not eqal to zero
; Three instructions after MCCNDD are always
; executed whether the call is taken or not
<Instruction 5> ; I5 Cannot be stop, branch, call or return
<Instruction 6> ; I6 Cannot be stop, branch, call or return
<Instruction 7> ; I7 Cannot be stop, branch, call or return
<Instruction 8> ; I8 The address of this instruction is saved
; in the RPC field of the MSTF register.
; Upon return this value is loaded into MPC
; and fetching continues from this point.
<Instruction 9> ; I9
<Instruction 10> ; I10
....
....
_func:
<Destination 1> ; d1 Can be any instruction
<Destination 2> ; d2
<Destination 3> ; d3
<Destination 4> ; d4 Last instruction that can affect flags for
; the MRCNDD operation
<Destination 5> ; d5 Cannot be stop, branch, call or return
<Destination 6> ; d6 Cannot be stop, branch, call or return
<Destination 7> ; d7 Cannot be stop, branch, call or return
MRCNDD NEQ ; Return to <Instruction 8> if not equal to zero
; Three instructions after MRCNDD are always
; executed whether the return is taken or not
<Destination 8> ; d8 Cannot be stop, branch, call or return
<Destination 9> ; d9 Cannot be stop, branch, call or return
<Destination 10> ; d10 Cannot be stop, branch, call or return
<Destination 11> ; d11
<Destination 12> ; d12
....
....
MSTOP
....
• d4
– d4 is the last instruction that can effect the CNDF flags for the MRCNDD instruction.
The CNDF flags are tested in the D2 phase of the pipeline. That is, a decision is
made whether to return or not when MRCNDD is in the D2 phase.
– There are no restrictions on the type of instruction for d4.
• d5, d6, and d7
– The three instructions proceeding MRCNDD can change MSTF flags but have no
effect on whether the MRCNDD instruction makes the return or not. This is because
the flag modification occurs after the D2 phase of the MRCNDD instruction.
– These instructions must not be the following: MSTOP, MDEBUGSTOP, MBCNDD,
MCCNDD, or MRCNDD.
• d8, d9, and d10
– The three instructions following MRCNDD are always executed irrespective of
whether the return is taken or not.
– These instructions must not be the following: MSTOP, MDEBUGSTOP, MBCNDD,
MCCNDD, or MRCNDD.
968 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
See also
MBCNDD #16BitDest, CNDF
MCCNDD 16BitDest, CNDF
MMOV32 mem32, MSTF
MMOV32 MSTF, mem32
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 969
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands FLAG 8-bit mask indicating which floating-point status flags to change.
VALUE 8-bit mask indicating the flag value: 0 or 1.
Opcode
LSW: FFFF FFFF VVVV VVVV
MSW: 0111 1001 1100 0000
Description
The MSETFLG instruction is used to set or clear selected floating-point status flags in the
MSTF register. The FLAG field is an 11-bit value that indicates which flags are changed.
That is, if a FLAG bit is set to 1, that flag is changed; all other flags are not modified. The
bit mapping of the FLAG field is:
9 8 7 6 5 4 3 2 1 0
RNDF Reserved TF Reserved ZF NF LUF LVF
32
The VALUE field indicates the value the flag can be set to: 0 or 1.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified Yes Yes Yes Yes Yes
Any flag can be modified by this instruction. The MEALLOW and RPC fields cannot be
modified with this instruction.
Pipeline
This is a single-cycle instruction.
Example
To make it easier and legible, the assembler accepts a FLAG=VALUE syntax for the
MSTFLG operation as:
See also
MMOV32 mem32, MSTF
MMOV32 MSTF, mem32
970 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
MSTOP
Stop Task
Opcode
LSW: 0000 0000 0000 0000
MSW: 0111 1111 1000 0000
Description
The MSTOP instruction must be placed to indicate the end of each task. In addition,
placing MSTOP in unused memory locations within the CLA program RAM can be useful
for debugging and preventing run away CLA code. When MSTOP enters the D2 phase of
the pipeline, the MIRUN flag for the task is cleared and the associated interrupt is flagged
in the PIE vector table.
There are three special cases that can occur when single-stepping a task such that the
MPC reaches the MSTOP instruction.
1. If you are single-stepping or halted in "task A" and "task B" comes in before the MPC
reaches the MSTOP, then "task B" starts if you continue to step through the MSTOP
instruction. Basically, if "task B" is pending before the MPC reaches MSTOP in "task
A" then there is no issue in "task B" starting and no special action is required.
2. In this case, you have single-stepped or halted in "task A" and the MPC has reached
the MSTOP with no tasks pending. If "task B" comes in at this point, "task B" is
flagged in the MIFR register but "task B" can or cannot start if you continue to
single-step through the MSTOP instruction of "task A". It depends on exactly when the
new task comes in. To reliably start "task B", perform a soft reset and reconfigure the
MIER bits. Once this is done, you can start single-stepping "task B".
3. Case 2 can be handled slightly differently if there is control over when "task B" comes
in (for example using the IACK instruction to start the task). In this case you have
single-stepped or halted in "task A" and the MPC has reached the MSTOP with no
tasks pending. Before forcing "task B", run free to force the CLA out of the debug
state. Once this is done you can force "task B" and continue debugging.
Restrictions
The MSTOP instruction cannot be placed 3 instructions before or after a MBCNDD,
MCCNDD, or MRCNDD instruction.
Flags
This instruction does not modify flags in the MSTF register.
Flag TF ZF NF LUF LVF
Modified No No No No No
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 971
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
MSTOP (continued)
Stop Task
Pipeline
This is a single-cycle instruction. Table 7-21 shows the pipeline behavior of the MSTOP
instruction. The MSTOP instruction cannot be placed with 3 instructions of a MBCNDD,
MCCNDD, or MRCNDD instruction.
Table 7-21. Pipeline Activity for MSTOP
Instruction F1 F2 D1 D2 R1 R2 E W
I1 I1
I2 I2 I1
I3 I3 I2 I1
MSTOP MSTOP I3 I2 I1
I4 I4 MSTOP I3 I2 I1
I5 I5 I4 MSTOP I3 I2 I1
I6 I6 I5 I4 MSTOP I3 I2 I1
New Task Arbitrated and
- - - - - I3 I2
Prioritized
New Task Arbitrated and
- - - - - - I3
Prioritized
I1 I1 - - - - - -
I2 I2 I1 - - - - -
I3 I3 I2 I1 - - - -
I4 I4 I3 I2 I1 - - -
I5 I5 I4 I3 I2 I1 - -
I6 I6 I5 I4 I3 I2 I1 -
I7 I7 I6 I5 I4 I3 I2 I1
....
Example
; Given A = (int32)1
; B = (int32)2
; C = (int32)-7
;
; Calculate Y2 = A - B - C
_Cla1Task3:
MMOV32 MR0, @_A ; MR0 = 1 (0x00000001)
MMOV32 MR1, @_B ; MR1 = 2 (0x00000002)
MMOV32 MR2, @_C ; MR2 = -7 (0xFFFFFFF9)
MSUB32 MR3, MR0, MR1 ; A + B
MSUB32 MR3, MR3, MR2 ; A + B + C = 6 (0x0000006)
MMOV32 @_y2, MR3 ; Store y2
MSTOP ; End of task
See also
MDEBUGSTOP
972 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: 0000 0000 00cc bbaa
MSW: 0111 1100 1110 0000
Description
32-bit integer addition of MRb and MRc.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1; }
Pipeline
This is a single-cycle instruction.
Example
; Given A = (int32)1
; B = (int32)2
; C = (int32)-7
;
;
Calculate Y2 = A - B - C
;
_Cla1Task3:
MMOV32 MR0, @_A ; MR0 = 1 (0x00000001)
MMOV32 MR1, @_B ; MR1 = 2 (0x00000002)
MMOV32 MR2, @_C ; MR2 = -7 (0xFFFFFFF9)
MSUB32 MR3, MR0, MR1 ; A + B
MSUB32 MR3, MR3, MR2 ; A + B + C = 6 (0x0000006)
MMOV32 @_y2, MR3 ; Store y2
MSTOP ; End of task
See also
MADD32 MRa, MRb, MRc
MAND32 MRa, MRb, MRc
MASR32 MRa, #SHIFT
MLSL32 MRa, #SHIFT
MLSR32 MRa, #SHIFT
MOR32 MRa, MRb, MRc
MXOR32 MRa, MRb, MRc
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 973
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 00cc bbaa
MSW: 0111 1100 0100 0000
Description
Subtract the contents of two floating-point registers
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
Example
; Given A, B, and C are 32-bit floating-point numbers
; Calculate Y2 = A + B - C
;
_Cla1Task5:
MMOV32 MR0, @_A ; Load MR0 with A
MMOV32 MR1, @_B ; Load MR1 with B
MADDF32 MR0, MR1, MR0 ; Add A + B
|| MMOV32 MR1, @_C ; and in parallel load C
MSUBF32 MR0, MR0, MR1 ; Subtract C from (A + B)
MMOV32 @Y, MR0 ; (A+B) - C
MSTOP ; end of task
See also
MSUBF32 MRa, #16FHi, MRb
MSUBF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MSUBF32 MRd, MRe, MRf || MMOV32 mem32, MRa
MMPYF32 MRa, MRb, MRc || MSUBF32 MRd, MRe, MRf
974 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: IIII IIII IIII IIII
MSW: 0111 1000 0000 baaa
Description
Subtract MRb from the floating-point value represented by the immediate operand. Store
the result of the addition in MRa.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The lower 16-bits of the mantissa are assumed to be all 0. #16FHi
is most useful for representing constants where the lowest 16-bits of the mantissa are
0. Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and -1.5
(0xBFC00000). The assembler accepts either a hex or float as the immediate value. That
is, the value -1.5 can be represented as #-1.5 or #0xBFC0.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 975
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example
; Y = sqrt(X)
; Ye = Estimate(1/sqrt(X));
; Ye = Ye*(1.5 - Ye*Ye*X*0.5)
; Ye = Ye*(1.5 - Ye*Ye*X*0.5)
; Y = X*Ye
;
_Cla1Task3:
MMOV32 MR0, @_x ; MR0 = X
MEISQRTF32 MR1, MR0 ; MR1 = Ye = Estimate(1/sqrt(X))
MMOV32 MR1, @_x, EQ ; if(X == 0.0) Ye = 0.0
MMPYF32 MR3, MR0, #0.5 ; MR3 = X*0.5
MMPYF32 MR2, MR1, MR3 ; MR2 = Ye*X*0.5
MMPYF32 MR2, MR1, MR2 ; MR2 = Ye*Ye*X*0.5
MSUBF32 MR2, #1.5, MR2 ; MR2 = 1.5 - Ye*Ye*X*0.5
MMPYF32 MR1, MR1, MR2 ; MR1 = Ye = Ye*(1.5 - Ye*Ye*X*0.5)
MMPYF32 MR2, MR1, MR3 ; MR2 = Ye*X*0.5
MMPYF32 MR2, MR1, MR2 ; MR2 = Ye*Ye*X*0.5
MSUBF32 MR2, #1.5, MR2 ; MR2 = 1.5 - Ye*Ye*X*0.5
MMPYF32 MR1, MR1, MR2 ; MR1 = Ye = Ye*(1.5 - Ye*Ye*X*0.5)
MMPYF32 MR0, MR1, MR0 ; MR0 = Y = Ye*X
MMOV32 @_y, MR0 ; Store Y = sqrt(X)
MSTOP ; end of task
See also
MSUBF32 MRa, MRb, MRc
MSUBF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MSUBF32 MRd, MRe, MRf || MMOV32 mem32, MRa
MMPYF32 MRa, MRb, MRc || MSUBF32 MRd, MRe, MRf
976 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Operands MRd CLA floating-point destination register (MR0 to MR3) for the
MSUBF32 operation
MRd cannot be the same register as MRa
MRe CLA floating-point source register (MR0 to MR3) for the MSUBF32
operation
MRf CLA floating-point source register (MR0 to MR3) for the MSUBF32
operation
MRa CLA floating-point destination register (MR0 to MR3) for the
MMOV32 operation
MRa cannot be the same register as MRd
mem32 32-bit memory location accessed using one of the available
addressing modes. Source for the MMOV32 operation.
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0010 ffee ddaa addr
Description
Subtract the contents of two floating-point registers and move from memory to a floating-
point register.
Restrictions
The destination register for the MSUBF32 and the MMOV32 must be unique. That is,
MRa cannot be the same register as MRd.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes Yes Yes
Pipeline
Both MSUBF32 and MMOV32 complete in a single cycle.
Example
NF = MRa(31);
ZF = 0;
if(MRa(30:23) == 0) { ZF = 1; NF = 0; }
See also
MSUBF32 MRa, MRb, MRc
MSUBF32 MRa, #16FHi, MRb
MMPYF32 MRa, MRb, MRc || MSUBF32 MRd, MRe, MRf
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 977
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Operands MRd CLA floating-point destination register (MR0 to MR3) for the
MSUBF32 operation
MRe CLA floating-point source register (MR0 to MR3) for the MSUBF32
operation
MRf CLA floating-point source register (MR0 to MR3) for the MSUBF32
operation
mem32 32-bit destination memory location for the MMOV32 operation
MRa CLA floating-point source register (MR0 to MR3) for the MMOV32
operation
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0110 ffee ddaa addr
Description
Subtract the contents of two floating-point registers and move from a floating-point
register to memory.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No Yes Yes
Pipeline
Both MSUBF32 and MMOV32 complete in a single cycle.
See also
MSUBF32 MRa, MRb, MRc
MSUBF32 MRa, #16FHi, MRb
MSUBF32 MRd, MRe, MRf || MMOV32 MRa, mem32
MMPYF32 MRa, MRb, MRc || MSUBF32 MRd, MRe, MRf
978 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Conditional Swap
Opcode
LSW: 0000 0000 CNDF bbaa
MSW: 0111 1011 0000 0000
Description
Conditional swap of MRa and MRb.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No No No No No
No flags affected
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 979
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Conditional Swap
Example
; X is an array of 32-bit floating-point values
; and has length elements. Find the maximum value in
; the array and store the value in Result
;
; Note: MCMPF32 and MSWAPF can be replaced by MMAXF32
;
_Cla1Task1:
MMOVI16 MAR1,#_X ; Start address
MUI16TOF32 MR0, @_len ; Length of the array
MNOP ; delay for MAR1 load
MNOP ; delay for MAR1 load
MMOV32 MR1, *MAR1[2]++ ; MR1 = X0
LOOP
MMOV32 MR2, *MAR1[2]++ ; MR2 = next element
MCMPF32 MR2, MR1 ; Compare MR2 with MR1
MSWAPF MR1, MR2, GT ; MR1 = MAX(MR1, MR2)
MADDF32 MR0, MR0, #-1.0 ; Decrememt the counter
MCMPF32 MR0 #0.0 ; Set/clear flags for MBCNDD
MNOP
MNOP
MNOP
MBCNDD LOOP, NEQ ; Branch if not equal to zero
MMOV32 @_Result, MR1 ; Always executed
MNOP ; Always executed
MNOP ; Always executed
MSTOP ; End of task
980 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
MTESTTF CNDF
Opcode
LSW: 0000 0000 0000 cndf
MSW: 0111 1111 0100 0000
Description
Test the CLA floating-point condition and if true, set the MSTF[TF] flag. If the condition is
false, clear the MSTF[TF] flag. This is useful for temporarily storing a condition for later
use.
if (CNDF == true) TF = 1;
else TF = 0;
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified Yes No No No No
TF = 0;
if (CNDF == true) TF = 1;
Pipeline
This is a single-cycle instruction.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 981
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Example
; if (State == 0.1)
; RampState = RampState || RAMPMASK
; else if (State == 0.01)
; CoastState = CoastState || COASTMASK
; else
; SteadyState = SteadyState || STEADYMASK
;
_Cla1Task2:
MMOV32 MR0, @_State
MCMPF32 MR0, #0.1 ; Affects flags for 1st MBCNDD (A)
MCMPF32 MR0, #0.01 ; Check used by 2nd MBCNDD (B)
MTESTTF EQ ; Store EQ flag in TF for 2nd MBCNDD (B)
MNOP
MBCNDD _Skip1, NEQ ; (A) If State != 0.1, go to Skip1
MMOV32 MR1, @_RampState ; Always executed
MMOVXI MR2, #RAMPMASK ; Always executed
MOR32 MR1, MR2 ; Always executed
MMOV32 @_RampState, MR1 ; Execute if (A) branch not taken
MSTOP ; end of task if (A) branch not taken
_Skip1:
MMOV32 MR3, @_SteadyState
MMOVXI MR2, #STEADYMASK
MOR32 MR3, MR2
MBCNDD _Skip2, NTF ; (B) if State != .01, go to Skip2
MMOV32 MR1, @_CoastState ; Always executed
MMOVXI MR2, #COASTMASK ; Always executed
MOR32 MR1, MR2 ; Always executed
MMOV32 @_CoastState, MR1 ; Execute if (B) branch not taken
MSTOP ; end of task if (B) branch not taken
_Skip2:
MMOV32 @_SteadyState, MR3 ; Executed if (B) branch taken
MSTOP
982 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0101 01aa addr
Description
When converting F32 to I16/UI16 data format, the MF32TOI16/UI16 operation truncates to
zero while the MF32TOI16R/UI16R operation rounds to the nearest (even) value.
MRa = UI16TOF32[mem16];
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
See also
MF32TOI16 MRa, MRb
MF32TOI16R MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MI16TOF32 MRa, MRb
MI16TOF32 MRa, mem16
MUI16TOF32 MRa, MRb
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 983
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1110 1110 0000
Description
Convert an unsigned 16-bit integer to a 32-bit floating-point value. When converting
float32 to I16/UI16 data format, the MF32TOI16/UI16 operation truncates to zero while
the MF32TOI16R/UI16R operation rounds to the nearest (even) value.
MRa = UI16TOF32[MRb];
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVXI MR1, #0x800F ; MR1(15:0) = 32783 (0x800F)
MUI16TOF32 MR0, MR1 ; MR0 = UI16TOF32 (MR1(15:0))
; = 32783.0 (0x47000F00)
See also
MF32TOI16 MRa, MRb
MF32TOI16R MRa, MRb
MF32TOUI16 MRa, MRb
MF32TOUI16R MRa, MRb
MI16TOF32 MRa, MRb
MI16TOF32 MRa, mem16
MUI16TOF32 MRa, mem16
984 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0100 10aa addr
Description
MRa = UI32TOF32[mem32];
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
; Given x2, m2, and b2 are Uint32 numbers:
;
; x2 = Uint32(2) = 0x00000002
; m2 = Uint32(1) = 0x00000001
; b2 = Uint32(3) = 0x00000003
;
; Calculate y2 = x2 * m2 + b2
;
_Cla1Task1:
MUI32TOF32 MR0, @_m2 ; MR0 = 1.0 (0x3F800000)
MUI32TOF32 MR1, @_x2 ; MR1 = 2.0 (0x40000000)
MUI32TOF32 MR2, @_b2 ; MR2 = 3.0 (0x40400000)
MMPYF32 MR3, MR0, MR1 ; M*X
MADDF32 MR3, MR2, MR3 ; Y=MX+B = 5.0 (0x40A00000)
MF32TOUI32 MR3, MR3 ; Y = Uint32(5.0) = 0x00000005
MMOV32 @_y2, MR3 ; store result
MSTOP ; end of task
See also
MF32TOI32 MRa, MRb
MF32TOUI32 MRa, MRb
MI32TOF32 MRa, mem32
MI32TOF32 MRa, MRb
MUI32TOF32 MRa, MRb
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 985
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Opcode
LSW: 0000 0000 0000 bbaa
MSW: 0111 1101 1100 0000
Description
MRa = UI32TOF32 [MRb];
Flags
This instruction does not affect any flags:
Flag TF ZF NF LUF LVF
Modified No No No No No
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR3, #0x8000 ; MR3(31:16) = 0x8000
MMOVXI MR3, #0x1111 ; MR3(15:0) = 0x1111
; MR3 = 2147488017
MUI32TOF32 MR3, MR3 ; MR3 = MUI32TOF32 (MR3) = 2147488017.0 (0x4F000011)
See also
MF32TOI32 MRa, MRb
MF32TOUI32 MRa, MRb
MI32TOF32 MRa, mem32
MI32TOF32 MRa, MRb
MUI32TOF32 MRa, mem32
986 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Bitwise Exclusive Or
Opcode
LSW: 0000 0000 00cc bbaa
MSW: 0111 1100 1010 0000
Description
Bitwise XOR of MRb with MRc.
Flags
This instruction modifies the following flags in the MSTF register:
Flag TF ZF NF LUF LVF
Modified No Yes Yes No No
The MSTF register flags are modified based on the integer results of the operation.
NF = MRa(31);
ZF = 0;
if(MRa(31:0) == 0) { ZF = 1; }
Pipeline
This is a single-cycle instruction.
Example
MMOVIZ MR0, #0x5555 ; MR0 = 0x5555AAAA
MMOVXI MR0, #0xAAAA
MMOVIZ MR1, #0x5432 ; MR1 = 0x5432FEDC
MMOVXI MR1, #0xFEDC
; 0101 XOR 0101 = 0000 (0)
; 0101 XOR 0100 = 0001 (1)
; 0101 XOR 0011 = 0110 (6)
; 0101 XOR 0010 = 0111 (7)
; 1010 XOR 1111 = 0101 (5)
; 1010 XOR 1110 = 0100 (4)
; 1010 XOR 1101 = 0111 (7)
; 1010 XOR 1100 = 0110 (6)
MXOR32 MR2, MR1, MR0 ; MR3 = 0x01675476
See also
MAND32 MRa, MRb, MRc
MOR32 MRa, MRb, MRc
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 987
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
CLA1_ONLY_BAS
Cla1onlyRegs CLA_ONLY_REGS 0x0000_0C00 - - YES -
E
CLA_SOFTINT_R CLA1_SOFTINT_B
Cla1SoftintRegs 0x0000_0CE0 - - YES -
EGS ASE
Cla1Regs CLA_REGS CLA1_BASE 0x0000_1400 YES - - -
988 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Complex bit access types are encoded to fit into small table cells. Table 7-24 shows the codes that are used for
access types in this section.
Table 7-24. CLA_ONLY_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 989
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
i16
R-0h
990 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
MPSA2CFG MPSA2CLEAR MPSA1CLEAR MDWDBCYC MDWDBSTART MPABCYC MPABSTART
R/W-0h R-0/W1S-0h R-0/W1S-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 991
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
992 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 993
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
994 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
TASK8 TASK7 TASK6 TASK5 TASK4 TASK3 TASK2 TASK1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 995
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
996 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
TASK8 TASK7 TASK6 TASK5 TASK4 TASK3 TASK2 TASK1
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 997
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 7-32 shows the codes that are used for
access types in this section.
Table 7-32. CLA_SOFTINT_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
W1S W Write
1S 1 to set
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
998 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
TASK8 TASK7 TASK6 TASK5 TASK4 TASK3 TASK2 TASK1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 999
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1000 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
TASK8 TASK7 TASK6 TASK5 TASK4 TASK3 TASK2 TASK1
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1001
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 7-36 shows the codes that are used for
access types in this section.
Table 7-36. CLA_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
1002 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1003
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
MVECT
R/W-0h
1004 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
MVECT
R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1005
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
MVECT
R/W-0h
1006 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
MVECT
R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1007
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
MVECT
R/W-0h
1008 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
MVECT
R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1009
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
MVECT
R/W-0h
1010 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
MVECT
R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1011
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
RESERVED IACKE SOFTRESET HARDRESET
R-0h R/W-0h R-0/W1S-0h R-0/W1S-0h
1012 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
i16
R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1013
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
TASK8 TASK7 TASK6 TASK5 TASK4 TASK3 TASK2 TASK1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1014 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1015
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
RESERVED BGOVF _BGINTM RUN
R/W-0h R/W1C-0h R-0h R-0h
1016 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
RESERVED TRIGEN BGSTART
R/W-0h R/W-0h R/W1S-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1017
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
i16
R/W-0h
1018 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
INT8 INT7 INT6 INT5 INT4 INT3 INT2 INT1
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1019
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1020 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1021
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1022 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
INT8 INT7 INT6 INT5 INT4 INT3 INT2 INT1
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1023
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1024 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1025
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
INT8 INT7 INT6 INT5 INT4 INT3 INT2 INT1
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
1026 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1027
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
INT8 INT7 INT6 INT5 INT4 INT3 INT2 INT1
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
1028 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1029
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
INT8 INT7 INT6 INT5 INT4 INT3 INT2 INT1
R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
1030 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1031
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
INT8 INT7 INT6 INT5 INT4 INT3 INT2 INT1
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1032 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1033
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1034 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
INT8 INT7 INT6 INT5 INT4 INT3 INT2 INT1
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1035
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1036 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
_MPC
R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1037
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
_MAR0
R-0h
1038 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
_MAR1
R-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1039
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
23 22 21 20 19 18 17 16
_RPC
R-0h
15 14 13 12 11 10 9 8
_RPC MEALLOW RESERVED RNDF32 RESERVED
R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED TF RESERVED ZF NF LUF LVF
R-0h R-0h R-0h R-0h R-0h R-0h R-0h
1040 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1041
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1042 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1043
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1044 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1045
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1046 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
MPSA2CFG MPSA2CLEAR MPSA1CLEAR MDWDBCYC MDWDBSTART MPABCYC MPABSTART
R/W-0h R-0/W1S-0h R-0/W1S-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1047
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1048 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1049
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
1050 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Neural-network Processing Unit (NPU)
Chapter 8
Neural-network Processing Unit (NPU)
This chapter describes the features and operation of the Neural-network Processing Unit, used to improve the
efficiency of machine learning inferencing.
8.1 Introduction.............................................................................................................................................................1052
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1051
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Neural-network Processing Unit (NPU) www.ti.com
8.1 Introduction
The Neural-network Processing Unit (NPU) can support intelligent inferencing running pre-trained models.
Capable of 600–1200MOPS (Mega Operations Per Second) with example model support for ARC fault detection
or Motor Fault detection, the NPU provides up to 10x Neural Network (NN) inferencing cycle improvement
versus a software only based implementation. Load and train models with tools from TI: Model Composer GUI
or TI's command-line Modelmaker tool for an advanced set of capabilities. Both of these options automatically
generate source code for the C28x, eliminating the need to manually write code.
Figure 8-1shows the toolchain and steps to add NPU support to a project, starting with importing or using
existing models from TI, training the models, generating the associated software libraries, and integrating into an
existing Code Composer Studio™ IDE project.
Foundational Materials
• Model Composer
Expert Materials
• Neural Network Compiler
• Tiny ML ModelMaker
1052 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
Chapter 9
Dual-Clock Comparator (DCC)
9.1 Introduction.............................................................................................................................................................1054
9.2 Module Operation................................................................................................................................................... 1055
9.3 Interrupts.................................................................................................................................................................1061
9.4 Software.................................................................................................................................................................. 1062
9.5 DCC Registers........................................................................................................................................................ 1064
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1053
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
9.1 Introduction
The dual-clock comparator module is used for evaluating and monitoring the clock input based on a second
clock, which can be a more accurate and reliable version. This instrumentation is used to detect faults in clock
source or clock structures, thereby enhancing the system's safety metrics.
9.1.1 Features
The main features of each of the DCC modules are:
• Allows the application to make sure that a fixed ratio is maintained between frequencies of two clock signals.
• Supports the definition of a programmable tolerance window in terms of the number of reference clock cycles.
• Supports continuous monitoring without requiring application intervention.
• Supports a single-sequence mode for spot measurements.
• Allows the selection of a clock source for each of the counters, resulting in several specific use cases.
Input XBAR
APLL
Error
XOSC
Interrupt
INTOSC1,2 DCC
AUXCLK
System Control
Clock
Gates, Dividers Peripheral
Clocks
1054 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
DCC
20 Module
DCCxCLKSRC0 Counter0
DCCxCLKSRC0
20 DCC DONE
Valid0
Compare Logic ERROR
20
DCCxCLKSRC1 Counter1
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1055
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
Based on above formula for Window, if the desired tolerance is low, then the counter values are large and
increase the window of measurement. This means that counter values for a tolerance of 0.1% are larger than
that of 0.2%. So, based on the application defined tolerance, define the window of measurement in terms of
Clock0 cycles.
The clock under measurement can have an allowed frequency error. If this error is expected, then the error
can also be accounted while configuring counters. For example, if measuring INTOSC1/2 frequency using
an external crystal as a reference clock, the allowable tolerance of INTOSC1/2 (for example, ±1%) can be
accounted for and factored into the counter configuration. The formula is:
Frequency Error Allowed (in Clock0 Cycles) = Window × (Allowable Frequency Tolerance (in %) / 100)
Total Error (in Clock0 Cycles) = DCC Error + Frequency Error Allowed
Note
Counter1 is a 20-bit counter, so the maximum possible value cannot exceed 1048575. If the value
does exceed, then increase the desired Tolerance for DCC error, so that Window of measurement is
lowered. The following formula can be used to compute minimum tolerance possible:
Tolerance (%) = (100 × DCC Error × (Fclk1/Fclk0)) / 1048575
1056 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1057
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
1058 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
(no error)
Error
Count0 Count0
Clock0
Valid0 Valid0
0
Count1 Count1
Clock1
0
time
reload reload
Clock1 must expire
in this window, otherwise
signal an error
Error
Count0
Clock0
Valid0
0
Count1
Clock1
0
time
reload
Counter1 does not reach 0
before VALID0 reaches 0
Figure 9-4. Clock1 Slower Than Clock0 - Results in an Error and Stops Counting
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1059
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
Error
Count0
Clock0
Valid0
0
Count1
Clock1
0
time
reload
Counter1 reaches 0 before
Counter0 reaches 0
Figure 9-5. Clock1 Faster Than Clock0 - Results in an Error and Stops Counting
Error
Count0
Clock0
Valid0
0
Count1
Count1 does not count down
Clock1 due to an inactive clock 1
0
time
reload
An error signal is generated since Count1
does not reach 0 in the Valid0 window.
Figure 9-6. Clock1 Not Present - Results in an Error and Stops Counting
1060 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
Error
Count0
Count0 and Valid 0 do not
Clock0 count down due to an
inactive clock 0
Valid0
Count1
Clock1
time
reload
Counter1 reaches 0 at the
right time, but since Clock0 is not running,
Valid0 hasn’t started, thus an error is generated.
Figure 9-7. Clock0 Not Present - Results in an Error and Stops Counting
9.3 Interrupts
DCC generates an interrupt on either of two events:
• DCC finishes counting and all the counters expire within a defined window indicating DONE operation,
provided DCCGCTRL.DONENA = 1.
• DCC finishes counting with error where counters do not expire in a defined window. This indicates an
ERROR event, and sets an interrupt provided DCCGCTRL.ERRENA = 1.
Interrupts generated by DONE or ERROR events are ORed and flagged as a SYS_ERR interrupt. Refer to the
PIE Channel Mapping table in the System Control and Interrupts chapter to determine the interrupt channel
mapping. The application interrupt service routine needs to check the status flag inside the DCCSTATUS register
to determine whether the interrupt is due to ERROR or DONE.
DCC Error interrupts can also be configured as a Non-Maskable Interrupt (NMI) by enabling the
CLKFAILCFG.DCCx_ERROR_EN flag.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1061
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
9.4 Software
9.4.1 DCC Registers to Driverlib Functions
Table 9-1. DCC Registers to Driverlib Functions
File Driverlib Function
DCCGCTRL
dcc.h DCC_enableModule
dcc.h DCC_disableModule
dcc.h DCC_enableErrorSignal
dcc.h DCC_enableDoneSignal
dcc.h DCC_disableErrorSignal
dcc.h DCC_disableDoneSignal
dcc.h DCC_enableSingleShotMode
dcc.h DCC_disableSingleShotMode
DCCCNTSEED0
dcc.h DCC_setCounterSeeds
DCCVALIDSEED0
dcc.h DCC_setCounterSeeds
DCCCNTSEED1
dcc.h DCC_setCounterSeeds
DCCSTATUS
dcc.h DCC_getErrorStatus
dcc.h DCC_getSingleShotStatus
dcc.h DCC_clearErrorFlag
dcc.h DCC_clearDoneFlag
sysctl.c SysCtl_isPLLValid
DCCCNT0
dcc.h DCC_getCounter0Value
DCCVALID0
dcc.h DCC_getValidCounter0Value
DCCCNT1
dcc.h DCC_getCounter1Value
DCCCLKSRC1
dcc.h DCC_setCounter1ClkSource
dcc.h DCC_getCounter1ClkSource
DCCCLKSRC0
dcc.h DCC_setCounter0ClkSource
dcc.h DCC_getCounter0ClkSource
1062 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
This program demonstrates Single Shot measurement of the INTOSC2 clock post trim using XTAL as the
reference clock.
The Dual-Clock Comparator Module 0 is used for the clock measurement. The clocksource0 is the reference
clock (Fclk0 = 20Mhz) and the clocksource1 is the clock that needs to be measured (Fclk1 = 10Mhz). Since the
frequency of the clock1 needs to be measured an initial seed is set to the max value of the counter.
Please refer to the TRM for details on counter seed values to be set.
External Connections
• None
Watch Variables
• result - Status if the INTOSC2 clock measurement completed successfully.
• meas_freq1 - measured clock frequency, in this case for INTOSC2.
9.4.2.2 DCC Single shot Clock verification
FILE: dcc_ex1_single_shot_verification.c
This program uses the XTAL clock as a reference clock to verify the frequency of the PLLRAW clock.
The Dual-Clock Comparator Module 0 is used for the clock verification. The clocksource0 is the reference clock
(Fclk0 = 20Mhz) and the clocksource1 is the clock that needs to be verified (Fclk1 = 150Mhz). Seed is the value
that gets loaded into the Counter.
Please refer to the TRM for details on counter seed values to be set.
External Connections
• None
Watch Variables
• status/result - Status of the PLLRAW clock verification
9.4.2.3 DCC Continuous clock monitoring
FILE: dcc_ex3_continuous_monitoring_of_clock_syscfg.c
This program demonstrates continuous monitoring of PLL Clock in the system using INTOSC2 as the reference
clock. This would trigger an interrupt on any error, causing the decrement/ reload of counters to stop. The
Dual-Clock Comparator Module 0 is used for the clock monitoring. The clocksource0 is the reference clock
(Fclk0 = 10Mhz) and the clocksource1 is the clock that needs to be monitored (Fclk1 = 150Mhz). The clock0 and
clock1 seed are set automatically by the error tolerances defined in the sysconfig file included this project. For
the sake of demo an un-realistic tolerance is assumed to generate an error on continuous monitoring.
Please refer to the TRM for details on counter seed values to be set. Note : When running in flash configuration
it is good to do a reset & restart after loading the example to remove any stale flags/states.
External Connections
• None
Watch Variables
• status/result - Status of the PLLRAW clock monitoring
• cnt0 - Counter0 Value measure when error is generated
• cnt1 - Counter1 Value measure when error is generated
• valid - Valid0 Value measure when error is generated
9.4.2.4 DCC Continuous clock monitoring
FILE: dcc_ex3_continuous_monitoring_of_clock.c
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1063
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
This program demonstrates continuous monitoring of PLL Clock in the system using INTOSC2 as the reference
clock. This would trigger an interrupt on any error, causing the decrement/ reload of counters to stop.
The Dual-Clock Comparator Module 0 is used for the clock monitoring. The clocksource0 is the reference clock
(Fclk0 = 10Mhz) and the clocksource1 is the clock that needs to be monitored (Fclk1 = 150Mhz). The clock0 and
clock1 seed are set to achieve a window of 400us. Seed is the value that gets loaded into the Counter. For the
sake of demo a slight variance is given to clock1 seed value to generate an error on continuous monitoring.
Please refer to the TRM for details on counter seed values to be set. Note : When running in flash configuration
it is good to do a reset & restart after loading the example to remove any stale flags/states.
External Connections
• None
Watch Variables
• status/result - Status of the PLLRAW clock monitoring
• cnt0 - Counter0 Value measure when error is generated
• cnt1 - Counter1 Value measure when error is generated
• valid - Valid0 Value measure when error is generated
9.4.2.5 DCC Detection of clock failure
FILE: dcc_ex4_clock_fail_detect.c
This program demonstrates clock failure detection on continuous monitoring of the PLL Clock in the system
using XTAL as the osc clock source. Once the oscillator clock fails, it would trigger a DCC error interrupt,
causing the decrement/ reload of counters to stop. In this examples, the clock failure is simulated by turning off
the XTAL oscillator. Once the ISR is serviced, the osc source is changed to INTOSC1 and the PLL is turned off.
The Dual-Clock Comparator Module 0 is used for the clock monitoring. The clocksource0 is the reference clock
(Fclk0 = 20Mhz) and the clocksource1 is the clock that needs to be monitored (Fclk1 = 150Mhz). Seed is the
value that gets loaded into the Counter.
In the current example, the XTAL is expected to be a Resonator running in Crystal mode which is later switched
off to simulate the clock failure. If an SE Crystal is used, you will need to physically disconnect the clock on
the board. Please refer to the TRM for details on counter seed values to be set. Note : When running in flash
configuration it is good to do a reset & restart after loading the example to remove any stale flags/states.
External Connections
• None
Watch Variables
• status/result - Status of the clock failure detection
9.5 DCC Registers
This Section describes the DCC Registers.
9.5.1 DCC Base Address Table
Table 9-2. DCC Base Address Table
Bit Field Name Pipeline
DriverLib Name Base Address CPU1 CPU1.DMA CPU1.CLA1
Instance Structure Protected
1064 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
Complex bit access types are encoded to fit into small table cells. Table 9-4 shows the codes that are used for
access types in this section.
Table 9-4. DCC_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
R-1 R Read
-1 Returns 1s
Write Type
W W Write
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1065
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DONEENA SINGLESHOT ERRENA DCCENA
R/W-5h R/W-5h R/W-5h R/W-5h
1066 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1067
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
1068 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1069
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED DONE ERR
R-0h R/W-0h R/W-0h
1070 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1071
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
1072 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1073
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Dual-Clock Comparator (DCC) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
KEY RESERVED CLKSRC1
R-0/W-0h R-0h R/W-0h
1074 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Dual-Clock Comparator (DCC)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
KEY RESERVED CLKSRC0
R-0/W-0h R-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1075
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Chapter 10
General-Purpose Input/Output (GPIO)
The GPIO module controls the device's digital and analog I/O multiplexing, which uses shared pins to maximize
application flexibility. The pins are named by the general-purpose I/O name (for example, GPIO0, GPIO25,
GPIO58). These pins can be individually selected to operate as digital I/O (also called GPIO mode), or
connected to one of several peripheral I/O signals. The input signals can be qualified to remove unwanted
noise.
10.1 Introduction...........................................................................................................................................................1077
10.2 Configuration Overview....................................................................................................................................... 1079
10.3 Digital Inputs on ADC Pins (AIOs)...................................................................................................................... 1080
10.4 Digital Inputs and Outputs on ADC Pins (AGPIOs)...........................................................................................1080
10.5 Digital General-Purpose I/O Control................................................................................................................... 1082
10.6 Input Qualification................................................................................................................................................ 1083
10.7 USB Signals.......................................................................................................................................................... 1088
10.8 PMBUS and I2C Signals.......................................................................................................................................1088
10.9 GPIO and Peripheral Muxing............................................................................................................................... 1089
10.10 Internal Pullup Configuration Requirements................................................................................................... 1096
10.11 Software...............................................................................................................................................................1096
10.12 GPIO Registers....................................................................................................................................................1102
1076 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
10.1 Introduction
Up to twelve independent peripheral signals are multiplexed on a single GPIO-enabled pin in addition to the
CPU-controlled I/O capability. Each pin output can be controlled by either a peripheral or one of the CPU
controllers.
• CPU1
• CPU1.CLA
There are up to 8 possible I/O ports:
• Port A consists of GPIO0-GPIO31
• Port B consists of GPIO32-GPIO63
• Port C consists of GPIO64-GPIO95
• Port D consists of GPIO96-GPIO127
• Port E consists of GPIO128-GPIO159
• Port F consists of GPIO160-GPIO191
• Port G consists of GPIO192-GPIO223
• Port H consists of GPIO224-GPIO255
Note
Some GPIO and I/O ports can be unavailable on particular devices. See the GPIO Registers section
for available GPIO and I/O ports.
The analog signals on this device are multiplexed with digital inputs and outputs. Some of these analog IO (AIO)
pins do not have digital output capability. Others of these pins are analog pins capable of full digital input and
output capability (AGPIO). Analog pins with AIO (digital input only) capability contain "AIO" signals in the Pin
Attributes table of the device data sheet. Analog pins with full input and output capability (AGPIO pins) contain
"GPIO" signals in the Pin Attributes table of the device data sheet. AGPIO pins also have pin names with both
analog signals and GPIO in the name.
Figure 10-1 shows the GPIO logic for a single pin.
There are two key features to note in Figure 10-1. The first is that the input and output paths are entirely
separate, connecting only at the pin. The second is that peripheral muxing takes place far from the pin. As
a result, for both CPUs and CLAs to read the physical state of the pin independent of CPU controlling and
peripheral muxing is possible. Likewise, external interrupts can be generated from peripheral activity. All pin
options such as input qualification and open-drain output are valid for all controllers and peripherals. However,
the peripheral muxing, CPU muxing, and pin options can only be configured by CPU1. Table 10-1 provides
details of GPIO registers accessible by different controllers.
Note
In open-drain mode, the GPIO does not drive the pin high, the GPIO can only pull the pin low.
Instead, use an external pull-up to the bus voltage to drive the high level. When open-drain mode is
enabled, the value in the GPyDAT register still controls the pin state. Writing a value of 1 turns off
the driver to allow the external pull-up to control the pin; writing a value of 0 pulls the pin to ground.
The open-drain configuration is automatically used by peripherals such as I2C and PMBus (no need
to enable open-drain mode locally). This mode can also be set manually by writing to the GPyODR
register and can be used when there are multiple nodes on the same net to avoid the pin contention
that a push-pull driver can cause.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1077
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
CPU1
Disabled when high, by
GPyDIR = input GPyGMUX1-2
or GPyMUX1-2
IO Reset = low
GPyDIR
GPyCSEL1-3
GPySET
GPyCLEAR 00 CPU1
Direcon 01 CLA
CPU1 GPyTOGGLE
GPyODR GPyDAT (W)
Based on
GPIO_DATA GPIODAT, SET, CLEAR, TOGGLE, and pin status, etc. Yes Yes NO GPxCSEL
configuration.
Foundational Materials
• C2000 Academy - GPIO
1078 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1079
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Note
If digital signals with sharp edges (high dv/dt) are connected to the AIOs, cross-talk can occur with
adjacent analog signals. Therefore, limit the edge rate of signals connected to AIOs if adjacent
channels are being used for analog functions.
(1) By default there are no signals connected to AGPIO pins. One of the other rows in the table must be chosen for pin functionality.
Note
If digital signals with sharp edges (high dv/dt) are connected to the AGPIOs, cross-talk can occur with
adjacent analog signals. The user must therefore limit the edge rate of signals connected to AGPIOs,
if adjacent channels are being used for analog functions.
The general schematic of analog subsystem with AGPIO implementation is illustrated in Figure 10-2. The
combinations of use cases for a specific analog input pin need special consideration are shown in Table 10-3.
The AGPIO analog pin path contains an extra series switch of 53Ω. This creates a low capacitance isolated
node shared by the ADC and CMPSS Comparator as shown in Figure 10-2. This node can be disturbed
when the ADC samples the channel (depending on the prior voltage stored on the ADC sample and hold
capacitor), and this disturbance can cause a false CMPSS event of up to 50ns. As shown in Table 10-3, special
considerations or workarounds need to be used for the combination of CMPSS Input, ADC Sampling, and
AGPIO. To accommodate this potential disturbance the following workarounds can be implemented:
1. Use a different pin (that is AIO pin type) for analog channels which need both ADC and CMPSS together.
2. Use the CMPSS Digital Filter with a setting of 50ns or greater, which filters the temporary disturbance.
3. Precondition the sample and hold capacitor of the ADC so the disturbance does not cause a false trip. For
example, perform a dummy read of a 3.3V connection from a different channel on the ADC immediately
before the impacted channel is read so the disturbance is in the positive direction, away from the false trip.
The opposite dummy read of a 0V signal can be used if the false trip is inverted in polarity.
1080 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
Table 10-3. The Combinations of Use Cases for a Specific Analog Input Pin
Function Used on a Specific Analog Pin Component Used
CMPSS MUX
–
ADC MUX
Switch RON ADC
AGPIO switch
AIO pin
Cp Ch
GPIO
VREFLO
GPIO Logic
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1081
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
The second instruction waits for the first to finish the write due to the write-followed-by-read protection on this
peripheral frame. There is some lag, however, between the write of (I1) and the GPyDAT bit reflecting the
new value (1) on the pin. During this lag, the second instruction reads the old value of GPIO1 (0) and writes
the value back along with the new value of GPIO2 (1). Therefore, GPIO1 pin stays low.
One answer is to put some NOPs between instructions. A better answer is to use the GPySET/GPyCLEAR/
GPyTOGGLE registers instead of the GPyDAT registers. These registers always read back a 0 and writes of
0 have no effect. Only bits that need to be changed can be specified without disturbing any other bits that are
currently in the process of changing.
• GPyDAT_R Registers
The GPyDAT_R registers are read only registers that return the value written to the GPyDAT registers instead
of pin status. Writes to these registers have no effect.
• GPySET Registers
The set registers are used to drive specified GPIO pins high without disturbing other pins. Each I/O port has
one set register and each bit corresponds to one GPIO pin. The set registers always read back 0. If the
corresponding pin is configured as an output, then writing a 1 to that bit in the set register sets the output
latch high and the corresponding pin is driven high. If the pin is not configured as a GPIO output, then the
value is latched but the pin is not driven. Only if the pin is later configured as a GPIO output is the latched
value driven onto the pin. Writing a 0 to any bit in the set registers has no effect.
1082 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
• GPyCLEAR Registers
The clear registers are used to drive specified GPIO pins low without disturbing other pins. Each I/O port
has one clear register. The clear registers always read back 0. If the corresponding pin is configured as a
general-purpose output, then writing a 1 to the corresponding bit in the clear register clears the output latch
and the pin is driven low. If the pin is not configured as a GPIO output, then the value is latched but the pin is
not driven. Only if the pin is later configured as a GPIO output is the latched value driven onto the pin. Writing
a 0 to any bit in the clear registers has no effect.
• GPyTOGGLE Registers
The toggle registers are used to drive specified GPIO pins to the opposite level without disturbing other pins.
Each I/O port has one toggle register. The toggle registers always read back 0. If the corresponding pin is
configured as an output, then writing a 1 to that bit in the toggle register flips the output latch and pulls the
corresponding pin in the opposite direction. That is, if the output pin is driven low, then writing a 1 to the
corresponding bit in the toggle register pulls the pin high. Likewise, if the output pin is high, then writing a 1
to the corresponding bit in the toggle register pulls the pin low. If the pin is not configured as a GPIO output,
then the value is latched but the pin is not driven. Only if the pin is later configured as a GPIO output is the
latched value driven onto the pin. Writing a 0 to any bit in the toggle registers has no effect.
Note
Using input synchronization when the peripheral performs the synchronization can cause unexpected
results. The user must make sure that the GPIO pin is configured for asynchronous in this case.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1083
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
GPxCTRL Reg
GPxQSEL1/2
SYSCLKOUT
Number of Samples
1084 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
From these equations, the minimum and maximum time between samples can be calculated for a given
SYSCLKOUT frequency:
Number of samples:
The number of times the signal is sampled is either three samples or six samples as specified in the qualification
selection (GPyQSEL1, GPyQSEL2) registers. When three or six consecutive cycles are the same, then the input
change is passed through to the device.
Total Sampling-Window Width:
The sampling window is the time during which the input signal is sampled as shown in Figure 10-4. By using the
equation for the sampling period, along with the number of samples to be taken, the total width of the window
can be determined.
For the input qualifier to detect a change in the input, the level of the signal must be stable for the duration of the
sampling-window width or longer.
The number of sampling periods within the window is always one less than the number of samples taken. For
a three-sample window, the sampling-window width is two sampling-periods wide where the sampling period is
defined in Table 10-4. Likewise, for a six-sample window, the sampling-window width is five sampling-periods
wide. Table 10-6 and Table 10-7 show the calculations used to determine the total sampling-window width based
on GPxCTRL[QUALPRDn] and the number of samples taken.
Table 10-6. Case 1: Three-Sample Sampling-Window Width
Total Sampling-Window Width
If GPxCTRL[QUALPRDn] = 0 2 × TSYSCLKOUT
If GPxCTRL[QUALPRDn] ≠ 0 2 × 2 × GPxCTRL[QUALPRDn] × TSYSCLKOUT
Where TSYSCLKOUT is the period in time of SYSCLKOUT
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1085
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Note
The external signal change is asynchronous with respect to both the sampling period and
SYSCLKOUT. Due to the asynchronous nature of the external signal, the input must be held stable for
a time greater than the sampling-window width to make sure the logic detects a change in the signal.
The extra time required can be up to an additional sampling period + TSYSCLKOUT .
The required duration for an input signal to be stable for the qualification logic to detect a change is
described in the data sheet.
(A)
GPIO Signal QUAL_SEL = 1,0 (6 samples)
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
tW(SP) Sampling Period determined by 1
GPxCTRL [QUALPRD] (B)
tW(IQSW)
(SYSCLKOUT Cycle * 2 * QUALPRD) * 5(C)
Sampling Window
SYSCLKOUT
QUADPRD=1
(SYSCLKOUT/2) (D)
Output From
Qualifier
• A. This glitch will be ignored by the input qualifier. The QUALPRD bit field specifies the qualification sampling
period. It can vary from 0x00 to 0xFF. If QUALPRD = 00, then the sampling period is 1 SYSCLKOUT
cycle. For any other value 'n', the qualificiation sampling period is 2n SYSCLKOUT cycles (i.e. at every 2n
SYSCLKOUT cycles, the GPIO pin will be sampled).
• B. The qualification period selected via the GPxCTRL register applies to groups of 8 GPIO pins.
1086 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
• C. the qualification block can take either 3 or 6 samples. The QUAL_SEL Register selects which samples
mode is used.
• D. In the example shown, for the qualifier to detect the change, the input should be stable for 10
SYSCLKOUT cycles. That would ensure 5 sampling periods for detection to occur. Since external signals
are driven asynchronously, a 13-SYSCLKOUT-wide pulse ensures reliable recognition.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1087
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Note
The PMBUS_IO_MODESEL and PMBUS_IO_DRVSEL registers apply to the entire GPIO, not just the
PMBUS module. Any peripheral or module in the given GPIO's mux is able to utilize the customizable
VIH threshold and current sinking capability.
The list of GPIOs that have these capabilities, and the configurable levels for these GPIOs are available in the
PMBUS_IO_MODESEL and PMBUS_IO_DRVSEL registers.
1088 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1089
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1090 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1091
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1092 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1093
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Note
The following table is for example only. Refer to the device data sheet to check the availability of
GPIO6 on this device. If GPIO6 is available, the functions mentioned in the table may not match the
actual functions available. See Section 10.9.1 for correct list of GPIOs and corresponding mux options
for this device.
The devices have different multiplexing schemes. If a peripheral is not available on a particular device, that mux
selection is reserved on that device and must not be used.
CAUTION
If a reserved GPIO mux configuration that is not mapped to either a peripheral or GPIO mode is
selected, the state of the pin is undefined and the pin is driven. Unimplemented configurations are
for future expansion and must not be selected. In the device mux table (see the data sheet), these
options are indicated as Reserved or left blank.
Some peripherals can be assigned to more than one pin by way of the mux registers. For example,
OUTPUTXBAR1 can be assigned to GPIOs p, q, or r (where p, q, and r are example GPIO numbers), depending
on individual system requirements. An example of this is shown in Table 10-10.
Note
The following table is for example only. Bit ranges cannot correspond to OUTPUTXBAR1 on this
device. See Section 10.9.1 for correct list of GPIOs and corresponding mux options for this device.
1094 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
If none or more then one of the GPIO pins is configured as peripheral input pins, then that GPIO is set to a
hard-wired default value.
Table 10-10. Peripheral Muxing (Multiple Pins Assigned)
GMUX Configuration MUX Configuration
Choice 1: GPIOp GPyGMUX1[5:4] = 01 GPyMUX1[5:4] = 01
or Choice 2: GPIOq GPyGMUX2[17:16] = 00 GPyMUX2[17:16] = 01
or Choice 3: GPIOr GPyGMUX1[7:6] = 01 GPyMUX1[7:6] = 01
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1095
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1096 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1097
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1098 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1099
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1100 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1101
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Configures the device GPIOs through the sysconfig file. One GPIO output pin, and one GPIO input pin is
configured. The example then configures the GPIO input pin to be the source of an external interrupt which
toggles the GPIO output pin.
10.11.2.4 External Interrupt (XINT)
FILE: gpio_ex4_aio_external_interrupt.c
In this example AIO pins are configured as digital inputs. Two other GPIO signals (connected externally to AIO
pins) are toggled in software to trigger external interrupt through AIO225 and AIO231 (AIO225 assigned to
XINT1 and AIO231 assigned to XINT2). The user is required to externally connect these signals for the program
to work properly. Each interrupt is fired in sequence: XINT1 first and then XINT2.
• GPIO5 will go high outside of the interrupts and low within the interrupts. This signal can be monitored on a
scope. External Connections
• Connect GPIO0 to AIO225. AIO225 will be assigned to XINT1
• Connect GPIO1 to AIO231. AIO231 will be assigned to XINT2
• GPIO5 can be monitored on an oscilloscope
Watch Variables
• xint1Count for the number of times through XINT1 interrupt
• xint2Count for the number of times through XINT2 interrupt
• loopCount for the number of times through the idle loop
10.11.3 LED Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/led
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
10.12 GPIO Registers
This Section describes the GPIO Registers.
10.12.1 GPIO Base Address Table
Table 10-12. GPIO Base Address Table
Bit Field Name Pipeline
DriverLib Name Base Address CPU1 CPU1.DMA CPU1.CLA1
Instance Structure Protected
GPIO_CTRL_RE
GpioCtrlRegs GPIOCTRL_BASE 0x0000_7C00 YES - - YES
GS
GPIO_DATA_REG
GpioDataRegs GPIODATA_BASE 0x0000_7F00 YES - YES YES
S
GpioDataReadR GPIO_DATA_REA GPIODATAREAD_BAS
0x0000_7F80 YES - YES YES
egs D_REGS E
1102 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1103
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1104 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
Complex bit access types are encoded to fit into small table cells. Table 10-14 shows the codes that are used for
access types in this section.
Table 10-14. GPIO_CTRL_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
Write Type
W W Write
WSonce W Write
Sonce Set once
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1105
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1106 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1107
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1108 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1109
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1110 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1111
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1112 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1113
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1114 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1115
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1116 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1117
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1118 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1119
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1120 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1121
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1122 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1123
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1124 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO23 RESERVED GPIO21 GPIO20 RESERVED RESERVED GPIO17 GPIO16
R/W-0h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
RESERVED RESERVED GPIO13 GPIO12 GPIO11 RESERVED RESERVED RESERVED
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1125
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1126 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1127
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1128 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1129
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1130 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1131
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h
1132 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1133
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO27 GPIO26 GPIO25 GPIO24
R/W-0h R/W-0h R/W-0h R/W-0h
1134 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1135
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1136 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1137
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1138 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1139
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-3h R/W-0h R/W-3h R/W-0h R/W-0h R/W-0h
1140 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1141
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1142 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1143
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1144 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-3h R/W-0h R/W-3h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1145
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1146 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1147
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1148 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1149
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
1150 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1151
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1152 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1153
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1154 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1155
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO41 RESERVED
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-0h R/W-1h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO33 RESERVED
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
1156 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1157
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-3h R/W-0h R/W-3h R/W-0h R/W-0h R/W-0h
1158 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1159
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1160 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1161
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO43 GPIO42 GPIO41 GPIO40
R/W-0h R/W-0h R/W-0h R/W-0h
1162 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1163
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO59 GPIO58 GPIO57 GPIO56
R/W-0h R/W-0h R/W-0h R/W-0h
1164 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1165
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1166 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1167
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1168 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1169
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1170 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1171
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1172 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1173
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1174 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1175
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1176 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1177
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1178 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1179
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1180 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1181
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1182 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1183
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1184 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1185
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1186 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1187
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1188 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1189
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h
1190 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO75 GPIO74 GPIO73 GPIO72
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1191
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h
1192 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1193
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1194 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1195
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1196 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1197
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO215 GPIO214 GPIO213 GPIO212
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h
1198 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1199
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO215 GPIO214 GPIO213 GPIO212
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h
1200 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1201
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1202 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1203
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
1204 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1205
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1206 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1207
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1208 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1209
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1210 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1211
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1212 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO215 GPIO214 GPIO213 GPIO212
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1213
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1214 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1215
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1216 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1217
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
1218 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1219
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1220 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO231 GPIO230 GPIO229 GPIO228
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1221
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1222 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO251 RESERVED GPIO249 GPIO248
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO247 RESERVED GPIO245 GPIO244
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1223
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1224 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO231 GPIO230 GPIO229 GPIO228
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1225
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1226 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO251 RESERVED GPIO249 GPIO248
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO247 RESERVED GPIO245 GPIO244
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1227
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1228 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1229
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1230 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1231
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1232 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1233
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1234 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1235
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1236 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1237
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1238 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1239
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1240 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1241
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1242 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1243
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1244 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1245
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1246 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1247
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1248 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO231 GPIO230 GPIO229 GPIO228
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1249
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1250 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO251 RESERVED GPIO249 GPIO248
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO247 RESERVED GPIO245 GPIO244
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1251
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1252 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1253
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h
1254 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1255
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIO251 RESERVED GPIO249 GPIO248
R/W-0h R/W-0h R/W-0h R/W-0h
1256 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1257
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1258 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1259
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1260 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1261
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1262 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1263
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 10-99 shows the codes that are used for
access types in this section.
Table 10-99. GPIO_DATA_REGS Access Type Codes
Access Type Code Description
Read Type
R R Read
R-0 R Read
-0 Returns 0s
Write Type
W W Write
Reset or Default Value
-n Value after reset or the default value
Register Array Variables
i,j,k,l,m,n When these variables are used in a register name,
an offset, or an address, they refer to the value of a
register array where the register is part of a group
of repeating registers. The register groups form a
hierarchical structure and the array is represented
with a formula.
1264 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1265
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1266 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1267
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1268 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1269
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1270 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1271
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO23 GPIO22 GPIO21 GPIO20 GPIO19 GPIO18 GPIO17 GPIO16
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1272 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1273
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1274 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1275
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1276 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1277
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1278 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1279
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO55 GPIO54 GPIO53 GPIO52 GPIO51 GPIO50 GPIO49 GPIO48
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED GPIO37 RESERVED GPIO35 GPIO34 GPIO33 GPIO32
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1280 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1281
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1282 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1283
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1284 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1285
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1286 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1287
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO81 GPIO80
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1288 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1289
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1290 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1291
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1292 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1293
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1294 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1295
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO215 GPIO214 GPIO213 GPIO212 GPIO211 GPIO210 GPIO209 GPIO208
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED
R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h R-0/W-0h
1296 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1297
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO247 RESERVED GPIO245 GPIO244 RESERVED GPIO242 GPIO241 GPIO240
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO239 GPIO238 GPIO237 GPIO236 GPIO235 GPIO234 GPIO233 GPIO232
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO231 GPIO230 GPIO229 GPIO228 GPIO227 GPIO226 GPIO225 GPIO224
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1298 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1299
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1300 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024 TMS320F28P55x Real-Time Microcontrollers 1301
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1302 TMS320F28P55x Real-Time Microcontrollers SPRUJ53B – APRIL 2024 – REVISED SEPTEMBER 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)