电子工程世界电子工程世界电子工程世界

型号

产品描述

搜索

TM4C123FE6PMI

器件型号:TM4C123FE6PMI
器件类别:半导体    嵌入式处理器和控制器   
文件大小:82278.13KB,共10页
厂商名称:Texas Instruments
厂商官网:http://www.ti.com/
标准:  
下载文档

器件描述

ARM Microcontrollers - MCU Tiva C Series MCU

参数

产品属性属性值
Product AttributeAttribute Value
制造商:
Manufacturer:
Texas Instruments
产品种类:
Product Category:
ARM Microcontrollers - MCU
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
LQFP-64
系列:
Series:
TM4C123FE6PM
Core:ARM Cortex M4
Data Bus Width:32 bit
Maximum Clock Frequency:80 MHz
Program Memory Size:128 kB
Data RAM Size:32 kB
ADC Resolution:12 bit
工作电源电压:
Operating Supply Voltage:
3.3 V
最小工作温度:
Minimum Operating Temperature:
- 40 C
最大工作温度:
Maximum Operating Temperature:
+ 85 C
接口类型:
Interface Type:
CAN, I2C, SSI, UART
Program Memory Type:Flash
商标:
Brand:
Texas Instruments
Data RAM Type:SRAM
Data ROM Size:2 kB
Data ROM Type:EEPROM
Moisture Sensitive:Yes
Number of ADC Channels:12
Number of Timers/Counters:14 Timer
Processor Series:Tiva C
工厂包装数量:
Factory Pack Quantity:
160
商标名:
Tradename:
Tiva
单位重量:
Unit Weight:
0.012088 oz

文档预览

TM4C123FE6PMI器件文档内容

                            TEXAS INSTRUMENTS-PRODUCTION DATA

Tiva™ TM4C123FE6PM          Microcontroller

                            DATA SHEET

DS-TM4C123FE6PM-15842.2741  Copyright © 2007-2014

SPMS371E                    Te xa s In stru me n ts In co rporated
Copyright

Copyright © 2007-2014 Texas Instruments Incorporated. Tiva and TivaWare are trademarks of Texas Instruments Incorporated. ARM and Thumb are

registered trademarks and Cortex is a trademark of ARM Limited. All other trademarks are the property of others.

PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of Texas Instruments standard

warranty. Production processing does not necessarily include testing of all parameters.

   Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of Texas Instruments semiconductor

products and disclaimers thereto appears at the end of this data sheet.

Texas Instruments Incorporated

108 Wild Basin, Suite 350

Austin, TX 78746

http://www.ti.com/tm4c

http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm

2                                                                                                                 June 12, 2014

                                Texas Instruments-Production Data
                                                      Tiva™ TM4C123FE6PM Microcontroller

Table of Contents

Revision History ............................................................................................................................. 38

About This Document .................................................................................................................... 42

Audience .............................................................................................................................................. 42

About This Manual ................................................................................................................................ 42

Related Documents ............................................................................................................................... 42

Documentation Conventions .................................................................................................................. 43

1              Architectural Overview .......................................................................................... 45

1.1            Tiva™ C Series Overview .............................................................................................. 45

1.2            TM4C123FE6PM Microcontroller Overview ..................................................................... 46

1.3            TM4C123FE6PM Microcontroller Features ..................................................................... 48

1.3.1          ARM Cortex-M4F Processor Core .................................................................................. 48

1.3.2          On-Chip Memory ........................................................................................................... 50

1.3.3          Serial Communications Peripherals ................................................................................ 52

1.3.4          System Integration ........................................................................................................ 56

1.3.5          Advanced Motion Control ............................................................................................... 61

1.3.6          Analog .......................................................................................................................... 63

1.3.7          JTAG and ARM Serial Wire Debug  ................................................................................ 65

1.3.8          Packaging and Temperature .......................................................................................... 66

1.4            TM4C123FE6PM Microcontroller Hardware Details ......................................................... 66

1.5            Kits .............................................................................................................................. 66

1.6            Support Information ....................................................................................................... 66

2              The Cortex-M4F Processor ................................................................................... 67

2.1            Block Diagram .............................................................................................................. 68

2.2            Overview ...................................................................................................................... 69

2.2.1          System-Level Interface .................................................................................................. 69

2.2.2          Integrated Configurable Debug ...................................................................................... 69

2.2.3          Trace Port Interface Unit (TPIU) ..................................................................................... 70

2.2.4          Cortex-M4F System Component Details ......................................................................... 70

2.3            Programming Model ...................................................................................................... 71

2.3.1          Processor Mode and Privilege Levels for Software Execution ........................................... 71

2.3.2          Stacks .......................................................................................................................... 72

2.3.3          Register Map ................................................................................................................ 72

2.3.4          Register Descriptions .................................................................................................... 74

2.3.5          Exceptions and Interrupts .............................................................................................. 90

2.3.6          Data Types ................................................................................................................... 90

2.4            Memory Model .............................................................................................................. 90

2.4.1          Memory Regions, Types and Attributes ........................................................................... 93

2.4.2          Memory System Ordering of Memory Accesses .............................................................. 93

2.4.3          Behavior of Memory Accesses ....................................................................................... 93

2.4.4          Software Ordering of Memory Accesses ......................................................................... 94

2.4.5          Bit-Banding ................................................................................................................... 95

2.4.6          Data Storage ................................................................................................................ 97

2.4.7          Synchronization Primitives ............................................................................................. 98

2.5            Exception Model ........................................................................................................... 99

2.5.1          Exception States ......................................................................................................... 100

June 12, 2014                                                                                                                                               3

                   Texas Instruments-Production Data
Table of Contents

   2.5.2           Exception Types ..........................................................................................................        100

   2.5.3           Exception Handlers .....................................................................................................          104

   2.5.4           Vector Table ................................................................................................................     104

   2.5.5           Exception Priorities ......................................................................................................       105

   2.5.6           Interrupt Priority Grouping ............................................................................................          106

   2.5.7           Exception Entry and Return .........................................................................................              106

   2.6             Fault Handling .............................................................................................................      109

   2.6.1           Fault Types .................................................................................................................     110

   2.6.2           Fault Escalation and Hard Faults ..................................................................................               110

   2.6.3           Fault Status Registers and Fault Address Registers ......................................................                         111

   2.6.4           Lockup .......................................................................................................................    111

   2.7             Power Management ....................................................................................................             112

   2.7.1           Entering Sleep Modes .................................................................................................            112

   2.7.2           Wake Up from Sleep Mode ..........................................................................................                112

   2.8             Instruction Set Summary ..............................................................................................            113

   3               Cortex-M4 Peripherals ......................................................................................... 120

   3.1             Functional Description ................................................................................................. 120

   3.1.1           System Timer (SysTick) ............................................................................................... 121

   3.1.2           Nested Vectored Interrupt Controller (NVIC) .................................................................. 122

   3.1.3           System Control Block (SCB) ........................................................................................ 123

   3.1.4           Memory Protection Unit (MPU) ..................................................................................... 123

   3.1.5           Floating-Point Unit (FPU) ............................................................................................. 128

   3.2             Register Map .............................................................................................................. 132

   3.3             System Timer (SysTick) Register Descriptions .............................................................. 135

   3.4             NVIC Register Descriptions .......................................................................................... 139

   3.5             System Control Block (SCB) Register Descriptions ........................................................ 154

   3.6             Memory Protection Unit (MPU) Register Descriptions .................................................... 183

   3.7             Floating-Point Unit (FPU) Register Descriptions ............................................................ 192

   4               JTAG Interface ...................................................................................................... 198

   4.1             Block Diagram ............................................................................................................ 199

   4.2             Signal Description ....................................................................................................... 199

   4.3             Functional Description ................................................................................................. 200

   4.3.1           JTAG Interface Pins ..................................................................................................... 200

   4.3.2           JTAG TAP Controller ................................................................................................... 202

   4.3.3           Shift Registers ............................................................................................................ 202

   4.3.4           Operational Considerations .......................................................................................... 203

   4.4             Initialization and Configuration ..................................................................................... 205

   4.5             Register Descriptions .................................................................................................. 206

   4.5.1           Instruction Register (IR) ............................................................................................... 206

   4.5.2           Data Registers ............................................................................................................ 208

   5               System Control ..................................................................................................... 210

   5.1             Signal Description ....................................................................................................... 210

   5.2             Functional Description ................................................................................................. 210

   5.2.1           Device Identification .................................................................................................... 210

   5.2.2           Reset Control .............................................................................................................. 211

   5.2.3           Non-Maskable Interrupt ............................................................................................... 216

   5.2.4           Power Control ............................................................................................................. 216

   5.2.5           Clock Control .............................................................................................................. 217

4                                                     June 12, 2014

                   Texas Instruments-Production Data
                                                   Tiva™ TM4C123FE6PM Microcontroller

      5.2.6     System Control ........................................................................................................... 225

      5.3       Initialization and Configuration ..................................................................................... 229

      5.4       Register Map .............................................................................................................. 229

      5.5       System Control Register Descriptions ........................................................................... 234

      5.6       System Control Legacy Register Descriptions ............................................................... 414

      6         System Exception Module ................................................................................... 476

      6.1       Functional Description ................................................................................................. 476

      6.2       Register Map .............................................................................................................. 476

      6.3       Register Descriptions .................................................................................................. 476

      7         Internal Memory ................................................................................................... 484

      7.1       Block Diagram ............................................................................................................ 484

      7.2       Functional Description ................................................................................................. 485

      7.2.1     SRAM ........................................................................................................................ 485

      7.2.2     ROM .......................................................................................................................... 486

      7.2.3     Flash Memory ............................................................................................................. 488

      7.2.4     EEPROM .................................................................................................................... 494

      7.3       Register Map .............................................................................................................. 499

      7.4       Flash Memory Register Descriptions (Flash Control Offset) ............................................ 501

      7.5       EEPROM Register Descriptions (EEPROM Offset) ........................................................ 519

      7.6       Memory Register Descriptions (System Control Offset) .................................................. 536

      8         Micro Direct Memory Access (μDMA) ................................................................ 544

      8.1       Block Diagram ............................................................................................................ 545

      8.2       Functional Description ................................................................................................. 545

      8.2.1     Channel Assignments .................................................................................................. 546

      8.2.2     Priority ........................................................................................................................ 547

      8.2.3     Arbitration Size ............................................................................................................ 547

      8.2.4     Request Types ............................................................................................................ 547

      8.2.5     Channel Configuration ................................................................................................. 548

      8.2.6     Transfer Modes ........................................................................................................... 550

      8.2.7     Transfer Size and Increment ........................................................................................ 558

      8.2.8     Peripheral Interface ..................................................................................................... 558

      8.2.9     Software Request ........................................................................................................ 558

      8.2.10    Interrupts and Errors .................................................................................................... 559

      8.3       Initialization and Configuration ..................................................................................... 559

      8.3.1     Module Initialization ..................................................................................................... 559

      8.3.2     Configuring a Memory-to-Memory Transfer ................................................................... 560

      8.3.3     Configuring a Peripheral for Simple Transmit ................................................................ 561

      8.3.4     Configuring a Peripheral for Ping-Pong Receive ............................................................ 563

      8.3.5     Configuring Channel Assignments ................................................................................ 565

      8.4       Register Map .............................................................................................................. 565

      8.5       μDMA Channel Control Structure ................................................................................. 567

      8.6       μDMA Register Descriptions ........................................................................................ 574

      9         General-Purpose Input/Outputs (GPIOs) ........................................................... 608

      9.1       Signal Description ....................................................................................................... 608

      9.2       Functional Description ................................................................................................. 611

      9.2.1     Data Control ............................................................................................................... 612

      9.2.2     Interrupt Control .......................................................................................................... 613

June  12, 2014                                                                                                                                         5

                Texas Instruments-Production Data
Table of Contents

   9.2.3           Mode Control .............................................................................................................. 614

   9.2.4           Commit Control ........................................................................................................... 615

   9.2.5           Pad Control ................................................................................................................. 615

   9.2.6           Identification ............................................................................................................... 615

   9.3             Initialization and Configuration ..................................................................................... 615

   9.4             Register Map .............................................................................................................. 617

   9.5             Register Descriptions .................................................................................................. 620

   10              General-Purpose Timers ...................................................................................... 663

   10.1            Block Diagram ............................................................................................................ 664

   10.2            Signal Description ....................................................................................................... 665

   10.3            Functional Description ................................................................................................. 666

   10.3.1          GPTM Reset Conditions .............................................................................................. 667

   10.3.2          Timer Modes ............................................................................................................... 668

   10.3.3          Wait-for-Trigger Mode .................................................................................................. 677

   10.3.4          Synchronizing GP Timer Blocks ................................................................................... 678

   10.3.5          DMA Operation ........................................................................................................... 679

   10.3.6          Accessing Concatenated 16/32-Bit GPTM Register Values ............................................ 679

   10.3.7          Accessing Concatenated 32/64-Bit Wide GPTM Register Values .................................... 679

   10.4            Initialization and Configuration ..................................................................................... 681

   10.4.1          One-Shot/Periodic Timer Mode .................................................................................... 681

   10.4.2          Real-Time Clock (RTC) Mode ...................................................................................... 682

   10.4.3          Input Edge-Count Mode ............................................................................................... 682

   10.4.4          Input Edge Time Mode ................................................................................................. 683

   10.4.5          PWM Mode ................................................................................................................. 683

   10.5            Register Map .............................................................................................................. 684

   10.6            Register Descriptions .................................................................................................. 685

   11              Watchdog Timers ................................................................................................. 733

   11.1            Block Diagram ............................................................................................................ 734

   11.2            Functional Description ................................................................................................. 734

   11.2.1          Register Access Timing ............................................................................................... 735

   11.3            Initialization and Configuration ..................................................................................... 735

   11.4            Register Map .............................................................................................................. 735

   11.5            Register Descriptions .................................................................................................. 736

   12              Analog-to-Digital Converter (ADC) ..................................................................... 758

   12.1            Block Diagram ............................................................................................................ 759

   12.2            Signal Description ....................................................................................................... 760

   12.3            Functional Description ................................................................................................. 761

   12.3.1          Sample Sequencers .................................................................................................... 761

   12.3.2          Module Control ............................................................................................................ 762

   12.3.3          Hardware Sample Averaging Circuit ............................................................................. 765

   12.3.4          Analog-to-Digital Converter .......................................................................................... 766

   12.3.5          Differential Sampling ................................................................................................... 769

   12.3.6          Internal Temperature Sensor ........................................................................................ 771

   12.3.7          Digital Comparator Unit ............................................................................................... 772

   12.4            Initialization and Configuration ..................................................................................... 776

   12.4.1          Module Initialization ..................................................................................................... 776

   12.4.2          Sample Sequencer Configuration ................................................................................. 777

   12.5            Register Map .............................................................................................................. 777

6                                                     June 12, 2014

                   Texas Instruments-Production Data
                                                   Tiva™ TM4C123FE6PM Microcontroller

      12.6      Register Descriptions .................................................................................................. 779

      13        Universal Asynchronous Receivers/Transmitters (UARTs) ............................. 852

      13.1      Block Diagram ............................................................................................................ 853

      13.2      Signal Description ....................................................................................................... 853

      13.3      Functional Description ................................................................................................. 854

      13.3.1    Transmit/Receive Logic ............................................................................................... 854

      13.3.2    Baud-Rate Generation ................................................................................................. 855

      13.3.3    Data Transmission ...................................................................................................... 856

      13.3.4    Serial IR (SIR) ............................................................................................................. 856

      13.3.5    ISO 7816 Support ....................................................................................................... 857

      13.3.6    Modem Handshake Support ......................................................................................... 858

      13.3.7    9-Bit UART Mode ........................................................................................................ 859

      13.3.8    FIFO Operation ........................................................................................................... 859

      13.3.9    Interrupts .................................................................................................................... 859

      13.3.10   Loopback Operation .................................................................................................... 860

      13.3.11   DMA Operation ........................................................................................................... 861

      13.4      Initialization and Configuration ..................................................................................... 861

      13.5      Register Map .............................................................................................................. 862

      13.6      Register Descriptions .................................................................................................. 864

      14        Synchronous Serial Interface (SSI) .................................................................... 911

      14.1      Block Diagram ............................................................................................................ 912

      14.2      Signal Description ....................................................................................................... 912

      14.3      Functional Description ................................................................................................. 913

      14.3.1    Bit Rate Generation ..................................................................................................... 913

      14.3.2    FIFO Operation ........................................................................................................... 914

      14.3.3    Interrupts .................................................................................................................... 914

      14.3.4    Frame Formats ........................................................................................................... 915

      14.3.5    DMA Operation ........................................................................................................... 923

      14.4      Initialization and Configuration ..................................................................................... 924

      14.5      Register Map .............................................................................................................. 926

      14.6      Register Descriptions .................................................................................................. 927

      15        Inter-Integrated Circuit (I2C) Interface ................................................................ 956

      15.1      Block Diagram ............................................................................................................ 957

      15.2      Signal Description ....................................................................................................... 957

      15.3      Functional Description ................................................................................................. 958

      15.3.1    I2C Bus Functional Overview ........................................................................................ 958

      15.3.2    Available Speed Modes ............................................................................................... 963

      15.3.3    Interrupts .................................................................................................................... 965

      15.3.4    Loopback Operation .................................................................................................... 966

      15.3.5    Command Sequence Flow Charts ................................................................................ 966

      15.4      Initialization and Configuration ..................................................................................... 974

      15.4.1    Configure the I2C Module to Transmit a Single Byte as a Master .................................... 974

      15.4.2    Configure the I2C Master to High Speed Mode .............................................................. 975

      15.5      Register Map .............................................................................................................. 976

      15.6      Register Descriptions (I2C Master) ............................................................................... 977

      15.7      Register Descriptions (I2C Slave) ................................................................................. 994

      15.8      Register Descriptions (I2C Status and Control) ............................................................ 1004

June  12, 2014                                                                                                                                       7

                Texas Instruments-Production Data
Table of Contents

   16              Controller Area Network (CAN) Module ........................................................... 1007

   16.1            Block Diagram ........................................................................................................... 1008

   16.2            Signal Description ..................................................................................................... 1008

   16.3            Functional Description ............................................................................................... 1009

   16.3.1          Initialization ............................................................................................................... 1010

   16.3.2          Operation .................................................................................................................. 1010

   16.3.3          Transmitting Message Objects ................................................................................... 1011

   16.3.4          Configuring a Transmit Message Object ...................................................................... 1012

   16.3.5          Updating a Transmit Message Object ......................................................................... 1013

   16.3.6          Accepting Received Message Objects ........................................................................ 1013

   16.3.7          Receiving a Data Frame ............................................................................................ 1014

   16.3.8          Receiving a Remote Frame ........................................................................................ 1014

   16.3.9          Receive/Transmit Priority ........................................................................................... 1015

   16.3.10         Configuring a Receive Message Object ...................................................................... 1015

   16.3.11         Handling of Received Message Objects ...................................................................... 1016

   16.3.12         Handling of Interrupts ................................................................................................ 1018

   16.3.13         Test Mode ................................................................................................................. 1019

   16.3.14         Bit Timing Configuration Error Considerations ............................................................. 1021

   16.3.15         Bit Time and Bit Rate ................................................................................................. 1021

   16.3.16         Calculating the Bit Timing Parameters ........................................................................ 1023

   16.4            Register Map ............................................................................................................ 1026

   16.5            CAN Register Descriptions ......................................................................................... 1027

   17              Universal Serial Bus (USB) Controller ............................................................. 1058

   17.1            Block Diagram ........................................................................................................... 1059

   17.2            Signal Description ..................................................................................................... 1059

   17.3            Functional Description ............................................................................................... 1060

   17.3.1          Operation as a Device ............................................................................................... 1060

   17.3.2          Operation as a Host ................................................................................................... 1066

   17.3.3          OTG Mode ................................................................................................................ 1069

   17.3.4          DMA Operation ......................................................................................................... 1071

   17.4            Initialization and Configuration .................................................................................... 1072

   17.4.1          Pin Configuration ....................................................................................................... 1072

   17.4.2          Endpoint Configuration .............................................................................................. 1073

   17.5            Register Map ............................................................................................................ 1073

   17.6            Register Descriptions ................................................................................................. 1079

   18              Analog Comparators .......................................................................................... 1174

   18.1            Block Diagram ........................................................................................................... 1175

   18.2            Signal Description ..................................................................................................... 1175

   18.3            Functional Description ............................................................................................... 1176

   18.3.1          Internal Reference Programming ................................................................................ 1177

   18.4            Initialization and Configuration .................................................................................... 1179

   18.5            Register Map ............................................................................................................ 1179

   18.6            Register Descriptions ................................................................................................. 1180

   19              Pulse Width Modulator (PWM) .......................................................................... 1189

   19.1            Block Diagram ........................................................................................................... 1190

   19.2            Signal Description ..................................................................................................... 1192

   19.3            Functional Description ............................................................................................... 1193

   19.3.1          Clock Configuration ................................................................................................... 1193

8                                                     June 12, 2014

                   Texas Instruments-Production Data
                                                   Tiva™ TM4C123FE6PM Microcontroller

      19.3.2    PWM Timer ...............................................................................................................  1193

      19.3.3    PWM Comparators ....................................................................................................       1193

      19.3.4    PWM Signal Generator ..............................................................................................        1195

      19.3.5    Dead-Band Generator ...............................................................................................        1195

      19.3.6    Interrupt/ADC-Trigger Selector ...................................................................................         1196

      19.3.7    Synchronization Methods  ..........................................................................................        1196

      19.3.8    Fault Conditions ........................................................................................................  1197

      19.3.9    Output Control Block ..................................................................................................    1198

      19.4      Initialization and Configuration ....................................................................................      1198

      19.5      Register Map ............................................................................................................  1199

      19.6      Register Descriptions .................................................................................................    1202

      20        Quadrature Encoder Interface (QEI) ................................................................. 1267

      20.1      Block Diagram ........................................................................................................... 1267

      20.2      Signal Description ..................................................................................................... 1269

      20.3      Functional Description ............................................................................................... 1270

      20.4      Initialization and Configuration .................................................................................... 1272

      20.5      Register Map ............................................................................................................ 1272

      20.6      Register Descriptions ................................................................................................. 1273

      21        Pin Diagram ........................................................................................................ 1290

      22        Signal Tables ...................................................................................................... 1291

      22.1      Signals by Pin Number .............................................................................................. 1292

      22.2      Signals by Signal Name ............................................................................................. 1300

      22.3      Signals by Function, Except for GPIO ......................................................................... 1307

      22.4      GPIO Pins and Alternate Functions ............................................................................ 1314

      22.5      Possible Pin Assignments for Alternate Functions ....................................................... 1316

      22.6      Connections for Unused Signals ................................................................................. 1320

      23        Electrical Characteristics .................................................................................. 1321

      23.1      Maximum Ratings ...................................................................................................... 1321

      23.2      Operating Characteristics ........................................................................................... 1322

      23.3      Recommended Operating Conditions ......................................................................... 1323

      23.4      Load Conditions ........................................................................................................ 1325

      23.5      JTAG and Boundary Scan .......................................................................................... 1326

      23.6      Power and Brown-Out ............................................................................................... 1328

      23.6.1    VDDA Levels ............................................................................................................ 1328

      23.6.2    VDD Levels ............................................................................................................... 1329

      23.6.3    VDDC Levels ............................................................................................................ 1330

      23.6.4    VDD Glitches ............................................................................................................ 1331

      23.6.5    VDD Droop Response ............................................................................................... 1331

      23.7      Reset ........................................................................................................................ 1333

      23.8      On-Chip Low Drop-Out (LDO) Regulator ..................................................................... 1336

      23.9      Clocks ...................................................................................................................... 1337

      23.9.1    PLL Specifications ..................................................................................................... 1337

      23.9.2    PIOSC Specifications ................................................................................................ 1338

      23.9.3    Low-Frequency Internal Oscillator (LFIOSC) Specifications .......................................... 1338

      23.9.4    Main Oscillator Specifications ..................................................................................... 1338

      23.9.5    System Clock Specification with ADC Operation .......................................................... 1342

      23.9.6    System Clock Specification with USB Operation .......................................................... 1342

June  12, 2014                                                                                                                                       9

                Texas Instruments-Production Data
Table  of  Contents

           23.10    Sleep Modes .............................................................................................................  1343

           23.11    Flash Memory and EEPROM .....................................................................................              1345

           23.12    Input/Output Pin Characteristics .................................................................................         1346

           23.12.1  GPIO Module Characteristics .....................................................................................          1346

           23.12.2  Types of I/O Pins and ESD Protection .........................................................................             1346

           23.13    Analog-to-Digital Converter (ADC) ..............................................................................           1350

           23.14    Synchronous Serial Interface (SSI) .............................................................................           1353

           23.15    Inter-Integrated Circuit (I2C) Interface .........................................................................         1356

           23.16    Universal Serial Bus (USB) Controller .........................................................................            1357

           23.17    Analog Comparator ...................................................................................................      1358

           23.18    Pulse-Width Modulator (PWM) ...................................................................................            1359

           23.19    Current Consumption .................................................................................................      1360

           A        Package Information ..........................................................................................             1363

           A.1      Orderable Devices .....................................................................................................    1363

           A.2      Device Nomenclature ................................................................................................       1363

           A.3      Device Markings ........................................................................................................   1364

           A.4      Packaging Diagram ...................................................................................................      1365

10                                                      June 12, 2014

                     Texas Instruments-Production Data
                                                         Tiva™ TM4C123FE6PM Microcontroller

List  of Figures

      Figure   1-1.   Tiva™ TM4C123FE6PM Microcontroller High-Level Block Diagram ......................... 47

      Figure   2-1.   CPU Block Diagram ............................................................................................. 69

      Figure   2-2.   TPIU Block Diagram ............................................................................................ 70

      Figure   2-3.   Cortex-M4F Register Set ...................................................................................... 73

      Figure   2-4.   Bit-Band Mapping ................................................................................................ 97

      Figure   2-5.   Data Storage ....................................................................................................... 98

      Figure   2-6.   Vector Table ...................................................................................................... 105

      Figure   2-7.   Exception Stack Frame ...................................................................................... 108

      Figure   3-1.   SRD Use Example ............................................................................................. 126

      Figure   3-2.   FPU Register Bank ............................................................................................ 129

      Figure   4-1.   JTAG Module Block Diagram .............................................................................. 199

      Figure   4-2.   Test Access Port State Machine ......................................................................... 202

      Figure   4-3.   IDCODE Register Format ................................................................................... 208

      Figure   4-4.   BYPASS Register Format ................................................................................... 208

      Figure   4-5.   Boundary Scan Register Format ......................................................................... 209

      Figure   5-1.   Basic RST Configuration .................................................................................... 213

      Figure   5-2.   External Circuitry to Extend Power-On Reset ....................................................... 213

      Figure   5-3.   Reset Circuit Controlled by Switch ...................................................................... 214

      Figure   5-4.   Power Architecture ............................................................................................ 217

      Figure   5-5.   Main Clock Tree ................................................................................................ 220

      Figure   5-6.   Module Clock Selection ...................................................................................... 227

      Figure   7-1.   Internal Memory Block Diagram .......................................................................... 484

      Figure   7-2.   EEPROM Block Diagram ................................................................................... 485

      Figure   8-1.   μDMA Block Diagram ......................................................................................... 545

      Figure   8-2.   Example of Ping-Pong μDMA Transaction ........................................................... 551

      Figure   8-3.   Memory Scatter-Gather, Setup and Configuration ................................................ 553

      Figure   8-4.   Memory Scatter-Gather, μDMA Copy Sequence .................................................. 554

      Figure   8-5.   Peripheral Scatter-Gather, Setup and Configuration ............................................. 556

      Figure   8-6.   Peripheral Scatter-Gather, μDMA Copy Sequence ............................................... 557

      Figure   9-1.   Digital I/O Pads ................................................................................................. 611

      Figure   9-2.   Analog/Digital I/O Pads ...................................................................................... 612

      Figure   9-3.   GPIODATA Write Example ................................................................................. 613

      Figure   9-4.   GPIODATA Read Example ................................................................................. 613

      Figure   10-1.  GPTM Module Block Diagram ............................................................................ 664

      Figure   10-2.  Reading the RTC Value ...................................................................................... 671

      Figure   10-3.  Input Edge-Count Mode Example, Counting Down ............................................... 673

      Figure   10-4.  16-Bit Input Edge-Time Mode Example ............................................................... 674

      Figure   10-5.  16-Bit PWM Mode Example ................................................................................ 676

      Figure   10-6.  CCP Output, GPTMTnMATCHR > GPTMTnILR ................................................... 676

      Figure   10-7.  CCP Output, GPTMTnMATCHR = GPTMTnILR ................................................... 677

      Figure   10-8.  CCP Output, GPTMTnILR > GPTMTnMATCHR ................................................... 677

      Figure   10-9.  Timer Daisy Chain ............................................................................................. 678

      Figure   11-1.  WDT Module Block Diagram .............................................................................. 734

      Figure   12-1.  Implementation of Two ADC Blocks .................................................................... 759

      Figure   12-2.  ADC Module Block Diagram ............................................................................... 760

      Figure   12-3.  ADC Sample Phases ......................................................................................... 763

June 12, 2014                                                                                                                                  11

                      Texas Instruments-Production Data
Table of Contents

    Figure  12-4.   Doubling the ADC Sample Rate .......................................................................... 764

    Figure  12-5.   Skewed Sampling .............................................................................................. 764

    Figure  12-6.   Sample Averaging Example ............................................................................... 766

    Figure  12-7.   ADC Input Equivalency ...................................................................................... 767

    Figure  12-8.   ADC Voltage Reference ..................................................................................... 768

    Figure  12-9.   ADC Conversion Result ..................................................................................... 769

    Figure  12-10.  Differential Voltage Representation ..................................................................... 771

    Figure  12-11.  Internal Temperature Sensor Characteristic ......................................................... 772

    Figure  12-12.  Low-Band Operation (CIC=0x0 and/or CTC=0x0) ................................................ 774

    Figure  12-13.  Mid-Band Operation (CIC=0x1 and/or CTC=0x1) ................................................. 775

    Figure  12-14.  High-Band Operation (CIC=0x3 and/or CTC=0x3) ................................................ 776

    Figure  13-1.   UART Module Block Diagram ............................................................................. 853

    Figure  13-2.   UART Character Frame ..................................................................................... 855

    Figure  13-3.   IrDA Data Modulation ......................................................................................... 857

    Figure  14-1.   SSI Module Block Diagram ................................................................................. 912

    Figure  14-2.   TI Synchronous Serial Frame Format (Single Transfer) ........................................ 916

    Figure  14-3.   TI Synchronous Serial Frame Format (Continuous Transfer) ................................ 917

    Figure  14-4.   Freescale SPI Format (Single Transfer) with SPO=0 and SPH=0 .......................... 918

    Figure  14-5.   Freescale SPI Format (Continuous Transfer) with SPO=0 and SPH=0 .................. 918

    Figure  14-6.   Freescale SPI Frame Format with SPO=0 and SPH=1 ......................................... 919

    Figure  14-7.   Freescale SPI Frame Format (Single Transfer) with SPO=1 and SPH=0 ............... 920

    Figure  14-8.   Freescale SPI Frame Format (Continuous Transfer) with SPO=1 and SPH=0 ........ 920

    Figure  14-9.   Freescale SPI Frame Format with SPO=1 and SPH=1 ......................................... 921

    Figure  14-10.  MICROWIRE Frame Format (Single Frame) ........................................................ 922

    Figure  14-11.  MICROWIRE Frame Format (Continuous Transfer) ............................................. 923

    Figure  14-12.  MICROWIRE Frame Format, SSInFss Input Setup and Hold Requirements .......... 923

    Figure  15-1.   I2C Block Diagram ............................................................................................. 957

    Figure  15-2.   I2C Bus Configuration ........................................................................................ 958

    Figure  15-3.   START and STOP Conditions ............................................................................. 959

    Figure  15-4.   Complete Data Transfer with a 7-Bit Address ....................................................... 959

    Figure  15-5.   R/S Bit in First Byte ............................................................................................ 960

    Figure  15-6.   Data Validity During Bit Transfer on the I2C Bus ................................................... 960

    Figure  15-7.   High-Speed Data Format ................................................................................... 965

    Figure  15-8.   Master Single TRANSMIT .................................................................................. 967

    Figure  15-9.   Master Single RECEIVE ..................................................................................... 968

    Figure  15-10.  Master TRANSMIT of Multiple Data Bytes ........................................................... 969

    Figure  15-11.  Master RECEIVE of Multiple Data Bytes ............................................................. 970

    Figure  15-12.  Master RECEIVE with Repeated START after Master TRANSMIT ........................ 971

    Figure  15-13.  Master TRANSMIT with Repeated START after Master RECEIVE ........................ 972

    Figure  15-14.  Standard High Speed Mode Master Transmit ....................................................... 973

    Figure  15-15.  Slave Command Sequence ................................................................................ 974

    Figure  16-1.   CAN Controller Block Diagram .......................................................................... 1008

    Figure  16-2.   CAN Data/Remote Frame ................................................................................. 1009

    Figure  16-3.   Message Objects in a FIFO Buffer .................................................................... 1018

    Figure  16-4.   CAN Bit Time ................................................................................................... 1022

    Figure  17-1.   USB Module Block Diagram ............................................................................. 1059

    Figure  18-1.   Analog Comparator Module Block Diagram ....................................................... 1175

    Figure  18-2.   Structure of Comparator Unit ............................................................................ 1176

12                                                     June 12, 2014

                    Texas Instruments-Production Data
                                                           Tiva™ TM4C123FE6PM Microcontroller

      Figure    18-3.   Comparator Internal Reference Structure ..........................................................                  1177

      Figure    19-1.   PWM Module Diagram .....................................................................................            1191

      Figure    19-2.   PWM Generator Block Diagram ........................................................................                1191

      Figure    19-3.   PWM Count-Down Mode ..................................................................................              1194

      Figure    19-4.   PWM Count-Up/Down Mode .............................................................................                1194

      Figure    19-5.   PWM Generation Example In Count-Up/Down Mode ..........................................                             1195

      Figure    19-6.   PWM Dead-Band Generator .............................................................................               1196

      Figure    20-1.   QEI Block Diagram ..........................................................................................        1268

      Figure    20-2.   QEI Input Signal Logic ......................................................................................       1269

      Figure    20-3.   Quadrature Encoder and Velocity Predivider Operation ......................................                         1271

      Figure    21-1.   64-Pin LQFP Package Pin Diagram ..................................................................                  1290

      Figure    23-1.   Load Conditions ...............................................................................................     1325

      Figure    23-2.   JTAG Test Clock Input Timing ...........................................................................            1326

      Figure    23-3.   JTAG Test Access Port (TAP) Timing ................................................................                 1327

      Figure    23-4.   Power Assertions versus VDDA Levels .............................................................                   1329

      Figure    23-5.   Power and Brown-Out Assertions versus VDD Levels ........................................                           1330

      Figure    23-6.   POK assertion vs VDDC ...................................................................................           1331

      Figure    23-7.   POR-BOR0-BOR1 VDD Glitch Response ..........................................................                        1331

      Figure    23-8.   POR-BOR0-BOR1 VDD Droop Response .........................................................                          1332

      Figure    23-9.   Digital Power-On Reset Timing .........................................................................             1333

      Figure    23-10.  Brown-Out Reset Timing ..................................................................................           1334

      Figure    23-11.  External Reset Timing (RST) ............................................................................            1334

      Figure    23-12.  Software Reset Timing .....................................................................................         1334

      Figure    23-13.  Watchdog Reset Timing ...................................................................................           1334

      Figure    23-14.  MOSC Failure Reset Timing .............................................................................             1335

      Figure    23-15.  ESD Protection on Fail-Safe Pins ......................................................................             1347

      Figure    23-16.  ESD Protection on Non-Fail-Safe Pins ..............................................................                 1348

      Figure    23-17.  ADC Input Equivalency Diagram .......................................................................               1352

      Figure    23-18.  SSI Timing for TI Frame Format (FRF=01), Single Transfer Timing

                        Measurement ..................................................................................................      1354

      Figure    23-19.  SSI Timing for MICROWIRE Frame Format (FRF=10), Single Transfer ...............                                     1354

      Figure    23-20.  Master Mode SSI Timing for SPI Frame Format (FRF=00), with SPH=1 ..............                                     1355

      Figure    23-21.  Slave Mode SSI Timing for SPI Frame Format (FRF=00), with SPH=1 ................                                    1355

      Figure    23-22.  I2C Timing .......................................................................................................  1356

      Figure    A-1.    Key to Part Numbers ........................................................................................        1363

      Figure    A-2.    TM4C123FE6PM 64-Pin LQFP Package Diagram .............................................                              1365

June  12, 2014                                                                                                                              13

                        Texas Instruments-Production Data
Table of Contents

List  of Tables

      Table  1.     Revision History .................................................................................................. 38

      Table  2.     Documentation Conventions ................................................................................ 43

      Table  1-1.   TM4C123FE6PM Microcontroller Features ............................................................ 46

      Table  2-1.   Summary of Processor Mode, Privilege Level, and Stack Use ................................ 72

      Table  2-2.   Processor Register Map ....................................................................................... 73

      Table  2-3.   PSR Register Combinations ................................................................................. 79

      Table  2-4.   Memory Map ....................................................................................................... 90

      Table  2-5.   Memory Access Behavior ..................................................................................... 93

      Table  2-6.   SRAM Memory Bit-Banding Regions .................................................................... 96

      Table  2-7.   Peripheral Memory Bit-Banding Regions ............................................................... 96

      Table  2-8.   Exception Types ................................................................................................ 101

      Table  2-9.   Interrupts .......................................................................................................... 102

      Table  2-10.  Exception Return Behavior ................................................................................. 109

      Table  2-11.  Faults ............................................................................................................... 110

      Table  2-12.  Fault Status and Fault Address Registers ............................................................ 111

      Table  2-13.  Cortex-M4F Instruction Summary ....................................................................... 113

      Table  3-1.   Core Peripheral Register Regions ....................................................................... 120

      Table  3-2.   Memory Attributes Summary .............................................................................. 124

      Table  3-3.   TEX, S, C, and B Bit Field Encoding ................................................................... 126

      Table  3-4.   Cache Policy for Memory Attribute Encoding ....................................................... 127

      Table  3-5.   AP Bit Field Encoding ........................................................................................ 127

      Table  3-6.   Memory Region Attributes for Tiva™ C Series Microcontrollers ............................. 128

      Table  3-7.   QNaN and SNaN Handling ................................................................................. 131

      Table  3-8.   Peripherals Register Map ................................................................................... 132

      Table  3-9.   Interrupt Priority Levels ...................................................................................... 162

      Table  3-10.  Example SIZE Field Values ................................................................................ 190

      Table  4-1.   JTAG_SWD_SWO Signals (64LQFP) ................................................................. 199

      Table  4-2.   JTAG Port Pins State after Power-On Reset or RST assertion .............................. 200

      Table  4-3.   JTAG Instruction Register Commands ................................................................. 206

      Table  5-1.   System Control & Clocks Signals (64LQFP) ........................................................ 210

      Table  5-2.   Reset Sources ................................................................................................... 211

      Table  5-3.   Clock Source Options ........................................................................................ 218

      Table  5-4.   Possible System Clock Frequencies Using the SYSDIV Field ............................... 221

      Table  5-5.   Examples of Possible System Clock Frequencies Using the SYSDIV2 Field .......... 221

      Table  5-6.   Examples of Possible System Clock Frequencies with DIV400=1 ......................... 222

      Table  5-7.   System Control Register Map ............................................................................. 229

      Table  5-8.   RCC2 Fields that Override RCC Fields ............................................................... 257

      Table  6-1.   System Exception Register Map ......................................................................... 476

      Table  7-1.   Flash Memory Protection Policy Combinations .................................................... 489

      Table  7-2.   User-Programmable Flash Memory Resident Registers ....................................... 493

      Table  7-3.   Flash Register Map ............................................................................................ 500

      Table  8-1.   μDMA Channel Assignments .............................................................................. 546

      Table  8-2.   Request Type Support ....................................................................................... 548

      Table  8-3.   Control Structure Memory Map ........................................................................... 549

      Table  8-4.   Channel Control Structure .................................................................................. 549

      Table  8-5.   μDMA Read Example: 8-Bit Peripheral ................................................................ 558

14                                                     June 12, 2014

                    Texas Instruments-Production Data
                                                           Tiva™ TM4C123FE6PM Microcontroller

      Table     8-6.    μDMA Interrupt Assignments .............................................................................. 559

      Table     8-7.    Channel Control Structure Offsets for Channel 30 ................................................ 560

      Table     8-8.    Channel Control Word Configuration for Memory Transfer Example ...................... 561

      Table     8-9.    Channel Control Structure Offsets for Channel 7 .................................................. 562

      Table     8-10.   Channel Control Word Configuration for Peripheral Transmit Example .................. 562

      Table     8-11.   Primary and Alternate Channel Control Structure Offsets for Channel 8 ................. 563

      Table     8-12.   Channel Control Word Configuration for Peripheral Ping-Pong Receive

                        Example ............................................................................................................ 564

      Table     8-13.   μDMA Register Map .......................................................................................... 566

      Table     9-1.    GPIO Pins With Special Considerations .............................................................. 609

      Table     9-2.    GPIO Pins and Alternate Functions (64LQFP) ..................................................... 609

      Table     9-3.    GPIO Pad Configuration Examples ..................................................................... 616

      Table     9-4.    GPIO Interrupt Configuration Example ................................................................ 617

      Table     9-5.    GPIO Pins With Special Considerations .............................................................. 618

      Table     9-6.    GPIO Register Map ........................................................................................... 619

      Table     9-7.    GPIO Pins With Special Considerations .............................................................. 630

      Table     9-8.    GPIO Pins With Special Considerations .............................................................. 636

      Table     9-9.    GPIO Pins With Special Considerations .............................................................. 638

      Table     9-10.   GPIO Pins With Special Considerations .............................................................. 641

      Table     9-11.   GPIO Pins With Special Considerations .............................................................. 647

      Table     10-1.   Available CCP Pins ............................................................................................ 665

      Table     10-2.   General-Purpose Timers Signals (64LQFP) ......................................................... 665

      Table     10-3.   General-Purpose Timer Capabilities .................................................................... 667

      Table     10-4.   Counter Values When the Timer is Enabled in Periodic or One-Shot Modes .......... 668

      Table     10-5.   16-Bit Timer With Prescaler Configurations ......................................................... 669

      Table     10-6.   32-Bit Timer (configured in 32/64-bit mode) With Prescaler Configurations ............ 670

      Table     10-7.   Counter Values When the Timer is Enabled in RTC Mode .................................... 670

      Table     10-8.   Counter Values When the Timer is Enabled in Input Edge-Count Mode ................. 672

      Table     10-9.   Counter Values When the Timer is Enabled in Input Event-Count Mode ................ 673

      Table     10-10.  Counter Values When the Timer is Enabled in PWM Mode ................................... 675

      Table     10-11.  Timeout Actions for GPTM Modes ...................................................................... 678

      Table     10-12.  Timers Register Map .......................................................................................... 685

      Table     11-1.   Watchdog Timers Register Map .......................................................................... 736

      Table     12-1.   ADC Signals (64LQFP) ...................................................................................... 760

      Table     12-2.   Samples and FIFO Depth of Sequencers ............................................................ 761

      Table     12-3.   Differential Sampling Pairs ................................................................................. 769

      Table     12-4.   ADC Register Map ............................................................................................. 777

      Table     13-1.   UART Signals (64LQFP) .................................................................................... 854

      Table     13-2.   Flow Control Mode ............................................................................................. 858

      Table     13-3.   UART Register Map ........................................................................................... 863

      Table     14-1.   SSI Signals (64LQFP) ........................................................................................ 913

      Table     14-2.   SSI Register Map .............................................................................................. 926

      Table     15-1.   I2C Signals (64LQFP) ........................................................................................ 957

      Table     15-2.   Examples of I2C Master Timer Period Versus Speed Mode ................................... 963

      Table     15-3.   Examples of I2C Master Timer Period in High-Speed Mode .................................. 964

      Table     15-4.   Inter-Integrated Circuit (I2C) Interface Register Map ............................................. 976

      Table     15-5.   Write Field Decoding for I2CMCS[3:0] Field ......................................................... 982

      Table     16-1.   Controller Area Network Signals (64LQFP) ........................................................ 1009

June  12, 2014                                                                                                                                    15

                        Texas Instruments-Production Data
Table of Contents

    Table  16-2.   Message Object Configurations ........................................................................              1014

    Table  16-3.   CAN Protocol Ranges ......................................................................................          1022

    Table  16-4.   CANBIT Register Values ..................................................................................           1022

    Table  16-5.   CAN Register Map ...........................................................................................        1026

    Table  17-1.   USB Signals (64LQFP) ....................................................................................           1060

    Table  17-2.   Remainder (MAXLOAD/4) ................................................................................              1071

    Table  17-3.   Actual Bytes Read ...........................................................................................       1071

    Table  17-4.   Packet Sizes That Clear RXRDY ......................................................................                1072

    Table  17-5.   Universal Serial Bus (USB) Controller Register Map ...........................................                      1073

    Table  18-1.   Analog Comparators Signals (64LQFP) .............................................................                   1175

    Table  18-2.   Internal Reference Voltage and ACREFCTL Field Values ...................................                            1177

    Table  18-3.   Analog Comparator Voltage Reference Characteristics, VDDA = 3.3V, EN= 1, and

                   RNG = 0 ..........................................................................................................  1178

    Table  18-4.   Analog Comparator Voltage Reference Characteristics, VDDA = 3.3V, EN= 1, and

                   RNG = 1 ..........................................................................................................  1178

    Table  18-5.   Analog Comparators Register Map ...................................................................                 1179

    Table  19-1.   PWM Signals (64LQFP) ...................................................................................            1192

    Table  19-2.   PWM Register Map ..........................................................................................         1200

    Table  20-1.   QEI Signals (64LQFP) ......................................................................................         1269

    Table  20-2.   QEI Register Map ............................................................................................       1273

    Table  22-1.   GPIO Pins With Special Considerations ............................................................                  1291

    Table  22-2.   Signals by Pin Number .....................................................................................         1292

    Table  22-3.   Signals by Signal Name ...................................................................................          1300

    Table  22-4.   Signals by Function, Except for GPIO ...............................................................                1307

    Table  22-5.   GPIO Pins and Alternate Functions ...................................................................               1314

    Table  22-6.   Possible Pin Assignments for Alternate Functions ..............................................                     1316

    Table  22-7.   Connections for Unused Signals (64-Pin LQFP) .................................................                      1320

    Table  23-1.   Absolute Maximum Ratings ..............................................................................             1321

    Table  23-2.   ESD Absolute Maximum Ratings ......................................................................                 1321

    Table  23-3.   Temperature Characteristics .............................................................................           1322

    Table  23-4.   Thermal Characteristics ...................................................................................         1322

    Table  23-5.   Recommended DC Operating Conditions ..........................................................                      1323

    Table  23-6.   Recommended GPIO Pad Operating Conditions ................................................                          1323

    Table  23-7.   GPIO Current Restrictions ................................................................................          1323

    Table  23-8.   GPIO Package Side Assignments .....................................................................                 1324

    Table  23-9.   JTAG Characteristics .......................................................................................        1326

    Table  23-10.  Power-On and Brown-Out Levels ......................................................................                1328

    Table  23-11.  Reset Characteristics .......................................................................................       1333

    Table  23-12.  LDO Regulator Characteristics .........................................................................             1336

    Table  23-13.  Phase Locked Loop (PLL) Characteristics .........................................................                   1337

    Table  23-14.  Actual PLL Frequency ......................................................................................         1337

    Table  23-15.  PIOSC Clock Characteristics ............................................................................            1338

    Table  23-16.  Low-Frequency internal Oscillator Characteristics ..............................................                    1338

    Table  23-17.  Main Oscillator Input Characteristics .................................................................             1338

    Table  23-18.  Crystal Parameters ..........................................................................................       1340

    Table  23-19.  Supported MOSC Crystal Frequencies ..............................................................                   1341

    Table  23-20.  System Clock Characteristics with ADC Operation .............................................                       1342

    Table  23-21.  System Clock Characteristics with USB Operation .............................................                       1342

16                                                    June 12, 2014

                   Texas Instruments-Production Data
                                                           Tiva™ TM4C123FE6PM Microcontroller

      Table     23-22.  Sleep Modes AC Characteristics .......................................................................              1343

      Table     23-23.  Time to Wake with Respect to Low-Power Modes ..............................................                         1343

      Table     23-24.  Flash Memory Characteristics ...........................................................................            1345

      Table     23-25.  EEPROM Characteristics .................................................................................            1345

      Table     23-26.  GPIO Module Characteristics ............................................................................            1346

      Table     23-27.  Pad Voltage/Current Characteristics for Fail-Safe Pins .......................................                      1347

      Table     23-28.  Fail-Safe GPIOs that Require an External Pull-up ..............................................                     1348

      Table     23-29.  Non-Fail-Safe I/O Pad Voltage/Current Characteristics .......................................                       1348

      Table     23-30.  ADC Electrical Characteristics ..........................................................................           1350

      Table     23-31.  SSI Characteristics ..........................................................................................      1353

      Table     23-32.  I2C Characteristics ...........................................................................................     1356

      Table     23-33.  Analog Comparator Characteristics ...................................................................               1358

      Table     23-34.  Analog Comparator Voltage Reference Characteristics ......................................                          1358

      Table     23-35.  Analog Comparator Voltage Reference Characteristics, VDDA = 3.3V, EN= 1, and

                        RNG = 0 ..........................................................................................................  1358

      Table     23-36.  Analog Comparator Voltage Reference Characteristics, VDDA = 3.3V, EN= 1, and

                        RNG = 1 ..........................................................................................................  1359

      Table     23-37.  PWM Timing Characteristics .............................................................................            1359

      Table     23-38.  Current Consumption .......................................................................................         1360

June  12, 2014                                                                                                                              17

                        Texas Instruments-Production Data
Table of Contents

List of Registers

The Cortex-M4F Processor ........................................................................................................... 67

Register 1:   Cortex General-Purpose Register 0 (R0) ........................................................................... 75

Register 2:   Cortex General-Purpose Register 1 (R1) ........................................................................... 75

Register 3:   Cortex General-Purpose Register 2 (R2) ........................................................................... 75

Register 4:   Cortex General-Purpose Register 3 (R3) ........................................................................... 75

Register 5:   Cortex General-Purpose Register 4 (R4) ........................................................................... 75

Register 6:   Cortex General-Purpose Register 5 (R5) ........................................................................... 75

Register 7:   Cortex General-Purpose Register 6 (R6) ........................................................................... 75

Register 8:   Cortex General-Purpose Register 7 (R7) ........................................................................... 75

Register 9:   Cortex General-Purpose Register 8 (R8) ........................................................................... 75

Register 10:  Cortex General-Purpose Register 9 (R9) ........................................................................... 75

Register 11:  Cortex General-Purpose Register 10 (R10) ....................................................................... 75

Register 12:  Cortex General-Purpose Register 11 (R11) ........................................................................ 75

Register 13:  Cortex General-Purpose Register 12 (R12) ....................................................................... 75

Register 14:  Stack Pointer (SP) ........................................................................................................... 76

Register 15:  Link Register (LR) ............................................................................................................ 77

Register 16:  Program Counter (PC) ..................................................................................................... 78

Register 17:  Program Status Register (PSR) ........................................................................................ 79

Register 18:  Priority Mask Register (PRIMASK) .................................................................................... 83

Register 19:  Fault Mask Register (FAULTMASK) .................................................................................. 84

Register 20:  Base Priority Mask Register (BASEPRI) ............................................................................ 85

Register 21:  Control Register (CONTROL) ........................................................................................... 86

Register 22:  Floating-Point Status Control (FPSC) ................................................................................ 88

Cortex-M4     Peripherals ................................................................................................................. 120

Register 1:   SysTick Control and Status Register (STCTRL), offset 0x010 ........................................... 136

Register 2:   SysTick Reload Value Register (STRELOAD), offset 0x014 .............................................. 138

Register 3:   SysTick Current Value Register (STCURRENT), offset 0x018 ........................................... 139

Register 4:   Interrupt 0-31 Set Enable (EN0), offset 0x100 .................................................................. 140

Register 5:   Interrupt 32-63 Set Enable (EN1), offset 0x104 ................................................................ 140

Register 6:   Interrupt 64-95 Set Enable (EN2), offset 0x108 ................................................................ 140

Register 7:   Interrupt 96-127 Set Enable (EN3), offset 0x10C ............................................................. 140

Register 8:   Interrupt 128-138 Set Enable (EN4), offset 0x110 ............................................................ 141

Register 9:   Interrupt 0-31 Clear Enable (DIS0), offset 0x180 .............................................................. 142

Register 10:  Interrupt 32-63 Clear Enable (DIS1), offset 0x184 ............................................................ 142

Register 11:  Interrupt 64-95 Clear Enable (DIS2), offset 0x188 ............................................................ 142

Register 12:  Interrupt 96-127 Clear Enable (DIS3), offset 0x18C .......................................................... 142

Register 13:  Interrupt 128-138 Clear Enable (DIS4), offset 0x190 ........................................................ 143

Register 14:  Interrupt 0-31 Set Pending (PEND0), offset 0x200 ........................................................... 144

Register 15:  Interrupt 32-63 Set Pending (PEND1), offset 0x204 ......................................................... 144

Register 16:  Interrupt 64-95 Set Pending (PEND2), offset 0x208 ......................................................... 144

Register 17:  Interrupt 96-127 Set Pending (PEND3), offset 0x20C ....................................................... 144

Register 18:  Interrupt 128-138 Set Pending (PEND4), offset 0x210 ...................................................... 145

Register 19:  Interrupt 0-31 Clear Pending (UNPEND0), offset 0x280 ................................................... 146

Register 20:  Interrupt 32-63 Clear Pending (UNPEND1), offset 0x284 .................................................. 146

Register 21:  Interrupt 64-95 Clear Pending (UNPEND2), offset 0x288 .................................................. 146

18                                                    June 12, 2014

                   Texas Instruments-Production Data
                                                  Tiva™ TM4C123FE6PM Microcontroller

Register 22:   Interrupt 96-127 Clear Pending (UNPEND3), offset 0x28C ...............................................                 146

Register 23:   Interrupt 128-138 Clear Pending (UNPEND4), offset 0x290 ..............................................                 147

Register 24:   Interrupt 0-31 Active Bit (ACTIVE0), offset 0x300 .............................................................        148

Register 25:   Interrupt 32-63 Active Bit (ACTIVE1), offset 0x304 ...........................................................         148

Register 26:   Interrupt 64-95 Active Bit (ACTIVE2), offset 0x308 ...........................................................         148

Register 27:   Interrupt 96-127 Active Bit (ACTIVE3), offset 0x30C ........................................................           148

Register 28:   Interrupt 128-138 Active Bit (ACTIVE4), offset 0x310 .......................................................           149

Register 29:   Interrupt 0-3 Priority (PRI0), offset 0x400 .........................................................................  150

Register 30:   Interrupt 4-7 Priority (PRI1), offset 0x404 .........................................................................  150

Register 31:   Interrupt 8-11 Priority (PRI2), offset 0x408 .......................................................................   150

Register 32:   Interrupt 12-15 Priority (PRI3), offset 0x40C ....................................................................     150

Register 33:   Interrupt 16-19 Priority (PRI4), offset 0x410 .....................................................................    150

Register 34:   Interrupt 20-23 Priority (PRI5), offset 0x414 .....................................................................    150

Register 35:   Interrupt 24-27 Priority (PRI6), offset 0x418 .....................................................................    150

Register 36:   Interrupt 28-31 Priority (PRI7), offset 0x41C ....................................................................     150

Register 37:   Interrupt 32-35 Priority (PRI8), offset 0x420 .....................................................................    150

Register 38:   Interrupt 36-39 Priority (PRI9), offset 0x424 .....................................................................    150

Register 39:   Interrupt 40-43 Priority (PRI10), offset 0x428 ...................................................................     150

Register 40:   Interrupt 44-47 Priority (PRI11), offset 0x42C ...................................................................     150

Register 41:   Interrupt 48-51 Priority (PRI12), offset 0x430 ...................................................................     150

Register 42:   Interrupt 52-55 Priority (PRI13), offset 0x434 ...................................................................     150

Register 43:   Interrupt 56-59 Priority (PRI14), offset 0x438 ...................................................................     150

Register 44:   Interrupt 60-63 Priority (PRI15), offset 0x43C ..................................................................      150

Register 45:   Interrupt 64-67 Priority (PRI16), offset 0x440 ...................................................................     152

Register 46:   Interrupt 68-71 Priority (PRI17), offset 0x444 ...................................................................     152

Register 47:   Interrupt 72-75 Priority (PRI18), offset 0x448 ...................................................................     152

Register 48:   Interrupt 76-79 Priority (PRI19), offset 0x44C ..................................................................      152

Register 49:   Interrupt 80-83 Priority (PRI20), offset 0x450 ...................................................................     152

Register 50:   Interrupt 84-87 Priority (PRI21), offset 0x454 ...................................................................     152

Register 51:   Interrupt 88-91 Priority (PRI22), offset 0x458 ...................................................................     152

Register 52:   Interrupt 92-95 Priority (PRI23), offset 0x45C ..................................................................      152

Register 53:   Interrupt 96-99 Priority (PRI24), offset 0x460 ...................................................................     152

Register 54:   Interrupt 100-103 Priority (PRI25), offset 0x464 ...............................................................       152

Register 55:   Interrupt 104-107 Priority (PRI26), offset 0x468 ...............................................................       152

Register 56:   Interrupt 108-111 Priority (PRI27), offset 0x46C ...............................................................       152

Register 57:   Interrupt 112-115 Priority (PRI28), offset 0x470 ................................................................      152

Register 58:   Interrupt 116-119 Priority (PRI29), offset 0x474 ................................................................      152

Register 59:   Interrupt 120-123 Priority (PRI30), offset 0x478 ...............................................................       152

Register 60:   Interrupt 124-127 Priority (PRI31), offset 0x47C ...............................................................       152

Register 61:   Interrupt 128-131 Priority (PRI32), offset 0x480 ...............................................................       152

Register 62:   Interrupt 132-135 Priority (PRI33), offset 0x484 ...............................................................       152

Register 63:   Interrupt 136-138 Priority (PRI34), offset 0x488 ...............................................................       152

Register 64:   Software Trigger Interrupt (SWTRIG), offset 0xF00 ..........................................................           154

Register 65:   Auxiliary Control (ACTLR), offset 0x008 ..........................................................................     155

Register 66:   CPU ID Base (CPUID), offset 0xD00 ...............................................................................      157

Register 67:   Interrupt Control and State (INTCTRL), offset 0xD04 ........................................................           158

Register 68:   Vector Table Offset (VTABLE), offset 0xD08 ....................................................................        161

Register 69:   Application Interrupt and Reset Control (APINT), offset 0xD0C .........................................                162

June 12, 2014                                                                                                                         19

               Texas Instruments-Production Data
Table of Contents

Register 70:  System Control (SYSCTRL), offset 0xD10 .......................................................................                     164

Register 71:  Configuration and Control (CFGCTRL), offset 0xD14 .......................................................                          166

Register 72:  System Handler Priority 1 (SYSPRI1), offset 0xD18 .........................................................                        168

Register 73:  System Handler Priority 2 (SYSPRI2), offset 0xD1C ........................................................                         169

Register 74:  System Handler Priority 3 (SYSPRI3), offset 0xD20 .........................................................                        170

Register 75:  System Handler Control and State (SYSHNDCTRL), offset 0xD24 ....................................                                   171

Register 76:  Configurable Fault Status (FAULTSTAT), offset 0xD28 .....................................................                          175

Register 77:  Hard Fault Status (HFAULTSTAT), offset 0xD2C ..............................................................                        181

Register 78:  Memory Management Fault Address (MMADDR), offset 0xD34 ........................................                                    182

Register 79:  Bus Fault Address (FAULTADDR), offset 0xD38 ..............................................................                         183

Register 80:  MPU Type (MPUTYPE), offset 0xD90 .............................................................................                     184

Register 81:  MPU Control (MPUCTRL), offset 0xD94 ..........................................................................                     185

Register 82:  MPU Region Number (MPUNUMBER), offset 0xD98 .......................................................                                187

Register 83:  MPU Region Base Address (MPUBASE), offset 0xD9C ...................................................                                188

Register 84:  MPU Region Base Address Alias 1 (MPUBASE1), offset 0xDA4 .......................................                                   188

Register 85:  MPU Region Base Address Alias 2 (MPUBASE2), offset 0xDAC ......................................                                    188

Register 86:  MPU Region Base Address Alias 3 (MPUBASE3), offset 0xDB4 .......................................                                   188

Register 87:  MPU Region Attribute and Size (MPUATTR), offset 0xDA0 ...............................................                              190

Register 88:  MPU Region Attribute and Size Alias 1 (MPUATTR1), offset 0xDA8 ..................................                                  190

Register 89:  MPU Region Attribute and Size Alias 2 (MPUATTR2), offset 0xDB0 ..................................                                  190

Register 90:  MPU Region Attribute and Size Alias 3 (MPUATTR3), offset 0xDB8 ..................................                                  190

Register 91:  Coprocessor Access Control (CPAC), offset 0xD88 ..........................................................                         193

Register 92:  Floating-Point Context Control (FPCC), offset 0xF34 ........................................................                       194

Register 93:  Floating-Point Context Address (FPCA), offset 0xF38 ......................................................                         196

Register 94:  Floating-Point Default Status Control (FPDSC), offset 0xF3C ...........................................                            197

System Control ............................................................................................................................ 210

Register 1:   Device Identification 0 (DID0), offset 0x000 ..................................................................... 235

Register 2:   Device Identification 1 (DID1), offset 0x004 ..................................................................... 237

Register 3:   Brown-Out Reset Control (PBORCTL), offset 0x030 ........................................................ 240

Register 4:   Raw Interrupt Status (RIS), offset 0x050 .......................................................................... 241

Register 5:   Interrupt Mask Control (IMC), offset 0x054 ...................................................................... 244

Register 6:   Masked Interrupt Status and Clear (MISC), offset 0x058 .................................................. 246

Register 7:   Reset Cause (RESC), offset 0x05C ................................................................................ 249

Register 8:   Run-Mode Clock Configuration (RCC), offset 0x060 ......................................................... 251

Register 9:   GPIO High-Performance Bus Control (GPIOHBCTL), offset 0x06C ................................... 255

Register 10:  Run-Mode Clock Configuration 2 (RCC2), offset 0x070 .................................................... 257

Register 11:  Main Oscillator Control (MOSCCTL), offset 0x07C ........................................................... 260

Register 12:  Deep Sleep Clock Configuration (DSLPCLKCFG), offset 0x144 ........................................ 261

Register 13:  System Properties (SYSPROP), offset 0x14C .................................................................. 263

Register 14:  Precision Internal Oscillator Calibration (PIOSCCAL), offset 0x150 ................................... 265

Register 15:  PLL Frequency 0 (PLLFREQ0), offset 0x160 ................................................................... 266

Register 16:  PLL Frequency 1 (PLLFREQ1), offset 0x164 ................................................................... 267

Register 17:  PLL Status (PLLSTAT), offset 0x168 ............................................................................... 268

Register 18:  Sleep Power Configuration (SLPPWRCFG), offset 0x188 ................................................. 269

Register 19:  Deep-Sleep Power Configuration (DSLPPWRCFG), offset 0x18C ..................................... 271

Register 20:  LDO Sleep Power Control (LDOSPCTL), offset 0x1B4 ..................................................... 273

Register 21:  LDO Sleep Power Calibration (LDOSPCAL), offset 0x1B8 ................................................ 275

Register 22:  LDO Deep-Sleep Power Control (LDODPCTL), offset 0x1BC ........................................... 276

20                                                    June 12, 2014

                   Texas Instruments-Production Data
                                                  Tiva™ TM4C123FE6PM Microcontroller

Register 23:   LDO Deep-Sleep Power Calibration (LDODPCAL), offset 0x1C0 ......................................                                   278

Register 24:   Sleep / Deep-Sleep Power Mode Status (SDPMST), offset 0x1CC ....................................                                   279

Register 25:   Watchdog Timer Peripheral Present (PPWD), offset 0x300 ...............................................                             282

Register 26:   16/32-Bit General-Purpose Timer Peripheral Present (PPTIMER), offset 0x304 .................                                       283

Register 27:   General-Purpose Input/Output Peripheral Present (PPGPIO), offset 0x308 ........................                                    285

Register 28:   Micro Direct Memory Access Peripheral Present (PPDMA), offset 0x30C ..........................                                     288

Register 29:   Hibernation Peripheral Present (PPHIB), offset 0x314 ......................................................                        289

Register 30:   Universal Asynchronous Receiver/Transmitter Peripheral Present (PPUART), offset

               0x318 ...........................................................................................................................  290

Register 31:   Synchronous Serial Interface Peripheral Present (PPSSI), offset 0x31C ............................                                 292

Register 32:   Inter-Integrated Circuit Peripheral Present (PPI2C), offset 0x320 ......................................                           294

Register 33:   Universal Serial Bus Peripheral Present (PPUSB), offset 0x328 ........................................                             296

Register 34:   Controller Area Network Peripheral Present (PPCAN), offset 0x334 ..................................                                297

Register 35:   Analog-to-Digital Converter Peripheral Present (PPADC), offset 0x338 .............................                                 298

Register 36:   Analog Comparator Peripheral Present (PPACMP), offset 0x33C ......................................                                 299

Register 37:   Pulse Width Modulator Peripheral Present (PPPWM), offset 0x340 ...................................                                 300

Register 38:   Quadrature Encoder Interface Peripheral Present (PPQEI), offset 0x344 ...........................                                  301

Register 39:   EEPROM Peripheral Present (PPEEPROM), offset 0x358 ................................................                                302

Register 40:   32/64-Bit Wide General-Purpose Timer Peripheral Present (PPWTIMER), offset 0x35C .....                                             303

Register 41:   Watchdog Timer Software Reset (SRWD), offset 0x500 ...................................................                             305

Register 42:   16/32-Bit General-Purpose Timer Software Reset (SRTIMER), offset 0x504 ......................                                      307

Register 43:   General-Purpose Input/Output Software Reset (SRGPIO), offset 0x508 ............................                                    309

Register 44:   Micro Direct Memory Access Software Reset (SRDMA), offset 0x50C ...............................                                    311

Register 45:   Universal Asynchronous Receiver/Transmitter Software Reset (SRUART), offset 0x518 ....                                             312

Register 46:   Synchronous Serial Interface Software Reset (SRSSI), offset 0x51C ................................                                 314

Register 47:   Inter-Integrated Circuit Software Reset (SRI2C), offset 0x520 ...........................................                          316

Register 48:   Universal Serial Bus Software Reset (SRUSB), offset 0x528 ............................................                             318

Register 49:   Controller Area Network Software Reset (SRCAN), offset 0x534 .......................................                               319

Register 50:   Analog-to-Digital Converter Software Reset (SRADC), offset 0x538 ..................................                                321

Register 51:   Analog Comparator Software Reset (SRACMP), offset 0x53C ..........................................                                 323

Register 52:   Pulse Width Modulator Software Reset (SRPWM), offset 0x540 .......................................                                 324

Register 53:   Quadrature Encoder Interface Software Reset (SRQEI), offset 0x544 ...............................                                  326

Register 54:   EEPROM Software Reset (SREEPROM), offset 0x558 ....................................................                                328

Register 55:   32/64-Bit Wide General-Purpose Timer Software Reset (SRWTIMER), offset 0x55C ..........                                            329

Register 56:   Watchdog Timer Run Mode Clock Gating Control (RCGCWD), offset 0x600 ......................                                         331

Register 57:   16/32-Bit General-Purpose Timer Run Mode Clock Gating Control (RCGCTIMER), offset

               0x604 ...........................................................................................................................  332

Register 58:   General-Purpose Input/Output Run Mode Clock Gating Control (RCGCGPIO), offset

               0x608 ...........................................................................................................................  334

Register 59:   Micro Direct Memory Access Run Mode Clock Gating Control (RCGCDMA), offset

               0x60C ...........................................................................................................................  336

Register 60:   Universal Asynchronous Receiver/Transmitter Run Mode Clock Gating Control (RCGCUART),

               offset 0x618 ..................................................................................................................    337

Register 61:   Synchronous Serial Interface Run Mode Clock Gating Control (RCGCSSI), offset

               0x61C ...........................................................................................................................  339

Register 62:   Inter-Integrated Circuit Run Mode Clock Gating Control (RCGCI2C), offset 0x620 .............                                       341

Register 63:   Universal Serial Bus Run Mode Clock Gating Control (RCGCUSB), offset 0x628 ...............                                         343

Register 64:   Controller Area Network Run Mode Clock Gating Control (RCGCCAN), offset 0x634 .........                                            344

Register 65:   Analog-to-Digital Converter Run Mode Clock Gating Control (RCGCADC), offset 0x638 ....                                             345

June 12, 2014                                                                                                                                     21

               Texas Instruments-Production Data
Table of Contents

Register 66:  Analog Comparator Run Mode Clock Gating Control (RCGCACMP), offset 0x63C .............                                             346

Register 67:  Pulse Width Modulator Run Mode Clock Gating Control (RCGCPWM), offset 0x640 ..........                                             347

Register 68:  Quadrature Encoder Interface Run Mode Clock Gating Control (RCGCQEI), offset

              0x644 ...........................................................................................................................  348

Register 69:  EEPROM Run Mode Clock Gating Control (RCGCEEPROM), offset 0x658 .......................                                            349

Register 70:  32/64-Bit Wide General-Purpose Timer Run Mode Clock Gating Control (RCGCWTIMER),

              offset 0x65C ..................................................................................................................    350

Register 71:  Watchdog Timer Sleep Mode Clock Gating Control (SCGCWD), offset 0x700 ....................                                         352

Register 72:  16/32-Bit General-Purpose Timer Sleep Mode Clock Gating Control (SCGCTIMER), offset

              0x704 ...........................................................................................................................  353

Register 73:  General-Purpose Input/Output Sleep Mode Clock Gating Control (SCGCGPIO), offset

              0x708 ...........................................................................................................................  355

Register 74:  Micro Direct Memory Access Sleep Mode Clock Gating Control (SCGCDMA), offset

              0x70C ...........................................................................................................................  357

Register 75:  Universal Asynchronous Receiver/Transmitter Sleep Mode Clock Gating Control

              (SCGCUART), offset 0x718 ............................................................................................              358

Register 76:  Synchronous Serial Interface Sleep Mode Clock Gating Control (SCGCSSI), offset

              0x71C ...........................................................................................................................  360

Register 77:  Inter-Integrated Circuit Sleep Mode Clock Gating Control (SCGCI2C), offset 0x720 ...........                                       362

Register 78:  Universal Serial Bus Sleep Mode Clock Gating Control (SCGCUSB), offset 0x728 .............                                         364

Register 79:  Controller Area Network Sleep Mode Clock Gating Control (SCGCCAN), offset 0x734 .......                                            365

Register 80:  Analog-to-Digital Converter Sleep Mode Clock Gating Control (SCGCADC), offset

              0x738 ...........................................................................................................................  366

Register 81:  Analog Comparator Sleep Mode Clock Gating Control (SCGCACMP), offset 0x73C ..........                                              367

Register 82:  Pulse Width Modulator Sleep Mode Clock Gating Control (SCGCPWM), offset 0x740 ........                                             368

Register 83:  Quadrature Encoder Interface Sleep Mode Clock Gating Control (SCGCQEI), offset

              0x744 ...........................................................................................................................  369

Register 84:  EEPROM Sleep Mode Clock Gating Control (SCGCEEPROM), offset 0x758 .....................                                            370

Register 85:  32/64-Bit Wide General-Purpose Timer Sleep Mode Clock Gating Control (SCGCWTIMER),

              offset 0x75C ..................................................................................................................    371

Register 86:  Watchdog Timer Deep-Sleep Mode Clock Gating Control (DCGCWD), offset 0x800 ..........                                              373

Register 87:  16/32-Bit General-Purpose Timer Deep-Sleep Mode Clock Gating Control (DCGCTIMER),

              offset 0x804 ..................................................................................................................    374

Register 88:  General-Purpose Input/Output Deep-Sleep Mode Clock Gating Control (DCGCGPIO), offset

              0x808 ...........................................................................................................................  376

Register 89:  Micro Direct Memory Access Deep-Sleep Mode Clock Gating Control (DCGCDMA), offset

              0x80C ...........................................................................................................................  378

Register 90:  Universal Asynchronous Receiver/Transmitter Deep-Sleep Mode Clock Gating Control

              (DCGCUART), offset 0x818 ............................................................................................              379

Register 91:  Synchronous Serial Interface Deep-Sleep Mode Clock Gating Control (DCGCSSI), offset

              0x81C ...........................................................................................................................  381

Register 92:  Inter-Integrated Circuit Deep-Sleep Mode Clock Gating Control (DCGCI2C), offset

              0x820 ...........................................................................................................................  383

Register 93:  Universal Serial Bus Deep-Sleep Mode Clock Gating Control (DCGCUSB), offset

              0x828 ...........................................................................................................................  385

Register 94:  Controller Area Network Deep-Sleep Mode Clock Gating Control (DCGCCAN), offset

              0x834 ...........................................................................................................................  386

Register 95:  Analog-to-Digital Converter Deep-Sleep Mode Clock Gating Control (DCGCADC), offset

              0x838 ...........................................................................................................................  387

22                                                                                              June 12, 2014

                   Texas Instruments-Production Data
                                                  Tiva™ TM4C123FE6PM Microcontroller

Register 96:   Analog Comparator Deep-Sleep Mode Clock Gating Control (DCGCACMP), offset

               0x83C ...........................................................................................................................  388

Register 97:   Pulse Width Modulator Deep-Sleep Mode Clock Gating Control (DCGCPWM), offset

               0x840 ...........................................................................................................................  389

Register 98:   Quadrature Encoder Interface Deep-Sleep Mode Clock Gating Control (DCGCQEI), offset

               0x844 ...........................................................................................................................  390

Register 99:   EEPROM Deep-Sleep Mode Clock Gating Control (DCGCEEPROM), offset 0x858 ...........                                                 391

Register 100:  32/64-Bit Wide General-Purpose Timer Deep-Sleep Mode Clock Gating Control

               (DCGCWTIMER), offset 0x85C ......................................................................................                  392

Register 101:  Watchdog Timer Peripheral Ready (PRWD), offset 0xA00 ................................................                              394

Register 102:  16/32-Bit General-Purpose Timer Peripheral Ready (PRTIMER), offset 0xA04 ...................                                       395

Register 103:  General-Purpose Input/Output Peripheral Ready (PRGPIO), offset 0xA08 .........................                                     397

Register 104:  Micro Direct Memory Access Peripheral Ready (PRDMA), offset 0xA0C ...........................                                      399

Register 105:  Universal Asynchronous Receiver/Transmitter Peripheral Ready (PRUART), offset

               0xA18 ...........................................................................................................................  400

Register 106:  Synchronous Serial Interface Peripheral Ready (PRSSI), offset 0xA1C .............................                                  402

Register 107:  Inter-Integrated Circuit Peripheral Ready (PRI2C), offset 0xA20 .......................................                            404

Register 108:  Universal Serial Bus Peripheral Ready (PRUSB), offset 0xA28 .........................................                              406

Register 109:  Controller Area Network Peripheral Ready (PRCAN), offset 0xA34 ...................................                                 407

Register 110:  Analog-to-Digital Converter Peripheral Ready (PRADC), offset 0xA38 ...............................                                 408

Register 111:  Analog Comparator Peripheral Ready (PRACMP), offset 0xA3C .......................................                                  409

Register 112:  Pulse Width Modulator Peripheral Ready (PRPWM), offset 0xA40 ....................................                                  410

Register 113:  Quadrature Encoder Interface Peripheral Ready (PRQEI), offset 0xA44 ............................                                   411

Register 114:  EEPROM Peripheral Ready (PREEPROM), offset 0xA58 .................................................                                 412

Register 115:  32/64-Bit Wide General-Purpose Timer Peripheral Ready (PRWTIMER), offset 0xA5C ......                                              413

Register 116:  Device Capabilities 0 (DC0), offset 0x008 ........................................................................                 415

Register 117:  Device Capabilities 1 (DC1), offset 0x010 ........................................................................                 417

Register 118:  Device Capabilities 2 (DC2), offset 0x014 ........................................................................                 420

Register 119:  Device Capabilities 3 (DC3), offset 0x018 ........................................................................                 423

Register 120:  Device Capabilities 4 (DC4), offset 0x01C .......................................................................                  427

Register 121:  Device Capabilities 5 (DC5), offset 0x020 ........................................................................                 430

Register 122:  Device Capabilities 6 (DC6), offset 0x024 ........................................................................                 432

Register 123:  Device Capabilities 7 (DC7), offset 0x028 ........................................................................                 433

Register 124:  Device Capabilities 8 (DC8), offset 0x02C .......................................................................                  436

Register 125:  Software Reset Control 0 (SRCR0), offset 0x040 .............................................................                       439

Register 126:  Software Reset Control 1 (SRCR1), offset 0x044 .............................................................                       441

Register 127:  Software Reset Control 2 (SRCR2), offset 0x048 .............................................................                       444

Register 128:  Run Mode Clock Gating Control Register 0 (RCGC0), offset 0x100 ...................................                                 446

Register 129:  Run Mode Clock Gating Control Register 1 (RCGC1), offset 0x104 ...................................                                 450

Register 130:  Run Mode Clock Gating Control Register 2 (RCGC2), offset 0x108 ...................................                                 454

Register 131:  Sleep Mode Clock Gating Control Register 0 (SCGC0), offset 0x110 .................................                                 457

Register 132:  Sleep Mode Clock Gating Control Register 1 (SCGC1), offset 0x114 .................................                                 460

Register 133:  Sleep Mode Clock Gating Control Register 2 (SCGC2), offset 0x118 .................................                                 463

Register 134:  Deep Sleep Mode Clock Gating Control Register 0 (DCGC0), offset 0x120 .......................                                      465

Register 135:  Deep-Sleep Mode Clock Gating Control Register 1 (DCGC1), offset 0x124 .......................                                      468

Register 136:  Deep Sleep Mode Clock Gating Control Register 2 (DCGC2), offset 0x128 .......................                                      471

Register 137:  Device Capabilities 9 (DC9), offset 0x190 ........................................................................                 473

Register 138:  Non-Volatile Memory Information (NVMSTAT), offset 0x1A0 .............................................                              475

June 12, 2014                                                                                                                                     23

               Texas Instruments-Production Data
Table of Contents

System Exception Module .......................................................................................................... 476

Register 1:   System Exception Raw Interrupt Status (SYSEXCRIS), offset 0x000 ................................ 477

Register 2:   System Exception Interrupt Mask (SYSEXCIM), offset 0x004 ........................................... 479

Register 3:   System Exception Masked Interrupt Status (SYSEXCMIS), offset 0x008 ........................... 481

Register 4:   System Exception Interrupt Clear (SYSEXCIC), offset 0x00C ........................................... 483

Internal Memory ........................................................................................................................... 484

Register 1:   Flash Memory Address (FMA), offset 0x000 .................................................................... 502

Register 2:   Flash Memory Data (FMD), offset 0x004 ......................................................................... 503

Register 3:   Flash Memory Control (FMC), offset 0x008 ..................................................................... 504

Register 4:   Flash Controller Raw Interrupt Status (FCRIS), offset 0x00C ............................................ 506

Register 5:   Flash Controller Interrupt Mask (FCIM), offset 0x010 ........................................................ 509

Register 6:   Flash Controller Masked Interrupt Status and Clear (FCMISC), offset 0x014 ..................... 511

Register 7:   Flash Memory Control 2 (FMC2), offset 0x020 ................................................................. 514

Register 8:   Flash Write Buffer Valid (FWBVAL), offset 0x030 ............................................................. 515

Register 9:   Flash Write Buffer n (FWBn), offset 0x100 - 0x17C .......................................................... 516

Register 10:  Flash Size (FSIZE), offset 0xFC0 .................................................................................... 517

Register 11:  SRAM Size (SSIZE), offset 0xFC4 .................................................................................. 518

Register 12:  ROM Software Map (ROMSWMAP), offset 0xFCC ........................................................... 519

Register 13:  EEPROM Size Information (EESIZE), offset 0x000 .......................................................... 520

Register 14:  EEPROM Current Block (EEBLOCK), offset 0x004 .......................................................... 521

Register 15:  EEPROM Current Offset (EEOFFSET), offset 0x008 ........................................................ 522

Register 16:  EEPROM Read-Write (EERDWR), offset 0x010 .............................................................. 523

Register 17:  EEPROM Read-Write with Increment (EERDWRINC), offset 0x014 .................................. 524

Register 18:  EEPROM Done Status (EEDONE), offset 0x018 .............................................................. 525

Register 19:  EEPROM Support Control and Status (EESUPP), offset 0x01C ........................................ 527

Register 20:  EEPROM Unlock (EEUNLOCK), offset 0x020 .................................................................. 529

Register 21:  EEPROM Protection (EEPROT), offset 0x030 ................................................................. 530

Register 22:  EEPROM Password (EEPASS0), offset 0x034 ................................................................. 532

Register 23:  EEPROM Password (EEPASS1), offset 0x038 ................................................................. 532

Register 24:  EEPROM Password (EEPASS2), offset 0x03C ................................................................ 532

Register 25:  EEPROM Interrupt (EEINT), offset 0x040 ........................................................................ 533

Register 26:  EEPROM Block Hide (EEHIDE), offset 0x050 .................................................................. 534

Register 27:  EEPROM Debug Mass Erase (EEDBGME), offset 0x080 ................................................. 535

Register 28:  EEPROM Peripheral Properties (EEPROMPP), offset 0xFC0 ........................................... 536

Register 29:  ROM Control (RMCTL), offset 0x0F0 .............................................................................. 537

Register 30:  Flash Memory Protection Read Enable 0 (FMPRE0), offset 0x130 and 0x200 ................... 538

Register 31:  Flash Memory Protection Read Enable 1 (FMPRE1), offset 0x204 .................................... 538

Register 32:  Flash Memory Protection Program Enable 0 (FMPPE0), offset 0x134 and 0x400 ............... 539

Register 33:  Flash Memory Protection Program Enable 1 (FMPPE1), offset 0x404 ............................... 539

Register 34:  Boot Configuration (BOOTCFG), offset 0x1D0 ................................................................. 540

Register 35:  User Register 0 (USER_REG0), offset 0x1E0 .................................................................. 543

Register 36:  User Register 1 (USER_REG1), offset 0x1E4 .................................................................. 543

Register 37:  User Register 2 (USER_REG2), offset 0x1E8 .................................................................. 543

Register 38:  User Register 3 (USER_REG3), offset 0x1EC ................................................................. 543

Micro Direct Memory Access (μDMA) ........................................................................................ 544

Register 1:   DMA Channel Source Address End Pointer (DMASRCENDP), offset 0x000 ...................... 568

Register 2:   DMA Channel Destination Address End Pointer (DMADSTENDP), offset 0x004 ................ 569

Register 3:   DMA Channel Control Word (DMACHCTL), offset 0x008 .................................................. 570

24                                                    June 12, 2014

                   Texas Instruments-Production Data
                                                       Tiva™ TM4C123FE6PM Microcontroller

Register 4:    DMA  Status (DMASTAT), offset 0x000 ............................................................................      575

Register 5:    DMA  Configuration (DMACFG), offset 0x004 ...................................................................         577

Register 6:    DMA  Channel Control Base Pointer (DMACTLBASE), offset 0x008 ..................................                       578

Register 7:    DMA  Alternate Channel Control Base Pointer (DMAALTBASE), offset 0x00C ....................                           579

Register 8:    DMA  Channel Wait-on-Request Status (DMAWAITSTAT), offset 0x010 .............................                         580

Register 9:    DMA  Channel Software Request (DMASWREQ), offset 0x014 .........................................                      581

Register 10:   DMA  Channel Useburst Set (DMAUSEBURSTSET), offset 0x018 ....................................                         582

Register 11:   DMA  Channel Useburst Clear (DMAUSEBURSTCLR), offset 0x01C .................................                          583

Register 12:   DMA  Channel Request Mask Set (DMAREQMASKSET), offset 0x020 ..............................                            584

Register 13:   DMA  Channel Request Mask Clear (DMAREQMASKCLR), offset 0x024 ...........................                             585

Register 14:   DMA  Channel Enable Set (DMAENASET), offset 0x028 ...................................................                 586

Register 15:   DMA  Channel Enable Clear (DMAENACLR), offset 0x02C ...............................................                   587

Register 16:   DMA  Channel Primary Alternate Set (DMAALTSET), offset 0x030 ....................................                     588

Register 17:   DMA  Channel Primary Alternate Clear (DMAALTCLR), offset 0x034 .................................                      589

Register 18:   DMA  Channel Priority Set (DMAPRIOSET), offset 0x038 .................................................                590

Register 19:   DMA  Channel Priority Clear (DMAPRIOCLR), offset 0x03C ..............................................                 591

Register 20:   DMA  Bus Error Clear (DMAERRCLR), offset 0x04C ........................................................               592

Register 21:   DMA  Channel Assignment (DMACHASGN), offset 0x500 .................................................                   593

Register 22:   DMA  Channel Interrupt Status (DMACHIS), offset 0x504 ..................................................              594

Register 23:   DMA  Channel Map Select 0 (DMACHMAP0), offset 0x510 ...............................................                   595

Register 24:   DMA  Channel Map Select 1 (DMACHMAP1), offset 0x514 ...............................................                   596

Register 25:   DMA  Channel Map Select 2 (DMACHMAP2), offset 0x518 ...............................................                   597

Register 26:   DMA  Channel Map Select 3 (DMACHMAP3), offset 0x51C ..............................................                    598

Register 27:   DMA  Peripheral Identification 0 (DMAPeriphID0), offset 0xFE0 .........................................               599

Register 28:   DMA  Peripheral Identification 1 (DMAPeriphID1), offset 0xFE4 .........................................               600

Register 29:   DMA  Peripheral Identification 2 (DMAPeriphID2), offset 0xFE8 .........................................               601

Register 30:   DMA  Peripheral Identification 3 (DMAPeriphID3), offset 0xFEC ........................................                602

Register 31:   DMA  Peripheral Identification 4 (DMAPeriphID4), offset 0xFD0 .........................................               603

Register 32:   DMA  PrimeCell Identification 0 (DMAPCellID0), offset 0xFF0 ...........................................               604

Register 33:   DMA  PrimeCell Identification 1 (DMAPCellID1), offset 0xFF4 ...........................................               605

Register 34:   DMA  PrimeCell Identification 2 (DMAPCellID2), offset 0xFF8 ...........................................               606

Register 35:   DMA  PrimeCell Identification 3 (DMAPCellID3), offset 0xFFC ...........................................               607

General-Purpose Input/Outputs (GPIOs) ................................................................................... 608

Register 1:    GPIO Data (GPIODATA), offset 0x000 ............................................................................ 621

Register 2:    GPIO Direction (GPIODIR), offset 0x400 ......................................................................... 622

Register 3:    GPIO Interrupt Sense (GPIOIS), offset 0x404 .................................................................. 623

Register 4:    GPIO Interrupt Both Edges (GPIOIBE), offset 0x408 ........................................................ 624

Register 5:    GPIO Interrupt Event (GPIOIEV), offset 0x40C ................................................................ 625

Register 6:    GPIO Interrupt Mask (GPIOIM), offset 0x410 ................................................................... 626

Register 7:    GPIO Raw Interrupt Status (GPIORIS), offset 0x414 ........................................................ 627

Register 8:    GPIO Masked Interrupt Status (GPIOMIS), offset 0x418 ................................................... 628

Register 9:    GPIO Interrupt Clear (GPIOICR), offset 0x41C ................................................................ 629

Register 10:   GPIO Alternate Function Select (GPIOAFSEL), offset 0x420 ............................................ 630

Register 11:   GPIO 2-mA Drive Select (GPIODR2R), offset 0x500 ........................................................ 632

Register 12:   GPIO 4-mA Drive Select (GPIODR4R), offset 0x504 ........................................................ 633

Register 13:   GPIO 8-mA Drive Select (GPIODR8R), offset 0x508 ........................................................ 634

Register 14:   GPIO Open Drain Select (GPIOODR), offset 0x50C ......................................................... 635

Register 15:   GPIO Pull-Up Select (GPIOPUR), offset 0x510 ................................................................ 636

June 12, 2014                                                                                                                        25

                    Texas Instruments-Production Data
Table of Contents

Register 16:  GPIO  Pull-Down Select (GPIOPDR), offset 0x514 ...........................................................                  638

Register 17:  GPIO  Slew Rate Control Select (GPIOSLR), offset 0x518 ................................................                     640

Register 18:  GPIO  Digital Enable (GPIODEN), offset 0x51C ................................................................               641

Register 19:  GPIO  Lock (GPIOLOCK), offset 0x520 ............................................................................            643

Register 20:  GPIO  Commit (GPIOCR), offset 0x524 ............................................................................            644

Register 21:  GPIO  Analog Mode Select (GPIOAMSEL), offset 0x528 ...................................................                      646

Register 22:  GPIO  Port Control (GPIOPCTL), offset 0x52C .................................................................               647

Register 23:  GPIO  ADC Control (GPIOADCCTL), offset 0x530 ............................................................                   649

Register 24:  GPIO  DMA Control (GPIODMACTL), offset 0x534 ...........................................................                    650

Register 25:  GPIO  Peripheral Identification 4 (GPIOPeriphID4), offset 0xFD0 .......................................                     651

Register 26:  GPIO  Peripheral Identification 5 (GPIOPeriphID5), offset 0xFD4 .......................................                     652

Register 27:  GPIO  Peripheral Identification 6 (GPIOPeriphID6), offset 0xFD8 .......................................                     653

Register 28:  GPIO  Peripheral Identification 7 (GPIOPeriphID7), offset 0xFDC ......................................                      654

Register 29:  GPIO  Peripheral Identification 0 (GPIOPeriphID0), offset 0xFE0 .......................................                     655

Register 30:  GPIO  Peripheral Identification 1 (GPIOPeriphID1), offset 0xFE4 .......................................                     656

Register 31:  GPIO  Peripheral Identification 2 (GPIOPeriphID2), offset 0xFE8 .......................................                     657

Register 32:  GPIO  Peripheral Identification 3 (GPIOPeriphID3), offset 0xFEC ......................................                      658

Register 33:  GPIO  PrimeCell Identification 0 (GPIOPCellID0), offset 0xFF0 ..........................................                    659

Register 34:  GPIO  PrimeCell Identification 1 (GPIOPCellID1), offset 0xFF4 ..........................................                    660

Register 35:  GPIO  PrimeCell Identification 2 (GPIOPCellID2), offset 0xFF8 ..........................................                    661

Register 36:  GPIO  PrimeCell Identification 3 (GPIOPCellID3), offset 0xFFC .........................................                     662

General-Purpose Timers ............................................................................................................. 663

Register 1:   GPTM Configuration (GPTMCFG), offset 0x000 .............................................................. 686

Register 2:   GPTM Timer A Mode (GPTMTAMR), offset 0x004 ........................................................... 688

Register 3:   GPTM Timer B Mode (GPTMTBMR), offset 0x008 ........................................................... 692

Register 4:   GPTM Control (GPTMCTL), offset 0x00C ........................................................................ 696

Register 5:   GPTM Synchronize (GPTMSYNC), offset 0x010 .............................................................. 700

Register 6:   GPTM Interrupt Mask (GPTMIMR), offset 0x018 .............................................................. 704

Register 7:   GPTM Raw Interrupt Status (GPTMRIS), offset 0x01C ..................................................... 707

Register 8:   GPTM Masked Interrupt Status (GPTMMIS), offset 0x020 ................................................ 710

Register 9:   GPTM Interrupt Clear (GPTMICR), offset 0x024 .............................................................. 713

Register 10:  GPTM Timer A Interval Load (GPTMTAILR), offset 0x028 ................................................ 715

Register 11:  GPTM Timer B Interval Load (GPTMTBILR), offset 0x02C ................................................ 716

Register 12:  GPTM Timer A Match (GPTMTAMATCHR), offset 0x030 .................................................. 717

Register 13:  GPTM Timer B Match (GPTMTBMATCHR), offset 0x034 ................................................. 718

Register 14:  GPTM Timer A Prescale (GPTMTAPR), offset 0x038 ....................................................... 719

Register 15:  GPTM Timer B Prescale (GPTMTBPR), offset 0x03C ...................................................... 720

Register 16:  GPTM TimerA Prescale Match (GPTMTAPMR), offset 0x040 ........................................... 721

Register 17:  GPTM TimerB Prescale Match (GPTMTBPMR), offset 0x044 ........................................... 722

Register 18:  GPTM Timer A (GPTMTAR), offset 0x048 ....................................................................... 723

Register 19:  GPTM Timer B (GPTMTBR), offset 0x04C ....................................................................... 724

Register 20:  GPTM Timer A Value (GPTMTAV), offset 0x050 ............................................................... 725

Register 21:  GPTM Timer B Value (GPTMTBV), offset 0x054 .............................................................. 726

Register 22:  GPTM RTC Predivide (GPTMRTCPD), offset 0x058 ........................................................ 727

Register 23:  GPTM Timer A Prescale Snapshot (GPTMTAPS), offset 0x05C ........................................ 728

Register 24:  GPTM Timer B Prescale Snapshot (GPTMTBPS), offset 0x060 ........................................ 729

Register 25:  GPTM Timer A Prescale Value (GPTMTAPV), offset 0x064 .............................................. 730

Register 26:  GPTM Timer B Prescale Value (GPTMTBPV), offset 0x068 .............................................. 731

26                                                     June 12, 2014

                    Texas Instruments-Production Data
                                                  Tiva™ TM4C123FE6PM Microcontroller

Register 27:   GPTM Peripheral Properties (GPTMPP), offset 0xFC0 ..................................................... 732

Watchdog Timers ......................................................................................................................... 733

Register 1:    Watchdog Load (WDTLOAD), offset 0x000 ...................................................................... 737

Register 2:    Watchdog Value (WDTVALUE), offset 0x004 ................................................................... 738

Register 3:    Watchdog Control (WDTCTL), offset 0x008 ..................................................................... 739

Register 4:    Watchdog Interrupt Clear (WDTICR), offset 0x00C .......................................................... 741

Register 5:    Watchdog Raw Interrupt Status (WDTRIS), offset 0x010 .................................................. 742

Register 6:    Watchdog Masked Interrupt Status (WDTMIS), offset 0x014 ............................................. 743

Register 7:    Watchdog Test (WDTTEST), offset 0x418 ....................................................................... 744

Register 8:    Watchdog Lock (WDTLOCK), offset 0xC00 ..................................................................... 745

Register 9:    Watchdog Peripheral Identification 4 (WDTPeriphID4), offset 0xFD0 ................................. 746

Register 10:   Watchdog Peripheral Identification 5 (WDTPeriphID5), offset 0xFD4 ................................. 747

Register 11:   Watchdog Peripheral Identification 6 (WDTPeriphID6), offset 0xFD8 ................................. 748

Register 12:   Watchdog Peripheral Identification 7 (WDTPeriphID7), offset 0xFDC ................................ 749

Register 13:   Watchdog Peripheral Identification 0 (WDTPeriphID0), offset 0xFE0 ................................. 750

Register 14:   Watchdog Peripheral Identification 1 (WDTPeriphID1), offset 0xFE4 ................................. 751

Register 15:   Watchdog Peripheral Identification 2 (WDTPeriphID2), offset 0xFE8 ................................. 752

Register 16:   Watchdog Peripheral Identification 3 (WDTPeriphID3), offset 0xFEC ................................. 753

Register 17:   Watchdog PrimeCell Identification 0 (WDTPCellID0), offset 0xFF0 .................................... 754

Register 18:   Watchdog PrimeCell Identification 1 (WDTPCellID1), offset 0xFF4 .................................... 755

Register 19:   Watchdog PrimeCell Identification 2 (WDTPCellID2), offset 0xFF8 .................................... 756

Register 20:   Watchdog PrimeCell Identification 3 (WDTPCellID3 ), offset 0xFFC .................................. 757

Analog-to-Digital Converter (ADC) ............................................................................................. 758

Register 1:    ADC Active Sample Sequencer (ADCACTSS), offset 0x000 ............................................. 780

Register 2:    ADC Raw Interrupt Status (ADCRIS), offset 0x004 ........................................................... 782

Register 3:    ADC Interrupt Mask (ADCIM), offset 0x008 ..................................................................... 784

Register 4:    ADC Interrupt Status and Clear (ADCISC), offset 0x00C .................................................. 787

Register 5:    ADC Overflow Status (ADCOSTAT), offset 0x010 ............................................................ 790

Register 6:    ADC Event Multiplexer Select (ADCEMUX), offset 0x014 ................................................. 792

Register 7:    ADC Underflow Status (ADCUSTAT), offset 0x018 ........................................................... 797

Register 8:    ADC Trigger Source Select (ADCTSSEL), offset 0x01C ................................................... 798

Register 9:    ADC Sample Sequencer Priority (ADCSSPRI), offset 0x020 ............................................. 800

Register 10:   ADC Sample Phase Control (ADCSPC), offset 0x024 ...................................................... 802

Register 11:   ADC Processor Sample Sequence Initiate (ADCPSSI), offset 0x028 ................................. 804

Register 12:   ADC Sample Averaging Control (ADCSAC), offset 0x030 ................................................. 806

Register 13:   ADC Digital Comparator Interrupt Status and Clear (ADCDCISC), offset 0x034 ................. 807

Register 14:   ADC Control (ADCCTL), offset 0x038 ............................................................................. 809

Register 15:   ADC Sample Sequence Input Multiplexer Select 0 (ADCSSMUX0), offset 0x040 ............... 810

Register 16:   ADC Sample Sequence Control 0 (ADCSSCTL0), offset 0x044 ........................................ 812

Register 17:   ADC Sample Sequence Result FIFO 0 (ADCSSFIFO0), offset 0x048 ................................ 819

Register 18:   ADC Sample Sequence Result FIFO 1 (ADCSSFIFO1), offset 0x068 ................................ 819

Register 19:   ADC Sample Sequence Result FIFO 2 (ADCSSFIFO2), offset 0x088 ................................ 819

Register 20:   ADC Sample Sequence Result FIFO 3 (ADCSSFIFO3), offset 0x0A8 ............................... 819

Register 21:   ADC Sample Sequence FIFO 0 Status (ADCSSFSTAT0), offset 0x04C ............................. 820

Register 22:   ADC Sample Sequence FIFO 1 Status (ADCSSFSTAT1), offset 0x06C ............................. 820

Register 23:   ADC Sample Sequence FIFO 2 Status (ADCSSFSTAT2), offset 0x08C  ............................ 820

Register 24:   ADC Sample Sequence FIFO 3 Status (ADCSSFSTAT3), offset 0x0AC ............................ 820

Register 25:   ADC Sample Sequence 0 Operation (ADCSSOP0), offset 0x050 ...................................... 822

June 12, 2014                                                                                                                                  27

               Texas Instruments-Production Data
Table of Contents

Register 26:  ADC  Sample Sequence 0 Digital Comparator Select (ADCSSDC0), offset 0x054 ..............                               824

Register 27:  ADC  Sample Sequence Input Multiplexer Select 1 (ADCSSMUX1), offset 0x060 ...............                              826

Register 28:  ADC  Sample Sequence Input Multiplexer Select 2 (ADCSSMUX2), offset 0x080 ...............                              826

Register 29:  ADC  Sample Sequence Control 1 (ADCSSCTL1), offset 0x064 ........................................                      827

Register 30:  ADC  Sample Sequence Control 2 (ADCSSCTL2), offset 0x084 ........................................                      827

Register 31:  ADC  Sample Sequence 1 Operation (ADCSSOP1), offset 0x070 ......................................                       831

Register 32:  ADC  Sample Sequence 2 Operation (ADCSSOP2), offset 0x090  .....................................                       831

Register 33:  ADC  Sample Sequence 1 Digital Comparator Select (ADCSSDC1), offset 0x074 ..............                               832

Register 34:  ADC  Sample Sequence 2 Digital Comparator Select (ADCSSDC2), offset 0x094  ..............                              832

Register 35:  ADC  Sample Sequence Input Multiplexer Select 3 (ADCSSMUX3), offset 0x0A0 ...............                              834

Register 36:  ADC  Sample Sequence Control 3 (ADCSSCTL3), offset 0x0A4 ........................................                      835

Register 37:  ADC  Sample Sequence 3 Operation (ADCSSOP3), offset 0x0B0 .....................................                        837

Register 38:  ADC  Sample Sequence 3 Digital Comparator Select (ADCSSDC3), offset 0x0B4 ..............                               838

Register 39:  ADC  Digital Comparator Reset Initial Conditions (ADCDCRIC), offset 0xD00 .....................                        839

Register 40:  ADC  Digital Comparator Control 0 (ADCDCCTL0), offset 0xE00 .......................................                    844

Register 41:  ADC  Digital Comparator Control 1 (ADCDCCTL1), offset 0xE04 .......................................                    844

Register 42:  ADC  Digital Comparator Control 2 (ADCDCCTL2), offset 0xE08 .......................................                    844

Register 43:  ADC  Digital Comparator Control 3 (ADCDCCTL3), offset 0xE0C ......................................                     844

Register 44:  ADC  Digital Comparator Control 4 (ADCDCCTL4), offset 0xE10 .......................................                    844

Register 45:  ADC  Digital Comparator Control 5 (ADCDCCTL5), offset 0xE14 .......................................                    844

Register 46:  ADC  Digital Comparator Control 6 (ADCDCCTL6), offset 0xE18 .......................................                    844

Register 47:  ADC  Digital Comparator Control 7 (ADCDCCTL7), offset 0xE1C ......................................                     844

Register 48:  ADC  Digital Comparator Range 0 (ADCDCCMP0), offset 0xE40 .......................................                      847

Register 49:  ADC  Digital Comparator Range 1 (ADCDCCMP1), offset 0xE44 .......................................                      847

Register 50:  ADC  Digital Comparator Range 2 (ADCDCCMP2), offset 0xE48 .......................................                      847

Register 51:  ADC  Digital Comparator Range 3 (ADCDCCMP3), offset 0xE4C ......................................                       847

Register 52:  ADC  Digital Comparator Range 4 (ADCDCCMP4), offset 0xE50 .......................................                      847

Register 53:  ADC  Digital Comparator Range 5 (ADCDCCMP5), offset 0xE54 .......................................                      847

Register 54:  ADC  Digital Comparator Range 6 (ADCDCCMP6), offset 0xE58 .......................................                      847

Register 55:  ADC  Digital Comparator Range 7 (ADCDCCMP7), offset 0xE5C ......................................                       847

Register 56:  ADC  Peripheral Properties (ADCPP), offset 0xFC0 ..........................................................            848

Register 57:  ADC  Peripheral Configuration (ADCPC), offset 0xFC4 .....................................................              850

Register 58:  ADC  Clock Configuration (ADCCC), offset 0xFC8 ............................................................            851

Universal Asynchronous Receivers/Transmitters (UARTs) ..................................................... 852

Register 1:   UART Data (UARTDR), offset 0x000 ............................................................................... 865

Register 2:   UART Receive Status/Error Clear (UARTRSR/UARTECR), offset 0x004 ........................... 867

Register 3:   UART Flag (UARTFR), offset 0x018 ................................................................................ 870

Register 4:   UART IrDA Low-Power Register (UARTILPR), offset 0x020 ............................................. 872

Register 5:   UART Integer Baud-Rate Divisor (UARTIBRD), offset 0x024 ............................................ 873

Register 6:   UART Fractional Baud-Rate Divisor (UARTFBRD), offset 0x028 ....................................... 874

Register 7:   UART Line Control (UARTLCRH), offset 0x02C ............................................................... 875

Register 8:   UART Control (UARTCTL), offset 0x030 ......................................................................... 877

Register 9:   UART Interrupt FIFO Level Select (UARTIFLS), offset 0x034 ........................................... 881

Register 10:  UART Interrupt Mask (UARTIM), offset 0x038 ................................................................. 883

Register 11:  UART Raw Interrupt Status (UARTRIS), offset 0x03C ...................................................... 886

Register 12:  UART Masked Interrupt Status (UARTMIS), offset 0x040 ................................................. 889

Register 13:  UART Interrupt Clear (UARTICR), offset 0x044 ............................................................... 892

Register 14:  UART DMA Control (UARTDMACTL), offset 0x048 .......................................................... 894

28                                                                                       June 12, 2014

                   Texas Instruments-Production Data
                                                        Tiva™ TM4C123FE6PM Microcontroller

Register 15:   UART  9-Bit Self Address (UART9BITADDR), offset 0x0A4 ...............................................                      895

Register 16:   UART  9-Bit Self Address Mask (UART9BITAMASK), offset 0x0A8 ....................................                           896

Register 17:   UART  Peripheral Properties (UARTPP), offset 0xFC0 ......................................................                  897

Register 18:   UART  Clock Configuration (UARTCC), offset 0xFC8 ........................................................                  898

Register 19:   UART  Peripheral Identification 4 (UARTPeriphID4), offset 0xFD0 .....................................                      899

Register 20:   UART  Peripheral Identification 5 (UARTPeriphID5), offset 0xFD4 .....................................                      900

Register 21:   UART  Peripheral Identification 6 (UARTPeriphID6), offset 0xFD8 .....................................                      901

Register 22:   UART  Peripheral Identification 7 (UARTPeriphID7), offset 0xFDC .....................................                      902

Register 23:   UART  Peripheral Identification 0 (UARTPeriphID0), offset 0xFE0 ......................................                     903

Register 24:   UART  Peripheral Identification 1 (UARTPeriphID1), offset 0xFE4 ......................................                     904

Register 25:   UART  Peripheral Identification 2 (UARTPeriphID2), offset 0xFE8 ......................................                     905

Register 26:   UART  Peripheral Identification 3 (UARTPeriphID3), offset 0xFEC .....................................                      906

Register 27:   UART  PrimeCell Identification 0 (UARTPCellID0), offset 0xFF0 ........................................                     907

Register 28:   UART  PrimeCell Identification 1 (UARTPCellID1), offset 0xFF4 ........................................                     908

Register 29:   UART  PrimeCell Identification 2 (UARTPCellID2), offset 0xFF8 ........................................                     909

Register 30:   UART  PrimeCell Identification 3 (UARTPCellID3), offset 0xFFC ........................................                     910

Synchronous Serial Interface (SSI) ............................................................................................ 911

Register 1:    SSI Control 0 (SSICR0), offset 0x000 .............................................................................. 928

Register 2:    SSI Control 1 (SSICR1), offset 0x004 .............................................................................. 930

Register 3:    SSI Data (SSIDR), offset 0x008 ...................................................................................... 932

Register 4:    SSI Status (SSISR), offset 0x00C ................................................................................... 933

Register 5:    SSI Clock Prescale (SSICPSR), offset 0x010 .................................................................. 935

Register 6:    SSI Interrupt Mask (SSIIM), offset 0x014 ......................................................................... 936

Register 7:    SSI Raw Interrupt Status (SSIRIS), offset 0x018 .............................................................. 937

Register 8:    SSI Masked Interrupt Status (SSIMIS), offset 0x01C ........................................................ 939

Register 9:    SSI Interrupt Clear (SSIICR), offset 0x020 ....................................................................... 941

Register 10:   SSI DMA Control (SSIDMACTL), offset 0x024 ................................................................. 942

Register 11:   SSI Clock Configuration (SSICC), offset 0xFC8 ............................................................... 943

Register 12:   SSI Peripheral Identification 4 (SSIPeriphID4), offset 0xFD0 ............................................. 944

Register 13:   SSI Peripheral Identification 5 (SSIPeriphID5), offset 0xFD4 ............................................. 945

Register 14:   SSI Peripheral Identification 6 (SSIPeriphID6), offset 0xFD8 ............................................. 946

Register 15:   SSI Peripheral Identification 7 (SSIPeriphID7), offset 0xFDC ............................................ 947

Register 16:   SSI Peripheral Identification 0 (SSIPeriphID0), offset 0xFE0 ............................................. 948

Register 17:   SSI Peripheral Identification 1 (SSIPeriphID1), offset 0xFE4 ............................................. 949

Register 18:   SSI Peripheral Identification 2 (SSIPeriphID2), offset 0xFE8 ............................................. 950

Register 19:   SSI Peripheral Identification 3 (SSIPeriphID3), offset 0xFEC ............................................ 951

Register 20:   SSI PrimeCell Identification 0 (SSIPCellID0), offset 0xFF0 ............................................... 952

Register 21:   SSI PrimeCell Identification 1 (SSIPCellID1), offset 0xFF4 ............................................... 953

Register 22:   SSI PrimeCell Identification 2 (SSIPCellID2), offset 0xFF8 ............................................... 954

Register 23:   SSI PrimeCell Identification 3 (SSIPCellID3), offset 0xFFC ............................................... 955

Inter-Integrated Circuit (I2C) Interface ........................................................................................ 956

Register 1:    I2C Master Slave Address (I2CMSA), offset 0x000 ........................................................... 978

Register 2:    I2C Master Control/Status (I2CMCS), offset 0x004 ........................................................... 979

Register 3:    I2C Master Data (I2CMDR), offset 0x008 ......................................................................... 984

Register 4:    I2C Master Timer Period (I2CMTPR), offset 0x00C ........................................................... 985

Register 5:    I2C Master Interrupt Mask (I2CMIMR), offset 0x010 ......................................................... 986

Register 6:    I2C Master Raw Interrupt Status (I2CMRIS), offset 0x014 ................................................. 987

June 12, 2014                                                                                                                             29

                     Texas Instruments-Production Data
Table of Contents

Register 7:   I2C  Master Masked Interrupt Status (I2CMMIS), offset 0x018 ........................................... 988

Register 8:   I2C  Master Interrupt Clear (I2CMICR), offset 0x01C ......................................................... 989

Register 9:   I2C  Master Configuration (I2CMCR), offset 0x020 ............................................................ 990

Register 10:  I2C  Master Clock Low Timeout Count (I2CMCLKOCNT), offset 0x024 ............................... 992

Register 11:  I2C  Master Bus Monitor (I2CMBMON), offset 0x02C ........................................................ 993

Register 12:  I2C  Master Configuration 2 (I2CMCR2), offset 0x038 ....................................................... 994

Register 13:  I2C  Slave Own Address (I2CSOAR), offset 0x800 ............................................................ 995

Register 14:  I2C  Slave Control/Status (I2CSCSR), offset 0x804 ........................................................... 996

Register 15:  I2C  Slave Data (I2CSDR), offset 0x808 ........................................................................... 998

Register 16:  I2C  Slave Interrupt Mask (I2CSIMR), offset 0x80C ........................................................... 999

Register 17:  I2C  Slave Raw Interrupt Status (I2CSRIS), offset 0x810 ................................................. 1000

Register 18:  I2C  Slave Masked Interrupt Status (I2CSMIS), offset 0x814 ............................................ 1001

Register 19:  I2C  Slave Interrupt Clear (I2CSICR), offset 0x818 .......................................................... 1002

Register 20:  I2C  Slave Own Address 2 (I2CSOAR2), offset 0x81C ..................................................... 1003

Register 21:  I2C  Slave ACK Control (I2CSACKCTL), offset 0x820 ...................................................... 1004

Register 22:  I2C  Peripheral Properties (I2CPP), offset 0xFC0 ............................................................ 1005

Register 23:  I2C  Peripheral Configuration (I2CPC), offset 0xFC4 ....................................................... 1006

Controller Area Network (CAN) Module ................................................................................... 1007

Register 1:   CAN Control (CANCTL), offset 0x000 ............................................................................ 1029

Register 2:   CAN Status (CANSTS), offset 0x004 ............................................................................. 1031

Register 3:   CAN Error Counter (CANERR), offset 0x008 ................................................................. 1034

Register 4:   CAN Bit Timing (CANBIT), offset 0x00C ........................................................................ 1035

Register 5:   CAN Interrupt (CANINT), offset 0x010 ........................................................................... 1036

Register 6:   CAN Test (CANTST), offset 0x014 ................................................................................ 1037

Register 7:   CAN Baud Rate Prescaler Extension (CANBRPE), offset 0x018 ..................................... 1039

Register 8:   CAN IF1 Command Request (CANIF1CRQ), offset 0x020 .............................................. 1040

Register 9:   CAN IF2 Command Request (CANIF2CRQ), offset 0x080 .............................................. 1040

Register 10:  CAN IF1 Command Mask (CANIF1CMSK), offset 0x024 ................................................ 1041

Register 11:  CAN IF2 Command Mask (CANIF2CMSK), offset 0x084 ................................................ 1041

Register 12:  CAN IF1 Mask 1 (CANIF1MSK1), offset 0x028 .............................................................. 1044

Register 13:  CAN IF2 Mask 1 (CANIF2MSK1), offset 0x088 .............................................................. 1044

Register 14:  CAN IF1 Mask 2 (CANIF1MSK2), offset 0x02C .............................................................. 1045

Register 15:  CAN IF2 Mask 2 (CANIF2MSK2), offset 0x08C .............................................................. 1045

Register 16:  CAN IF1 Arbitration 1 (CANIF1ARB1), offset 0x030 ....................................................... 1047

Register 17:  CAN IF2 Arbitration 1 (CANIF2ARB1), offset 0x090 ....................................................... 1047

Register 18:  CAN IF1 Arbitration 2 (CANIF1ARB2), offset 0x034 ....................................................... 1048

Register 19:  CAN IF2 Arbitration 2 (CANIF2ARB2), offset 0x094 ....................................................... 1048

Register 20:  CAN IF1 Message Control (CANIF1MCTL), offset 0x038 ................................................ 1050

Register 21:  CAN IF2 Message Control (CANIF2MCTL), offset 0x098 ................................................ 1050

Register 22:  CAN IF1 Data A1 (CANIF1DA1), offset 0x03C ............................................................... 1053

Register 23:  CAN IF1 Data A2 (CANIF1DA2), offset 0x040 ................................................................ 1053

Register 24:  CAN IF1 Data B1 (CANIF1DB1), offset 0x044 ................................................................ 1053

Register 25:  CAN IF1 Data B2 (CANIF1DB2), offset 0x048 ................................................................ 1053

Register 26:  CAN IF2 Data A1 (CANIF2DA1), offset 0x09C ............................................................... 1053

Register 27:  CAN IF2 Data A2 (CANIF2DA2), offset 0x0A0 ............................................................... 1053

Register 28:  CAN IF2 Data B1 (CANIF2DB1), offset 0x0A4 ............................................................... 1053

Register 29:  CAN IF2 Data B2 (CANIF2DB2), offset 0x0A8 ............................................................... 1053

30                                                    June 12, 2014

                   Texas Instruments-Production Data
                                                  Tiva™ TM4C123FE6PM Microcontroller

Register 30:   CAN Transmission Request 1 (CANTXRQ1), offset 0x100 .............................................. 1054

Register 31:   CAN Transmission Request 2 (CANTXRQ2), offset 0x104 .............................................. 1054

Register 32:   CAN New Data 1 (CANNWDA1), offset 0x120 ............................................................... 1055

Register 33:   CAN New Data 2 (CANNWDA2), offset 0x124 ............................................................... 1055

Register 34:   CAN Message 1 Interrupt Pending (CANMSG1INT), offset 0x140 ................................... 1056

Register 35:   CAN Message 2 Interrupt Pending (CANMSG2INT), offset 0x144 ................................... 1056

Register 36:   CAN Message 1 Valid (CANMSG1VAL), offset 0x160 ..................................................... 1057

Register 37:   CAN Message 2 Valid (CANMSG2VAL), offset 0x164 ..................................................... 1057

Universal Serial Bus (USB) Controller ..................................................................................... 1058

Register 1:    USB Device Functional Address (USBFADDR), offset 0x000 .......................................... 1081

Register 2:    USB Power (USBPOWER), offset 0x001 ....................................................................... 1082

Register 3:    USB Transmit Interrupt Status (USBTXIS), offset 0x002 ................................................. 1085

Register 4:    USB Receive Interrupt Status (USBRXIS), offset 0x004 ................................................. 1087

Register 5:    USB Transmit Interrupt Enable (USBTXIE), offset 0x006 ................................................ 1088

Register 6:    USB Receive Interrupt Enable (USBRXIE), offset 0x008 ................................................. 1090

Register 7:    USB General Interrupt Status (USBIS), offset 0x00A ...................................................... 1091

Register 8:    USB Interrupt Enable (USBIE), offset 0x00B .................................................................. 1094

Register 9:    USB Frame Value (USBFRAME), offset 0x00C .............................................................. 1097

Register 10:   USB Endpoint Index (USBEPIDX), offset 0x00E ............................................................ 1098

Register 11:   USB Test Mode (USBTEST), offset 0x00F ..................................................................... 1099

Register 12:   USB FIFO Endpoint 0 (USBFIFO0), offset 0x020 ........................................................... 1101

Register 13:   USB FIFO Endpoint 1 (USBFIFO1), offset 0x024 ........................................................... 1101

Register 14:   USB FIFO Endpoint 2 (USBFIFO2), offset 0x028 ........................................................... 1101

Register 15:   USB FIFO Endpoint 3 (USBFIFO3), offset 0x02C ........................................................... 1101

Register 16:   USB FIFO Endpoint 4 (USBFIFO4), offset 0x030 ........................................................... 1101

Register 17:   USB FIFO Endpoint 5 (USBFIFO5), offset 0x034 ........................................................... 1101

Register 18:   USB FIFO Endpoint 6 (USBFIFO6), offset 0x038 ........................................................... 1101

Register 19:   USB FIFO Endpoint 7 (USBFIFO7), offset 0x03C ........................................................... 1101

Register 20:   USB Device Control (USBDEVCTL), offset 0x060 .......................................................... 1102

Register 21:   USB Transmit Dynamic FIFO Sizing (USBTXFIFOSZ), offset 0x062 ................................ 1104

Register 22:   USB Receive Dynamic FIFO Sizing (USBRXFIFOSZ), offset 0x063 ................................ 1104

Register 23:   USB Transmit FIFO Start Address (USBTXFIFOADD), offset 0x064 ................................ 1105

Register 24:   USB Receive FIFO Start Address (USBRXFIFOADD), offset 0x066 ................................ 1105

Register 25:   USB Connect Timing (USBCONTIM), offset 0x07A ........................................................ 1106

Register 26:   USB OTG VBUS Pulse Timing (USBVPLEN), offset 0x07B ............................................ 1107

Register 27:   USB Full-Speed Last Transaction to End of Frame Timing (USBFSEOF), offset 0x07D .... 1108

Register 28:   USB Low-Speed Last Transaction to End of Frame Timing (USBLSEOF), offset 0x07E .... 1109

Register 29:   USB Transmit Functional Address Endpoint 0 (USBTXFUNCADDR0), offset 0x080 ......... 1110

Register 30:   USB Transmit Functional Address Endpoint 1 (USBTXFUNCADDR1), offset 0x088 ......... 1110

Register 31:   USB Transmit Functional Address Endpoint 2 (USBTXFUNCADDR2), offset 0x090 ......... 1110

Register 32:   USB Transmit Functional Address Endpoint 3 (USBTXFUNCADDR3), offset 0x098 ......... 1110

Register 33:   USB Transmit Functional Address Endpoint 4 (USBTXFUNCADDR4), offset 0x0A0 ......... 1110

Register 34:   USB Transmit Functional Address Endpoint 5 (USBTXFUNCADDR5), offset 0x0A8 ......... 1110

Register 35:   USB Transmit Functional Address Endpoint 6 (USBTXFUNCADDR6), offset 0x0B0 ......... 1110

Register 36:   USB Transmit Functional Address Endpoint 7 (USBTXFUNCADDR7), offset 0x0B8 ......... 1110

Register 37:   USB Transmit Hub Address Endpoint 0 (USBTXHUBADDR0), offset 0x082 ..................... 1111

Register 38:   USB Transmit Hub Address Endpoint 1 (USBTXHUBADDR1), offset 0x08A .................... 1111

Register 39:   USB Transmit Hub Address Endpoint 2 (USBTXHUBADDR2), offset 0x092 ..................... 1111

June 12, 2014                                                                                                                      31

               Texas Instruments-Production Data
Table of Contents

Register 40:  USB  Transmit Hub Address Endpoint 3 (USBTXHUBADDR3), offset 0x09A ....................                    1111

Register 41:  USB  Transmit Hub Address Endpoint 4 (USBTXHUBADDR4), offset 0x0A2 ....................                    1111

Register 42:  USB  Transmit Hub Address Endpoint 5 (USBTXHUBADDR5), offset 0x0AA ....................                    1111

Register 43:  USB  Transmit Hub Address Endpoint 6 (USBTXHUBADDR6), offset 0x0B2 ....................                    1111

Register 44:  USB  Transmit Hub Address Endpoint 7 (USBTXHUBADDR7), offset 0x0BA ....................                    1111

Register 45:  USB  Transmit Hub Port Endpoint 0 (USBTXHUBPORT0), offset 0x083 ...........................                1112

Register 46:  USB  Transmit Hub Port Endpoint 1 (USBTXHUBPORT1), offset 0x08B ...........................                1112

Register 47:  USB  Transmit Hub Port Endpoint 2 (USBTXHUBPORT2), offset 0x093 ...........................                1112

Register 48:  USB  Transmit Hub Port Endpoint 3 (USBTXHUBPORT3), offset 0x09B ...........................                1112

Register 49:  USB  Transmit Hub Port Endpoint 4 (USBTXHUBPORT4), offset 0x0A3 ...........................                1112

Register 50:  USB  Transmit Hub Port Endpoint 5 (USBTXHUBPORT5), offset 0x0AB ..........................                 1112

Register 51:  USB  Transmit Hub Port Endpoint 6 (USBTXHUBPORT6), offset 0x0B3 ...........................                1112

Register 52:  USB  Transmit Hub Port Endpoint 7 (USBTXHUBPORT7), offset 0x0BB ..........................                 1112

Register 53:  USB  Receive Functional Address Endpoint 1 (USBRXFUNCADDR1), offset 0x08C .........                        1113

Register 54:  USB  Receive Functional Address Endpoint 2 (USBRXFUNCADDR2), offset 0x094 .........                        1113

Register 55:  USB  Receive Functional Address Endpoint 3 (USBRXFUNCADDR3), offset 0x09C .........                        1113

Register 56:  USB  Receive Functional Address Endpoint 4 (USBRXFUNCADDR4), offset 0x0A4 .........                        1113

Register 57:  USB  Receive Functional Address Endpoint 5 (USBRXFUNCADDR5), offset 0x0AC .........                        1113

Register 58:  USB  Receive Functional Address Endpoint 6 (USBRXFUNCADDR6), offset 0x0B4 .........                        1113

Register 59:  USB  Receive Functional Address Endpoint 7 (USBRXFUNCADDR7), offset 0x0BC .........                        1113

Register 60:  USB  Receive Hub Address Endpoint 1 (USBRXHUBADDR1), offset 0x08E .....................                    1114

Register 61:  USB  Receive Hub Address Endpoint 2 (USBRXHUBADDR2), offset 0x096 .....................                    1114

Register 62:  USB  Receive Hub Address Endpoint 3 (USBRXHUBADDR3), offset 0x09E .....................                    1114

Register 63:  USB  Receive Hub Address Endpoint 4 (USBRXHUBADDR4), offset 0x0A6 .....................                    1114

Register 64:  USB  Receive Hub Address Endpoint 5 (USBRXHUBADDR5), offset 0x0AE ....................                     1114

Register 65:  USB  Receive Hub Address Endpoint 6 (USBRXHUBADDR6), offset 0x0B6 .....................                    1114

Register 66:  USB  Receive Hub Address Endpoint 7 (USBRXHUBADDR7), offset 0x0BE ....................                     1114

Register 67:  USB  Receive Hub Port Endpoint 1 (USBRXHUBPORT1), offset 0x08F ...........................                 1115

Register 68:  USB  Receive Hub Port Endpoint 2 (USBRXHUBPORT2), offset 0x097 ...........................                 1115

Register 69:  USB  Receive Hub Port Endpoint 3 (USBRXHUBPORT3), offset 0x09F ...........................                 1115

Register 70:  USB  Receive Hub Port Endpoint 4 (USBRXHUBPORT4), offset 0x0A7 ...........................                 1115

Register 71:  USB  Receive Hub Port Endpoint 5 (USBRXHUBPORT5), offset 0x0AF ...........................                 1115

Register 72:  USB  Receive Hub Port Endpoint 6 (USBRXHUBPORT6), offset 0x0B7 ...........................                 1115

Register 73:  USB  Receive Hub Port Endpoint 7 (USBRXHUBPORT7), offset 0x0BF ...........................                 1115

Register 74:  USB  Maximum Transmit Data Endpoint 1 (USBTXMAXP1), offset 0x110 .........................                 1116

Register 75:  USB  Maximum Transmit Data Endpoint 2 (USBTXMAXP2), offset 0x120 ........................                  1116

Register 76:  USB  Maximum Transmit Data Endpoint 3 (USBTXMAXP3), offset 0x130 ........................                  1116

Register 77:  USB  Maximum Transmit Data Endpoint 4 (USBTXMAXP4), offset 0x140 ........................                  1116

Register 78:  USB  Maximum Transmit Data Endpoint 5 (USBTXMAXP5), offset 0x150 ........................                  1116

Register 79:  USB  Maximum Transmit Data Endpoint 6 (USBTXMAXP6), offset 0x160 ........................                  1116

Register 80:  USB  Maximum Transmit Data Endpoint 7 (USBTXMAXP7), offset 0x170 ........................                  1116

Register 81:  USB  Control and Status Endpoint 0 Low (USBCSRL0), offset 0x102 ...............................            1117

Register 82:  USB  Control and Status Endpoint 0 High (USBCSRH0), offset 0x103 .............................             1121

Register 83:  USB  Receive Byte Count Endpoint 0 (USBCOUNT0), offset 0x108 .................................             1123

Register 84:  USB  Type Endpoint 0 (USBTYPE0), offset 0x10A ..........................................................   1124

Register 85:  USB  NAK Limit (USBNAKLMT), offset 0x10B ................................................................  1125

Register 86:  USB  Transmit Control and Status Endpoint 1 Low (USBTXCSRL1), offset 0x112 .............                   1126

Register 87:  USB  Transmit Control and Status Endpoint 2 Low (USBTXCSRL2), offset 0x122 .............                   1126

32                                                    June 12, 2014

                   Texas Instruments-Production Data
                                                       Tiva™ TM4C123FE6PM Microcontroller

Register 88:   USB  Transmit Control and Status Endpoint 3 Low (USBTXCSRL3), offset 0x132 .............      1126

Register 89:   USB  Transmit Control and Status Endpoint 4 Low (USBTXCSRL4), offset 0x142 .............      1126

Register 90:   USB  Transmit Control and Status Endpoint 5 Low (USBTXCSRL5), offset 0x152 .............      1126

Register 91:   USB  Transmit Control and Status Endpoint 6 Low (USBTXCSRL6), offset 0x162 .............      1126

Register 92:   USB  Transmit Control and Status Endpoint 7 Low (USBTXCSRL7), offset 0x172 .............      1126

Register 93:   USB  Transmit Control and Status Endpoint 1 High (USBTXCSRH1), offset 0x113 ............      1130

Register 94:   USB  Transmit Control and Status Endpoint 2 High (USBTXCSRH2), offset 0x123 ...........       1130

Register 95:   USB  Transmit Control and Status Endpoint 3 High (USBTXCSRH3), offset 0x133 ...........       1130

Register 96:   USB  Transmit Control and Status Endpoint 4 High (USBTXCSRH4), offset 0x143 ...........       1130

Register 97:   USB  Transmit Control and Status Endpoint 5 High (USBTXCSRH5), offset 0x153 ...........       1130

Register 98:   USB  Transmit Control and Status Endpoint 6 High (USBTXCSRH6), offset 0x163 ...........       1130

Register 99:   USB  Transmit Control and Status Endpoint 7 High (USBTXCSRH7), offset 0x173 ...........       1130

Register 100:  USB  Maximum Receive Data Endpoint 1 (USBRXMAXP1), offset 0x114 .........................     1134

Register 101:  USB  Maximum Receive Data Endpoint 2 (USBRXMAXP2), offset 0x124 .........................     1134

Register 102:  USB  Maximum Receive Data Endpoint 3 (USBRXMAXP3), offset 0x134 .........................     1134

Register 103:  USB  Maximum Receive Data Endpoint 4 (USBRXMAXP4), offset 0x144 .........................     1134

Register 104:  USB  Maximum Receive Data Endpoint 5 (USBRXMAXP5), offset 0x154 .........................     1134

Register 105:  USB  Maximum Receive Data Endpoint 6 (USBRXMAXP6), offset 0x164 .........................     1134

Register 106:  USB  Maximum Receive Data Endpoint 7 (USBRXMAXP7), offset 0x174 .........................     1134

Register 107:  USB  Receive Control and Status Endpoint 1 Low (USBRXCSRL1), offset 0x116 .............       1135

Register 108:  USB  Receive Control and Status Endpoint 2 Low (USBRXCSRL2), offset 0x126 .............       1135

Register 109:  USB  Receive Control and Status Endpoint 3 Low (USBRXCSRL3), offset 0x136 .............       1135

Register 110:  USB  Receive Control and Status Endpoint 4 Low (USBRXCSRL4), offset 0x146 .............       1135

Register 111:  USB  Receive Control and Status Endpoint 5 Low (USBRXCSRL5), offset 0x156 .............       1135

Register 112:  USB  Receive Control and Status Endpoint 6 Low (USBRXCSRL6), offset 0x166 .............       1135

Register 113:  USB  Receive Control and Status Endpoint 7 Low (USBRXCSRL7), offset 0x176 .............       1135

Register 114:  USB  Receive Control and Status Endpoint 1 High (USBRXCSRH1), offset 0x117 ............       1140

Register 115:  USB  Receive Control and Status Endpoint 2 High (USBRXCSRH2), offset 0x127 ............       1140

Register 116:  USB  Receive Control and Status Endpoint 3 High (USBRXCSRH3), offset 0x137 ............       1140

Register 117:  USB  Receive Control and Status Endpoint 4 High (USBRXCSRH4), offset 0x147 ............       1140

Register 118:  USB  Receive Control and Status Endpoint 5 High (USBRXCSRH5), offset 0x157 ............       1140

Register 119:  USB  Receive Control and Status Endpoint 6 High (USBRXCSRH6), offset 0x167 ............       1140

Register 120:  USB  Receive Control and Status Endpoint 7 High (USBRXCSRH7), offset 0x177 ............       1140

Register 121:  USB  Receive Byte Count Endpoint 1 (USBRXCOUNT1), offset 0x118 .............................  1144

Register 122:  USB  Receive Byte Count Endpoint 2 (USBRXCOUNT2), offset 0x128 ............................   1144

Register 123:  USB  Receive Byte Count Endpoint 3 (USBRXCOUNT3), offset 0x138 ............................   1144

Register 124:  USB  Receive Byte Count Endpoint 4 (USBRXCOUNT4), offset 0x148 ............................   1144

Register 125:  USB  Receive Byte Count Endpoint 5 (USBRXCOUNT5), offset 0x158 ............................   1144

Register 126:  USB  Receive Byte Count Endpoint 6 (USBRXCOUNT6), offset 0x168 ............................   1144

Register 127:  USB  Receive Byte Count Endpoint 7 (USBRXCOUNT7), offset 0x178 ............................   1144

Register 128:  USB  Host Transmit Configure Type Endpoint 1 (USBTXTYPE1), offset 0x11A .................     1145

Register 129:  USB  Host Transmit Configure Type Endpoint 2 (USBTXTYPE2), offset 0x12A .................     1145

Register 130:  USB  Host Transmit Configure Type Endpoint 3 (USBTXTYPE3), offset 0x13A .................     1145

Register 131:  USB  Host Transmit Configure Type Endpoint 4 (USBTXTYPE4), offset 0x14A .................     1145

Register 132:  USB  Host Transmit Configure Type Endpoint 5 (USBTXTYPE5), offset 0x15A .................     1145

Register 133:  USB  Host Transmit Configure Type Endpoint 6 (USBTXTYPE6), offset 0x16A .................     1145

Register 134:  USB  Host Transmit Configure Type Endpoint 7 (USBTXTYPE7), offset 0x17A .................     1145

Register 135:  USB  Host Transmit Interval Endpoint 1 (USBTXINTERVAL1), offset 0x11B .....................   1147

June 12, 2014                                                                                                33

                    Texas Instruments-Production Data
Table of Contents

Register  136:  USB Host Transmit Interval Endpoint 2 (USBTXINTERVAL2), offset 0x12B .....................                                        1147

Register  137:  USB Host Transmit Interval Endpoint 3 (USBTXINTERVAL3), offset 0x13B .....................                                        1147

Register  138:  USB Host Transmit Interval Endpoint 4 (USBTXINTERVAL4), offset 0x14B .....................                                        1147

Register  139:  USB Host Transmit Interval Endpoint 5 (USBTXINTERVAL5), offset 0x15B .....................                                        1147

Register  140:  USB Host Transmit Interval Endpoint 6 (USBTXINTERVAL6), offset 0x16B .....................                                        1147

Register  141:  USB Host Transmit Interval Endpoint 7 (USBTXINTERVAL7), offset 0x17B .....................                                        1147

Register  142:  USB Host Configure Receive Type Endpoint 1 (USBRXTYPE1), offset 0x11C .................                                           1148

Register  143:  USB Host Configure Receive Type Endpoint 2 (USBRXTYPE2), offset 0x12C .................                                           1148

Register  144:  USB Host Configure Receive Type Endpoint 3 (USBRXTYPE3), offset 0x13C .................                                           1148

Register  145:  USB Host Configure Receive Type Endpoint 4 (USBRXTYPE4), offset 0x14C .................                                           1148

Register  146:  USB Host Configure Receive Type Endpoint 5 (USBRXTYPE5), offset 0x15C .................                                           1148

Register  147:  USB Host Configure Receive Type Endpoint 6 (USBRXTYPE6), offset 0x16C .................                                           1148

Register  148:  USB Host Configure Receive Type Endpoint 7 (USBRXTYPE7), offset 0x17C .................                                           1148

Register  149:  USB Host Receive Polling Interval Endpoint 1 (USBRXINTERVAL1), offset 0x11D ...........                                           1150

Register  150:  USB Host Receive Polling Interval Endpoint 2 (USBRXINTERVAL2), offset 0x12D ...........                                           1150

Register  151:  USB Host Receive Polling Interval Endpoint 3 (USBRXINTERVAL3), offset 0x13D ...........                                           1150

Register  152:  USB Host Receive Polling Interval Endpoint 4 (USBRXINTERVAL4), offset 0x14D ...........                                           1150

Register  153:  USB Host Receive Polling Interval Endpoint 5 (USBRXINTERVAL5), offset 0x15D ...........                                           1150

Register  154:  USB Host Receive Polling Interval Endpoint 6 (USBRXINTERVAL6), offset 0x16D ...........                                           1150

Register  155:  USB Host Receive Polling Interval Endpoint 7 (USBRXINTERVAL7), offset 0x17D ...........                                           1150

Register  156:  USB Request Packet Count in Block Transfer Endpoint 1 (USBRQPKTCOUNT1), offset

                0x304 ..........................................................................................................................  1151

Register  157:  USB Request Packet Count in Block Transfer Endpoint 2 (USBRQPKTCOUNT2), offset

                0x308 ..........................................................................................................................  1151

Register  158:  USB Request Packet Count in Block Transfer Endpoint 3 (USBRQPKTCOUNT3), offset

                0x30C .........................................................................................................................   1151

Register  159:  USB Request Packet Count in Block Transfer Endpoint 4 (USBRQPKTCOUNT4), offset

                0x310 ..........................................................................................................................  1151

Register  160:  USB Request Packet Count in Block Transfer Endpoint 5 (USBRQPKTCOUNT5), offset

                0x314 ..........................................................................................................................  1151

Register  161:  USB Request Packet Count in Block Transfer Endpoint 6 (USBRQPKTCOUNT6), offset

                0x318 ..........................................................................................................................  1151

Register  162:  USB Request Packet Count in Block Transfer Endpoint 7 (USBRQPKTCOUNT7), offset

                0x31C .........................................................................................................................   1151

Register  163:  USB Receive Double Packet Buffer Disable (USBRXDPKTBUFDIS), offset 0x340 ...........                                              1152

Register  164:  USB Transmit Double Packet Buffer Disable (USBTXDPKTBUFDIS), offset 0x342 ..........                                              1153

Register  165:  USB External Power Control (USBEPC), offset 0x400 ....................................................                            1154

Register  166:  USB External Power Control Raw Interrupt Status (USBEPCRIS), offset 0x404 ...............                                         1157

Register  167:  USB External Power Control Interrupt Mask (USBEPCIM), offset 0x408 ..........................                                     1158

Register  168:  USB External Power Control Interrupt Status and Clear (USBEPCISC), offset 0x40C .......                                           1159

Register  169:  USB Device RESUME Raw Interrupt Status (USBDRRIS), offset 0x410 ..........................                                        1160

Register  170:  USB Device RESUME Interrupt Mask (USBDRIM), offset 0x414 .....................................                                    1161

Register  171:  USB Device RESUME Interrupt Status and Clear (USBDRISC), offset 0x418 ..................                                          1162

Register  172:  USB General-Purpose Control and Status (USBGPCS), offset 0x41C .............................                                      1163

Register  173:  USB VBUS Droop Control (USBVDC), offset 0x430 .......................................................                             1164

Register  174:  USB VBUS Droop Control Raw Interrupt Status (USBVDCRIS), offset 0x434 ..................                                          1165

Register  175:  USB VBUS Droop Control Interrupt Mask (USBVDCIM), offset 0x438 .............................                                      1166

Register  176:  USB VBUS Droop Control Interrupt Status and Clear (USBVDCISC), offset 0x43C ..........                                            1167

Register  177:  USB ID Valid Detect Raw Interrupt Status (USBIDVRIS), offset 0x444 .............................                                  1168

34                                                    June 12, 2014

                   Texas Instruments-Production Data
                                                  Tiva™ TM4C123FE6PM Microcontroller

Register 178:  USB ID Valid Detect Interrupt Mask (USBIDVIM), offset 0x448 ........................................ 1169

Register 179:  USB ID Valid Detect Interrupt Status and Clear (USBIDVISC), offset 0x44C .................... 1170

Register 180:  USB DMA Select (USBDMASEL), offset 0x450 .............................................................. 1171

Register 181:  USB Peripheral Properties (USBPP), offset 0xFC0 ........................................................ 1173

Analog Comparators ................................................................................................................. 1174

Register 1:    Analog Comparator Masked Interrupt Status (ACMIS), offset 0x000 ................................ 1181

Register 2:    Analog Comparator Raw Interrupt Status (ACRIS), offset 0x004 ..................................... 1182

Register 3:    Analog Comparator Interrupt Enable (ACINTEN), offset 0x008 ....................................... 1183

Register 4:    Analog Comparator Reference Voltage Control (ACREFCTL), offset 0x010 ..................... 1184

Register 5:    Analog Comparator Status 0 (ACSTAT0), offset 0x020 ................................................... 1185

Register 6:    Analog Comparator Status 1 (ACSTAT1), offset 0x040 ................................................... 1185

Register 7:    Analog Comparator Control 0 (ACCTL0), offset 0x024 ................................................... 1186

Register 8:    Analog Comparator Control 1 (ACCTL1), offset 0x044 ................................................... 1186

Register 9:    Analog Comparator Peripheral Properties (ACMPPP), offset 0xFC0 ................................ 1188

Pulse Width Modulator (PWM) .................................................................................................. 1189

Register 1:    PWM Master Control (PWMCTL), offset 0x000 .............................................................. 1203

Register 2:    PWM Time Base Sync (PWMSYNC), offset 0x004 ......................................................... 1205

Register 3:    PWM Output Enable (PWMENABLE), offset 0x008 ........................................................ 1206

Register 4:    PWM Output Inversion (PWMINVERT), offset 0x00C ..................................................... 1208

Register 5:    PWM Output Fault (PWMFAULT), offset 0x010 .............................................................. 1210

Register 6:    PWM Interrupt Enable (PWMINTEN), offset 0x014 ......................................................... 1212

Register 7:    PWM Raw Interrupt Status (PWMRIS), offset 0x018 ...................................................... 1214

Register 8:    PWM Interrupt Status and Clear (PWMISC), offset 0x01C .............................................. 1217

Register 9:    PWM Status (PWMSTATUS), offset 0x020 .................................................................... 1220

Register 10:   PWM Fault Condition Value (PWMFAULTVAL), offset 0x024 ........................................... 1222

Register 11:   PWM Enable Update (PWMENUPD), offset 0x028 ......................................................... 1224

Register 12:   PWM0 Control (PWM0CTL), offset 0x040 ...................................................................... 1228

Register 13:   PWM1 Control (PWM1CTL), offset 0x080 ...................................................................... 1228

Register 14:   PWM2 Control (PWM2CTL), offset 0x0C0 ..................................................................... 1228

Register 15:   PWM3 Control (PWM3CTL), offset 0x100 ...................................................................... 1228

Register 16:   PWM0 Interrupt and Trigger Enable (PWM0INTEN), offset 0x044 ................................... 1233

Register 17:   PWM1 Interrupt and Trigger Enable (PWM1INTEN), offset 0x084 ................................... 1233

Register 18:   PWM2 Interrupt and Trigger Enable (PWM2INTEN), offset 0x0C4 ................................... 1233

Register 19:   PWM3 Interrupt and Trigger Enable (PWM3INTEN), offset 0x104 ................................... 1233

Register 20:   PWM0 Raw Interrupt Status (PWM0RIS), offset 0x048 ................................................... 1236

Register 21:   PWM1 Raw Interrupt Status (PWM1RIS), offset 0x088 ................................................... 1236

Register 22:   PWM2 Raw Interrupt Status (PWM2RIS), offset 0x0C8 .................................................. 1236

Register 23:   PWM3 Raw Interrupt Status (PWM3RIS), offset 0x108 ................................................... 1236

Register 24:   PWM0 Interrupt Status and Clear (PWM0ISC), offset 0x04C .......................................... 1238

Register 25:   PWM1 Interrupt Status and Clear (PWM1ISC), offset 0x08C .......................................... 1238

Register 26:   PWM2 Interrupt Status and Clear (PWM2ISC), offset 0x0CC .......................................... 1238

Register 27:   PWM3 Interrupt Status and Clear (PWM3ISC), offset 0x10C .......................................... 1238

Register 28:   PWM0 Load (PWM0LOAD), offset 0x050 ...................................................................... 1240

Register 29:   PWM1 Load (PWM1LOAD), offset 0x090 ...................................................................... 1240

Register 30:   PWM2 Load (PWM2LOAD), offset 0x0D0 ...................................................................... 1240

Register 31:   PWM3 Load (PWM3LOAD), offset 0x110 ...................................................................... 1240

Register 32:   PWM0 Counter (PWM0COUNT), offset 0x054 ............................................................... 1241

Register 33:   PWM1 Counter (PWM1COUNT), offset 0x094 ............................................................... 1241

June 12, 2014                                                                                                                              35

               Texas Instruments-Production Data
Table of Contents

Register 34:  PWM2  Counter (PWM2COUNT), offset 0x0D4 ..............................................................   1241

Register 35:  PWM3  Counter (PWM3COUNT), offset 0x114 ...............................................................  1241

Register 36:  PWM0  Compare A (PWM0CMPA), offset 0x058 ............................................................    1242

Register 37:  PWM1  Compare A (PWM1CMPA), offset 0x098 ............................................................    1242

Register 38:  PWM2  Compare A (PWM2CMPA), offset 0x0D8 ............................................................    1242

Register 39:  PWM3  Compare A (PWM3CMPA), offset 0x118 .............................................................   1242

Register 40:  PWM0  Compare B (PWM0CMPB), offset 0x05C ............................................................    1243

Register 41:  PWM1  Compare B (PWM1CMPB), offset 0x09C ............................................................    1243

Register 42:  PWM2  Compare B (PWM2CMPB), offset 0x0DC ...........................................................     1243

Register 43:  PWM3  Compare B (PWM3CMPB), offset 0x11C ............................................................    1243

Register 44:  PWM0  Generator A Control (PWM0GENA), offset 0x060 ...............................................       1244

Register 45:  PWM1  Generator A Control (PWM1GENA), offset 0x0A0 ...............................................       1244

Register 46:  PWM2  Generator A Control (PWM2GENA), offset 0x0E0 ...............................................       1244

Register 47:  PWM3  Generator A Control (PWM3GENA), offset 0x120 ...............................................       1244

Register 48:  PWM0  Generator B Control (PWM0GENB), offset 0x064 ...............................................       1247

Register 49:  PWM1  Generator B Control (PWM1GENB), offset 0x0A4 ...............................................       1247

Register 50:  PWM2  Generator B Control (PWM2GENB), offset 0x0E4 ...............................................       1247

Register 51:  PWM3  Generator B Control (PWM3GENB), offset 0x124 ...............................................       1247

Register 52:  PWM0  Dead-Band Control (PWM0DBCTL), offset 0x068 ...............................................        1250

Register 53:  PWM1  Dead-Band Control (PWM1DBCTL), offset 0x0A8 ...............................................        1250

Register 54:  PWM2  Dead-Band Control (PWM2DBCTL), offset 0x0E8 ...............................................        1250

Register 55:  PWM3  Dead-Band Control (PWM3DBCTL), offset 0x128 ...............................................        1250

Register 56:  PWM0  Dead-Band Rising-Edge Delay (PWM0DBRISE), offset 0x06C ............................                1251

Register 57:  PWM1  Dead-Band Rising-Edge Delay (PWM1DBRISE), offset 0x0AC ............................                1251

Register 58:  PWM2  Dead-Band Rising-Edge Delay (PWM2DBRISE), offset 0x0EC ............................                1251

Register 59:  PWM3  Dead-Band Rising-Edge Delay (PWM3DBRISE), offset 0x12C ............................                1251

Register 60:  PWM0  Dead-Band Falling-Edge-Delay (PWM0DBFALL), offset 0x070 ............................               1252

Register 61:  PWM1  Dead-Band Falling-Edge-Delay (PWM1DBFALL), offset 0x0B0 ............................               1252

Register 62:  PWM2  Dead-Band Falling-Edge-Delay (PWM2DBFALL), offset 0x0F0 ............................               1252

Register 63:  PWM3  Dead-Band Falling-Edge-Delay (PWM3DBFALL), offset 0x130 ............................               1252

Register 64:  PWM0  Fault Source 0 (PWM0FLTSRC0), offset 0x074 ..................................................      1253

Register 65:  PWM1  Fault Source 0 (PWM1FLTSRC0), offset 0x0B4 ..................................................      1253

Register 66:  PWM2  Fault Source 0 (PWM2FLTSRC0), offset 0x0F4 ..................................................      1253

Register 67:  PWM3  Fault Source 0 (PWM3FLTSRC0), offset 0x134 ..................................................      1253

Register 68:  PWM0  Fault Source 1 (PWM0FLTSRC1), offset 0x078 ..................................................      1255

Register 69:  PWM1  Fault Source 1 (PWM1FLTSRC1), offset 0x0B8 ..................................................      1255

Register 70:  PWM2  Fault Source 1 (PWM2FLTSRC1), offset 0x0F8 ..................................................      1255

Register 71:  PWM3  Fault Source 1 (PWM3FLTSRC1), offset 0x138 ..................................................      1255

Register 72:  PWM0  Minimum Fault Period (PWM0MINFLTPER), offset 0x07C ...................................             1258

Register 73:  PWM1  Minimum Fault Period (PWM1MINFLTPER), offset 0x0BC ...................................             1258

Register 74:  PWM2  Minimum Fault Period (PWM2MINFLTPER), offset 0x0FC ...................................             1258

Register 75:  PWM3  Minimum Fault Period (PWM3MINFLTPER), offset 0x13C ...................................             1258

Register 76:  PWM0  Fault Pin Logic Sense (PWM0FLTSEN), offset 0x800 ..........................................        1259

Register 77:  PWM1  Fault Pin Logic Sense (PWM1FLTSEN), offset 0x880 ..........................................        1259

Register 78:  PWM2  Fault Pin Logic Sense (PWM2FLTSEN), offset 0x900 ..........................................        1259

Register 79:  PWM3  Fault Pin Logic Sense (PWM3FLTSEN), offset 0x980 ..........................................        1259

Register 80:  PWM0  Fault Status 0 (PWM0FLTSTAT0), offset 0x804 ...................................................    1260

Register 81:  PWM1  Fault Status 0 (PWM1FLTSTAT0), offset 0x884 ...................................................    1260

36                                                     June 12, 2014

                    Texas Instruments-Production Data
                                                  Tiva™ TM4C123FE6PM Microcontroller

Register 82:   PWM2 Fault Status 0 (PWM2FLTSTAT0), offset 0x904 ................................................... 1260

Register 83:   PWM3 Fault Status 0 (PWM3FLTSTAT0), offset 0x984 ................................................... 1260

Register 84:   PWM0 Fault Status 1 (PWM0FLTSTAT1), offset 0x808 ................................................... 1262

Register 85:   PWM1 Fault Status 1 (PWM1FLTSTAT1), offset 0x888 ................................................... 1262

Register 86:   PWM2 Fault Status 1 (PWM2FLTSTAT1), offset 0x908 ................................................... 1262

Register 87:   PWM3 Fault Status 1 (PWM3FLTSTAT1), offset 0x988 ................................................... 1262

Register 88:   PWM Peripheral Properties (PWMPP), offset 0xFC0 ...................................................... 1265

Quadrature     Encoder Interface (QEI) ........................................................................................ 1267

Register 1:    QEI Control (QEICTL), offset 0x000 .............................................................................. 1274

Register 2:    QEI Status (QEISTAT), offset 0x004 .............................................................................. 1277

Register 3:    QEI Position (QEIPOS), offset 0x008 ............................................................................ 1278

Register 4:    QEI Maximum Position (QEIMAXPOS), offset 0x00C ..................................................... 1279

Register 5:    QEI Timer Load (QEILOAD), offset 0x010 ..................................................................... 1280

Register 6:    QEI Timer (QEITIME), offset 0x014 ............................................................................... 1281

Register 7:    QEI Velocity Counter (QEICOUNT), offset 0x018 ........................................................... 1282

Register 8:    QEI Velocity (QEISPEED), offset 0x01C ........................................................................ 1283

Register 9:    QEI Interrupt Enable (QEIINTEN), offset 0x020 ............................................................. 1284

Register 10:   QEI Raw Interrupt Status (QEIRIS), offset 0x024 ........................................................... 1286

Register 11:   QEI Interrupt Status and Clear (QEIISC), offset 0x028 ................................................... 1288

June 12, 2014                                                                                                                          37

               Texas Instruments-Production Data
Revision History

Revision History

               The revision history table notes changes made between the indicated revisions of the

               TM4C123FE6PM data sheet.

Table 1. Revision History

    Date          Revision    Description

    June 2014     15842.2741  ■  In System Control Chapter, corrected description for MINSYSDIV bitfield in Device Capabilities 1

                                 (DC1) legacy register.

                              ■  In Timers chapter, removed erroneous references to TCACT bit field.

                              ■  In SSI chapter, corrected that during idle periods the transmit data line SSInTx is tristated.

                              ■  In Package Information appendix:

                                 –  Corrected Key to Part Numbers diagram.

                                 –  Moved Orderable Part Numbers table to addendum.

                                 –  Deleted Packaging Materials section and put into separate packaging document.

                              ■  Additional minor data sheet clarifications and corrections.

    March 2014    15741.2722  ■  In the Internal Memory chapter, in the EEPROM section:

                                 –  Added section on soft reset handling.

                                 –  Added important information on EEPROM initialization and configuration.

                              ■  In the DMA chapter, added information regarding interrupts and transfers from the UART or SSI

                                 modules.

                              ■  In the GPIO chapter:

                                 –  Corrected table GPIO Pins with Special Considerations.

                                 –  Added information on preventing false interrupts.

                                 –  Corrected GPIOAMSEL register to be 8 bits.

                              ■  In the Timer chapter:

                                 –  Clarified initialization and configuration for Input-Edge Count mode.

                                 –  Clarified behavior of TnMIE and TnCINTD bits in the GPTM Timer n Mode (GPTMTnMR)

                                    register.

                              ■  In the USB chapter, added note to SUSPEND section regarding bus-powered devices.

                              ■  In the Electrical Characteristics chapter:

                                 –  In table Reset Characteristics, clarified internal reset time parameter values.

                                 –  In table Hibernation Oscillator Input Characteristics, added parameter CINSE Input capacitance.

                                 –  In tables Hibernation Oscillator Input Characteristics and Main Oscillator Input Characteristics,

                                    removed parameter C0 Crystal shunt capacitance.

                                 –  Updated table Crystal Parameters.

                                 –  In table GPIO Module Characteristics, added parameter CGPIO GPIO Digital Input Capacitance.

                                 –  Added table PWM Timing Characteristics.

                              ■  In the Package Information appendix:

                                 –  Updated Orderable Devices section to reflect silicon revision 7 part numbers.

                                 –  Added Tape and Reel pin 1 location.

                              ■  Additional minor data sheet clarifications and corrections.

November 2013     15553.2700  ■  In System Control chapter, clarified PIOSC features and accuracy.

                              ■  In Watchdog Timers chapter, clarified Watchdog Control (WDTCTL) register description.

                              ■  In ADC chapter:

38                                                                                                                   June 12, 2014

                                           Texas Instruments-Production Data
                                                                                    Tiva™ TM4C123FE6PM Microcontroller

Table 1. Revision History  (continued)

Date           Revision    Description

                              –  Clarified functionality when using an ADC digital comparator as a fault source.

                              –  Clarified signals used for ADC voltage reference.

                              –  Clarified ADC Trigger Source Select (ADCTSSEL) register description.

                              –  Corrected VREF bit in ADC Control (ADCCTL) register from 2-bit field [1:0] to 1-bit field [0].

                           ■  In UART chapter, clarified DMA operation.

                           ■  In SSI chapter:

                              –  Corrected timing guidelines in figures "Freescale SPI Frame Format (Continuous Transfer) with

                                 SPO=1 and SPH=0" and "Freescale SPI Format (Continuous Transfer) with SPO=0 and SPH=0".

                              –  Clarified SSI Initialization and Configuration.

                              –  Corrected bit 3 in SSI Control 1 (SSICR1) register from SOD (SSI Slave Mode Output Disable)

                                 to reserved.

                           ■  In PWM chapter, added clarifications to PWM0 Control (PWM0CTL), PWM0 Interrupt Status and

                              Clear (PWM0ISC), PWM0 Counter (PWM0COUNT), PWM0 Fault Status 0 (PWM0FLTSTAT0),

                              and PWM0 Fault Status 1 (PWM0FLTSTAT1) registers.

                           ■  In Signal Tables chapter:

                              –  In Unused Signals table, corrected preferred and acceptable practices for RST pin.

                              –  Clarified GNDX pin description.

                           ■  In Electrical Characteristics chapter:

                              –  In Power-On and Brown-Out Levels table, corrected TVDDC_RISE parameter min and max values.

                              –  In PIOSC Clock Characteristics table, clarified FPIOSC parameter values by defining values for

                                 both factory calibration and recalibration. Also added PIOSC startup time parameter to table.

                              –  In Main Oscillator Specifications section, corrected minimum value for External load capacitance

                                 on OSC0, OSC1 pins. Also added two 25-MHz crystals to Crystal Parameters table.

                              –  Corrected figure "Master Mode SSI Timing for SPI Frame Format (FRF=00), with SPH=1".

                              –  In I2C Characteristics table, clarified TDH data hold time parameter values by defining values

                                 for both slave and master. In addition, added parameter I10 TDV data valid.

                              –  Modified figure "I2C Timing" to add new parameter I10.

                           ■  In Packaging Information appendix, added Packaging Materials figures.

July 16, 2013  15033.2672  ■  In the Electrical Characteristics chapter:

                              –  Added maximum junction temperature to Maximum Ratings table. Also moved Unpowered

                                 storage temperature range parameter to this table.

                              –  In SSI Characteristics table, corrected values for TRXDMS, TRXDMH, and TRXDSSU. Also clarified

                                 footnotes to table.

                              –  Corrected parameter numbers in figures "Master Mode SSI Timing for SPI Frame Format

                                 (FRF=00), with SPH=1" and "Slave Mode SSI Timing for SPI Frame Format (FRF=00), with

                                 SPH=1".

                           ■  Additional minor data sheet clarifications and corrections.

June 12, 2014                                                                                                                      39

                                        Texas Instruments-Production Data
Revision History

Table 1. Revision History     (continued)

    Date          Revision    Description

    July 2013     14995.2667  ■  Deleted erroneous references to the PWM Peripheral Configuration (PWMPC) register.

                              ■  In the System Control chapter, corrected resets for bits [7:4] in System Properties (SYSPROP)

                                 register.

                              ■  In the Internal Memory chapter, removed the INVPL bit from the EEPROM Done Status (EEDONE)

                                 register.

                              ■  In the uDMA chapter, in the µDMA Channel Assignments table, corrected names of timers 6-11 to

                                 wide timers 0-5.

                              ■  In the Timers chapter:

                                 –  Clarified that the timer must be configured for one-shot or periodic time-out mode to produce

                                    an ADC trigger assertion and that the GPTM does not generate triggers for match, compare

                                    events or compare match events.

                                 –  Added a step in the RTC Mode initialization and configuration: If the timer has been operating

                                    in a different mode prior to this, clear any residual set bits in the GPTM Timer n Mode

                                    (GPTMTnMR) register before reconfiguring.

                              ■  In the Watchdog Timer chapter, added a note that locking the watchdog registers using the

                                 WDTLOCK register does not affect the WDTICR register and allows interrupts to always be serviced.

                              ■  In the SSI chapter, clarified note in Bit Rate Generation section to indicate that the System Clock

                                 or the PIOSC can be used as the source for SSIClk. Also corrected to indicate maximum SSIClk

                                 limit in SSI slave mode as well as the fact that SYSCLK has to be at least 12 times that of SSICLk.

                              ■  In the PWM chapter, clarified that the PWM has two clock sources, selected by the USPWMDIV bit

                                 in the Run-Mode Clock Configuration (RCC) register.

                              ■  In the QEI chapter, noted that the INTERROR bit is only applicable when the QEI is operating in

                                 quadrature phase mode (SIGMODE=0) and should be masked when SIGMODE=1. Similarly, the

                                 INTDIR bit is only applicable when the QEI is operating in clock/direction mode (SIGMODE=1) and

                                 should be masked when SIGMODE=0.

                              ■  In the Electrical Characteristics chapter:

                                 –  Moved Maximum Ratings and ESD Absolute Maximum Ratings to the front of the chapter.

                                 –  Added VBATRMP parameter to Maximum Ratings and Hibernation Module Battery Characteristics

                                    tables.

                                 –  Added ambient and junction temperatures to Temperature Characteristics table and clarified

                                    values in Thermal Characteristics table.

                                 –  Added clarifying footnote to VVDD_POK parameter in Power-On and Brown-Out Levels table.

                                 –  In the Flash Memory and EEPROM Characteristics tables, added a parameter for page/mass

                                    erase times for 10k cycles and corrected existing values for all page and mass erase parameters.

                                 –  Corrected DNL max value in ADC Electrical Characteristics table.

                                 –  In the SSI Characteristics table, changed parameter names for S7-S14, provided a max number

                                    instead of a min for S7, and corrected values for S9-S14.

                                 –  Replaced figure "SSI Timing for SPI Frame Format (FRF=00), with SPH=1" with two figures,

                                    one for Master Mode and one for Slave Mode.

                                 –  Updated and added values to the table Table 23-38 on page 1360.

                              ■  In the Package Information appendix, moved orderable devices table from addendum to appendix,

                                 clarified part markings and moved packaging diagram from addendum to appendix.

40                                                                                                               June 12, 2014

                                            Texas Instruments-Production Data
                                                                                    Tiva™   TM4C123FE6PM  Microcontroller

Table 1. Revision History  (continued)

Date           Revision    Description

                           ■  Additional minor data sheet clarifications and  corrections.

June 12, 2014                                                                                             41

                                        Texas Instruments-Production          Data
About This Document

About This Document

    This data sheet provides reference information for the TM4C123FE6PM microcontroller, describing

    the functional blocks of the system-on-chip (SoC) device designed around the ARM® Cortex™-M4F

    core.

Audience

    This manual is intended for system software developers, hardware designers, and application

    developers.

About This Manual

    This document is organized into sections that correspond to each major feature.

Related Documents

    The following related documents are available on the Tiva™ C Series web site at

    http://www.ti.com/tiva-c:

    ■     Tiva™ C Series TM4C123x Silicon Errata (literature number SPMZ849)

    ■     TivaWare™ Boot Loader for C Series User's Guide (literature number SPMU301)

    ■     TivaWare™ Graphics Library for C Series User's Guide (literature number SPMU300)

    ■     TivaWare™ for C Series Release Notes (literature number SPMU299)

    ■     TivaWare™ Peripheral Driver Library for C Series User's Guide (literature number SPMU298)

    ■     TivaWare™ USB Library for C Series User's Guide (literature number SPMU297)

    ■     Tiva™ C Series TM4C123x ROM User’s Guide (literature number SPMU367)

    The following related documents may also be useful:

    ■     ARM® Cortex™-M4 Errata (literature number SPMZ637)

    ■     ARM® Cortex™-M4 Technical Reference Manual

    ■     ARM® Debug Interface V5 Architecture Specification

    ■     ARM® Embedded Trace Macrocell Architecture Specification

    ■     Cortex™-M4 instruction set chapter in the ARM® Cortex™-M4 Devices Generic User Guide

          (literature number ARM DUI 0553A)

    ■     IEEE Standard 1149.1-Test Access Port and Boundary-Scan Architecture

    This documentation list was current as of publication date. Please check the web site for additional

    documentation, including application notes and white papers.

42                                                                                          June 12, 2014

                               Texas Instruments-Production Data
                                                                                        Tiva™ TM4C123FE6PM Microcontroller

Documentation Conventions

This document uses the conventions shown in Table 2 on page 43.

Table 2. Documentation Conventions

               Notation             Meaning

               General Register Notation

               REGISTER             APB registers are indicated in uppercase bold. For example, PBORCTL is the Power-On and

                                    Brown-Out Reset Control register. If a register name contains a lowercase n, it represents more

                                    than one register. For example, SRCRn represents any (or all) of the three Software Reset Control

                                    registers: SRCR0, SRCR1 , and SRCR2.

               bit                  A single bit in a register.

               bit field            Two or more consecutive and related bits.

               offset 0xnnn         A hexadecimal increment to a register's address, relative to that module's base address as specified

                                    in Table 2-4 on page 90.

               Register N           Registers are numbered consecutively throughout the document to aid in referencing them. The

                                    register number has no meaning to software.

               reserved             Register bits marked reserved are reserved for future use. In most cases, reserved bits are set to

                                    0; however, user software should not rely on the value of a reserved bit. To provide software

                                    compatibility with future products, the value of a reserved bit should be preserved across a

                                    read-modify-write operation.

               yy:xx                The range of register bits inclusive from xx to yy. For example, 31:15 means bits 15 through 31 in

                                    that register.

               Register Bit/Field   This value in the register bit diagram indicates whether software running on the controller can

               Types                change the value of the bit field.

               RC                   Software can read this field. The bit or field is cleared by hardware after reading the bit/field.

               RO                   Software can read this field. Always write the chip reset value.

               RW                   Software can read or write this field.

               RWC                  Software can read or write this field. Writing to it with any value clears the register.

               RW1C                 Software can read or write this field. A write of a 0 to a W1C bit does not affect the bit value in the

                                    register. A write of a 1 clears the value of the bit in the register; the remaining bits remain unchanged.

                                    This register type is primarily used for clearing interrupt status bits where the read operation provides

                                    the interrupt status and the write of the read value clears only the interrupts being reported at the

                                    time the register was read.

               RW1S                 Software can read or write a 1 to this field. A write of a 0 to a RW1S bit does not affect the bit value

                                    in the register.

               W1C                  Software can write this field. A write of a 0 to a W1C bit does not affect the bit value in the register.

                                    A write of a 1 clears the value of the bit in the register; the remaining bits remain unchanged. A

                                    read of the register returns no meaningful data.

                                    This register is typically used to clear the corresponding bit in an interrupt register.

               WO                   Only a write by software is valid; a read of the register returns no meaningful data.

               Register Bit/Field   This value in the register bit diagram shows the bit/field value after any reset, unless noted.

               Reset Value

               0                    Bit cleared to 0 on chip reset.

               1                    Bit set to 1 on chip reset.

               -                    Nondeterministic.

               Pin/Signal Notation

               []                   Pin alternate function; a pin defaults to the signal without the brackets.

               pin                  Refers to the physical connection on the package.

               signal               Refers to the electrical signal encoding of a pin.

June 12, 2014                                                                                                                                   43

                                          Texas Instruments-Production Data
About  This  Document

             Table 2. Documentation Conventions (continued)

             Notation            Meaning

             assert a signal     Change the value of the signal from the logically False state to the logically True state. For active

                                 High signals, the asserted signal value is 1 (High); for active Low signals, the asserted signal value

                                 is 0 (Low). The active polarity (High or Low) is defined by the signal name (see SIGNAL and SIGNAL

                                 below).

             deassert a  signal  Change the value of the signal from the logically True state to the logically False state.

             SIGNAL              Signal names are in uppercase and in the Courier font. An overbar on a signal name indicates that

                                 it is active Low. To assert SIGNAL is to drive it Low; to deassert SIGNAL is to drive it High.

             SIGNAL              Signal names are in uppercase and in the Courier font. An active High signal has no overbar. To

                                 assert SIGNAL is to drive it High; to deassert SIGNAL is to drive it Low.

             Numbers

             X                   An uppercase X indicates any of several values is allowed, where X can be any legal pattern. For

                                 example, a binary value of 0X00 can be either 0100 or 0000, a hex value of 0xX is 0x0 or 0x1, and

                                 so on.

             0x                  Hexadecimal numbers have a prefix of 0x. For example, 0x00FF is the hexadecimal number FF.

                                 All other numbers within register tables are assumed to be binary. Within conceptual information,

                                 binary numbers are indicated with a b suffix, for example, 1011b, and decimal numbers are written

                                 without a prefix or suffix.

44                                                                                                          June 12, 2014

                                          Texas Instruments-Production Data
                                                                        Tiva™ TM4C123FE6PM Microcontroller

1          Architectural Overview

           Texas Instrument's Tiva™ C Series microcontrollers provide designers a high-performance ARM®

           Cortex™-M-based architecture with a broad set of integration capabilities and a strong ecosystem

           of software and development tools. Targeting performance and flexibility, the Tiva™ C Series

           architecture offers a 80 MHz Cortex-M with FPU, a variety of integrated memories and multiple

           programmable GPIO. Tiva™ C Series devices offer consumers compelling cost-effective solutions

           by integrating application-specific peripherals and providing a comprehensive library of software

           tools which minimize board costs and design-cycle time. Offering quicker time-to-market and cost

           savings, the Tiva™ C Series microcontrollers are the leading choice in high-performance 32-bit

           applications.

           This chapter contains an overview of the Tiva™ C Series microcontrollers as well as details on the

           TM4C123FE6PM microcontroller:

           ■     “Tiva™ C Series Overview” on page 45

           ■     “TM4C123FE6PM Microcontroller Overview” on page 46

           ■     “TM4C123FE6PM Microcontroller Features” on page 48

           ■     “TM4C123FE6PM Microcontroller Hardware Details” on page 66

           ■     “Kits” on page 66

           ■     “Support Information” on page 66

1.1        Tiva™ C Series Overview

           The Tiva™ C Series ARM Cortex-M4 microcontrollers provide top performance and advanced

           integration. The product family is positioned for cost-conscious applications requiring significant

           control processing and connectivity capabilities such as:

           ■     Low power, hand-held smart devices

           ■     Gaming equipment

           ■     Home and commercial site monitoring and control

           ■     Motion control

           ■     Medical instrumentation

           ■     Test and measurement equipment

           ■     Factory automation

           ■     Fire and security

           ■     Smart Energy/Smart Grid solutions

           ■     Intelligent lighting control

           ■     Transportation

           In addition, the TM4C123FE6PM microcontroller offers the advantages of ARM's widely available

           development tools, System-on-Chip (SoC) infrastructure IP applications, and a large user community.

           Additionally, the microcontroller uses ARM's Thumb®-compatible Thumb-2 instruction set to reduce

           memory requirements and, thereby, cost. Finally, much of the TM4C123FE6PM microcontroller

           code is compatible to the Tiva™ C Series product line, providing flexibility across designs.

           Texas Instruments offers a complete solution to get to market quickly, with evaluation and

           development boards, white papers and application notes, an easy-to-use peripheral driver library,

           and a strong support, sales, and distributor network.

June  12,  2014                                                                                                 45

                                     Texas Instruments-Production Data
Architectural Overview

1.2  TM4C123FE6PM Microcontroller Overview

     The TM4C123FE6PM microcontroller combines complex integration and high performance with the

     features shown in Table 1-1.

     Table 1-1. TM4C123FE6PM Microcontroller Features

                           Feature                                                 Description

     Performance

     Core                                                 ARM Cortex-M4F processor core

     Performance                                          80-MHz operation; 100 DMIPS performance

     Flash                                                128 KB single-cycle Flash memory

     System SRAM                                          32 KB single-cycle SRAM

     EEPROM                                               2KB of EEPROM

     Internal ROM                                         Internal ROM loaded with TivaWare™ for C Series  software

     Security

     Communication Interfaces

     Universal Asynchronous Receivers/Transmitter (UART)  Eight UARTs

     Synchronous Serial Interface (SSI)                   Four SSI modules

     Inter-Integrated Circuit (I2C)                       Six I2C modules with four transmission speeds including high-speed

                                                          mode

     Controller Area Network (CAN)                        Two CAN 2.0 A/B controllers

     Universal Serial Bus (USB)                           USB 2.0 OTG/Host/Device

     System Integration

     Micro Direct Memory Access (µDMA)                    ARM® PrimeCell® 32-channel configurable μDMA controller

     General-Purpose Timer (GPTM)                         Six 16/32-bit GPTM blocks and six 32/64-bit Wide GPTM blocks

     Watchdog Timer (WDT)                                 Two watchdog timers

     General-Purpose Input/Output (GPIO)                  Seven physical GPIO blocks

     Advanced Motion Control

     Pulse Width Modulator (PWM)                          Two PWM modules, each with four PWM generator blocks and a

                                                          control block, for a total of 16 PWM outputs.

     Quadrature Encoder Interface (QEI)                   Two QEI modules

     Analog Support

     Analog-to-Digital Converter (ADC)                    Two 12-bit ADC modules, each with a maximum sample rate of one

                                                          million samples/second

     Analog Comparator Controller                         Two independent integrated analog comparators

     Digital Comparator                                   16 digital comparators

     JTAG and Serial Wire Debug (SWD)                     One JTAG module with integrated ARM SWD

     Package Information

     Package                                              64-pin LQFP

     Operating Range (Ambient)                            Industrial (-40°C to 85°C) temperature range

     Figure 1-1 on page 47 shows the features on the TM4C123FE6PM microcontroller. Note that there

     are two on-chip buses that connect the core to the peripherals. The Advanced Peripheral Bus (APB)

     bus is the legacy bus. The Advanced High-Performance Bus (AHB) bus provides better back-to-back

     access performance than the APB bus.

46                                                                                                         June 12, 2014

                                     Texas Instruments-Production Data
                                                                                                                              Tiva™ TM4C123FE6PM  Microcontroller

Figure 1-1. Tiva™ TM4C123FE6PM    Microcontroller High-Level Block Diagram

               JTAG/SWD

                                  ARM®                                                                                        Boot Loader

                                  Cortex™-M4F                                                                           ROM

                                                                                                                              DriverLib

                                  (80MHz)                                                                                     AES & CRC

               System             ETM                                  FPU

               Control and                                                                            DCode bus        Flash

               Clocks                                                                                            (128KB)

               (w/ Precis. Osc.)  NVIC                                 MPU

                                                                                                      ICode bus

TM4C123FE6PM                                                           System Bus

                                  Bus Matrix                                                          SRAM

                                                                                                      (32KB)

                                                                                                      SYSTEM PERIPHERALS

                                                                                                      Watchdog

               DMA                                                                                               Timer

                                                                                                                 (2)

               General-                                                                               EEPROM

               Purpose                                                                                           (2K)

               Timer (12)

                                                                                                      GPIOs

                                                                                                                 (49)

                                  Advanced High-Performance Bus (AHB)  Advanced Peripheral Bus (APB)  SERIAL PERIPHERALS

               USB OTG                                                                                           UART

               (FS PHY)                                                                                          (8)

               SSI                                                                                               I2C

               (4)                                                                                               (6)

                                                                                                                 CAN

                                                                                                      Controller

                                                                                                                 (2)

                                                                                                      ANALOG PERIPHERALS

               Analog                                                                                 12- Bit ADC

               Comparator                                                                             Channels

               (2)                                                                                               (12)

                                                                                                      MOTION CONTROL PERIPHERALS

               PWM                                                                                               QEI

               (16)                                                                                              (2)

June 12, 2014                                                                                                                                     47

                                  Texas Instruments-Production Data
Architectural Overview

1.3      TM4C123FE6PM Microcontroller Features

         The TM4C123FE6PM microcontroller component features and general function are discussed in

         more detail in the following section.

1.3.1    ARM Cortex-M4F Processor Core

         All members of the Tiva™ C Series, including the TM4C123FE6PM microcontroller, are designed

         around an ARM Cortex-M processor core. The ARM Cortex-M processor provides the core for a

         high-performance, low-cost platform that meets the needs of minimal memory implementation,

         reduced pin count, and low power consumption, while delivering outstanding computational

         performance and exceptional system response to interrupts.

1.3.1.1  Processor Core    (see page 67)

         ■  32-bit ARM Cortex-M4F architecture optimized for small-footprint embedded applications

         ■  80-MHz operation; 100 DMIPS performance

         ■  Outstanding processing performance combined with fast interrupt handling

         ■  Thumb-2 mixed 16-/32-bit instruction set delivers the high performance expected of a 32-bit

            ARM core in a compact memory size usually associated with 8- and 16-bit devices, typically in

            the range of a few kilobytes of memory for microcontroller-class applications

            –  Single-cycle multiply instruction and hardware divide

            –  Atomic bit manipulation (bit-banding), delivering maximum memory utilization and streamlined

               peripheral control

            –  Unaligned data access, enabling data to be efficiently packed into memory

         ■  IEEE754-compliant single-precision Floating-Point Unit (FPU)

         ■  16-bit SIMD vector processing unit

         ■  Fast code execution permits slower processor clock or increases sleep mode time

         ■  Harvard architecture characterized by separate buses for instruction and data

         ■  Efficient processor core, system and memories

         ■  Hardware division and fast digital-signal-processing orientated multiply accumulate

         ■  Saturating arithmetic for signal processing

         ■  Deterministic, high-performance interrupt handling for time-critical applications

         ■  Memory protection unit (MPU) to provide a privileged mode for protected operating system

            functionality

         ■  Enhanced system debug with extensive breakpoint and trace capabilities

         ■  Serial Wire Debug and Serial Wire Trace reduce the number of pins required for debugging and

            tracing

48                                                                                               June 12, 2014

                                   Texas Instruments-Production Data
                                                                         Tiva™ TM4C123FE6PM Microcontroller

          ■     Migration from the ARM7™ processor family for better performance and power efficiency

          ■     Optimized for single-cycle Flash memory usage up to specific frequencies; see “Internal

                Memory” on page 484 for more information.

          ■     Ultra-low power consumption with integrated sleep modes

1.3.1.2   System Timer (SysTick)  (see page 121)

          ARM Cortex-M4F includes an integrated system timer, SysTick. SysTick provides a simple, 24-bit,

          clear-on-write, decrementing, wrap-on-zero counter with a flexible control mechanism. The counter

          can be used in several different ways, for example:

          ■     An RTOS tick timer that fires at a programmable rate (for example, 100 Hz) and invokes a SysTick

                routine

          ■     A high-speed alarm timer using the system clock

          ■     A variable rate alarm or signal timer—the duration is range-dependent on the reference clock

                used and the dynamic range of the counter

          ■     A simple counter used to measure time to completion and time used

          ■     An internal clock-source control based on missing/meeting durations

1.3.1.3   Nested Vectored Interrupt Controller (NVIC)             (see page 122)

          The TM4C123FE6PM controller includes the ARM Nested Vectored Interrupt Controller (NVIC).

          The NVIC and Cortex-M4F prioritize and handle all exceptions in Handler Mode. The processor

          state is automatically stored to the stack on an exception and automatically restored from the stack

          at the end of the Interrupt Service Routine (ISR). The interrupt vector is fetched in parallel to the

          state saving, enabling efficient interrupt entry. The processor supports tail-chaining, meaning that

          back-to-back interrupts can be performed without the overhead of state saving and restoration.

          Software can set eight priority levels on 7 exceptions (system handlers) and 80 interrupts.

          ■     Deterministic, fast interrupt processing: always 12 cycles, or just 6 cycles with tail-chaining (these

                values reflect no FPU stacking)

          ■     External non-maskable interrupt signal (NMI) available for immediate execution of NMI handler

                for safety critical applications

          ■     Dynamically reprioritizable interrupts

          ■     Exceptional interrupt handling via hardware implementation of required register manipulations

1.3.1.4   System Control Block (SCB)              (see page 123)

          The SCB provides system implementation information and system control, including configuration,

          control, and reporting of system exceptions.

1.3.1.5   Memory Protection Unit (MPU)            (see page 123)

          The MPU supports the standard ARM7 Protected Memory System Architecture (PMSA) model. The

          MPU provides full support for protection regions, overlapping protection regions, access permissions,

          and exporting memory attributes to the system.

June 12,  2014                                                                                                          49

                         Texas Instruments-Production Data
Architectural Overview

1.3.1.6  Floating-Point Unit (FPU)     (see page 128)

         The FPU fully supports single-precision add, subtract, multiply, divide, multiply and accumulate,

         and square root operations. It also provides conversions between fixed-point and floating-point data

         formats, and floating-point constant instructions.

         ■  32-bit instructions for single-precision (C float) data-processing operations

         ■  Combined multiply and accumulate instructions for increased precision (Fused MAC)

         ■  Hardware support for conversion, addition, subtraction, multiplication with optional accumulate,

            division, and square-root

         ■  Hardware support for denormals and all IEEE rounding modes

         ■  32 dedicated 32-bit single-precision registers, also addressable as 16 double-word registers

         ■  Decoupled three stage pipeline

1.3.2    On-Chip Memory

         The TM4C123FE6PM microcontroller is integrated with the following set of on-chip memory and

         features:

         ■  32 KB single-cycle SRAM

         ■  128 KB Flash memory

         ■  2KB EEPROM

         ■  Internal ROM loaded with TivaWare™ for C Series software:

            –  TivaWare™ Peripheral Driver Library

            –  TivaWare Boot Loader

            –  Advanced Encryption Standard (AES) cryptography tables

            –  Cyclic Redundancy Check (CRC) error detection functionality

1.3.2.1  SRAM       (see page 485)

         The TM4C123FE6PM microcontroller provides 32 KB of single-cycle on-chip SRAM. The internal

         SRAM of the device is located at offset 0x2000.0000 of the device memory map.

         Because read-modify-write (RMW) operations are very time consuming, ARM has introduced

         bit-banding technology in the Cortex-M4F processor. With a bit-band-enabled processor, certain

         regions in the memory map (SRAM and peripheral space) can use address aliases to access

         individual bits in a single, atomic operation.

         Data can be transferred to and from SRAM by the following masters:

         ■  µDMA

         ■  USB

1.3.2.2  Flash Memory   (see page 488)

         The TM4C123FE6PM microcontroller provides 128 KB of single-cycle on-chip Flash memory. The

         Flash memory is organized as a set of 1-KB blocks that can be individually erased. Erasing a block

         causes the entire contents of the block to be reset to all 1s. These blocks are paired into a set of

50                                                                                             June 12, 2014

                                    Texas Instruments-Production Data
                                                                           Tiva™ TM4C123FE6PM Microcontroller

          2-KB blocks that can be individually protected. The blocks can be marked as read-only or

          execute-only, providing different levels of code protection. Read-only blocks cannot be erased or

          programmed, protecting the contents of those blocks from being modified. Execute-only blocks

          cannot be erased or programmed, and can only be read by the controller instruction fetch mechanism,

          protecting the contents of those blocks from being read by either the controller or by a debugger.

1.3.2.3   ROM   (see page 486)

          The TM4C123FE6PM ROM is preprogrammed with the following software and programs:

          ■     TivaWare Peripheral Driver Library

          ■     TivaWare Boot Loader

          ■     Advanced Encryption Standard (AES) cryptography tables

          ■     Cyclic Redundancy Check (CRC) error-detection functionality

          The TivaWare Peripheral Driver Library is a royalty-free software library for controlling on-chip

          peripherals with a boot-loader capability. The library performs both peripheral initialization and

          control functions, with a choice of polled or interrupt-driven peripheral support. In addition, the library

          is designed to take full advantage of the stellar interrupt performance of the ARM Cortex-M4F core.

          No special pragmas or custom assembly code prologue/epilogue functions are required. For

          applications that require in-field programmability, the royalty-free TivaWare Boot Loader can act as

          an application loader and support in-field firmware updates.

          The Advanced Encryption Standard (AES) is a publicly defined encryption standard used by the

          U.S. Government. AES is a strong encryption method with reasonable performance and size. In

          addition, it is fast in both hardware and software, is fairly easy to implement, and requires little

          memory. The Texas Instruments encryption package is available with full source code, and is based

          on Lesser General Public License (LGPL) source. An LGPL means that the code can be used within

          an application without any copyleft implications for the application (the code does not automatically

          become open source). Modifications to the package source, however, must be open source.

          CRC (Cyclic Redundancy Check) is a technique to validate a span of data has the same contents

          as when previously checked. This technique can be used to validate correct receipt of messages

          (nothing lost or modified in transit), to validate data after decompression, to validate that Flash

          memory contents have not been changed, and for other cases where the data needs to be validated.

          A CRC is preferred over a simple checksum (for example, XOR all bits) because it catches changes

          more readily.

1.3.2.4   EEPROM  (see page 494)

          The TM4C123FE6PM microcontroller includes an EEPROM with the following features:

          ■     2Kbytes of memory accessible as 512 32-bit words

          ■     32 blocks of 16 words (64 bytes) each

          ■     Built-in wear leveling

          ■     Access protection per block

          ■     Lock protection option for the whole peripheral as well as per block using 32-bit to 96-bit unlock

                codes (application selectable)

June 12,  2014                                                                                                         51

                                        Texas Instruments-Production Data
Architectural Overview

         ■  Interrupt support for write completion to avoid polling

         ■  Endurance of 500K writes (when writing at fixed offset in every alternate page in circular fashion)

            to 15M operations (when cycling through two pages ) per each 2-page block.

1.3.3    Serial Communications Peripherals

         The TM4C123FE6PM controller supports both asynchronous and synchronous serial communications

         with:

         ■  Two CAN 2.0 A/B controllers

         ■  USB 2.0 OTG/Host/Device

         ■  Eight UARTs with IrDA, 9-bit and ISO 7816 support.

         ■  Six I2C modules with four transmission speeds including high-speed mode

         ■  Four Synchronous Serial Interface modules (SSI)

         The following sections provide more detail on each of these communications functions.

1.3.3.1  Controller Area Network (CAN) (see page 1007)

         Controller Area Network (CAN) is a multicast shared serial-bus standard for connecting electronic

         control units (ECUs). CAN was specifically designed to be robust in electromagnetically noisy

         environments and can utilize a differential balanced line like RS-485 or twisted-pair wire. Originally

         created for automotive purposes, it is now used in many embedded control applications (for example,

         industrial or medical). Bit rates up to 1 Mbps are possible at network lengths below 40 meters.

         Decreased bit rates allow longer network distances (for example, 125 Kbps at 500m).

         A transmitter sends a message to all CAN nodes (broadcasting). Each node decides on the basis

         of the identifier received whether it should process the message. The identifier also determines the

         priority that the message enjoys in competition for bus access. Each CAN message can transmit

         from 0 to 8 bytes of user information.

         The TM4C123FE6PM microcontroller includes two CAN units with the following features:

         ■  CAN protocol version 2.0 part A/B

         ■  Bit rates up to 1 Mbps

         ■  32 message objects with individual identifier masks

         ■  Maskable interrupt

         ■  Disable Automatic Retransmission mode for Time-Triggered CAN (TTCAN) applications

         ■  Programmable loopback mode for self-test operation

         ■  Programmable FIFO mode enables storage of multiple message objects

         ■  Gluelessly attaches to an external CAN transceiver through the CANnTX and CANnRX signals

52                                                                                              June 12, 2014

                                    Texas Instruments-Production Data
                                                                             Tiva™ TM4C123FE6PM Microcontroller

1.3.3.2   Universal Serial Bus (USB)       (see page 1058)

          Universal Serial Bus (USB) is a serial bus standard designed to allow peripherals to be connected

          and disconnected using a standardized interface without rebooting the system.

          The TM4C123FE6PM microcontroller supports three configurations in USB 2.0 full and low speed:

          USB Device, USB Host, and USB On-The-Go (negotiated on-the-go as host or device when

          connected to other USB-enabled systems).

          The USB module has the following features:

          ■     Complies with USB-IF (Implementer's Forum) certification standards

          ■     USB 2.0 full-speed (12 Mbps) and low-speed (1.5 Mbps) operation with integrated PHY

          ■     4 transfer types: Control, Interrupt, Bulk, and Isochronous

          ■     16 endpoints

                –  1 dedicated control IN endpoint and 1 dedicated control OUT endpoint

                –  7 configurable IN endpoints and 7 configurable OUT endpoints

          ■     4 KB dedicated endpoint memory: one endpoint may be defined for double-buffered 1023-byte

                isochronous packet size

          ■     VBUS droop and valid ID detection and interrupt

          ■     Efficient transfers using Micro Direct Memory Access Controller (µDMA)

                –  Separate channels for transmit and receive for up to three IN endpoints and three OUT

                   endpoints

                –  Channel requests asserted when FIFO contains required amount of data

1.3.3.3   UART     (see page 852)

          A Universal Asynchronous Receiver/Transmitter (UART) is an integrated circuit used for RS-232C

          serial communications, containing a transmitter (parallel-to-serial converter) and a receiver

          (serial-to-parallel converter), each clocked separately.

          The TM4C123FE6PM microcontroller includes eight fully programmable 16C550-type UARTs.

          Although the functionality is similar to a 16C550 UART, this UART design is not register compatible.

          The UART can generate individually masked interrupts from the Rx, Tx, modem flow control, and

          error conditions. The module generates a single combined interrupt when any of the interrupts are

          asserted and are unmasked.

          The eight UARTs have the following features:

          ■     Programmable baud-rate generator allowing speeds up to 5 Mbps for regular speed (divide by

                16) and 10 Mbps for high speed (divide by 8)

          ■     Separate 16x8 transmit (TX) and receive (RX) FIFOs to reduce CPU interrupt service loading

          ■     Programmable FIFO length, including 1-byte deep operation providing conventional

                double-buffered interface

          ■     FIFO trigger levels of 1/8, 1/4, 1/2, 3/4, and 7/8

June 12,  2014                                                                                                  53

                                   Texas Instruments-Production Data
Architectural Overview

         ■  Standard asynchronous communication bits for start, stop, and parity

         ■  Line-break generation and detection

         ■  Fully programmable serial interface characteristics

            –  5, 6, 7, or 8 data bits

            –  Even, odd, stick, or no-parity bit generation/detection

            –  1 or 2 stop bit generation

         ■  IrDA serial-IR (SIR) encoder/decoder providing

            –  Programmable use of IrDA Serial Infrared (SIR) or UART input/output

            –  Support of IrDA SIR encoder/decoder functions for data rates up to 115.2 Kbps half-duplex

            –  Support of normal 3/16 and low-power (1.41-2.23 μs) bit durations

            –  Programmable internal clock generator enabling division of reference clock by 1 to 256 for

               low-power mode bit duration

         ■  Support for communication with ISO 7816 smart cards

         ■  Modem flow control (on UART1)

         ■  EIA-485 9-bit support

         ■  Standard FIFO-level and End-of-Transmission interrupts

         ■  Efficient transfers using Micro Direct Memory Access Controller (µDMA)

            –  Separate channels for transmit and receive

            –  Receive single request asserted when data is in the FIFO; burst request asserted at

               programmed FIFO level

            –  Transmit single request asserted when there is space in the FIFO; burst request asserted at

               programmed FIFO level

1.3.3.4  I2C   (see page 956)

         The Inter-Integrated Circuit (I2C) bus provides bi-directional data transfer through a two-wire design

         (a serial data line SDA and a serial clock line SCL). The I2C bus interfaces to external I2C devices

         such as serial memory (RAMs and ROMs), networking devices, LCDs, tone generators, and so on.

         The I2C bus may also be used for system testing and diagnostic purposes in product development

         and manufacture.

         Each device on the I2C bus can be designated as either a master or a slave. I2C module supports

         both sending and receiving data as either a master or a slave and can operate simultaneously as

         both a master and a slave. Both the I2C master and slave can generate interrupts.

         The TM4C123FE6PM microcontroller includes six I2C modules with the following features:

         ■  Devices on the I2C bus can be designated as either a master or a slave

54                                                                                          June 12, 2014

                                   Texas Instruments-Production Data
                                                                       Tiva™ TM4C123FE6PM Microcontroller

                –  Supports both transmitting and receiving data as either a master or a slave

                –  Supports simultaneous master and slave operation

          ■     Four I2C modes

                –  Master transmit

                –  Master receive

                –  Slave transmit

                –  Slave receive

          ■     Four transmission speeds:

                –  Standard (100 Kbps)

                –  Fast-mode (400 Kbps)

                –  Fast-mode plus (1 Mbps)

                –  High-speed mode (3.33 Mbps)

          ■     Clock low timeout interrupt

          ■     Dual slave address capability

          ■     Glitch suppression

          ■     Master and slave interrupt generation

                –  Master generates interrupts when a transmit or receive operation completes (or aborts due

                   to an error)

                –  Slave generates interrupts when data has been transferred or requested by a master or when

                   a START or STOP condition is detected

          ■     Master with arbitration and clock synchronization, multimaster support, and 7-bit addressing

                mode

1.3.3.5   SSI      (see page 911)

          Synchronous Serial Interface (SSI) is a four-wire bi-directional communications interface that converts

          data between parallel and serial. The SSI module performs serial-to-parallel conversion on data

          received from a peripheral device, and parallel-to-serial conversion on data transmitted to a peripheral

          device. The SSI module can be configured as either a master or slave device. As a slave device,

          the SSI module can also be configured to disable its output, which allows a master device to be

          coupled with multiple slave devices. The TX and RX paths are buffered with separate internal FIFOs.

          The SSI module also includes a programmable bit rate clock divider and prescaler to generate the

          output serial clock derived from the SSI module's input clock. Bit rates are generated based on the

          input clock and the maximum bit rate is determined by the connected peripheral.

          The TM4C123FE6PM microcontroller includes four SSI modules with the following features:

June 12,  2014                                                                                                      55

                                    Texas Instruments-Production Data
Architectural Overview

         ■  Programmable interface operation for Freescale SPI, MICROWIRE, or Texas Instruments

            synchronous serial interfaces

         ■  Master or slave operation

         ■  Programmable clock bit rate and prescaler

         ■  Separate transmit and receive FIFOs, each 16 bits wide and 8 locations deep

         ■  Programmable data frame size from 4 to 16 bits

         ■  Internal loopback test mode for diagnostic/debug testing

         ■  Standard FIFO-based interrupts and End-of-Transmission interrupt

         ■  Efficient transfers using Micro Direct Memory Access Controller (µDMA)

            –  Separate channels for transmit and receive

            –  Receive single request asserted when data is in the FIFO; burst request asserted when FIFO

               contains 4 entries

            –  Transmit single request asserted when there is space in the FIFO; burst request asserted

               when four or more entries are available to be written in the FIFO

1.3.4    System Integration

         The TM4C123FE6PM microcontroller provides a variety of standard system functions integrated

         into the device, including:

         ■  Direct Memory Access Controller (DMA)

         ■  System control and clocks including on-chip precision 16-MHz oscillator

         ■  Six 32-bit timers (up to twelve 16-bit), with real-time clock capability

         ■  Six wide 64-bit timers (up to twelve 32-bit), with real-time clock capability

         ■  Twelve 32/64-bit Capture Compare PWM (CCP) pins

         ■  Two Watchdog Timers

            –  One timer runs off the main oscillator

            –  One timer runs off the precision internal oscillator

         ■  Up to 49 GPIOs, depending on configuration

            –  Highly flexible pin muxing allows use as GPIO or one of several peripheral functions

            –  Independently configurable to 2-, 4- or 8-mA drive capability

            –  Up to 4 GPIOs can have 18-mA drive capability

         The following sections provide more detail on each of these functions.

1.3.4.1  Direct Memory Access          (see page 544)

         The TM4C123FE6PM microcontroller includes a Direct Memory Access (DMA) controller, known

         as micro-DMA (μDMA). The μDMA controller provides a way to offload data transfer tasks from the

         Cortex-M4F processor, allowing for more efficient use of the processor and the available bus

56                                                                                         June 12, 2014

                                      Texas Instruments-Production Data
                                                                            Tiva™ TM4C123FE6PM Microcontroller

           bandwidth. The μDMA controller can perform transfers between memory and peripherals. It has

           dedicated channels for each supported on-chip module and can be programmed to automatically

           perform transfers between peripherals and memory as the peripheral is ready to transfer more data.

           The μDMA controller provides the following features:

           ■     ARM PrimeCell® 32-channel configurable µDMA controller

           ■     Support for memory-to-memory, memory-to-peripheral, and peripheral-to-memory in multiple

                 transfer modes

                 –  Basic for simple transfer scenarios

                 –  Ping-pong for continuous data flow

                 –  Scatter-gather for a programmable list of up to 256 arbitrary transfers initiated from a single

                    request

           ■     Highly flexible and configurable channel operation

                 –  Independently configured and operated channels

                 –  Dedicated channels for supported on-chip modules

                 –  Flexible channel assignments

                 –  One channel each for receive and transmit path for bidirectional modules

                 –  Dedicated channel for software-initiated transfers

                 –  Per-channel configurable priority scheme

                 –  Optional software-initiated requests for any channel

           ■     Two levels of priority

           ■     Design optimizations for improved bus access performance between µDMA controller and the

                 processor core

                 –  µDMA controller access is subordinate to core access

                 –  RAM striping

                 –  Peripheral bus segmentation

           ■     Data sizes of 8, 16, and 32 bits

           ■     Transfer size is programmable in binary steps from 1 to 1024

           ■     Source and destination address increment size of byte, half-word, word, or no increment

           ■     Maskable peripheral requests

           ■     Interrupt on transfer completion, with a separate interrupt per channel

June  12,  2014                                                                                                      57

                                         Texas Instruments-Production Data
Architectural Overview

1.3.4.2  System Control and Clocks    (see page 210)

         System control determines the overall operation of the device. It provides information about the

         device, controls power-saving features, controls the clocking of the device and individual peripherals,

         and handles reset detection and reporting.

         ■  Device identification information: version, part number, SRAM size, Flash memory size, and so

            on

         ■  Power control

            –   On-chip fixed Low Drop-Out (LDO) voltage regulator

            –   Low-power options for microcontroller: Sleep and Deep-Sleep modes with clock gating

            –   Low-power options for on-chip modules: software controls shutdown of individual peripherals

                and memory

            –   3.3-V supply brown-out detection and reporting via interrupt or reset

         ■  Multiple clock sources for microcontroller system clock. The following clock sources are provided

            to the TM4C123FE6PM microcontroller:

            –   Precision Internal Oscillator (PIOSC) providing a 16-MHz frequency

                •       16 MHz ±3% across temperature and voltage

                •       Can be recalibrated with 7-bit trim resolution to achieve better accuracy (16 MHz ±1%)

                •       Software power down control for low power modes

            –   Main Oscillator (MOSC): A frequency-accurate clock source by one of two means: an external

                single-ended clock source is connected to the OSC0 input pin, or an external crystal is

                connected across the OSC0 input and OSC1 output pins.

            –   Low Frequency Internal Oscillator (LFIOSC): On-chip resource used during power-saving

                modes

         ■  Flexible reset sources

            –   Power-on reset (POR)

            –   Reset pin assertion

            –   Brown-out reset (BOR) detector alerts to system power drops

            –   Software reset

            –   Watchdog timer reset

            –   MOSC failure

1.3.4.3  Programmable Timers          (see page 663)

         Programmable timers can be used to count or time external events that drive the Timer input pins.

         Each 16/32-bit GPTM block provides two 16-bit timers/counters that can be configured to operate

         independently as timers or event counters, or configured to operate as one 32-bit timer or one 32-bit

         Real-Time Clock (RTC). Each 32/64-bit Wide GPTM block provides two 32-bit timers/counters that

         can be configured to operate independently as timersor event counters, or configured to operate

58                                                                                     June 12, 2014

                                     Texas Instruments-Production Data
                                                                          Tiva™ TM4C123FE6PM Microcontroller

           as one 64-bit timer or one 64-bit Real-Time Clock (RTC). Timers can also be used to trigger

           analog-to-digital (ADC) conversions and DMA transfers.

           The General-Purpose Timer Module (GPTM) contains six 16/32-bit GPTM blocks and six 32/64-bit

           Wide GPTM blocks with the following functional options:

           ■     16/32-bit operating modes:

                 –  16- or 32-bit programmable one-shot timer

                 –  16- or 32-bit programmable periodic timer

                 –  16-bit general-purpose timer with an 8-bit prescaler

                 –  32-bit Real-Time Clock (RTC) when using an external 32.768-KHz clock as the input

                 –  16-bit input-edge count- or time-capture modes with an 8-bit prescaler

                 –  16-bit PWM mode with an 8-bit prescaler and software-programmable output inversion of the

                    PWM signal

           ■     32/64-bit operating modes:

                 –  32- or 64-bit programmable one-shot timer

                 –  32- or 64-bit programmable periodic timer

                 –  32-bit general-purpose timer with a 16-bit prescaler

                 –  64-bit Real-Time Clock (RTC) when using an external 32.768-KHz clock as the input

                 –  32-bit input-edge count- or time-capture modes with a16-bit prescaler

                 –  32-bit PWM mode with a 16-bit prescaler and software-programmable output inversion of the

                    PWM signal

           ■     Count up or down

           ■     Twelve 16/32-bit Capture Compare PWM pins (CCP)

           ■     Twelve 32/64-bit Capture Compare PWM pins (CCP)

           ■     Daisy chaining of timer modules to allow a single timer to initiate multiple timing events

           ■     Timer synchronization allows selected timers to start counting on the same clock cycle

           ■     ADC event trigger

           ■     User-enabled stalling when the microcontroller asserts CPU Halt flag during debug (excluding

                 RTC mode)

           ■     Ability to determine the elapsed time between the assertion of the timer interrupt and entry into

                 the interrupt service routine

           ■     Efficient transfers using Micro Direct Memory Access Controller (µDMA)

                 –  Dedicated channel for each timer

June  12,  2014                                                                                                     59

                                    Texas Instruments-Production Data
Architectural Overview

            –  Burst request generated on timer interrupt

1.3.4.4  CCP Pins       (see page 671)

         Capture Compare PWM pins (CCP) can be used by the General-Purpose Timer Module to time/count

         external events using the CCP pin as an input. Alternatively, the GPTM can generate a simple PWM

         output on the CCP pin.

         The TM4C123FE6PM microcontroller includes twelve 16/32-bit CCP pins that can be programmed

         to operate in the following modes:

         ■  Capture: The GP Timer is incremented/decremented by programmed events on the CCP input.

            The GP Timer captures and stores the current timer value when a programmed event occurs.

         ■  Compare: The GP Timer is incremented/decremented by programmed events on the CCP input.

            The GP Timer compares the current value with a stored value and generates an interrupt when

            a match occurs.

         ■  PWM: The GP Timer is incremented/decremented by the system clock. A PWM signal is generated

            based on a match between the counter value and a value stored in a match register and is output

            on the CCP pin.

1.3.4.5  Watchdog Timers         (see page 733)

         A watchdog timer is used to regain control when a system has failed due to a software error or to

         the failure of an external device to respond in the expected way. The TM4C123FE6PM Watchdog

         Timer can generate an interrupt, a non-maskable interrupt, or a reset when a time-out value is

         reached. In addition, the Watchdog Timer is ARM FiRM-compliant and can be configured to generate

         an interrupt to the microcontroller on its first time-out, and to generate a reset signal on its second

         timeout. Once the Watchdog Timer has been configured, the lock register can be written to prevent

         the timer configuration from being inadvertently altered.

         The TM4C123FE6PM microcontroller has two Watchdog Timer modules: Watchdog Timer 0 uses

         the system clock for its timer clock; Watchdog Timer 1 uses the PIOSC as its timer clock. The

         Watchdog Timer module has the following features:

         ■  32-bit down counter with a programmable load register

         ■  Separate watchdog clock with an enable

         ■  Programmable interrupt generation logic with interrupt masking and optional NMI function

         ■  Lock register protection from runaway software

         ■  Reset generation logic with an enable/disable

         ■  User-enabled stalling when the microcontroller asserts the CPU Halt flag during debug

1.3.4.6  Programmable GPIOs      (see page 608)

         General-purpose input/output (GPIO) pins offer flexibility for a variety of connections. The

         TM4C123FE6PM GPIO module is comprised of seven physical GPIO blocks, each corresponding

         to an individual GPIO port. The GPIO module is FiRM-compliant (compliant to the ARM Foundation

         IP for Real-Time Microcontrollers specification) and supports 0-49 programmable input/output pins.

         The number of GPIOs available depends on the peripherals being used (see “Signal

         Tables” on page 1291 for the signals available to each GPIO pin).

60                                                                                         June 12, 2014

                                 Texas Instruments-Production Data
                                                                          Tiva™ TM4C123FE6PM Microcontroller

          ■     Up to 49 GPIOs, depending on configuration

          ■     Highly flexible pin muxing allows use as GPIO or one of several peripheral functions

          ■     5-V-tolerant in input configuration

          ■     Ports A-G accessed through the Advanced Peripheral Bus (APB)

          ■     Fast toggle capable of a change every clock cycle for ports on AHB, every two clock cycles for

                ports on APB

          ■     Programmable control for GPIO interrupts

                –  Interrupt generation masking

                –  Edge-triggered on rising, falling, or both

                –  Level-sensitive on High or Low values

          ■     Bit masking in both read and write operations through address lines

          ■     Can be used to initiate an ADC sample sequence or a μDMA transfer

          ■     Pins configured as digital inputs are Schmitt-triggered

          ■     Programmable control for GPIO pad configuration

                –  Weak pull-up or pull-down resistors

                –  2-mA, 4-mA, and 8-mA pad drive for digital communication; up to four pads can sink 18-mA

                   for high-current applications

                –  Slew rate control for 8-mA pad drive

                –  Open drain enables

                –  Digital input enables

1.3.5     Advanced Motion Control

          The TM4C123FE6PM microcontroller provides motion control functions integrated into the device,

          including:

          ■     Two PWM modules, with a total of 16 advanced PWM outputs for motion and energy applications

          ■     Six fault inputs to promote low-latency shutdown

          ■     Two Quadrature Encoder Inputs (QEI)

          The following provides more detail on these motion control functions.

1.3.5.1   PWM      (see page 1189)

          The TM4C123FE6PM microcontroller contains two PWM modules, each with four PWM generator

          blocks and a control block, for a total of 16 PWM outputs. Pulse width modulation (PWM) is a

          powerful technique for digitally encoding analog signal levels. High-resolution counters are used to

          generate a square wave, and the duty cycle of the square wave is modulated to encode an analog

June 12,  2014                                                                                                  61

                                       Texas Instruments-Production Data
Architectural Overview

    signal. Typical applications include switching power supplies and motor control. Each

    TM4C123FE6PM PWM module consists of four PWM generator block and a control block. Each

    PWM generator block contains one timer (16-bit down or up/down counter), two comparators, a

    PWM signal generator, a dead-band generator, and an interrupt/ADC-trigger selector. Each PWM

    generator block produces two PWM signals that can either be independent signals or a single pair

    of complementary signals with dead-band delays inserted.

    Each PWM generator has the following features:

    ■  Three fault-condition handling inputs to quickly provide low-latency shutdown and prevent damage

       to the motor being controlled, for a total of six inputs

    ■  One 16-bit counter

       –  Runs in Down or Up/Down mode

       –  Output frequency controlled by a 16-bit load value

       –  Load value updates can be synchronized

       –  Produces output signals at zero and load value

    ■  Two PWM comparators

       –  Comparator value updates can be synchronized

       –  Produces output signals on match

    ■  PWM signal generator

       –  Output PWM signal is constructed based on actions taken as a result of the counter and

          PWM comparator output signals

       –  Produces two independent PWM signals

    ■  Dead-band generator

       –  Produces two PWM signals with programmable dead-band delays suitable for driving a half-H

          bridge

       –  Can be bypassed, leaving input PWM signals unmodified

    ■  Can initiate an ADC sample sequence

    The control block determines the polarity of the PWM signals and which signals are passed through

    to the pins. The output of the PWM generation blocks are managed by the output control block

    before being passed to the device pins. The PWM control block has the following options:

    ■  PWM output enable of each PWM signal

    ■  Optional output inversion of each PWM signal (polarity control)

    ■  Optional fault handling for each PWM signal

    ■  Synchronization of timers in the PWM generator blocks

62                                                                                         June 12, 2014

                             Texas Instruments-Production Data
                                                                             Tiva™ TM4C123FE6PM Microcontroller

          ■     Synchronization of timer/comparator updates across the PWM generator blocks

          ■     Extended PWM synchronization of timer/comparator updates across the PWM generator blocks

          ■     Interrupt status summary of the PWM generator blocks

          ■     Extended PWM fault handling, with multiple fault signals, programmable polarities, and filtering

          ■     PWM generators can be operated independently or synchronized with other generators

1.3.5.2   QEI      (see page 1267)

          A quadrature encoder, also known as a 2-channel incremental encoder, converts linear displacement

          into a pulse signal. By monitoring both the number of pulses and the relative phase of the two signals,

          the position, direction of rotation, and speed can be tracked. In addition, a third channel, or index

          signal, can be used to reset the position counter. The TM4C123FE6PM quadrature encoder with

          index (QEI) module interprets the code produced by a quadrature encoder wheel to integrate position

          over time and determine direction of rotation. In addition, it can capture a running estimate of the

          velocity of the encoder wheel. The input frequency of the QEI inputs may be as high as 1/4 of the

          processor frequency (for example, 20 MHz for a 80-MHz system).

          The TM4C123FE6PM microcontroller includes two QEI modules providing control of two motors at

          the same time with the following features:

          ■     Position integrator that tracks the encoder position

          ■     Programmable noise filter on the inputs

          ■     Velocity capture using built-in timer

          ■     The input frequency of the QEI inputs may be as high as 1/4 of the processor frequency (for

                example, 12.5 MHz for a 50-MHz system)

          ■     Interrupt generation on:

                –  Index pulse

                –  Velocity-timer expiration

                –  Direction change

                –  Quadrature error detection

1.3.6     Analog

          The TM4C123FE6PM microcontroller provides analog functions integrated into the device, including:

          ■     Two 12-bit Analog-to-Digital Converters (ADC), with a total of 12 analog input channels and each

                with a sample rate of one million samples/second

          ■     Two analog comparators

          ■     On-chip voltage regulator

          The following provides more detail on these analog functions.

June 12,  2014                                                                                                     63

                                          Texas Instruments-Production Data
Architectural Overview

1.3.6.1  ADC   (see page 758)

         An analog-to-digital converter (ADC) is a peripheral that converts a continuous analog voltage to a

         discrete digital number. The TM4C123FE6PM ADC module features 12-bit conversion resolution

         and supports 12 input channels plus an internal temperature sensor. Four buffered sample

         sequencers allow rapid sampling of up to 12 analog input sources without controller intervention.

         Each sample sequencer provides flexible programming with fully configurable input source, trigger

         events, interrupt generation, and sequencer priority. Each ADC module has a digital comparator

         function that allows the conversion value to be diverted to a comparison unit that provides eight

         digital comparators.

         The TM4C123FE6PM microcontroller provides two ADC modules, each with the following features:

         ■  12 shared analog input channels

         ■  12-bit precision ADC

         ■  Single-ended and differential-input configurations

         ■  On-chip internal temperature sensor

         ■  Maximum sample rate of one million samples/second

         ■  Optional phase shift in sample time programmable from 22.5º to 337.5º

         ■  Four programmable sample conversion sequencers from one to eight entries long, with

            corresponding conversion result FIFOs

         ■  Flexible trigger control

            –  Controller (software)

            –  Timers

            –  Analog Comparators

            –  PWM

            –  GPIO

         ■  Hardware averaging of up to 64 samples

         ■  Eight digital comparators

         ■  Power and ground for the analog circuitry is separate from the digital power and ground

         ■  Efficient transfers using Micro Direct Memory Access Controller (µDMA)

            –  Dedicated channel for each sample sequencer

            –  ADC module uses burst requests for DMA

1.3.6.2  Analog Comparators           (see page 1174)

         An analog comparator is a peripheral that compares two analog voltages and provides a logical

         output that signals the comparison result. The TM4C123FE6PM microcontroller provides two

64                                                                                  June 12, 2014

                                      Texas Instruments-Production Data
                                                                         Tiva™ TM4C123FE6PM Microcontroller

          independent integrated analog comparators that can be configured to drive an output or generate

          an interrupt or ADC event.

          The comparator can provide its output to a device pin, acting as a replacement for an analog

          comparator on the board, or it can be used to signal the application via interrupts or triggers to the

          ADC to cause it to start capturing a sample sequence. The interrupt generation and ADC triggering

          logic is separate. This means, for example, that an interrupt can be generated on a rising edge and

          the ADC triggered on a falling edge.

          The TM4C123FE6PM microcontroller provides two independent integrated analog comparators

          with the following functions:

          ■     Compare external pin input to external pin input or to internal programmable voltage reference

          ■     Compare a test voltage against any one of the following voltages:

                –  An individual external reference voltage

                –  A shared single external reference voltage

                –  A shared internal reference voltage

1.3.7     JTAG and ARM Serial Wire Debug                     (see page 198)

          The Joint Test Action Group (JTAG) port is an IEEE standard that defines a Test Access Port and

          Boundary Scan Architecture for digital integrated circuits and provides a standardized serial interface

          for controlling the associated test logic. The TAP, Instruction Register (IR), and Data Registers (DR)

          can be used to test the interconnections of assembled printed circuit boards and obtain manufacturing

          information on the components. The JTAG Port also provides a means of accessing and controlling

          design-for-test features such as I/O pin observation and control, scan testing, and debugging. Texas

          Instruments replaces the ARM SW-DP and JTAG-DP with the ARM Serial Wire JTAG Debug Port

          (SWJ-DP) interface. The SWJ-DP interface combines the SWD and JTAG debug ports into one

          module providing all the normal JTAG debug and test functionality plus real-time access to system

          memory without halting the core or requiring any target resident code. The SWJ-DP interface has

          the following features:

          ■     IEEE 1149.1-1990 compatible Test Access Port (TAP) controller

          ■     Four-bit Instruction Register (IR) chain for storing JTAG instructions

          ■     IEEE standard instructions: BYPASS, IDCODE, SAMPLE/PRELOAD, and EXTEST

          ■     ARM additional instructions: APACC, DPACC and ABORT

          ■     Integrated ARM Serial Wire Debug (SWD)

                –  Serial Wire JTAG Debug Port (SWJ-DP)

                –  Flash Patch and Breakpoint (FPB) unit for implementing breakpoints

                –  Data Watchpoint and Trace (DWT) unit for implementing watchpoints, trigger resources, and

                   system profiling

                –  Instrumentation Trace Macrocell (ITM) for support of printf style debugging

                –  Embedded Trace Macrocell (ETM) for instruction trace capture

June 12,  2014                                                                                                     65

                                      Texas Instruments-Production Data
Architectural Overview

          –  Trace Port Interface Unit (TPIU) for bridging to a Trace Port Analyzer

1.3.8  Packaging and Temperature

       ■  64-pin RoHS-compliant LQFP package

       ■  Industrial (-40°C to 85°C) ambient temperature range

1.4    TM4C123FE6PM Microcontroller Hardware Details

       Details on the pins and package can be found in the following sections:

       ■  “Pin Diagram” on page 1290

       ■  “Signal Tables” on page 1291

       ■  “Electrical Characteristics” on page 1321

       ■  “Package Information” on page 1363

1.5    Kits

       The Tiva™ C Series provides the hardware and software tools that engineers need to begin

       development quickly.

       ■  Reference Design Kits accelerate product development by providing ready-to-run hardware and

          comprehensive documentation including hardware design files

       ■  Evaluation Kits provide a low-cost and effective means of evaluating TM4C123FE6PM

          microcontrollers before purchase

       ■  Development Kits provide you with all the tools you need to develop and prototype embedded

          applications right out of the box

       See the Tiva series website at http://www.ti.com/tiva-c for the latest tools available, or ask your

       distributor.

1.6    Support Information

       For support on Tiva™ C Series products, contact the TI Worldwide Product Information Center

       nearest you.

66                                                                                   June 12, 2014

                             Texas Instruments-Production Data
                                                                           Tiva™ TM4C123FE6PM Microcontroller

2          The Cortex-M4F Processor

           The ARM® Cortex™-M4F processor provides a high-performance, low-cost platform that meets the

           system requirements of minimal memory implementation, reduced pin count, and low power

           consumption, while delivering outstanding computational performance and exceptional system

           response to interrupts. Features include:

           ■     32-bit ARM® Cortex™-M4F architecture optimized for small-footprint embedded applications

           ■     80-MHz operation; 100 DMIPS performance

           ■     Outstanding processing performance combined with fast interrupt handling

           ■     Thumb-2 mixed 16-/32-bit instruction set delivers the high performance expected of a 32-bit

                 ARM core in a compact memory size usually associated with 8- and 16-bit devices, typically in

                 the range of a few kilobytes of memory for microcontroller-class applications

                 –  Single-cycle multiply instruction and hardware divide

                 –  Atomic bit manipulation (bit-banding), delivering maximum memory utilization and streamlined

                    peripheral control

                 –  Unaligned data access, enabling data to be efficiently packed into memory

           ■     IEEE754-compliant single-precision Floating-Point Unit (FPU)

           ■     16-bit SIMD vector processing unit

           ■     Fast code execution permits slower processor clock or increases sleep mode time

           ■     Harvard architecture characterized by separate buses for instruction and data

           ■     Efficient processor core, system and memories

           ■     Hardware division and fast digital-signal-processing orientated multiply accumulate

           ■     Saturating arithmetic for signal processing

           ■     Deterministic, high-performance interrupt handling for time-critical applications

           ■     Memory protection unit (MPU) to provide a privileged mode for protected operating system

                 functionality

           ■     Enhanced system debug with extensive breakpoint and trace capabilities

           ■     Serial Wire Debug and Serial Wire Trace reduce the number of pins required for debugging and

                 tracing

           ■     Migration from the ARM7™ processor family for better performance and power efficiency

           ■     Optimized for single-cycle Flash memory usage up to specific frequencies; see “Internal

                 Memory” on page 484 for more information.

           ■     Ultra-low power consumption with integrated sleep modes

June  12,  2014                                                                                                   67

                                        Texas Instruments-Production Data
The Cortex-M4F Processor

     The Tiva™ C Series microcontrollers builds on this core to bring high-performance 32-bit computing

     to

     This chapter provides information on the Tiva™ C Series implementation of the Cortex-M4F

     processor, including the programming model, the memory model, the exception model, fault handling,

     and power management.

     For technical details on the instruction set, see the Cortex™-M4 instruction set chapter in the ARM®

     Cortex™-M4 Devices Generic User Guide (literature number ARM DUI 0553A).

2.1  Block Diagram

     The Cortex-M4F processor is built on a high-performance processor core, with a 3-stage pipeline

     Harvard architecture, making it ideal for demanding embedded applications. The processor delivers

     exceptional power efficiency through an efficient instruction set and extensively optimized design,

     providing high-end processing hardware including IEEE754-compliant single-precision floating-point

     computation, a range of single-cycle and SIMD multiplication and multiply-with-accumulate

     capabilities, saturating arithmetic and dedicated hardware division.

     To facilitate the design of cost-sensitive devices, the Cortex-M4F processor implements tightly

     coupled system components that reduce processor area while significantly improving interrupt

     handling and system debug capabilities. The Cortex-M4F processor implements a version of the

     Thumb® instruction set based on Thumb-2 technology, ensuring high code density and reduced

     program memory requirements. The Cortex-M4F instruction set provides the exceptional performance

     expected of a modern 32-bit architecture, with the high code density of 8-bit and 16-bit

     microcontrollers.

     The Cortex-M4F processor closely integrates a nested interrupt controller (NVIC), to deliver

     industry-leading interrupt performance. The TM4C123FE6PM NVIC includes a non-maskable

     interrupt (NMI) and provides eight interrupt priority levels. The tight integration of the processor core

     and NVIC provides fast execution of interrupt service routines (ISRs), dramatically reducing interrupt

     latency. The hardware stacking of registers and the ability to suspend load-multiple and store-multiple

     operations further reduce interrupt latency. Interrupt handlers do not require any assembler stubs

     which removes code overhead from the ISRs. Tail-chaining optimization also significantly reduces

     the overhead when switching from one ISR to another. To optimize low-power designs, the NVIC

     integrates with the sleep modes, including Deep-sleep mode, which enables the entire device to be

     rapidly powered down.

68                                                                                             June 12, 2014

                            Texas Instruments-Production Data
                                                                                      Tiva™ TM4C123FE6PM Microcontroller

          Figure 2-1. CPU   Block Diagram

                            Nested      Interrupts                FPU                     ARM

                            Vectored      Sleep            CM4 Core                   Cortex-M4F                      Serial

                            Interrupt                                                                                 Wire

                            Controller    Debug                                                                       Output

                                                     Instructions       Data              Embedded                    Trace

                                                           Memory                         Trace            Trace      Port

                                                           Protection                     Macrocell        Port       (SWO)

                                                                  Unit                                     Interface

                                                                                                           Unit

                                                                              Data        Instrumentation

                                                           Flash              Watchpoint  Trace Macrocell

                                                     Patch and                and Trace

                                                     Breakpoint                                                       ROM

                                                                                                                      Table

                                       Private Peripheral                                 Adv. Peripheral

                                          Bus                                                  Bus

                                        (internal)

                                                                              Bus                          I-code bus

                                                                              Matrix                       D-code bus

          Serial Wire JTAG                Debug                                                            System bus

                Debug Port              Access Port

2.2       Overview

2.2.1     System-Level Interface

          The Cortex-M4F processor provides multiple interfaces using AMBA® technology to provide

          high-speed, low-latency memory accesses. The core supports unaligned data accesses and

          implements atomic bit manipulation that enables faster peripheral controls, system spinlocks, and

          thread-safe Boolean data handling.

          The Cortex-M4F processor has a memory protection unit (MPU) that provides fine-grain memory

          control, enabling applications to implement security privilege levels and separate code, data and

          stack on a task-by-task basis.

2.2.2     Integrated Configurable Debug

          The Cortex-M4F processor implements a complete hardware debug solution, providing high system

          visibility of the processor and memory through either a traditional JTAG port or a 2-pin Serial Wire

          Debug (SWD) port that is ideal for microcontrollers and other small package devices. The Tiva™

          C Series implementation replaces the ARM SW-DP and JTAG-DP with the ARM

          CoreSight™-compliant Serial Wire JTAG Debug Port (SWJ-DP) interface. The SWJ-DP interface

          combines the SWD and JTAG debug ports into one module. See the ARM® Debug Interface V5

          Architecture Specification for details on SWJ-DP.

          For system trace, the processor integrates an Instrumentation Trace Macrocell (ITM) alongside data

          watchpoints and a profiling unit. To enable simple and cost-effective profiling of the system trace

          events, a Serial Wire Viewer (SWV) can export a stream of software-generated messages, data

          trace, and profiling information through a single pin.

June 12,  2014                                                                                                                69

                                        Texas Instruments-Production Data
The Cortex-M4F Processor

       The Embedded Trace Macrocell (ETM) delivers unrivaled instruction trace capture in an area smaller

       than traditional trace units, enabling full instruction trace. For more details on the ARM ETM, see

       the ARM® Embedded Trace Macrocell Architecture Specification.

       The Flash Patch and Breakpoint Unit (FPB) provides up to eight hardware breakpoint comparators

       that debuggers can use. The comparators in the FPB also provide remap functions for up to eight

       words of program code in the code memory region. This FPB enables applications stored in a

       read-only area of Flash memory to be patched in another area of on-chip SRAM or Flash memory.

       If a patch is required, the application programs the FPB to remap a number of addresses. When

       those addresses are accessed, the accesses are redirected to a remap table specified in the FPB

       configuration.

       For more information on the Cortex-M4F debug capabilities, see theARM® Debug Interface V5

       Architecture Specification.

2.2.3  Trace Port Interface Unit (TPIU)

       The TPIU acts as a bridge between the Cortex-M4F trace data from the ITM, and an off-chip Trace

       Port Analyzer, as shown in Figure 2-2 on page 70.

       Figure 2-2. TPIU Block Diagram

          Debug           ARM®  Trace                                                   Serial Wire

          ATB             Bus (ATB)    Asynchronous FIFO                  Trace Out     Trace Port

          Slave           Interface                                       (serializer)  (SWO)

          Port

          APB             Advance

          Slave           Peripheral

          Port            Bus (APB)

                          Interface

2.2.4  Cortex-M4F System Component Details

       The Cortex-M4F includes the following system components:

       ■  SysTick

          A 24-bit count-down timer that can be used as a Real-Time Operating           System (RTOS) tick timer

          or as a simple counter (see “System Timer (SysTick)” on page 121).

       ■  Nested Vectored Interrupt Controller (NVIC)

70                                                                                             June 12, 2014

                                       Texas Instruments-Production Data
                                                                        Tiva™ TM4C123FE6PM Microcontroller

                An embedded interrupt controller that supports low latency interrupt processing (see “Nested

                Vectored Interrupt Controller (NVIC)” on page 122).

          ■     System Control Block (SCB)

                The programming model interface to the processor. The SCB provides system implementation

                information and system control, including configuration, control, and reporting of system exceptions

                (see “System Control Block (SCB)” on page 123).

          ■     Memory Protection Unit (MPU)

                Improves system reliability by defining the memory attributes for different memory regions. The

                MPU provides up to eight different regions and an optional predefined background region (see

                “Memory Protection Unit (MPU)” on page 123).

          ■     Floating-Point Unit (FPU)

                Fully supports single-precision add, subtract, multiply, divide, multiply and accumulate, and

                square-root operations. It also provides conversions between fixed-point and floating-point data

                formats, and floating-point constant instructions (see “Floating-Point Unit (FPU)” on page 128).

2.3       Programming Model

          This section describes the Cortex-M4F programming model. In addition to the individual core register

          descriptions, information about the processor modes and privilege levels for software execution and

          stacks is included.

2.3.1     Processor Mode and Privilege Levels for Software Execution

          The Cortex-M4F has two modes of operation:

          ■     Thread mode

                Used to execute application software. The processor enters Thread mode when it comes out of

                reset.

          ■     Handler mode

                Used to handle exceptions. When the processor has finished exception processing, it returns to

                Thread mode.

          In addition, the Cortex-M4F has two privilege levels:

          ■     Unprivileged

                In this mode, software has the following restrictions:

                –  Limited access to the MSR and MRS instructions and no use of the CPS instruction

                –  No access to the system timer, NVIC, or system control block

                –  Possibly restricted access to memory or peripherals

          ■     Privileged

                In this mode, software can use all the instructions and has access to all resources.

          In Thread mode, the CONTROL register (see page 86) controls whether software execution is

          privileged or unprivileged. In Handler mode, software execution is always privileged.

June 12,  2014                                                                                                        71

                               Texas Instruments-Production Data
The Cortex-M4F Processor

       Only privileged software can write to the CONTROL register to change the privilege level for software

       execution in Thread mode. Unprivileged software can use the SVC instruction to make a supervisor

       call to transfer control to privileged software.

2.3.2  Stacks

       The processor uses a full descending stack, meaning that the stack pointer indicates the last stacked

       item on the memory. When the processor pushes a new item onto the stack, it decrements the stack

       pointer and then writes the item to the new memory location. The processor implements two stacks:

       the main stack and the process stack, with a pointer for each held in independent registers (see the

       SP register on page 76).

       In Thread mode, the CONTROL register (see page 86) controls whether the processor uses the

       main stack or the process stack. In Handler mode, the processor always uses the main stack. The

       options for processor operations are shown in Table 2-1 on page 72.

       Table 2-1. Summary of Processor Mode, Privilege Level, and Stack Use

       Processor Mode     Use                            Privilege Level               Stack Used

       Thread             Applications                   Privileged or unprivileged a  Main stack or process stack a

       Handler            Exception handlers             Always privileged             Main stack

       a. See CONTROL (page 86).

2.3.3  Register Map

       Figure 2-3 on page 73 shows the Cortex-M4F register set. Table 2-2 on page 73 lists the Core

       registers. The core registers are not memory mapped and are accessed by register name, so the

       base address is n/a (not applicable) and there is no offset.

72                                                                                                 June 12, 2014

                                  Texas Instruments-Production Data
                                                                           Tiva™ TM4C123FE6PM Microcontroller

            Figure 2-3. Cortex-M4F Register       Set

                                        R0

                                        R1

                                        R2

                                        R3

                  Low registers

                                        R4

                                        R5

                                        R6               General-purpose registers

                                        R7

                                        R8

                                        R9

                  High registers        R10

                                        R11

                                        R12

                  Stack Pointer         SP (R13)         PSP‡              MSP‡     ‡Banked version    of  SP

                  Link Register         LR (R14)

                Program Counter         PC (R15)

                                        PSR              Program status register

                                      PRIMASK

                                  FAULTMASK              Exception mask registers   Special registers

                                        BASEPRI

                                      CONTROL            CONTROL register

Table 2-2.  Processor  Register   Map

Offset      Name                  Type            Reset  Description                                           See

                                                                                                               page

-           R0                    RW              -      Cortex  General-Purpose    Register  0                75

-           R1                    RW              -      Cortex  General-Purpose    Register  1                75

-           R2                    RW              -      Cortex  General-Purpose    Register  2                75

-           R3                    RW              -      Cortex  General-Purpose    Register  3                75

-           R4                    RW              -      Cortex  General-Purpose    Register  4                75

-           R5                    RW              -      Cortex  General-Purpose    Register  5                75

-           R6                    RW              -      Cortex  General-Purpose    Register  6                75

-           R7                    RW              -      Cortex  General-Purpose    Register  7                75

-           R8                    RW              -      Cortex  General-Purpose    Register  8                75

-           R9                    RW              -      Cortex  General-Purpose    Register  9                75

-           R10                   RW              -      Cortex  General-Purpose    Register  10               75

-           R11                   RW              -      Cortex  General-Purpose    Register  11               75

June 12, 2014                                                                                                       73

                                        Texas Instruments-Production Data
The Cortex-M4F Processor

Table 2-2.  Processor  Register  Map   (continued)

    Offset  Name                 Type  Reset        Description                                         See

                                                                                                        page

    -       R12                  RW    -            Cortex General-Purpose Register  12                 75

    -       SP                   RW    -            Stack Pointer                                       76

    -       LR                   RW    0xFFFF.FFFF  Link Register                                       77

    -       PC                   RW    -            Program Counter                                     78

    -       PSR                  RW    0x0100.0000  Program Status Register                             79

    -       PRIMASK              RW    0x0000.0000  Priority Mask Register                              83

    -       FAULTMASK            RW    0x0000.0000  Fault Mask Register                                 84

    -       BASEPRI              RW    0x0000.0000  Base Priority Mask Register                         85

    -       CONTROL              RW    0x0000.0000  Control Register                                    86

    -       FPSC                 RW    -            Floating-Point Status Control                       88

2.3.4       Register Descriptions

            This section lists and describes the Cortex-M4F registers, in the order shown in Figure

            2-3 on page 73. The core registers are not memory mapped and are accessed by register name

            rather than offset.

            Note:    The register type shown in the register descriptions refers to type during program execution

                     in Thread mode and Handler mode. Debug access can differ.

74                                                                                                   June 12, 2014

                                       Texas Instruments-Production Data
                                                                                Tiva™ TM4C123FE6PM Microcontroller

                  Register 1: Cortex General-Purpose Register 0 (R0)

                  Register 2: Cortex General-Purpose Register 1 (R1)

                  Register 3: Cortex General-Purpose Register 2 (R2)

                  Register 4: Cortex General-Purpose Register 3 (R3)

                  Register 5: Cortex General-Purpose Register 4 (R4)

                  Register 6: Cortex General-Purpose Register 5 (R5)

                  Register 7: Cortex General-Purpose Register 6 (R6)

                  Register 8: Cortex General-Purpose Register 7 (R7)

                  Register 9: Cortex General-Purpose Register 8 (R8)

                  Register 10: Cortex General-Purpose Register 9 (R9)

                  Register 11: Cortex General-Purpose Register 10 (R10)

                  Register 12: Cortex General-Purpose Register 11 (R11)

                  Register 13: Cortex General-Purpose Register 12 (R12)

                  The Rn registers are 32-bit general-purpose registers for data operations  and  can be  accessed

                  from either privileged or unprivileged mode.

Cortex General-Purpose    Register  0  (R0)

Type RW, reset -

       31         30  29    28         27        26  25     24        23    22  21  20       19   18      17  16

                                                                DATA

Type   RW         RW  RW    RW         RW        RW  RW     RW        RW    RW  RW  RW       RW   RW      RW  RW

Reset  -          -   -     -          -         -   -      -         -     -   -   -        -    -       -   -

       15         14  13    12         11        10  9      8         7     6   5   4        3    2       1   0

                                                                DATA

Type   RW         RW  RW    RW         RW        RW  RW     RW        RW    RW  RW  RW       RW   RW      RW  RW

Reset  -          -   -     -          -         -   -      -         -     -   -   -        -    -       -   -

       Bit/Field      Name                 Type      Reset  Description

       31:0           DATA                 RW        -      Register data.

June 12, 2014                                                                                                       75

                                             Texas Instruments-Production Data
The Cortex-M4F Processor

                  Register 14: Stack Pointer (SP)

                  The Stack Pointer (SP) is register R13. In Thread mode, the function of this register changes

                  depending on the ASP bit in the Control Register (CONTROL) register. When the ASP bit is clear,

                  this register is the Main Stack Pointer (MSP). When the ASP bit is set, this register is the Process

                  Stack Pointer (PSP). On reset, the ASP bit is clear, and the processor loads the MSP with the value

                  from address 0x0000.0000. The MSP can only be accessed in privileged mode; the PSP can be

                  accessed in either privileged or unprivileged mode.

Stack Pointer (SP)

Type RW, reset -

       31         30  29      28  27        26  25     24      23      22  21  20  19                   18  17          16

                                                           SP

Type   RW         RW  RW      RW  RW        RW  RW     RW      RW      RW  RW  RW  RW                   RW  RW          RW

Reset  -          -   -       -   -         -   -      -       -       -   -   -   -                    -   -           -

       15         14  13      12  11        10  9      8       7       6   5   4   3                    2   1           0

                                                           SP

Type   RW         RW  RW      RW  RW        RW  RW     RW      RW      RW  RW  RW  RW                   RW  RW          RW

Reset  -          -   -       -   -         -   -      -       -       -   -   -   -                    -   -           -

       Bit/Field      Name            Type      Reset  Description

       31:0               SP          RW        -      This field is the address of the stack pointer.

76                                                                                                          June 12, 2014

                                      Texas Instruments-Production Data
                                                                                   Tiva™ TM4C123FE6PM Microcontroller

                  Register 15: Link Register (LR)

                  The Link Register (LR) is register R14, and it stores the return information for subroutines, function

                  calls, and exceptions. The Link Register can be accessed from either privileged or unprivileged

                  mode.

                  EXC_RETURN is loaded into the LR on exception entry. See Table 2-10 on page 109 for the values

                  and description.

Link Register (LR)

Type RW, reset 0xFFFF.FFFF

       31         30     29       28  27        26  25           24        23  22  21               20  19  18  17        16

                                                                     LINK

Type   RW         RW     RW       RW  RW        RW  RW           RW        RW  RW  RW               RW  RW  RW  RW        RW

Reset  1          1      1        1   1         1   1            1         1   1   1                1   1   1   1         1

       15         14     13       12  11        10  9            8         7   6   5                4   3   2   1         0

                                                                     LINK

Type   RW         RW     RW       RW  RW        RW  RW           RW        RW  RW  RW               RW  RW  RW  RW        RW

Reset  1          1      1        1   1         1   1            1         1   1   1                1   1   1   1         1

       Bit/Field            Name          Type      Reset        Description

       31:0                 LINK          RW        0xFFFF.FFFF  This field is the return address.

June 12, 2014                                                                                                                 77

                                          Texas Instruments-Production Data
The Cortex-M4F Processor

                  Register 16: Program Counter (PC)

                  The Program Counter (PC) is register R15, and it contains the current program address. On reset,

                  the processor loads the PC with the value of the reset vector, which is at address 0x0000.0004. Bit

                  0 of the reset vector is loaded into the THUMB bit of the EPSR at reset and must be 1. The PC register

                  can be accessed in either privileged or unprivileged mode.

Program Counter       (PC)

Type RW, reset -

       31         30  29        28  27        26  25     24      23   22      21  20                 19  18  17           16

                                                             PC

Type   RW         RW  RW        RW  RW        RW  RW     RW      RW   RW      RW  RW                 RW  RW  RW           RW

Reset  -          -   -         -   -         -   -      -       -    -       -   -                  -   -   -            -

       15         14  13        12  11        10  9      8       7    6       5   4                  3   2   1            0

                                                             PC

Type   RW         RW  RW        RW  RW        RW  RW     RW      RW   RW      RW  RW                 RW  RW  RW           RW

Reset  -          -   -         -   -         -   -      -       -    -       -   -                  -   -   -            -

       Bit/Field      Name              Type      Reset  Description

       31:0                 PC          RW        -      This field is the current program address.

78                                                                                                           June 12, 2014

                                        Texas Instruments-Production Data
                                                                                                         Tiva™ TM4C123FE6PM Microcontroller

           Register 17: Program Status Register (PSR)

           Note:            This register is also referred to as xPSR.

           The Program Status Register (PSR) has three functions, and the register bits are assigned to the

           different functions:

           ■       Application Program Status Register (APSR), bits 31:27, bits 19:16

           ■       Execution Program Status Register (EPSR), bits 26:24, 15:10

           ■       Interrupt Program Status Register (IPSR), bits 7:0

           The PSR, IPSR, and EPSR registers can only be accessed in privileged mode; the APSR register

           can be accessed in either privileged or unprivileged mode.

           APSR contains the current state of the condition flags from previous instruction executions.

           EPSR contains the Thumb state bit and the execution state bits for the If-Then (IT) instruction or

           the Interruptible-Continuable Instruction (ICI) field for an interrupted load multiple or store multiple

           instruction. Attempts to read the EPSR directly through application software using the MSR instruction

           always return zero. Attempts to write the EPSR using the MSR instruction in application software

           are always ignored. Fault handlers can examine the EPSR value in the stacked PSR to determine

           the operation that faulted (see “Exception Entry and Return” on page 106).

           IPSR contains the exception type number of the current Interrupt Service Routine (ISR).

           These registers can be accessed individually or as a combination of any two or all three registers,

           using the register name as an argument to the MSR or MRS instructions. For example, all of the

           registers can be read using PSR with the MRS instruction, or APSR only can be written to using

           APSR with the MSR instruction. page 79 shows the possible register combinations for the PSR. See

           the MRS and MSR instruction descriptions in the Cortex™-M4 instruction set chapter in the ARM®

           Cortex™-M4 Devices Generic User Guide (literature number ARM DUI 0553A) for more information

           about how to access the program status registers.

           Table 2-3. PSR Register Combinations

               Register                               Type                                 Combination

               PSR                                    RWa, b                               APSR, EPSR, and IPSR

               IEPSR                                  RO                                   EPSR and IPSR

               IAPSR                                  RWa                                  APSR and IPSR

               EAPSR                                  RWb                                  APSR and EPSR

           a. The processor ignores writes to the IPSR bits.

           b. Reads of the EPSR bits return zero, and the processor               ignores  writes to these bits.

Program Status Register (PSR)

Type RW, reset 0x0100.0000

       31      30           29            28  27  26            25            24  23       22            21  20              19  18      17  16

       N       Z            C             V   Q       ICI / IT      THUMB                      reserved                              GE

Type   RW  RW         RW                  RW  RW  RO            RO  RO            RO       RO  RO            RO      RW          RW      RW  RW

Reset  0       0            0             0   0   0             0             1   0        0             0        0          0   0       0   0

       15      14           13            12  11  10            9             8   7        6             5        4          3   2       1   0

                                ICI / IT                            reserved                                         ISRNUM

Type   RO  RO         RO                  RO  RO  RO            RO  RO            RO       RO  RO            RO      RO          RO      RO  RO

Reset  0       0            0             0   0   0             0             0   0        0             0        0          0   0       0   0

June 12, 2014                                                                                                                                    79

                                                  Texas Instruments-Production Data
The Cortex-M4F  Processor

    Bit/Field   Name       Type   Reset  Description

    31          N          RW     0      APSR Negative or Less Flag

                                         Value  Description

                                         1      The previous operation result was negative or less than.

                                         0      The previous operation result was positive, zero, greater than,

                                                or equal.

                                         The value of this bit is only meaningful when accessing PSR or APSR.

    30          Z          RW     0      APSR Zero Flag

                                         Value  Description

                                         1      The previous operation result was zero.

                                         0      The previous operation result was non-zero.

                                         The value of this bit is only meaningful when accessing PSR or APSR.

    29          C          RW     0      APSR Carry or Borrow Flag

                                         Value  Description

                                         1      The previous add operation resulted in a carry bit or the previous

                                                subtract operation did not result in a borrow bit.

                                         0      The previous add operation did not result in a carry bit or the

                                                previous subtract operation resulted in a borrow bit.

                                         The value of this bit is only meaningful when accessing PSR or APSR.

    28          V          RW     0      APSR Overflow Flag

                                         Value  Description

                                         1      The previous operation resulted in an overflow.

                                         0      The previous operation did not result in an overflow.

                                         The value of this bit is only meaningful when accessing PSR or APSR.

    27          Q          RW     0      APSR DSP Overflow and Saturation Flag

                                         Value  Description

                                         1      DSP Overflow or saturation has occurred when using a SIMD

                                                instruction.

                                         0      DSP overflow or saturation has not occurred since reset or since

                                                the bit was last cleared.

                                         The value of this bit is only meaningful when accessing PSR or APSR.

                                         This bit is cleared by software using an MRS instruction.

80                                                                                                  June 12, 2014

                           Texas  Instruments-Production Data
                                                             Tiva™ TM4C123FE6PM Microcontroller

Bit/Field      Name      Type   Reset  Description

26:25          ICI / IT  RO     0x0    EPSR ICI / IT status

                                       These bits, along with bits 15:10, contain the Interruptible-Continuable

                                       Instruction (ICI) field for an interrupted load multiple or store multiple

                                       instruction or the execution state bits of the IT instruction.

                                       When EPSR holds the ICI execution state, bits 26:25 are zero.

                                       The If-Then block contains up to four instructions following an IT

                                       instruction. Each instruction in the block is conditional. The conditions

                                       for the instructions are either all the same, or some can be the inverse

                                       of others. See the Cortex™-M4 instruction set chapter in the ARM®

                                       Cortex™-M4 Devices Generic User Guide (literature number ARM DUI

                                       0553A) for more information.

                                       The value of this field is only meaningful when accessing PSR or EPSR.

                                       Note that these EPSR bits cannot be accessed using MRS and MSR

                                       instructions but the definitions are provided to allow the stacked (E)PSR

                                       value to be decoded within an exception handler.

24             THUMB     RO     1      EPSR Thumb State

                                       This bit indicates the Thumb state and should always be set.

                                       The following can clear the THUMB bit:

                                       ■  The BLX, BX and POP{PC} instructions

                                       ■  Restoration from the stacked xPSR value on an exception return

                                       ■  Bit 0 of the vector value on an exception entry or reset

                                       Attempting to execute instructions when this bit is clear results in a fault

                                       or lockup. See “Lockup” on page 111 for more information.

                                       The value of this bit is only meaningful when accessing PSR or EPSR.

23:20          reserved  RO     0x00   Software should not rely on the value of a reserved bit. To provide

                                       compatibility with future products, the value of a reserved bit should be

                                       preserved across a read-modify-write operation.

19:16          GE        RW     0x0    Greater Than or Equal Flags

                                       See the description of the SEL instruction in the Cortex™-M4 instruction

                                       set chapter in the ARM® Cortex™-M4 Devices Generic User Guide

                                       (literature number ARM DUI 0553A) for more information.

                                       The value of this field is only meaningful when accessing PSR or APSR.

June 12, 2014                                                                                                        81

                         Texas  Instruments-Production Data
The Cortex-M4F  Processor

    Bit/Field   Name       Type   Reset  Description

    15:10       ICI / IT   RO     0x0    EPSR ICI / IT status

                                         These bits, along with bits 26:25, contain the Interruptible-Continuable

                                         Instruction (ICI) field for an interrupted load multiple or store multiple

                                         instruction or the execution state bits of the IT instruction.

                                         When an interrupt occurs during the execution of an LDM, STM, PUSH

                                         POP, VLDM, VSTM, VPUSH, or VPOP instruction, the processor stops the

                                         load multiple or store multiple instruction operation temporarily and

                                         stores the next register operand in the multiple operation to bits 15:12.

                                         After servicing the interrupt, the processor returns to the register pointed

                                         to by bits 15:12 and resumes execution of the multiple load or store

                                         instruction. When EPSR holds the ICI execution state, bits 11:10 are

                                         zero.

                                         The If-Then block contains up to four instructions following a 16-bit IT

                                         instruction. Each instruction in the block is conditional. The conditions

                                         for the instructions are either all the same, or some can be the inverse

                                         of others. See the Cortex™-M4 instruction set chapter in the ARM®

                                         Cortex™-M4 Devices Generic User Guide (literature number ARM DUI

                                         0553A) for more information.

                                         The value of this field is only meaningful when accessing PSR or EPSR.

    9:8         reserved   RO     0x0    Software should not rely on the value of a reserved bit. To provide

                                         compatibility with future products, the value of a reserved bit should be

                                         preserved across a read-modify-write operation.

    7:0         ISRNUM     RO     0x00   IPSR ISR Number

                                         This field contains the exception type number of the current Interrupt

                                         Service Routine (ISR).

                                         Value        Description

                                         0x00         Thread mode

                                         0x01         Reserved

                                         0x02         NMI

                                         0x03         Hard fault

                                         0x04         Memory management     fault

                                         0x05         Bus fault

                                         0x06         Usage fault

                                         0x07-0x0A    Reserved

                                         0x0B         SVCall

                                         0x0C         Reserved for Debug

                                         0x0D         Reserved

                                         0x0E         PendSV

                                         0x0F         SysTick

                                         0x10         Interrupt Vector 0

                                         0x11         Interrupt Vector 1

                                         ...          ...

                                         0x9A         Interrupt Vector 138

                                         See “Exception Types” on page 100 for more information.

                                         The value of this field is only meaningful when accessing PSR or IPSR.

82                                                                                        June 12, 2014

                           Texas  Instruments-Production Data
                                                                                             Tiva™ TM4C123FE6PM Microcontroller

                  Register 18: Priority Mask Register (PRIMASK)

                  The PRIMASK register prevents activation of all exceptions with programmable priority. Reset,

                  non-maskable interrupt (NMI), and hard fault are the only exceptions with fixed priority. Exceptions

                  should be disabled when they might impact the timing of critical tasks. This register is only accessible

                  in privileged mode. The MSR and MRS instructions are used to access the PRIMASK register, and

                  the CPS instruction may be used to change the value of the PRIMASK register. See the Cortex™-M4

                  instruction set chapter in the ARM® Cortex™-M4 Devices Generic User Guide (literature number

                  ARM DUI 0553A) for more information on these instructions. For more information on exception

                  priority levels, see “Exception Types” on page 100.

Priority Mask Register (PRIMASK)

Type RW, reset 0x0000.0000

       31         30        29    28  27        26  25          24            23         22  21  20  19          18  17                    16

                                                                    reserved

Type   RO         RO  RO          RO  RO        RO  RO          RO        RO             RO  RO  RO  RO          RO  RO                    RO

Reset  0          0         0     0   0         0   0           0             0          0   0   0   0           0   0                     0

       15         14        13    12  11        10  9           8             7          6   5   4   3           2   1                     0

                                                           reserved                                                                        PRIMASK

Type   RO         RO  RO          RO  RO        RO  RO          RO        RO             RO  RO  RO  RO          RO  RO                    RW

Reset  0          0         0     0   0         0   0           0             0          0   0   0   0           0   0                     0

       Bit/Field            Name          Type      Reset       Description

       31:1           reserved            RO        0x0000.000  Software should not rely on the value of a reserved bit. To provide

                                                                compatibility with future products, the value of a reserved bit should be

                                                                preserved across a read-modify-write operation.

       0              PRIMASK             RW        0           Priority Mask

                                                                   Value      Description

                                                                   1          Prevents the activation of all exceptions with configurable

                                                                              priority.

                                                                   0          No effect.

June 12, 2014                                                                                                                                  83

                                          Texas Instruments-Production Data
The Cortex-M4F Processor

                  Register 19: Fault Mask Register (FAULTMASK)

                  The FAULTMASK register prevents activation of all exceptions except for the Non-Maskable Interrupt

                  (NMI). Exceptions should be disabled when they might impact the timing of critical tasks. This register

                  is only accessible in privileged mode. The MSR and MRS instructions are used to access the

                  FAULTMASK register, and the CPS instruction may be used to change the value of the FAULTMASK

                  register. See the Cortex™-M4 instruction set chapter in the ARM® Cortex™-M4 Devices Generic

                  User Guide (literature number ARM DUI 0553A) for more information on these instructions. For

                  more information on exception priority levels, see “Exception Types” on page 100.

Fault Mask Register (FAULTMASK)

Type RW, reset 0x0000.0000

       31         30        29    28  27        26  25          24            23  22       21    20  19          18  17                  16

                                                                    reserved

Type   RO         RO  RO          RO  RO        RO  RO          RO        RO      RO       RO    RO  RO          RO  RO                  RO

Reset  0          0         0     0   0         0   0           0             0   0        0     0   0           0   0                   0

       15         14        13    12  11        10  9           8             7   6        5     4   3           2   1                   0

                                                           reserved                                                                      FAULTMASK

Type   RO         RO  RO          RO  RO        RO  RO          RO        RO      RO       RO    RO  RO          RO  RO                  RW

Reset  0          0         0     0   0         0   0           0             0   0        0     0   0           0   0                   0

       Bit/Field            Name          Type      Reset       Description

       31:1           reserved            RO        0x0000.000  Software should not rely on the value of a reserved bit. To provide

                                                                compatibility with future products, the value of a reserved bit should be

                                                                preserved across a read-modify-write operation.

       0              FAULTMASK           RW        0           Fault Mask

                                                                   Value      Description

                                                                   1          Prevents the activation of all exceptions except for NMI.

                                                                   0          No effect.

                                                                The processor clears the FAULTMASK bit on exit from any exception

                                                                handler except the NMI handler.

84                                                                                                                   June 12, 2014

                                          Texas Instruments-Production Data
                                                                                                       Tiva™ TM4C123FE6PM Microcontroller

                  Register 20: Base Priority Mask Register (BASEPRI)

                  The BASEPRI register defines the minimum priority for exception processing. When BASEPRI is

                  set to a nonzero value, it prevents the activation of all exceptions with the same or lower priority

                  level as the BASEPRI value. Exceptions should be disabled when they might impact the timing of

                  critical tasks. This register is only accessible in privileged mode. For more information on exception

                  priority levels, see “Exception Types” on page 100.

Base Priority Mask Register       (BASEPRI)

Type RW, reset 0x0000.0000

       31         30        29    28            27        26  25         24            23  22          21  20               19   18          17  16

                                                                             reserved

Type   RO         RO  RO          RO  RO                  RO  RO         RO        RO      RO          RO  RO               RO  RO           RO  RO

Reset  0          0         0     0             0         0   0          0             0   0           0   0                0    0           0   0

       15         14        13    12            11        10  9          8             7   6           5   4                3    2           1   0

                                      reserved                                             BASEPRI                              reserved

Type   RO         RO  RO          RO  RO                  RO  RO         RO        RW      RW          RW  RO               RO  RO           RO  RO

Reset  0          0         0     0             0         0   0          0             0   0           0   0                0    0           0   0

       Bit/Field            Name                    Type      Reset      Description

       31:8           reserved                      RO        0x0000.00  Software should not rely on the value of a reserved bit. To provide

                                                                         compatibility with future products, the value of a reserved bit should be

                                                                         preserved across a read-modify-write operation.

       7:5            BASEPRI                       RW        0x0        Base Priority

                                                                         Any exception that has a programmable priority level with the same or

                                                                         lower priority as the value of this field is masked. The PRIMASK register

                                                                         can be used to mask all exceptions with programmable priority levels.

                                                                         Higher priority exceptions have lower priority levels.

                                                                            Value      Description

                                                                            0x0        All exceptions  are unmasked.

                                                                            0x1        All exceptions  with priority level  1-7 are masked.

                                                                            0x2        All exceptions  with priority level  2-7 are masked.

                                                                            0x3        All exceptions  with priority level  3-7 are masked.

                                                                            0x4        All exceptions  with priority level  4-7 are masked.

                                                                            0x5        All exceptions  with priority level  5-7 are masked.

                                                                            0x6        All exceptions  with priority level  6-7 are masked.

                                                                            0x7        All exceptions  with priority level  7 are masked.

       4:0            reserved                      RO        0x0        Software should not rely on the value of a reserved bit. To provide

                                                                         compatibility with future products, the value of a reserved bit should be

                                                                         preserved across a read-modify-write operation.

June 12, 2014                                                                                                                                        85

                                                    Texas Instruments-Production Data
The Cortex-M4F Processor

                  Register 21: Control Register (CONTROL)

                  The CONTROL register controls the stack used and the privilege level for software execution when

                  the processor is in Thread mode, and indicates whether the FPU state is active. This register is only

                  accessible in privileged mode.

                  Handler mode always uses the MSP, so the processor ignores explicit writes to the ASP bit of the

                  CONTROL register when in Handler mode. The exception entry and return mechanisms automatically

                  update the CONTROL register based on the EXC_RETURN value (see Table 2-10 on page 109).

                  In an OS environment, threads running in Thread mode should use the process stack and the kernel

                  and exception handlers should use the main stack. By default, Thread mode uses the MSP. To

                  switch the stack pointer used in Thread mode to the PSP, either use the MSR instruction to set the

                  ASP bit, as detailed in the Cortex™-M4 instruction set chapter in the ARM® Cortex™-M4 Devices

                  Generic User Guide (literature number ARM DUI 0553A), or perform an exception return to Thread

                  mode with the appropriate EXC_RETURN value, as shown in Table 2-10 on page 109.

                  Note:     When changing the stack pointer, software must use an ISB instruction immediately after

                            the MSR instruction, ensuring that instructions after the ISB execute use the new stack

                            pointer. See the Cortex™-M4 instruction set chapter in the ARM® Cortex™-M4 Devices

                            Generic User Guide (literature number ARM DUI 0553A).

Control Register (CONTROL)

Type RW, reset 0x0000.0000

       31         30        29     28  27        26  25          24            23  22       21        20         19  18    17         16

                                                                     reserved

Type   RO         RO     RO        RO  RO        RO  RO          RO        RO      RO       RO  RO               RO  RO    RO         RO

Reset  0          0         0      0   0         0   0           0             0   0        0         0          0   0     0          0

       15         14        13     12  11        10  9           8             7   6        5         4          3   2     1          0

                                                     reserved                                                        FPCA  ASP        TMPL

Type   RO         RO     RO        RO  RO        RO  RO          RO        RO      RO       RO  RO               RO  RW    RW         RW

Reset  0          0         0      0   0         0   0           0             0   0        0         0          0   0     0          0

       Bit/Field            Name           Type      Reset       Description

       31:3              reserved          RO        0x0000.000  Software should not rely on the value of a reserved bit. To provide

                                                                 compatibility with future products, the value of a reserved bit should be

                                                                 preserved across a read-modify-write operation.

       2                    FPCA           RW        0           Floating-Point Context Active

                                                                    Value      Description

                                                                    1          Floating-point context active

                                                                    0          No floating-point context active

                                                                 The Cortex-M4F uses this bit to determine whether to preserve

                                                                 floating-point state when processing an exception.

                                                                 Important:        Two bits control when FPCA can be enabled: the ASPEN

                                                                                   bit in the Floating-Point Context Control (FPCC)

                                                                                   register and the DISFPCA bit in the Auxiliary Control

                                                                                   (ACTLR) register.

86                                                                                                                         June 12, 2014

                                           Texas Instruments-Production Data
                                                         Tiva™ TM4C123FE6PM Microcontroller

Bit/Field      Name  Type   Reset  Description

1              ASP   RW     0      Active Stack Pointer

                                   Value  Description

                                   1      The PSP is the current stack pointer.

                                   0      The MSP is the current stack pointer

                                   In Handler mode, this bit reads as zero and ignores writes. The

                                   Cortex-M4F updates this bit automatically on exception return.

0              TMPL  RW     0      Thread Mode Privilege Level

                                   Value  Description

                                   1      Unprivileged software can be executed in Thread mode.

                                   0      Only privileged software can be executed in Thread mode.

June 12, 2014                                                                                       87

                     Texas  Instruments-Production Data
The Cortex-M4F Processor

                  Register 22: Floating-Point Status Control (FPSC)

                  The FPSC register provides all necessary user-level control of                     the  floating-point system.

Floating-Point Status Control (FPSC)

Type RW, reset -

       31         30  29        28            27        26   25     24  23         22            21       20   19            18   17         16

       N          Z   C         V   reserved            AHP  DN     FZ      RMODE                                  reserved

Type   RW         RW  RW        RW    RO                RW   RW     RW  RW       RW            RO         RO   RO    RO          RO          RO

Reset  -          -   -         -             0         -    -      -   -          -             0        0    0             0    0          0

       15         14  13        12            11        10   9      8   7          6             5        4    3             2    1          0

                                    reserved                            IDC            reserved           IXC  UFC   OFC         DZC        IOC

Type   RO         RO  RO        RO    RO                RO   RO     RO  RW         RO          RO         RW   RW    RW          RW          RW

Reset  0          0   0         0             0         0    0      0   -          0             0        -    -             -    -          -

       Bit/Field      Name                        Type       Reset  Description

       31                 N                       RW         -      Negative Condition Code Flag

                                                                    Floating-point comparison operations update this condition code flag.

       30                 Z                       RW         -      Zero Condition Code Flag

                                                                    Floating-point comparison operations update this condition code flag.

       29                 C                       RW         -      Carry Condition Code Flag

                                                                    Floating-point comparison operations update this condition code flag.

       28                 V                       RW         -      Overflow Condition Code Flag

                                                                    Floating-point comparison operations update this condition code flag.

       27             reserved                    RO         0      Software should not rely on the value of a reserved bit. To provide

                                                                    compatibility with future products, the value of a reserved bit should be

                                                                    preserved across a read-modify-write operation.

       26                AHP                      RW         -      Alternative Half-Precision

                                                                    When set, alternative half-precision format is selected. When clear,

                                                                    IEEE half-precision format is selected.

                                                                    The AHP bit in the FPDSC register holds the default value for this bit.

       25                 DN                      RW         -      Default NaN Mode

                                                                    When set, any operation involving one or more NaNs returns the Default

                                                                    NaN. When clear, NaN operands propagate through to the output of a

                                                                    floating-point operation.

                                                                    The DN bit in the FPDSC register holds the default value for this bit.

       24                 FZ                      RW         -      Flush-to-Zero Mode

                                                                    When set, Flush-to-Zero mode is enabled. When clear, Flush-to-Zero

                                                                    mode is disabled and the behavior of the floating-point system is fully

                                                                    compliant with the IEEE 754 standard.

                                                                    The FZ bit in the FPDSC register holds the default value for this bit.

88                                                                                                                               June 12, 2014

                                                  Texas Instruments-Production Data
                                                             Tiva™ TM4C123FE6PM Microcontroller

Bit/Field      Name      Type   Reset  Description

23:22          RMODE     RW     -      Rounding Mode

                                       The specified rounding mode is used by almost all floating-point

                                       instructions.

                                       The RMODE bit in the FPDSC register holds the default value for this bit.

                                       Value  Description

                                       0x0    Round to Nearest (RN) mode

                                       0x1    Round towards Plus Infinity (RP) mode

                                       0x2    Round towards Minus Infinity (RM) mode

                                       0x3    Round towards Zero (RZ) mode

21:8           reserved  RO     0x0    Software should not rely on the value of a reserved bit. To provide

                                       compatibility with future products, the value of a reserved bit should be

                                       preserved across a read-modify-write operation.

7              IDC       RW     -      Input Denormal Cumulative Exception

                                       When set, indicates this exception has occurred since 0 was last written

                                       to this bit.

6:5            reserved  RO     0x0    Software should not rely on the value of a reserved bit. To provide

                                       compatibility with future products, the value of a reserved bit should be

                                       preserved across a read-modify-write operation.

4              IXC       RW     -      Inexact Cumulative Exception

                                       When set, indicates this exception has occurred since 0 was last written

                                       to this bit.

3              UFC       RW     -      Underflow Cumulative Exception

                                       When set, indicates this exception has occurred since 0 was last written

                                       to this bit.

2              OFC       RW     -      Overflow Cumulative Exception

                                       When set, indicates this exception has occurred since 0 was last written

                                       to this bit.

1              DZC       RW     -      Division by Zero Cumulative Exception

                                       When set, indicates this exception has occurred since 0 was last written

                                       to this bit.

0              IOC       RW     -      Invalid Operation Cumulative Exception

                                       When set, indicates this exception has occurred since 0 was last written

                                       to this bit.

June 12, 2014                                                                                                     89

                         Texas  Instruments-Production Data
The Cortex-M4F Processor

2.3.5        Exceptions and Interrupts

             The Cortex-M4F processor supports interrupts and system exceptions. The processor and the

             Nested Vectored Interrupt Controller (NVIC) prioritize and handle all exceptions. An exception

             changes the normal flow of software control. The processor uses Handler mode to handle all

             exceptions except for reset. See “Exception Entry and Return” on page 106 for more information.

             The NVIC registers control interrupt handling. See “Nested Vectored Interrupt Controller

             (NVIC)” on page 122 for more information.

2.3.6        Data Types

             The Cortex-M4F supports 32-bit words, 16-bit halfwords, and 8-bit bytes. The processor also supports

             64-bit data transfer instructions. All instruction and data memory accesses are little endian. See

             “Memory Regions, Types and Attributes” on page 93 for more information.

2.4          Memory Model

             This section describes the processor memory map, the behavior of memory accesses, and the

             bit-banding features. The processor has a fixed memory map that provides up to 4 GB of addressable

             memory.

             The memory map for the TM4C123FE6PM controller is provided in Table 2-4 on page 90. In this

             manual, register addresses are given as a hexadecimal increment, relative to the module's base

             address as shown in the memory map.

             The regions for SRAM and peripherals include bit-band regions. Bit-banding provides atomic

             operations to bit data (see “Bit-Banding” on page 95).

             The processor reserves regions of the Private peripheral bus (PPB) address range for core peripheral

             registers (see “Cortex-M4 Peripherals” on page 120).

             Note:  Within the memory map, attempts to read or write addresses in reserved spaces result in

                    a bus fault. In addition, attempts to write addresses in the flash range also result in a bus

                    fault.

Table 2-4. Memory   Map

Start                     End                     Description                                                For details,

                                                                                                             see page ...

Memory

0x0000.0000               0x0001.FFFF             On-chip Flash                                              499

0x0002.0000               0x1FFF.FFFF             Reserved                                                   -

0x2000.0000               0x2000.7FFF             Bit-banded on-chip SRAM                                    485

0x2000.8000               0x21FF.FFFF             Reserved                                                   -

0x2200.0000               0x220F.FFFF             Bit-band alias of bit-banded  on-chip  SRAM  starting  at  485

                                                  0x2000.0000

0x2210.0000               0x3FFF.FFFF             Reserved                                                   -

Peripherals

0x4000.0000               0x4000.0FFF             Watchdog timer 0                                           735

0x4000.1000               0x4000.1FFF             Watchdog timer 1                                           735

0x4000.2000               0x4000.3FFF             Reserved                                                   -

0x4000.4000               0x4000.4FFF             GPIO Port A                                                617

0x4000.5000               0x4000.5FFF             GPIO Port B                                                617

90                                                                                                           June 12, 2014

                                       Texas Instruments-Production Data
                                                                         Tiva™  TM4C123FE6PM  Microcontroller

Table 2-4. Memory  Map (continued)

Start              End                     Description                                        For details,

                                                                                              see page ...

0x4000.6000        0x4000.6FFF             GPIO Port  C                                       617

0x4000.7000        0x4000.7FFF             GPIO Port  D                                       617

0x4000.8000        0x4000.8FFF             SSI0                                               926

0x4000.9000        0x4000.9FFF             SSI1                                               926

0x4000.A000        0x4000.AFFF             SSI2                                               926

0x4000.B000        0x4000.BFFF             SSI3                                               926

0x4000.C000        0x4000.CFFF             UART0                                              862

0x4000.D000        0x4000.DFFF             UART1                                              862

0x4000.E000        0x4000.EFFF             UART2                                              862

0x4000.F000        0x4000.FFFF             UART3                                              862

0x4001.0000        0x4001.0FFF             UART4                                              862

0x4001.1000        0x4001.1FFF             UART5                                              862

0x4001.2000        0x4001.2FFF             UART6                                              862

0x4001.3000        0x4001.3FFF             UART7                                              862

0x4001.4000        0x4001.FFFF             Reserved                                           -

Peripherals

0x4002.0000        0x4002.0FFF             I2C 0                                              976

0x4002.1000        0x4002.1FFF             I2C 1                                              976

0x4002.2000        0x4002.2FFF             I2C 2                                              976

0x4002.3000        0x4002.3FFF             I2C 3                                              976

0x4002.4000        0x4002.4FFF             GPIO Port E                                        617

0x4002.5000        0x4002.5FFF             GPIO Port F                                        617

0x4002.6000        0x4002.6FFF             GPIO Port G                                        617

0x4002.7000        0x4002.7FFF             Reserved                                           -

0x4002.8000        0x4002.8FFF             PWM 0                                              1199

0x4002.9000        0x4002.9FFF             PWM 1                                              1199

0x4002.A000        0x4002.BFFF             Reserved                                           -

0x4002.C000        0x4002.CFFF             QEI0                                               1272

0x4002.D000        0x4002.DFFF             QEI1                                               1272

0x4002.E000        0x4002.FFFF             Reserved                                           -

0x4003.0000        0x4003.0FFF             16/32-bit Timer  0                                 684

0x4003.1000        0x4003.1FFF             16/32-bit Timer  1                                 684

0x4003.2000        0x4003.2FFF             16/32-bit Timer  2                                 684

0x4003.3000        0x4003.3FFF             16/32-bit Timer  3                                 684

0x4003.4000        0x4003.4FFF             16/32-bit Timer  4                                 684

0x4003.5000        0x4003.5FFF             16/32-bit Timer  5                                 684

0x4003.6000        0x4003.6FFF             32/64-bit Timer  0                                 684

0x4003.7000        0x4003.7FFF             32/64-bit Timer  1                                 684

0x4003.8000        0x4003.8FFF             ADC0                                               777

0x4003.9000        0x4003.9FFF             ADC1                                               777

0x4003.A000        0x4003.BFFF             Reserved                                           -

June 12, 2014                                                                                               91

                                    Texas  Instruments-Production  Data
The Cortex-M4F Processor

Table 2-4. Memory Map (continued)

Start                     End                 Description                                               For details,

                                                                                                        see page ...

0x4003.C000               0x4003.CFFF         Analog Comparators                                        1179

0x4003.D000               0x4003.FFFF         Reserved                                                  -

0x4004.0000               0x4004.0FFF         CAN0 Controller                                           1026

0x4004.1000               0x4004.1FFF         CAN1 Controller                                           1026

0x4004.2000               0x4004.BFFF         Reserved                                                  -

0x4004.C000               0x4004.CFFF         32/64-bit Timer 2                                         684

0x4004.D000               0x4004.DFFF         32/64-bit Timer 3                                         684

0x4004.E000               0x4004.EFFF         32/64-bit Timer 4                                         684

0x4004.F000               0x4004.FFFF         32/64-bit Timer 5                                         684

0x4005.0000               0x4005.0FFF         USB                                                       1073

0x4005.1000               0x4005.7FFF         Reserved                                                  -

0x4005.8000               0x4005.8FFF         GPIO Port A (AHB aperture)                                617

0x4005.9000               0x4005.9FFF         GPIO Port B (AHB aperture)                                617

0x4005.A000               0x4005.AFFF         GPIO Port C (AHB aperture)                                617

0x4005.B000               0x4005.BFFF         GPIO Port D (AHB aperture)                                617

0x4005.C000               0x4005.CFFF         GPIO Port E (AHB aperture)                                617

0x4005.D000               0x4005.DFFF         GPIO Port F (AHB aperture)                                617

0x4005.E000               0x4005.EFFF         GPIO Port G (AHB aperture)                                617

0x4005.F000               0x400A.EFFF         Reserved                                                  -

0x400A.F000               0x400A.FFFF         EEPROM and Key Locker                                     499

0x400B.0000               0x400B.FFFF         Reserved                                                  -

0x400C.0000               0x400C.0FFF         I2C 4                                                     976

0x400C.1000               0x400C.1FFF         I2C 5                                                     976

0x400C.2000               0x400F.8FFF         Reserved                                                  -

0x400F.9000               0x400F.9FFF         System Exception Module                                   476

0x400F.A000               0x400F.CFFF         Reserved                                                  -

0x400F.D000               0x400F.DFFF         Flash memory control                                      499

0x400F.E000               0x400F.EFFF         System control                                            229

0x400F.F000               0x400F.FFFF         µDMA                                                      565

0x4010.0000               0x41FF.FFFF         Reserved                                                  -

0x4200.0000               0x43FF.FFFF         Bit-banded alias of 0x4000.0000   through  0x400F.FFFF    -

0x4400.0000               0xDFFF.FFFF         Reserved                                                  -

Private Peripheral Bus

0xE000.0000               0xE000.0FFF         Instrumentation Trace Macrocell (ITM)                     69

0xE000.1000               0xE000.1FFF         Data Watchpoint and Trace (DWT)                           69

0xE000.2000               0xE000.2FFF         Flash Patch and Breakpoint (FPB)                          69

0xE000.3000               0xE000.DFFF         Reserved                                                  -

0xE000.E000               0xE000.EFFF         Cortex-M4F Peripherals (SysTick, NVIC, MPU, FPU and SCB)  132

0xE000.F000               0xE003.FFFF         Reserved                                                  -

0xE004.0000               0xE004.0FFF         Trace Port Interface Unit (TPIU)                          70

0xE004.1000               0xE004.1FFF         Embedded Trace Macrocell (ETM)                            69

92                                                                                                      June 12, 2014

                                       Texas  Instruments-Production Data
                                                                               Tiva™ TM4C123FE6PM Microcontroller

Table 2-4. Memory Map (continued)

Start           End                             Description                                                   For details,

                                                                                                              see page ...

0xE004.2000     0xFFFF.FFFF                     Reserved                                                      -

2.4.1        Memory Regions, Types and Attributes

             The memory map and the programming of the MPU split the memory map into regions. Each region

             has a defined memory type, and some regions have additional memory attributes. The memory

             type and attributes determine the behavior of accesses to the region.

             The memory types are:

             ■  Normal: The processor can re-order transactions for efficiency and perform speculative reads.

             ■  Device: The processor preserves transaction order relative to other transactions to Device or

                Strongly Ordered memory.

             ■  Strongly Ordered: The processor preserves transaction order relative to all other transactions.

             The different ordering requirements for Device and Strongly Ordered memory mean that the memory

             system can buffer a write to Device memory but must not buffer a write to Strongly Ordered memory.

             An additional memory attribute is Execute Never (XN), which means the processor prevents

             instruction accesses. A fault exception is generated only on execution of an instruction executed

             from an XN region.

2.4.2        Memory System Ordering of Memory Accesses

             For most memory accesses caused by explicit memory access instructions, the memory system

             does not guarantee that the order in which the accesses complete matches the program order of

             the instructions, providing the order does not affect the behavior of the instruction sequence. Normally,

             if correct program execution depends on two memory accesses completing in program order,

             software must insert a memory barrier instruction between the memory access instructions (see

             “Software Ordering of Memory Accesses” on page 94).

             However, the memory system does guarantee ordering of accesses to Device and Strongly Ordered

             memory. For two memory access instructions A1 and A2, if both A1 and A2 are accesses to either

             Device or Strongly Ordered memory, and if A1 occurs before A2 in program order, A1 is always

             observed before A2.

2.4.3        Behavior of Memory Accesses

             Table 2-5 on page 93 shows the behavior of accesses to each region in the memory map. See

             “Memory Regions, Types and Attributes” on page 93 for more information on memory types and

             the XN attribute. Tiva™ C Series devices may have reserved memory areas within the address

             ranges shown below (refer to Table 2-4 on page 90 for more information).

             Table 2-5. Memory Access Behavior

               Address Range              Memory Region  Memory Type  Execute  Description

                                                                      Never

                                                                      (XN)

               0x0000.0000 - 0x1FFF.FFFF  Code           Normal       -        This executable region is for program code.

                                                                               Data can also be stored here.

June 12, 2014                                                                                                               93

                                          Texas Instruments-Production Data
The Cortex-M4F Processor

       Table 2-5. Memory Access Behavior (continued)

       Address Range              Memory Region       Memory Type  Execute  Description

                                                                   Never

                                                                   (XN)

       0x2000.0000 - 0x3FFF.FFFF  SRAM                Normal       -        This executable region is for data. Code

                                                                            can also be stored here. This region

                                                                            includes bit band and bit band alias areas

                                                                            (see Table 2-6 on page 96).

       0x4000.0000 - 0x5FFF.FFFF  Peripheral          Device       XN       This region includes bit band and bit band

                                                                            alias areas (see Table 2-7 on page 96).

       0x6000.0000 - 0x9FFF.FFFF  External RAM        Normal       -        This executable region is for data.

       0xA000.0000 - 0xDFFF.FFFF  External device     Device       XN       This region is for external device memory.

       0xE000.0000- 0xE00F.FFFF   Private peripheral  Strongly     XN       This region includes the NVIC, system

                                  bus                 Ordered               timer, and system control block.

       0xE010.0000- 0xFFFF.FFFF   Reserved            -            -        -

       The Code, SRAM, and external RAM regions can hold programs. However, it is recommended that

       programs always use the Code region because the Cortex-M4F has separate buses that can perform

       instruction fetches and data accesses simultaneously.

       The MPU can override the default memory access behavior described in this section. For more

       information, see “Memory Protection Unit (MPU)” on page 123.

       The Cortex-M4F prefetches instructions ahead of execution and speculatively prefetches from

       branch target addresses.

2.4.4  Software Ordering of Memory Accesses

       The order of instructions in the program flow does not always guarantee the order of the

       corresponding memory transactions for the following reasons:

       ■  The processor can reorder some memory accesses to improve efficiency, providing this does

          not affect the behavior of the instruction sequence.

       ■  The processor has multiple bus interfaces.

       ■  Memory or devices in the memory map have different wait states.

       ■  Some memory accesses are buffered or speculative.

       “Memory System Ordering of Memory Accesses” on page 93 describes the cases where the memory

       system guarantees the order of memory accesses. Otherwise, if the order of memory accesses is

       critical, software must include memory barrier instructions to force that ordering. The Cortex-M4F

       has the following memory barrier instructions:

       ■  The Data Memory Barrier (DMB) instruction ensures that outstanding memory transactions

          complete before subsequent memory transactions.

       ■  The Data Synchronization Barrier (DSB) instruction ensures that outstanding memory transactions

          complete before subsequent instructions execute.

       ■  The Instruction Synchronization Barrier (ISB) instruction ensures that the effect of all completed

          memory transactions is recognizable by subsequent instructions.

       Memory barrier instructions can be used in the following situations:

94                                                                                                       June 12, 2014

                                  Texas Instruments-Production Data
                                                                          Tiva™ TM4C123FE6PM Microcontroller

          ■     MPU programming

                –  If the MPU settings are changed and the change must be effective on the very next instruction,

                   use a DSB instruction to ensure the effect of the MPU takes place immediately at the end of

                   context switching.

                –  Use an ISB instruction to ensure the new MPU setting takes effect immediately after

                   programming the MPU region or regions, if the MPU configuration code was accessed using

                   a branch or call. If the MPU configuration code is entered using exception mechanisms, then

                   an ISB instruction is not required.

          ■     Vector table

                If the program changes an entry in the vector table and then enables the corresponding exception,

                use a DMB instruction between the operations. The DMB instruction ensures that if the exception

                is taken immediately after being enabled, the processor uses the new exception vector.

          ■     Self-modifying code

                If a program contains self-modifying code, use an ISB instruction immediately after the code

                modification in the program. The ISB instruction ensures subsequent instruction execution uses

                the updated program.

          ■     Memory map switching

                If the system contains a memory map switching mechanism, use a DSB instruction after switching

                the memory map in the program. The DSB instruction ensures subsequent instruction execution

                uses the updated memory map.

          ■     Dynamic exception priority change

                When an exception priority has to change when the exception is pending or active, use DSB

                instructions after the change. The change then takes effect on completion of the DSB instruction.

          Memory accesses to Strongly Ordered memory, such as the System Control Block, do not require

          the use of DMB instructions.

          For more information on the memory barrier instructions, see the Cortex™-M4 instruction set chapter

          in the ARM® Cortex™-M4 Devices Generic User Guide (literature number ARM DUI 0553A).

2.4.5     Bit-Banding

          A bit-band region maps each word in a bit-band alias region to a single bit in the bit-band region.

          The bit-band regions occupy the lowest 1 MB of the SRAM and peripheral memory regions. Accesses

          to the 32-MB SRAM alias region map to the 1-MB SRAM bit-band region, as shown in Table

          2-6 on page 96. Accesses to the 32-MB peripheral alias region map to the 1-MB peripheral bit-band

          region, as shown in Table 2-7 on page 96. For the specific address range of the bit-band regions,

          see Table 2-4 on page 90.

          Note:    A word access to the SRAM or the peripheral bit-band alias region maps to a single bit in

                   the SRAM or peripheral bit-band region.

                   A word access to a bit band address results in a word access to the underlying memory,

                   and similarly for halfword and byte accesses. This allows bit band accesses to match the

                   access requirements of the underlying peripheral.

June 12,  2014                                                                                                     95

                                       Texas Instruments-Production Data
The  Cortex-M4F Processor

     Table 2-6. SRAM Memory Bit-Banding Regions

     Address Range

                                        Memory Region              Instruction and Data Accesses

     Start                 End

     0x2000.0000           0x2000.7FFF  SRAM bit-band region       Direct accesses to this memory range behave as SRAM

                                                                   memory accesses, but this region is also bit addressable

                                                                   through bit-band alias.

     0x2200.0000           0x220F.FFFF  SRAM bit-band alias        Data accesses to this region are remapped to bit band

                                                                   region. A write operation is performed as

                                                                   read-modify-write. Instruction accesses are not remapped.

     Table 2-7. Peripheral Memory       Bit-Banding Regions

     Address Range

                                        Memory Region              Instruction and Data Accesses

     Start                 End

     0x4000.0000           0x400F.FFFF  Peripheral bit-band        Direct accesses to this memory range behave as

                                        region                     peripheral memory accesses, but this region is also bit

                                                                   addressable through bit-band alias.

     0x4200.0000           0x43FF.FFFF  Peripheral bit-band alias  Data accesses to this region are remapped to bit band

                                                                   region. A write operation is performed as

                                                                   read-modify-write. Instruction accesses are not permitted.

     The following formula shows how the alias region maps onto the bit-band region:

     bit_word_offset            =  (byte_offset       x  32)  +    (bit_number  x           4)

     bit_word_addr         =    bit_band_base      +     bit_word_offset

     where:

     bit_word_offset

        The position of the target bit in the bit-band memory region.

     bit_word_addr

        The address of the word in the alias memory region that maps to the targeted bit.

     bit_band_base

        The starting address of the alias region.

     byte_offset

        The number of the byte in the bit-band region that contains the targeted bit.

     bit_number

        The bit position, 0-7, of the targeted bit.

     Figure 2-4 on page 97 shows examples of bit-band mapping between the SRAM bit-band alias

     region and the SRAM bit-band region:

     ■  The alias word at 0x23FF.FFE0 maps to bit 0 of the bit-band byte at 0x200F.FFFF:

        0x23FF.FFE0        =    0x2200.0000     +  (0x000F.FFFF*32)       +  (0*4)

     ■  The alias word at 0x23FF.FFFC maps to bit 7 of the bit-band byte at 0x200F.FFFF:

        0x23FF.FFFC        =    0x2200.0000     +  (0x000F.FFFF*32)       +  (7*4)

96                                                                                                            June 12, 2014

                                   Texas Instruments-Production Data
                                                                                            Tiva™ TM4C123FE6PM Microcontroller

          ■     The alias word at 0x2200.0000 maps to bit 0 of the bit-band byte at 0x2000.0000:

                0x2200.0000        =     0x2200.0000        +  (0*32)       +   (0*4)

          ■     The alias word at 0x2200.001C maps to bit 7 of the bit-band byte at 0x2000.0000:

                0x2200.001C        =     0x2200.0000+          (0*32)    +     (7*4)

          Figure 2-4. Bit-Band Mapping

                                                            32-MB Alias Region

                0x23FF.FFFC  0x23FF.FFF8    0x23FF.FFF4  0x23FF.FFF0  0x23FF.FFEC  0x23FF.FFE8    0x23FF.FFE4  0x23FF.FFE0

                0x2200.001C  0x2200.0018    0x2200.0014  0x2200.0010  0x2200.000C  0x2200.0008    0x2200.0004  0x2200.0000

                                                     1-MB SRAM Bit-Band Region

                7  6  5  4   3  2     1  0  7  6  5  4   3  2  1  0   7  6  5   4  3  2     1  0  7  6  5  4   3  2  1  0

                      0x200F.FFFF                 0x200F.FFFE               0x200F.FFFD                 0x200F.FFFC

                7  6  5  4   3  2     1  0  7  6  5  4   3  2  1  0   7  6  5   4  3  2     1  0  7  6  5  4   3  2  1  0

                      0x2000.0003                 0x2000.0002                  0x2000.0001              0x2000.0000

2.4.5.1   Directly Accessing an Alias Region

          Writing to a word in the alias region updates a single bit in the bit-band region.

          Bit 0 of the value written to a word in the alias region determines the value written to the targeted

          bit in the bit-band region. Writing a value with bit 0 set writes a 1 to the bit-band bit, and writing a

          value with bit 0 clear writes a 0 to the bit-band bit.

          Bits 31:1 of the alias word have no effect on the bit-band bit. Writing 0x01 has the same effect as

          writing 0xFF. Writing 0x00 has the same effect as writing 0x0E.

          When reading a word in the alias region, 0x0000.0000 indicates that the targeted bit in the bit-band

          region is clear and 0x0000.0001 indicates that the targeted bit in the bit-band region is set.

2.4.5.2   Directly Accessing a Bit-Band Region

          “Behavior of Memory Accesses” on page 93 describes the behavior of direct byte, halfword, or word

          accesses to the bit-band regions.

2.4.6     Data Storage

          The processor views memory as a linear collection of bytes numbered in ascending order from zero.

          For example, bytes 0-3 hold the first stored word, and bytes 4-7 hold the second stored word. Data

          is stored in little-endian format, with the least-significant byte (lsbyte) of a word stored at the

June 12,  2014                                                                                                              97

                                            Texas Instruments-Production Data
The Cortex-M4F Processor

       lowest-numbered byte, and the most-significant byte (msbyte)              stored  at  the  highest-numbered   byte.

       Figure 2-5 on page 98 illustrates how data is stored.

       Figure 2-5. Data      Storage

                  Memory                             Register

                  7       0

                                      31      24 23      16 15      8  7      0

       Address A     B0      lsbyte       B3         B2         B1        B0

           A+1       B1

           A+2       B2

           A+3       B3      msbyte

2.4.7  Synchronization Primitives

       The Cortex-M4F instruction set includes pairs of synchronization primitives which provide a

       non-blocking mechanism that a thread or process can use to obtain exclusive access to a memory

       location. Software can use these primitives to perform a guaranteed read-modify-write memory

       update sequence or for a semaphore mechanism.

       A pair of synchronization primitives consists of:

       ■   A Load-Exclusive instruction, which is used to read the value of a memory location and requests

           exclusive access to that location.

       ■   A Store-Exclusive instruction, which is used to attempt to write to the same memory location and

           returns a status bit to a register. If this status bit is clear, it indicates that the thread or process

           gained exclusive access to the memory and the write succeeds; if this status bit is set, it indicates

           that the thread or process did not gain exclusive access to the memory and no write was

           performed.

       The pairs of Load-Exclusive and Store-Exclusive instructions are:

       ■   The word instructions LDREX and STREX

       ■   The halfword instructions LDREXH and STREXH

       ■   The byte instructions LDREXB and STREXB

       Software must use a Load-Exclusive instruction with the corresponding Store-Exclusive instruction.

       To perform an exclusive read-modify-write of a memory location, software must:

       1.  Use a Load-Exclusive instruction to read the value of the location.

       2.  Modify the value, as required.

       3.  Use a Store-Exclusive instruction to attempt to write the new value back to the memory location.

       4.  Test the returned status bit.

98                                                                                                June 12, 2014

                                      Texas Instruments-Production Data
                                                                             Tiva™ TM4C123FE6PM Microcontroller

                 If the status bit is clear, the read-modify-write completed successfully. If the status bit is set, no

                 write was performed, which indicates that the value returned at step 1 might be out of date. The

                 software must retry the entire read-modify-write sequence.

           Software can use the synchronization primitives to implement a semaphore as follows:

           1.    Use a Load-Exclusive instruction to read from the semaphore address to check whether the

                 semaphore is free.

           2.    If the semaphore is free, use a Store-Exclusive to write the claim value to the semaphore

                 address.

           3.    If the returned status bit from step 2 indicates that the Store-Exclusive succeeded, then the

                 software has claimed the semaphore. However, if the Store-Exclusive failed, another process

                 might have claimed the semaphore after the software performed step 1.

           The Cortex-M4F includes an exclusive access monitor that tags the fact that the processor has

           executed a Load-Exclusive instruction. The processor removes its exclusive access tag if:

           ■     It executes a CLREX instruction.

           ■     It executes a Store-Exclusive instruction, regardless of whether the write succeeds.

           ■     An exception occurs, which means the processor can resolve semaphore conflicts between

                 different threads.

           For more information about the synchronization primitive instructions, see the Cortex™-M4 instruction

           set chapter in the ARM® Cortex™-M4 Devices Generic User Guide (literature number ARM DUI

           0553A).

2.5        Exception Model

           The ARM Cortex-M4F processor and the Nested Vectored Interrupt Controller (NVIC) prioritize and

           handle all exceptions in Handler Mode. The processor state is automatically stored to the stack on

           an exception and automatically restored from the stack at the end of the Interrupt Service Routine

           (ISR). The vector is fetched in parallel to the state saving, enabling efficient interrupt entry. The

           processor supports tail-chaining, which enables back-to-back interrupts to be performed without the

           overhead of state saving and restoration.

           Table 2-8 on page 101 lists all exception types. Software can set eight priority levels on seven of

           these exceptions (system handlers) as well as on 80 interrupts (listed in Table 2-9 on page 102).

           Priorities on the system handlers are set with the NVIC System Handler Priority n (SYSPRIn)

           registers. Interrupts are enabled through the NVIC  Interrupt Set Enable n (ENn) register and

           prioritized with the NVIC Interrupt Priority n (PRIn) registers. Priorities can be grouped by splitting

           priority levels into preemption priorities and subpriorities. All the interrupt registers are described in

           “Nested Vectored Interrupt Controller (NVIC)” on page 122.

           Internally, the highest user-programmable priority (0) is treated as fourth priority, after a Reset,

           Non-Maskable Interrupt (NMI), and a Hard Fault, in that order. Note that 0 is the default priority for

           all the programmable priorities.

           Important:  After a write to clear an interrupt source, it may take several processor cycles for the

                       NVIC to see the interrupt source deassert. Thus if the interrupt clear is done as the last

                       action in an interrupt handler, it is possible for the interrupt handler to complete while

June  12,  2014                                                                                                          99

                                     Texas Instruments-Production Data
The Cortex-M4F Processor

                 the NVIC sees the interrupt as still asserted, causing the interrupt handler to be

                 re-entered errantly. This situation can be avoided by either clearing the interrupt source

                 at the beginning of the interrupt handler or by performing a read or write after the write

                 to clear the interrupt source (and flush the write buffer).

       See “Nested Vectored Interrupt Controller (NVIC)” on page 122 for more information on exceptions

       and interrupts.

2.5.1  Exception States

       Each exception is in one of the following states:

       ■  Inactive. The exception is not active and not pending.

       ■  Pending. The exception is waiting to be serviced by the processor. An interrupt request from a

          peripheral or from software can change the state of the corresponding interrupt to pending.

       ■  Active. An exception that is being serviced by the processor but has not completed.

          Note:  An exception handler can interrupt the execution of another exception handler. In this

                 case, both exceptions are in the active state.

       ■  Active and Pending. The exception is being serviced by the processor, and there is a pending

          exception from the same source.

2.5.2  Exception Types

       The exception types are:

       ■  Reset. Reset is invoked on power up or a warm reset. The exception model treats reset as a

          special form of exception. When reset is asserted, the operation of the processor stops, potentially

          at any point in an instruction. When reset is deasserted, execution restarts from the address

          provided by the reset entry in the vector table. Execution restarts as privileged execution in

          Thread mode.

       ■  NMI. A non-maskable Interrupt (NMI) can be signaled using the NMI signal or triggered by

          software using the Interrupt Control and State (INTCTRL) register. This exception has the

          highest priority other than reset. NMI is permanently enabled and has a fixed priority of -2. NMIs

          cannot be masked or prevented from activation by any other exception or preempted by any

          exception other than reset.

       ■  Hard Fault. A hard fault is an exception that occurs because of an error during exception

          processing, or because an exception cannot be managed by any other exception mechanism.

          Hard faults have a fixed priority of -1, meaning they have higher priority than any exception with

          configurable priority.

       ■  Memory Management Fault. A memory management fault is an exception that occurs because

          of a memory protection related fault, including access violation and no match. The MPU or the

          fixed memory protection constraints determine this fault, for both instruction and data memory

          transactions. This fault is used to abort instruction accesses to Execute Never (XN) memory

          regions, even if the MPU is disabled.

       ■  Bus Fault. A bus fault is an exception that occurs because of a memory-related fault for an

          instruction or data memory transaction such as a prefetch fault or a memory access fault. This

          fault can be enabled or disabled.

100                                                                                            June 12, 2014

                                  Texas Instruments-Production Data
                                                                            Tiva™ TM4C123FE6PM Microcontroller

           ■     Usage Fault. A usage fault is an exception that occurs because of a fault related to instruction

                 execution, such as:

                 –  An undefined instruction

                 –  An illegal unaligned access

                 –  Invalid state on instruction execution

                 –  An error on exception return

                 An unaligned address on a word or halfword memory access or division by zero can cause a

                 usage fault when the core is properly configured.

           ■     SVCall. A supervisor call (SVC) is an exception that is triggered by the SVC instruction. In an

                 OS environment, applications can use SVC instructions to access OS kernel functions and device

                 drivers.

           ■     Debug Monitor. This exception is caused by the debug monitor (when not halting). This exception

                 is only active when enabled. This exception does not activate if it is a lower priority than the

                 current activation.

           ■     PendSV. PendSV is a pendable, interrupt-driven request for system-level service. In an OS

                 environment, use PendSV for context switching when no other exception is active. PendSV is

                 triggered using the Interrupt Control and State (INTCTRL) register.

           ■     SysTick. A SysTick exception is an exception that the system timer generates when it reaches

                 zero when it is enabled to generate an interrupt. Software can also generate a SysTick exception

                 using the Interrupt Control and State (INTCTRL) register. In an OS environment, the processor

                 can use this exception as system tick.

           ■     Interrupt (IRQ). An interrupt, or IRQ, is an exception signaled by a peripheral or generated by

                 a software request and fed through the NVIC (prioritized). All interrupts are asynchronous to

                 instruction execution. In the system, peripherals use interrupts to communicate with the processor.

                 Table 2-9 on page 102 lists the interrupts on the TM4C123FE6PM controller.

           For an asynchronous exception, other than reset, the processor can execute another instruction

           between when the exception is triggered and when the processor enters the exception handler.

           Privileged software can disable the exceptions that Table 2-8 on page 101 shows as having

           configurable priority (see the SYSHNDCTRL register on page 171 and the DIS0 register on page 142).

           For more information about hard faults, memory management faults, bus faults, and usage faults,

           see “Fault Handling” on page 109.

           Table 2-8. Exception Types

           Exception Type             Vector      Prioritya         Vector Address or  Activation

                                      Number                        Offsetb

           -                          0                  -          0x0000.0000        Stack top is loaded from the first

                                                                                       entry of the vector table on reset.

           Reset                      1           -3 (highest)      0x0000.0004        Asynchronous

           Non-Maskable Interrupt     2                  -2         0x0000.0008        Asynchronous

           (NMI)

           Hard Fault                 3                  -1         0x0000.000C        -

           Memory Management          4           programmablec     0x0000.0010        Synchronous

June  12,  2014                                                                                                       101

                                         Texas Instruments-Production Data
The  Cortex-M4F Processor

     Table 2-8. Exception Types (continued)

     Exception Type         Vector           Prioritya                          Vector Address or  Activation

                            Number                                              Offsetb

     Bus Fault                    5          programmablec                      0x0000.0014        Synchronous when precise and

                                                                                                   asynchronous when imprecise

     Usage Fault                  6          programmablec                      0x0000.0018        Synchronous

     -                            7-10              -                           -                  Reserved

     SVCall                       11         programmablec                      0x0000.002C        Synchronous

     Debug Monitor                12         programmablec                      0x0000.0030        Synchronous

     -                            13                -                           -                  Reserved

     PendSV                       14         programmablec                      0x0000.0038        Asynchronous

     SysTick                      15         programmablec                      0x0000.003C        Asynchronous

     Interrupts            16 and above      programmabled              0x0000.0040 and above      Asynchronous

     a. 0 is the default priority for all the programmable priorities.

     b. See “Vector Table” on page 104.

     c. See SYSPRI1 on page 168.

     d. See PRIn registers on page 150.

     Table 2-9. Interrupts

        Vector Number      Interrupt Number (Bit       Vector Address or        Description

                           in Interrupt Registers)                      Offset

                 0-15                    -             0x0000.0000 -            Processor exceptions

                                                       0x0000.003C

                 16                      0              0x0000.0040             GPIO Port A

                 17                      1              0x0000.0044             GPIO Port B

                 18                      2              0x0000.0048             GPIO Port C

                 19                      3             0x0000.004C              GPIO Port D

                 20                      4              0x0000.0050             GPIO Port E

                 21                      5              0x0000.0054             UART0

                 22                      6              0x0000.0058             UART1

                 23                      7             0x0000.005C              SSI0

                 24                      8              0x0000.0060             I2C0

                 25                      9              0x0000.0064             PWM0 Fault

                 26                      10             0x0000.0068             PWM0 Generator 0

                 27                      11            0x0000.006C              PWM0 Generator 1

                 28                      12             0x0000.0070             PWM0 Generator 2

                 29                      13             0x0000.0074             QEI0

                 30                      14             0x0000.0078             ADC0 Sequence 0

                 31                      15            0x0000.007C              ADC0 Sequence 1

                 32                      16             0x0000.0080             ADC0 Sequence 2

                 33                      17             0x0000.0084             ADC0 Sequence 3

                 34                      18             0x0000.0088             Watchdog Timers 0   and  1

                 35                      19            0x0000.008C              16/32-Bit Timer 0A

                 36                      20             0x0000.0090             16/32-Bit Timer 0B

                 37                      21             0x0000.0094             16/32-Bit Timer 1A

102                                                                                                              June 12, 2014

                                     Texas Instruments-Production Data
                                                                            Tiva™ TM4C123FE6PM Microcontroller

           Table 2-9. Interrupts (continued)

                 Vector Number  Interrupt Number (Bit    Vector Address or  Description

                                in Interrupt Registers)  Offset

                 38             22                       0x0000.0098        16/32-Bit Timer 1B

                 39             23                       0x0000.009C        16/32-Bit Timer 2A

                 40             24                       0x0000.00A0        16/32-Bit Timer 2B

                 41             25                       0x0000.00A4        Analog Comparator 0

                 42             26                       0x0000.00A8        Analog Comparator 1

                 43             27                       -                  Reserved

                 44             28                       0x0000.00B0        System Control

                 45             29                       0x0000.00B4        Flash Memory Control  and  EEPROM  Control

                 46             30                       0x0000.00B8        GPIO Port F

                 47             31                       0x0000.00BC        GPIO Port G

                 48             32                       -                  Reserved

                 49             33                       0x0000.00C4        UART2

                 50             34                       0x0000.00C8        SSI1

                 51             35                       0x0000.00CC        16/32-Bit Timer 3A

                 52             36                       0x0000.00D0        16/32-Bit Timer 3B

                 53             37                       0x0000.00D4        I2C1

                 54             38                       0x0000.00D8        QEI1

                 55             39                       0x0000.00DC        CAN0

                 56             40                       0x0000.00E0        CAN1

                 57-59          41-43                    -                  Reserved

                 60             44                       0x0000.00F0        USB

                 61             45                       0x0000.00F4        PWM Generator 3

                 62             46                       0x0000.00F8        µDMA Software

                 63             47                       0x0000.00FC        µDMA Error

                 64             48                       0x0000.0100        ADC1 Sequence 0

                 65             49                       0x0000.0104        ADC1 Sequence 1

                 66             50                       0x0000.0108        ADC1 Sequence 2

                 67             51                       0x0000.010C        ADC1 Sequence 3

                 68-72          52-56                    -                  Reserved

                 73             57                       0x0000.0124        SSI2

                 74             58                       0x0000.0128        SSI3

                 75             59                       0x0000.012C        UART3

                 76             60                       0x0000.0130        UART4

                 77             61                       0x0000.0134        UART5

                 78             62                       0x0000.0138        UART6

                 79             63                       0x0000.013C        UART7

                 80-83          64-67                    0x0000.0140 -      Reserved

                                                         0x0000.014C

                 84             68                       0x0000.0150        I2C2

                 85             69                       0x0000.0154        I2C3

                 86             70                       0x0000.0158        16/32-Bit Timer 4A

June  12,  2014                                                                                                103

                                Texas Instruments-Production Data
The Cortex-M4F Processor

       Table 2-9. Interrupts (continued)

          Vector Number   Interrupt Number (Bit    Vector Address or  Description

                          in Interrupt Registers)    Offset

          87               71                        0x0000.015C      16/32-Bit Timer 4B

          88-107           72-91                     0x0000.0160 -    Reserved

                                                     0x0000.01AC

          108              92                        0x0000.01B0      16/32-Bit Timer 5A

          109              93                        0x0000.01B4      16/32-Bit Timer 5B

          110              94                        0x0000.01B8      32/64-Bit Timer 0A

          111              95                        0x0000.01BC      32/64-Bit Timer 0B

          112              96                        0x0000.01C0      32/64-Bit Timer 1A

          113              97                        0x0000.01C4      32/64-Bit Timer 1B

          114              98                        0x0000.01C8      32/64-Bit Timer 2A

          115              99                        0x0000.01CC      32/64-Bit Timer 2B

          116              100                       0x0000.01D0      32/64-Bit Timer 3A

          117              101                       0x0000.01D4      32/64-Bit Timer 3B

          118              102                       0x0000.01D8      32/64-Bit Timer 4A

          119              103                       0x0000.01DC      32/64-Bit Timer 4B

          120              104                       0x0000.01E0      32/64-Bit Timer 5A

          121              105                       0x0000.01E4      32/64-Bit Timer 5B

          122              106                       0x0000.01E8      System Exception (imprecise)

          123-124          107-108                   -                Reserved

          125              109                       0x0000.01F4      I2C4

          126              110                       0x0000.01F8      I2C5

          127-149          111-133                   -                Reserved

          150              134                       0x0000.0258      PWM1 Generator 0

          151              135                       0x0000.025C      PWM1 Generator 1

          152              136                       0x0000.0260      PWM1 Generator 2

          153              137                       0x0000.0264      PWM1 Generator 3

          154              138                       0x0000.0268      PWM1 Fault

2.5.3  Exception Handlers

       The processor handles exceptions using:

       ■  Interrupt Service Routines (ISRs). Interrupts (IRQx) are the exceptions handled by ISRs.

       ■  Fault Handlers. Hard fault, memory management fault, usage fault, and bus fault are fault

          exceptions handled by the fault handlers.

       ■  System Handlers. NMI, PendSV, SVCall, SysTick, and the fault exceptions are all system

          exceptions that are handled by system handlers.

2.5.4  Vector Table

       The vector table contains the reset value of the stack pointer and the start addresses, also called

       exception vectors, for all exception handlers. The vector table is constructed using the vector address

       or offset shown in Table 2-8 on page 101. Figure 2-6 on page 105 shows the order of the exception

104                                                                                                 June 12, 2014

                           Texas Instruments-Production Data
                                                                         Tiva™ TM4C123FE6PM Microcontroller

          vectors in the vector table. The least-significant bit of each vector must be 1, indicating that the

          exception handler is Thumb code

          Figure 2-6. Vector Table

          Exception number  IRQ number  Offset  Vector

                 154        138                 IRQ131

                                        0x0268

                 .                      .       .

                 .                      .       .

                 .                      .       .

                                        0x004C

                 18         2                   IRQ2

                                        0x0048

                 17         1                   IRQ1

                                        0x0044

                 16         0                   IRQ0

                                        0x0040

                 15         -1                  Systick

                                        0x003C

                 14         -2                  PendSV

                                        0x0038

                 13                             Reserved

                 12                             Reserved for Debug

                 11         -5                  SVCall

                                        0x002C

                 10

                 9

                                                Reserved

                 8

                 7

                 6          -10                 Usage fault

                                        0x0018

                 5          -11                 Bus fault

                                        0x0014

                 4          -12                 Memory management fault

                                        0x0010

                 3          -13                 Hard fault

                                        0x000C

                 2          -14                 NMI

                                        0x0008

                 1                              Reset

                                        0x0004

                                                Initial SP value

                                        0x0000

          On system reset, the vector table is fixed at address 0x0000.0000. Privileged software can write to

          the Vector Table Offset (VTABLE) register to relocate the vector table start address to a different

          memory location, in the range 0x0000.0400 to 0x3FFF.FC00 (see “Vector Table” on page 104). Note

          that when configuring the VTABLE register, the offset must be aligned on a 1024-byte boundary.

2.5.5     Exception Priorities

          As Table 2-8 on page 101 shows, all exceptions have an associated priority, with a lower priority

          value indicating a higher priority and configurable priorities for all exceptions except Reset, Hard

          fault, and NMI. If software does not configure any priorities, then all exceptions with a configurable

          priority have a priority of 0. For information about configuring exception priorities, see page 168 and

          page 150.

          Note:     Configurable priority values for the Tiva™ C Series implementation are in the range 0-7.

                    This means that the Reset, Hard fault, and NMI exceptions, with fixed negative priority

                    values, always have higher priority than any other exception.

June 12,  2014                                                                                                     105

                                    Texas Instruments-Production Data
The Cortex-M4F Processor

       For example, assigning a higher priority value to IRQ[0] and a lower priority value to IRQ[1] means

       that IRQ[1] has higher priority than IRQ[0]. If both IRQ[1] and IRQ[0] are asserted, IRQ[1] is processed

       before IRQ[0].

       If multiple pending exceptions have the same priority, the pending exception with the lowest exception

       number takes precedence. For example, if both IRQ[0] and IRQ[1] are pending and have the same

       priority, then IRQ[0] is processed before IRQ[1].

       When the processor is executing an exception handler, the exception handler is preempted if a

       higher priority exception occurs. If an exception occurs with the same priority as the exception being

       handled, the handler is not preempted, irrespective of the exception number. However, the status

       of the new interrupt changes to pending.

2.5.6  Interrupt Priority Grouping

       To increase priority control in systems with interrupts, the NVIC supports priority grouping. This

       grouping divides each interrupt priority register entry into two fields:

       ■  An upper field that defines the group priority

       ■  A lower field that defines a subpriority within the group

       Only the group priority determines preemption of interrupt exceptions. When the processor is

       executing an interrupt exception handler, another interrupt with the same group priority as the

       interrupt being handled does not preempt the handler.

       If multiple pending interrupts have the same group priority, the subpriority field determines the order

       in which they are processed. If multiple pending interrupts have the same group priority and

       subpriority, the interrupt with the lowest IRQ number is processed first.

       For information about splitting the interrupt priority fields into group priority and subpriority, see

       page 162.

2.5.7  Exception Entry and Return

       Descriptions of exception handling use the following terms:

       ■  Preemption. When the processor is executing an exception handler, an exception can preempt

          the exception handler if its priority is higher than the priority of the exception being handled. See

          “Interrupt Priority Grouping” on page 106 for more information about preemption by an interrupt.

          When one exception preempts another, the exceptions are called nested exceptions. See

          “Exception Entry” on page 107 more information.

       ■  Return. Return occurs when the exception handler is completed, and there is no pending

          exception with sufficient priority to be serviced and the completed exception handler was not

          handling a late-arriving exception. The processor pops the stack and restores the processor

          state to the state it had before the interrupt occurred. See “Exception Return” on page 108 for

          more information.

       ■  Tail-Chaining. This mechanism speeds up exception servicing. On completion of an exception

          handler, if there is a pending exception that meets the requirements for exception entry, the

          stack pop is skipped and control transfers to the new exception handler.

       ■  Late-Arriving. This mechanism speeds up preemption. If a higher priority exception occurs

          during state saving for a previous exception, the processor switches to handle the higher priority

          exception and initiates the vector fetch for that exception. State saving is not affected by late

106                                                                                 June 12, 2014

                             Texas Instruments-Production Data
                                                                 Tiva™ TM4C123FE6PM Microcontroller

                arrival because the state saved is the same for both exceptions. Therefore, the state saving

                continues uninterrupted. The processor can accept a late arriving exception until the first instruction

                of the exception handler of the original exception enters the execute stage of the processor. On

                return from the exception handler of the late-arriving exception, the normal tail-chaining rules

                apply.

2.5.7.1   Exception Entry

          Exception entry occurs when there is a pending exception with sufficient priority and either the

          processor is in Thread mode or the new exception is of higher priority than the exception being

          handled, in which case the new exception preempts the original exception.

          When one exception preempts another, the exceptions are nested.

          Sufficient priority means the exception has more priority than any limits set by the mask registers

          (see PRIMASK on page 83, FAULTMASK on page 84, and BASEPRI on page 85). An exception

          with less priority than this is pending but is not handled by the processor.

          When the processor takes an exception, unless the exception is a tail-chained or a late-arriving

          exception, the processor pushes information onto the current stack. This operation is referred to as

          stacking and the structure of eight data words is referred to as stack frame.

          When using floating-point routines, the Cortex-M4F processor automatically stacks the architected

          floating-point state on exception entry. Figure 2-7 on page 108 shows the Cortex-M4F stack frame

          layout when floating-point state is preserved on the stack as the result of an interrupt or an exception.

          Note:  Where stack space for floating-point state is not allocated, the stack frame is the same as

                 that of ARMv7-M implementations without an FPU. Figure 2-7 on page 108 shows this stack

                 frame also.

June 12,  2014                                                                                                           107

                              Texas Instruments-Production Data
The Cortex-M4F Processor

         Figure 2-7. Exception Stack Frame

                  ...               Pre-IRQ top of stack

                  {aligner}

                  FPSCR

                  S15

                  S14

                  S13

                  S12

                  S11

                  S10

                  S9

                  S8

                  S7

                  S6

                  S5

                  S4

                  S3

                  S2

                  S1                                             ...               Pre-IRQ top of stack

                  S0                                             {aligner}

                  xPSR              Decreasing                   xPSR

                  PC                memory                       PC

                  LR                address                      LR

                  R12                                            R12

                  R3                                             R3

                  R2                                             R2

                  R1                                             R1

                  R0                IRQ top of stack             R0                IRQ top of stack

         Exception frame with                             Exception frame without

         floating-point storage                           floating-point storage

         Immediately after stacking, the stack pointer indicates the lowest address in the stack frame.

         The stack frame includes the return address, which is the address of the next instruction in the

         interrupted program. This value is restored to the PC at exception return so that the interrupted

         program resumes.

         In parallel with the stacking operation, the processor performs a vector fetch that reads the exception

         handler start address from the vector table. When stacking is complete, the processor starts executing

         the exception handler. At the same time, the processor writes an EXC_RETURN value to the LR,

         indicating which stack pointer corresponds to the stack frame and what operation mode the processor

         was in before the entry occurred.

         If no higher-priority exception occurs during exception entry, the processor starts executing the

         exception handler and automatically changes the status of the corresponding pending interrupt to

         active.

         If another higher-priority exception occurs during exception entry, known as late arrival, the processor

         starts executing the exception handler for this exception and does not change the pending status

         of the earlier exception.

2.5.7.2  Exception Return

         Exception return occurs when the processor is in Handler mode and executes one of the following

         instructions to load the EXC_RETURN value into the PC:

108                                                                                June 12, 2014

                                    Texas Instruments-Production Data
                                                                               Tiva™ TM4C123FE6PM Microcontroller

           ■     An LDM or POP instruction that loads the PC

           ■     A BX instruction using any register

           ■     An LDR instruction with the PC as the destination

           EXC_RETURN is the value loaded into the LR on exception entry. The exception mechanism relies

           on this value to detect when the processor has completed an exception handler. The lowest five

           bits of this value provide information on the return stack and processor mode. Table 2-10 on page 109

           shows the EXC_RETURN values with a description of the exception return behavior.

           EXC_RETURN bits 31:5 are all set. When this value is loaded into the PC, it indicates to the processor

           that the exception is complete, and the processor initiates the appropriate exception return sequence.

           Table 2-10. Exception Return  Behavior

           EXC_RETURN[31:0]                           Description

           0xFFFF.FFE0                                Reserved

           0xFFFF.FFE1                                Return to Handler mode.

                                                      Exception return uses floating-point state from MSP.

                                                      Execution uses MSP after return.

           0xFFFF.FFE2 - 0xFFFF.FFE8                  Reserved

           0xFFFF.FFE9                                Return to Thread mode.

                                                      Exception return uses floating-point state from MSP.

                                                      Execution uses MSP after return.

           0xFFFF.FFEA - 0xFFFF.FFEC                  Reserved

           0xFFFF.FFED                                Return to Thread mode.

                                                      Exception return uses floating-point state from PSP.

                                                      Execution uses PSP after return.

           0xFFFF.FFEE - 0xFFFF.FFF0                  Reserved

           0xFFFF.FFF1                                Return to Handler mode.

                                                      Exception return uses non-floating-point state from MSP.

                                                      Execution uses MSP after return.

           0xFFFF.FFF2 - 0xFFFF.FFF8                  Reserved

           0xFFFF.FFF9                                Return to Thread mode.

                                                      Exception return uses non-floating-point state from MSP.

                                                      Execution uses MSP after return.

           0xFFFF.FFFA - 0xFFFF.FFFC                  Reserved

           0xFFFF.FFFD                                Return to Thread mode.

                                                      Exception return uses non-floating-point state from PSP.

                                                      Execution uses PSP after return.

           0xFFFF.FFFE - 0xFFFF.FFFF                  Reserved

2.6        Fault Handling

           Faults are a subset of the exceptions (see “Exception Model” on page 99). The following conditions

           generate a fault:

           ■     A bus error on an instruction fetch or vector table load or a data access.

June  12,  2014                                                                                                    109

                                      Texas Instruments-Production Data
The Cortex-M4F Processor

       ■  An internally detected error such as an undefined instruction or an attempt to change state with

          a BX instruction.

       ■  Attempting to execute an instruction from a memory region marked as Non-Executable (XN).

       ■  An MPU fault because of a privilege violation or an attempt to access an unmanaged region.

2.6.1  Fault Types

       Table 2-11 on page 110 shows the types of fault, the handler used for the fault, the corresponding

       fault status register, and the register bit that indicates the fault has occurred. See page 175 for more

       information about the fault status registers.

       Table 2-11. Faults

       Fault                                    Handler            Fault Status Register            Bit Name

       Bus error on a vector read               Hard fault         Hard Fault Status (HFAULTSTAT)   VECT

       Fault escalated to a hard fault          Hard fault         Hard Fault Status (HFAULTSTAT)   FORCED

       MPU or default memory mismatch on        Memory management  Memory Management Fault Status   IERR a

       instruction access                       fault              (MFAULTSTAT)

       MPU or default memory mismatch on        Memory management  Memory Management Fault Status   DERR

       data access                              fault              (MFAULTSTAT)

       MPU or default memory mismatch on        Memory management  Memory Management Fault Status   MSTKE

       exception stacking                       fault              (MFAULTSTAT)

       MPU or default memory mismatch on        Memory management  Memory Management Fault Status   MUSTKE

       exception unstacking                     fault              (MFAULTSTAT)

       MPU or default memory mismatch           Memory management  Memory Management Fault Status   MLSPERR

       during lazy floating-point state         fault              (MFAULTSTAT)

       preservation

       Bus error during exception stacking      Bus fault          Bus Fault Status (BFAULTSTAT)    BSTKE

       Bus error during exception unstacking    Bus fault          Bus Fault Status (BFAULTSTAT)    BUSTKE

       Bus error during instruction prefetch    Bus fault          Bus Fault Status (BFAULTSTAT)    IBUS

       Bus error during lazy floating-point state Bus fault        Bus Fault Status (BFAULTSTAT)    BLSPE

       preservation

       Precise data bus error                   Bus fault          Bus Fault Status (BFAULTSTAT)    PRECISE

       Imprecise data bus error                 Bus fault          Bus Fault Status (BFAULTSTAT)    IMPRE

       Attempt to access a coprocessor          Usage fault        Usage Fault Status (UFAULTSTAT)  NOCP

       Undefined instruction                    Usage fault        Usage Fault Status (UFAULTSTAT)  UNDEF

       Attempt to enter an invalid instruction  Usage fault        Usage Fault Status (UFAULTSTAT)  INVSTAT

       set state b

       Invalid EXC_RETURN value                 Usage fault        Usage Fault Status (UFAULTSTAT)  INVPC

       Illegal unaligned load or store          Usage fault        Usage Fault Status (UFAULTSTAT)  UNALIGN

       Divide by 0                              Usage fault        Usage Fault Status (UFAULTSTAT)  DIV0

       a. Occurs on an access to an XN region even if the MPU is disabled.

       b. Attempting to use an instruction set other than the Thumb instruction set, or returning to a non load-store-multiply instruction

          with ICI continuation.

2.6.2  Fault Escalation and Hard Faults

       All fault exceptions except for hard fault have configurable exception priority (see SYSPRI1 on

       page 168). Software can disable execution of the handlers for these faults (see SYSHNDCTRL on

       page 171).

110                                                                                                 June 12, 2014

                                         Texas Instruments-Production Data
                                                                               Tiva™ TM4C123FE6PM Microcontroller

          Usually, the exception priority, together with the values of the exception mask registers, determines

          whether the processor enters the fault handler, and whether a fault handler can preempt another

          fault handler as described in “Exception Model” on page 99.

          In some situations, a fault with configurable priority is treated as a hard fault. This process is called

          priority escalation, and the fault is described as escalated to hard fault. Escalation to hard fault

          occurs when:

          ■     A fault handler causes the same kind of fault as the one it is servicing. This escalation to hard

                fault occurs because a fault handler cannot preempt itself because it must have the same priority

                as the current priority level.

          ■     A fault handler causes a fault with the same or lower priority as the fault it is servicing. This

                situation happens because the handler for the new fault cannot preempt the currently executing

                fault handler.

          ■     An exception handler causes a fault for which the priority is the same as or lower than the currently

                executing exception.

          ■     A fault occurs and the handler for that fault is not enabled.

          If a bus fault occurs during a stack push when entering a bus fault handler, the bus fault does not

          escalate to a hard fault. Thus if a corrupted stack causes a fault, the fault handler executes even

          though the stack push for the handler failed. The fault handler operates but the stack contents are

          corrupted.

          Note:       Only Reset and NMI can preempt the fixed priority hard fault. A hard fault can preempt any

                      exception other than Reset, NMI, or another hard fault.

2.6.3     Fault Status Registers and Fault Address Registers

          The fault status registers indicate the cause of a fault. For bus faults and memory management

          faults, the fault address register indicates the address accessed by the operation that caused the

          fault, as shown in Table 2-12 on page 111.

          Table 2-12. Fault Status and Fault Address Registers

          Handler               Status Register Name             Address Register Name    Register Description

          Hard fault            Hard Fault Status (HFAULTSTAT)   -                        page 181

          Memory management     Memory Management Fault Status   Memory Management Fault  page 175

          fault                 (MFAULTSTAT)                     Address (MMADDR)         page 182

          Bus fault             Bus Fault Status (BFAULTSTAT)    Bus Fault Address        page 175

                                                                 (FAULTADDR)              page 183

          Usage fault           Usage Fault Status (UFAULTSTAT)  -                        page 175

2.6.4     Lockup

          The processor enters a lockup state if a hard fault occurs when executing the NMI or hard fault

          handlers. When the processor is in the lockup state, it does not execute any instructions. The

          processor remains in lockup state until it is reset, an NMI occurs, or it is halted by a debugger.

          Note:       If the lockup state occurs from the NMI handler, a subsequent NMI does not cause the

                      processor to leave the lockup state.

June 12,  2014                                                                                                         111

                                      Texas Instruments-Production Data
The Cortex-M4F Processor

2.7      Power Management

         The Cortex-M4F processor sleep modes reduce power consumption:

         ■  Sleep mode stops the processor clock.

         ■  Deep-sleep mode stops the system clock and switches off the PLL and Flash memory.

         The SLEEPDEEP bit of the System Control (SYSCTRL) register selects which sleep mode is used

         (see page 164). For more information about the behavior of the sleep modes, see “System

         Control” on page 225.

         This section describes the mechanisms for entering sleep mode and the conditions for waking up

         from sleep mode, both of which apply to Sleep mode and Deep-sleep mode.

2.7.1    Entering Sleep Modes

         This section describes the mechanisms software can use to put the processor into one of the sleep

         modes.

         The system can generate spurious wake-up events, for example a debug operation wakes up the

         processor. Therefore, software must be able to put the processor back into sleep mode after such

         an event. A program might have an idle loop to put the processor back to sleep mode.

2.7.1.1  Wait for Interrupt

         The wait for interrupt instruction, WFI, causes immediate entry to sleep mode unless the wake-up

         condition is true (see “Wake Up from WFI or Sleep-on-Exit” on page 113). When the processor

         executes a WFI instruction, it stops executing instructions and enters sleep mode. See the

         Cortex™-M4 instruction set chapter in the ARM® Cortex™-M4 Devices Generic User Guide (literature

         number ARM DUI 0553A) for more information.

2.7.1.2  Wait for Event

         The wait for event instruction, WFE, causes entry to sleep mode conditional on the value of a one-bit

         event register. When the processor executes a WFE instruction, it checks the event register. If the

         register is 0, the processor stops executing instructions and enters sleep mode. If the register is 1,

         the processor clears the register and continues executing instructions without entering sleep mode.

         If the event register is 1, the processor must not enter sleep mode on execution of a WFE instruction.

         Typically, this situation occurs if an SEV instruction has been executed. Software cannot access

         this register directly.

         See the Cortex™-M4 instruction set chapter in the ARM® Cortex™-M4 Devices Generic User Guide

         (literature number ARM DUI 0553A) for more information.

2.7.1.3  Sleep-on-Exit

         If the SLEEPEXIT bit of the SYSCTRL register is set, when the processor completes the execution

         of all exception handlers, it returns to Thread mode and immediately enters sleep mode. This

         mechanism can be used in applications that only require the processor to run when an exception

         occurs.

2.7.2    Wake Up from Sleep Mode

         The conditions for the processor to wake up depend on the mechanism that caused it to enter sleep

         mode.

112                                                                                            June 12, 2014

                                  Texas Instruments-Production Data
                                                                           Tiva™ TM4C123FE6PM Microcontroller

2.7.2.1   Wake Up from WFI or Sleep-on-Exit

          Normally, the processor wakes up only when the NVIC detects an exception with sufficient priority

          to cause exception entry. Some embedded systems might have to execute system restore tasks

          after the processor wakes up and before executing an interrupt handler. Entry to the interrupt handler

          can be delayed by setting the PRIMASK bit and clearing the FAULTMASK bit. If an interrupt arrives

          that is enabled and has a higher priority than current exception priority, the processor wakes up but

          does not execute the interrupt handler until the processor clears PRIMASK. For more information

          about PRIMASK and FAULTMASK, see page 83 and page 84.

2.7.2.2   Wake Up from WFE

          The processor wakes up if it detects an exception with sufficient priority to cause exception entry.

          In addition, if the SEVONPEND bit in the SYSCTRL register is set, any new pending interrupt triggers

          an event and wakes up the processor, even if the interrupt is disabled or has insufficient priority to

          cause exception entry. For more information about SYSCTRL, see page 164.

2.8       Instruction Set Summary

          The processor implements a version of the Thumb instruction set. Table 2-13 on page 113 lists the

          supported instructions.

          Note:  In Table 2-13 on page 113:

                 ■     Angle brackets, <>, enclose alternative forms of the operand

                 ■     Braces, {}, enclose optional operands

                 ■     The Operands column is not exhaustive

                 ■     Op2 is a flexible second operand that can be either a register or a constant

                 ■     Most instructions can use an optional condition code suffix

                 For more information on the instructions and operands, see the instruction descriptions in

                 the ARM® Cortex™-M4 Technical Reference Manual.

          Table 2-13.  Cortex-M4F Instruction Summary

          Mnemonic                 Operands                     Brief Description                    Flags

          ADC,   ADCS              {Rd,}  Rn,      Op2          Add with carry                       N,Z,C,V

          ADD,   ADDS              {Rd,}  Rn,      Op2          Add                                  N,Z,C,V

          ADD,   ADDW              {Rd,}  Rn    ,  #imm12       Add                                  -

          ADR                      Rd,   label                  Load PC-relative address             -

          AND,   ANDS              {Rd,}  Rn,      Op2          Logical AND                          N,Z,C

          ASR,   ASRS              Rd,   Rm,             Arithmetic shift right               N,Z,C

          B                        label                        Branch                               -

          BFC                      Rd,   #lsb,     #width       Bit field clear                      -

          BFI                      Rd,   Rn,  #lsb,     #width  Bit field insert                     -

          BIC,   BICS              {Rd,}  Rn,      Op2          Bit clear                            N,Z,C

          BKPT                     #imm                         Breakpoint                           -

          BL                       label                        Branch with link                     -

          BLX                      Rm                           Branch indirect with link            -

          BX                       Rm                           Branch indirect                      -

          CBNZ                     Rn,   label                  Compare and branch if non-zero       -

June 12,  2014                                                                                                    113

                                        Texas Instruments-Production Data
The  Cortex-M4F Processor

     Table 2-13.    Cortex-M4F Instruction       Summary   (continued)

     Mnemonic              Operands                        Brief Description                         Flags

     CBZ                   Rn,  label                      Compare and branch if zero                -

     CLREX                 -                               Clear exclusive                           -

     CLZ                   Rd,  Rm                         Count leading zeros                       -

     CMN                   Rn,  Op2                        Compare negative                          N,Z,C,V

     CMP                   Rn,  Op2                        Compare                                   N,Z,C,V

     CPSID                 i                               Change processor state, disable           -

                                                           interrupts

     CPSIE                 i                               Change processor state, enable            -

                                                           interrupts

     DMB                   -                               Data memory barrier                       -

     DSB                   -                               Data synchronization barrier              -

     EOR,   EORS           {Rd,}    Rn,  Op2               Exclusive OR                              N,Z,C

     ISB                   -                               Instruction synchronization barrier       -

     IT                    -                               If-Then condition block                   -

     LDM                   Rn{!},    reglist               Load multiple registers, increment after  -

     LDMDB,  LDMEA         Rn{!},    reglist               Load multiple registers, decrement        -

                                                           before

     LDMFD,  LDMIA         Rn{!},    reglist               Load multiple registers, increment after  -

     LDR                   Rt,  [Rn,     #offset]          Load register with word                   -

     LDRB,   LDRBT         Rt,  [Rn,     #offset]          Load register with byte                   -

     LDRD                  Rt,  Rt2,     [Rn,    #offset]  Load register with two bytes              -

     LDREX                 Rt,  [Rn,     #offset]          Load register exclusive                   -

     LDREXB                Rt,  [Rn]                       Load register exclusive with byte         -

     LDREXH                Rt,  [Rn]                       Load register exclusive with halfword     -

     LDRH,   LDRHT         Rt,  [Rn,     #offset]          Load register with halfword               -

     LDRSB,  LDRSBT        Rt,  [Rn,     #offset]          Load register with signed byte            -

     LDRSH,  LDRSHT        Rt,  [Rn,     #offset]          Load register with signed halfword        -

     LDRT                  Rt,  [Rn,     #offset]          Load register with word                   -

     LSL,   LSLS           Rd,  Rm,                 Logical shift left                        N,Z,C

     LSR,   LSRS           Rd,  Rm,                 Logical shift right                       N,Z,C

     MLA                   Rd,  Rn,   Rm,    Ra            Multiply with accumulate, 32-bit result   -

     MLS                   Rd,  Rn,   Rm,    Ra            Multiply and subtract, 32-bit result      -

     MOV,   MOVS           Rd,  Op2                        Move                                      N,Z,C

     MOV,   MOVW           Rd,  #imm16                     Move 16-bit constant                      N,Z,C

     MOVT                  Rd,  #imm16                     Move top                                  -

     MRS                   Rd,  spec_reg                   Move from special register to general     -

                                                           register

     MSR                   spec_reg,     Rm                Move from general register to special     N,Z,C,V

                                                           register

     MUL,   MULS           {Rd,}    Rn,  Rm                Multiply, 32-bit result                   N,Z

     MVN,   MVNS           Rd,  Op2                        Move NOT                                  N,Z,C

     NOP                   -                               No operation                              -

     ORN,   ORNS           {Rd,}    Rn,  Op2               Logical OR NOT                            N,Z,C

114                                                                                                  June 12, 2014

                                Texas Instruments-Production Data
                                                                    Tiva™ TM4C123FE6PM Microcontroller

           Table 2-13. Cortex-M4F Instruction Summary  (continued)

           Mnemonic        Operands                    Brief Description                      Flags

           ORR,   ORRS     {Rd,}    Rn,  Op2           Logical OR                             N,Z,C

           PKHTB,   PKHBT  {Rd,}    Rn,  Rm,  Op2      Pack halfword                          -

           POP             reglist                     Pop registers from stack               -

           PUSH            reglist                     Push registers onto stack              -

           QADD            {Rd,}    Rn,  Rm            Saturating add                         Q

           QADD16          {Rd,}    Rn,  Rm            Saturating add 16                      -

           QADD8           {Rd,}    Rn,  Rm            Saturating add 8                       -

           QASX            {Rd,}    Rn,  Rm            Saturating add and subtract with       -

                                                       exchange

           QDADD           {Rd,}    Rn,  Rm            Saturating double and add              Q

           QDSUB           {Rd,}    Rn,  Rm            Saturating double and subtract         Q

           QSAX            {Rd,}    Rn,  Rm            Saturating subtract and add with       -

                                                       exchange

           QSUB            {Rd,}    Rn,  Rm            Saturating subtract                    Q

           QSUB16          {Rd,}    Rn,  Rm            Saturating subtract 16                 -

           QSUB8           {Rd,}    Rn,  Rm            Saturating subtract 8                  -

           RBIT            Rd,  Rn                     Reverse bits                           -

           REV             Rd,  Rn                     Reverse byte order in a word           -

           REV16           Rd,  Rn                     Reverse byte order in each halfword    -

           REVSH           Rd,  Rn                     Reverse byte order in bottom halfword  -

                                                       and sign extend

           ROR,   RORS     Rd,  Rm,             Rotate right                           N,Z,C

           RRX,   RRXS     Rd,  Rm                     Rotate right with extend               N,Z,C

           RSB,   RSBS     {Rd,}    Rn,  Op2           Reverse subtract                       N,Z,C,V

           SADD16          {Rd,}    Rn,  Rm            Signed add 16                          GE

           SADD8           {Rd,}    Rn,  Rm            Signed add 8                           GE

           SASX            {Rd,}    Rn,  Rm            Signed add and subtract with exchange  GE

           SBC,   SBCS     {Rd,}    Rn,  Op2           Subtract with carry                    N,Z,C,V

           SBFX            Rd,  Rn,  #lsb,    #width   Signed bit field extract               -

           SDIV            {Rd,}    Rn,  Rm            Signed divide                          -

           SEL             {Rd,}    Rn,  Rm            Select bytes                           -

           SEV             -                           Send event                             -

           SHADD16         {Rd,}    Rn,  Rm            Signed halving add 16                  -

           SHADD8          {Rd,}    Rn,  Rm            Signed halving add 8                   -

           SHASX           {Rd,}    Rn,  Rm            Signed halving add and subtract with   -

                                                       exchange

           SHSAX           {Rd,}    Rn,  Rm            Signed halving add and subtract with   -

                                                       exchange

           SHSUB16         {Rd,}    Rn,  Rm            Signed halving subtract 16             -

           SHSUB8          {Rd,}    Rn,  Rm            Signed halving subtract 8              -

June  12,  2014                                                                                      115

                                Texas Instruments-Production Data
The  Cortex-M4F Processor

     Table 2-13.  Cortex-M4F Instruction Summary           (continued)

     Mnemonic              Operands                        Brief Description                          Flags

     SMLABB,               Rd,  Rn,  Rm,     Ra            Signed multiply accumulate long            Q

     SMLABT,                                               (halfwords)

     SMLATB,

     SMLATT

     SMLAD,                Rd,  Rn,  Rm,     Ra            Signed multiply accumulate dual            Q

     SMLADX

     SMLAL                 RdLo,   RdHi,     Rn,  Rm       Signed multiply with accumulate            -

                                                           (32x32+64), 64-bit result

     SMLALBB,              RdLo,   RdHi,     Rn,  Rm       Signed multiply accumulate long            -

     SMLALBT,                                              (halfwords)

     SMLALTB,

     SMLALTT

     SMLALD,   SMLALDX     RdLo,   RdHi,     Rn,  Rm       Signed multiply accumulate long dual       -

     SMLAWB,SMLAWT         Rd,  Rn,  Rm,     Ra            Signed multiply accumulate, word by        Q

                                                           halfword

     SMLSD                 Rd,  Rn,  Rm,     Ra            Signed multiply subtract dual              Q

     SMLSDX

     SMLSLD                RdLo,   RdHi,     Rn,  Rm       Signed multiply subtract long dual

     SMLSLDX

     SMMLA                 Rd,  Rn,  Rm,     Ra            Signed most significant word multiply      -

                                                           accumulate

     SMMLS,                Rd,  Rn,  Rm,     Ra            Signed most significant word multiply      -

     SMMLR                                                 subtract

     SMMUL,                {Rd,}   Rn,   Rm                Signed most significant word multiply      -

     SMMULR

     SMUAD                 {Rd,}   Rn,   Rm                Signed dual multiply add                   Q

     SMUADX

     SMULBB,               {Rd,}   Rn,   Rm                Signed multiply halfwords                  -

     SMULBT,

     SMULTB,

     SMULTT

     SMULL                 RdLo,   RdHi,     Rn,  Rm       Signed multiply (32x32), 64-bit result     -

     SMULWB,               {Rd,}   Rn,   Rm                Signed multiply by halfword                -

     SMULWT

     SMUSD,                {Rd,}   Rn,   Rm                Signed dual multiply subtract              -

     SMUSDX

     SSAT                  Rd,  #n,  Rm   {,shift     #s}  Signed saturate                            Q

     SSAT16                Rd,  #n,  Rm                    Signed saturate 16                         Q

     SSAX                  {Rd,}   Rn,   Rm                Saturating subtract and add with           GE

                                                           exchange

     SSUB16                {Rd,}   Rn,   Rm                Signed subtract 16                         -

     SSUB8                 {Rd,}   Rn,   Rm                Signed subtract 8                          -

     STM                   Rn{!},    reglist               Store multiple registers, increment after  -

116                                                                                                June 12,  2014

                                Texas Instruments-Production Data
                                                                         Tiva™ TM4C123FE6PM Microcontroller

           Table 2-13. Cortex-M4F Instruction Summary (continued)

           Mnemonic         Operands                             Brief Description                          Flags

           STMDB,   STMEA   Rn{!},     reglist                   Store multiple registers, decrement        -

                                                                 before

           STMFD,   STMIA   Rn{!},     reglist                   Store multiple registers, increment after  -

           STR              Rt,   [Rn   {,   #offset}]           Store register word                        -

           STRB,   STRBT    Rt,   [Rn   {,   #offset}]           Store register byte                        -

           STRD             Rt,   Rt2,   [Rn     {,   #offset}]  Store register two words                   -

           STREX            Rt,   Rt,   [Rn     {,   #offset}]   Store register exclusive                   -

           STREXB           Rd,   Rt,   [Rn]                     Store register exclusive byte              -

           STREXH           Rd,   Rt,   [Rn]                     Store register exclusive halfword          -

           STRH,   STRHT    Rt,   [Rn   {,   #offset}]           Store register halfword                    -

           STRSB,   STRSBT  Rt,   [Rn   {,   #offset}]           Store register signed byte                 -

           STRSH,   STRSHT  Rt,   [Rn   {,   #offset}]           Store register signed halfword             -

           STRT             Rt,   [Rn   {,   #offset}]           Store register word                        -

           SUB,   SUBS      {Rd,}   Rn,     Op2                  Subtract                                   N,Z,C,V

           SUB,   SUBW      {Rd,}   Rn,     #imm12               Subtract 12-bit constant                   N,Z,C,V

           SVC              #imm                                 Supervisor call                            -

           SXTAB            {Rd,}   Rn,     Rm,     {,ROR   #}   Extend 8 bits to 32 and add                -

           SXTAB16          {Rd,}   Rn,     Rm,{,ROR       #}    Dual extend 8 bits to 16 and add           -

           SXTAH            {Rd,}   Rn,     Rm,{,ROR       #}    Extend 16 bits to 32 and add               -

           SXTB16           {Rd,}   Rm   {,ROR       #n}         Signed extend byte 16                      -

           SXTB             {Rd,}   Rm   {,ROR       #n}         Sign extend a byte                         -

           SXTH             {Rd,}   Rm   {,ROR       #n}         Sign extend a halfword                     -

           TBB              [Rn,   Rm]                           Table branch byte                          -

           TBH              [Rn,   Rm,   LSL     #1]             Table branch halfword                      -

           TEQ              Rn,   Op2                            Test equivalence                           N,Z,C

           TST              Rn,   Op2                            Test                                       N,Z,C

           UADD16           {Rd,}   Rn,     Rm                   Unsigned add 16                            GE

           UADD8            {Rd,}   Rn,     Rm                   Unsigned add 8                             GE

           UASX             {Rd,}   Rn,     Rm                   Unsigned add and subtract with             GE

                                                                 exchange

           UHADD16          {Rd,}   Rn,     Rm                   Unsigned halving add 16                    -

           UHADD8           {Rd,}   Rn,     Rm                   Unsigned halving add 8                     -

           UHASX            {Rd,}   Rn,     Rm                   Unsigned halving add and subtract with     -

                                                                 exchange

           UHSAX            {Rd,}   Rn,     Rm                   Unsigned halving subtract and add with     -

                                                                 exchange

           UHSUB16          {Rd,}   Rn,     Rm                   Unsigned halving subtract 16               -

           UHSUB8           {Rd,}   Rn,     Rm                   Unsigned halving subtract 8                -

           UBFX             Rd,   Rn,   #lsb,       #width       Unsigned bit field extract                 -

           UDIV             {Rd,}   Rn,     Rm                   Unsigned divide                            -

           UMAAL            RdLo,   RdHi,       Rn,   Rm         Unsigned multiply accumulate               -

                                                                 accumulate long (32x32+64), 64-bit

                                                                 result

June  12,  2014                                                                                                    117

                                 Texas Instruments-Production Data
The  Cortex-M4F Processor

     Table 2-13.  Cortex-M4F Instruction Summary            (continued)

     Mnemonic              Operands                         Brief Description                          Flags

     UMLAL                 RdLo,    RdHi,    Rn,  Rm        Unsigned multiply with accumulate          -

                                                            (32x32+32+32), 64-bit result

     UMULL                 RdLo,    RdHi,    Rn,  Rm        Unsigned multiply (32x 2), 64-bit result   -

     UQADD16               {Rd,}    Rn,  Rm                 Unsigned Saturating Add 16                 -

     UQADD8                {Rd,}    Rn,  Rm                 Unsigned Saturating Add 8                  -

     UQASX                 {Rd,}    Rn,  Rm                 Unsigned Saturating Add and Subtract       -

                                                            with Exchange

     UQSAX                 {Rd,}    Rn,  Rm                 Unsigned Saturating Subtract and Add       -

                                                            with Exchange

     UQSUB16               {Rd,}    Rn,  Rm                 Unsigned Saturating Subtract 16            -

     UQSUB8                {Rd,}    Rn,  Rm                 Unsigned Saturating Subtract 8             -

     USAD8                 {Rd,}    Rn,  Rm                 Unsigned Sum of Absolute Differences       -

     USADA8                {Rd,}    Rn,  Rm,  Ra            Unsigned Sum of Absolute Differences       -

                                                            and Accumulate

     USAT                  Rd,  #n,  Rm    {,shift     #s}  Unsigned Saturate                          Q

     USAT16                Rd,  #n,  Rm                     Unsigned Saturate 16                       Q

     USAX                  {Rd,}    Rn,  Rm                 Unsigned Subtract and add with             GE

                                                            Exchange

     USUB16                {Rd,}    Rn,  Rm                 Unsigned Subtract 16                       GE

     USUB8                 {Rd,}    Rn,  Rm                 Unsigned Subtract 8                        GE

     UXTAB                 {Rd,}    Rn,  Rm,  {,ROR    #}   Rotate, extend 8 bits to 32 and Add        -

     UXTAB16               {Rd,}    Rn,  Rm,  {,ROR    #}   Rotate, dual extend 8 bits to 16 and Add   -

     UXTAH                 {Rd,}    Rn,  Rm,  {,ROR    #}   Rotate, unsigned extend and Add            -

                                                            Halfword

     UXTB                  {Rd,}    Rm,  {,ROR    #n}       Zero extend a Byte                         -

     UXTB16                {Rd,}    Rm,  {,ROR    #n}       Unsigned Extend Byte 16                    -

     UXTH                  {Rd,}    Rm,  {,ROR    #n}       Zero extend a Halfword                     -

     VABS.F32              Sd,  Sm                          Floating-point Absolute                    -

     VADD.F32              {Sd,}    Sn,  Sm                 Floating-point Add                         -

     VCMP.F32              Sd,                Compare two floating-point registers, or   FPSCR

                                                            one floating-point register and zero

     VCMPE.F32             Sd,                Compare two floating-point registers, or   FPSCR

                                                            one floating-point register and zero with

                                                            Invalid Operation check

     VCVT.S32.F32          Sd,  Sm                          Convert between floating-point and         -

                                                            integer

     VCVT.S16.F32          Sd,  Sd,  #fbits                 Convert between floating-point and fixed   -

                                                            point

     VCVTR.S32.F32         Sd,  Sm                          Convert between floating-point and         -

                                                            integer with rounding

     VCVT.F32.F16     Sd,  Sm                          Converts half-precision value to           -

                                                            single-precision

     VCVTT.F32.F16    Sd,  Sm                          Converts single-precision register to      -

                                                            half-precision

     VDIV.F32              {Sd,}    Sn,  Sm                 Floating-point Divide                      -

     VFMA.F32              {Sd,}    Sn,  Sm                 Floating-point Fused Multiply Accumulate   -

118                                                                                                   June 12,  2014

                                Texas Instruments-Production Data
                                                                    Tiva™ TM4C123FE6PM Microcontroller

           Table 2-13. Cortex-M4F Instruction Summary  (continued)

           Mnemonic        Operands                    Brief Description                       Flags

           VFNMA.F32       {Sd,}     Sn,  Sm           Floating-point Fused Negate Multiply    -

                                                       Accumulate

           VFMS.F32        {Sd,}     Sn,  Sm           Floating-point Fused Multiply Subtract  -

           VFNMS.F32       {Sd,}     Sn,  Sm           Floating-point Fused Negate Multiply    -

                                                       Subtract

           VLDM.F<32|64>   Rn{!},    list              Load Multiple extension registers       -

           VLDR.F<32|64>   ,       [Rn]         Load an extension register from memory  -

           VLMA.F32        {Sd,}     Sn,  Sm           Floating-point Multiply Accumulate      -

           VLMS.F32        {Sd,}     Sn,  Sm           Floating-point Multiply Subtract        -

           VMOV.F32        Sd,   #imm                  Floating-point Move immediate           -

           VMOV            Sd,   Sm                    Floating-point Move register            -

           VMOV            Sn,   Rt                    Copy ARM core register to single        -

                                                       precision

           VMOV            Sm,   Sm1,     Rt,   Rt2    Copy 2 ARM core registers to 2 single   -

                                                       precision

           VMOV            Dd[x],    Rt                Copy ARM core register to scalar        -

           VMOV            Rt,   Dn[x]                 Copy scalar to ARM core register        -

           VMRS            Rt,   FPSCR                 Move FPSCR to ARM core register or      N,Z,C,V

                                                       APSR

           VMSR            FPSCR,    Rt                Move to FPSCR from ARM Core register    FPSCR

           VMUL.F32        {Sd,}     Sn,  Sm           Floating-point Multiply                 -

           VNEG.F32        Sd,   Sm                    Floating-point Negate                   -

           VNMLA.F32       {Sd,}     Sn,  Sm           Floating-point Multiply and Add         -

           VNMLS.F32       {Sd,}     Sn,  Sm           Floating-point Multiply and Subtract    -

           VNMUL           {Sd,}     Sn,  Sm           Floating-point Multiply                 -

           VPOP            list                        Pop extension registers                 -

           VPUSH           list                        Push extension registers                -

           VSQRT.F32       Sd,   Sm                    Calculates floating-point Square Root   -

           VSTM            Rn{!},    list              Floating-point register Store Multiple  -

           VSTR.F3<32|64>  Sd,   [Rn]                  Stores an extension register to memory  -

           VSUB.F<32|64>   {Sd,}     Sn,  Sm           Floating-point Subtract                 -

           WFE             -                           Wait for event                          -

           WFI             -                           Wait for interrupt                      -

June  12,  2014                                                                                       119

                                Texas Instruments-Production Data
Cortex-M4  Peripherals

3          Cortex-M4 Peripherals

           This chapter provides information on the Tiva™ C Series implementation of the Cortex-M4 processor

           peripherals, including:

           ■  SysTick   (see page 121)

              Provides a simple, 24-bit clear-on-write, decrementing, wrap-on-zero counter with a flexible

              control mechanism.

           ■  Nested Vectored Interrupt Controller (NVIC)     (see page 122)

              –  Facilitates low-latency exception and interrupt handling

              –  Controls power management

              –  Implements system control registers

           ■  System Control Block (SCB)    (see page 123)

              Provides system implementation information and system control, including configuration, control,

              and reporting of system exceptions.

           ■  Memory Protection Unit (MPU)  (see page 123)

              Supports the standard ARMv7 Protected Memory System Architecture (PMSA) model. The MPU

              provides full support for protection regions, overlapping protection regions, access permissions,

              and exporting memory attributes to the system.

           ■  Floating-Point Unit (FPU)  (see page 128)

              Fully supports single-precision add, subtract, multiply, divide, multiply and accumulate, and

              square root operations. It also provides conversions between fixed-point and floating-point data

              formats, and floating-point constant instructions.

           Table 3-1 on page 120 shows the address map of the Private Peripheral Bus (PPB). Some peripheral

           register regions are split into two address regions, as indicated by two addresses listed.

           Table 3-1. Core Peripheral    Register Regions

           Address                          Core Peripheral                        Description  (see   page  ...)

           0xE000.E010-0xE000.E01F          System Timer                           121

           0xE000.E100-0xE000.E4EF          Nested Vectored Interrupt  Controller  122

           0xE000.EF00-0xE000.EF03

           0xE000.E008-0xE000.E00F          System Control Block                   123

           0xE000.ED00-0xE000.ED3F

           0xE000.ED90-0xE000.EDB8          Memory Protection Unit                 123

           0xE000.EF30-0xE000.EF44          Floating Point Unit                    128

3.1        Functional Description

           This chapter provides information on the Tiva™ C Series implementation of the Cortex-M4 processor

           peripherals: SysTick, NVIC, SCB, MPU, FPU.

120                                                                                                    June 12, 2014

                                    Texas Instruments-Production Data
                                                                           Tiva™ TM4C123FE6PM Microcontroller

3.1.1     System Timer (SysTick)

          Cortex-M4 includes an integrated system timer, SysTick, which provides a simple, 24-bit

          clear-on-write, decrementing, wrap-on-zero counter with a flexible control mechanism. The counter

          can be used in several different ways, for example as:

          ■     An RTOS tick timer that fires at a programmable rate (for example, 100 Hz) and invokes a SysTick

                routine.

          ■     A high-speed alarm timer using the system clock.

          ■     A variable rate alarm or signal timer—the duration is range-dependent on the reference clock

                used and the dynamic range of the counter.

          ■     A simple counter used to measure time to completion and time used.

          ■     An internal clock source control based on missing/meeting durations. The COUNT bit in the

                STCTRL control and status register can be used to determine if an action completed within a

                set duration, as part of a dynamic clock management control loop.

          The timer consists of three registers:

          ■     SysTick Control and Status (STCTRL): A control and status counter to configure its clock,

                enable the counter, enable the SysTick interrupt, and determine counter status.

          ■     SysTick Reload Value (STRELOAD): The reload value for the counter, used to provide the

                counter's wrap value.

          ■     SysTick Current Value (STCURRENT): The current value of the counter.

          When enabled, the timer counts down on each clock from the reload value to zero, reloads (wraps)

          to the value in the STRELOAD register on the next clock edge, then decrements on subsequent

          clocks. Clearing the STRELOAD register disables the counter on the next wrap. When the counter

          reaches zero, the COUNT status bit is set. The COUNT bit clears on reads.

          Writing to the STCURRENT register clears the register and the COUNT status bit. The write does

          not trigger the SysTick exception logic. On a read, the current value is the value of the register at

          the time the register is accessed.

          The SysTick counter runs on either the system clock or the precision internal oscillator (PIOSC)

          divided by 4. If this clock signal is stopped for low power mode, the SysTick counter stops. SysTick

          can be kept running during Deep-sleep mode by setting the CLK_SRC bit in the SysTick Control

          and Status Register (STCTRL) register and ensuring that the PIOSCPD bit in the Deep Sleep

          Clock Configuration (DSLPCLKCFG) register is clear. Ensure software uses aligned word accesses

          to access the SysTick registers.

          The SysTick counter reload and current value are undefined at reset; the correct initialization

          sequence for the SysTick counter is:

          1.    Program the value in the STRELOAD register.

          2.    Clear the STCURRENT register by writing to it with any value.

          3.    Configure the STCTRL register for the required operation.

          Note:  When the processor is halted for debugging, the counter does not decrement.

June 12,  2014                                                                                                    121

                                       Texas Instruments-Production Data
Cortex-M4  Peripherals

3.1.2      Nested Vectored Interrupt Controller (NVIC)

           This section describes the Nested Vectored Interrupt Controller (NVIC) and the registers it uses.

           The NVIC supports:

           ■  80 interrupts.

           ■  A programmable priority level of 0-7 for each interrupt. A higher level corresponds to a lower

              priority, so level 0 is the highest interrupt priority.

           ■  Low-latency exception and interrupt handling.

           ■  Level and pulse detection of interrupt signals.

           ■  Dynamic reprioritization of interrupts.

           ■  Grouping of priority values into group priority and subpriority fields.

           ■  Interrupt tail-chaining.

           ■  An external Non-maskable interrupt (NMI).

           The processor automatically stacks its state on exception entry and unstacks this state on exception

           exit, with no instruction overhead, providing low latency exception handling.

3.1.2.1    Level-Sensitive and Pulse Interrupts

           The processor supports both level-sensitive and pulse interrupts. Pulse interrupts are also described

           as edge-triggered interrupts.

           A level-sensitive interrupt is held asserted until the peripheral deasserts the interrupt signal. Typically

           this happens because the ISR accesses the peripheral, causing it to clear the interrupt request. A

           pulse interrupt is an interrupt signal sampled synchronously on the rising edge of the processor

           clock. To ensure the NVIC detects the interrupt, the peripheral must assert the interrupt signal for

           at least one clock cycle, during which the NVIC detects the pulse and latches the interrupt.

           When the processor enters the ISR, it automatically removes the pending state from the interrupt

           (see “Hardware and Software Control of Interrupts” on page 122 for more information). For a

           level-sensitive interrupt, if the signal is not deasserted before the processor returns from the ISR,

           the interrupt becomes pending again, and the processor must execute its ISR again. As a result,

           the peripheral can hold the interrupt signal asserted until it no longer needs servicing.

3.1.2.2    Hardware and Software Control of Interrupts

           The Cortex-M4 latches all interrupts. A peripheral interrupt becomes pending for one of the following

           reasons:

           ■  The NVIC detects that the interrupt signal is High and the interrupt is not active.

           ■  The NVIC detects a rising edge on the interrupt signal.

           ■  Software writes to the corresponding interrupt set-pending register bit, or to the Software Trigger

              Interrupt (SWTRIG) register to make a Software-Generated Interrupt pending. See the INT bit

              in the PEND0 register on page 144 or SWTRIG on page 154.

           A pending interrupt remains pending until one of the following:

122                                                                                                   June 12, 2014

                                        Texas Instruments-Production Data
                                                                       Tiva™ TM4C123FE6PM Microcontroller

          ■     The processor enters the ISR for the interrupt, changing the state of the interrupt from pending

                to active. Then:

                –  For a level-sensitive interrupt, when the processor returns from the ISR, the NVIC samples

                   the interrupt signal. If the signal is asserted, the state of the interrupt changes to pending,

                   which might cause the processor to immediately re-enter the ISR. Otherwise, the state of the

                   interrupt changes to inactive.

                –  For a pulse interrupt, the NVIC continues to monitor the interrupt signal, and if this is pulsed

                   the state of the interrupt changes to pending and active. In this case, when the processor

                   returns from the ISR the state of the interrupt changes to pending, which might cause the

                   processor to immediately re-enter the ISR.

                   If the interrupt signal is not pulsed while the processor is in the ISR, when the processor

                   returns from the ISR the state of the interrupt changes to inactive.

          ■     Software writes to the corresponding interrupt clear-pending register bit

                –  For a level-sensitive interrupt, if the interrupt signal is still asserted, the state of the interrupt

                   does not change. Otherwise, the state of the interrupt changes to inactive.

                –  For a pulse interrupt, the state of the interrupt changes to inactive, if the state was pending

                   or to active, if the state was active and pending.

3.1.3     System Control Block (SCB)

          The System Control Block (SCB) provides system implementation information and system control,

          including configuration, control, and reporting of the system exceptions.

3.1.4     Memory Protection Unit (MPU)

          This section describes the Memory protection unit (MPU). The MPU divides the memory map into

          a number of regions and defines the location, size, access permissions, and memory attributes of

          each region. The MPU supports independent attribute settings for each region, overlapping regions,

          and export of memory attributes to the system.

          The memory attributes affect the behavior of memory accesses to the region. The Cortex-M4 MPU

          defines eight separate memory regions, 0-7, and a background region.

          When memory regions overlap, a memory access is affected by the attributes of the region with the

          highest number. For example, the attributes for region 7 take precedence over the attributes of any

          region that overlaps region 7.

          The background region has the same memory access attributes as the default memory map, but is

          accessible from privileged software only.

          The Cortex-M4 MPU memory map is unified, meaning that instruction accesses and data accesses

          have the same region settings.

          If a program accesses a memory location that is prohibited by the MPU, the processor generates

          a memory management fault, causing a fault exception and possibly causing termination of the

          process in an OS environment. In an OS environment, the kernel can update the MPU region setting

          dynamically based on the process to be executed. Typically, an embedded OS uses the MPU for

          me