Manual
Manual
Microcontrollers
Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 3
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
4 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 5
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
6 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 7
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
8 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 9
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
10 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 11
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
12 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 13
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
14 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
21.11.1 Data Packing Using Frame Length and Word Length....................................................................................... 2478
21.11.2 Data Packing Using Word Length and the Frame-Synchronization Ignore Function.........................................2480
21.12 Interrupt Generation................................................................................................................................................. 2481
21.12.1 McBSP Receive Interrupt Generation............................................................................................................... 2481
21.12.2 McBSP Transmit Interrupt Generation...............................................................................................................2482
21.12.3 Error Flags.........................................................................................................................................................2482
21.13 McBSP Modes......................................................................................................................................................... 2483
21.14 Special Case: External Device is the Transmit Frame Master ................................................................................ 2483
21.15 Software................................................................................................................................................................... 2485
21.15.1 MCBSP Examples............................................................................................................................................. 2485
21.16 McBSP Registers..................................................................................................................................................... 2485
21.16.1 McBSP Base Addresses................................................................................................................................... 2485
21.16.2 McBSP_REGS Registers.................................................................................................................................. 2486
21.16.3 MCBSP Registers to Driverlib Functions...........................................................................................................2530
22 Controller Area Network (CAN)..................................................................................................................................... 2534
22.1 Introduction................................................................................................................................................................ 2535
22.1.1 DCAN Related Collateral.....................................................................................................................................2535
22.1.2 Features.............................................................................................................................................................. 2535
22.1.3 Block Diagram..................................................................................................................................................... 2536
22.2 Functional Description................................................................................................................................................2538
22.2.1 Configuring Device Pins...................................................................................................................................... 2538
22.2.2 Address/Data Bus Bridge.................................................................................................................................... 2538
22.3 Operating Modes........................................................................................................................................................2540
22.3.1 Initialization..........................................................................................................................................................2540
22.3.2 CAN Message Transfer (Normal Operation)....................................................................................................... 2541
22.3.3 Test Modes.......................................................................................................................................................... 2542
22.4 Multiple Clock Source................................................................................................................................................ 2546
22.5 Interrupt Functionality.................................................................................................................................................2547
22.5.1 Message Object Interrupts.................................................................................................................................. 2547
22.5.2 Status Change Interrupts.....................................................................................................................................2547
22.5.3 Error Interrupts.................................................................................................................................................... 2547
22.5.4 Peripheral Interrupt Expansion (PIE) Module Nomenclature for DCAN Interrupts.............................................. 2547
22.5.5 Interrupt Topologies............................................................................................................................................. 2548
22.6 Parity Check Mechanism........................................................................................................................................... 2549
22.6.1 Behavior on Parity Error...................................................................................................................................... 2549
22.7 Debug Mode...............................................................................................................................................................2550
22.8 Module Initialization....................................................................................................................................................2550
22.9 Configuration of Message Objects............................................................................................................................. 2551
22.9.1 Configuration of a Transmit Object for Data Frames........................................................................................... 2551
22.9.2 Configuration of a Transmit Object for Remote Frames...................................................................................... 2551
22.9.3 Configuration of a Single Receive Object for Data Frames.................................................................................2551
22.9.4 Configuration of a Single Receive Object for Remote Frames............................................................................2552
22.9.5 Configuration of a FIFO Buffer.............................................................................................................................2552
22.10 Message Handling................................................................................................................................................... 2552
22.10.1 Message Handler Overview.............................................................................................................................. 2553
22.10.2 Receive/Transmit Priority...................................................................................................................................2553
22.10.3 Transmission of Messages in Event Driven CAN Communication.................................................................... 2553
22.10.4 Updating a Transmit Object............................................................................................................................... 2554
22.10.5 Changing a Transmit Object.............................................................................................................................. 2554
22.10.6 Acceptance Filtering of Received Messages.....................................................................................................2555
22.10.7 Reception of Data Frames.................................................................................................................................2555
22.10.8 Reception of Remote Frames............................................................................................................................2555
22.10.9 Reading Received Messages............................................................................................................................2555
22.10.10 Requesting New Data for a Receive Object.................................................................................................... 2556
22.10.11 Storing Received Messages in FIFO Buffers...................................................................................................2556
22.10.12 Reading from a FIFO Buffer............................................................................................................................ 2556
22.11 CAN Bit Timing......................................................................................................................................................... 2558
22.11.1 Bit Time and Bit Rate......................................................................................................................................... 2558
22.11.2 Configuration of the CAN Bit Timing.................................................................................................................. 2563
22.12 Message Interface Register Sets............................................................................................................................. 2567
22.12.1 Message Interface Register Sets 1 and 2 (IF1 and IF2)....................................................................................2567
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 15
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
16 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
List of Figures
Figure 3-1. Device Interrupt Architecture...................................................................................................................................88
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 17
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
18 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 19
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
20 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 21
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
22 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 23
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
24 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 25
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
26 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 27
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
28 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 29
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
30 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 31
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
32 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
Figure 15-28. Up-Count, Pulse Placement Asymmetric Waveform With Independent Modulation on EPWMxA..................1940
Figure 15-29. Up-Down Count, Dual-Edge Symmetric Waveform, with Independent Modulation on EPWMxA and
EPWMxB — Active Low.....................................................................................................................................................1940
Figure 15-30. Up-Down Count, Dual-Edge Symmetric Waveform, with Independent Modulation on EPWMxA and
EPWMxB — Complementary.............................................................................................................................................1941
Figure 15-31. Up-Down Count, Dual-Edge Asymmetric Waveform, with Independent Modulation on EPWMxA—Active
Low.....................................................................................................................................................................................1941
Figure 15-32. Up-Down Count, PWM Waveform Generation Utilizing T1 and T2 Events..................................................... 1942
Figure 15-33. Dead_Band Submodule.................................................................................................................................. 1943
Figure 15-34. Configuration Options for the Dead-Band Submodule.................................................................................... 1946
Figure 15-35. Dead-Band Waveforms for Typical Cases (0% < Duty < 100%)..................................................................... 1948
Figure 15-36. PWM Chopper Submodule..............................................................................................................................1950
Figure 15-37. PWM Chopper Submodule Operational Details.............................................................................................. 1951
Figure 15-38. Simple PWM Chopper Submodule Waveforms Showing Chopping Action Only............................................ 1951
Figure 15-39. PWM Chopper Submodule Waveforms Showing the First Pulse and Subsequent Sustaining Pulses........... 1952
Figure 15-40. PWM Chopper Submodule Waveforms Showing the Pulse Width (Duty Cycle) Control of Sustaining Pulses 1953
Figure 15-41. Trip-Zone Submodule......................................................................................................................................1954
Figure 15-42. Trip-Zone Submodule Mode Control Logic......................................................................................................1958
Figure 15-43. Trip-Zone Submodule Interrupt Logic..............................................................................................................1959
Figure 15-44. Event-Trigger Submodule................................................................................................................................1960
Figure 15-45. Event-Trigger Submodule Showing Event Inputs and Prescaled Outputs...................................................... 1961
Figure 15-46. Event-Trigger Interrupt Generator................................................................................................................... 1963
Figure 15-47. Event-Trigger SOCA Pulse Generator............................................................................................................ 1964
Figure 15-48. Event-Trigger SOCB Pulse Generator............................................................................................................ 1964
Figure 15-49. Digital-Compare Submodule High-Level Block Diagram.................................................................................1965
Figure 15-50. GPIO MUX-to-Trip Input Connectivity............................................................................................................. 1966
Figure 15-51. DCAEVT1 Event Triggering.............................................................................................................................1969
Figure 15-52. DCAEVT2 Event Triggering.............................................................................................................................1969
Figure 15-53. DCBEVT1 Event Triggering.............................................................................................................................1970
Figure 15-54. DCBEVT2 Event Triggering.............................................................................................................................1970
Figure 15-55. Event Filtering................................................................................................................................................. 1971
Figure 15-56. Blanking Window Timing Diagram...................................................................................................................1972
Figure 15-57. Valley Switching...............................................................................................................................................1974
Figure 15-58. ePWM X-BAR..................................................................................................................................................1975
Figure 15-59. Simplified ePWM Module................................................................................................................................ 1976
Figure 15-60. EPWM1 Configured as a Typical Master, EPWM2 Configured as a Slave .................................................... 1977
Figure 15-61. Control of Four Buck Stages. Here FPWM1≠ FPWM2≠ FPWM3≠ FPWM4 ............................................................. 1978
Figure 15-62. Buck Waveforms for Control of Four Buck Stages (Note: Only three bucks shown here).............................. 1979
Figure 15-63. Control of Four Buck Stages. (Note: FPWM2 = N x FPWM1).............................................................................. 1980
Figure 15-64. Buck Waveforms for Control of Four Buck Stages (Note: FPWM2 = FPWM1).................................................... 1981
Figure 15-65. Control of Two Half-H Bridge Stages (FPWM2 = N x FPWM1)............................................................................ 1982
Figure 15-66. Half-H Bridge Waveforms for Control of Two Half-H Bridge Stages (Note: Here FPWM2 = FPWM1)................. 1983
Figure 15-67. Control of Dual 3-Phase Inverter Stages as Is Commonly Used in Motor Control..........................................1984
Figure 15-68. 3-Phase Inverter Waveforms for Control of Dual 3-Phase Inverter Stages (Only One Inverter Shown)......... 1985
Figure 15-69. Configuring Two PWM Modules for Phase Control......................................................................................... 1986
Figure 15-70. Timing Waveforms Associated with Phase Control Between Two Modules....................................................1987
Figure 15-71. Control of 3-Phase Interleaved DC/DC Converter.......................................................................................... 1988
Figure 15-72. 3-Phase Interleaved DC/DC Converter Waveforms for Control of 3-Phase Interleaved DC/DC Converter....1989
Figure 15-73. Control of Full-H Bridge Stage (FPWM2 = FPWM1)............................................................................................ 1990
Figure 15-74. ZVS Full-H Bridge Waveforms........................................................................................................................ 1991
Figure 15-75. Peak Current Mode Control of Buck Converter...............................................................................................1992
Figure 15-76. Peak Current Mode Control Waveforms for Control of Buck Converter.......................................................... 1992
Figure 15-77. Control of Two Resonant Converter Stages....................................................................................................1993
Figure 15-78. H-Bridge LLC Resonant Converter PWM Waveforms.....................................................................................1993
Figure 15-79. HRPWM Block Diagram.................................................................................................................................. 1994
Figure 15-80. Resolution Calculations for Conventionally Generated PWM......................................................................... 1995
Figure 15-81. Operating Logic Using MEP............................................................................................................................ 1996
Figure 15-82. HRPWM Extension Registers and Memory Configuration.............................................................................. 1997
Figure 15-83. HRPWM System Interface.............................................................................................................................. 1998
Figure 15-84. HRPWM and HRCAL Source Clock................................................................................................................1999
Figure 15-85. Required PWM Waveform for a Requested Duty = 40.5%..............................................................................2002
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 33
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
Figure 15-86. Low % Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 0)............................................................ 2005
Figure 15-87. High % Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 0)............................................................2006
Figure 15-88. Up-Count Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 1)........................................................2006
Figure 15-89. Up-Down Count Duty Cycle Range Limitation Example (HRPCTL[HRPE] = 1)..............................................2006
Figure 15-90. Simple Buck Controlled Converter Using a Single PWM................................................................................ 2013
Figure 15-91. PWM Waveform Generated for Simple Buck Controlled Converter................................................................ 2013
Figure 15-92. Simple Reconstruction Filter for a PWM-based DAC......................................................................................2015
Figure 15-93. PWM Waveform Generated for the PWM DAC Function................................................................................ 2015
Figure 15-94. TBCTL Register...............................................................................................................................................2024
Figure 15-95. TBCTL2 Register.............................................................................................................................................2026
Figure 15-96. TBCTR Register.............................................................................................................................................. 2027
Figure 15-97. TBSTS Register.............................................................................................................................................. 2028
Figure 15-98. CMPCTL Register........................................................................................................................................... 2029
Figure 15-99. CMPCTL2 Register......................................................................................................................................... 2031
Figure 15-100. DBCTL Register............................................................................................................................................ 2033
Figure 15-101. DBCTL2 Register.......................................................................................................................................... 2036
Figure 15-102. AQCTL Register............................................................................................................................................ 2037
Figure 15-103. AQTSRCSEL Register.................................................................................................................................. 2039
Figure 15-104. PCCTL Register............................................................................................................................................ 2040
Figure 15-105. VCAPCTL Register....................................................................................................................................... 2042
Figure 15-106. VCNTCFG Register.......................................................................................................................................2044
Figure 15-107. HRCNFG Register.........................................................................................................................................2046
Figure 15-108. HRPWR Register.......................................................................................................................................... 2048
Figure 15-109. HRMSTEP Register...................................................................................................................................... 2049
Figure 15-110. HRCNFG2 Register....................................................................................................................................... 2050
Figure 15-111. HRPCTL Register.......................................................................................................................................... 2051
Figure 15-112. TRREM Register............................................................................................................................................2053
Figure 15-113. GLDCTL Register.......................................................................................................................................... 2054
Figure 15-114. GLDCFG Register......................................................................................................................................... 2056
Figure 15-115. EPWMXLINK Register...................................................................................................................................2058
Figure 15-116. AQCTLA Register.......................................................................................................................................... 2060
Figure 15-117. AQCTLA2 Register........................................................................................................................................ 2062
Figure 15-118. AQCTLB Register.......................................................................................................................................... 2063
Figure 15-119. AQCTLB2 Register........................................................................................................................................ 2065
Figure 15-120. AQSFRC Register......................................................................................................................................... 2066
Figure 15-121. AQCSFRC Register...................................................................................................................................... 2067
Figure 15-122. DBREDHR Register...................................................................................................................................... 2068
Figure 15-123. DBRED Register........................................................................................................................................... 2069
Figure 15-124. DBFEDHR Register.......................................................................................................................................2070
Figure 15-125. DBFED Register............................................................................................................................................2071
Figure 15-126. TBPHS Register............................................................................................................................................ 2072
Figure 15-127. TBPRDHR Register.......................................................................................................................................2073
Figure 15-128. TBPRD Register............................................................................................................................................2074
Figure 15-129. CMPA Register.............................................................................................................................................. 2075
Figure 15-130. CMPB Register..............................................................................................................................................2076
Figure 15-131. CMPC Register............................................................................................................................................. 2077
Figure 15-132. CMPD Register............................................................................................................................................. 2078
Figure 15-133. GLDCTL2 Register........................................................................................................................................2079
Figure 15-134. SWVDELVAL Register...................................................................................................................................2080
Figure 15-135. TZSEL Register.............................................................................................................................................2081
Figure 15-136. TZDCSEL Register........................................................................................................................................2083
Figure 15-137. TZCTL Register.............................................................................................................................................2084
Figure 15-138. TZCTL2 Register...........................................................................................................................................2086
Figure 15-139. TZCTLDCA Register..................................................................................................................................... 2088
Figure 15-140. TZCTLDCB Register..................................................................................................................................... 2090
Figure 15-141. TZEINT Register........................................................................................................................................... 2092
Figure 15-142. TZFLG Register.............................................................................................................................................2093
Figure 15-143. TZCBCFLG Register..................................................................................................................................... 2095
Figure 15-144. TZOSTFLG Register..................................................................................................................................... 2097
Figure 15-145. TZCLR Register............................................................................................................................................ 2099
Figure 15-146. TZCBCCLR Register.....................................................................................................................................2101
34 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 35
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
36 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 37
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
38 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
Figure 21-64. Configuring the Data Stream of Figure 21-63 as a Continuous 32-Bit Word...................................................2480
Figure 21-65. Receive Interrupt Generation.......................................................................................................................... 2481
Figure 21-66. Transmit Interrupt Generation......................................................................................................................... 2482
Figure 21-67. DRR2 Register................................................................................................................................................ 2488
Figure 21-68. DRR1 Register................................................................................................................................................ 2489
Figure 21-69. DXR2 Register................................................................................................................................................ 2490
Figure 21-70. DXR1 Register................................................................................................................................................ 2491
Figure 21-71. SPCR2 Register.............................................................................................................................................. 2492
Figure 21-72. SPCR1 Register.............................................................................................................................................. 2495
Figure 21-73. RCR2 Register................................................................................................................................................ 2498
Figure 21-74. RCR1 Register................................................................................................................................................ 2500
Figure 21-75. XCR2 Register................................................................................................................................................ 2501
Figure 21-76. XCR1 Register................................................................................................................................................ 2503
Figure 21-77. SRGR2 Register..............................................................................................................................................2504
Figure 21-78. SRGR1 Register..............................................................................................................................................2506
Figure 21-79. MCR2 Register................................................................................................................................................2507
Figure 21-80. MCR1 Register................................................................................................................................................2509
Figure 21-81. RCERA Register..............................................................................................................................................2511
Figure 21-82. RCERB Register............................................................................................................................................. 2512
Figure 21-83. XCERA Register..............................................................................................................................................2513
Figure 21-84. XCERB Register..............................................................................................................................................2514
Figure 21-85. PCR Register.................................................................................................................................................. 2515
Figure 21-86. RCERC Register............................................................................................................................................. 2518
Figure 21-87. RCERD Register............................................................................................................................................. 2519
Figure 21-88. XCERC Register............................................................................................................................................. 2520
Figure 21-89. XCERD Register............................................................................................................................................. 2521
Figure 21-90. RCERE Register............................................................................................................................................. 2522
Figure 21-91. RCERF Register..............................................................................................................................................2523
Figure 21-92. XCERE Register..............................................................................................................................................2524
Figure 21-93. XCERF Register..............................................................................................................................................2525
Figure 21-94. RCERG Register............................................................................................................................................. 2526
Figure 21-95. RCERH Register............................................................................................................................................. 2527
Figure 21-96. XCERG Register............................................................................................................................................. 2528
Figure 21-97. XCERH Register............................................................................................................................................. 2529
Figure 21-98. MFFINT Register.............................................................................................................................................2530
Figure 22-1. CAN Block Diagram.......................................................................................................................................... 2536
Figure 22-2. Accessing Message Objects Through IFx Registers.........................................................................................2537
Figure 22-3. CAN_MUX.........................................................................................................................................................2542
Figure 22-4. CAN Core in Silent Mode.................................................................................................................................. 2543
Figure 22-5. CAN Core in Loopback Mode............................................................................................................................2544
Figure 22-6. CAN Core in External Loopback Mode............................................................................................................. 2545
Figure 22-7. CAN Core in Loopback Combined with Silent Mode.........................................................................................2546
Figure 22-8. CAN Interrupt Topology 1.................................................................................................................................. 2548
Figure 22-9. CAN Interrupt Topology 2.................................................................................................................................. 2548
Figure 22-10. Initialization of a Transmit Object.................................................................................................................... 2551
Figure 22-11. Initialization of a Single Receive Object for Data Frames................................................................................2551
Figure 22-12. Initialization of a Single Receive Object for Remote Frames.......................................................................... 2552
Figure 22-13. CPU Handling of a FIFO Buffer (Interrupt Driven)...........................................................................................2557
Figure 22-14. Bit Timing.........................................................................................................................................................2558
Figure 22-15. Propagation Time Segment.............................................................................................................................2559
Figure 22-16. Synchronization on Late and Early Edges...................................................................................................... 2561
Figure 22-17. Filtering of Short Dominant Spikes..................................................................................................................2562
Figure 22-18. Structure of the CAN Core's CAN Protocol Controller.....................................................................................2564
Figure 22-19. Data Transfer Between IF1 / IF2 Registers and Message RAM..................................................................... 2568
Figure 22-20. Structure of a Message Object........................................................................................................................2569
Figure 22-21. Message RAM Representation in Debug Mode.............................................................................................. 2573
Figure 22-22. CAN_CTL Register..........................................................................................................................................2577
Figure 22-23. CAN_ES Register............................................................................................................................................2580
Figure 22-24. CAN_ERRC Register...................................................................................................................................... 2582
Figure 22-25. CAN_BTR Register......................................................................................................................................... 2583
Figure 22-26. CAN_INT Register...........................................................................................................................................2585
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 39
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
40 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
Figure 23-27. USB Transmit Functional Address Endpoint n Registers (USBTXFUNCADDR[n])........................................ 2687
Figure 23-28. USB Transmit Hub Address Endpoint n Registers (USBTXHUBADDR[n]).....................................................2688
Figure 23-29. USB Transmit Hub Port Endpoint n Registers (USBTXHUBPORT[n])............................................................2689
Figure 23-30. USB Receive Functional Address Endpoint n Registers (USBFIFO[n])..........................................................2690
Figure 23-31. USB Receive Hub Address Endpoint n Registers (USBRXHUBADDR[n])..................................................... 2691
Figure 23-32. USB Receive Hub Port Endpoint n Register (USBRXHUBPORT[n]).............................................................. 2692
Figure 23-33. USB Control and Status Endpoint 0 Low Register (USBCSRL0) in Host Mode............................................. 2693
Figure 23-34. USB Control and Status Endpoint 0 Low Register (USBCSRL0) in Device Mode..........................................2694
Figure 23-35. USB Control and Status Endpoint 0 High Register (USBCSRH0) in Host Mode............................................ 2696
Figure 23-36. USB Control and Status Endpoint 0 High Register (USBCSRH0) in Device Mode........................................ 2697
Figure 23-37. USB Receive Byte Count Endpoint 0 Register (USBCOUNT0)...................................................................... 2698
Figure 23-38. USB Type Endpoint 0 Register (USBTYPE0)................................................................................................. 2698
Figure 23-39. USB NAK Limit Register (USBNAKLMT)........................................................................................................ 2699
Figure 23-40. USB Maximum Transmit Data Endpoint n Registers (USBTXMAXP[n])......................................................... 2700
Figure 23-41. USB Transmit Control and Status Endpoint n Low Register (USBTXCSRL[n]) in Host Mode........................ 2701
Figure 23-42. USB Transmit Control and Status Endpoint n Low Register (USBTXCSRL[n]) in Device Mode.................... 2702
Figure 23-43. USB Transmit Control and Status Endpoint n High Register (USBTXCSRH[n]) in Host Mode.......................2704
Figure 23-44. USB Transmit Control and Status Endpoint n High Register (USBTXCSRH[n]) in Device Mode................... 2705
Figure 23-45. USB Maximum Receive Data Endpoint n Registers (USBRXMAXP[n])......................................................... 2706
Figure 23-46. USB Receive Control and Status Endpoint n Low Register (USBRXCSRL[n]) in Host Mode........................ 2707
Figure 23-47. USB Receive Control and Status Endpoint n Low Register (USBRXCSRL[n]) in Device Mode.....................2708
Figure 23-48. USB Receive Control and Status Endpoint n High Register (USBRXCSRH[n]) in Host Mode....................... 2710
Figure 23-49. USB Receive Control and Status Endpoint n High Register (USBRXCSRH[n]) in Device Mode....................2711
Figure 23-50. USB Receive Byte Count Endpoint n Register (USBRXCOUNT[n])............................................................... 2712
Figure 23-51. USB Host Transmit Configure Type Endpoint n Registers (USBTXTYPE[n])................................................. 2713
Figure 23-52. USB Host Transmit Interval Endpoint n Registers (USBTXINTERVAL[n])...................................................... 2714
Figure 23-53. USB Host Configure Receive Type Endpoint n Register (USBRXTYPE[n])................................................... 2715
Figure 23-54. USB Host Receive Polling Interval Endpoint n Registers (USBRXINTERVAL[n])...........................................2716
Figure 23-55. USB Request Packet Count in Block Transfer Endpoint n Registers (USBRQPKTCOUNT[n])......................2717
Figure 23-56. USB Receive Double Packet Buffer Disable Register (USBRXDPKTBUFDIS).............................................. 2718
Figure 23-57. USB Transmit Double Packet Buffer Disable Register (USBTXDPKTBUFDIS)..............................................2719
Figure 23-58. USB External Power Control Register (USBEPC).......................................................................................... 2720
Figure 23-59. USB External Power Control Raw Interrupt Status Register (USBEPCRIS)...................................................2722
Figure 23-60. USB External Power Control Interrupt Mask Register (USBEPCIM).............................................................. 2723
Figure 23-61. USB External Power Control Interrupt Status and Clear Register (USBEPCISC).......................................... 2724
Figure 23-62. USB Device RESUME Raw Interrupt Status Register (USBDRRIS).............................................................. 2725
Figure 23-63. USB Device RESUME Raw Interrupt Status Register (USBDRRIS).............................................................. 2726
Figure 23-64. USB Device RESUME Interrupt Status and Clear Register (USBDRISC)...................................................... 2727
Figure 23-65. USB General-Purpose Control and Status Register (USBGPCS).................................................................. 2728
Figure 23-66. USB DMA Select Register (USBDMASEL)..................................................................................................... 2729
Figure 24-1. uPP Integration..................................................................................................................................................2749
Figure 24-2. Functional Block Diagram................................................................................................................................. 2750
Figure 24-3. RX in SDR or DDR (Non-Demux) Mode........................................................................................................... 2751
Figure 24-4. RX in DDR (Demux) Mode................................................................................................................................ 2751
Figure 24-5. TX in SDR (Non-Interleave) or DDR (Non-Demux) Mode.................................................................................2751
Figure 24-6. TX in SDR (Interleave) or DDR (Demux) Mode................................................................................................ 2751
Figure 24-7. IO Output Clock Generation for TX Mode......................................................................................................... 2752
Figure 24-8. IO Input Clock for RX Mode.............................................................................................................................. 2752
Figure 24-9. Structure of DMA Window and Lines in Memory...............................................................................................2754
Figure 24-10. uPP Receive in SDR Mode............................................................................................................................. 2756
Figure 24-11. uPP Transmit in SDR Mode.............................................................................................................................2756
Figure 24-12. uPP Transmit in SDR Mode – Interleaving......................................................................................................2757
Figure 24-13. uPP Receive DDR Case................................................................................................................................. 2757
Figure 24-14. uPP Transmit DDR Case.................................................................................................................................2757
Figure 24-15. uPP Tx Data Pattern in Non-Interleaved Mode............................................................................................... 2758
Figure 24-16. uPP Rx Data Pattern in Non-Interleaved Mode...............................................................................................2758
Figure 24-17. PID Register.................................................................................................................................................... 2766
Figure 24-18. PERCTL Register............................................................................................................................................2767
Figure 24-19. CHCTL Register.............................................................................................................................................. 2769
Figure 24-20. IFCFG Register............................................................................................................................................... 2770
Figure 24-21. IFIVAL Register............................................................................................................................................... 2772
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 41
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
42 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 43
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
List of Tables
Table 1-1. C2000Ware Root Directories.................................................................................................................................... 76
Table 2-1. TMU Supported Instructions..................................................................................................................................... 80
Table 2-2. Viterbi Decode Performance..................................................................................................................................... 81
Table 2-3. Complex Math Performance..................................................................................................................................... 81
Table 3-1. Reset Signals............................................................................................................................................................84
Table 3-2. PIE Channel Mapping............................................................................................................................................... 92
Table 3-3. CPU Interrupt Vectors............................................................................................................................................... 94
Table 3-4. PIE Interrupt Vectors.................................................................................................................................................95
Table 3-5. Access to EALLOW-Protected Registers................................................................................................................101
Table 3-6. Clock Connections Sorted by Clock Domain...........................................................................................................110
Table 3-7. Clock Connections Sorted by Module Name...........................................................................................................111
Table 3-8. Clock Source (OSCCLK) Failure Detection.............................................................................................................114
Table 3-9. Example Watchdog Key Sequences....................................................................................................................... 119
Table 3-10. LPM Entry and Exit Criteria...................................................................................................................................123
Table 3-11. Local Shared RAM................................................................................................................................................ 126
Table 3-12. Global Shared RAM.............................................................................................................................................. 126
Table 3-13. Error Handling in Different Scenarios....................................................................................................................131
Table 3-14. Mapping of ECC Bits in Read Data from ECC/Parity Address Map..................................................................... 132
Table 3-15. Mapping of Parity Bits in Read Data from ECC/Parity Address Map....................................................................132
Table 3-16. CLA Access Filter................................................................................................................................................. 147
Table 3-17. RAM Status...........................................................................................................................................................148
Table 3-18. Security Levels......................................................................................................................................................148
Table 3-19. System Control Registers Impacted..................................................................................................................... 160
Table 3-20. System Control Base Address Table.................................................................................................................... 166
Table 3-21. CPUTIMER_REGS Registers...............................................................................................................................167
Table 3-22. CPUTIMER_REGS Access Type Codes.............................................................................................................. 167
Table 3-23. TIM Register Field Descriptions............................................................................................................................168
Table 3-24. PRD Register Field Descriptions.......................................................................................................................... 169
Table 3-25. TCR Register Field Descriptions...........................................................................................................................170
Table 3-26. TPR Register Field Descriptions...........................................................................................................................172
Table 3-27. TPRH Register Field Descriptions........................................................................................................................ 173
Table 3-28. PIE_CTRL_REGS Registers................................................................................................................................ 174
Table 3-29. PIE_CTRL_REGS Access Type Codes................................................................................................................174
Table 3-30. PIECTRL Register Field Descriptions...................................................................................................................176
Table 3-31. PIEACK Register Field Descriptions.....................................................................................................................177
Table 3-32. PIEIER1 Register Field Descriptions.................................................................................................................... 178
Table 3-33. PIEIFR1 Register Field Descriptions.................................................................................................................... 180
Table 3-34. PIEIER2 Register Field Descriptions.................................................................................................................... 182
Table 3-35. PIEIFR2 Register Field Descriptions.................................................................................................................... 184
Table 3-36. PIEIER3 Register Field Descriptions.................................................................................................................... 186
Table 3-37. PIEIFR3 Register Field Descriptions.................................................................................................................... 188
Table 3-38. PIEIER4 Register Field Descriptions.................................................................................................................... 190
Table 3-39. PIEIFR4 Register Field Descriptions.................................................................................................................... 192
Table 3-40. PIEIER5 Register Field Descriptions.................................................................................................................... 194
Table 3-41. PIEIFR5 Register Field Descriptions.................................................................................................................... 196
Table 3-42. PIEIER6 Register Field Descriptions.................................................................................................................... 198
Table 3-43. PIEIFR6 Register Field Descriptions.................................................................................................................... 200
44 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 45
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
46 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 47
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
48 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 49
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
50 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 51
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
52 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 53
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
54 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 55
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
56 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 57
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
58 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 59
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
60 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 61
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
62 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 63
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
64 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
Table 21-16. Bit Values Required to Configure the McBSP as an SPI Master ..................................................................... 2433
Table 21-17. Bit Values Required to Configure the McBSP as an SPI Slave ....................................................................... 2434
Table 21-18. Register Bits Used to Reset or Enable the McBSP Receiver Field Descriptions..............................................2436
Table 21-19. Reset State of Each McBSP Pin.......................................................................................................................2436
Table 21-20. Register Bit Used to Enable/Disable the Digital Loopback Mode..................................................................... 2437
Table 21-21. Receive Signals Connected to Transmit Signals in Digital Loopback Mode.....................................................2437
Table 21-22. Register Bits Used to Enable/Disable the Clock Stop Mode.............................................................................2437
Table 21-23. Effects of CLKSTP, CLKXP, and CLKRP on the Clock Scheme....................................................................... 2438
Table 21-24. Register Bit Used to Enable/Disable the Receive Multichannel Selection Mode..............................................2438
Table 21-25. Register Bit Used to Choose One or Two Phases for the Receive Frame....................................................... 2438
Table 21-26. Register Bits Used to Set the Receive Word Lengths.......................................................................................2439
Table 21-27. Register Bits Used to Set the Receive Frame Length...................................................................................... 2440
Table 21-28. How to Calculate the Length of the Receive Frame......................................................................................... 2440
Table 21-29. Register Bit Used to Enable/Disable the Receive Frame-Synchronization Ignore Function.............................2441
Table 21-30. Register Bits Used to Set the Receive Companding Mode.............................................................................. 2442
Table 21-31. Register Bits Used to Set the Receive Data Delay........................................................................................... 2444
Table 21-32. Register Bits Used to Set the Receive Sign-Extension and Justification Mode................................................2446
Table 21-33. Example: Use of RJUST Field With 12-Bit Data Value ABCh...........................................................................2446
Table 21-34. Example: Use of RJUST Field With 20-Bit Data Value ABCDEh......................................................................2446
Table 21-35. Register Bits Used to Set the Receive Interrupt Mode..................................................................................... 2447
Table 21-36. Register Bits Used to Set the Receive Frame Synchronization Mode..............................................................2448
Table 21-37. Select Sources to Provide the Receive Frame-Synchronization Signal and the Effect on the FSR Pin........... 2449
Table 21-38. Register Bit Used to Set Receive Frame-Synchronization Polarity.................................................................. 2449
Table 21-39. Register Bits Used to Set the SRG Frame-Synchronization Period and Pulse Width...................................... 2451
Table 21-40. Register Bits Used to Set the Receive Clock Mode..........................................................................................2452
Table 21-41. Receive Clock Signal Source Selection............................................................................................................2453
Table 21-42. Register Bit Used to Set Receive Clock Polarity...............................................................................................2453
Table 21-43. Register Bits Used to Set the Sample Rate Generator (SRG) Clock Divide-Down Value................................ 2455
Table 21-44. Register Bit Used to Set the SRG Clock Synchronization Mode...................................................................... 2455
Table 21-45. Register Bits Used to Set the SRG Clock Mode (Choose an Input Clock)....................................................... 2456
Table 21-46. Register Bits Used to Set the SRG Input Clock Polarity................................................................................... 2456
Table 21-47. Register Bits Used to Place Transmitter in Reset Field Descriptions............................................................... 2458
Table 21-48. Register Bit Used to Enable/Disable the Digital Loopback Mode..................................................................... 2459
Table 21-49. Receive Signals Connected to Transmit Signals in Digital Loopback Mode.....................................................2459
Table 21-50. Register Bits Used to Enable/Disable the Clock Stop Mode.............................................................................2459
Table 21-51. Effects of CLKSTP, CLKXP, and CLKRP on the Clock Scheme....................................................................... 2460
Table 21-52. Register Bits Used to Enable/Disable Transmit Multichannel Selection........................................................... 2460
Table 21-53. Use of the Transmit Channel Enable Registers................................................................................................ 2461
Table 21-54. Register Bit Used to Choose 1 or 2 Phases for the Transmit Frame................................................................ 2463
Table 21-55. Register Bits Used to Set the Transmit Word Lengths......................................................................................2463
Table 21-56. Register Bits Used to Set the Transmit Frame Length......................................................................................2464
Table 21-57. How to Calculate Frame Length....................................................................................................................... 2464
Table 21-58. Register Bit Used to Enable/Disable the Transmit Frame-Synchronization Ignore Function............................2465
Table 21-59. Register Bits Used to Set the Transmit Companding Mode..............................................................................2466
Table 21-60. Register Bits Used to Set the Transmit Data Delay.......................................................................................... 2467
Table 21-61. Register Bit Used to Set the Transmit DXENA (DX Delay Enabler) Mode....................................................... 2469
Table 21-62. Register Bits Used to Set the Transmit Interrupt Mode.....................................................................................2469
Table 21-63. Register Bits Used to Set the Transmit Frame-Synchronization Mode.............................................................2470
Table 21-64. How FSXM and FSGM Select the Source of Transmit Frame-Synchronization Pulses................................... 2470
Table 21-65. Register Bit Used to Set Transmit Frame-Synchronization Polarity..................................................................2471
Table 21-66. Register Bits Used to Set SRG Frame-Synchronization Period and Pulse Width............................................ 2472
Table 21-67. Register Bit Used to Set the Transmit Clock Mode...........................................................................................2473
Table 21-68. How the CLKXM Bit Selects the Transmit Clock and the Corresponding Status of the MCLKX pin.................2473
Table 21-69. Register Bit Used to Set Transmit Clock Polarity..............................................................................................2473
Table 21-70. McBSP Emulation Modes Selectable with FREE and SOFT Bits of SPCR2....................................................2475
Table 21-71. Reset State of Each McBSP Pin.......................................................................................................................2475
Table 21-72. Receive Interrupt Sources and Signals.............................................................................................................2481
Table 21-73. Transmit Interrupt Sources and Signals............................................................................................................2482
Table 21-74. Error Flags........................................................................................................................................................ 2482
Table 21-75. McBSP Mode Selection.................................................................................................................................... 2483
Table 21-76. McBSP Base Address Table............................................................................................................................. 2485
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 65
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
66 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 67
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
Table 23-38. USB Control and Status Endpoint 0 High Register (USBCSRH0) in Device Mode Field Descriptions............ 2697
Table 23-39. USB Receive Byte Count Endpoint 0 Register (USBCOUNT0) Field Descriptions.......................................... 2698
Table 23-40. USB Type Endpoint 0 Register (USBTYPE0) Field Descriptions..................................................................... 2698
Table 23-41. USB NAK Limit Register (USBNAKLMT) Field Descriptions............................................................................ 2699
Table 23-42. USB Maximum Transmit Data Endpoint n Registers (USBTXMAXP[n]) Field Descriptions............................. 2700
Table 23-43. USB Transmit Control and Status Endpoint n Low Register (USBTXCSRL[n]) in Host Mode Field
Descriptions....................................................................................................................................................................... 2701
Table 23-44. USB Transmit Control and Status Endpoint n Low Register (USBTXCSRL[n]) in Device Mode Field
Descriptions....................................................................................................................................................................... 2702
Table 23-45. USB Transmit Control and Status Endpoint n High Register (USBTXCSRH[n]) in Host Mode Field
Descriptions....................................................................................................................................................................... 2704
Table 23-46. USB Transmit Control and Status Endpoint n High Register (USBTXCSRH[n]) in Device Mode Field
Descriptions....................................................................................................................................................................... 2705
Table 23-47. USB Maximum Receive Data Endpoint n Registers (USBRXMAXP[n]) Field Descriptions............................. 2706
Table 23-48. USB Receive Control and Status Endpoint n Low Register (USBRXCSRL[n]) in Host Mode Field
Descriptions....................................................................................................................................................................... 2707
Table 23-49. USB Receive Control and Status Endpoint n Low Register (USBRX CSRL[n]) in Device Mode Field
Descriptions....................................................................................................................................................................... 2708
Table 23-50. USB Receive Control and Status Endpoint n High Register (USBRXCSRH[n]) in Host Mode Field
Descriptions....................................................................................................................................................................... 2710
Table 23-51. USB Receive Control and Status Endpoint n High Register (USBRXCSRH[n]) in Device Mode Field
Descriptions........................................................................................................................................................................2711
Table 23-52. USB Receive Byte Count Endpoint n Register (USBRXCOUNT[n]) Field Descriptions................................... 2712
Table 23-53. USB Host Transmit Configure Type Endpoint n Registers (USBTXTYPE[n]) Field Descriptions..................... 2713
Table 23-54. USB Host Transmit Interval Endpoint n Registers (USBTXINTERVAL[n]) Frame Numbers.............................2714
Table 23-55. USB Host Transmit Interval Endpoint n Registers (USBTXINTERVAL[n]) Field Descriptions.......................... 2714
Table 23-56. USB Host Configure Receive Type Endpoint n Register (USBRXTYPE[n]) Field Descriptions....................... 2715
Table 23-57. USB Host Receive Polling Interval Endpoint n Registers (USBRXINTERVAL[n]) Frame Numbers................. 2716
Table 23-58. USB Host Receive Polling Interval Endpoint n Registers (USBRXINTERVAL[n]) Field Descriptions...............2716
Table 23-59. USB Request Packet Count in Block Transfer Endpoint n Registers (USBRQPKTCOUNT[n]) Field
Descriptions....................................................................................................................................................................... 2717
Table 23-60. USB Receive Double Packet Buffer Disable Register (USBRXDPKTBUFDIS) Field Descriptions.................. 2718
Table 23-61. USB Transmit Double Packet Buffer Disable Register (USBTXDPKTBUFDIS) Field Descriptions..................2719
Table 23-62. USB External Power Control Register (USBEPC) Field Descriptions.............................................................. 2720
Table 23-63. USB External Power Control Raw Interrupt Status Register (USBEPCRIS) Field Descriptions.......................2722
Table 23-64. USB External Power Control Interrupt Mask Register (USBEPCIM) Field Descriptions.................................. 2723
Table 23-65. USB External Power Control Interrupt Status and Clear Register (USBEPCISC) Field Descriptions.............. 2724
Table 23-66. USB Device RESUME Raw Interrupt Status Register (USBDRRIS) Field Descriptions.................................. 2725
Table 23-67. USB Device RESUME Raw Interrupt Status Register (USBDRRIS) Field Descriptions.................................. 2726
Table 23-68. USB Device RESUME Interrupt Status and Clear Register (USBDRISC) Field Descriptions.......................... 2727
Table 23-69. USB General-Purpose Control and Status Register (USBGPCS) Field Descriptions...................................... 2728
Table 23-70. USB DMA Select Register (USBDMASEL) Field Descriptions......................................................................... 2729
Table 23-71. USB Registers to Driverlib Functions................................................................................................................2731
Table 24-1. uPP Signal Description....................................................................................................................................... 2753
Table 24-2. CPU/CLA/uPP-DMA Address Map..................................................................................................................... 2761
Table 24-3. CPU/CLA/uPP-DMA Address Map..................................................................................................................... 2761
Table 24-4. uPP Parameters Useful for System Tuning........................................................................................................ 2763
Table 24-5. UPP Base Address Table....................................................................................................................................2763
Table 24-6. UPP_REGS Registers........................................................................................................................................ 2764
Table 24-7. UPP_REGS Access Type Codes........................................................................................................................2764
Table 24-8. PID Register Field Descriptions.......................................................................................................................... 2766
Table 24-9. PERCTL Register Field Descriptions..................................................................................................................2767
Table 24-10. CHCTL Register Field Descriptions.................................................................................................................. 2769
Table 24-11. IFCFG Register Field Descriptions....................................................................................................................2770
Table 24-12. IFIVAL Register Field Descriptions................................................................................................................... 2772
Table 24-13. THCFG Register Field Descriptions..................................................................................................................2773
Table 24-14. RAWINTST Register Field Descriptions........................................................................................................... 2775
Table 24-15. ENINTST Register Field Descriptions...............................................................................................................2777
Table 24-16. INTENSET Register Field Descriptions............................................................................................................ 2779
Table 24-17. INTENCLR Register Field Descriptions............................................................................................................ 2781
Table 24-18. CHIDESC0 Register Field Descriptions............................................................................................................2783
68 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 69
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
70 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Table of Contents
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 71
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Table of Contents www.ti.com
72 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Read This First
Preface
Read This First
Note
Texas Instruments is transitioning to use more inclusive terminology. Some language may be different
than what you 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 http://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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 73
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Read This First www.ti.com
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™, Texas Instruments™, and controlSUITE™ 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.
74 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com C2000™ Microcontrollers Software Support
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.................................................................................................................................................................76
1.2 C2000Ware Structure................................................................................................................................................. 76
1.3 Documentation............................................................................................................................................................76
1.4 Devices........................................................................................................................................................................ 76
1.5 Libraries...................................................................................................................................................................... 76
1.6 Code Composer Studio™ Integrated Development Environment (IDE)................................................................76
1.7 SysConfig and PinMUX Tool......................................................................................................................................77
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 75
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
C2000™ Microcontrollers Software Support www.ti.com
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.
76 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com C2000™ Microcontrollers Software Support
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 77
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
C28x Processor www.ti.com
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.................................................................................................................................................................79
2.2 C28X Related Collateral............................................................................................................................................. 79
2.3 Features.......................................................................................................................................................................79
2.4 Floating-Point Unit......................................................................................................................................................80
2.5 Trigonometric Math Unit (TMU)................................................................................................................................. 80
2.6 Viterbi, Complex Math, and CRC Unit II (VCU-II)......................................................................................................81
78 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com C28x Processor
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
• How fast is your 32-bit MCU?
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 79
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
C28x Processor www.ti.com
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.
80 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com C28x Processor
• Cyclic Redundancy Check: Cyclic redundancy check (CRC) algorithms provide a straightforward method
for verifying data integrity over large data blocks, communication packets, or code sections. The C28x+VCU
can perform 8-bit, 16-bit, 24-bit, and 32-bit CRCs. For example, the VCU can compute the CRC for a block
length of 10 bytes in 10 cycles. A CRC result register contains the current CRC, which is updated whenever a
CRC instruction is executed.
• Complex Math: Complex math is used in many applications, a few are:
– Fast Fourier Transform (FFT): The complex FFT is used in spread spectrum communications, as well as
in many signal processing algorithms.
– Complex filters: Complex filters improve data reliability, transmission distance, and power efficiency. The
C28x+VCU can perform a complex I and Q multiply with coefficients (four multiplies) in a single cycle. In
addition, the C28x+VCU can read/write the real and imaginary parts of 16-bit complex data to memory in a
single cycle.
Table 2-3 shows a summary of a few complex math operations enabled by the VCU-II.
Table 2-3. Complex Math Performance
Complex Math Operation VCU Cycles Notes
Multiply 2p 16 x 16 = 32-bit
RPT MAC 2p+N Repeat MAC. Single cycle after the first operation.
Note
Only the CRC-related VCU instructions are supported in future devices. FFT algorithms are available
for the C28x+FPU.
For more information, see the TMS320C28x Extended Instruction Sets Technical Reference Manual.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 81
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Chapter 3
System Control and Interrupt
This chapter explains system control and interrupts found on the MCU. The system control module configures
and manages the overall operation of the device and provides information about the device status. Configurable
features in system control include reset control, NMI operation, power control, clock control, and low-power
modes.
3.1 Introduction.................................................................................................................................................................83
3.2 System Control Functional Description................................................................................................................... 83
3.3 Resets..........................................................................................................................................................................84
3.4 Peripheral Interrupts.................................................................................................................................................. 87
3.5 Exceptions and Non-Maskable Interrupts................................................................................................................99
3.6 Safety Features.........................................................................................................................................................101
3.7 Clocking.....................................................................................................................................................................104
3.8 32-Bit CPU Timers 0/1/2............................................................................................................................................116
3.9 Watchdog Timers...................................................................................................................................................... 118
3.10 Low-Power Modes.................................................................................................................................................. 121
3.11 Memory Controller Module.................................................................................................................................... 125
3.12 Flash and OTP Memory..........................................................................................................................................133
3.13 Dual Code Security Module (DCSM)..................................................................................................................... 147
3.14 JTAG........................................................................................................................................................................ 160
3.15 System Control Register Configuration Restrictions......................................................................................... 160
3.16 Software.................................................................................................................................................................. 161
3.17 System Control Registers......................................................................................................................................166
82 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
3.1 Introduction
On this device, the CPU1 subsystem acts as a master, and by default (upon reset) owns all the configuration
and control. Through software running on CPU1, peripherals and I/Os can be configured to be accessible by the
CPU2 subsystem and the configuration chosen can be locked. All peripherals are available on CPU1, but not all
peripherals are available on CPU2. To see what peripherals can be configured for CPU2, consult the CPUSELn
registers in the DEV_CFG_REGS section.
The PLL clock configuration is also owned by the CPU1 subsystem by default, but a clock control semaphore is
provided by which CPU2 can grab access to the clock configuration registers.
Each CPU has an NMI module to handle different exceptions during run time. If the NMI was on CPU1, any NMI
exception that is unhandled before the NMI Watchdog (NMIWD) timer expiration resets the entire device. If the
NMI was on the CPU2 subsystem, then the CPU2 subsystem alone is reset, in which case the CPU1 subsystem
is informed by another NMI that the CPU2 subsystem was reset because of NMIWD timer expiration.
Each CPU subsystem a watchdog timer module for software to use. Watchdog timer expiration on CPU2 resets
the CPU2 subsystem alone when configured to generate a reset, but watchdog timer expiration on CPU1 resets
the entire device.
Except for a CPU2 standalone internal reset such as CPU2.NMIWD or CPU2.WD each time the device is reset,
the CPU2 subsystem is held under reset until the CPU1 subsystem brings the CPU2 subsystem out of reset.
This is done by the boot ROM software running on the CPU1 core.
This chapter explains the register space of the device system control module that is divided into three
categories:
1. System Control Device Configuration Registers (DEV_CFG_REGS). These registers are mapped to CPU1
only. The base address of these registers on the CPU1 address space begins at 0x5D000.
2. System Control Clock Configuration Registers (CLK_CFG_REGS). These registers are mapped to both
CPU1 and CPU2 address space but access control is based on a Clock Control Semaphore register. The
base address of these registers on both the CPU subsystems begins at 0x5D200.
3. System control CPU Subsystem Registers (CPU_SYS_REGS). These registers are mapped to both the
CPU subsystems. The base address of these registers on both the CPU subsystems begins at 0x5D300.
This chapter explains the system control module on both the CPU subsystems.
3.2 System Control Functional Description
The system control module provides the following capabilities:
• Device identification and configuration registers
• Reset control
• Exceptions and Interrupt control
• Safety and error handling features of the device
• Power control
• Clock control
• Low Power modes
• Security module
• Inter-Processor Communication (IPC)
3.2.1 Device Identification
Device identification registers provide information on device class, device family, revision, part number, pin
count, operating temperature range, package type, and device qualification status.
All of the device information is part of the DEV_CFG_REGS space and is accessible only by the software
running on the CPU1 subsystem.
The control subsystem device identification registers are: PARTIDL, PARTIDH, and REVID.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 83
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
A 256-bit Unique ID (UID) is available in UID_REGS. The 256 bits are separated into these registers:
• UID_PSRAND0-5: 192 bits of pseudo-random data
• UID_UNIQUE: 32-bit unique data, the value in this register is unique across all devices with the same
PARTIDH
• UID_CHECKSUM: 32-bit Fletcher checksum of UID_PSRAND0-5 and UID_UNIQUE
• CPU ID: 16-bit location in OTP memory. The value at this location provides the information about the CPU
(CPU1 or CPU2). Refer to the device data sheet for more detail.
84 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Note
After a POR, XRS, CPU1.WDRS, CPU1.NMIWDRS, or HIBRESET, the boot ROMs clear all of the
system and message RAMs on both CPUs. After a CPU2.WDRS or CPU2.NMIWDRS, the CPU2 boot
ROM clears all of the CPU2 system and message RAMs.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 85
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Neither SYSRS resets the ICEPick debug module, the device capability registers, the clock source and PLL
configurations, the missing clock detection state, the PIE vector fetch error handler address, the NMI flags, the
analog trims, or anything reset only by a POR (see Section 3.3.3).
3.3.5 Watchdog Reset (WDRS)
Each CPU has a watchdog timer that can optionally trigger a reset that lasts for 512 INTOSC1 cycles.
CPU1's watchdog reset (CPU1.WDRS) produces an XRS. CPU2 watchdog reset (CPU2.WDRS) produces a
CPU2.SYSRS and triggers an NMI on CPU1.
After a watchdog reset, the WDRSn bit in RESC is set.
3.3.6 NMI Watchdog Reset (NMIWDRS)
Each CPU has a non-maskable interrupt (NMI) module that detects hardware errors in the system. Each
NMI module has a watchdog timer that triggers a reset, if the CPU does not respond to an error within a
user-specified amount of time. The CPU1 NMI watchdog reset (CPU1.NMIWDRS) produces an XRS. The CPU2
NMI watchdog reset (CPU2.NMIWDRS) produces a CPU2.SYSRS and triggers an NMI on CPU1.
After an NMI watchdog reset, the NMIWDRSn bit in RESC is set.
3.3.7 DCSM Safe Code Copy Reset (SCCRESET)
Each CPU has a dual-zone code security module (DCSM) that blocks read access to certain areas of the Flash
memory. To facilitate CRC checks and copying of CLA code, TI provides ROM functions to securely access
those memory areas. To prevent security breaches, interrupts must be disabled before calling these functions.
If a vector fetch occurs in a safe copy or CRC function, the DCSM triggers a reset. The CPU1 security reset
(CPU1.SCCRESET) is similar to a CPU1.SYSRS, and the CPU2 security reset (CPU2.SCCRESET) is similar to
a CPU2.SYSRS. However, the security reset also resets the debug logic to deny access to a potential attacker.
After a security reset, the SCCRESETn bit in RESC is set.
3.3.8 Hibernate Reset (HIBRESET)
Hibernate is a chip-level low-power mode that gates power to large portions of the device. Waking up from
hibernate involves a special reset (HIBRESET). This reset is similar to a POR except that the I/O pins remain
isolated and the XRS pin is not toggled. (An external XRS toggle during hibernate triggers a HIBRESET). I/O
isolation is disabled in software as part of a special boot ROM flow. For more information on hibernate, refer to
Section 3.10.
After a hibernate reset, the HIBRESETn bit in RESC is set. This bit is then cleared by the boot ROM.
3.3.9 Hardware BIST Reset (HWBISTRS)
Each CPU has a Hardware Built-In Self Test (HWBIST) module that tests the functionality of the CPU. At the end
of the test, it resets the CPU to return it to a working state. This reset (HWBISTRS) only affects the CPU itself.
The peripherals and system control remain as previously configured. The CPU state is restored in software as
part of a special boot ROM flow. For more information on the HWBIST flow, contact your local TI representative.
After a HWBIST reset, the HWBISTn bit in RESC is set. This bit is then cleared by the boot ROM.
3.3.10 Test Reset (TRST)
The ICEPick debug module and associated JTAG logic has a reset (TRST) that is controlled by a dedicated pin.
This reset is normally active unless the user connects a debugger to the device. For more information on the
debug module, see the TI Processors Wiki page on ICEPick: http://processors.wiki.ti.com/index.php/ICEPICK.
The TRST does not have a normal RESC bit, but the TRSTn_pin_status bit indicates the state of the pin.
86 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 87
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
CPU1.TINT0
CPU1.TIMER0
CPU1.LPMINT
LPM Logic CPU1.WAKEINT
CPU1.WD CPU1.NMIWD NMI
CPU1.TINT0 CPU1
Peripherals
CPU1.NMIWD NMI
CPU2
CPU2.XINT1 Control
CPU2.XINT2 Control INT1
To
CPU2.XINT3 Control CPU2
INT12
ePIE
CPU2.XINT4 Control
CPU2.XINT5 Control
CPU2.TINT1
CPU2.LPMINT CPU2.TIMER1 INT13
LPM Logic CPU2.WAKEINT
CPU2.TINT0 CPU2.TINT2
CPU2.WD CPU2.TIMER2 INT14
CPU2.TINT0
CPU2.TIMER0
88 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
PIEIERx.2
Peripheral 0 Set
PIEIFRx.2 1 PIEACK.x IER.x ST1.INTM
Interrupt
Latch 1 0 1
CPU
B 0 IFR.x 1 0
Interrupt
Latch
Logic
PIEIERx.16
0
Peripheral
PIEIFRx.16 1
Interrupt
Latch
P
When a peripheral generates an interrupt (on PIE group x, channel y), the following sequence of events is
triggered:
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 RPT instruction cannot
be interrupted.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 89
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
90 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 91
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Note
Cells marked "-" are Reserved
92 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 93
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
94 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 95
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
96 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 97
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
98 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 99
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
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.
100 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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.
(1) The EALLOW bit is overridden via the JTAG port, allowing full access of protected registers during debug from the Code Composer
Studio™ IDE interface.
At reset, the EALLOW bit is cleared, enabling EALLOW protection. While protected, all writes to protected
registers by the CPU are ignored and only CPU reads, JTAG reads, and JTAG writes are allowed. If this bit
is set, 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.
3.6.2 Missing Clock Detection Logic
The missing clock detect (MCD) logic detects OSCCLK failure, using INTOSC1 as the reference clock source.
This circuit only detects complete loss of OSCCLK and doesn’t do any detection of frequency drift on the
OSCCLK.
This circuit monitors the OSCLK (primary clock) using the 10 MHz clock provided by the INTOSC1 (secondary
clock) as a backup clock. This circuit functions as following.
1. The primary clock (OSCCLK) clock keeps ticking a 7-bit counter (named as MCDPCNT). This counter is
asynchronously reset with XRS.
2. The secondary clock (INTOSC1) clock keeps ticking a 13-bit counter (named as MCDSCNT). This counter is
asynchronously reset with XRS.
3. Each time MCDPCNT overflows, the MCDSCNT counter is reset. Thus, if OSCCLK is present or is not
slower than INTOSC1 by a factor of 64, MCDSCNT never overflows.
4. If OSCCLK stops for some reason or is slower than INTOSC1 by at least a factor of 64, the MCDSCNT
overflows and a missing clock condition is detected on OSCCLK.
5. The above check is continuously active, unless the MCD is disabled using MCDCR register (by making the
MCLKOFF bit 1)
6. If the circuit ever detects a missing OSCCLK, the following occurs:
• The MCLKSTS flag is set.
• The MCDSCNT counter is frozen to prevent further missing clock detection.
• The CLOCKFAIL signal goes high, which generates TRIP events to PWM modules and fires NMIs to
CPU1.NMIWD and CPU2.NMIWD.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 101
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
• PLL is forcefully bypassed and OSCCLK is switched to INTOSC1 (after the PLLSYSCLK divider).
PLLMULT is zeroed out automatically in this case.
• While the MCLKSTS bit is set, the OSCCLKSRCSEL bits have no effect and OSCCLK is forcefully
connected to INTOSC1.
• PLLRAWCLK going to the system is switched to INTOSC1 automatically.
7. If the MCLKCLR bit is written (W = 1 bit), MCLKSTS bit are cleared and OSCCLK source is decided by the
OSCCLKSRCSEL bits. Writing to MCLKCLR also clears the MCDPCNT and MCDSCNT counters to allow
the circuit re-evaluate missing clock detection. To lock the PLL after a missing clock detection, switch the
clock source to INTOSC1 (using OSCCLKSRCSEL register), do a MCLKCLR, and re-lock the PLL.
8. The MCD is enabled at power up. There is no support for a missing clock detection, if INTOSC2 is failed
from the device power-up.
Figure 3-3 shows the missing clock logic functional flow.
CLKSRCCTL1.OSCCLRSRCSEL /1,
Switch
SYSPLL /2,
Ckt
/4
Mux
PLLRAWCLK ..
(glitch- PLLSYSCLK
/124
PLL Locking free)
/126
Registers Control
Ckt
Clock Dividers
Note
On a complete clock failure when OSCCLK is dead, it can take a maximum time of 8192 INTOSC1
cycles (that is, 0.8192 ms) before the CLOCKFAIL signal goes high, after which:
• NMI is generated
• OSCCLK is switched to INTOSC1
• PWM trip happens
102 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 103
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
CPU1.NMIWD.NMISHDFLG.Bit-0
CPU1.NMIWD.NMISHDFLG.Bit-1
CPU1.NMIWD.NMISHDFLG.Bit-15
CPU2.NMIWD.NMISHDFLG.Bit-0
CPU2.NMIWD.NMISHDFLG.Bit-1
CPU2.NMIWD.NMISHDFLG.Bit-15
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 provides an overview of the device clocking system.
Note
While the CLK_CFG_REGS registers are mapped to both CPU1 and CPU2, there are not unique
settings per CPU, and the impact of these registers is global. Only one CPU can read/write to these
registers at a time; this is controlled by the Clock Control Semaphore Register (CLKSEM) in the
CLK_CFG_REGs. This register is unique in that either CPU can read and write to the register.
The default/2 divider for ePWMs and EMIFs is not shown in Figure 3-5.
104 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
CPU1.PCLKCRx CPUSELx
PERx.SYSCLK To peripherals
CPU2.PCLKCRx
CPU2.PCLKCRx
EPWMCLKDIV CPUSELx
CPU1.PCLKCRx
PLLSYSCLK /1
EPWMCLK To ePWMs
/2
CPU2.PCLKCRx
To CLBs
HRPWM
CPU1.PCLKCRx
CPUSELx
CLKSRCCTL2
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 105
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
VDDOSC X1 VSSOSC X2
3.3V NC
3.3V
Clk
VDD OUT
GND
3.3V Oscillator
• An external crystal. The crystal must be connected across X1 and X2 with the load capacitors connected to
VSSOSC as shown in Figure 3-7.
VDDOSC X1 VSSOSC X2
3.3V
Crystal
RD CL2 CL1
106 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
• An external resonator. The resonator must be connected across X1 and X2 with the ground connected to
VSSOSC as shown in Figure 3-8.
VDDOSC X1 VSSOSC X2
3.3V
Resonator
Note
All 3 external clocking modes require the XTALOFF bit in CLKSRCCTL1 register to be set to 0. This
enables the path and circuitry required for the clock to propagate to the device.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 107
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
108 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 109
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
110 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 111
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
If CAN or USB is required, an external clock source with a precise frequency must be used as a reference clock.
Otherwise, it can be possible to use only INTOSC2 and avoid the need for more external components.
3.7.6.1 Choosing PLL Settings
There are two settings to configure for each PLL – a multiplier and a divider. They obey the formulas:
fPLLSYSCLK = fOSCCLK * (SYSPLLMULT.IMULT + SYSPLLMULT.FMULT) / SYSCLKDIVSEL.PLLSYSCLKDIV
fAUXPLLCLK = fAUXOSCCLK * (AUXPLLMULT.IMULT + AUXPLLMULT.FMULT) / AUXCLKDIVSEL.AUXPLLDIV
where fOSCCLK is the system oscillator clock frequency, fAUXOSCCLK is the auxiliary oscillator clock frequency,
IMULT and FMULT are the integral and fractional parts of the multipliers, PLLSYSCLKDIV is the system clock
divider, and AUXPLLDIV is the auxiliary clock divider. For the permissible values of the multipliers and dividers,
see the documentation for their respective registers.
Many combinations of multiplier and divider can produce the same output frequency. However, the product of the
reference clock frequency and the multiplier (known as the VCO frequency) must be in the range specified in the
data sheet.
Note
The system clock frequency (PLLSYSCLK) may not exceed the limit specified in the datasheet. This
limit does not allow for oscillator tolerance.
The clock source and PLL configuration registers are shared between the two CPUs. Register access is
controlled via a semaphore, which is described in the Inter-Processor Communication chapter.
3.7.6.2 System Clock Setup
Once the application requirements are understood, a specific clock configuration can be determined. The default
configuration is for INTOSC2 to be used as the system clock (PLLSYSCLK) with a divider of 1. The following
procedure must be used to set up the desired application configuration:
1. Select the reference clock source (OSCCLK) by writing to CLKSRCCTL1.OSCCLKSRCSEL.
2. Set up the system PLL: (see the InitSysPll() function in your devices controlSUITE installation for an
example):
a. Bypass the PLL by clearing SYSPLLCTL1[PLLCLKEN].
b. Set the system clock divider to /1 to make sure of the fastest PLL configuration by clearing
SYSCLKDIVSEL[ PLLSYSCLKDIV].
c. Set the integral and fractional multipliers by simultaneously writing them both to SYSPLLMULT. This
automatically enables the PLL. Be sure that the product of OSCCLK and the multiplier is in the range
specified in the data sheet.
d. Lock the PLL five times (see your device errata for details). This number can be increased depending on
application requirements. A higher number of lock attempts helps to make sure of a successful PLL start.
e. Set the system clock divider one setting higher than the final desired value. For example
ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV = divsel + 1. This limits the current increase when
switching to the PLL.
f. Set up the watchdog to reset the device. Note that the SCRS[WDOVERRIDE] bit must not be cleared
prior to locking the PLL.
g. Set the SYSDBGCTL[BIT_0] bit. This bit is only reset by a POR reset. If the watchdog has to reset
the device due to an issue with switching to the PLL, this bit can be checked in the reset handler to
determine the reset was caused by a PLL error.
h. Switch to the PLL as the system clock by setting SYSPLLCTL1[PLLCLKEN].
i. Clear the SYSDBGCTL[BIT_0] bit.
j. Change the divider to the appropriate value.
k. Reconfigure the watchdog as needed for the application.
112 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Note
If the CPU2 changes the OSCCLK source, CPU2 does not automatically bypass the PLL. The CPU2
must manually bypass the PLL first by writing a 0 to SYSPLLCTL1.PLLCLKEN.
Note
If the AUXOSCCLK source is changed on the same AUXOSCCLK cycle as the multiplier, the PLL is
disabled but the AUXPLLMULT register shows the written value. This can happen when the system
PLL is enabled before configuring the auxiliary PLL (CPUCLK >> AUXOSCCLK). To avoid this issue,
wait 2 AUXOSCCLK cycles between changing the clock source and writing to AUXPLLMULT.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 113
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
SYSPLLMULT.IMULT = 26 (0x1A)
SYSCLKDIVSEL.PLLSYSCLKDIV = 4 (0x2)
SYSPLLCTL1.PLLCLKEN = 1
PERCLKDIVSEL.EPWMCLKDIV = 1 (0x0)
PERCLKDIVSEL.EMIF1CLKDIV = 1 (0x0)
PERCLKDIVSEL.EMIF2CLKDIV = 1 (0x0)
CLKSRCCTL2.AUXOSCCLKSRCSEL = 0x1
AUXPLLMULT.IMULT = 8 (0x08)
AUXCLKDIVSEL.AUXPLLDIV = 2 (0x1)
AUXPLLCTL1.PLLCLKEN = 1
This gives a PLLRAWCLK of 397.5 MHz and an AUXPLLRAWCLK of 120 MHz, both of which are in the
acceptable range. The CPU frequency is 99.375 MHz. Crystals have tight frequency tolerances, which can keep
the system clock from exceeding 100 MHz. The USB frequency is exactly 60 MHz. Since the CPU frequency is
less than 100 MHz, the ePWM and EMIF clock dividers can be set to /1.
Example 2: Using INTOSC2 (10 MHz) as a reference, generates a CPU frequency of 200 MHz - 3%:
CLKSRCCTL1.OSCCLKSRCSEL = 0x0
SYSPLLMULT.IMULT = 38 (0x26)
SYSPLLMULT.FMULT = .75 (0x3)
SYSCLKDIVSEL.PLLSYSCLKDIV = 2 (0x1)
SYSPLLCTL1.PLLCLKEN = 1
114 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
1. The primary clock (OSCCLK) clock keeps ticking a 7-bit counter (named as MCDPCNT). This counter is
asynchronously reset with XRS.
2. The secondary clock (INTOSC1) clock keeps ticking a 13-bit counter (named as MCDSCNT). This counter is
asynchronously reset with XRS.
3. Each time MCDPCNT overflows, the MCDSCNT counter is reset. Thus, if OSCCLK is present or is not
slower than INTOSC1 by a factor of 64, MCDSCNT never overflows.
4. If OSCCLK stops for some reason or is slower than INTOSC1 by at least a factor of 64, the MCDSCNT
overflows and a missing clock condition is detected on OSCCLK.
5. The above check is continuously active, unless the MCD is disabled using MCDCR register (by making the
MCLKOFF bit 1)
6. If the circuit ever detects a missing OSCCLK, the following occurs:
• The MCLKSTS flag is set.
• The MCDSCNT counter is frozen to prevent further missing clock detection.
• The CLOCKFAIL signal goes high, which generates TRIP events to PWM modules and fires NMIs to
CPU1.NMIWD and CPU2.NMIWD.
• PLL is forcefully bypassed and OSCCLK is switched to INTOSC1 (after the PLLSYSCLK divider).
PLLMULT is zeroed out automatically in this case.
• While the MCLKSTS bit is set, the OSCCLKSRCSEL bits have no effect and OSCCLK is forcefully
connected to INTOSC1.
• PLLRAWCLK going to the system is switched to INTOSC1 automatically.
7. If the MCLKCLR bit is written (W = 1 bit), MCLKSTS bit are cleared and OSCCLK source is decided by the
OSCCLKSRCSEL bits. Writing to MCLKCLR also clears the MCDPCNT and MCDSCNT counters to allow
the circuit re-evaluate missing clock detection. To lock the PLL after a missing clock detection, switch the
clock source to INTOSC1 (using OSCCLKSRCSEL register), do a MCLKCLR, and re-lock the PLL.
8. The MCD is enabled at power up. There is no support for a missing clock detection, if INTOSC2 is failed
from the device power-up.
Figure 3-10 shows the missing clock logic functional flow.
CLKSRCCTL1.OSCCLRSRCSEL /1,
Switch
SYSPLL /2,
Ckt
/4
Mux
PLLRAWCLK ..
(glitch- PLLSYSCLK
/124
PLL Locking free)
/126
Registers Control
Ckt
Clock Dividers
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 115
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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.8192 ms) before the CLOCKFAIL signal goes high, after which:
• NMI is generated
• OSCCLK is switched to INTOSC1
• PWM trip happens
Note
If a source other than SYSCLK is used for CPU-Timer2, the SYSCLK frequency must be at least twice
the source frequency to make sure of correct sampling.
The CPU-Timer2 pre-scaler is implemented as a post-scale of the results
Reset
Timer reload
Borrow
TINT
116 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
INT1 TINT0
to PIE TIMER0
INT12
28x
CPU
TINT1
INT13 TIMER1
TINT2
INT14 TIMER2
A. The timer registers are connected to the memory bus of the C28x processor.
B. The CPU Timers are synchronized to SYSCLKOUT.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 117
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
WDCR(WDPS(2:0)) WDCR(WDDIS)
WDCNTR(7:0)
WDWCR(MIN(7:0))
WDKEY(7:0) Watchdog
In Window
Watchdog Window
Good Key Out of Window
Key Detector Detector
Bad Key
55 + AA
WDRSTn
Generate
512-WDCLK
WDINTn Watchdog Timeout
Output Pulse
SCSR(WDENINT)
118 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Step 3 in Table 3-9 is the first action that enables the WDCNTR to be reset. The WDCNTR is not actually reset
until step 6. Step 8 again re-enables the WDCNTR to be reset and step 9 resets the WDCNTR. Step 10 again
re-enables the WDCNTR to be reset. Writing the wrong key value to the WDKEY in step 11 causes no action,
however the WDCNTR is no longer enabled to be reset and the 0xAA in step 12 now has no effect.
If the watchdog is configured to reset the device, then a WDCR overflow or writing the incorrect value to the
WDCR[WDCHK] bits resets the device and set the watchdog flag (WDRSn) in the reset cause register (RESC).
After a reset, the program can read the state of this flag to determine whether the reset was caused by the
watchdog. After doing this, the program must clear WDRSn to allow subsequent watchdog resets to be detected.
Watchdog resets are not prevented when the flag is set.
3.9.2 Minimum Window Check
To complement the timeout mechanism, the watchdog also contains an optional "windowing" feature that
requires a minimum delay between counter resets. This can help protect against error conditions that bypass
large parts of the normal program flow but still include watchdog handling.
To set the window minimum, write the desired minimum watchdog count to the WDWCR register. This value
takes effect after the next WDKEY sequence. From then on, any attempt to service the watchdog when
WDCNTR is less than WDWCR triggers a watchdog interrupt or reset. When WDCNTR is greater than or equal
to WDWCR, the watchdog can be serviced normally.
At reset, the window minimum is zero, which disables the windowing feature.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 119
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
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.
120 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
3.10.1 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. When one
CPU is in IDLE, there is no effect on the other CPU subsystem.
Any enabled interrupt wakes up the CPU from IDLE mode.
To enter IDLE mode, set LPMCR.LPM to 0x0 and execute the IDLE instruction.
3.10.2 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. Like IDLE, this mode affects only one
CPU subsystem. The other CPU subsystem and all of the peripherals are unaffected. STANDBY is best for an
application where the wake-up signal is from an external system (or CPU subsystem) rather than a peripheral
input.
IPC interrupt 1 (flag 0), an NMI fired to the other CPU, or (optionally) a watchdog interrupt, wakes up the CPU
subsystem from STANDBY mode. Any of GPIO0-63 can also be configured to wake up the subsystem when the
GPIOs are driven active low. Upon wakeup, the CPU receives a WAKEINT interrupt, even if the CPU was woken
by an IPCINT1 signal.
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 WAKEINT interrupt can also triggered by IPCINT1 sent from the other CPU and a
watchdog interrupt.
The CPU is now out of STANDBY mode and can resume normal execution.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 121
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
If CPU2 is in STANDBY mode, writing a 1 to the RESET bit of the CPU2RESCTL register has no effect.
CPU2 can be reset by any chip-level reset (POR, XRSn, CPU1.WDRSn, or CPU1.NMIWDRSn) or HIBRESETn.
Alternately, CPU2 can be woken up by any configured wake-up event.
If CPU2 is in STANDBY mode and the debugger is connected, executing a debug reset on CPU2 has no effect.
To wake up the CPU2 with the debugger, Click Run, Single Step, or Step over in the Debug toolbar. CCS IDE
prompts the user requesting to bring the CPU out of the low-power mode. Click Yes. This wakes up CPU2 from
STANDBY and continues execution.
3.10.3 HALT
HALT is a global low-power mode that gates almost all system clocks and allows for power-down of oscillators
and analog blocks. This mode affects both CPU subsystems. HALT can be used for additional power savings
over putting both CPU subsystems in STANDBY, although the options for wakeup are more limited.
Similar to STANDBY, any of GPIO0-63 can be configured to wake up the system from HALT. No other wakeup
option is available. However, CPU1's watchdog can still be clocked, and can be configured to produce a
watchdog reset if a timeout mechanism is needed. On wakeup, both CPUs receive a WAKEINT interrupt.
To enter HALT mode:
1. Disable all interrupts with the exception of the WAKEINT interrupt on both CPUs. The other interrupts can be
reenabled after the device is brought out of HALT mode.
2. Put CPU2 into IDLE mode. (Using STANDBY causes a duplicate WAKEINT on CPU2). CPU1 must verify
this by checking the LPMSTAT register.
3. Set LPMCR.LPM to 0x2. Set GPIOLPMSEL0 and GPIOLPMSEL1 to connect the chosen GPIOs to the LPM
module.
4. Set CLKSRCCTL1.WDHALTI to 1 to keep the CPU1 watchdog active and INTOSC1 and INTOSC2 powered
up in HALT.
5. Set CLKSRCCTL1.WDHALTI to 0 to disable the CPU1 watchdog and power down INTOSC1 and INTOSC2
in HALT.
6. Execute the IDLE instruction on CPU1 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 wakeup, ISR execution resumes where the execution left off.
Note
Before entering HALT mode, if the system PLL is locked (SYSPLL.LOCKS = 1), the system PLL must
also be connected to the system clock (PLLCTL1.PLLCLKEN = 1). Otherwise, the device never wakes
up.
122 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 123
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Note
The bootROM uses locations 0x02-0x122 on CPU1 M0 RAM and locations 0x02-0x80 on CPU2 M0
RAM. To prevent losing any data during HIB wake-up, avoid saving any critical data to these locations.
The application must bypass the PLL before executing the IDLE instruction to enter HIB. If the PLL is
not bypassed when entering HIB, there is a brief current spike on the Vdd supply that can cause the
device to reset.
124 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
For these devices, the RAMs have different characteristics. Some are:
• dedicated to each CPU (M0, M1, and Dx RAMs),
• shared between the CPU and its own CLA (LSx RAM),
• shared between the CPU and DMA of both subsystems (GSx RAM), and
• used to send and receive messages between processors (MSGRAM).
All these RAMs are highly configurable to achieve control for write access and fetch access from different
masters. There are also RAMs - called IPC MSGRAMs - that are used for interprocessor communication. All
dedicated RAMs are enabled with the ECC feature (both data and address) and shared RAMs, as well as IPC
MSGRAMs, are enabled with the PARITY (both data and address) feature. Some of the dedicated memories are
secure memory as well. Refer to Section 3.13 for more details. Each RAM has its own controller that takes care
of the access protection/security related checks and ECC/Parity features for that RAM. Figure 3-14 shows the
configuration of these RAMs.
CPU1.LSx RAM CPU2.LSx RAM
GSx RAM
CPU1.CLA1 TO CPU2.CLA1 TO
CPU1 MSGRAM CPU2 MSGRAM
CPU1.DMA CPU2.DMA
CPU1 CPU2
CPU1.M0 RAM CPU2.M0 RAM
CPU2 TO CPU1
MSGRAM
CPU1.M1 RAM CPU2.M1 RAM
CPU1 TO CPU2
CPU1.Dx RAM MSGRAM CPU2.Dx RAM
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 125
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
configuring the CLAPGM_LSx bit field in the LSxCLAPGM registers. CPU access to all memory blocks, which
are programmed as CLA program memory, are blocked.
All these RAMs have the access protection (CPU write/CPU fetch) feature. Each type of access protection for
each RAM block can be enabled or disabled by configuring the specific bit in the local shared RAM access
protection registers, mapped to each CPU subsystem. Table 3-11 shows the LSx RAM features.
Table 3-11. Local Shared RAM
MSEL_LSx CLAPGM_LSx CPUx CPUx.CLA1 Comment
Allowed Access Allowed Access
00 X All - LSx memory is configured as CPU dedicated RAM
01 0 All Data Read LSx memory is shared between CPU and CLA1
Data Write
01 1 Emulation Read Fetch Only LSx memory is CLA1 program memory
Emulation Write
Note
Emulation/Debugger access is allowed from both CPUs, irrespective of the GSxMSEL setting.
Like other shared RAM, these RAMs also have a different levels of access protection which can be enabled or
disabled by configuring specific bits in the GSxACCPROT registersmapped in each subsystem.
Master select and access protection configuration for each GSx RAM block can be individually locked by the
user to prevent further update to these bit fields. 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 configuration is committed for a particular GSx RAM block, the configuration cannot
be changed further until CPUx. SYSRS is issued. Only the CPU1 software can change the master select
configuration by writing into the GSxMSEL register, mapped on the CPU1. The GSxMSEL register, which is
mapped to the CPU2 subsystem, is a status register that can only be used by CPU2 software to know the
master ownership for each GSx RAM block.
3.11.1.4 CPU Message RAM (CPU MSG RAM)
These RAM blocks can be used to share data between CPU1 and CPU2. Since these RAMs are used for
interprocessor communication, they are also called IPC RAMs. The CPU MSGRAMs have CPU/DMA read/write
access from its own CPU subsystem, and CPU/DMA read only access from the other subsystem.
This RAM has parity.
126 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
CPU1.DMA READ/WRITE
RR-CPU2.DMA RR-CPU1.DMA
CPU2-DWRITE
CPU2
CPU2-DREAD Fixed Granted CPU2 Access
Priority
CPU2-PREAD/FETCH Arbiter
RR-CPU2
CPU2.DMA READ/WRITE
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 127
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
128 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
If a write protection violation occurs, write gets ignored, a flag gets set into the appropriate access violation flag
register, and the memory address for which the access violation occurred, gets latched into the appropriate CPU
write access violation address register. Also, an access violation interrupt is generated if enabled in the interrupt
enable register.
3.11.1.7.3 CPU Read Protection
For local shared RAM, if memory is shared between the CPU and the CLA, the CPU only has access if the
memory is configured as data RAM for the CLA. If the memory is programmed as program RAM, all the access
from the CPU, including a read, is blocked and the violation is considered as a non-master access violation.
If a read protection violation occurs, a flag gets set into the appropriate access violation flag register, and the
memory address for which the access violation occurred, gets latched into the appropriate CPU read access
violation address register. Also, an access violation interrupt is generated, if enabled in the interrupt enable
register.
3.11.1.7.4 CLA Fetch Protection
If local shared RAM is configured as dedicated RAM for the CPU, or if it is configured as data RAM for the CLA,
any fetch access from the CLA to that particular LSx RAM results in a CLA fetch protection violation, which is a
non-master access violation.
If a CLA fetch protection violation occurs, it results in a MSTOP, a flag gets set into the appropriate access
violation flag register, and the memory address for which the access violation occurred, gets latched into the
appropriate CLA fetch access violation address register. Also, an access violation interrupt is generated to the
master CPU if enabled in the interrupt enable register.
3.11.1.7.5 CLA Write Protection
If local shared RAM is configured as dedicated RAM for the CPU, or if it is configured as program RAM for the
CLA, any data write access from the CLA to that particular LSx RAM results in a CLA write protection violation,
which is a non-master access violation.
If a CLA write protection violation occurs, write gets ignored, a flag gets set into the appropriate access violation
flag register, and the memory address for which the access violation occurred, gets latched into the appropriate
CLA write access violation address register. Also, an access violation interrupt is generated to the master CPU if
enabled in the interrupt enable register.
3.11.1.7.6 CLA Read Protection
If local shared RAM is configured as dedicated RAM for the CPU, or if it is configured as program RAM for the
CLA, any data read access from the CLA to that particular LSx RAM results in a CLA read protection violation,
which is a non-master access violation.
If a CLA read protection violation occurs, a flag gets set into the appropriate access violation flag register, and
the memory address for which the access violation occurred, gets latched into the appropriate CLA read access
violation address register. Also, an access violation interrupt is generated to the master CPU if enabled in the
interrupt enable register.
3.11.1.7.7 DMA Write Protection
The CPU1 or CPU2 DMA has write permission to a GSx memory only if the respective subsystem is master for
that memory. When write accesses from a DMA are allowed based on the mastership, write accesses can be
further protected by setting the DMAWRPROTx bit of a specific register to 1’ If write access is done by the DMA
to protected memory, a write protection violation occurs.
There are two types of DMA write protection violations:
• Non-master DMA write protection violation (only applicable to Sx memories)
• Master DMA write protection violation
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 129
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
If a write access is made to GSx memory by a non-master DMA, the write access is called a non-master
write protection violation. If a write access is made to a dedicated or shared memory by a master DMA, and
DMAWRPROTx is set to 1 for that memory, the write access is called a master DMA write protection violation.
If a write protection violation occurs on CPU1, write is ignored and a DMAERR interrupt gets generated, whereas
in the case of CPU2, a write is ignored and an access violation interrupt is generated if enabled in the interrupt
enable register. A flag gets set in the DMA access violation flag register, and the memory address where
the violation happened gets latched in the DMA fetch access violation address register. These are dedicated
registers for each subsystem.
Note 1: All access protections are ignored during debug accesses. Write access to a protected memory
goes 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 3: In the case of local shared RAM, if memory is shared between the CPU and the CLA, the CPU only
has access if the memory is configured as data RAM for the CLA. If the memory is programmed
as program RAM, all the access from the CPU (including read) and data access from the CLA
is blocked, and the violation is considered as a non-master access violation. If the memory is
configured as dedicated to the CPU, all access from the CLA is blocked and the violation is
considered a non-master access violation.
130 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Note
ECC/Parity for address is calculated for address offset only (based on RAM block size) of
corresponding 32-bit aligned address. For example, in case of LSx RAM that are 4-KB RAM block,
only 11 LSBs of 32-bit aligned address are used. So if address is 0x8F8F, address ECC (or Parity)is
calculated for address 0x78E (11-bit offset of 32-bit aligned address). Similarly for 8-KB RAM block,
12-bit address offset is used.
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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 131
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
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.
Table 3-14 shows the bit mapping for the ECC bits when the bits are read in RAMTEST mode using their
respective addresses. Table 3-15 shows the bit mapping for the Parity bits when the bits are read in RAMTEST
mode using their respective addresses.
Table 3-14. 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-15. 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 masters 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.
132 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 133
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Note
Before initializing wait-states, turn off the pre-fetch and data caching in the FRD_INTF_CTRL register.
3.12.4 Flash Bank, One-Time Programmable (OTP) Memory, and Flash Pump
There is a dedicated Flash bank in the CPU1 subsystem called the CPU1 Flash bank and a dedicated Flash
bank in the CPU2 subsystem called the CPU2 Flash bank. Also, there is a one-time programmable (OTP)
memory on the CPU1 subsystem called USER OTP, which the user can program only once and cannot erase.
Flash and OTP memory are uniformly mapped in both program and data memory space.
Both the CPU1 subsystem and CPU2 subsystem have a TI-OTP that contains manufacturing information like
settings used by the Flash state machine for erase and program operations, and so on. Users can read TI-OTP
but the TI-OTP cannot be programmed or erased. For memory-map and size information of the CPU1-Bank,
CPU1 TI-OTP, CPU1 USER OTP, CPU2 Flash bank, CPU2 TI-OTP, CPU2 USER-OTP, and corresponding ECC
locations, refer to the device data sheet.
The CPU1 Flash bank/USER OTP and CPU2 Flash bank/USER OTP share a common Flash pump. A hardware
semaphore, called the Flash pump semaphore, is provided to control the access of the Flash pump between the
CPU1 subsystem and CPU2 subsystem.
Figure 3-23 depicts the user-programmable OTP memory locations in CPU1 USER-OTP and CPU2 USER-OTP.
For more information on the functionality of these fields, refer to Section 3.13 and Chapter 4.
134 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
CPU2-Bank
CPU2 Core
CPU2-FMC
Pump
CPU1-FMC
CPU1 Core
Pump Semaphore
CPU1 System Clock
CPU1-Bank
The CPU2 in the CPU2 subsystem interfaces with the CPU2 Flash module controller (CPU2-FMC) which in turn,
interfaces with the CPU2 Flash bank and shared pump to perform erase and program operations as well as to
read data and execute code from the CPU2 Flash bank. Control signals to the Flash pump are controlled by
either CPU2-FMC or CPU1-FMC, depending on who gains the Flash pump semaphore.
There is a state machine in both CPU1-FMC and CPU2-FMC that generates the erase and program sequences
in hardware. This simplifies the Flash API software that configures control registers in the FMC to perform Flash
erase and program operations (see TMS320F2837xD Flash API Version 1.54 Reference Guide, for details on
Flash API).
3.12.6 Flash and OTP Memory Power-Down Modes and Wakeup
The Flash bank and pump consume a significant amount of power when active. The Flash module provides a
mechanism to power-down Flash banks and pump. Special timers automatically sequence the power-up of the
CPU1 Flash bank and CPU2 Flash bank independently of each other. The shared charge pump module has an
independent power-up timer as well.
The Flash bank and OTP memory operate in three power modes: Sleep (lowest power), Standby, and Active
(highest power)
• Sleep State: This is the state after a device reset. In this state, a CPU data read or opcode fetch
automatically initiates a change in power mode to the standby state and then to the active state. During
this transition time to the active state, the CPU is automatically stalled.
• Standby State: This state uses more power than the sleep state, but takes a shorter time to transition to the
active or read state. In this state, a CPU data read or opcode fetch automatically initiates a change in power
mode to the active state. During this transition time to the active state, the CPU is automatically stalled. Once
the Flash/OTP memory has reached the active state, the CPU access completes as normal.
• Active or Read State: In this state, the bank and pump are in active power mode state (highest power).
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 135
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
136 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 137
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
This prefetch mechanism does a look-ahead prefetch on linear address increments starting from the address of
the last instruction fetch. The Flash prefetch mechanism is disabled by default. Setting the PREFETCH_EN bit in
the FRD_INTF_CTRL register enables this prefetch mode.
An instruction fetch from the Flash or OTP memory reads out 128 bits per access. The starting address of the
access from Flash is automatically aligned to a 128-bit boundary, such that the instruction location is within the
128 bits to be fetched. With the Flash prefetch mode enabled, the 128 bits read from the instruction fetch are
stored in a 128-bit wide by 2-level deep instruction prefetch buffer. The contents of this prefetch buffer are then
sent to the CPU for processing as required.
Up to four 32-bit or eight 16-bit instructions can reside within a single 128-bit access. The majority of C28x
instructions are 16 bits, so for every 128-bit instruction fetch from the Flash bank, it is likely that there are up to
eight instructions in the prefetch buffer ready to process through the CPU. During the time it takes to process
these instructions, the Flash prefetch mechanism automatically initiates another access to the Flash bank to
prefetch the next 128 bits. In this manner, the Flash prefetch mechanism works in the background to keep the
instruction prefetch buffers as full as possible. Using this technique, the overall efficiency of sequential code
execution from Flash or OTP memory is improved significantly.
Note
If the prefetch mechanism is enabled, then the last two rows (16 16-bit words, 256 bits) of the bank
that does not have a valid address beyond the boundary must not be used, because the prefetch logic
that does a look-ahead prefetch tries to fetch from outside the bank and can result in an ECC error.
The Flash prefetch is aborted only on a PC discontinuity caused by executing an instruction such as a branch,
BANZ, 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 memory, the prefetch aborts and then resumes at the
destination address.
138 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
2. If the destination address is outside of the Flash and OTP memory, the prefetch is aborted and begins
again only when a branch is made back into the Flash or OTP memory. 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 buffer capability and thus bypass the prefetch buffer. For example, instructions
such as MAC, DMAC, and PREAD read a data value from program memory. When this 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.
3.12.8.1.2.1 Data Cache
Along with the prefetch mechanism, a data cache of 128-bits wide is also implemented to improve data-space
read performance. This data cache is not filled by the prefetch mechanism. When any kind of data-space read
is made by the CPU from an address in the bank, and if the data corresponding to the requested address is
not in the data cache, then 128 bits of data is read from the bank and loaded in the data cache. This data
is eventually sent to the CPU for processing. The starting address of the access from Flash 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. By default, this data cache is disabled and can be enabled by setting DATA_CACHE_EN bit in the
FRD_INTF_CTRL register. Note that the data cache gets bypassed when RWAIT is configured as zero.
Some other points to keep in mind when working with Flash/ OTP memory:
• Reads of the USER OTP locations are hardwired for 10 wait states. The RWAIT bits have no effect on these
locations.
• CPU writes to the Flash or OTP memory-map areas are ignored. The writes complete in a single cycle.
• If a security zone is in the locked state and the respective password lock bits are not all 1s, then,
– Data reads to Zx-CSMPSWD return 0
– Program space reads to Zx-CSMPSWD return 0
– Program fetches to Zx-CSMPSWD return 0
• When the Code Security Module (CSM) is secured, reads to the Flash/OTP memory-map area from outside
the secure zone take the same number of cycles as a normal access. However, the read operation returns a
zero.
• The arbitration scheme in FMC prioritizes CPU accesses in the fixed priority order of data read (highest
priority), program space read and program fetches/program prefetches (lowest priority).
• When FSM interface is active for erase/program operations, data in the prefetch buffers and data cache in
FMC are flushed.
• When data cache is enabled, the debugger memory window open to Flash/OTP memory space invokes data
caching. Hence, the debugger memory window must not be left open for Flash/OTP memory space when
benchmarking the code for performance.
Note
Flash contents are verified for ECC correctness before the contents enter the prefetch buffer or data
cache and not inside the prefetch buffer or data cache itself.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 139
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
140 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Data[127:64]
ECC[7:0]
During an instruction fetch or a data read operation, the 19 most-significant address bits (3 least-significant
bits of address are not considered), together with the 64-bit data/8-bit ECC read-out of Flash banks/ECC
memory-map area, pass through the SECDED logic and the eight checkbits are produced in FMC. These eight
calculated ECC check bits are then XORed with the stored check bits (user programmed check bits) associated
with the address and the read data. The 8-bit output is decoded inside the SECDED module to determine one of
three conditions:
• No error occurred
• A correctable error (single bit data error) occurred
• A non-correctable error (double bit data error or address error) occurred
If the SECDED logic finds a single-bit error in the address field, then the error is considered to be a non-
correctable error.
Note
TI recommends programming ECC while programming Flash to avoid any error. Since ECC is
calculated for an entire 64-bit data, a non 64-bit read such as a byte read or a half-word read still
forces the entire 64-bit data to be read and calculated, but only the byte or half-word is actually used
by the CPU.
This ECC (SECDED) feature is enabled at reset. The ECC_ENABLE register can be used to configure( enable/
disable) the ECC feature. The ECC for the application code must be programmed. There are two SECDED
modules in each FMC. Out of the 128-bit data (aligned on a 128-bit memory boundary) read from the bank/OTP
memory address, the lower 64-bits of data and corresponding 8 ECC bits (read from user programmable ECC
memory area) are fed as inputs to one SECDED module along with 128-bit aligned 19-bit address from where
data has been read. The upper 64- bits of data and corresponding 8 ECC bits are fed as inputs to another
SECDED module in parallel, along with 128-bit aligned 19-bit address. Each of the SECDED modules evaluate
their inputs and determine if there is any single-bit data error or double-bit data error/address error.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 141
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
ECC logic is bypassed when the 64 data bits and the associated ECC bits fetched from the bank are either all
ones or zeros.
3.12.10.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 it 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 data, the lower 64-bit memory-aligned address is captured in the SINGLE_ERR_ADDR_LOW
register. If the single-bit error occurs in the upper 64-bits of a 128-bit memory-aligned data, the upper 64-bit
memory-aligned address 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 data.
• Bit position at which 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 data.
• 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 THRESHOLD+1 value and a single bit error occurs, the SINGLE_ERR_INT
flag is set, and an interrupt (FLASH_CORRECTABLE_ERR on C28x PIE has to be enabled for interrupt, if
needed) is fired. The SINGLE_ERR interrupt is not fired again until the SINGLE_ERR_INTFLG is cleared. If the
single error interrupt flag is not cleared using the corresponding error interrupt clear bit in the ERR_INTCLR
register, the error interrupt does not come again, as this is an edge-based interrupt.
When multiple single-bit errors get caught by ECC logic, Flash ECC registers hold the information related to the
latest ECC error. When multiple single-bit errors get caught, both FAIL_0_L and FAIL_1_L (and/or FAIL_0_H and
FAIL_1_H) might get 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
memory causes the single-bit error flag to get set when there is a single-bit error in both or in either one of the
lower 64 and upper 64 bits (or corresponding ECC check bits) of that 128-bit data.
3.12.10.2 Uncorrectable Error
Uncorrectable errors include address errors and double-bit errors in data/ECC. When SECDED finds
uncorrectable errors, the following information is logged in ECC registers if the ECC feature is enabled:
• Address where the error occurred – if the uncorrectable error occurs in the lower 64-bits of a 128-bit
memory-aligned data, the lower 64-bit memory-aligned address is captured in the UNC_ERR_ADDR_LOW
register. If the uncorrectable error occurs in the upper 64-bits of a 128-bit memory-aligned data, the upper
64-bit memory-aligned address is captured in the UNC_ERR_ADDR_HIGH register.
• A flag is set indicating that an uncorrectable error occurred – the UNC_ERR_L and UNC_ERR_H flags in the
ERR_STATUS register indicate the uncorrectable error occurrence 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 data.
• A flag is set indicating that an uncorrectable error interrupt is fired (UNC_ERR_INTFLG in ERR_INTFLG
register)
142 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
When an uncorrectable error occurs, the UNC_ERR_INTFLG bit is set and an uncorrectable error interrupt is
fired. This uncorrectable error interrupt generates an NMI, if enabled. If an uncorrectable error interrupt flag is
not cleared using the corresponding error interrupt clear bit in the ERR_INTCLR register, an error interrupt does
not come again, as this is an edge based interrupt.
Although ECC is calculated on 64-bit basis, a read of any address location within a 128-bit aligned Flash
memory causes the uncorrectable error flag to get set when there is a uncorrectable error in both or in either one
of the lower 64 and upper 64 bits (or corresponding ECC check bits) of that 128-bit data. NMI occurs on the CPU
for a read of any address location within a 128-bit aligned Flash memory, when there is an uncorrectable error in
both or in either one of the lower 64 and upper 64 bits (or corresponding ECC check bits) of that 128-bit data.
3.12.10.3 SECDED Logic Correctness Check
Since error detection and correction logic are part of safety-critical logic, safety applications need to make sure
that the SECDED logic is always working properly. For these safety concerns, make sure the correctness of
the SECDED logic, an ECC test mode is provided to test the correctness of ECC logic periodically. In this
ECC test mode, data/ECC and address inputs to the ECC logic are controlled by the ECC test mode registers
FDATAH_TEST, FDATAL_TEST, FECC_TEST, and FADDR_TEST, respectively. Using this test mode, users
can introduce single-bit errors, double-bit errors, or address errors and check whether or not SECDED logic is
catching those errors. Users can also check if SECDED logic is reporting any false errors when no errors are
introduced.
This ECC test mode can be enabled by setting the ECC_TEST_EN bit in the FECC_CTRL register. When
ECC test mode is enabled, the CPU cannot read the data from Flash and instead the CPU gets data from
the ECC test mode registers (FDATAH_TEST/FDATAL_TEST). This is because ECC test mode registers
(FDATAH_TEST, FDATAL_TEST, FECC_TEST) are multiplexed with data from the Flash. Hence, the CPU must
not read/fetch from Flash when ECC test mode is enabled. For this reason, ECC test mode code must be
executed from RAM and not from Flash.
Only one of the SECDED modules (out of the two SECDED modules that work on lower 64 bits and upper 64
bits of a read 128-bit data) at a time can be tested. The ECC_SELECT bit in the FECC_CTRL register can be
configured by users to select one of the SECDED modules for test.
To test the ECC logic using ECC test mode, users can follow the steps below:
1. Obtain the ECC for a given Flash address (128-bit aligned) and 64-bit data by using the Auto ECC
generation option provided in Flash API .
2. Develop an application to test ECC logic using the above data. In this application
• Write the 128-bit aligned 19-bit Flash address in FADDR_TEST
• Write 64-bit data in FDATAH_TEST (upper 32-bits) and FDATAL_TEST (lower 32-bits) registers
• Write the corresponding 8-bit ECC in the FECC_TEST register
• In any of the above three steps, users can insert errors (single-bit data error or double-bit data error or
address error or single-bit ECC error or double-bit ECC error) to check whether or not ECC logic is able
to catch the errors
• Select the ECC logic block (lower 64-bits or upper 64-bits) which needs to be tested using the
ECC_SELECT bit in the FECC_CTRL register
• Enable ECC test mode using the ECC_TEST_EN bit in FECC_CTRL register
• Write a value of 1 in the DO_ECC_CALC bit in FECC_CTRL register to enable ECC test logic for a single
cycle to evaluate the address, data, ECC in FADDR_TEST, FDATAx_TEST and FECC_TEST registers
for ECC errors
Once the above ECC test mode registers are written by the user:
• The FECC_OUTH register holds the data output bits 63:32 from the SECDED block under test
• The FECC_OUTL register holds the data output bits 31:0 from the SECDED block under test
• The FECC_STATUS register holds the status of single-bit error occurrence, uncorrectable error occurrence,
and error position of single- bit error in data/check bits
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 143
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
144 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
8. For EABI type executable: All uninitialized sections mapped to RAM are defined as NOINIT sections (using
the directive “type=NOINIT”) in the linker cmd file.
Each CPU is only allowed to take control of the pump for itself. Direct transfer between the 01 and 10 states is
not allowed. However, CPU1 can force both semaphores into the default state (00) at any time by putting CPU2
into reset. Figure 3-20 shows the allowed states and state transitions.
CPU1 should write 10 to gain pump CPU2 should write 01 to gain pump
control before erasing or programming Semaphore state 00 or 11 control before erasing or programming
its flash bank. its flash bank.
Pump controlled by CPU1
Figure 3-20. Flash Pump Semaphore (PUMPREQUEST) States and State Transitions
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 145
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
00 or 11 Either CPU can write to the semaphore. CPU1 has control of the clock configuration
registers by default. 00 is the reset state.
01 CPU2 has exclusive control of the clock configuration registers and exclusive write
access to the semaphore.
10 CPU1 has exclusive control of the clock configuration registers and exclusive write
access to the semaphore.
Each CPU is only allowed to take control of the clock configuration registers for itself. However, CPU1 can force
both semaphores into the default state (00) at any time by putting CPU2 into reset. Figure 3-21 shows the
allowed states and state transitions.
CPU1 should write 10 to gain CPU2 should write 01 to gain
mastership of the clock configuration Semaphore state 00 or 11 mastership of the clock configuration
registers. registers.
Clock configuration registers
are controlled by CPU1
CPU1 should write 00 to relinquish
Default at reset CPU2 should write 00 to relinquish
mastership once configuration is
mastership once configuration is
complete.
complete.
CPU2 cannot take control of the pump in this CPU1 cannot take control of the pump in this
state state
146 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
None Z1 or Z2 No No No
Z1 Z2 No No No
Z2 Z1 No No No
• RAM: All Dx and LSx RAMs can be secure RAM on this device. These RAMs can be allocated to either zone
by configuring the respective GRABRAM location in the USER OTP.
• Flash Sectors: Flash Sectors can be secure on this device. Each Flash sector can be allocated to either
zone by configuring the respective GRABSECT location in the USER OTP.
• Secure ROM: This device also has secure ROM which is EXEONLY-protected. This ROM contains specific
function for the user, provided by TI.
Table 3-17 shows the status of a RAM block based on the configuration in GRABRAM register.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 147
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
The security of each zone is maintained by a 128-bit (four 32-bit words) password (CSM password). The
password for each zone is stored in a dedicated OTP memory location based on a zone-specific link pointer. A
zone can be unsecured by executing the password match flow (PMF), described in Section 3.13.3.3.2.
There are three types of accesses: data/program reads, JTAG access, and instruction fetches (calls, jumps,
code executions, ISRs). Instruction fetches are never blocked. JTAG accesses are always blocked when a
memory is secure. Data reads to a secure memory are always blocked unless the program is executing from
a memory which belongs to the same zone. Data reads to unsecure memory are always allowed. Table 3-18
shows the levels of security.
Table 3-18. Security Levels
PMF Executed With Correct
Password? Operating Mode of the Zone Program Fetch Location Security Description
No Secure Outside secure memory Only instruction fetches by the
CPU are allowed to secure
memory. In other words, code
can still be executed, but not
read.
No Secure Inside secure memory CPU has full access (except
for EXEONLY memories where
read is not allowed). JTAG port
cannot read the secured memory
contents.
Yes Non-Secure Anywhere Full access for CPU and JTAG
port to secure memory of that
zone.
If the password locations of a zone have all 128 bits as ones, the zone is considered unsecure. Since new Flash
devices have erased Flash (all ones), only a read of the password locations is required to bring any zone into
unsecure mode. If the password locations of a zone have all 128 bits as zeros, the zone is secure, regardless
of the contents of the CSMKEY registers. This means the zone cannot be unlocked using PMF, the password
match flow described in Section 3.13.3.3.2. Therefore, the user must never use all zeros as a password. A
password of all zeros prevents debug of secure code or reprogramming the Flash.
CSMKEY registers are user-accessible registers that are used to unsecure the zones.
3.13.1.1 Emulation Code Security Logic (ECSL)
In addition to the CSM, the emulation code security logic (ECSL) has been implemented using a 64-bit password
(part of existing CSM password) for each zone to prevent unauthorized users from stepping through secure
code. A halt in secure code while the emulator is connected trips the ECSL and break the emulation connection
to the specific CPU subsystem for which the ECSL violation occurred. To allow emulation of secure code, while
maintaining the CSM protection against secure memory reads, the user must write the correct 64-bit password
into the CSMKEY (0/1) registers, which matches the password value stored in the USER OTP of that zone. This
disables the ECSL for the specific zone.
148 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
When initially debugging a device with the password locations in OTP memory programmed (secured), the
emulator takes some time to take control of the CPU. During this time, the CPU starts running and executes an
instruction that performs an access to a protected ECSL area and if the CPU is halted when the program counter
(PC) is pointing to a secure location, the ECSL trips and causes the emulator connection to be broken.
A solution to this problem is:
• Use the Wait Boot Mode boot option. In this mode, the CPU is in a loop and hence does not jump to the user
application code. Using this BOOTMODE, the user can connect to CCS and debug the code.
Note
Password unlock only makes password locations non-secure. All other secure memories and other
locations of Flash sectors, which contain a password, remains secure as per security settings. But
since passwords are non-secure, anyone can read the password and make the zone non-secure by
running through PMF.
CAUTION
If the JTAG lock feature is enabled, all future debug of the device through JTAG is disabled. This
specifically impairs TI's ability to analyze devices returned to TI for failure analysis. If the JTAG lock
feature is enabled, TI rejects any return analysis requests.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 149
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
150 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Addr Offset Of
Zx-LINKPOINTER Zone-Select
Block
32’bxxx11111111111111111111111111111 0x20
32’bxxx1111111111111111111111111111 0 0x30
32’bxxx111111111111111111111111111 0x 0x40
32’bxxx11111111111111111111111111 0xx 0x50
32’bxxx1111111111111111111111111 0xxx 0x60
32’bxxx111111111111111111111111 0xxxx 0x70 Zone Select Block
32’bxxx11111111111111111111111 0xxxxx 0x80
32’bxxx1111111111111111111111 0xxxxxx 0x90 Addr Offset 32-Bit Content
32’bxxx111111111111111111111 0xxxxxxx 0xa0
0x0 Zx-EXEONLYRAM
32’bxxx11111111111111111111 0xxxxxxxx 0xb0
32’bxxx1111111111111111111 0xxxxxxxxx 0xc0 0x2 Zx-EXEONLYSECT
32’bxxx111111111111111111 0xxxxxxxxxx 0xd0
32’bxxx11111111111111111 0xxxxxxxxxxx 0xe0 0x4 Zx-GRABRAM
32’bxxx1111111111111111 0xxxxxxxxxxxx 0xf0
32’bxxx111111111111111 0xxxxxxxxxxxxx 0x100 0x6 Zx-GRABSECT
32’bxxx11111111111111 0xxxxxxxxxxxxxx 0x110
0x8 Zx-CSMPSWD0
32’bxxx1111111111111 0xxxxxxxxxxxxxxx 0x120
32’bxxx111111111111 0xxxxxxxxxxxxxxxx 0x130 0xa Zx-CSMPSWD1
32’bxxx11111111111 0xxxxxxxxxxxxxxxxx 0x140
32’bxxx1111111111 0xxxxxxxxxxxxxxxxxx 0x150 0xc Zx-CSMPSWD2
32’bxxx111111111 0xxxxxxxxxxxxxxxxxxx 0x160
32’bxxx11111111 0xxxxxxxxxxxxxxxxxxxx 0x170 0xe Zx-CSMPSWD3
32’bxxx1111111 0xxxxxxxxxxxxxxxxxxxxx 0x180
32’bxxx111111 0xxxxxxxxxxxxxxxxxxxxxx 0x190
32’bxxx11111 0xxxxxxxxxxxxxxxxxxxxxxx 0x1a0
32’bxxx1111 0xxxxxxxxxxxxxxxxxxxxxxxx 0x1b0
32’bxxx111 0xxxxxxxxxxxxxxxxxxxxxxxxx 0x1c0
32’bxxx11 0xxxxxxxxxxxxxxxxxxxxxxxxxx 0x1d0
32’bxxx10xxxxxxxxxxxxxxxxxxxxxxxxxxx 0x1e0
32’bxxx0xxxxxxxxxxxxxxxxxxxxxxxxxxxx 0x1f0
Note
Address locations for other security settings (PSWDLOCK/CRCLOCK) that are not part of Zone Select
blocks can be programmed only once; therefore, the user must program the address locations toward
the end of the development cycle.
Since linkpointer location in USER OTP does not have ECC, the user must always define a separate
structure and section for linkpointers.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 151
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
3.13.1.6.1 C Code Example to get Zone Select Block Addr for Zone1
152 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Note
If there is a loss of power or a reset of any nature during the Flash programming operation, there is
high probability of some (or possibly all) of the 128 bits in the corresponding 128-bit aligned address
getting corrupted. If this happens while programming the password locations in USER OTP, the
passwords can get corrupted.
Note
The user must disable all the interrupts before calling the safe copy code and the safeCRC function. If
there is a vector fetch during copy code operation, the CPU gets reset immediately.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 153
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Disclaimer: Code Security Module 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.
3.13.2 CSM Impact on Other On-Chip Resources
On this device, M0/M1 and GSx memories are not secure. To avoid any potential hacking when the device is
in the default state (post reset), accesses (all types) to all memories (secure as well as non-secure, except
BOOT-ROM and OTP memory) are disabled until proper security initialization is done. This means that after
reset none of the memory resources except BOOT_ROM and OTP memory is accessible to the user.
The following steps are required after reset (any type of reset) to initialize the security on each CPU subsystem.
• Dummy Read to address location of SECDC (0x703F0, TI-reserved register) in TI OTP memory
• Dummy Read to address location of Z1_LINKPOINTER1 in Z1 OTP memory
• Dummy Read to address location of Z1_LINKPOINTER2 in Z1 OTP memory
• Dummy Read to address location of Z1_LINKPOINTER3 in Z1 OTP memory
• Dummy Read to address location of Z1_PSWDLOCK in Z1 OTP memory
• Dummy Read to address location of Z1_CRCLOCK in Z1 OTP memory
• Dummy Read to address location 0x78018 in Z1 OTP memory
• Dummy Read to address location of Z1_BOOTCTRL in Z1 OTP memory
• Read to memory map register of Z1_LINKPOINTER in DCSM module to calculate the address of zone select
block for Z1
• Dummy read to address location of Z1_EXEONLYRAM in Z1 OTP memory
• Dummy read to address location of Z1_EXEONLYSECT in Z1 OTP memory
• Dummy read to address location of Z1_GRABRAM in Z1 OTP memory
• Dummy read to address location of Z1_GRABSECT in Z1 OTP memory
• Dummy Read to address location of Z2_LINKPOINTER1 in Z2 OTP memory
• Dummy Read to address location of Z2_LINKPOINTER2 in Z2 OTP memory
• Dummy Read to address location of Z2_LINKPOINTER3 in Z2 OTP memory
• Dummy Read to address location of Z2_PSWDLOCK in Z2 OTP memory
• Dummy Read to address location of Z2_CRCLOCK in Z2 OTP memory
• Dummy Read to address location 0x78218 in Z2 OTP memory
• Dummy Read to address location of Z2_BOOTCTRL in Z2 OTP memory
• Read to memory map register of Z2_LINKPOINTER in DCSM module to calculate the address of zone select
block for Z2
• Dummy read to address location of Z2_EXEONLYRAM in Z2 OTP memory
• Dummy read to address location of Z2_EXEONLYSECT in Z2 OTP memory
• Dummy read to address location of Z2_GRABRAM in Z2 OTP memory
• Dummy read to address location of Z2_GRABSECT in Z2 OTP memory
Note
Security Initialization is done by BOOTROM code on all the resets that assert SYSRSn (as part of
device initialization). This is not part of the user application code.
154 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 155
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
START
NO
NO Correct
Password?
YES
Zone Unsecure
156 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
3.13.3.3 Unsecuring Considerations for Zones With and Without Code Security
Case 1 and Case 2 provide unsecuring considerations for zones with and without code security.
• Case 1: Zone With Code Security
A zone with code security must have a predetermined password stored in the password locations of that
zone. The following are steps to unsecure any secure zone:
1. Perform a dummy read of the password locations of that zone.
2. Write the password into the CSMKEY registers.
3. If the password is correct, the zone becomes unsecure; otherwise, the zone stays secure.
• Case 2: Zone Without Code Security
A zone without code security must have 0x FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF (128 bits of all
ones) stored in the password locations. The following are steps to use this zone:
1. At reset, the CSM locks memory regions protected by the CSM.
2. Perform a dummy read of the password locations.
3. Since the password is all ones, this unlocks the zone and all the secure memories dedicated to that zone
are fully accessible immediately after this operation is completed.
Note
Even if a zone is not protected with a password (all password locations all ones), the CSM locks at
reset. Thus, a dummy read operation must still be performed on these zones prior to reading, writing, or
programming secure memory if the code performing the access is executing from outside of the CSM
protected memory region. The Boot ROM code does this dummy read for convenience.
volatile long int *CSM = (volatile long int *)0x5F010; //CSM register file
volatile long int *CSMPWL = (volatile long int *)0x78028; //CSM Password location (assuming default
Zone sel block)
volatile int tmp;
int I;
// Read the 128-bits of the CSM password locations (PWL)
//
for (I=0;I<4; I++) tmp = *CSMPWL++;
// If the password locations (CSMPWL) are all = ones (0xFFFF),
// then the zone will now be unsecure. If the password
// is not all ones (0xFFFF), then the code below is required
// to unsecure the CSM.
// Write the 128-bit password to the CSMKEY registers
// If this password matches that stored in the
// CSLPWL then the CSM will become unsecure. If it does not
// match, then the zone will remain secure.
// An example password of:
// 0x11112222333344445555666677778888 is used.
*CSM++ = 0x22221111; // Register Z1_CSMKEY0 at 0x5F010
*CSM++ = 0x44443333; // Register Z1_CSMKEY1 at 0x5F012
*CSM++ = 0x66665555; // Register Z1_CSMKEY2 at 0x5F014
*CSM++ = 0x88887777; // Register Z1_CSMKEY3 at 0x5F016
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 157
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
then Code Composer Studio IDE connections get disconnected, which can be inconvenient for the user. Note
that unlocking ECSL doesn’t enable access to secure code but only avoids disconnection of CCS (JTAG).
3.13.3.5 ECSL Password Match Flow
A password match flow (PMF) is essentially a sequence of eight dummy reads from password locations (PWL)
followed by two writes to KEY registers. Figure 3-25 shows how the PMF helps to initialize the security logic
registers and disable security logic.
START
NO
NO Correct
Password?
YES
158 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
volatile long int *ECSL = (volatile int *)0x5F010; //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++;
// If the ECSL password locations (ECSLPWL) are all = ones (0xFFFF),
// then the ECSL will now be disable. If the password
// is not all ones (0xFFFF), then the code below is required
// to disable the ECSL.
// Write the 64-bit password to the CSMKEYx registers
// If this password matches that stored in the
// CSMPWL then ECSL will get disable. If it does not
// match, then the zone will remain secure.
// An example password of:
// 0x1111222233334444 is used.
*ECSL++ = 0x22221111; // Register Z1_CSMKEY0 at 0x5F010
*ECSL++ = 0x44443333; // Register Z1_CSMKEY1 at 0x5F012
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 159
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
3.14 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 may 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 it), there isdifference in how the application behaves with the
debugger and without.
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
160 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
3.16 Software
3.16.1 SYSCTL Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/sysctl
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
3.16.1.1 Missing clock detection (MCD)
FILE: sysctl_ex1_missing_clock_detection.c
This example demonstrates the missing clock detection functionality and the way to handle it. Once the MCD is
simulated by disconnecting the OSCCLK to the MCD module an NMI would be generated. This NMI determines
that an MCD was generated due to a clock failure which is handled in the ISR.
Before an MCD the clock frequency would be as per device initialization (200Mhz). Post MCD the frequency
would move to 10Mhz or INTOSC1.
The example also shows how we can lock the PLL after missing clock, detection, by first explicitly switching the
clock source to INTOSC1, resetting the missing clock detect circuit and then re-locking the PLL. Post a re-lock
the clock frequency would be 200Mhz but using the INTOSC1 as clock source.
External Connections
• None.
Watch Variables
• fail - Indicates that a missing clock was either not detected or was not handled correctly.
• mcd_clkfail_isr - Indicates that the missing clock failure caused an NMI to be triggered and called an the ISR
to handle it.
• mcd_detect - Indicates that a missing clock was detected.
• result - Status of a successful handling of missing clock detection
3.16.1.2 XCLKOUT (External Clock Output) Configuration
FILE: sysctl_ex2_xclkout_config.c
This example demonstrates how to configure the XCLKOUT pin for observing internal clocks through an external
pin, for debugging and testing purposes.
In this example, we are using INTOSC1 as the XCLKOUT clock source and configuring the divider as 8.
Expected frequency of XCLKOUT = (INTOSC1 freq)/8 = 10/8 = 1.25MHz
View the XCLKOUT on GPIO73 using an oscilloscope.
3.16.2 TIMER Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/timer
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
3.16.2.1 CPU Timers
FILE: timer_ex1_cputimers.c
This example configures CPU Timer0, 1, and 2 and increments a counter each time the timer asserts an
interrupt. In order to migrate the project within syscfg to any device, click the swtich button under the device view
and select your corresponding device to migrate, saving the project will auto-migrate your project settings.
External Connections
• None
Watch Variables
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 161
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
• cpuTimer0IntCount
• cpuTimer1IntCount
• cpuTimer2IntCount
3.16.2.2 CPU Timers
FILE: timer_ex1_cputimers_sysconfig.c
This example configures CPU Timer0, 1, and 2 and increments a counter each time the timer asserts an
interrupt.
This example project has support for migration across our C2000 device families. If you are wanting to build this
project from launchpad or controlCARD, please specify in the .syscfg file the board you're using. At any time you
can select another device to migrate this example. External Connections
• None
Watch Variables
• cpuTimer0IntCount
• cpuTimer1IntCount
• cpuTimer2IntCount
3.16.3 MEMCFG Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/memcfg
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
3.16.4 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.16.4.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
162 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
3.16.4.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
....
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.16.4.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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 163
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
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
• traceISR - shows the order in which ISRs are executed.
3.16.4.4 EPWM Real-Time Interrupt
FILE: interrupt_ex4_epwm_realtime_interrupt.c
This example configures the ePWM1 Timer and increments a counter each time the ISR is executed. ePWM
interrupt can be configured as time critical to demonstrate real-time mode functionality and real-time interrupt
capability.
The example uses 2 LEDs - LED1 is toggled in the main loop and LED2 is toggled in the EPWM Timer
Interrupt. FREE_SOFT bits and DBGIER.INT3 bit must be set to enable ePWM1 interrupt to be time critical and
operational in real time mode after halt command
How to run the example?
• Add the watch variables as mentioned below and enable Continuous Refresh.
• Enable real-time mode (Run->Advanced->Enable Silicon Real-time Mode)
• Initially, the DBGIER register is set to 0 and the EPWM emulation mode is set to
EPWM_EMULATION_STOP_AFTER_NEXT_TB (FREE_SOFT = 0)
• When the application is running, you will find both LEDs toggling and the watch variables
EPwm1TimerIntCount, EPwm1Regs.TBCTR getting updated.
• When the application is halted, both LEDs stop toggling and the watch variables remain constant. EPWM
counter is stopped on debugger halt.
• To enable EPWM counter run during debugger halt, set emulation mode as
EPWM_EMULATION_FREE_RUN (FREE_SOFT = 2). You will find EPwm1Regs.TBCTR is running, but
EPwm1TimerIntCount remains constant. This means, the EPWM counter is running, but the ISRs are not
getting serviced.
• To enable real-time interrupts, set DBGIER.INT3 = 1 (EPWM1 interrupt is part of PIE Group 3). You will
find that the EPwm1TimerIntCount is incrementing and the LED starts toggling. The EPWM ISR is getting
serviced even during a debugger halt.
For more details, watch this video : C2000 Real-Time Features
External Connections
• None
Watch Variables
• EPwm1TimerIntCount - EPWM1 ISR counter
• EPwm1Regs.TBCTR.TBCTR - EPWM1 Time Base counter
• EPwm1Regs.TBCTL.FREE_SOFT - Set this to 2 to enable free run
• DBGIER.INT3 - Set to 1 to enable real time interrupt
164 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 165
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
166 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-22 shows the codes that are used for
access types in this section.
Table 3-22. 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 167
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
168 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 169
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
170 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 171
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
TDDR
R/W-0h
172 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
TDDRH
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 173
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-29 shows the codes that are used for
access types in this section.
Table 3-29. 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
174 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 175
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
PIEVECT ENPIE
R-0h R/W-0h
176 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 177
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
178 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 179
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
180 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 181
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
182 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 183
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
184 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 185
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
186 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 187
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
188 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 189
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 191
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 193
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 195
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 197
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 199
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 201
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 203
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 205
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 207
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 209
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 211
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 213
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 215
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 217
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 219
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 221
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 223
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 225
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-57 shows the codes that are used for
access types in this section.
Table 3-57. WD_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
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.
226 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
RESERVED WDINTS WDENINT WDOVERRIDE
R-0-0h R-1h R/W-0h R/W1C-1h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 227
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
WDCNTR
R-0h
228 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
WDKEY
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 229
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
RESERVED WDDIS WDCHK WDPS
R/W1S-0h R/W-0h R-0/W-0h R/W-0h
230 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
MIN
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 231
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-64 shows the codes that are used for
access types in this section.
Table 3-64. 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
Reset or Default Value
-n Value after reset or the default
value
232 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
RESERVED NMIE
R-0-0h R/W1S-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 233
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
RESERVED PIEVECTERR CPU2HWBISTE CPU1HWBISTE FLUNCERR RAMUNCERR CLOCKFAIL NMIINT
RR RR
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
234 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 235
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
RESERVED PIEVECTERR CPU2HWBISTE CPU1HWBISTE FLUNCERR RAMUNCERR CLOCKFAIL NMIINT
RR RR
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
236 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 237
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
238 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
RESERVED PIEVECTERR CPU2HWBISTE CPU1HWBISTE FLUNCERR RAMUNCERR CLOCKFAIL RESERVED
RR RR
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 239
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
240 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
NMIWDCNT
R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 241
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
NMIWDPRD
R/W-FFFFh
242 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
RESERVED PIEVECTERR CPU2HWBISTE CPU1HWBISTE FLUNCERR RAMUNCERR CLOCKFAIL RESERVED
RR RR
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 243
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
244 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-73 shows the codes that are used for
access types in this section.
Table 3-73. 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 245
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
246 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
RESERVED POLARITY RESERVED ENABLE
R-0-0h R/W-0h R-0-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 247
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
248 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
RESERVED POLARITY RESERVED ENABLE
R-0-0h R/W-0h R-0-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 249
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
250 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
INTCTR
R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 251
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
INTCTR
R-0h
252 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
INTCTR
R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 253
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-83 shows the codes that are used for
access types in this section.
Table 3-83. 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.
254 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED ECAP4SYNCIN ECAP1SYNCIN EPWM10SYNC
IN
R-0-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
EPWM10SYNCIN EPWM7SYNCIN EPWM4SYNCIN
R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 255
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
256 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 257
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
258 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 259
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 ADCSOCOUTS SYNCSELECT
ELECT
R-0-0h R/WSonce-0h R/WSonce-0h
260 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-88 shows the codes that are used for
access types in this section.
Table 3-88. 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 261
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 CLA1TASKSRC CLA1TASKSRC
SEL2 SEL1
R-0-0h R/WSonce-0h R/WSonce-0h
262 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 263
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
264 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 265
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
266 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 267
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-96 shows the codes that are used for
access types in this section.
Table 3-96. FLASH_PUMP_SEMAPHORE_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.
268 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 PUMP_OWNERSHIP
R-0-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 269
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
270 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-99 shows the codes that are used for
access types in this section.
Table 3-99. 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
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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 271
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED CPUSEL14 CPUSEL13 CPUSEL12 CPUSEL11 CPUSEL10 CPUSEL9 CPUSEL8
R-0-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
CPUSEL7 CPUSEL6 CPUSEL5 CPUSEL4 CPUSEL3 CPUSEL2 CPUSEL1 CPUSEL0
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
272 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 273
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
FLASH_SIZE
R-0h
15 14 13 12 11 10 9 8
RESERVED INSTASPIN RESERVED RESERVED PIN_COUNT
R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
QUAL RESERVED RESERVED RESERVED
R-0h R-0h R-0h R-0h
274 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 275
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FAMILY RESERVED
R-0h R-0h
276 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 277
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 SINGLE_CORE
R-0-0h R-X
278 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED CPU2_CLA1
R-0-0h R-X R-X
7 6 5 4 3 2 1 0
RESERVED CPU1_CLA1 RESERVED CPU2_VCU CPU1_VCU CPU2_FPU_TM CPU1_FPU_TM
U U
R-X R-X R-0-0h R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 279
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 EMIF2 EMIF1
R-0-0h R-X R-X
280 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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-X R-X R-X R-X R-X R-X R-X R-X
7 6 5 4 3 2 1 0
EPWM8 EPWM7 EPWM6 EPWM5 EPWM4 EPWM3 EPWM2 EPWM1
R-X R-X R-X R-X R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 281
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
282 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 ECAP6 ECAP5 ECAP4 ECAP3 ECAP2 ECAP1
R-X R-X R-X R-X R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 283
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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-X R-X R-X R-X
284 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 CLB4 CLB3 CLB2 CLB1
R-X R-X R-X R-X R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 285
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESE RESE RESE RESE RESE RESE SD2 SD1
RVED RVED RVED RVED RVED RVED
R-0-0h R-X R-X R-X R-X R-X R-X R-X R-X
286 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 SCI_D SCI_C SCI_B SCI_A
R-0-0h R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 287
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED
R-0-0h R-X R-X
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED SPI_C SPI_B SPI_A
R-0-0h R-X R-X R-X R-X
288 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED
R-0-0h R-X R-X
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-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 289
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 CAN_B CAN_A
R-0-0h R-X R-X R-X R-X
290 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED RESERVED USB_A
R-0-0h R-X R-X
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED McBSP_B McBSP_A
R-0-0h R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 291
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 uPP_A
R-0-0h R-X R-X
292 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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_D ADC_C ADC_B ADC_A
R-0-0h R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 293
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
CMPSS8 CMPSS7 CMPSS6 CMPSS5 CMPSS4 CMPSS3 CMPSS2 CMPSS1
R-X R-X R-X R-X R-X R-X R-X R-X
294 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 295
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED DAC_C DAC_B DAC_A
R-0-0h R-X R-X R-X R-X
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-X R-X R-X R-X
296 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 LS5_1 LS4_1 LS3_1 LS2_1 LS1_1 LS0_1
R-0-0h R-X R-X R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 297
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 LS5_2 LS4_2 LS3_2 LS2_2 LS1_2 LS0_2
R-0-0h R-X R-X R-X R-X R-X R-X
298 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
GS15 GS14 GS13 GS12 GS11 GS10 GS9 GS8
R-X R-X R-X R-X R-X R-X R-X R-X
7 6 5 4 3 2 1 0
GS7 GS6 GS5 GS4 GS3 GS2 GS1 GS0
R-X R-X R-X R-X R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 299
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
300 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED RESERVED USB_A_PHY
R-0-0h R-X R-X
15 14 13 12 11 10 9 8
RESERVED
R-0-0h
7 6 5 4 3 2 1 0
RESERVED ADC_D_MODE ADC_C_MODE ADC_B_MODE ADC_A_MODE
R-0-0h R-X R-X R-X R-X
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 301
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED ERR ALERR
R-0-0h R-0h R-0h
302 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 CPU2_CLA1 RESERVED CPU1_CLA1
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 303
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 EMIF2 EMIF1
R-0-0h R/W-0h R/W-0h
304 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 305
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
306 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 ECAP6 ECAP5 ECAP4 ECAP3 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 307
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
308 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESE RESE RESE RESE RESE RESE SD2 SD1
RVED RVED RVED RVED RVED RVED
R-0-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 309
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 SCI_D SCI_C SCI_B SCI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
310 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 SPI_C SPI_B SPI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 311
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 I2C_B I2C_A
R-0-0h R/W-0h R/W-0h
312 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 McBSP_B McBSP_A
R-0-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 313
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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_D ADC_C ADC_B ADC_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
314 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
CMPSS8 CMPSS7 CMPSS6 CMPSS5 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 315
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED DAC_C DAC_B 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
316 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 317
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
318 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 ECAP6 ECAP5 ECAP4 ECAP3 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 319
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
320 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 321
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESE RESE RESE RESE RESE RESE SD2 SD1
RVED RVED RVED RVED RVED RVED
R-0-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
322 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 SCI_D SCI_C SCI_B SCI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 323
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 SPI_C SPI_B SPI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
324 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 I2C_B I2C_A
R-0-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 325
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 CAN_B CAN_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
326 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 McBSP_B McBSP_A
R-0-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 327
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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_D ADC_C ADC_B ADC_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
328 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 329
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
CMPSS8 CMPSS7 CMPSS6 CMPSS5 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
330 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 331
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED RESERVED DAC_C DAC_B 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
332 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 RESET
R-0-0h R/W-1h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 333
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
RESERVED CPU2HWBIST CPU2HWBIST CPU2NMIWDR CPU2RES
RST1 RST0 ST
R-0-0h R/W1S-0h R/W1S-0h R/W1S-0h R-0h
334 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
7 6 5 4 3 2 1 0
RESERVED CPU2LPMSTAT
R-0-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 335
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 BIT_0
R-0-0h R/W-0h
336 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-157 shows the codes that are used for
access types in this section.
Table 3-157. 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
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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 337
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
338 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED SEM
R-0-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 339
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
LOSPCP RESERVED PERCLKDIVSE AUXCLKDIVSE SYSCLKDIVSE AUXPLLMULT RESERVED RESERVED
L L L
R/WSonce-0h R-0-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
AUXPLLCTL1 SYSPLLMULT SYSPLLCTL3 SYSPLLCTL2 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
340 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 341
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 WDHALTI XTALOFF INTOSC2OFF RESERVED OSCCLKSRCSEL
R-0-0h R/W-0h R/W-0h R/W-0h R-0-0h R/W-0h
342 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 343
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
R-0-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED CANBBCLKSEL CANABCLKSEL AUXOSCCLKSRCSEL
R/W-0h R/W-0h R/W-0h R/W-0h
344 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 345
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 XCLKOUTSEL
R-0-0h R/W-0h
346 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 PLLCLKEN PLLEN
R-0-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 347
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED FMULT
R-0-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED IMULT
R-0-0h R/W-0h
348 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 SLIPS LOCKS
R-0-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 349
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 PLLCLKEN PLLEN
R-0-0h R/W-0h R/W-0h
350 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED FMULT
R-0-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED IMULT
R-0-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 351
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 SLIPS LOCKS
R-0-0h R-0h R-0h
352 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED PLLSYSCLKDIV
R-0-0h R/W-2h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 353
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 AUXPLLDIV
R-0-0h R/W-1h
354 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 EMIF2CLKDIV RESERVED EMIF1CLKDIV RESERVED EPWMCLKDIV
R-0-0h R/W-1h R-0-0h R/W-1h R/W-0h R/W-1h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 355
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 XCLKOUTDIV
R-0-0h R/W-3h
356 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED LSPCLKDIV
R-0-0h R/W-2h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 357
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 OSCOFF MCLKOFF MCLKCLR MCLKSTS
R-0-0h R/W-0h R/W-0h R-0/W1S-0h R-0h
358 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED X1CNT
R-0-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 359
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-177 shows the codes that are used for
access types in this section.
Table 3-177. 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
360 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 361
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
GPIOLPMSEL1 GPIOLPMSEL0 LPMCR SECMSEL 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 PCLKCR6 PCLKCR5
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 PCLKCR1 PCLKCR0 PIEVERRADDR IORESTOREA HIBBOOTMOD
DDR E
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
362 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 363
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
364 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 365
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
366 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 367
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED GTBCLKSYNC TBCLKSYNC RESERVED HRPWM
R-0-0h R/W-0h R/W-0h R-0-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 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
368 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 369
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 EMIF2 EMIF1
R-0-0h R/W-0h R/W-0h
370 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 371
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
372 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 ECAP6 ECAP5 ECAP4 ECAP3 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 373
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
374 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RESE RESE RESE RESE RESE RESE SD2 SD1
RVED RVED RVED RVED RVED RVED
R-0-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 375
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 SCI_D SCI_C SCI_B SCI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
376 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 SPI_C SPI_B SPI_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 377
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 I2C_B I2C_A
R-0-0h R/W-0h R/W-0h
378 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 CAN_B CAN_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 379
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 McBSP_B McBSP_A
R-0-0h R/W-0h R/W-0h
380 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 uPP_A
R-0-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 381
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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_D ADC_C ADC_B ADC_A
R-0-0h R/W-0h R/W-0h R/W-0h R/W-0h
382 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
CMPSS8 CMPSS7 CMPSS6 CMPSS5 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 383
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
384 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED RESERVED DAC_C DAC_B 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 385
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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/W-0h
7 6 5 4 3 2 1 0
RESERVED RESERVED PF2SEL PF1SEL
R/W-0h R/W-0h R/W-0h R/W-0h
386 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED M0M1MODE
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 387
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
388 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 389
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
390 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 391
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
392 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 393
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
394 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 395
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
396 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
RESERVED SCCRESETn
R-0-0h R/W1C-0h
7 6 5 4 3 2 1 0
RESERVED HIBRESETn HWBISTn RESERVED NMIWDRSn WDRSn XRSn POR
R-0-0h R/W1C-0h R/W1C-0h R-0-0h R/W1C-0h R/W1C-0h R/W1C-1h R/W1C-1h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 397
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
398 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-204 shows the codes that are used for
access types in this section.
Table 3-204. ROM_PREFETCH_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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 399
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 PFENABLE
R-0h R/W-0h
400 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-207 shows the codes that are used for
access types in this section.
Table 3-207. 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
-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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 401
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LINKPOINTER
R-0h
402 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED CRCLOCK PSWDLOCK JTAGLOCK
R-0h R-Fh R-Fh R-Fh
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 403
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
404 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 405
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
406 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 407
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
408 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 409
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
RESERVED ARMED UNSECURE ALLONE ALLZERO RESERVED
R-0h R-0h R-0h R-0h R-1h R-0h
410 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
GRAB_SECTL GRAB_SECTK GRAB_SECTJ GRAB_SECTI
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_SECTH GRAB_SECTG GRAB_SECTF GRAB_SECTE
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_SECTD GRAB_SECTC GRAB_SECTB GRAB_SECTA
R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 411
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
412 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 413
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
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
414 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 415
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE
CTN CTM CTL CTK CTJ CTI
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_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE
CTH CTG CTF CTE CTD CTC CTB CTA
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
416 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 417
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
418 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 419
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
420 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-222 shows the codes that are used for
access types in this section.
Table 3-222. 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
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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 421
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LINKPOINTER
R-0h
422 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED CRCLOCK PSWDLOCK JTAGLOCK
R-0h R-Fh R-Fh R-Fh
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 423
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
424 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 425
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
426 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 427
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
428 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 429
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
RESERVED ARMED UNSECURE ALLONE ALLZERO RESERVED
R-0h R-0h R-0h R-0h R-1h R-0h
430 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
GRAB_SECTL GRAB_SECTK GRAB_SECTJ GRAB_SECTI
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
GRAB_SECTH GRAB_SECTG GRAB_SECTF GRAB_SECTE
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
GRAB_SECTD GRAB_SECTC GRAB_SECTB GRAB_SECTA
R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 431
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
432 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 433
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
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
434 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 435
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE
CTN CTM CTL CTK CTJ CTI
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_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE EXEONLY_SE
CTH CTG CTF CTE CTD CTC CTB CTA
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
436 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 437
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
438 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 439
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
440 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-237 shows the codes that are used for
access types in this section.
Table 3-237. 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
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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 441
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
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
442 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
STATUS_SECTL STATUS_SECTK STATUS_SECTJ STATUS_SECTI
R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
STATUS_SECTH STATUS_SECTG STATUS_SECTF STATUS_SECTE
R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
STATUS_SECTD STATUS_SECTC STATUS_SECTB STATUS_SECTA
R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 443
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
444 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 445
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
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
446 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 447
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-242 shows the codes that are used for
access types in this section.
Table 3-242. MEM_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
448 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 449
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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_D1 LOCK_D0 RESERVED
R-0h R/W-0h R/W-0h R-0h
450 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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_D1 COMMIT_D0 RESERVED
R-0h R/WSonce-0h R/WSonce-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 451
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED CPUWRPROT_ FETCHPROT_
D0 D0
R-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED
R-0h
452 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
TEST_D1 TEST_D0 TEST_M1 TEST_M0
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 453
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 INIT_D1 INIT_D0 INIT_M1 INIT_M0
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
454 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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_D1 INITDONE_D0 INITDONE_M1 INITDONE_M0
R-0h R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 455
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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_LS5 LOCK_LS4 LOCK_LS3 LOCK_LS2 LOCK_LS1 LOCK_LS0
R-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
456 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 457
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 COMMIT_LS5 COMMIT_LS4 COMMIT_LS3 COMMIT_LS2 COMMIT_LS1 COMMIT_LS0
R-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
458 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 459
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED MSEL_LS5 MSEL_LS4
R-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
460 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 461
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 CLAPGM_LS5 CLAPGM_LS4 CLAPGM_LS3 CLAPGM_LS2 CLAPGM_LS1 CLAPGM_LS0
R-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
462 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 463
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
464 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 465
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED TEST_LS5 TEST_LS4
R-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
466 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 467
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 INIT_LS5 INIT_LS4 INIT_LS3 INIT_LS2 INIT_LS1 INIT_LS0
R-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
468 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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_LS5 INITDONE_LS4 INITDONE_LS3 INITDONE_LS2 INITDONE_LS1 INITDONE_LS0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 469
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
LOCK_GS15 LOCK_GS14 LOCK_GS13 LOCK_GS12 LOCK_GS11 LOCK_GS10 LOCK_GS9 LOCK_GS8
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
LOCK_GS7 LOCK_GS6 LOCK_GS5 LOCK_GS4 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
470 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 471
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
COMMIT_GS15 COMMIT_GS14 COMMIT_GS13 COMMIT_GS12 COMMIT_GS11 COMMIT_GS10 COMMIT_GS9 COMMIT_GS8
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
COMMIT_GS7 COMMIT_GS6 COMMIT_GS5 COMMIT_GS4 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
472 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 473
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
474 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
MSEL_GS15 MSEL_GS14 MSEL_GS13 MSEL_GS12 MSEL_GS11 MSEL_GS10 MSEL_GS9 MSEL_GS8
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
MSEL_GS7 MSEL_GS6 MSEL_GS5 MSEL_GS4 MSEL_GS3 MSEL_GS2 MSEL_GS1 MSEL_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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 475
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
476 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS2 GS2 GS2
R-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS1 GS1 GS1
R-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS0 GS0 GS0
R-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 477
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
478 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS6 GS6 GS6
R-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS5 GS5 GS5
R-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS4 GS4 GS4
R-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 479
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
480 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS10 GS10 GS10
R-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS9 GS9 GS9
R-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS8 GS8 GS8
R-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 481
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
482 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS14 GS14 GS14
R-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS13 GS13 GS13
R-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED DMAWRPROT_ CPUWRPROT_ FETCHPROT_
GS12 GS12 GS12
R-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 483
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
484 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
TEST_GS11 TEST_GS10 TEST_GS9 TEST_GS8
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
TEST_GS7 TEST_GS6 TEST_GS5 TEST_GS4
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 485
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
486 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 487
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
INIT_GS15 INIT_GS14 INIT_GS13 INIT_GS12 INIT_GS11 INIT_GS10 INIT_GS9 INIT_GS8
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
INIT_GS7 INIT_GS6 INIT_GS5 INIT_GS4 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
488 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 489
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS
15 14 13 12 11 10 9 8
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS INITDONE_GS
7 6 5 4 3 2 1 0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
490 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 491
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED
R-0h R/W-0h
7 6 5 4 3 2 1 0
RESERVED TEST_CLA1TOCPU TEST_CPUTOCLA1 TEST_CPUTOCPU
R/W-0h R/W-0h R/W-0h R/W-0h
492 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 INIT_CLA1TOC INIT_CPUTOCL INIT_CPUTOC
PU A1 PU
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 493
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 INITDONE_CL INITDONE_CP INITDONE_CP
A1TOCPU UTOCLA1 UTOCPU
R-0h R-0h R-0h R-0h R-0h R-0h
494 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-272 shows the codes that are used for
access types in this section.
Table 3-272. 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
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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 495
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
496 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 497
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
498 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED
R-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 499
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
500 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED
R-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 501
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
502 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED
R-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 503
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
504 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 505
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
506 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 507
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
508 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 509
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
510 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 DMAWRITE CPUWRITE CPUFETCH
R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 511
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 DMAWRITE CPUWRITE CPUFETCH
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
512 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 DMAWRITE CPUWRITE CPUFETCH
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 513
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 DMAWRITE CPUWRITE CPUFETCH
R-0h R/W-0h R/W-0h R/W-0h
514 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 515
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
516 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 517
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-292 shows the codes that are used for
access types in this section.
Table 3-292. 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.
y When this variable is used in a register name, an
offset, or an address it refers to the value of a
register array.
518 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 519
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
520 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 521
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
522 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 523
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
524 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 525
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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
526 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 527
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
528 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 529
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
530 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 531
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 CEINTCLR
R-0h R-0/W1S-0h
532 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 533
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 CEINTEN
R-0h R/W-0h
534 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-310 shows the codes that are used for
access types in this section.
Table 3-310. ROM_WAIT_STATE_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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 535
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 WSDISABLE
R-0h R/W-0h
536 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-313 shows the codes that are used for
access types in this section.
Table 3-313. 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 537
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED RWAIT RESERVED
R-0h R/W-Fh R-0h
538 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 539
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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 BNKPWR0
R-0h R/W-0h
540 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
PUMPRDY RESERVED
R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED BANKRDY
R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 541
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
PSLEEP
R/W-860h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED PMPPWR
R-0h R/W-0h
542 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED RESERVED RESERVED
R-0h R-0h R-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED PGV RESERVED EV RESERVED BUSY
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
ERS PGM INVDAT CSTAT VOLTSTAT ESUSP PSUSP RESERVED
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 543
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
544 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 545
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-322 shows the codes that are used for
access types in this section.
Table 3-322. 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.
546 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 547
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RESERVED ENABLE
R-0h R/W-Ah
548 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 549
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
550 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 551
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
552 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED UNC_ERR_H FAIL_1_H FAIL_0_H
R-0h 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 UNC_ERR_L FAIL_1_L FAIL_0_L
R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 553
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
554 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
23 22 21 20 19 18 17 16
RESERVED ERR_POS_H
R-0h R-0h
15 14 13 12 11 10 9 8
RESERVED ERR_TYPE_L
R-0h R-0h
7 6 5 4 3 2 1 0
RESERVED ERR_POS_L
R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 555
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED UNC_ERR_H_ FAIL_1_H_CLR FAIL_0_H_CLR
CLR
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
15 14 13 12 11 10 9 8
RESERVED
R-0h
7 6 5 4 3 2 1 0
RESERVED UNC_ERR_L_C FAIL_1_L_CLR FAIL_0_L_CLR
LR
R-0h R-0/W1S-0h R-0/W1S-0h R-0/W1S-0h
556 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 557
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
558 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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_ERR_INT SINGLE_ERR_I
FLG NTFLG
R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 559
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt 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_ERR_INT SINGLE_ERR_I
CLR NTCLR
R-0h R-0/W1S-0h R-0/W1S-0h
560 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 561
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
562 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADDRL RESERVED
R/W-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 563
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
564 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
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 DO_ECC_CAL ECC_SELECT ECC_TEST_EN
C
R-0h R-0/W1S-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 565
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
566 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 567
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
23 22 21 20 19 18 17 16
RESERVED
R-0h
15 14 13 12 11 10 9 8
RESERVED ERR_TYPE
R-0h R-0h
7 6 5 4 3 2 1 0
DATA_ERR_POS UNC_ERR SINGLE_ERR
R-0h R-0h R-0h
568 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-344 shows the codes that are used for
access types in this section.
Table 3-344. CPU_ID_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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 569
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
7 6 5 4 3 2 1 0
CPUID
R-0h
570 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
Complex bit access types are encoded to fit into small table cells. Table 3-347 shows the codes that are used for
access types in this section.
Table 3-347. 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 571
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
572 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 573
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
574 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 575
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
576 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 577
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
578 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 579
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-357 shows the codes that are used for
access types in this section.
Table 3-357. 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
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.
580 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 581
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
582 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 583
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
584 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 585
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
586 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 587
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 3-366 shows the codes that are used for
access types in this section.
Table 3-366. 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
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.
588 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 589
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
590 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 591
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
592 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 593
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
594 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 595
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
596 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 597
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
598 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 599
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
600 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 601
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
602 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 603
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
604 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 605
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
606 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 607
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
608 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 609
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
610 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 611
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
System Control and Interrupt www.ti.com
612 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com System Control and Interrupt
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 613
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Chapter 4
ROM Code and Peripheral Booting
4.1 Introduction...............................................................................................................................................................615
4.2 Boot ROM Registers.................................................................................................................................................615
4.3 Device Boot Sequence.............................................................................................................................................615
4.4 Device Boot Modes.................................................................................................................................................. 616
4.5 Configuring Boot Mode Pins................................................................................................................................... 617
4.6 Configuring Get Boot Options.................................................................................................................................619
4.7 Configuring Emulation Boot Options..................................................................................................................... 620
4.8 Device Boot Flow Diagrams.................................................................................................................................... 621
4.9 Device Reset and Exception Handling................................................................................................................... 627
4.10 Boot ROM Description........................................................................................................................................... 629
614 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
4.1 Introduction
This chapter explains the boot ROM code functionality including the boot procedure when executed, the
functions and features of the boot ROM code, and details 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 application code. The boot ROM also contains peripheral bootloaders
which can be used to load an application into RAM. ROM Memory is shown in Table 4-1.
Table 4-1. ROM Memory
ROM CPU1 Size CPU2 Size
Unsecure boot ROM 64KB 64KB
Secure ROM 64KB 64KB
CLA Data ROM 8KB 8KB
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 615
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
(1) Get boot mode, by default, on an unprogrammed device, or when the BOOTCTRL register contains an invalid key, boots to Flash
mode. Get boot mode can be programmed on the device to change the default boot mode. Refer to Section 4.6 for more details on
using Get boot mode.
Note
All the peripheral boot modes that are supported use the first instance of the peripheral module (SCIA,
SPIA, I2CA, CANA, and so forth). Whenever these boot modes are referred to in this chapter, such
as SCI boot, the mode is actually referring to the first module instance, meaning the SCI boot on the
SCIA port. The same applies to the other peripheral boots.
616 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
Refer to Section 3.13 for the address of the BOOTCTRL register location in the user-configurable
DCSM OTP.
On this device, the DCSM has two zones. Each zone, Z1 and Z2, has a copy of the BOOTCTRL register. The
boot ROM is designed to be able to read from either location and uses the procedure in Figure 4-1 to identify
which register to use. By default, if the Z1 BOOTCTRL is programmed, then that register is given the priority.
If the Z1 BOOTCTRL is not programmed, then the boot ROM checks if Z2 BOOTCTRL is programmed; if not
programmed, then the factory default options are used.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 617
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
YES YES
618 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
(1) When an emulator is connected (TRSTn = 1) to the device, then an invalid EMU BOOTCTRL key or invalid EMU configured boot mode
results in wait boot mode. If an emulator is connected with a valid EMU BOOTCTRL key and the EMU boot mode is configured to
"Get Mode" boot then an invalid OTP BOOTCTRL key results in Flash boot mode. If an emulator is not connected with the boot mode
selected to "Get Mode" boot, then an invalid OTP BOOTCTRL key or invalid OTP memory configured boot mode results in Flash boot
mode.
(1) Only after a hibernate reset, CPU2 can boot in RAM boot mode. After any other resets, CPU2 boots in wait boot mode.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 619
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Note
EMU_BOOTCTRL is not actually a register, but refers to a location in RAM (PIE RAM). PIE RAM
starts at 0xD00, but the first few locations are reserved (when initializing the PIE vector table in
application code) for these boot ROM variables.
620 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
For CPU1, the PLL is not used in the device clock path during boot, only INTOSC is used.
Reset
XRSn or
POR or
No No Hibernate No Other Resets
WD or NMIWD
resets
M0M1
No Retention Yes
Initialize all ON
RAMs
Initialize all Initialize all RAMs
RAMs except for M0/M1
DCSM INIT
DCSM INIT
Valid
Boot as per
Hibernate Boot
Yes Hibernate Boot
Key == 0x5A
TRSTn == 1 Mode
Yes No
No
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 621
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Reset
Yes M0M1
No Yes
Retention ON
Branch to
Application Clean up Stack for
Initialize all RAMs
Boot ROM
except for M0/M1
Initialize all RAMs
Call application
IORESTORE
function
DCSM INIT
No
TRSTn == 1
No
Yes
622 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
WAIT BOOT MODE Bits 7:0 EMU_KEY ± Use 0x5A to indicate validity of this location
Emulation Boot Mode
> Init PIE values.
While(1)
> Install C2C1IPC Handler
No > Disable WatchDOG Bits 15:8 EMU_BMODE - Use this field to define upto 256 boot modes
Valid Valid
EMUBOOTCTRL. EMUBOOTPIN0 = EMUBOOTPIN1 =
Read EmuBoot pins NO EMUBOOTCTRL. No
EMUBOOTPIN0 GPIO84 GPIO72
EMUBOOTPIN1
No Yes
Yes
EMUBOOTCTRL.EMU
_BMODE == 0xFE
Yes EMUBOOTPIN0 = EMUBOOTPIN1 = BootMode =
EMUBOOTCTRL.EM EMUBOOTCTRL.EM (*EMUBOOTPIN1 << 1) |
UBOOTPIN0 UBOOTPIN1 (*EMUBOOTPIN0)
No
------------------------------------------------------------------------------------------------
EMU_BMODE Value | Realized Boot Mode
------------------------------------------------------------------------------------------------
0x00 Parallel Boot Boot Mode = 0 -> Parallel Boot Mode
0x01 SCIBOOT(0) Boot Mode = 1 -> SCIBOOT Mode
0x02 WAIT BOOT Boot Mode = 2 -> WAIT BOOT Mode
0x03 GET MODE (OTP) Is Get Mode Boot Mode = 3 -> GET MODE (read OTP Boot
0x04 SPIBOOT(0) Mode values)
0x05 I2CBOOT(0)
No Yes
0x07 CANBOOT(0)
0x0A RAMBOOT
0x0B FLASHBOOT
0x0C USB BOOT
0x81 SCIBOOT(1) ± Alternate IO
0x84 SPIBOOT(1)- Alternate IO
0x85 I2CBOOT(1) ± Alternate IO
0x87 CANBOOT(1) ± Alternate IO
Start Boot LOAD Get Mode
0x47 CANBOOT(TEST)(0) ± TESTMODE
0xC7 CANBOOT(TEST)(1) ± TEESTMODE, Alternate
IO
Other WAIT BOOT
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 623
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Bits 15:8 EMU_BMODE - Use this field to define upto 256 boot modes
GET MODE
624 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Bits 7:0 OTP_KEY ± Use 0x5A to ind ica te validity of this locatio n
values.
Yes
Bits 15:8 OTP_BMODE - Use this field to d efin e u pto 256 boo t modes
BOO TP IN0 =
Bits 23:16 OTP_BOO TP IN 0
ZxB OOTCTRL.OTPBO O Yes
Zx- 0-> Pick the default boo t pin-0 (GPIO 84)
TPIN0
BOO TCTRL.OTP_BO 1 -> Pick GP IO0 as b oot pin-0
OTPIN0 is valid? 2 -> Pick GP IO1 as b oot pin-0
«.
255 -> Pick GP IO255 as b oot pin-0
No
Boo t Mode = 0 -> Par allel Boot Mod e
Boo tMode = Boo t Mode = 1 -> SCIBOOT Mo de
BOO TP IN0 = (*BOO TP IN1 << Boo t Mode = 2 -> WAIT BOO T Mode
GPIO72 1)|(*BOO TP IN0) Boo t Mode = 3 -> GET MODE (read OTP Boot
Mode values)
GET MODE (boo t Mode) ----- --------- ---------- --------- --------- --------- ---------- --------- --------- --------- --------
Boo tMode Va lue | Realized Boo t Mo de
----- --------- ---------- --------- --------- --------- ---------- --------- --------- --------- --------
0x00 Par allel Boot
0x01 SCIBOOT(0)
Zx- Boo tMode = Zx- 0x02 WAIT BOO T
BOO TCTRL.OTP Yes OTPBO OTCTRL.OT 0x04 SPIBO OT(0)
_KEY == 0x5A P_BMODE 0x05 I2CBOOT(0)
0x07 CANBOOT(0)
0x0A RAMBOOT
0x0B FLASHBO OT
No 0x0C USB BOO T
0x81 SCIBOOT(1) ± Alterna te IO
Is Get Mod e 0x84 SPIBO OT(1)- Alterna te IO
Ena ble Wa tchdog 0x85 I2CBOOT(1) ± Alterna te IO
Boo t to Flash 0x87 CANBOOT(1) ± Alterna te IO
0x47 CANBOOT(TEST)(0) ± TESTMODE
0xC7 CANBOOT(TEST)(1) ± TEESTMODE, Alterna te IO
No Other FLASHBO OT (if stand Alone) EMUBOOT (if CCS con nected)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 625
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Stand Alon e
Yes
No
Get Mo de
No
B
WAIT BOO T
No
HiBern ate Bo ot RAM B OOT MODE Flash B oot Mode
Yes Yes
626 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 627
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
628 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 629
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
(1) The SYS/BIOS (TI-RTOS) section in ROM is no longer supported and must not be used for new designs.
(1) The SYS/BIOS (TI-RTOS) section in ROM is no longer supported and must not be used for new designs.
630 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
(1) If not planning on using TI-RTOS in ROM, then these memory locations are free to be used by the application.
(2) For using the TI-RTOS in Flash sector A, TI recommends that this sector be made unsecure, or at minimum, the sector must be
verified that there is no secure zone claiming this sector.
(1) If not planning to use TI-RTOS in ROM, then these memory locations are free to be used by the application.
(2) For using the TI-RTOS in Flash sector A, TI recommends that this sector be made unsecure, or at minimum, the sector must be
verified that there is no secure zone claiming this sector.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 631
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
632 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 633
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
SCIRXDA
Control Host
Subsystem (Data and program
boot ROM SCITXDA source)
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 100kbaud) 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.
634 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SCI_Boot
Valid No
Setup SCI-A for KeyValue Jump to Flash
1 stop, 8-bit character, (0x08AA)
no parity, use internal ?
SC clock, no loopback,
disable Rx/Tx interrupts
Yes
No Autobaud
lock
?
Return
Yes EntryPoint
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 635
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Serial SPI
EEPROM
SPIA_SIMO
DIN
Control SPIA_SOMI
DOUT
subsystem SPIA_CLK CLK
SPIA_STE CS
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 master 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 setup to operate
in the slave 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-22. 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
... ...
... Data for this section.
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
636 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 follows:
1. The SPI-A port is initialized
2. The GPIO19 (SPISTE) pin 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 2 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 7 words are reserved for future enhancements. The SPI
bootloader reads these 7 words and discards them.
7. The next two words makeup the 32-bit entry point address where execution can continue 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.
SPI_Boot
Enable EEPROM
Send read command and Read and discard 7
start at EEPROM address reserved words
0x0000
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 637
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
I2CA_SDA
Control
subsystem
I2CA_SCL
I2C
SDA EEPROM
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 slave 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 slave 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 slave signals are not checked. Therefore, no other master is allowed to control the bus
during this initialization phase. If the application requires another master during I2C boot mode, that master must
be configured to hold off sending any I2C messages until the application software signals that the application
software 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-23 shows the 8-bit data stream used by the I2C.
638 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
NACK Yes
I2C_Boot
received Jump to Flash
?
Enable I2CA_SDA and
I2CA_SCL pins No
Enable pullups on
I2CA_SDA and I2CA_SCL Read KeyValue
Read EntryPoint
address
Return
EntryPoint
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 639
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
The I2C EEPROM protocol required by the I2C bootloader is shown in Figure 4-14 and Figure 4-15. The first
communication, which sets the EEPROM address pointer to 0x0000 and reads the KeyValue (0x08AA), is shown
in Figure 4-14. All subsequent reads are shown in Figure 4-15 and are read two bytes at a time.
RESTART
NO ACK
START
WRITE
READ
STOP
MSB
MSB
ACK
ACK
ACK
ACK
ACK
LSB
LSB
SDA LINE
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 01 0 0 0 0 1 0
READ
STOP
ACK
ACK
SDA LINE
1 01 0 0 0 0 1 0
640 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
The control subsystem communicates with the external host device by polling/driving the GPIO70 and GPIO69
lines. The handshake protocol shown in Figure 4-17 must be used to successfully transfer each word using
GPIO[63-58,64,65]. This protocol is very robust and allows for a slower or faster host to communicate with the
master subsystem.
Two consecutive 8-bit words are read to form a single 16-bit word. The most significant byte (MSB) is read first
followed by the least-significant byte (LSB). In this case, data is read from GPIO[63-58,64,65].
The 8-bit data stream is shown in Table 4-24.
Table 4-24. Parallel GPIO Boot 8-Bit Data Stream
Bytes GPIO[63:58,64,65] GPIO[63:58,64,65] 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 - 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 641
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
The device first signals the host that the device is ready to begin data transfer by pulling the GPIO69 pin low.
The host load then initiates the data transfer by pulling the GPIO70 pin low. The complete protocol is shown in
Figure 4-17.
1 2 3 4 5 6
Host control
GPIO70
Device control
GPIO69
1. The device indicates the device is ready to start receiving data by pulling the GPIO69 pin low.
2. The bootloader waits until the host puts data on GPIO [63-58,64,65]. The host signals to the device that data
is ready by pulling the GPIO70 pin low.
3. The device reads the data and signals the host that the read is complete by pulling GPIO69 high.
4. The bootloader waits until the host acknowledges the device by pulling GPIO70 high.
5. The device again indicates the device is ready for more data by pulling the GPIO69 pin low.
This process is repeated for each data value to be sent.
Figure 4-18 shows an overview of the Parallel GPIO bootloader flow.
Parallel_Boot
Call
CopyData
Valid
No KeyValue
Return Flash EntryPoint (0x08AA)
?
Return
Yes EntryPoint
Figure 4-19 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.
642 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Start transfer
No Device ready
(GPIO69=0)
?
Yes
Signal that data
is ready Acknowledge device
(GPIO70=0) (GPIO70=1)
More Yes
data
?
No
End transfer
Figure 4-20 shows the flow used to read a single word of data from the parallel port.
• 8-bit data stream
The 8-bit routine, shown in Figure 4-20, discards the upper 8 bits of the first read from the port and treats
the lower 8 bits masked with GPIO65 in bit position 7 and GPIO64 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 643
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Parallel_GetWordData A
8 bit
Data Data
ready No ready No
(GPIO70 = 0) (GPIO70 = 0)
? ?
Yes Yes
Host
ack No
(GPIO70 = 1)
? Host
ack No
Yes (GPIO70 = 1)
?
Yes
WordData = MSB:LSB
A
Return WordData
644 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
28x
CAN bus
CAN
host
28x
The bit timing registers are programmed in such a way that a 50kbps bit rate is achieved with the 10MHz
INTOSC1 oscillator, a shown in Table 4-25.
Table 4-25. Bit-Rate Value for Internal Oscillators
OSCCLK SYSCLKOUT Bit Rate
10MHz 10MHz 50kbps
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 CPU1 CAN boot loader uses INTOSC1 as the bit clock source and INTOSC2 as the system clock
source. The CPU2 CAN boot loader does not change either clock source, so CPU1 must configure the
clock sources before starting the CPU2 CAN boot loader.
Mailbox 1 is programmed with a standard MSGID of 0x1 for boot-loader communication. The CAN host can
transmit only 2 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-26.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 645
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
646 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 647
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
648 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
simply reads the value and then discards it. Currently only the SPI and I2C and parallel bootloaders use these
words to initialize registers.
The tenth and eleventh words comprise the 22-bit entry point address. This address is used to initialize the PC
after the boot load is complete. This address is most likely the entry point of the program downloaded by the
bootloader.
The twelfth word in the data stream is the size of the first data block to be transferred. The size of the block is
defined as 8-bit data stream format. For example, to transfer a block of 20 8-bit data values from an 8-bit data
stream, the block size is 0x000A to indicate 10 16-bit words.
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 that cleans up and exits. Execution then
continues at the entry point address as determined by the input data stream contents.
Table 4-28. LSB/MSB Loading Sequence in 8-Bit Data Stream
Byte Contents
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 649
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Note
The peripheral bootloader GPIO configurations only apply to CPU1. CPU1 user application can
configure any available first instance of a peripheral (SCIA, SPIA, CANA, and so forth) GPIO for
CPU2 to use for a CPU2 particular bootloader.
650 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 651
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Note
The application must disable interrupts before calling one of the EXEONLY function APIs.
If a vector fetch request is given by the CPU while the program counter (PC) is within the EXEONLY
function API code of the Secure ROM, a reset fires. The consequence of this is if an NMI or ITRAP
occurs while the PC is executing one of the EXEONLY API functions, the NMI/ITRAP cannot be
serviced because a reset is fired to that subsystem.
The safe 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-38. Safe Copy Code Function
CPU Function Prototype Function Parameters Function Return Value
Uint16 SafeCopyCodeZ1(Uint32 size, size : The number of 16-bit words to 0xXXXX : Returns the number of 16-
Uint16 *dst, Uint16 *src) copy bit words copied
The safe 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-39. Safe CRC Calculation Function
CPU Function Prototype Function Parameters Function Return Value
652 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
Note
All 32-bit operations are done in little-endian format (C28x is 16-bit addressable). Example: a 32-bit
IPC write is handled as:
• Data[15:0] is written in address
• Data [31:16] is written in address + 1
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 653
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
654 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 655
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
656 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
• C1TOC2BOOTMODE =
0xB,
C1C2_BROM_
BOOTMODE_
BOOT_FROM_FLASH
• C1TOC2BOOTMODE =
0x1,
C1C2_BROM_
BOOTMODE_
BOOT_FROM_SCI
• C1TOC2BOOTMODE =
0x4,
C1C2_BROM_
BOOTMODE_
BOOT_FROM_SPI
• C1TOC2BOOTMODE =
0x5,
C1C2_BROM_
BOOTMODE_
BOOT_FROM_I2C
• C1TOC2BOOTMODE =
0x0,
C1C2_BROM_
BOOTMODE_
BOOT_FROM_
PARALLEL
• C1TOC2BOOTMODE =
0x7,
C1C2_BROM_v
BOOTMODE_
BOOT_FROM_CAN
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 657
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
Note
If the PLL is used during the boot process, the PLL is bypassed by the boot ROM code before
branching to the user application.
658 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 659
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
660 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com ROM Code and Peripheral Booting
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 661
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
ROM Code and Peripheral Booting www.ti.com
662 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
Chapter 5
Direct Memory Access (DMA)
The direct memory access (DMA) module provides a hardware method of transferring data between peripherals
and memory without intervention from the CPU; thereby, freeing up bandwidth for other system functions.
Additionally, the DMA has the capability to orthogonally rearrange the data as the data is transferred as well as
“ping-pong” data between buffers. These features are useful for structuring data into blocks for CPU processing.
5.1 Introduction...............................................................................................................................................................664
5.2 Architecture.............................................................................................................................................................. 666
5.3 Address Pointer and Transfer Control....................................................................................................................671
5.4 Pipeline Timing and Throughput.............................................................................................................................677
5.5 CPU and CLA Arbitration.........................................................................................................................................678
5.6 Channel Priority........................................................................................................................................................679
5.7 Overrun Detection Feature...................................................................................................................................... 680
5.8 Software.................................................................................................................................................................... 681
5.9 DMA Registers.......................................................................................................................................................... 682
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 663
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
5.1 Introduction
The strength of a controller is not measured purely in processor speed, but in total system capabilities. As a
part of the equation, any time the CPU bandwidth for a given function can be reduced, the greater the system
capabilities. Many times applications spend a significant amount of the bandwidth moving data, whether moving
data from off-chip memory to on-chip memory, from a peripheral such as an analog-to-digital converter (ADC)
to RAM, or from one peripheral to another. Furthermore, many times this data comes in a format that is not
conducive to the optimum processing powers of the CPU. The DMA module described in this chapter has the
ability to free up CPU bandwidth and rearrange the data into a pattern for more streamlined processing.
The DMA module is an event-based machine, meaning the DMA module requires a peripheral or software
trigger to start a DMA transfer. Although the DMA module can be made into a periodic time-driven machine
by configuring a timer as the DMA trigger source, there is no mechanism within the module to start memory
transfers periodically. The DMA module has six independent DMA channels that can be configured separately
and each channel contains an independent PIE interrupt to let the CPU know when a DMA transfer has either
started or completed. Five of the six channels are exactly the same, while Channel 1 has the ability to be
configured at a higher priority than the others. At the heart of the DMA is a state machine and tightly coupled
address control logic. This address control logic allows for rearrangement of the block of data during the transfer
as well as the process of ping-ponging data between buffers. Each of these features is discussed in detail in this
chapter.
5.1.1 Features
DMA features include:
• Six channels with independent PIE interrupts
• Each DMA channel can be triggered from multiple peripheral trigger sources independently
• Word Size: 16-bit or 32-bit (SPI limited to 16-bit)
• Throughput: 3 cycles/word without arbitration
664 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
TINT (0-2)
DMA_CHx (1-6)
XINT (1-5) DMA Trigger
Source Selection
ADC INT (A-D) (1-4), EVT (A-D) DMACHSRCSEL1.CHx DMA C28x
SDxFLTy (x = 1 to 2, y = 1 to 4) DMACHSRCSEL2.CHx CPU1 CPU1
SOCA (1-12), SOCB (1-12) CHx.MODE.PERINTSEL
MXEVT (A-B), MREVT (A-B) (x = 1 to 6) PIE
SPITX (A-C), SPIRX (A-C)
DMA Trigger
DMA_CHx (1-6)
Source Selection
CPU2.DMA Bus
C28x CPU2 Bus
CPU2 CPU2
eQEP
eCAP
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 665
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
5.2 Architecture
CPU1.DMA
CPU2.DMA
CPUSELx.PERy
CPU2.SECMSEL
ePWM
SDFM CMPSS eQEP eCAP DAC
HRPWM
CPU1 SYSCLK
CPU1 SYSRSn
CPU1.PCLKRx
CPU1
Arbiter CPU1 Peripheral Frame 2
CPU1.CLA1
CPU1.DMA
CPU2.DMA
CPUSELx.PERy
CPU2.SECMSEL
SPI McBSP
uPP DMA Access is not supported
A/B/C A/B
Note
If CPU and DMA make an access to the same peripheral frame in the same cycle, the DMA has
priority and the CPU is stalled.
666 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
A CPUSEL bit associated with each peripheral defines whether the peripheral belongs to the CPU1 or CPU2
subsystem. If a peripheral belongs to a CPU subsystem, the peripheral can be accessed by the CPU and
one of the secondary masters (DMA or CLA1). Refer to CPUSELx register definition for more details. The
secondary master is statically selected using the SECMSEL register mapped to the respective CPU. Refer to
CPUx.SECMSEL register definition for more details. If a secondary master is not selected, all writes from that
master are ignored and all reads return 0x0 to any of the peripherals.
Similarly, if a peripheral does not belong to a CPU subsystem (as defined by the associated CPUSEL bit), all
writes to that peripheral are ignored and all reads to that peripheral return 0x0 from any of the masters belonging
to the unselected CPU subsystem. Note that since the arbiter has no knowledge regarding the ownership of
individual peripherals (as can be seen from Figure 5-2), arbitration still happens even if the C28x or the selected
secondary master tries to access a peripheral that does not belong to the CPU subsystem. See Section 5.5 for
more information.
5.2.2 Peripheral Interrupt Event Trigger Sources
Each DMA Channel can be configured to trigger by software and other peripheral triggers events.
DMACHSRCSELx register can be used to configure DMA Trigger sources for each DMA channel.
CHx.MODE.PERINTSEL register bit field can be set to channel number (CHx.MODE.PERINTSEL = x) as shown
in Figure 5-3. Included in these DMA Trigger sources are five external interrupt signals that can be connected to
most of the general-purpose input/output (GPIO) pins on the device. This adds significant flexibility to the event
trigger capabilities. Upon receipt of a peripheral interrupt event signal, the DMA automatically sends a clear
signal to the interrupt source so that subsequent interrupt events occur.
Note
To use the system-level DMA Trigger source selection, the DMA internal trigger source selection
configuration for each channel can be done using the DMACHSRCSELx register and the
CHx.MODE.PERINTSEL register. See Table 5-1 or the DMACHSRCSELx register definition for a
complete list of DMA trigger sources.
Regardless of the value of the MODE.CHx[PERINTSEL] bit field, software can always force a trigger by using
the CONTROL.CHx[PERINTFRC] bit. Likewise, software can always clear a pending DMA trigger using the
CONTROL.CHx[PERINTCLR] bit.
Once a particular peripheral trigger event sets a channel’s PERINTFLG bit, the bit remains pending until the
priority logic of the state machine starts the burst transfer for that channel. Once the burst transfer starts, the
flag is cleared. If a new peripheral trigger event is generated while a burst is in progress, the burst completes
before responding to the new peripheral trigger event (after proper prioritization). If a third peripheral trigger
event occurs before the pending event is serviced, an error flag is set in the CONTROL.CHx[OVRFLG] bit. If a
peripheral trigger event occurs at the same time as the latched flag is being cleared, the trigger event has priority
and the PERINTFLG remains set.
Figure 5-4 shows a diagram of the trigger select circuit.
Table 5-1 shows the peripheral trigger source options that are available for each channel.
CAUTION
See the Device Errata "ADC:DMA Read of Stale Result" Advisory regarding the potential for the
DMA to read the ADC result registers before the result is ready
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 667
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
DMA
DMACHSRCSELx.CH1 CH1.MODE.PERINTSEL[4:0] = 1
256 X 1
Mux ‘1’ 0
1
All DMA Trigger
Sources 2
6
Trigger Source for CH1
7
(Active Low)
DMACHSRCSELx.CH2 31
256 X 1
Mux
CH2.MODE.PERINTSEL[4:0] = 2
0
1
31
DMACHSRCSELx.CH6
256 X 1
Mux
CH6.MODE.PERINTSEL[4:0] = 6
0
1
31
668 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
PERINTSEL
Clear
PERINTCLR
Latch DMA Trigger Event
(DMACHSRCSELx) Peripheral DMA Trigger
Set MODE.CHx.PERINTE
Software Trigger
[PERINTFRC = 1]
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 669
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
670 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 671
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
Method 2: Address wrapping gets enabled when SRC_WRAP_SIZE or DST_WRAP_SIZE is less than
TRANSFER_SIZE. This allows the channel to wrap multiple times within a single transfer. When the number of
bursts is equal to (SRC/DST_WRAP_SIZE + 1) register, the state machine modifies the active address pointers
as:
SRC_BEG_ADDR_ACTIVE = SRC_BEG_ADDR_ACTIVE + SRC_WRAP_STEP
DST_BEG_ADDR_ACTIVE = DST_BEG_ADDR_ACTIVE + DST_WRAP_STEP
SRC_ADDR_ACTIVE = SRC_BEG_ADDR_ACTIVE
DST_ADDR_ACTIVE = DST_BEG_ADDR_ACTIVE
At the end of DMA transfer, DMA can have transferred (BURST_SIZE + 1) x (TRANSFER_SIZE + 1) words.
OneShot Mode:
OneShot mode is disabled by default.
When OneShot mode is disabled (MODE.CHx[ONESHOT] = 0), DMA transfers one burst [(BURST_SIZE + 1)
words] of data each time a DMA Channel Trigger is received. After the burst is completed, the state machine
moves on to the next pending channel in the priority scheme, even if another trigger for the channel just
completed is pending. This feature keeps any single channel from monopolizing the DMA bus.
When OneShot mode is enabled (MODE.CHx[ONESHOT] = 1), DMA transfers all the bursts [(BURST_SIZE + 1)
x (TRANSFER_SIZE + 1) words] on a single DMA channel trigger. Be careful when using this mode, since this
can create a condition where one trigger uses up the majority of the DMA bandwidth.
Continuous Mode:
Continuous mode is disabled by default.
When Continuous mode is disabled (MODE.CHx[CONTINUOUS] = 0), DMA state machine disables channel
after all bursts in a transfer loop (TRANSFER_COUNT = 0) are complete. The channel must be re-enabled by
setting the RUN bit in the CONTROL register before another transfer can be started on that channel.
When Continuous mode is enabled (MODE.CHx[CONTINUOUS] = 1), DMA state machine keep channel active
even after all bursts in a transfer loop (TRANSFER_COUNT = 0) are complete.
Each DMA channel can trigger an EPIE interrupt for each DMA transfer either at start of DMA transfer or end of
DMA transfer using MODE.CHx[CHINTMODE] bit.
Source/Destination The value written into the shadow register is the start address of the first location where
Address Pointers data is read or written to.
(SRC/DST_ADDR)
At the beginning of a transfer the shadow register (SRC/DST_ADDR_SHADOW) is
copied into the active register (SRC/DST_ADDR_ACTIVE). The active register performs
as the current address pointer.
672 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
For each channel, the transfer process can be controlled with the following size values:
Source and This specifies the number of bursts to be transferred per CPU interrupt (if enabled).
Destination
Whether this interrupt is generated at the beginning or the end of the transfer
Transfer Size
is defined in the CHINTMODE bit in the MODE register. Whether the channel
(TRANSFER_SIZE)
remains enabled or not after the transfer is completed is defined by the
CONTINUOUS bit in the MODE register. The TRANSFER_SIZE register is loaded
into the TRANSFER_COUNT register at the beginning of each transfer. The
TRANSFER_COUNT register keeps track of how many bursts of data the channel
has transferred and when the register reaches zero, the DMA transfer is complete.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 673
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
Source/Destination This specifies the number of bursts to be transferred before the current address pointer
Wrap Size (SRC/ wraps around to the beginning.
DST_WRAP_SIZE)
This feature is used to implement a circular addressing type function. This value is
loaded into the appropriate SRC/DST_WRAP_COUNT register at the beginning of
each transfer. The SRC/DST_WRAP_COUNT registers keep track of how many bursts
of data the channel has transferred and when the registers reach zero, the wrap
procedure is performed on the appropriate source or destination address pointer. A
separate size and count register is allocated for source and destination pointers. To
disable the wrap function, assign the value of these registers to be larger than the
TRANSFER_SIZE.
Note
The value written to the SIZE registers is one less than the intended size. So, to transfer three 16-bit
words, the value 2 can be placed in the SIZE register.
Regardless of the state of the DATASIZE bit, the value specified in the SIZE registers are for 16-bit
addresses. So, to transfer three 32-bit words, the value 5 can be placed in the SIZE register.
For each source/destination pointer, the address changes can be controlled with the following step values:
Source/Destination Within each burst transfer, the address source and destination step sizes are
Burst Step (SRC/ specified by these registers.
DST_BURST_STEP)
This value is a signed 2s compliment number so that the address pointer can be
incremented or decremented as required. If no increment is desired, such as when
accessing the data receive or transmit registers in a communication peripheral, the
value of these registers can be set to zero.
Source/Destination This specifies the address offset to start the next burst transfer after
Transfer Step (SRC/ completing the current burst transfer.
DST_TRANSFER_STEP)
This is used in cases where registers or data memory locations are spaced at
constant intervals. This value is a signed 2s compliment number so that the
address pointer can be incremented or decremented as required.
Source/Destination When the wrap counter reaches zero, this value specifies the number of words to
Wrap Step (SRC/ add/subtract from the SRC/DST_BEG_ADDR pointer and hence sets the new start
DST_WRAP_STEP) address.
This implements a circular type of addressing mode, useful in many applications.
This value is a signed 2s compliment number so that the address pointer can be
incremented or decremented as required.
Note
Regardless of the state of the DATASIZE bit, the value specified in the STEP registers are for 16-bit
addresses. So, to increment one 32-bit address, a value of 2 can be placed in these registers.
Channel This mode bit selects whether the DMA interrupt from the respective channel is generated
Interrupt Mode at the beginning of a new transfer or at the end of the transfer.
(CHINTMODE)
If implementing a ping-pong buffer scheme with continuous mode of operation, then the
interrupt can be generated at the beginning, just after the working registers are copied to
the shadow set. If the DMA does not operate in continuous mode, then the interrupt is
typically generated at the end when the transfer is complete.
674 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
All of the previous features and modes are shown in Figure 5-5. The following items are in reference to Figure
5-5.
• The HALT points represent where the channel halts operation when interrupted by a high priority channel 1
trigger, or when the HALT command is set, or when an emulation halt is issued and the FREE bit is cleared to
0.
• The SRC/DST_ADDR_ACTIVE registers are not affected by SRC/DST_BEG_ADDR_ACTIVE at the start of
a transfer. SRC/DST_BEG_ADDR_ACTIVE only affects the SRC/DST_ADDR_ACTIVE registers on a wrap.
Following is what happens when a transfer first starts:
– SRC/DST_BEG_ADDR_SHADOW remains unchanged.
– SRC/DST_ADDR_SHADOW remains unchanged.
– SRC/DST_BEG_ADDR_ACTIVE = SRC/DST_BEG_ADDR_SHADOW
– SRC/DST_ADDR_ACTIVE = SRC/DST_ADDR_SHADOW
• The active registers get updated when a wrap occurs. The shadow registers remain unchanged. Specifically:
– SRC/DST_BEG_ADDR_SHADOW remains unchanged.
– SRC/DST_ADDR_SHADOW remains unchanged.
– SRC/DST_BEG_ADDR_ACTIVE += SRC/DST_WRAP_STEP
– SRC/DST_ADDR_ACTIVE = SRC/DST_BEG_ADDR_ACTIVE
• The best way to remember this is:
– The shadow registers never change except by software.
– The active registers never change except by hardware, and a shadow register is only copied into the
active register, never an active register by another name.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 675
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
No
DMA trigger event?
Yes
Yes WRAP_COUNT !=
WRAP_COUNT = WRAP_SIZE
WRAP_SIZE
No
TRANSFER_COUNT = TRANSFER_SIZE
DMA Transfer in Progress (TRANSFER_STS = 1)
HALT
BURST_COUNT = BURST_SIZE
here
BURST in Progress (BURST_STS = 1)
*DST_ADDR_ACTIVE = *SRC_ADDR_ACTIVE
TRANSFER_COUNT > 0 End DMA Transfer CONTINUOUS Enabled? DMA Channel disabled
No [TRANSFERSTS = 0] [CONTINUOUS = 1] No RUNSTS = 0
Yes
TRANSFER_COUNT--
Yes Yes
SRC_WRAP_COUNT -- SRC_WRAP_COUNT > 0 DST_WRAP_COUNT -- DST_WRAP_COUNT > 0
No No
Points where No
state machine Wait for DMA Trigger Event
branches to next
channel No Another DMA trigger
event
Yes
676 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
If instead the channel were configured to transfer the same amount of data 32 bits at a time (the word size is
configured to 32 bits), the transfer can take:
The DMA module consists of a 3-stage pipeline as shown in Figure 5-6 and Figure 5-7.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 677
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
Note
If the CPU is performing a read-modify-write operation and the DMA performs a write to the same
location, the DMA write can be lost if the operation occurs in between the CPU read and the CPU
write. Avoid mixing CPU writes with DMA writes to the same locations.
Arbitration within DMA channels is based on a round-robin priority or Channel 1 high-priority scheme described
in Section 5.6.
678 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
In the case above, after each channel has transferred a burst of words, the next channel is serviced. The user
can specify the size of the burst for each channel. Once CH6 (or the last enabled channel) has been serviced,
and no other channels are pending, the round-robin state machine enters an idle state.
From the idle state, channel 1 (if enabled) is always serviced first. However, if the DMA is currently processing
another channel x, all other pending channels between x and the end of the round are serviced before CH1.
All the channels are of equal priority. For instance, take an example where CH1, CH4, and CH5 are enabled
in round-robin mode and CH4 is currently being processed. Then CH1 and CH5 both receive an interrupt
trigger from the respective peripherals before CH4 completes. CH1 and CH5 are now both pending. When CH4
completes the burst, CH5 is serviced next. Only after CH5 completes is CH1 serviced. Upon completion of CH1,
if there are no more channels pending, the round-robin state machine enters an idle state.
A more complicated example is:
• Assume all channels are enabled, and the DMA is in an idle state,
• Initially a trigger occurs on CH1, CH3, and CH5 on the same cycle,
• When the CH1 burst transfer starts, requests from CH3 and CH5 are pending,
• Before completion of the CH1 burst, the DMA receives a request from CH2. Now the pending requests are
from CH2, CH3, and CH5,
• After completing the CH1 burst, CH2 is serviced since this channel is next in the round-robin scheme after
CH1.
• After the burst from CH2 is finished, the CH3 burst is serviced, followed by CH5 burst.
• Now while the CH5 burst is being serviced, the DMA receives a request from CH1, CH3, and CH6.
• The burst from CH6 starts after the completion of the CH5 burst, since this channel is the next channel after
CH5 in the round-robin scheme.
• This is followed by the CH1 burst and then the CH3 burst
• After the CH3 burst finishes, assuming no more triggers have occurred, the round-robin state machine enters
an idle state.
The round-robin state machine can be reset to the idle state using the DMACTRL[PRIORITYRESET] bit.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 679
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
Given an example where CH1, CH4, and CH5 are enabled in Channel 1 high-priority mode and CH4 is currently
being processed. Then CH1 and CH5 both receive an interrupt trigger from the respective peripherals before
CH4 completes. CH1 and CH5 are now both pending. When the current CH4 word transfer is completed,
regardless of whether the DMA has completed the entire CH4 burst, CH4 execution is suspended and CH1 is
serviced. After the CH1 burst completes, CH4 resumes execution.
Upon completion of CH4, CH5 is serviced. After CH5 completes, if there are no more channels pending, the
round-robin state machine enters an idle state.
Typically Channel 1 is used in this mode for the ADC, since the data rate is so high. However, Channel 1
high-priority mode can be used in conjunction with any peripheral.
Note
High-priority mode and ONESHOT mode cannot be used at the same time on Channel 1. Other
channels can use ONESHOT mode when Channel 1 is in high-priority mode.
DMA
channel interrupt DMACHx interrupt generated
PIE at beginning or end of transfer
CHx.MODE[CHINTE] CHx.CONTROL[OVRFLG]
CHx.CONTROL[PERINTFLG]
PERx_INT
Latch
CHx.CONTROL[ERRCLR]
CHx.MODE[OVERINTE]
680 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
5.8 Software
5.8.1 DMA Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/dma
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
5.8.1.1 DMA GSRAM Transfer (dma_ex1_gsram_transfer)
FILE: dma_ex1_gsram_transfer.c
This example uses one DMA channel to transfer data from a buffer in RAMGS0 to a buffer in RAMGS1. The
example sets the DMA channel PERINTFRC bit repeatedly until the transfer of 16 bursts (where each burst is 8
16-bit words) has been completed. When the whole transfer is complete, it will trigger the DMA interrupt.
: This example project has support for migration across our C2000 device families. If you are wanting to build
this project from launchpad or controlCARD, please specify in the .syscfg file the board you're using. At any time
you can select another device to migrate this example. Watch Variables
• sData - Data to send
• rData - Received data
5.8.1.2 DMA Transfer Shared Peripheral - C28X_DUAL
FILE: dma_ex1_shared_periph_cpu1.c
This example shows how to initiate a DMA transfer on CPU1 from a shared peripheral which is owned by CPU2.
In this specific example, a timer ISR is used on CPU2 to initiate a SPI transfer which will trigger the CPU1 DMA.
CPU1's DMA will then in turn update the ePWM1 CMPA value for the PWM which it owns. The PWM output can
be observed on the GPIO pins. It is recommended to run the c28x1 core first, followed by the C28x2 core.
Watch Pins
• GPIO0 and GPIO1 - ePWM output can be viewed with oscilloscope
5.8.1.3 DMA Transfer for Shared Peripheral Example (CPU2) - C28X_DUAL
FILE: dma_ex1_shared_periph_cpu2.c
This example shows how to initiate a DMA transfer on CPU1 from a shared peripheral that is owned by CPU2. In
this specific example, a timer ISR is used on CPU2 to initiate a SPI transfer that triggers the CPU1 DMA. CPU1
DMA then updates the ePWM1 CMPA value for the PWM that the DMA owns. The PWM output can be observed
on the GPIO pins. It is recommended to run the c28x1 core first, followed by the C28x2 core.
5.8.1.4 DMA GSRAM Transfer (dma_ex2_gsram_transfer)
FILE: dma_ex2_gsram_transfer.c
This example uses one DMA channel to transfer data from a buffer in RAMGS0 to a buffer in RAMGS1. The
example sets the DMA channel PERINTFRC bit repeatedly until the transfer of 16 bursts (where each burst is 8
16-bit words) has been completed. When the whole transfer is complete, it will trigger the DMA interrupt.
Watch Variables
• sData - Data to send
• rData - Received data
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 681
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
682 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
Complex bit access types are encoded to fit into small table cells. Table 5-5 shows the codes that are used for
access types in this section.
Table 5-5. DMA_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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 683
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
RESERVED PRIORITYRES HARDRESET
ET
R-0h R-0/W1S-0h R-0/W1S-0h
684 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
RESERVED
R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 685
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
RESERVED CH1PRIORITY
R-0h R/W-0h
686 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
RESERVED ACTIVESTS_SHADOW RESERVED ACTIVESTS
R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 687
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 5-11 shows the codes that are used for
access types in this section.
Table 5-11. DMA_CH_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
688 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
OVRINTE RESERVED PERINTSEL
R/W-0h R-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 689
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
690 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
ERRCLR RESERVED RESERVED PERINTCLR PERINTFRC SOFTRESET HALT RUN
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 691
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
692 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
RESERVED BURSTSIZE
R-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 693
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
RESERVED BURSTCOUNT
R-0h R-0h
694 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
SRCBURSTSTEP
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 695
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
DSTBURSTSTEP
R/W-0h
696 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
TRANSFERSIZE
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 697
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
TRANSFERCOUNT
R-0h
698 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
SRCTRANSFERSTEP
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 699
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
DSTTRANSFERSTEP
R/W-0h
700 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
WRAPSIZE
R/W-FFFFh
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 701
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
WRAPSIZE
R-0h
702 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
WRAPSTEP
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 703
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
WRAPSIZE
R/W-FFFFh
704 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
7 6 5 4 3 2 1 0
WRAPSIZE
R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 705
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
7 6 5 4 3 2 1 0
WRAPSTEP
R/W-0h
706 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 707
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
708 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 709
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
710 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 711
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
712 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 713
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
714 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Direct Memory Access (DMA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 715
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Direct Memory Access (DMA) www.ti.com
716 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
Chapter 6
Control Law Accelerator (CLA)
The Control Law Accelerator (CLA) Type-1 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.
6.1 Introduction...............................................................................................................................................................718
6.2 CLA Interface............................................................................................................................................................ 720
6.3 CLA and CPU Arbitration.........................................................................................................................................726
6.4 CLA Configuration and Debug................................................................................................................................ 729
6.5 Pipeline......................................................................................................................................................................732
6.6 Software.................................................................................................................................................................... 738
6.7 Instruction Set...........................................................................................................................................................739
6.8 CLA Registers...........................................................................................................................................................870
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 717
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
6.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.
6.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: up to 256 possible 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.
– The CLA, on reset, is the secondary master for all peripherals that can have either the CLA or DMA as
their secondary master.
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)
718 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
• Enhancing the Computational Performance of the C2000™ Microcontroller Family Application Report
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
6.1.3 Block Diagram
Figure 6-1 is a block diagram of the CLA.
CLA Control
Register Set
MIFR(16) CLA_INT1
From MPERINT1 to
MIOVF(16)
Shared to MICLR(16) CLA_INT8
Peripherals MPERINT8 MICLROVF(16) INT11 C28x
PIE
MIFRC(16) INT12 CPU
MIER(16)
MIRUN(16)
LVF
LUF
MVECT1(16)
MVECT2(16)
MVECT3(16)
SYSCLK MVECT4(16)
CLA Clock Enable MVECT5(16)
SYSRSn CPU Read/Write Data Bus
MVECT6(16)
MVECT7(16)
MVECT8(16) CLA Program
CLA Program Bus Memory (LSx)
MCTL(16)
LSxMSEL[MSEL_LSx]
LSxCLAPGM[CLAPGM_LSx]
Register Set
MPC(16) CLA Message
MSTF(32) RAMs
MR0(32)
MR1(32)
MR2(32) Shared
MR3(32) Peripherals
MAR0(16) MEALLOW
MAR1(16)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 719
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
720 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 721
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
Note
The CLA read access time to the bus is 2-wait states while write access is 0-wait.
Refer to the device data sheet for the list of peripherals connected to the bus.
Several peripheral control registers are protected from spurious 28x CPU writes by the EALLOW protection
mechanism. These same registers are also protected from spurious CLA writes. The EALLOW bit in the CPU
status register 1 (ST1) indicates the state of protection for the CPU. Likewise, the MEALLOW bit in the CLA
status register (MSTF) indicates the state of write protection for the CLA. The MEALLOW CLA instruction
enables write access by the CLA to EALLOW protected registers. Likewise, the MEDIS CLA instruction disables
write access. This way the CLA can enable and disable write access independent of the CPU.
The ADC offers the option to generate an early interrupt pulse at the start of a sample conversion. If this option
is used to start an ADC-triggered CLA task, use the intervening cycles until the completion of the conversion
to perform preliminary calculations or loads and stores before finally reading the ADC value. The CLA pipeline
activity for this scenario is shown in Section 6.5.
6.2.4 CLA Tasks and Interrupt Vectors
The CLA program code is divided up into tasks or interrupt service routines. Tasks do not have a fixed starting
location or length. The CLA program memory can be divided up as desired. The CLA uses the contents of the
interrupt vectors (MVECT1 to MVECT8) to determine where a task begins; tasks are terminated by the MSTOP
instruction.
The CLA supports eight tasks. Task 1 has the highest priority and task 8 has the lowest priority.
A task can be requested by a peripheral interrupt or by software:
• Peripheral interrupt trigger
Each task can be triggered by software-selectable interrupt sources. The trigger for each task is defined by
writing an appropriate value to the DmaClaSrcSelRegs.CLA1TASKSRCSELx[TASKx] bit field. Each option
specifies an interrupt source from a specific peripheral on the shared bus. The peripheral interrupt triggers
are listed in Table 6-1.
For example, task 1 (MVECT1) can be set to trigger on EPWMINT1 by writing 36 to
DmaClaSrcSelRegs.CLA1TASKSRCSEL1.TASK1. To disable the triggering of a task by a peripheral, set
the DmaClaSrcSelRegs.CLA1TASKSRCSELx[TASKx] bit field to 0. Note that a CLA task only triggers on a
level transition (an edge) of the configured interrupt source.
722 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 723
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
46 EPWM11_INT
47 EPWM12_INT
48-67 Reserved
68 CPU_TINT0
69 CPU_TINT1
70 CPU_TINT2
71 MCBSPA_TX
72 MCBSPA_RX
73 MCBSPB_TX
74 MCBSPB_RX
75 ECAP1_INT
76 ECAP2_INT
77 ECAP3_INT
78 ECAP4_INT
79 ECAP5_INT
80 ECAP6_INT
81-82 Reserved
83 EQEP1_INT
84 EQEP2_INT
85 EQEP3_INT
86-94 Reserved
95 SD1_ERRINT
96 SD2_ERRINT
97-106 Reserved
107 UPPA_INT
108 Reserved
109 SPIA_TXINT
110 SPIA_RXINT
111 SPIB_TXINT
112 SPIB_RXINT
113 SPIC_TXINT
114 SPIC_RXINT
115-126 Reserved
127 CLB1_INT
128 CLB2_INT
129 CLB3_INT
130 CLB4_INT
131-255 Reserved
724 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
The CLA has a fetch mechanism and can run and execute a task independent of the CPU. Only one task is
serviced at a time; there is no nesting of tasks. The task currently running is indicated in the MIRUN register.
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), 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.
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.
Once a task completes the next highest-priority pending task is automatically serviced and this sequence
repeats.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 725
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
726 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 727
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.
728 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 729
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
5. Enable CLA tasks/interrupts: Set appropriate bits in the interrupt enable register (MIER) to allow the CLA
to service interrupts. Note that a CLA task only triggers on a level transition (a falling edge) of the configured
interrupt source. If a peripheral is enabled and an interrupt fires before the CLA is configured, then the CLA
does not recognize the interrupt edge and does not respond. To avoid this, configure the CLA before the
peripherals or clear any pending peripheral interrupts before setting bits in the MIER register.
6. Initialize other peripherals: Initialize any peripherals (such as ePWM, ADC, and others) that generate
interrupt triggers for enabled CLA tasks.
The CLA is now ready to service interrupts and the message RAMs can be used to pass data between the
CPU and the CLA. Mapping of the CLA program and data RAMs typically occurs only during the initialization
process. If the RAM mapping needs to be changed after initialization, the CLA interrupts must be disabled
and all tasks must be completed (by checking the MIRUN register) prior to modifying the RAM ownership.
730 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 731
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
6.5 Pipeline
This section describes the CLA pipeline stages and presents cases where pipeline alignment must be
considered.
6.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.
732 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 733
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
734 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 735
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
736 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 737
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
6.6 Software
6.6.1 CLA Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/cla
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
6.6.1.1 CLA arcsine(x) using a lookup table (cla_asin_cpu01)
FILE: cla_ex1_asin.c
In this example, Task 1 of the CLA will calculate the arcsine of an input argument in the range (-1.0 to 1.0) using
a lookup table.
Memory Allocation
• CLA1 Math Tables (RAMLS0)
• CLA1 to CPU Message RAM
– fResult - Result of the lookup algorithm
• CPU to CLA1 Message RAM
– fVal - Sample input to the lookup algorithm
Watch Variables
• fVal - Argument to task 1
• fResult - Result of arcsin(fVal)
6.6.1.2 CLA arctangent(x) using a lookup table (cla_atan_cpu01)
FILE: cla_ex2_atan.c
In this example, Task 1 of the CLA will calculate the arctangent of an input argument using a lookup table.
Memory Allocation
• CLA1 Math Tables (RAMLS0)
• CLA1 to CPU Message RAM
– fResult - Result of the lookup algorithm
• CPU to CLA1 Message RAM
– fNum - Numerator of sample input
– fDen - Denominator of sample input
Watch Variables
• fVal - Argument to task 1
• fResult - Result of arctan(fVal)
738 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 739
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 6-6. 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 6.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.
740 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 6-8.
Table 6-8. Shift Field Encoding
Shift Value 'shift' Opcode
Field Encode
1 0000
2 0001
3 0010
.... ....
32 1111
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 741
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
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:
The two-bit field specifies one of four working registers according to Table 6-9.
Table 6-9. Operand Encoding
Two-Bit Field Working Register
00 MR0
01 MR1
10 MR2
11 MR3
Table 6-10 shows the condition field encoding for conditional instructions such as MNEGF, MSWAPF, MBCNDD,
MCCNDD, and MRCNDD.
Table 6-10. 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
742 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
6.7.3 Instructions
The instructions are listed alphabetically.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 743
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.................................... 826
MMOVI32 MRa, #32FHex — Load the 32-Bits of a 32-Bit Floating-Point Register with the Immediate............. 828
MMOVIZ MRa, #16FHi — Load the Upper 16-Bits of a 32-Bit Floating-Point Register ......................................830
MMOVZ16 MRa, mem16 — Load MRx with 16-Bit Value...................................................................................831
MMOVXI MRa, #16FLoHex — Move Immediate Value to the Lower 16-Bits of a Floating-Point Register.........832
MMPYF32 MRa, MRb, MRc — 32-Bit Floating-Point Multiply.............................................................................833
MMPYF32 MRa, #16FHi, MRb — 32-Bit Floating-Point Multiply ....................................................................... 834
MMPYF32 MRa, MRb, #16FHi — 32-Bit Floating-Point Multiply ....................................................................... 836
MMPYF32 MRa, MRb, MRc||MADDF32 MRd, MRe, MRf — 32-Bit Floating-Point Multiply with Parallel Add...838
MMPYF32 MRd, MRe, MRf ||MMOV32 MRa, mem32 — 32-Bit Floating-Point Multiply with Parallel Move...... 840
MMPYF32 MRd, MRe, MRf ||MMOV32 mem32, MRa — 32-Bit Floating-Point Multiply with Parallel Move...... 842
MMPYF32 MRa, MRb, MRc ||MSUBF32 MRd, MRe, MRf — 32-Bit Floating-Point Multiply with Parallel Subtract
.............................................................................................................................................................................843
MNEGF32 MRa, MRb{, CNDF} — Conditional Negation....................................................................................845
MNOP — No Operation....................................................................................................................................... 847
MOR32 MRa, MRb, MRc — Bitwise OR............................................................................................................. 848
MRCNDD {CNDF} — Return Conditional Delayed..............................................................................................849
MSETFLG FLAG, VALUE — Set or Clear Selected Floating-Point Status Flags............................................... 852
MSTOP — Stop Task...........................................................................................................................................853
MSUB32 MRa, MRb, MRc — 32-Bit Integer Subtraction.................................................................................... 855
MSUBF32 MRa, MRb, MRc — 32-Bit Floating-Point Subtraction.......................................................................856
MSUBF32 MRa, #16FHi, MRb — 32-Bit Floating-Point Subtraction...................................................................857
MSUBF32 MRd, MRe, MRf ||MMOV32 MRa, mem32 — 32-Bit Floating-Point Subtraction with Parallel Move....
859
MSUBF32 MRd, MRe, MRf ||MMOV32 mem32, MRa — 32-Bit Floating-Point Subtraction with Parallel Move....
860
MSWAPF MRa, MRb {, CNDF} — Conditional Swap......................................................................................... 861
MTESTTF CNDF — Test MSTF Register Flag Condition....................................................................................863
MUI16TOF32 MRa, mem16 — Convert Unsigned 16-Bit Integer to 32-Bit Floating-Point Value........................865
MUI16TOF32 MRa, MRb — Convert Unsigned 16-Bit Integer to 32-Bit Floating-Point Value............................ 866
MUI32TOF32 MRa, mem32 — Convert Unsigned 32-Bit Integer to 32-Bit Floating-Point Value........................867
MUI32TOF32 MRa, MRb — Convert Unsigned 32-Bit Integer to 32-Bit Floating-Point Value............................ 868
MXOR32 MRa, MRb, MRc — Bitwise Exclusive Or............................................................................................ 869
744 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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}
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 745
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
746 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 747
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
748 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 749
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
750 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 751
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
752 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 753
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
754 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 755
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
756 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 757
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
758 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 6-11, 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 6-11 and Table 6-12, 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 759
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
760 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 761
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
762 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 763
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 6-13, 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 6-13 and
Table 6-14, 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.
764 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 765
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
766 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 767
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
768 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 769
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
770 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 771
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
772 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 773
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
774 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 775
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
776 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 777
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
778 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 779
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
780 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 781
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
782 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 783
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
784 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 785
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)
786 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 787
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
788 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 789
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
790 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 791
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
792 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 793
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.
794 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 795
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
796 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 797
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
798 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 799
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
800 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 801
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
802 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 803
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
804 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 805
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
806 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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:
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 807
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.
808 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 809
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:
810 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 811
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.
812 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 813
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.
814 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 815
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
816 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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;
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 817
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
818 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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;
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 819
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}
820 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 821
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.
822 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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}
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 823
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
824 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 825
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.
826 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 827
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.
828 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 829
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
830 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 831
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
832 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 833
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
834 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 835
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
836 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 837
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.
838 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 839
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
840 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 841
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
842 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 843
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
844 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 845
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
846 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 847
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
848 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 6-18, 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 849
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
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.
Referring to the following code fragment and the pipeline diagrams in Table 6-18 and
Table 6-19, 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.
850 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 851
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
852 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 853
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 6-20 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 6-20. 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
854 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 855
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
856 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 857
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
858 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 859
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
860 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 861
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
862 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 863
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
864 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 865
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
866 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 867
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
868 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 869
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
870 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 6-23 shows the codes that are used for
access types in this section.
Table 6-23. CLA_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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 871
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
872 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 873
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
874 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 875
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
876 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 877
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
878 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 879
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
880 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 IACKE SOFTRESET HARDRESET
R-0h R/W-0h R-0/W1S-0h R-0/W1S-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 881
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-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
882 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 883
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
884 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 885
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-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
886 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 887
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
888 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 889
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
890 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 891
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
892 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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-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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 893
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
894 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 895
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
896 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 897
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-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
898 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 899
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
_MPC
R-0h
900 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
7 6 5 4 3 2 1 0
_MAR0
R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 901
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
7 6 5 4 3 2 1 0
_MAR1
R-0h
902 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 903
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
904 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 905
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
906 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 907
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
908 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 909
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 6-49 shows the codes that are used for
access types in this section.
Table 6-49. 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.
910 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 911
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
912 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 913
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Control Law Accelerator (CLA) www.ti.com
914 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Control Law Accelerator (CLA)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 915
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
Chapter 7
Interprocessor Communication (IPC)
The Interprocessor Communications (IPC) module allows communication between the two CPU subsystems.
7.1 Introduction...............................................................................................................................................................917
7.2 Message RAMs......................................................................................................................................................... 918
7.3 IPC Flags and Interrupts.......................................................................................................................................... 918
7.4 IPC Command Registers..........................................................................................................................................918
7.5 Free-Running Counter..............................................................................................................................................918
7.6 IPC Communication Protocol..................................................................................................................................919
7.7 IPC Registers............................................................................................................................................................ 920
916 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
7.1 Introduction
This section details the IPC features that each CPU can use to request and share information. The IPC features
are:
• Message RAMs
• IPC flags and interrupts
• IPC command registers
• Flash pump semaphore
• Clock configuration semaphore
• Free-running counter
All IPC features are independent of each other, and most do not require any specific data format.
There are also two registers for boot mode and status communication. Please refer to the boot ROM chapter for
more information on these registers.
Figure 7-1 shows the design structure of the IPC module.
SET31
CLR31 ACK31
FLG31
R IPCFLG[31:0] IPCSTS[31:0] R
R/W IPCBOOTMODE[31:0] R
R IPCBOOTSTS[31:0] R/W
CPU1.EmulationHalt CPU2.EmulationHalt
64-bit Free Run Counter
CPU1 PLLSYSCLK CPU2
R IPCCOUNTERH/L[31:0] R
SET31
ACK31 CLR31
FLG31
CPU1. C2TOC1IPCINT1/2/3/4
Gen Int Pulse
ePIE (on FLG 0->1)
R IPCSTS[31:0] IPCFLG[31:0] R
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 917
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
918 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 919
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
920 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
Complex bit access types are encoded to fit into small table cells. Table 7-5 shows the codes that are used for
access types in this section.
Table 7-5. IPC_REGS_CPU1 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 921
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
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
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
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
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
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
922 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 923
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
924 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 925
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
926 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 927
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
928 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
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
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
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
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 929
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
930 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 931
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
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
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
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
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
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
932 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 933
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
934 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 935
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
936 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 937
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
938 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 939
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
940 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 941
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
942 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 943
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
944 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 945
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
946 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 947
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
948 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 949
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
950 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 951
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
952 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
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. IPC_REGS_CPU2 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 953
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
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
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
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
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
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
954 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 955
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
956 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 957
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
958 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 959
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
960 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
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
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
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
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 961
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
962 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 963
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
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
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
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
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
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
964 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 965
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
966 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 967
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
968 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
23 22 21 20 19 18 17 16
IPC23 IPC22 IPC21 IPC20 IPC19 IPC18 IPC17 IPC16
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
IPC15 IPC14 IPC13 IPC12 IPC11 IPC10 IPC9 IPC8
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
IPC7 IPC6 IPC5 IPC4 IPC3 IPC2 IPC1 IPC0
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 969
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
970 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 971
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
972 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 973
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
974 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 975
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
976 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 977
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
978 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 979
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
980 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 981
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
982 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 983
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Interprocessor Communication (IPC) www.ti.com
984 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Interprocessor Communication (IPC)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 985
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Chapter 8
General-Purpose Input/Output (GPIO)
The GPIO module controls the device's digital 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.
8.1 Introduction...............................................................................................................................................................987
8.2 Configuration Overview........................................................................................................................................... 989
8.3 Digital General-Purpose I/O Control....................................................................................................................... 990
8.4 Input Qualification.................................................................................................................................................... 991
8.5 USB Signals.............................................................................................................................................................. 995
8.6 SPI Signals................................................................................................................................................................ 995
8.7 GPIO and Peripheral Muxing................................................................................................................................... 996
8.8 Internal Pullup Configuration Requirements....................................................................................................... 1004
8.9 Software.................................................................................................................................................................. 1005
8.10 GPIO Registers..................................................................................................................................................... 1006
986 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
8.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 four CPU
masters.
• CPU1
• CPU1.CLA
• CPU2
• CPU2.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.
Note
The USB PHY pin muxing is not shown in Figure 8-1. For more details on USB pins, see Section 8.5.
There are two key features to note in Figure 8-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 mastering 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 masters and peripherals. However, the peripheral muxing,
CPU muxing, and pin options can only be configured by CPU1.
A separate configuration is required for the USB signals. See Section 8.5 for details.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 987
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
Input
XBAR
CPU1 00:00 Unused
00:01 Peripheral A
GPyPUD Pull-Up 00:10 Peripheral B
Low Power CPU1 00:11 Peripheral C
Mode Control
CPU1 GPyCTRL GPyQSEL1-2
CPU1/CPU1.CLA/ 01:00 Unused
CPU2/CPU2.CLA GPyINV SYSCLK 01:01 Peripheral D
01:10 Peripheral E
GPyDAT (R) 00 01:11
Sync Peripheral F
3-sample 01
0 6-sample 10 10:xx Peripherals G-I
Async 11
GPIOx 1 11:xx Peripherals J-L
Direcon 00
01
10
11
Data
00:00
00:01 Peripheral A
00:10 Peripheral B
Data 00:11 Peripheral C
Foundational Materials
• C2000 Academy - GPIO
988 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
Note
Configure the GPIO registers GPxMUX1, GPxMUX2, GPxINV, GPxGMUX1, and GPxGMUX2 as per
Section 8.7 before a peripheral starts using the respective GPIOs. The configuration is expected to be
static during runtime.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 989
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.
• 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.
• 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.
990 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
• 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 991
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
GPxCTRL Reg
GPxQSEL1/2
SYSCLKOUT
Number of Samples
992 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 (GPAQSEL1, GPAQSEL2, GPBQSEL1, and GPBQSEL2) 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 8-3. 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 8-1. Likewise, for a six-sample window, the sampling-window width is five sampling-periods
wide. Table 8-3 and Table 8-4 show the calculations used to determine the total sampling-window width based
on GPxCTRL[QUALPRDn] and the number of samples taken.
Table 8-3. 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 993
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.
994 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 995
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
996 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 997
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
998 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 999
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1000 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1001
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 8.7.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 8-9.
Note
The following table is for example only. Bit ranges cannot correspond to OUTPUTXBAR1 on this
device. See Section 8.7.1 for correct list of GPIOs and corresponding mux options for this device.
1002 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 8-9. 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1003
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1004 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
8.9 Software
8.9.1 GPIO Examples
NOTE: These examples are located in the C2000Ware installation at the following location:
C2000Ware_VERSION#/driverlib/DEVICE_GPN/examples/CORE_IF_MULTICORE/gpio
Cloud access to these examples is available at the following link: dev.ti.com C2000Ware Examples.
8.9.1.1 Device GPIO Setup
FILE: gpio_ex1_setup.c
Configures the device GPIO into two different configurations This code is verbose to illustrate how the GPIO
could be setup. In a real application, lines of code can be combined for improved code size and efficiency.
This example only sets-up the GPIO. Nothing is actually done with the pins after setup.
In general:
• All pullup resistors are enabled. For ePWMs this may not be desired.
• Input qual for communication ports (CAN, SPI, SCI, I2C) is asynchronous
• Input qual for Trip pins (TZ) is asynchronous
• Input qual for eCAP and eQEP signals is synch to SYSCLKOUT
• Input qual for some I/O's and __interrupts may have a sampling window
8.9.1.2 Device GPIO Toggle
FILE: gpio_ex2_toggle.c
Configures the device GPIO through the sysconfig file. The GPIO pin is toggled in the infinite loop. In order to
migrate the project within syscfg to any device, click the swtich button under the device view and select your
corresponding device to migrate, saving the project will auto-migrate your project settings.
: This example project has support for migration across our C2000 device families. If you are wanting to build
this project from launchpad or controlCARD, please specify in the .syscfg file the board you're using. At any time
you can select another device to migrate this example.
8.9.1.3 Device GPIO Interrupt
FILE: gpio_ex3_interrupt.c
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.
8.9.2 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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1005
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1006 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1007
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1008 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 8-13 shows the codes that are used for
access types in this section.
Table 8-13. GPIO_CTRL_REGS Access Type Codes
Access Type Code Description
Read Type
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1009
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1010 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1011
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
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
1012 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1013
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
1014 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1015
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
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
1016 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1017
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
1018 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1019
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
1020 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1021
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-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
1022 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1023
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
1024 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1025
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
1026 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1027
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
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
1028 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1029
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
GPIO3 GPIO2 GPIO1 GPIO0
R/W-0h R/W-0h R/W-0h R/W-0h
1030 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO11 GPIO10 GPIO9 GPIO8
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1031
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
GPIO19 GPIO18 GPIO17 GPIO16
R/W-0h R/W-0h R/W-0h R/W-0h
1032 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO27 GPIO26 GPIO25 GPIO24
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1033
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
1034 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1035
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/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
15 14 13 12 11 10 9 8
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 GPIO8
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
7 6 5 4 3 2 1 0
GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
1036 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1037
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1038 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1039
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1040 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1041
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1042 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1043
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1044 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1045
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1046 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1047
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1048 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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-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
GPIO39 GPIO38 GPIO37 GPIO36 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1049
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1050 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1051
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1052 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1053
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1054 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO43 GPIO42 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1055
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1056 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1057
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
1058 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1059
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
1060 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1061
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
1062 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1063
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1064 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
15 14 13 12 11 10 9 8
GPIO47 GPIO46 GPIO45 GPIO44 GPIO43 GPIO42 GPIO41 GPIO40
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
7 6 5 4 3 2 1 0
GPIO39 GPIO38 GPIO37 GPIO36 GPIO35 GPIO34 GPIO33 GPIO32
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1065
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1066 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1067
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
1068 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1069
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
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
1070 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1071
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
1072 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1073
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
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
1074 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1075
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
1076 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1077
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
1078 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1079
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
1080 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1081
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
1082 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1083
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
1084 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1085
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
1086 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1087
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
GPIO83 GPIO82 GPIO81 GPIO80
R/W-0h R/W-0h R/W-0h R/W-0h
1088 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO91 GPIO90 GPIO89 GPIO88
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1089
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
1090 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1091
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 GPIO81 GPIO80
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
15 14 13 12 11 10 9 8
GPIO79 GPIO78 GPIO77 GPIO76 GPIO75 GPIO74 GPIO73 GPIO72
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
7 6 5 4 3 2 1 0
GPIO71 GPIO70 GPIO69 GPIO68 GPIO67 GPIO66 GPIO65 GPIO64
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
1092 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1093
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1094 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO107 GPIO106 GPIO105 GPIO104
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO103 GPIO102 GPIO101 GPIO100
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1095
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1096 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO123 GPIO122 GPIO121 GPIO120
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO119 GPIO118 GPIO117 GPIO116
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO115 GPIO114 GPIO113 GPIO112
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1097
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1098 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO107 GPIO106 GPIO105 GPIO104
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO103 GPIO102 GPIO101 GPIO100
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1099
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1100 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO123 GPIO122 GPIO121 GPIO120
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO119 GPIO118 GPIO117 GPIO116
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO115 GPIO114 GPIO113 GPIO112
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1101
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1102 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1103
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1104 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1105
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1106 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1107
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1108 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1109
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1110 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO107 GPIO106 GPIO105 GPIO104
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO103 GPIO102 GPIO101 GPIO100
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1111
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1112 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO123 GPIO122 GPIO121 GPIO120
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO119 GPIO118 GPIO117 GPIO116
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO115 GPIO114 GPIO113 GPIO112
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1113
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1114 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1115
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
GPIO107 GPIO106 GPIO105 GPIO104
R/W-0h R/W-0h R/W-0h R/W-0h
1116 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO115 GPIO114 GPIO113 GPIO112
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1117
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
GPIO123 GPIO122 GPIO121 GPIO120
R/W-0h R/W-0h R/W-0h R/W-0h
1118 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1119
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1120 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
15 14 13 12 11 10 9 8
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
7 6 5 4 3 2 1 0
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1121
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1122 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1123
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO139 GPIO138 GPIO137 GPIO136
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO135 GPIO134 GPIO133 GPIO132
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h
1124 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1125
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO155 GPIO154 GPIO153 GPIO152
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO151 GPIO150 GPIO149 GPIO148
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO147 GPIO146 GPIO145 GPIO144
R/W-0h R/W-0h R/W-0h R/W-0h
1126 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1127
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO139 GPIO138 GPIO137 GPIO136
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO135 GPIO134 GPIO133 GPIO132
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h
1128 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1129
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO155 GPIO154 GPIO153 GPIO152
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO151 GPIO150 GPIO149 GPIO148
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO147 GPIO146 GPIO145 GPIO144
R/W-0h R/W-0h R/W-0h R/W-0h
1130 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1131
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1132 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1133
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
1134 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1135
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1136 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1137
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1138 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1139
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO139 GPIO138 GPIO137 GPIO136
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO135 GPIO134 GPIO133 GPIO132
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h
1140 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1141
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
23 22 21 20 19 18 17 16
GPIO155 GPIO154 GPIO153 GPIO152
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO151 GPIO150 GPIO149 GPIO148
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO147 GPIO146 GPIO145 GPIO144
R/W-0h R/W-0h R/W-0h R/W-0h
1142 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1143
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
GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h
1144 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO139 GPIO138 GPIO137 GPIO136
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core 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
GPIO147 GPIO146 GPIO145 GPIO144
R/W-0h R/W-0h R/W-0h R/W-0h
1146 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO155 GPIO154 GPIO153 GPIO152
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core 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
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core 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
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
15 14 13 12 11 10 9 8
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
7 6 5 4 3 2 1 0
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
1150 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1151
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1152 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO167 GPIO166 GPIO165 GPIO164
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1153
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1154 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO167 GPIO166 GPIO165 GPIO164
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1155
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1156 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1157
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1158 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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-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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h R/W-1h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1159
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1160 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1161
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1162 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1163
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1164 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
R/W-0h R/W-0h R/W-0h R/W-0h
15 14 13 12 11 10 9 8
GPIO167 GPIO166 GPIO165 GPIO164
R/W-0h R/W-0h R/W-0h R/W-0h
7 6 5 4 3 2 1 0
GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1165
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1166 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1167
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 GPIO168
R/W-0h R/W-0h R/W-0h R/W-0h
1168 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1169
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1170 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
15 14 13 12 11 10 9 8
RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED GPIO168
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
7 6 5 4 3 2 1 0
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h R/WOnce-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1171
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1172 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 8-113 shows the codes that are used for
access types in this section.
Table 8-113. GPIO_DATA_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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1173
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1174 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1175
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1176 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1177
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1178 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1179
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1180 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1181
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1182 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1183
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1184 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1185
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1186 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1187
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1188 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1189
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1190 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1191
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1192 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1193
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1194 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1195
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1196 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO87 GPIO86 GPIO85 GPIO84 GPIO83 GPIO82 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
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1197
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1198 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1199
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1200 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1201
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1202 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1203
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1204 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO119 GPIO118 GPIO117 GPIO116 GPIO115 GPIO114 GPIO113 GPIO112
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
GPIO111 GPIO110 GPIO109 GPIO108 GPIO107 GPIO106 GPIO105 GPIO104
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
GPIO103 GPIO102 GPIO101 GPIO100 GPIO99 GPIO98 GPIO97 GPIO96
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1205
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1206 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1207
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1208 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1209
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1210 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1211
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1212 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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
GPIO151 GPIO150 GPIO149 GPIO148 GPIO147 GPIO146 GPIO145 GPIO144
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
GPIO143 GPIO142 GPIO141 GPIO140 GPIO139 GPIO138 GPIO137 GPIO136
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
GPIO135 GPIO134 GPIO133 GPIO132 GPIO131 GPIO130 GPIO129 GPIO128
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1213
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1214 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1215
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1216 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1217
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1218 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1219
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1220 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 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 GPIO168
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
GPIO167 GPIO166 GPIO165 GPIO164 GPIO163 GPIO162 GPIO161 GPIO160
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1221
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1222 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1223
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1224 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1225
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1226 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com General-Purpose Input/Output (GPIO)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1227
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
General-Purpose Input/Output (GPIO) www.ti.com
1228 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
Chapter 9
Crossbar (X-BAR)
The crossbars (referred to as X-BAR throughout this chapter) provide flexibility to connect device inputs, outputs,
and internal resources in a variety of configurations.
The device contains a total of four X-BARs:
• Input X-BAR
• Output X-BAR
• CLB X-BAR
• ePWM X-BAR
Each of the X-BARs is named according to where the X-BAR takes signals. For example, the Input X-BAR
brings external signals “in” to the device. The Output X-BAR takes internal signals “out” of the device to a GPIO.
The CLB X-BAR and ePWM X-BAR take signals to the CLB and ePWM modules, respectively.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1229
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1230 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
INPUT7 eCAP1
GPIO0 INPUT8 eCAP2
Asynchronous INPUT9 eCAP3
Synchronous Input X-BAR
INPUT10 eCAP4
GPIOx Sync. + Qual.
INPUT11 eCAP5
INPUT12 eCAP6
INPUT14
INPUT13
INPUT6
INPUT5
INPUT4
INPUT3
INPUT2
INPUT1
TZ1,TRIP1
XINT5 TZ2,TRIP2
XINT4 TZ3,TRIP3
CPU PIE
XINT3
CLA XINT2 TRIP4
XINT1 TRIP5
TRIP7 ePWM
ePWM TRIP8 Modules
X-BAR TRIP9
TRIP10
TRIP11
TRIP12
TRIP6
ADC ADCEXTSOC
EXTSYNCIN1 ePWM and eCAP
EXTSYNCIN2 Sync Chain
Note
INPUTXBARx, INPUTXBAR_INPUTx, and INPUTx (when referenced in the context of Input X-BAR) are equivalent in all C2000 software and
documentation.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1231
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1232 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
0.0
0.1 0
0.2
0.3
TRIPxMUXENABLE
(32 bits)
TRIPxMUX0TO15CFG.MUX0
1.0
1.1 1
1.2
1.3
TRIPxMUX0TO15CFG.MUX1
31.0
31.1 TRIPOUTINV
31 (1 bit)
31.2
31.3
TRIPxMUX16TO31CFG.MUX31
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1233
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
Note
Do not use "Reserved" signals in your application.
1234 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
0.0
0.1 0
0.2
0.3 AUXSIGxMUXENABLE
(32 bits)
AUXSIGxMUX0TO15CFG.MUX0
1.0
1.1 1
1.2
1.3
AUXSIGx
AUXSIGxMUX0TO15CFG.MUX1
31.0
31.1 AUXSIGOUTINV
31 (1 bits)
31.2
31.3
AUXSIGxMUX16TO31CFG.MUX31
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1235
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
GPIO0 Asynchronous
to Synchronous Input X-BAR
GPIOx Sync. + Qual
INPUT1
O t he r to
Pe r i ph e ral s INPUT6
CLBx T ILE
CLB X-BAR OU T 4 / 5
AU XSI G 0 to AU XSIG7
T R M Tabl e :
G l o bal Si gn a l s an d CLB TILE1
M ux S e l e c o n
CLB Global GPREG CELL
Signals IN0-7
1236 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1237
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
0.0
0.1 0
0.2
0.3
OUTPUTxMUXENABLE
(32 bits)
OUTPUTxMUX0TO15CFG.MUX0
1.0
1.1 1
1.2
1.3
OUTPUTx
OUTPUTxMUX0TO15CFG.MUX1
OUTPUTLATCHENABLE
31.0
D Q
31.1 31
31.2 OLAT OUTPUTINV
31.3
Q
Note
Do not use "Reserved" signals in your application.
The ADCSOCAO and ADCSOCBO signals are active-high when routed through the X-BAR. The
signal can be inverted by the respective OUTPUTINV bit depending on the application.
1238 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
CMPSS1_CTRIPOUTOUTH_OR_CTRIPOU
G0 CMPSS1_CTRIPOUTH ADCAEVT1 ECAP1_OUT
TOUTL
CMPSS2_CTRIPOUTOUTH_OR_CTRIPOU
G2 CMPSS2_CTRIPOUTH ADCAEVT2 ECAP2_OUT
TOUTL
CMPSS3_CTRIPOUTOUTH_OR_CTRIPOU
G4 CMPSS3_CTRIPOUTH ADCAEVT3 ECAP3_OUT
TOUTL
CMPSS4_CTRIPOUTOUTH_OR_CTRIPOU
G6 CMPSS4_CTRIPOUTH ADCAEVT4 ECAP4_OUT
TOUTL
CMPSS5_CTRIPOUTOUTH_OR_CTRIPOU
G8 CMPSS5_CTRIPOUTH ADCBEVT1 ECAP5_OUT
TOUTL
CMPSS6_CTRIPOUTOUTH_OR_CTRIPOU
G10 CMPSS6_CTRIPOUTH ADCBEVT2 ECAP6_OUT
TOUTL
CMPSS7_CTRIPOUTOUTH_OR_CTRIPOU
G12 CMPSS7_CTRIPOUTH ADCBEVT3 Reserved
TOUTL
CMPSS8_CTRIPOUTOUTH_OR_CTRIPOU
G14 CMPSS8_CTRIPOUTH ADCBEVT4 EXTSYNCOUT
TOUTL
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1239
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
Note
Not all input sources are routed to all X-BAR modules. Refer to the X-BAR specific configuration
tables for exact connections.
CTRIPOUTH
CTRIPOUTL AUXSIG1
AUXSIG2
CMPSSx AUXSIG3
CTRIPH CLB AUXSIG4
CLB
CTRIPL X-BAR AUXSIG5 Global
AUXSIG6 Mux
AUXSIG7
AUXSIG8
TRIP4
ePWM and eCAP TRIP5
EXTSYNCOUT
Sync Chain TRIP7
ePWM TRIP8
ADCSOCA0 X-BAR TRIP9
ADCSOCAO TRIP10 All
Select Circuit
TRIP11 ePWM
TRIP12 Modules
ADCSOCB0
ADCSOCBO
Select Circuit
1240 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1241
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 9-7 shows the codes that are used for
access types in this section.
Table 9-7. INPUT_XBAR_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.
1242 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
7 6 5 4 3 2 1 0
SELECT
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1243
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
7 6 5 4 3 2 1 0
SELECT
R/W-0h
1244 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
7 6 5 4 3 2 1 0
SELECT
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1245
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
7 6 5 4 3 2 1 0
SELECT
R/W-0h
1246 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
7 6 5 4 3 2 1 0
SELECT
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1247
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
7 6 5 4 3 2 1 0
SELECT
R/W-0h
1248 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
7 6 5 4 3 2 1 0
SELECT
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1249
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
7 6 5 4 3 2 1 0
SELECT
R/W-0h
1250 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
7 6 5 4 3 2 1 0
SELECT
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1251
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
7 6 5 4 3 2 1 0
SELECT
R/W-0h
1252 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
7 6 5 4 3 2 1 0
SELECT
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1253
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
7 6 5 4 3 2 1 0
SELECT
R/W-0h
1254 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
7 6 5 4 3 2 1 0
SELECT
R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1255
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
7 6 5 4 3 2 1 0
SELECT
R/W-0h
1256 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
23 22 21 20 19 18 17 16
RESERVED
R-0-0h
15 14 13 12 11 10 9 8
INPUT16SELE INPUT15SELE INPUT14SELE INPUT13SELE INPUT12SELE INPUT11SELE INPUT10SELE INPUT9SELEC
CT CT CT CT CT CT CT T
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
INPUT8SELEC INPUT7SELEC INPUT6SELEC INPUT5SELEC INPUT4SELEC INPUT3SELEC INPUT2SELEC INPUT1SELEC
T T T T T T T T
R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h R/WSonce-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1257
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1258 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
Complex bit access types are encoded to fit into small table cells. Table 9-24 shows the codes that are used for
access types in this section.
Table 9-24. XBAR_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.
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1259
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
23 22 21 20 19 18 17 16
CMPSS4_CTRI CMPSS4_CTRI CMPSS3_CTRI CMPSS3_CTRI CMPSS2_CTRI CMPSS2_CTRI CMPSS1_CTRI CMPSS1_CTRI
POUTH POUTL POUTH POUTL POUTH POUTL POUTH POUTL
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
CMPSS8_CTRI CMPSS8_CTRI CMPSS7_CTRI CMPSS7_CTRI CMPSS6_CTRI CMPSS6_CTRI CMPSS5_CTRI CMPSS5_CTRI
PH PL PH PL PH PL PH PL
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
CMPSS4_CTRI CMPSS4_CTRI CMPSS3_CTRI CMPSS3_CTRI CMPSS2_CTRI CMPSS2_CTRI CMPSS1_CTRI CMPSS1_CTRI
PH PL PH PL PH PL PH PL
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
1260 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1261
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
23 22 21 20 19 18 17 16
ADCAEVT1 EXTSYNCOUT ECAP6_OUT ECAP5_OUT ECAP4_OUT ECAP3_OUT ECAP2_OUT ECAP1_OUT
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
CLB4_OUT5 CLB4_OUT4 CLB3_OUT5 CLB3_OUT4 CLB2_OUT5 CLB2_OUT4 CLB1_OUT5 CLB1_OUT4
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
ADCSOCBO ADCSOCAO INPUT6 INPUT5 INPUT4 INPUT3 INPUT2 INPUT1
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
1262 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1263
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
23 22 21 20 19 18 17 16
RESERVED SD2FLT4_COM SD2FLT4_COM SD2FLT3_COM SD2FLT3_COM SD2FLT2_COM SD2FLT2_COM SD2FLT1_COM
PH PL PH PL PH PL PH
R-0-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
15 14 13 12 11 10 9 8
SD2FLT1_COM SD1FLT4_COM SD1FLT4_COM SD1FLT3_COM SD1FLT3_COM SD1FLT2_COM SD1FLT2_COM SD1FLT1_COM
PL PH PL PH PL PH PL PH
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
7 6 5 4 3 2 1 0
SD1FLT1_COM ADCDEVT4 ADCDEVT3 ADCDEVT2 ADCDEVT1 ADCCEVT4 ADCCEVT3 ADCCEVT2
PL
R-0h R-0h R-0h R-0h R-0h R-0h R-0h R-0h
1264 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1265
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
23 22 21 20 19 18 17 16
CMPSS4_CTRI CMPSS4_CTRI CMPSS3_CTRI CMPSS3_CTRI CMPSS2_CTRI CMPSS2_CTRI CMPSS1_CTRI CMPSS1_CTRI
POUTH POUTL POUTH POUTL POUTH POUTL POUTH POUTL
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
15 14 13 12 11 10 9 8
CMPSS8_CTRI CMPSS8_CTRI CMPSS7_CTRI CMPSS7_CTRI CMPSS6_CTRI CMPSS6_CTRI CMPSS5_CTRI CMPSS5_CTRI
PH PL PH PL PH PL PH PL
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
CMPSS4_CTRI CMPSS4_CTRI CMPSS3_CTRI CMPSS3_CTRI CMPSS2_CTRI CMPSS2_CTRI CMPSS1_CTRI CMPSS1_CTRI
PH PL PH PL PH PL PH PL
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
1266 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1267
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
23 22 21 20 19 18 17 16
ADCAEVT1 EXTSYNCOUT ECAP6_OUT ECAP5_OUT ECAP4_OUT ECAP3_OUT ECAP2_OUT ECAP1_OUT
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
15 14 13 12 11 10 9 8
CLB4_OUT5 CLB4_OUT4 CLB3_OUT5 CLB3_OUT4 CLB2_OUT5 CLB2_OUT4 CLB1_OUT5 CLB1_OUT4
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
ADCSOCBO ADCSOCAO INPUT6 INPUT5 INPUT4 INPUT3 INPUT2 INPUT1
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
1268 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1269
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
23 22 21 20 19 18 17 16
RESERVED SD2FLT4_COM SD2FLT4_COM SD2FLT3_COM SD2FLT3_COM SD2FLT2_COM SD2FLT2_COM SD2FLT1_COM
PH PL PH PL PH PL PH
R-0-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
15 14 13 12 11 10 9 8
SD2FLT1_COM SD1FLT4_COM SD1FLT4_COM SD1FLT3_COM SD1FLT3_COM SD1FLT2_COM SD1FLT2_COM SD1FLT1_COM
PL PH PL PH PL PH PL PH
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
SD1FLT1_COM ADCDEVT4 ADCDEVT3 ADCDEVT2 ADCDEVT1 ADCCEVT4 ADCCEVT3 ADCCEVT2
PL
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
1270 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1271
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
Complex bit access types are encoded to fit into small table cells. Table 9-32 shows the codes that are used for
access types in this section.
Table 9-32. EPWM_XBAR_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
1272 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1273
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX7 MUX6 MUX5 MUX4 MUX3 MUX2 MUX1 MUX0
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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1275
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1276 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX23 MUX22 MUX21 MUX20 MUX19 MUX18 MUX17 MUX16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1277
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1278 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1279
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX7 MUX6 MUX5 MUX4 MUX3 MUX2 MUX1 MUX0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1280 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1281
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1282 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX23 MUX22 MUX21 MUX20 MUX19 MUX18 MUX17 MUX16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1283
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1284 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1285
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX7 MUX6 MUX5 MUX4 MUX3 MUX2 MUX1 MUX0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1286 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1287
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1288 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX23 MUX22 MUX21 MUX20 MUX19 MUX18 MUX17 MUX16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1289
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1290 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1291
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX7 MUX6 MUX5 MUX4 MUX3 MUX2 MUX1 MUX0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1292 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1293
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1294 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX23 MUX22 MUX21 MUX20 MUX19 MUX18 MUX17 MUX16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1295
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1296 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1297
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX7 MUX6 MUX5 MUX4 MUX3 MUX2 MUX1 MUX0
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 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1299
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1300 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX23 MUX22 MUX21 MUX20 MUX19 MUX18 MUX17 MUX16
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1301
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
1302 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024 TMS320F2837xD Dual-Core Real-Time Microcontrollers 1303
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
Crossbar (X-BAR) www.ti.com
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MUX7 MUX6 MUX5 MUX4 MUX3 MUX2 MUX1 MUX0
R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h R/W-0h
1304 TMS320F2837xD Dual-Core Real-Time Microcontrollers SPRUHM8K – DECEMBER 2013 – REVISED MAY 2024
Submit Document Feedback
Copyright © 2024 Texas Instruments Incorporated
www.ti.com Crossbar (X-BAR)
SPRUHM8K – DECEMBER 2