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

型号

产品描述

搜索
 

LM3S8938-IQN20-A1T

器件型号:LM3S8938-IQN20-A1T
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:ETC2
下载文档

器件描述

32-BIT, FLASH, 50 MHz, RISC MICROCONTROLLER, PQFP100

32位, FLASH, 50 MHz, 精简指令集微控制器, PQFP100

参数

LM3S8938-IQN20-A1T功能数量 1
LM3S8938-IQN20-A1T端子数量 100
LM3S8938-IQN20-A1T最大工作温度 85 Cel
LM3S8938-IQN20-A1T最小工作温度 -40 Cel
LM3S8938-IQN20-A1T最大供电/工作电压 2.75 V
LM3S8938-IQN20-A1T最小供电/工作电压 2.25 V
LM3S8938-IQN20-A1T额定供电电压 2.5 V
LM3S8938-IQN20-A1T外部数据总线宽度 0.0
LM3S8938-IQN20-A1T输入输出总线数量 38
LM3S8938-IQN20-A1T线速度 50 MHz
LM3S8938-IQN20-A1T加工封装描述 绿色, MS-026BED, LQFP-100
LM3S8938-IQN20-A1T无铅 Yes
LM3S8938-IQN20-A1T欧盟RoHS规范 Yes
LM3S8938-IQN20-A1T中国RoHS规范 Yes
LM3S8938-IQN20-A1T状态 ACTIVE
LM3S8938-IQN20-A1T包装形状 SQUARE
LM3S8938-IQN20-A1T包装尺寸 FLATPACK
LM3S8938-IQN20-A1T表面贴装 Yes
LM3S8938-IQN20-A1T端子形式 GULL WING
LM3S8938-IQN20-A1T端子间距 0.5000 mm
LM3S8938-IQN20-A1T端子涂层
LM3S8938-IQN20-A1T端子位置
LM3S8938-IQN20-A1T包装材料 塑料/环氧树脂
LM3S8938-IQN20-A1T温度等级 INDUSTRIAL
LM3S8938-IQN20-A1TADC通道 Yes
LM3S8938-IQN20-A1T地址总线宽度 0.0
LM3S8938-IQN20-A1T位数 32
LM3S8938-IQN20-A1T最大FCLK时钟频率 8.19 MHz
LM3S8938-IQN20-A1T微处理器类型 精简指令集微控制器
LM3S8938-IQN20-A1TPWM通道 Yes
LM3S8938-IQN20-A1TROM编程 FLASH

LM3S8938-IQN20-A1T器件文档内容

                LUMINARY MICRO CONFIDENTIAL-ADVANCE PRODUCT INFORMATION

                LM3S8938 Microcontroller

                                                    DATA SHEET

DS-LM3S8938-01  Copyright 2007 Luminary Micro, Inc.
Legal Disclaimers and Trademark Information

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH LUMINARY MICRO PRODUCTS. NO LICENSE, EXPRESS OR
IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT
AS PROVIDED IN LUMINARY MICRO'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, LUMINARY MICRO ASSUMES NO
LIABILITY WHATSOEVER, AND LUMINARY MICRO DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR
USE OF LUMINARY MICRO'S PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR
PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
LUMINARY MICRO'S PRODUCTS ARE NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING, OR LIFE-SUSTAINING APPLICATIONS.

Luminary Micro may make changes to specifications and product descriptions at any time, without notice. Contact your local Luminary Micro sales office
or your distributor to obtain the latest specifications before placing your product order.

Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Luminary Micro reserves these
for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.

Copyright 2007 Luminary Micro, Inc. All rights reserved. Stellaris is a registered trademark and Luminary Micro and the Luminary Micro logo are
trademarks of Luminary Micro, Inc. or its subsidiaries in the United States and other countries. ARM and Thumb are registered trademarks and Cortex
is a trademark of ARM Limited. Other names and brands may be claimed as the property of others.

Luminary Micro, Inc.
108 Wild Basin, Suite 350
Austin, TX 78746
Main: +1-512-279-8800
Fax: +1-512-279-8879
http://www.luminarymicro.com

2                                                           June 14, 2007

   Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

Table of Contents

About This Document .................................................................................................................... 20
Audience .............................................................................................................................................. 20
About This Manual ................................................................................................................................ 20
Related Documents ............................................................................................................................... 20
Documentation Conventions .................................................................................................................. 20

1      Overview ............................................................................................................................. 22
1.1    Product Features ...................................................................................................................... 22
1.2    Target Applications .................................................................................................................... 27
1.3    High-Level Block Diagram ......................................................................................................... 27
1.4    Functional Overview .................................................................................................................. 28
1.4.1  ARM CortexTM-M3 ..................................................................................................................... 29
1.4.2  Motor Control Peripherals .......................................................................................................... 29
1.4.3  Serial Communications Peripherals ............................................................................................ 30
1.4.4  System Peripherals ................................................................................................................... 31
1.4.5  Memory Peripherals .................................................................................................................. 32
1.4.6  Additional Features ................................................................................................................... 33
1.4.7  Hardware Details ...................................................................................................................... 33

2      Cortex-M3 Core .................................................................................................................. 35
2.1    Block Diagram .......................................................................................................................... 36
2.2    Functional Description ............................................................................................................... 36
2.2.1  Serial Wire and JTAG Debug ..................................................................................................... 36
2.2.2  Embedded Trace Macrocell (ETM) ............................................................................................. 37
2.2.3  Trace Port Interface Unit (TPIU) ................................................................................................. 37
2.2.4  ROM Table ............................................................................................................................... 37
2.2.5  Memory Protection Unit (MPU) ................................................................................................... 37
2.2.6  Nested Vectored Interrupt Controller (NVIC) ................................................................................ 37

3      Memory Map ....................................................................................................................... 41

4      Interrupts ............................................................................................................................ 43

5      JTAG .................................................................................................................................... 46
5.1    Block Diagram .......................................................................................................................... 47
5.2    Functional Description ............................................................................................................... 47
5.2.1  JTAG Interface Pins .................................................................................................................. 48
5.2.2  JTAG TAP Controller ................................................................................................................. 49
5.2.3  Shift Registers .......................................................................................................................... 50
5.2.4  Operational Considerations ........................................................................................................ 50
5.3    Initialization and Configuration ................................................................................................... 53
5.4    Register Descriptions ................................................................................................................ 53
5.4.1  Instruction Register (IR) ............................................................................................................. 53
5.4.2  Data Registers .......................................................................................................................... 55

6      System Control ................................................................................................................... 57
6.1    Functional Description ............................................................................................................... 57
6.1.1  Device Identification .................................................................................................................. 57
6.1.2  Reset Control ............................................................................................................................ 57
6.1.3  Power Control ........................................................................................................................... 60

June 14, 2007                                                           3

               Luminary Micro Confidential-Advance Product Information
Table of Contents

6.1.4  Clock Control ............................................................................................................................ 60
6.1.5  System Control ......................................................................................................................... 62
6.2    Initialization and Configuration ................................................................................................... 63
6.3    Register Map ............................................................................................................................ 63
6.4    Register Descriptions ................................................................................................................ 64

7      Hibernation Module .......................................................................................................... 113
7.1    Block Diagram ........................................................................................................................ 114
7.2    Functional Description ............................................................................................................. 114
7.2.1  Register Access Timing ........................................................................................................... 114
7.2.2  Clock Source .......................................................................................................................... 115
7.2.3  Battery Management ............................................................................................................... 115
7.2.4  Real-Time Clock ...................................................................................................................... 115
7.2.5  Non-Volatile Memory ............................................................................................................... 116
7.2.6  Power Control ......................................................................................................................... 116
7.2.7  Interrupts and Status ............................................................................................................... 116
7.3    Initialization and Configuration ................................................................................................. 116
7.3.1  Initialization ............................................................................................................................. 117
7.3.2  RTC Match Functionality (No Hibernation) ................................................................................ 117
7.3.3  RTC Match/Wake-Up from Hibernation ..................................................................................... 117
7.3.4  External Wake-Up from Hibernation .......................................................................................... 117
7.3.5  RTC/External Wake-Up from Hibernation .................................................................................. 118
7.4    Register Map .......................................................................................................................... 118
7.5    Register Descriptions .............................................................................................................. 118

8      Internal Memory ............................................................................................................... 131
8.1    Block Diagram ........................................................................................................................ 131
8.2    Functional Description ............................................................................................................. 131
8.2.1  SRAM Memory ........................................................................................................................ 131
8.2.2  Flash Memory ......................................................................................................................... 132
8.3    Flash Memory Initialization and Configuration ........................................................................... 133
8.3.1  Flash Programming ................................................................................................................. 133
8.3.2  Nonvolatile Register Programming ........................................................................................... 134
8.4    Register Map .......................................................................................................................... 134
8.5    Flash Control Offset ................................................................................................................. 135
8.6    System Control Offset .............................................................................................................. 142

9      GPIO .................................................................................................................................. 155
9.1    Function Description ................................................................................................................ 155
9.1.1  Data Control ........................................................................................................................... 155
9.1.2  Interrupt Control ...................................................................................................................... 156
9.1.3  Mode Control .......................................................................................................................... 157
9.1.4  Commit Control ....................................................................................................................... 157
9.1.5  Pad Control ............................................................................................................................. 157
9.1.6  Identification ........................................................................................................................... 158
9.2    Initialization and Configuration ................................................................................................. 158
9.3    Register Map .......................................................................................................................... 159
9.4    Register Descriptions .............................................................................................................. 161

10     Timers ............................................................................................................................... 196
10.1   Block Diagram ........................................................................................................................ 197

4                                                                           June 14, 2007

                   Luminary Micro Confidential-Advance Product Information
                                                                                                                             LM3S8938 Microcontroller

10.2 Functional Description ............................................................................................................. 197
10.2.1 GPTM Reset Conditions .......................................................................................................... 197
10.2.2 32-Bit Timer Operating Modes .................................................................................................. 197
10.2.3 16-Bit Timer Operating Modes .................................................................................................. 199
10.3 Initialization and Configuration ................................................................................................. 203
10.3.1 32-Bit One-Shot/Periodic Timer Mode ....................................................................................... 203
10.3.2 32-Bit Real-Time Clock (RTC) Mode ......................................................................................... 204
10.3.3 16-Bit One-Shot/Periodic Timer Mode ....................................................................................... 204
10.3.4 16-Bit Input Edge Count Mode ................................................................................................. 205
10.3.5 16-Bit Input Edge Timing Mode ................................................................................................ 205
10.3.6 16-Bit PWM Mode ................................................................................................................... 206
10.4 Register Map .......................................................................................................................... 206
10.5 Register Descriptions .............................................................................................................. 207

11 Watchdog Timer ............................................................................................................... 229
11.1 Block Diagram ........................................................................................................................ 229
11.2 Functional Description ............................................................................................................. 229
11.3 Initialization and Configuration ................................................................................................. 230
11.4 Register Map .......................................................................................................................... 230
11.5 Register Descriptions .............................................................................................................. 231

12 ADC ................................................................................................................................... 252
12.1 Block Diagram ........................................................................................................................ 253
12.2 Functional Description ............................................................................................................. 253
12.2.1 Sample Sequencers ................................................................................................................ 253
12.2.2 Module Control ........................................................................................................................ 254
12.2.3 Hardware Sample Averaging Circuit ......................................................................................... 255
12.2.4 Analog-to-Digital Converter ...................................................................................................... 255
12.2.5 Test Modes ............................................................................................................................. 255
12.2.6 Internal Temperature Sensor .................................................................................................... 255
12.3 Initialization and Configuration ................................................................................................. 256
12.3.1 Module Initialization ................................................................................................................. 256
12.3.2 Sample Sequencer Configuration ............................................................................................. 256
12.4 Register Map .......................................................................................................................... 257
12.5 Register Descriptions .............................................................................................................. 258

13 UART ................................................................................................................................. 285
13.1 Block Diagram ........................................................................................................................ 286
13.2 Functional Description ............................................................................................................. 286
13.2.1 Transmit/Receive Logic ........................................................................................................... 286
13.2.2 Baud-Rate Generation ............................................................................................................. 287
13.2.3 Data Transmission .................................................................................................................. 288
13.2.4 Serial IR (SIR) ......................................................................................................................... 288
13.2.5 FIFO Operation ....................................................................................................................... 289
13.2.6 Interrupts ................................................................................................................................ 289
13.2.7 Loopback Operation ................................................................................................................ 290
13.2.8 IrDA SIR block ........................................................................................................................ 290
13.3 Initialization and Configuration ................................................................................................. 290
13.4 Register Map .......................................................................................................................... 291
13.5 Register Descriptions .............................................................................................................. 292

June 14, 2007                                                           5

               Luminary Micro Confidential-Advance Product Information
Table of Contents

14 SSI ..................................................................................................................................... 325
14.1 Block Diagram ........................................................................................................................ 325
14.2 Functional Description ............................................................................................................. 326
14.2.1 Bit Rate Generation ................................................................................................................. 326
14.2.2 FIFO Operation ....................................................................................................................... 326
14.2.3 Interrupts ................................................................................................................................ 326
14.2.4 Frame Formats ....................................................................................................................... 327
14.3 Initialization and Configuration ................................................................................................. 334
14.4 Register Map .......................................................................................................................... 335
14.5 Register Descriptions .............................................................................................................. 336
15 Inter-Integrated Circuit (I2C) Interface ............................................................................ 359
15.1 Block Diagram ........................................................................................................................ 359
15.2 Functional Description ............................................................................................................. 359
15.2.1 I2C Bus Functional Overview .................................................................................................... 360
15.2.2 Available Speed Modes ........................................................................................................... 362
15.2.3 Interrupts ................................................................................................................................ 363
15.2.4 Loopback Operation ................................................................................................................ 363
15.2.5 Command Sequence Flow Charts ............................................................................................ 364
15.3 Initialization and Configuration ................................................................................................. 370
15.4 I2C Register Map ..................................................................................................................... 371
15.5 I2C Master .............................................................................................................................. 372
15.6 I2C Slave ................................................................................................................................ 385

16 CAN ................................................................................................................................... 394
16.1 Controller Area Network Overview ............................................................................................ 394
16.2 Controller Area Network Features ............................................................................................ 394
16.3 Controller Area Network Block Diagram .................................................................................... 395
16.4 Controller Area Network Functional Description ......................................................................... 396
16.4.1 Initialization ............................................................................................................................. 396
16.4.2 Operation ............................................................................................................................... 397
16.4.3 Transmitting Message Objects ................................................................................................. 397
16.4.4 Configuring a Transmit Message Object .................................................................................... 397
16.4.5 Updating a Transmit Message Object ....................................................................................... 398
16.4.6 Accepting Received Message Objects ...................................................................................... 398
16.4.7 Receiving a Data Frame .......................................................................................................... 399
16.4.8 Receiving a Remote Frame ...................................................................................................... 399
16.4.9 Receive/Transmit Priority ......................................................................................................... 399
16.4.10 Configuring a Receive Message Object .................................................................................... 399
16.4.11 Handling of Received Message Objects .................................................................................... 400
16.4.12 Handling of Interrupts .............................................................................................................. 400
16.4.13 Bit Timing Configuration Error Considerations ........................................................................... 401
16.4.14 Bit Time and Bit Rate ............................................................................................................... 401
16.4.15 Calculating the Bit Timing Parameters ...................................................................................... 403
16.5 Controller Area Network Register Map ...................................................................................... 405
16.6 Register Descriptions .............................................................................................................. 407

17 Ethernet ............................................................................................................................. 438
17.1 Block Diagram ........................................................................................................................ 439
17.2 Functional Description ............................................................................................................. 439

6                                                                           June 14, 2007

                   Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

17.2.1 Internal MII Operation .............................................................................................................. 439
17.2.2 PHY Configuration/Operation ................................................................................................... 440
17.2.3 MAC Configuration/Operation .................................................................................................. 441
17.2.4 Interrupts ................................................................................................................................ 443
17.3 Initialization and Configuration ................................................................................................. 444
17.4 Ethernet Register Map ............................................................................................................. 444
17.5 Ethernet MAC ......................................................................................................................... 446
17.6 MII Management ..................................................................................................................... 463

18 Analog Comparators ....................................................................................................... 482
18.1 Block Diagram ........................................................................................................................ 483
18.2 Functional Description ............................................................................................................. 483
18.2.1 Internal Reference Programming .............................................................................................. 485
18.3 Initialization and Configuration ................................................................................................. 486
18.4 Register Map .......................................................................................................................... 486
18.5 Register Descriptions .............................................................................................................. 487

19 Pin Diagram ...................................................................................................................... 495

20 Signal Tables .................................................................................................................... 496

21 Operating Characteristics ............................................................................................... 510

22 Electrical Characteristics ................................................................................................ 511
22.1 DC Characteristics .................................................................................................................. 511
22.1.1 Maximum Ratings ................................................................................................................... 511
22.1.2 Recommended DC Operating Conditions .................................................................................. 511
22.1.3 On-Chip Low Drop-Out (LDO) Regulator Characteristics ............................................................ 512
22.1.4 Power Specifications ............................................................................................................... 512
22.1.5 Flash Memory Characteristics .................................................................................................. 513
22.2 AC Characteristics ................................................................................................................... 513
22.2.1 Load Conditions ...................................................................................................................... 513
22.2.2 Clocks .................................................................................................................................... 513
22.2.3 Temperature Sensor ................................................................................................................ 514
22.2.4 Analog-to-Digital Converter ...................................................................................................... 514
22.2.5 Analog Comparator ................................................................................................................. 515
22.2.6 I2C ......................................................................................................................................... 515
22.2.7 Ethernet Controller .................................................................................................................. 516
22.2.8 Hibernation Module ................................................................................................................. 519
22.2.9 Synchronous Serial Interface (SSI) ........................................................................................... 519
22.2.10 JTAG and Boundary Scan ........................................................................................................ 521
22.2.11 General-Purpose I/O ............................................................................................................... 522
22.2.12 Reset ..................................................................................................................................... 523

23 Package Information ........................................................................................................ 525

24 Ordering Information ....................................................................................................... 527
24.1 Ordering Information ................................................................................................................ 527
24.2 Company Information .............................................................................................................. 527
24.3 Support Information ................................................................................................................. 527

A Serial Flash Loader .......................................................................................................... 528
A.1 Serial Flash Loader ................................................................................................................. 528
A.2 Interfaces ............................................................................................................................... 528

June 14, 2007                                                           7

               Luminary Micro Confidential-Advance Product Information
Table of Contents

A.2.1  UART ..................................................................................................................................... 528
A.2.2  SSI ......................................................................................................................................... 528
A.3    Packet Handling ...................................................................................................................... 529
A.3.1  Packet Format ........................................................................................................................ 529
A.3.2  Sending Packets ..................................................................................................................... 529
A.3.3  Receiving Packets ................................................................................................................... 529
A.4    Commands ............................................................................................................................. 530
A.4.1  COMMAND_PING (0X20) ........................................................................................................ 530
A.4.2  COMMAND_GET_STATUS (0x23) ........................................................................................... 530
A.4.3  COMMAND_DOWNLOAD (0x21) ............................................................................................. 530
A.4.4  COMMAND_SEND_DATA (0x24) ............................................................................................. 531
A.4.5  COMMAND_RUN (0x22) ......................................................................................................... 531
A.4.6  COMMAND_RESET (0x25) ..................................................................................................... 531

B      Register Quick Reference ............................................................................................... 533

8                                                                           June 14, 2007

                   Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

List of Figures

Figure 1-1. Stellaris Fury-class High-Level Block Diagram ................................................................ 28
Figure 2-1. CPU Block Diagram ......................................................................................................... 36
Figure 2-2. TPIU Block Diagram ........................................................................................................ 37
Figure 5-1. JTAG Module Block Diagram ............................................................................................ 47
Figure 5-2. Test Access Port State Machine ....................................................................................... 50
Figure 5-3. IDCODE Register Format ................................................................................................. 55
Figure 5-4. BYPASS Register Format ................................................................................................ 56
Figure 5-5. Boundary Scan Register Format ....................................................................................... 56
Figure 6-1. External Circuitry to Extend Reset .................................................................................... 58
Figure 7-1. Hibernation Module Block Diagram ................................................................................. 114
Figure 8-1. Flash Block Diagram ...................................................................................................... 131
Figure 9-1. GPIODATA Write Example ............................................................................................. 156
Figure 9-2. GPIODATA Read Example ............................................................................................. 156
Figure 10-1. GPTM Module Block Diagram ........................................................................................ 197
Figure 10-2. 16-Bit Input Edge Count Mode Example .......................................................................... 201
Figure 10-3. 16-Bit Input Edge Time Mode Example ........................................................................... 202
Figure 10-4. 16-Bit PWM Mode Example ............................................................................................ 203
Figure 11-1. WDT Module Block Diagram .......................................................................................... 229
Figure 12-1. ADC Module Block Diagram ........................................................................................... 253
Figure 12-2. Internal Temperature Sensor Characteristic ..................................................................... 256
Figure 13-1. UART Module Block Diagram ......................................................................................... 286
Figure 13-2. UART Character Frame ................................................................................................. 287
Figure 13-3. IrDA Data Modulation ..................................................................................................... 289
Figure 14-1. SSI Module Block Diagram ............................................................................................. 325
Figure 14-2. TI Synchronous Serial Frame Format (Single Transfer) .................................................... 328
Figure 14-3. TI Synchronous Serial Frame Format (Continuous Transfer) ............................................ 328
Figure 14-4. Freescale SPI Format (Single Transfer) with SPO=0 and SPH=0 ...................................... 329
Figure 14-5. Freescale SPI Format (Continuous Transfer) with SPO=0 and SPH=0 .............................. 329
Figure 14-6. Freescale SPI Frame Format with SPO=0 and SPH=1 ..................................................... 330
Figure 14-7. Freescale SPI Frame Format (Single Transfer) with SPO=1 and SPH=0 ........................... 331
Figure 14-8. Freescale SPI Frame Format (Continuous Transfer) with SPO=1 and SPH=0 .................... 331
Figure 14-9. Freescale SPI Frame Format with SPO=1 and SPH=1 ..................................................... 332
Figure 14-10. MICROWIRE Frame Format (Single Frame) .................................................................... 333
Figure 14-11. MICROWIRE Frame Format (Continuous Transfer) ......................................................... 334
Figure 14-12. MICROWIRE Frame Format, SSIFss Input Setup and Hold Requirements ........................ 334
Figure 15-1. I2C Block Diagram ......................................................................................................... 359
Figure 15-2. I2C Bus Configuration .................................................................................................... 360
Figure 15-3. START and STOP Conditions ......................................................................................... 360
Figure 15-4. Complete Data Transfer with a 7-Bit Address ................................................................... 361
Figure 15-5. R/S Bit in First Byte ........................................................................................................ 361
Figure 15-6. Data Validity During Bit Transfer on the I2C Bus ............................................................... 361
Figure 15-7. Master Single SEND ...................................................................................................... 364
Figure 15-8. Master Single RECEIVE ................................................................................................. 365
Figure 15-9. Master Burst SEND ....................................................................................................... 366
Figure 15-10. Master Burst RECEIVE .................................................................................................. 367
Figure 15-11. Master Burst RECEIVE after Burst SEND ........................................................................ 368

June 14, 2007                                                           9

               Luminary Micro Confidential-Advance Product Information
Table of Contents

Figure 15-12. Master Burst SEND after Burst RECEIVE ........................................................................ 369
Figure 15-13. Slave Command Sequence ............................................................................................ 370
Figure 16-1. CAN Module Block Diagram ........................................................................................... 395
Figure 16-2. CAN Bit Time ................................................................................................................ 402
Figure 17-1. Ethernet Controller Block Diagram .................................................................................. 439
Figure 17-2. Ethernet Controller ......................................................................................................... 439
Figure 17-3. Ethernet Frame ............................................................................................................. 441
Figure 18-1. Analog Comparator Module Block Diagram ..................................................................... 483
Figure 18-2. Structure of Comparator Unit .......................................................................................... 484
Figure 18-3. Comparator Internal Reference Structure ........................................................................ 485
Figure 19-1. Pin Connection Diagram ................................................................................................ 495
Figure 22-1. Load Conditions ............................................................................................................ 513
Figure 22-2. I2C Timing ..................................................................................................................... 516
Figure 22-3. External XTLP Oscillator Characteristics ......................................................................... 518
Figure 22-4. Hibernation Module Timing ............................................................................................. 519
Figure 22-5. SSI Timing for TI Frame Format (FRF=01), Single Transfer Timing Measurement .............. 520
Figure 22-6. SSI Timing for MICROWIRE Frame Format (FRF=10), Single Transfer ............................. 520
Figure 22-7. SSI Timing for SPI Frame Format (FRF=00), with SPH=1 ................................................. 521
Figure 22-8. JTAG Test Clock Input Timing ......................................................................................... 522
Figure 22-9. JTAG Test Access Port (TAP) Timing .............................................................................. 522
Figure 22-10. JTAG TRST Timing ........................................................................................................ 522
Figure 22-11. External Reset Timing (RST) ........................................................................................... 523
Figure 22-12. Power-On Reset Timing ................................................................................................. 524
Figure 22-13. Brown-Out Reset Timing ................................................................................................ 524
Figure 22-14. Software Reset Timing ................................................................................................... 524
Figure 22-15. Watchdog Reset Timing ................................................................................................. 524
Figure 23-1. 100-Pin LQFP Package .................................................................................................. 525

10                                                           June 14, 2007

    Luminary Micro Confidential-Advance Product Information
                                                                         LM3S8938 Microcontroller

List of Tables

Table 1.       Documentation Conventions ............................................................................................ 20
Table 3-1.     Memory Map ................................................................................................................... 41
Table 4-1.     Exception Types .............................................................................................................. 43
Table 4-2.     Interrupts ........................................................................................................................ 44
Table 5-1.     JTAG Port Pins Reset State ............................................................................................. 48
Table 5-2.     JTAG Instruction Register Commands ............................................................................... 53
Table 6-1.     System Control Register Map ........................................................................................... 63
Table 6-2.     VADJ to VOUT ................................................................................................................ 68
Table 6-3.     Default Crystal Field Values and PLL Programming ........................................................... 75
Table 7-1.     Hibernation Module Register Map ................................................................................... 118
Table 8-1.     Flash Protection Policy Combinations ............................................................................. 133
Table 8-2.     Flash Resident Registers ............................................................................................... 134
Table 8-3.     Internal Memory Register Map ........................................................................................ 134
Table 9-1.     GPIO Pad Configuration Examples ................................................................................. 158
Table 9-2.     GPIO Interrupt Configuration Example ............................................................................ 158
Table 9-3.     GPIO Register Map ....................................................................................................... 160
Table 10-1.    16-Bit Timer With Prescaler Configurations ..................................................................... 200
Table 10-2.    Timers Register Map ...................................................................................................... 206
Table 11-1.    Watchdog Timer Register Map ........................................................................................ 230
Table 12-1.    Samples and FIFO Depth of Sequencers ........................................................................ 253
Table 12-2.    ADC Register Map ......................................................................................................... 257
Table 13-1.    UART Register Map ....................................................................................................... 291
Table 14-1.    SSI Register Map .......................................................................................................... 335
Table 15-1.    Examples of I2C Master Timer Period versus Speed Mode ............................................... 362
Table 15-2.    Inter-Integrated Circuit (I2C) Interface Register Map ......................................................... 371
Table 15-3.    Write Field Decoding for I2CMCS[3:0] Field (Sheet 1 of 3) ................................................ 376
Table 16-1.    Transmit Message Object Bit Settings ............................................................................. 398
Table 16-2.    Receive Message Object Bit Settings .............................................................................. 400
Table 16-3.    CAN Protocol Ranges .................................................................................................... 402
Table 16-4.    CAN Register Map ......................................................................................................... 405
Table 17-1.    TX & RX FIFO Organization ........................................................................................... 442
Table 17-2.    Ethernet Register Map ................................................................................................... 445
Table 18-1.    Comparator 0 Operating Modes ...................................................................................... 484
Table 18-2.    Comparator 1 Operating Modes ...................................................................................... 484
Table 18-3.    Comparator 2 Operating Modes ...................................................................................... 485
Table 18-4.    Internal Reference Voltage and ACREFCTL Field Values ................................................. 485
Table 18-5.    Analog Comparators Register Map ................................................................................. 487
Table 20-1.    Signals by Pin Number ................................................................................................... 496
Table 20-2.    Signals by Signal Name ................................................................................................. 500
Table 20-3.    Signals by Function, Except for GPIO ............................................................................. 504
Table 20-4.    GPIO Pins and Alternate Functions ................................................................................. 508
Table 21-1.    Temperature Characteristics ........................................................................................... 510
Table 21-2.    Thermal Characteristics ................................................................................................. 510
Table 22-1.    Maximum Ratings .......................................................................................................... 511
Table 22-2.    Recommended DC Operating Conditions ........................................................................ 511
Table 22-3.    LDO Regulator Characteristics ....................................................................................... 512

June 14, 2007                                                            11

                Luminary Micro Confidential-Advance Product Information
Table of Contents

Table 22-4.   Flash Memory Characteristics ........................................................................................ 513
Table 22-5.   Phase Locked Loop (PLL) Characteristics ....................................................................... 513
Table 22-6.   Clock Characteristics ..................................................................................................... 513
Table 22-7.   Crystal Characteristics ................................................................................................... 514
Table 22-8.   Temperature Sensor Characteristics ............................................................................... 514
Table 22-9.   ADC Characteristics ....................................................................................................... 514
Table 22-10.  Analog Comparator Characteristics ................................................................................. 515
Table 22-11.  Analog Comparator Voltage Reference Characteristics .................................................... 515
Table 22-12.  I2C Characteristics ......................................................................................................... 515
Table 22-13.  100BASE-TX Transmitter Characteristics ........................................................................ 516
Table 22-14.  100BASE-TX Transmitter Characteristics (informative) ..................................................... 516
Table 22-15.  100BASE-TX Receiver Characteristics ............................................................................ 516
Table 22-16.  10BASE-T Transmitter Characteristics ............................................................................ 516
Table 22-17.  10BASE-T Transmitter Characteristics (informative) ......................................................... 517
Table 22-18.  10BASE-T Receiver Characteristics ................................................................................ 517
Table 22-19.  Isolation Transformers ................................................................................................... 517
Table 22-20.  Ethernet Reference Crystal ............................................................................................ 518
Table 22-21.  External XTLP Oscillator Characteristics ......................................................................... 518
Table 22-22.  Hibernation Module Characteristics ................................................................................. 519
Table 22-23.  SSI Characteristics ........................................................................................................ 519
Table 22-24.  JTAG Characteristics ..................................................................................................... 521
Table 22-25.  GPIO Characteristics ..................................................................................................... 523
Table 22-26.  Reset Characteristics ..................................................................................................... 523
Table 24-1.   Part Ordering Information ............................................................................................... 527

12                                                                          June 14, 2007

                   Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

List of Registers

System Control .............................................................................................................................. 57
Register 1: Device Identification 0 (DID0), offset 0x000 ....................................................................... 65
Register 2: Brown-Out Reset Control (PBORCTL), offset 0x030 .......................................................... 67
Register 3: LDO Power Control (LDOPCTL), offset 0x034 ................................................................... 68
Register 4: Raw Interrupt Status (RIS), offset 0x050 ........................................................................... 69
Register 5: Interrupt Mask Control (IMC), offset 0x054 ........................................................................ 70
Register 6: Masked Interrupt Status and Clear (MISC), offset 0x058 .................................................... 71
Register 7: Reset Cause (RESC), offset 0x05C .................................................................................. 72
Register 8: Run-Mode Clock Configuration (RCC), offset 0x060 .......................................................... 73
Register 9: XTAL to PLL Translation (PLLCFG), offset 0x064 .............................................................. 77
Register 10: Run-Mode Clock Configuration 2 (RCC2), offset 0x070 ...................................................... 78
Register 11: Deep Sleep Clock Configuration (DSLPCLKCFG), offset 0x144 .......................................... 80
Register 12: Device Identification 1 (DID1), offset 0x004 ....................................................................... 81
Register 13: Device Capabilities 0 (DC0), offset 0x008 ......................................................................... 83
Register 14: Device Capabilities 1 (DC1), offset 0x010 ......................................................................... 84
Register 15: Device Capabilities 2 (DC2), offset 0x014 ......................................................................... 86
Register 16: Device Capabilities 3 (DC3), offset 0x018 ......................................................................... 88
Register 17: Device Capabilities 4 (DC4), offset 0x01C ......................................................................... 90
Register 18: Run Mode Clock Gating Control Register 0 (RCGC0), offset 0x100 .................................... 91
Register 19: Sleep Mode Clock Gating Control Register 0 (SCGC0), offset 0x110 .................................. 93
Register 20: Deep Sleep Mode Clock Gating Control Register 0 (DCGC0), offset 0x120 ......................... 95
Register 21: Run Mode Clock Gating Control Register 1 (RCGC1), offset 0x104 .................................... 97
Register 22: Sleep Mode Clock Gating Control Register 1 (SCGC1), offset 0x114 .................................. 99
Register 23: Deep Sleep Mode Clock Gating Control Register 1 (DCGC1), offset 0x124 ....................... 101
Register 24: Run Mode Clock Gating Control Register 2 (RCGC2), offset 0x108 ................................... 103
Register 25: Sleep Mode Clock Gating Control Register 2 (SCGC2), offset 0x118 ................................. 105
Register 26: Deep Sleep Mode Clock Gating Control Register 2 (DCGC2), offset 0x128 ....................... 107
Register 27: Software Reset Control 0 (SRCR0), offset 0x040 ............................................................. 109
Register 28: Software Reset Control 1 (SRCR1), offset 0x044 ............................................................. 110
Register 29: Software Reset Control 2 (SRCR2), offset 0x048 ............................................................. 112

Hibernation Module ..................................................................................................................... 113
Register 1: Hibernation RTC Counter (HIBRTCC), offset 0x000 ......................................................... 119
Register 2: Hibernation RTC Match 0 (HIBRTCM0), offset 0x004 ....................................................... 120
Register 3: Hibernation RTC Match 1 (HIBRTCM1), offset 0x008 ....................................................... 121
Register 4: Hibernation RTC Load (HIBRTCLD), offset 0x00C ........................................................... 122
Register 5: Hibernation Control (HIBCTL), offset 0x010 ..................................................................... 123
Register 6: Hibernation Interrupt Mask (HIBIM), offset 0x014 ............................................................. 125
Register 7: Hibernation Raw Interrupt Status (HIBRIS), offset 0x018 .................................................. 126
Register 8: Hibernation Masked Interrupt Status (HIBMIS), offset 0x01C ............................................ 127
Register 9: Hibernation Interrupt Clear (HIBIC), offset 0x020 ............................................................. 128
Register 10: Hibernation RTC Trim (HIBRTCT), offset 0x024 ............................................................... 129
Register 11: Hibernation Data (HIBDATA), offset 0x030-0x12C ............................................................ 130

Internal Memory ........................................................................................................................... 131
Register 1: Flash Memory Address (FMA), offset 0x000 .................................................................... 136
Register 2: Flash Memory Data (FMD), offset 0x004 ......................................................................... 137

June 14, 2007                                                           13

               Luminary Micro Confidential-Advance Product Information
Table of Contents

Register 3:   Flash Memory Control (FMC), offset 0x008 ..................................................................... 138
Register 4:   Flash Controller Raw Interrupt Status (FCRIS), offset 0x00C ............................................ 140
Register 5:   Flash Controller Interrupt Mask (FCIM), offset 0x010 ........................................................ 141
Register 6:   Flash Controller Masked Interrupt Status and Clear (FCMISC), offset 0x014 ..................... 142
Register 7:   USec Reload (USECRL), offset 0x140 ............................................................................ 143
Register 8:   Flash Memory Protection Read Enable 0 (FMPRE0), offset 0x130 and 0x200 ................... 144
Register 9:   Flash Memory Protection Program Enable 0 (FMPPE0), offset 0x134 and 0x400 ............... 145
Register 10:  User Debug (USER_DBG), offset 0x1D0 ......................................................................... 146
Register 11:  User Register 0 (USER_REG0), offset 0x1E0 .................................................................. 147
Register 12:  User Register 1 (USER_REG1), offset 0x1E4 .................................................................. 148
Register 13:  Flash Memory Protection Read Enable 1 (FMPRE1), offset 0x204 .................................... 149
Register 14:  Flash Memory Protection Read Enable 2 (FMPRE2), offset 0x208 .................................... 150
Register 15:  Flash Memory Protection Read Enable 3 (FMPRE3), offset 0x20C ................................... 151
Register 16:  Flash Memory Protection Program Enable 1 (FMPPE1), offset 0x404 ............................... 152
Register 17:  Flash Memory Protection Program Enable 2 (FMPPE2), offset 0x408 ............................... 153
Register 18:  Flash Memory Protection Program Enable 3 (FMPPE3), offset 0x40C ............................... 154

GPIO .............................................................................................................................................. 155
Register 1: GPIO Data (GPIODATA), offset 0x000 ............................................................................ 162
Register 2: GPIO Direction (GPIODIR), offset 0x400 ......................................................................... 163
Register 3: GPIO Interrupt Sense (GPIOIS), offset 0x404 .................................................................. 164
Register 4: GPIO Interrupt Both Edges (GPIOIBE), offset 0x408 ........................................................ 165
Register 5: GPIO Interrupt Event (GPIOIEV), offset 0x40C ................................................................ 166
Register 6: GPIO Interrupt Mask (GPIOIM), offset 0x410 ................................................................... 167
Register 7: GPIO Raw Interrupt Status (GPIORIS), offset 0x414 ........................................................ 168
Register 8: GPIO Masked Interrupt Status (GPIOMIS), offset 0x418 ................................................... 169
Register 9: GPIO Interrupt Clear (GPIOICR), offset 0x41C ................................................................ 170
Register 10: GPIO Alternate Function Select (GPIOAFSEL), offset 0x420 ............................................ 171
Register 11: GPIO 2-mA Drive Select (GPIODR2R), offset 0x500 ........................................................ 173
Register 12: GPIO 4-mA Drive Select (GPIODR4R), offset 0x504 ........................................................ 174
Register 13: GPIO 8-mA Drive Select (GPIODR8R), offset 0x508 ........................................................ 175
Register 14: GPIO Open Drain Select (GPIOODR), offset 0x50C ......................................................... 176
Register 15: GPIO Pull-Up Select (GPIOPUR), offset 0x510 ................................................................ 177
Register 16: GPIO Pull-Down Select (GPIOPDR), offset 0x514 ........................................................... 178
Register 17: GPIO Slew Rate Control Select (GPIOSLR), offset 0x518 ................................................ 179
Register 18: GPIO Digital Enable (GPIODEN), offset 0x51C ................................................................ 180
Register 19: GPIO Lock (GPIOLOCK), offset 0x520 ............................................................................ 181
Register 20: GPIO Commit (GPIOCR), offset 0x524 ............................................................................ 182
Register 21: GPIO Peripheral Identification 4 (GPIOPeriphID4), offset 0xFD0 ....................................... 184
Register 22: GPIO Peripheral Identification 5 (GPIOPeriphID5), offset 0xFD4 ....................................... 185
Register 23: GPIO Peripheral Identification 6 (GPIOPeriphID6), offset 0xFD8 ....................................... 186
Register 24: GPIO Peripheral Identification 7 (GPIOPeriphID7), offset 0xFDC ...................................... 187
Register 25: GPIO Peripheral Identification 0 (GPIOPeriphID0), offset 0xFE0 ....................................... 188
Register 26: GPIO Peripheral Identification 1(GPIOPeriphID1), offset 0xFE4 ........................................ 189
Register 27: GPIO Peripheral Identification 2 (GPIOPeriphID2), offset 0xFE8 ....................................... 190
Register 28: GPIO Peripheral Identification 3 (GPIOPeriphID3), offset 0xFEC ...................................... 191
Register 29: GPIO PrimeCell Identification 0 (GPIOPCellID0), offset 0xFF0 .......................................... 192
Register 30: GPIO PrimeCell Identification 1 (GPIOPCellID1), offset 0xFF4 .......................................... 193
Register 31: GPIO PrimeCell Identification 2 (GPIOPCellID2), offset 0xFF8 .......................................... 194

14                                                                          June 14, 2007

                   Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

Register 32: GPIO PrimeCell Identification 3 (GPIOPCellID3), offset 0xFFC ......................................... 195

Timers ........................................................................................................................................... 196
Register 1: GPTM Configuration (GPTMCFG), offset 0x000 .............................................................. 208
Register 2: GPTM TimerA Mode (GPTMTAMR), offset 0x004 ............................................................ 209
Register 3: GPTM TimerB Mode (GPTMTBMR), offset 0x008 ............................................................ 210
Register 4: GPTM Control (GPTMCTL), offset 0x00C ........................................................................ 211
Register 5: GPTM Interrupt Mask (GPTMIMR), offset 0x018 .............................................................. 213
Register 6: GPTM Raw Interrupt Status (GPTMRIS), offset 0x01C ..................................................... 215
Register 7: GPTM Masked Interrupt Status (GPTMMIS), offset 0x020 ................................................ 216
Register 8: GPTM Interrupt Clear (GPTMICR), offset 0x024 .............................................................. 217
Register 9: GPTM TimerA Interval Load (GPTMTAILR), offset 0x028 ................................................. 219
Register 10: GPTM TimerB Interval Load (GPTMTBILR), offset 0x02C ................................................ 220
Register 11: GPTM TimerA Match (GPTMTAMATCHR), offset 0x030 ................................................... 221
Register 12: GPTM TimerB Match (GPTMTBMATCHR), offset 0x034 .................................................. 222
Register 13: GPTM TimerA Prescale (GPTMTAPR), offset 0x038 ........................................................ 223
Register 14: GPTM TimerB Prescale (GPTMTBPR), offset 0x03C ....................................................... 224
Register 15: GPTM TimerA Prescale Match (GPTMTAPMR), offset 0x040 ........................................... 225
Register 16: GPTM TimerB Prescale Match (GPTMTBPMR), offset 0x044 ........................................... 226
Register 17: GPTM TimerA (GPTMTAR), offset 0x048 ........................................................................ 227
Register 18: GPTM TimerB (GPTMTBR), offset 0x04C ....................................................................... 228

Watchdog Timer ........................................................................................................................... 229
Register 1: Watchdog Load (WDTLOAD), offset 0x000 ...................................................................... 232
Register 2: Watchdog Value (WDTVALUE), offset 0x004 ................................................................... 233
Register 3: Watchdog Control (WDTCTL), offset 0x008 ..................................................................... 234
Register 4: Watchdog Interrupt Clear (WDTICR), offset 0x00C .......................................................... 235
Register 5: Watchdog Raw Interrupt Status (WDTRIS), offset 0x010 .................................................. 236
Register 6: Watchdog Masked Interrupt Status (WDTMIS), offset 0x014 ............................................. 237
Register 7: Watchdog Test (WDTTEST), offset 0x418 ....................................................................... 238
Register 8: Watchdog Lock (WDTLOCK), offset 0xC00 ..................................................................... 239
Register 9: Watchdog Peripheral Identification 4 (WDTPeriphID4), offset 0xFD0 ................................. 240
Register 10: Watchdog Peripheral Identification 5 (WDTPeriphID5), offset 0xFD4 ................................. 241
Register 11: Watchdog Peripheral Identification 6 (WDTPeriphID6), offset 0xFD8 ................................. 242
Register 12: Watchdog Peripheral Identification 7 (WDTPeriphID7), offset 0xFDC ................................ 243
Register 13: Watchdog Peripheral Identification 0 (WDTPeriphID0), offset 0xFE0 ................................. 244
Register 14: Watchdog Peripheral Identification 1 (WDTPeriphID1), offset 0xFE4 ................................. 245
Register 15: Watchdog Peripheral Identification 2 (WDTPeriphID2), offset 0xFE8 ................................. 246
Register 16: Watchdog Peripheral Identification 3 (WDTPeriphID3), offset 0xFEC ................................. 247
Register 17: Watchdog PrimeCell Identification 0 (WDTPCellID0), offset 0xFF0 .................................... 248
Register 18: Watchdog PrimeCell Identification 1 (WDTPCellID1), offset 0xFF4 .................................... 249
Register 19: Watchdog PrimeCell Identification 2 (WDTPCellID2), offset 0xFF8 .................................... 250
Register 20: Watchdog PrimeCell Identification 3 (WDTPCellID3 ), offset 0xFFC .................................. 251

ADC ............................................................................................................................................... 252
Register 1: ADC Active Sample Sequencer (ADCACTSS), offset 0x000 ............................................. 259
Register 2: ADC Raw Interrupt Status (ADCRIS), offset 0x004 ........................................................... 260
Register 3: ADC Interrupt Mask (ADCIM), offset 0x008 ..................................................................... 261
Register 4: ADC Interrupt Status and Clear (ADCISC), offset 0x00C .................................................. 262
Register 5: ADC Overflow Status (ADCOSTAT), offset 0x010 ............................................................ 263
Register 6: ADC Event Multiplexer Select (ADCEMUX), offset 0x014 ................................................. 264

June 14, 2007                                                           15

               Luminary Micro Confidential-Advance Product Information
Table of Contents

Register 7:   ADC Underflow Status (ADCUSTAT), offset 0x018 ........................................................... 265
Register 8:   ADC Sample Sequencer Priority (ADCSSPRI), offset 0x020 ............................................. 266
Register 9:   ADC Processor Sample Sequence Initiate (ADCPSSI), offset 0x028 ................................. 267
Register 10:  ADC Sample Averaging Control (ADCSAC), offset 0x030 ................................................. 268
Register 11:  ADC Sample Sequence Input Multiplexer Select 0 (ADCSSMUX0), offset 0x040 ............... 269
Register 12:  ADC Sample Sequence Control 0 (ADCSSCTL0), offset 0x044 ........................................ 271
Register 13:  ADC Sample Sequence Result FIFO 0 (ADCSSFIFO0), offset 0x048 ................................ 273
Register 14:  ADC Sample Sequence Result FIFO 1 (ADCSSFIFO1), offset 0x068 ................................ 273
Register 15:  ADC Sample Sequence Result FIFO 2 (ADCSSFIFO2), offset 0x088 ................................ 273
Register 16:  ADC Sample Sequence FIFO 0 Status (ADCSSFSTAT0), offset 0x04C ............................. 274
Register 17:  ADC Sample Sequence FIFO 1 Status (ADCSSFSTAT1), offset 0x06C ............................. 274
Register 18:  ADC Sample Sequence FIFO 2 Status (ADCSSFSTAT2), offset 0x08C ............................. 274
Register 19:  ADC Sample Sequence Input Multiplexer Select 1 (ADCSSMUX1), offset 0x060 ............... 275
Register 20:  ADC Sample Sequence Control 1 (ADCSSCTL1), offset 0x064 ........................................ 276
Register 21:  ADC Sample Sequence Input Multiplexer Select 2 (ADCSSMUX2), offset 0x080 ............... 277
Register 22:  ADC Sample Sequence Control 2 (ADCSSCTL2), offset 0x084 ........................................ 278
Register 23:  ADC Sample Sequence Input Multiplexer Select 3 (ADCSSMUX3), offset 0x0A0 ............... 279
Register 24:  ADC Sample Sequence Control 3 (ADCSSCTL3), offset 0x0A4 ........................................ 280
Register 25:  ADC Sample Sequence Result FIFO 3 (ADCSSFIFO3), offset 0x0A8 ............................... 281
Register 26:  ADC Sample Sequence FIFO 3 Status (ADCSSFSTAT3), offset 0x0AC ............................ 282
Register 27:  ADC Test Mode Loopback (ADCTMLB), offset 0x100 ....................................................... 283

UART ............................................................................................................................................. 285
Register 1: UART Data (UARTDR), offset 0x000 ............................................................................... 293
Register 2: UART Receive Status/Error Clear (UARTRSR/UARTECR), offset 0x004 ........................... 295
Register 3: UART Flag (UARTFR), offset 0x018 ................................................................................ 297
Register 4: UART IrDA Low-Power Register (UARTILPR), offset 0x020 ............................................. 299
Register 5: UART Integer Baud-Rate Divisor (UARTIBRD), offset 0x024 ............................................ 300
Register 6: UART Fractional Baud-Rate Divisor (UARTFBRD), offset 0x028 ....................................... 301
Register 7: UART Line Control (UARTLCRH), offset 0x02C ............................................................... 302
Register 8: UART Control (UARTCTL), offset 0x030 ......................................................................... 304
Register 9: UART Interrupt FIFO Level Select (UARTIFLS), offset 0x034 ........................................... 306
Register 10: UART Interrupt Mask (UARTIM), offset 0x038 ................................................................. 307
Register 11: UART Raw Interrupt Status (UARTRIS), offset 0x03C ...................................................... 309
Register 12: UART Masked Interrupt Status (UARTMIS), offset 0x040 ................................................. 310
Register 13: UART Interrupt Clear (UARTICR), offset 0x044 ............................................................... 311
Register 14: UART Peripheral Identification 4 (UARTPeriphID4), offset 0xFD0 ..................................... 313
Register 15: UART Peripheral Identification 5 (UARTPeriphID5), offset 0xFD4 ..................................... 314
Register 16: UART Peripheral Identification 6 (UARTPeriphID6), offset 0xFD8 ..................................... 315
Register 17: UART Peripheral Identification 7 (UARTPeriphID7), offset 0xFDC ..................................... 316
Register 18: UART Peripheral Identification 0 (UARTPeriphID0), offset 0xFE0 ...................................... 317
Register 19: UART Peripheral Identification 1 (UARTPeriphID1), offset 0xFE4 ...................................... 318
Register 20: UART Peripheral Identification 2 (UARTPeriphID2), offset 0xFE8 ...................................... 319
Register 21: UART Peripheral Identification 3 (UARTPeriphID3), offset 0xFEC ..................................... 320
Register 22: UART PrimeCell Identification 0 (UARTPCellID0), offset 0xFF0 ........................................ 321
Register 23: UART PrimeCell Identification 1 (UARTPCellID1), offset 0xFF4 ........................................ 322
Register 24: UART PrimeCell Identification 2 (UARTPCellID2), offset 0xFF8 ........................................ 323
Register 25: UART PrimeCell Identification 3 (UARTPCellID3), offset 0xFFC ........................................ 324

16                                                                          June 14, 2007

                   Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

SSI ................................................................................................................................................. 325
Register 1: SSI Control 0 (SSICR0), offset 0x000 .............................................................................. 337

Register 2: SSI Control 1 (SSICR1), offset 0x004 .............................................................................. 339

Register 3: SSI Data (SSIDR), offset 0x008 ...................................................................................... 340

Register 4: SSI Status (SSISR), offset 0x00C ................................................................................... 341

Register 5: SSI Clock Prescale (SSICPSR), offset 0x010 .................................................................. 342

Register 6: SSI Interrupt Mask (SSIIM), offset 0x014 ......................................................................... 343

Register 7: SSI Raw Interrupt Status (SSIRIS), offset 0x018 .............................................................. 344

Register 8: SSI Masked Interrupt Status (SSIMIS), offset 0x01C ........................................................ 345

Register 9: SSI Interrupt Clear (SSIICR), offset 0x020 ....................................................................... 346

Register 10: SSI Peripheral Identification 4 (SSIPeriphID4), offset 0xFD0 ............................................. 347

Register 11: SSI Peripheral Identification 5 (SSIPeriphID5), offset 0xFD4 ............................................. 348

Register 12: SSI Peripheral Identification 6 (SSIPeriphID6), offset 0xFD8 ............................................. 349

Register 13: SSI Peripheral Identification 7 (SSIPeriphID7), offset 0xFDC ............................................ 350

Register 14: SSI Peripheral Identification 0 (SSIPeriphID0), offset 0xFE0 ............................................. 351

Register 15: SSI Peripheral Identification 1 (SSIPeriphID1), offset 0xFE4 ............................................. 352

Register 16: SSI Peripheral Identification 2 (SSIPeriphID2), offset 0xFE8 ............................................. 353

Register 17: SSI Peripheral Identification 3 (SSIPeriphID3), offset 0xFEC ............................................ 354

Register 18: SSI PrimeCell Identification 0 (SSIPCellID0), offset 0xFF0 ............................................... 355

Register 19: SSI PrimeCell Identification 1 (SSIPCellID1), offset 0xFF4 ............................................... 356

Register 20: SSI PrimeCell Identification 2 (SSIPCellID2), offset 0xFF8 ............................................... 357

Register 21: SSI PrimeCell Identification 3 (SSIPCellID3), offset 0xFFC ............................................... 358
Inter-Integrated Circuit (I2C) Interface ........................................................................................ 359
Register 1: I2C Master Slave Address (I2CMSA), offset 0x000 ........................................................... 373
Register 2: I2C Master Control/Status (I2CMCS), offset 0x004 ........................................................... 374
Register 3: I2C Master Data (I2CMDR), offset 0x008 ......................................................................... 378
Register 4: I2C Master Timer Period (I2CMTPR), offset 0x00C ........................................................... 379
Register 5: I2C Master Interrupt Mask (I2CMIMR), offset 0x010 ......................................................... 380
Register 6: I2C Master Raw Interrupt Status (I2CMRIS), offset 0x014 ................................................. 381
Register 7: I2C Master Masked Interrupt Status (I2CMMIS), offset 0x018 ........................................... 382
Register 8: I2C Master Interrupt Clear (I2CMICR), offset 0x01C ......................................................... 383
Register 9: I2C Master Configuration (I2CMCR), offset 0x020 ............................................................ 384
Register 10: I2C Slave Own Address (I2CSOAR), offset 0x000 ............................................................ 386
Register 11: I2C Slave Control/Status (I2CSCSR), offset 0x004 ........................................................... 387
Register 12: I2C Slave Data (I2CSDR), offset 0x008 ........................................................................... 389
Register 13: I2C Slave Interrupt Mask (I2CSIMR), offset 0x00C ........................................................... 390
Register 14: I2C Slave Raw Interrupt Status (I2CSRIS), offset 0x010 ................................................... 391
Register 15: I2C Slave Masked Interrupt Status (I2CSMIS), offset 0x014 .............................................. 392
Register 16: I2C Slave Interrupt Clear (I2CSICR), offset 0x018 ............................................................ 393

CAN ............................................................................................................................................... 394
Register 1: CAN Control (CANCTL), offset 0x000 ............................................................................. 408

Register 2: CAN Status (CANSTS), offset 0x004 ............................................................................... 410

Register 3: CAN Error Counter (CANERR), offset 0x008 ................................................................... 413

Register 4: CAN Bit Timing (CANBIT), offset 0x00C .......................................................................... 414

Register 5: CAN Interrupt (CANINT), offset 0x010 ............................................................................. 416

Register 6: CAN Test (CANTST), offset 0x014 .................................................................................. 417

Register 7: CAN Baud Rate Prescalar Extension (CANBRPE), offset 0x018 ....................................... 419

June 14, 2007                                                           17

               Luminary Micro Confidential-Advance Product Information
Table of Contents

Register 8:   CAN IF1 Command Request (CANIF1CRQ), offset 0x020 ................................................ 420
Register 9:   CAN IF2 Command Request (CANIF2CRQ), offset 0x080 ................................................ 420
Register 10:  CAN IF1 Command Mask (CANIF1CMSK), offset 0x024 .................................................. 421
Register 11:  CAN IF2 Command Mask (CANIF2CMSK), offset 0x084 .................................................. 421
Register 12:  CAN IF1 Mask 1 (CANIF1MSK1), offset 0x028 ................................................................ 424
Register 13:  CAN IF2 Mask 1 (CANIF2MSK1), offset 0x088 ................................................................ 424
Register 14:  CAN IF1 Mask 2 (CANIF1MSK2), offset 0x02C ................................................................ 425
Register 15:  CAN IF2 Mask 2 (CANIF2MSK2), offset 0x08C ................................................................ 425
Register 16:  CAN IF1 Arbitration 1 (CANIF1ARB1), offset 0x030 ......................................................... 426
Register 17:  CAN IF2 Arbitration 1 (CANIF2ARB1), offset 0x090 ......................................................... 426
Register 18:  CAN IF1 Arbitration 2 (CANIF1ARB2), offset 0x034 ......................................................... 427
Register 19:  CAN IF2 Arbitration 2 (CANIF2ARB2), offset 0x094 ......................................................... 427
Register 20:  CAN IF1 Message Control (CANIF1MCTL), offset 0x038 .................................................. 428
Register 21:  CAN IF2 Message Control (CANIF2MCTL), offset 0x098 .................................................. 428
Register 22:  CAN IF1 Data A1 (CANIF1DA1), offset 0x03C ................................................................. 430
Register 23:  CAN IF2 Data A1 (CANIF2DA1), offset 0x09C ................................................................. 430
Register 24:  CAN IF1 Data A2 (CANIF1DA2), offset 0x040 ................................................................. 431
Register 25:  CAN IF2 Data A2 (CANIF2DA2), offset 0x0A0 ................................................................. 431
Register 26:  CAN IF1 Data B1 (CANIF1DB1), offset 0x044 ................................................................. 432
Register 27:  CAN IF2 Data B1 (CANIF2DB1), offset 0x0A4 ................................................................. 432
Register 28:  CAN IF1 Data B2 (CANIF1DB2), offset 0x048 ................................................................. 433
Register 29:  CAN IF2 Data B2 (CANIF2DB2), offset 0x0A8 ................................................................. 433
Register 30:  CAN Transmission Request 1 (CANTXRQ1), offset 0x100 ................................................ 434
Register 31:  CAN Transmission Request 2 (CANTXRQ2), offset 0x104 ................................................ 434
Register 32:  CAN New Data 1 (CANNWDA1), offset 0x120 ................................................................. 435
Register 33:  CAN New Data 2 (CANNWDA2), offset 0x124 ................................................................. 435
Register 34:  CAN Message 1 Interrupt Pending (CANMSG1INT), offset 0x140 ..................................... 436
Register 35:  CAN Message 2 Interrupt Pending (CANMSG2INT), offset 0x144 ..................................... 436
Register 36:  CAN Message 1 Valid (CANMSG1VAL), offset 0x160 ....................................................... 437
Register 37:  CAN Message 2 Valid (CANMSG2VAL), offset 0x164 ....................................................... 437

Ethernet ........................................................................................................................................ 438
Register 1: Ethernet MAC Raw Interrupt Status (MACRIS), offset 0x000 ............................................ 447
Register 2: Ethernet MAC Interrupt Acknowledge (MACIACK), offset 0x000 ....................................... 449
Register 3: Ethernet MAC Interrupt Mask (MACIM), offset 0x004 ....................................................... 450
Register 4: Ethernet MAC Receive Control (MACRCTL), offset 0x008 ................................................ 451
Register 5: Ethernet MAC Transmit Control (MACTCTL), offset 0x00C ............................................... 452
Register 6: Ethernet MAC Data (MACDATA), offset 0x010 ................................................................. 453
Register 7: Ethernet MAC Individual Address 0 (MACIA0), offset 0x014 ............................................. 454
Register 8: Ethernet MAC Individual Address 1 (MACIA1), offset 0x018 ............................................. 455
Register 9: Ethernet MAC Threshold (MACTHR), offset 0x01C .......................................................... 456
Register 10: Ethernet MAC Management Control (MACMCTL), offset 0x020 ........................................ 457
Register 11: Ethernet MAC Management Divider (MACMDV), offset 0x024 .......................................... 458
Register 12: Ethernet MAC Management Address (MACMADD), offset 0x028 ...................................... 459
Register 13: Ethernet MAC Management Transmit Data (MACMTXD), offset 0x02C ............................. 460
Register 14: Ethernet MAC Management Receive Data (MACMRXD), offset 0x030 .............................. 461
Register 15: Ethernet MAC Number of Packets (MACNP), offset 0x034 ............................................... 462
Register 16: Ethernet MAC Transmission Request (MACTR), offset 0x038 ........................................... 463
Register 17: Ethernet PHY Management Register 0 Control (MR0), offset 0x00 ................................. 464

18                                                                          June 14, 2007

                   Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

Register 18:   Ethernet PHY Management Register 1 Status (MR1), offset 0x01 .................................. 466
Register 19:   Ethernet PHY Management Register 2 PHY Identifier 1 (MR2), offset 0x02 .................... 468
Register 20:   Ethernet PHY Management Register 3 PHY Identifier 2 (MR3), offset 0x03 .................... 469
Register 21:   Ethernet PHY Management Register 4 Auto-Negotiation Advertisement (MR4), offset
               0x04 ............................................................................................................................. 470
Register 22:   Ethernet PHY Management Register 5 Auto-Negotiation Link Partner Base Page Ability
               (MR5), offset 0x05 ......................................................................................................... 472
Register 23:   Ethernet PHY Management Register 6 Auto-Negotiation Expansion (MR6), offset
               0x06 ............................................................................................................................. 473
Register 24:   Ethernet PHY Management Register 16 Vendor-Specific (MR16), offset 0x10 ................. 474
Register 25:   Ethernet PHY Management Register 17 Interrupt Control/Status (MR17), offset 0x11 ...... 476
Register 26:   Ethernet PHY Management Register 18 Diagnostic (MR18), offset 0x12 ........................ 478
Register 27:   Ethernet PHY Management Register 19 Transceiver Control (MR19), offset 0x13 ........... 479
Register 28:   Ethernet PHY Management Register 23 LED Configuration (MR23), offset 0x17 ............. 480
Register 29:   Ethernet PHY Management Register 24 MDI/MDIX Control (MR24), offset 0x18 .............. 481

Analog Comparators ................................................................................................................... 482
Register 1: Analog Comparator Masked Interrupt Status (ACMIS), offset 0x00 .................................... 488
Register 2: Analog Comparator Raw Interrupt Status (ACRIS), offset 0x04 ......................................... 489
Register 3: Analog Comparator Interrupt Enable (ACINTEN), offset 0x08 ........................................... 490
Register 4: Analog Comparator Reference Voltage Control (ACREFCTL), offset 0x10 ......................... 491
Register 5: Analog Comparator Status 0 (ACSTAT0), offset 0x20 ....................................................... 492
Register 6: Analog Comparator Status 1 (ACSTAT1), offset 0x40 ....................................................... 492
Register 7: Analog Comparator Status 2 (ACSTAT2), offset 0x60 ....................................................... 492
Register 8: Analog Comparator Control 0 (ACCTL0), offset 0x24 ....................................................... 493
Register 9: Analog Comparator Control 1 (ACCTL1), offset 0x44 ....................................................... 493
Register 10: Analog Comparator Control 2 (ACCTL2), offset 0x64 ...................................................... 493

June 14, 2007                                                           19

               Luminary Micro Confidential-Advance Product Information
About This Document

About This Document

    This data sheet provides reference information for the LM3S8938 microcontroller, describing the
    functional blocks of the system-on-chip (SoC) device designed around the ARM CortexTM-M3
    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 documents are referenced by the data sheet, and available on the documentation CD
                or from the Luminary Micro web site at www.luminarymicro.com:

                 ARM CortexTM-M3 Technical Reference Manual

                 ARM CoreSight Technical Reference Manual

                 ARM v7-M Architecture Application Level Reference Manual

                The following related documents are also referenced:

                 IEEE Standard 1149.1-Test Access Port and Boundary-Scan Architecture

                This documentation list was current as of publication date. Please check the Luminary Micro web
                site for additional documentation, including application notes and white papers.

Documentation Conventions

                This document uses the conventions shown in Table 1 on page 20.

    Table 1. 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 "Memory Map" on page 41.

    Register N       Registers are numbered consecutively throughout the document to aid in referencing them. The
                     register number has no meaning to software.

20                                                                                               June 14, 2007

                     Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

Notation             Meaning
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
yy:xx                compatibility with future products, the value of a reserved bit should be preserved across a
Register Bit/Field   read-modify-write operation.
Types                The range of register bits inclusive from xx to yy. For example, 31:15 means bits 15 through 31
RC                   in that register.
RO                   This value in the register bit diagram indicates whether software running on the controller can
R/W                  change the value of the bit field.
R/W1C                Software can read this field. The bit or field is cleared by hardware after reading the bit/field.
                     Software can read this field. Always write the chip reset value.
W1C                  Software can read or write this field.
                     Software can read or write this field. A write of a 0 to a W1C bit does not affect the bit value in the
WO                   register. A write of a 1 clears the value of the bit in the register; the remaining bits remain
Register Bit/Field   unchanged.
Reset Value
0                    This register type is primarily used for clearing interrupt status bits where the read operation
1                    provides the interrupt status and the write of the read value clears only the interrupts being reported
-                    at the time the register was read.
Pin/Signal Notation  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
pin                  read of the register returns no meaningful data.
signal
assert a signal      This register is typically used to clear the corresponding bit in an interrupt register.
                     Only a write by software is valid; a read of the register returns no meaningful data.
deassert a signal    This value in the register bit diagram shows the bit/field value after any reset, unless noted.
SIGNAL
                     Bit cleared to 0 on chip reset.
SIGNAL               Bit set to 1 on chip reset.
Numbers              Nondeterministic.
X
                     Pin alternate function; a pin defaults to the signal without the brackets.
0x                   Refers to the physical connection on the package.
                     Refers to the electrical signal encoding of a pin.
                     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).
                     Change the value of the signal from the logically True state to the logically False state.
                     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 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.

                     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.
                     Hexadecimal numbers have a prefix of 0x. For example, 0x00FF is the hexadecimal number FF.
                     Binary numbers are indicated with a b suffix, for example, 1011b. Decimal numbers are written
                     without a prefix or suffix.

June 14, 2007                                                           21

               Luminary Micro Confidential-Advance Product Information
Architectural Overview

1 Architectural Overview

                The Luminary Micro Stellaris family of microcontrollers--the first ARM CortexTM-M3 based
                controllers--brings high-performance 32-bit computing to cost-sensitive embedded microcontroller
                applications. These pioneering parts deliver customers 32-bit performance at a cost equivalent to
                legacy 8- and 16-bit devices, all in a package with a small footprint.
                The Stellaris family offers efficient performance and extensive integration, favorably positioning
                the device into cost-conscious applications requiring significant control-processing and connectivity
                capabilities. The Stellaris LM3S2000 series, designed for Controller Area Network (CAN)
                applications, extends the Stellaris family with Bosch CAN networking technology, the golden standard
                in short-haul industrial networks. The Stellaris LM3S2000 series also marks the first integration of
                CAN capabilities with the revolutionary Cortex-M3 core. The Stellaris LM3S6000 series combines
                both a 10/100 Ethernet Media Access Control (MAC) and Physical (PHY) layer, marking the first
                time that integrated connectivity is available with an ARM Cortex-M3 MCU and the only integrated
                10/100 Ethernet MAC and PHY available in an ARM architecture MCU.

                The LM3S8938 microcontroller is targeted for industrial applications, including remote monitoring,
                electronic point-of-sale machines, test and measurement equipment, network appliances and
                switches, factory automation, HVAC and building control, gaming equipment, motion control, medical
                instrumentation, and fire and security.

                For applications requiring extreme conservation of power, the LM3S8938 microcontroller features
                a Battery-backed Hibernation module to efficiently power down the LM3S8938 to a low-power state
                during extended periods of inactivity. With a power-up/power-down sequencer, a continuous time
                counter (RTC), a pair of match registers, an APB interface to the system bus, and dedicated
                non-volatile memory, the Hibernation module positions the LM3S8938 microcontroller perfectly for
                battery applications.

                In addition, the LM3S8938 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, the LM3S8938 microcontroller is code-compatible
                to all members of the extensive Stellaris family; providing flexibility to fit our customers' precise
                needs.

                Luminary Micro 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.

1.1 Product Features

                The LM3S8938 microcontroller includes the following product features:

                 32-Bit RISC Performance

                     32-bit ARM CortexTM-M3 v7M architecture optimized for small-footprint embedded
                         applications

                     System timer (SysTick), providing a simple, 24-bit clear-on-write, decrementing, wrap-on-zero
                         counter with a flexible control mechanism

                     Thumb-compatible Thumb-2-only instruction set processor core for high code density

                     50-MHz operation

22                                                                               June 14, 2007

                        Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

    Hardware-division and single-cycle-multiplication
    Integrated Nested Vectored Interrupt Controller (NVIC) providing deterministic interrupt

        handling
    34 interrupts with eight priority levels
    Memory protection unit (MPU), providing a privileged mode for protected operating system

        functionality
    Unaligned data access, enabling data to be efficiently packed into memory
    Atomic bit manipulation (bit-banding), delivering maximum memory utilization and streamlined

        peripheral control
Internal Memory

    256 KB single-cycle flash
         User-managed flash block protection on a 2-KB block basis
         User-managed flash data programming
         User-defined and managed flash-protection block

    64 KB single-cycle SRAM
General-Purpose Timers

    Four General-Purpose Timer Modules (GPTM), each of which provides two 16-bit
        timer/counters. Each GPTM can be configured to operate independently as timers or event
        counters (eight total): as a single 32-bit timer (four total), as one 32-bit Real-Time Clock (RTC)
        to event capture, for Pulse Width Modulation (PWM), or to trigger analog-to-digital conversions

    32-bit Timer modes
         Programmable one-shot timer
         Programmable periodic timer
         Real-Time Clock when using an external 32.768-KHz clock as the input
         User-enabled stalling in periodic and one-shot mode when the controller asserts the CPU
             Halt flag during debug
         ADC event trigger

    16-bit Timer modes
         General-purpose timer function with an 8-bit prescaler
         Programmable one-shot timer
         Programmable periodic timer
         User-enabled stalling when the controller asserts CPU Halt flag during debug

June 14, 2007                                                           23

               Luminary Micro Confidential-Advance Product Information
Architectural Overview

             ADC event trigger
         16-bit Input Capture modes

             Input edge count capture
             Input edge time capture
         16-bit PWM mode
             Simple PWM mode with software-programmable output inversion of the PWM signal
     ARM FiRM-compliant Watchdog Timer
         32-bit down counter with a programmable load register
         Separate watchdog clock with an enable
         Programmable interrupt generation logic with interrupt masking
         Lock register protection from runaway software
         Reset generation logic with an enable/disable
         User-enabled stalling when the controller asserts the CPU Halt flag during debug
     Controller Area Network (CAN)
         Supports CAN protocol version 2.0 part A/B
         Bit rates up to 1Mb/s
         32 message objects, each with its own identifier mask
         Maskable interrupt
         Disable automatic retransmission mode for TTCAN
         Programmable loop-back mode for self-test operation
     10/100 Ethernet Controller
         Conforms to the IEEE 802.3-2002 Specification
         Full- and half-duplex for both 100 Mbps and 10 Mbps operation
         Integrated 10/100 Mbps Transceiver (PHY)
         Automatic MDI/MDI-X cross-over correction
         Programmable MAC address
         Power-saving and power-down modes
     Synchronous Serial Interface (SSI)
         Master or slave operation

24                                                                               June 14, 2007

                        Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

    Programmable clock bit rate and prescale
    Separate transmit and receive FIFOs, 16 bits wide, 8 locations deep
    Programmable interface operation for Freescale SPI, MICROWIRE, or Texas Instruments

        synchronous serial interfaces
    Programmable data frame size from 4 to 16 bits
    Internal loopback test mode for diagnostic/debug testing
UART
    Three fully programmable 16C550-type UARTs with IrDA support
    Separate 16x8 transmit (TX) and 16x12 receive (RX) FIFOs to reduce CPU interrupt service

        loading
    Programmable baud-rate generator with fractional divider
    Programmable FIFO length, including 1-byte deep operation providing conventional

        double-buffered interface
    FIFO trigger levels of 1/8, , , , and 7/8
    Standard asynchronous communication bits for start, stop, and parity
    False-start-bit detection
    Line-break generation and detection
ADC
    Single- and differential-input configurations
    Eight 10-bit channels (inputs) when used as single-ended inputs
    Sample rate of one million samples/second
    Flexible, configurable analog-to-digital conversion
    Four programmable sample conversion sequences from one to eight entries long, with

        corresponding conversion result FIFOs
    Each sequence triggered by software or internal event (timers, analog comparators, or GPIO)
    On-chip temperature sensor
Analog Comparators
    Three independent integrated analog comparators
    Configurable for output to: drive an output pin, generate an interrupt, or initiate an ADC sample

        sequence
    Compare external pin input to external pin input or to internal programmable voltage reference

June 14, 2007                                                           25

               Luminary Micro Confidential-Advance Product Information
Architectural Overview

                 I2C

                                                         2

                     Two I C modules
                     Master and slave receive and transmit operation with transmission speed up to 100 Kbps in

                         Standard mode and 400 Kbps in Fast mode
                     Interrupt generation
                     Master with arbitration and clock synchronization, multimaster support, and 7-bit addressing

                         mode
                 GPIOs

                     3-38 GPIOs, depending on configuration
                     5-V-tolerant input/outputs
                     Programmable interrupt generation as either edge-triggered or level-sensitive
                     Bit masking in both read and write operations through address lines
                     Can initiate an ADC sample sequence
                     Programmable control for GPIO pad configuration:

                         Weak pull-up or pull-down resistors
                         2-mA, 4-mA, and 8-mA pad drive
                         Slew rate control for the 8-mA drive
                         Open drain enables
                         Digital input enables
                 Power
                     On-chip Low Drop-Out (LDO) voltage regulator, with programmable output user-adjustable
                         from 2.25 V to 2.75 V
                     Hibernation module handles the power-up/down 3.3 V sequencing and control for the core
                         digital logic and analog circuits
                     Low-power options on controller: Sleep and Deep-sleep modes
                     Low-power options for peripherals: software controls shutdown of individual peripherals
                     User-enabled LDO unregulated voltage detection and automatic reset
                     3.3-V supply brown-out detection and reporting via interrupt or reset
                 Flexible Reset Sources
                     Power-on reset (POR)

26                                                           June 14, 2007

    Luminary Micro Confidential-Advance Product Information
                                                                                                                             LM3S8938 Microcontroller

                     Reset pin assertion
                     Brown-out (BOR) detector alerts to system power drops
                     Software reset
                     Watchdog timer reset
                     Internal low drop-out (LDO) regulator output goes unregulated
                 Additional Features
                     Six reset sources
                     Programmable clock source control
                     Clock gating to individual peripherals for power savings
                     IEEE 1149.1-1990 compliant Test Access Port (TAP) controller
                     Debug access via JTAG and Serial Wire interfaces
                     Full JTAG boundary scan
                 Industrial-range 100-pin RoHS-compliant LQFP package

1.2 Target Applications

                 Remote monitoring
                 Electronic point-of-sale (POS) machines
                 Test and measurement equipment
                 Network appliances and switches
                 Factory automation
                 HVAC and building control
                 Gaming equipment
                 Motion control
                 Medical instrumentation
                 Fire and security
                 Power and energy
                 Transportation

1.3 High-Level Block Diagram

                Figure 1-1 on page 28 shows the features on the Stellaris Fury-class family of devices.

June 14, 2007                                                           27

               Luminary Micro Confidential-Advance Product Information
Architectural Overview

    Figure 1-1. Stellaris Fury-class High-Level Block Diagram

    JTAG                                      32

                                                          256 KB Flash

                                   ARM

    NVIC CortexTM-M3

                                              32     64 KB SRAM

    SWD                            50 MHz

    SERIAL INTERFACES        3 UARTs                 Clocks, Reset               SYSTEM
                                                    System Control
                            2 SSI/SPI
                        10/100 Ethernet              Systick Timer

                          MAC + PHY               4 Timer/PWM/CCP
                              2 CAN
                                                  Each 32-bit or 2x16-bit
                               2 I2C
                                                   Watchdog Timer

                                                     GPIOs

                                                  R Battery-Backed
                                                  T
                                                  C  Hibernate

    MOTION CONTROL       2 Quadrature                LDO Voltage                 ANALOG
                        Encoder Inputs                 Regulator

                        6 PWM Outputs                   3 Analog
                                                     Comparators
                                  Timer
                                                      10-bit ADC
                        Comparators                    8 channel

                           PWM       PWM                 1 Msps
                        Generator  Interrupt
                                                     Temp Sensor
                        Dead-Band
                        Generator

1.4 Functional Overview

                The following sections provide an overview of the features of the LM3S8938 microcontroller. The
                page number in parenthesis indicates where that feature is discussed in detail. Ordering and support
                information can be found in "Ordering and Contact Information" on page 527.

28                                                                                       June 14, 2007

                        Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

1.4.1    ARM CortexTM-M3
1.4.1.1
1.4.1.2  Processor Core (see page 35)

1.4.1.3  All members of the Stellaris product family, including the LM3S8938 microcontroller, are designed
         around an ARM CortexTM-M3 processor core. The ARM Cortex-M3 processor provides the core for
1.4.2    a high-performance, low-cost platform that meets the needs of minimal memory implementation,
1.4.2.1  reduced pin count, and low-power consumption, while delivering outstanding computational
         performance and exceptional system response to interrupts.

         "ARM Cortex-M3 Processor Core" on page 35 provides an overview of the ARM core; the core is
         detailed in the ARM CortexTM-M3 Technical Reference Manual.

         System Timer (SysTick)

         Cortex-M3 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 which 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. Software can use this to measure time to completion and time used.

          An internal clock source control based on missing/meeting durations. The COUNTFLAG bit-field
             in the 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.

         Nested Vectored Interrupt Controller (NVIC)

         The LM3S8938 controller includes the ARM Nested Vectored Interrupt Controller (NVIC) on the
         ARM Cortex-M3 core. The NVIC and Cortex-M3 prioritize and handle all exceptions. All exceptions
         are handled 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, which enables 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. Software can set eight priority levels on 7 exceptions
         (system handlers) and 34 interrupts.

         "Interrupts" on page 43 provides an overview of the NVIC controller and the interrupt map. Exceptions
         and interrupts are detailed in the ARM CortexTM-M3 Technical Reference Manual.

         Motor Control Peripherals

         To enhance motor control, the LM3S8938 controller features Pulse Width Modulation (PWM) outputs.

         PWM (see page 202)

         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 signal. Typical applications include switching power supplies
         and motor control.

June 14, 2007                                                           29

               Luminary Micro Confidential-Advance Product Information
Architectural Overview

1.4.3    On the LM3S8938, PWM motion control functionality can be achieved through the motion control
1.4.3.1  features of the general-purpose timers (using the CCP pins).
1.4.3.2
         CCP Pins (see page 202)

         The General-Purpose Timer Module's CCP (Capture Compare PWM) pins are software programmable
         to support a simple PWM mode with a software-programmable output inversion of the PWM signal.

         Serial Communications Peripherals

         The LM3S8938 controller supports both asynchronous and synchronous serial communications
         with:

          Three fully programmable 16C550-type UARTs

          One SSI module

          Two I2C modules

          One CAN unit

         UART (see page 285)

         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 LM3S8938 controller includes three fully programmable 16C550-type UARTs that support data
         transfer speeds up to 460.8 Kbps. In addition, each UART is capable of supporting IrDA. (Although
         similar in functionality to a 16C550 UART, it is not register-compatible.)

         Separate 16x8 transmit (TX) and 16x12 receive (RX) FIFOs reduce CPU interrupt service loading.
         The UART can generate individually masked interrupts from the RX, TX, modem status, and error
         conditions. The module provides a single combined interrupt when any of the interrupts are asserted
         and are unmasked.

         SSI (see page 325)

         Synchronous Serial Interface (SSI) is a four-wire bi-directional communications interface.

         The LM3S8938 controller includes one SSI module that provides the functionality for synchronous
         serial communications with peripheral devices, and can be configured to use the Freescale SPI,
         MICROWIRE , or TI synchronous serial interface frame formats. The size of the data frame is also
         configurable, and can be set between 4 and 16 bits, inclusive.

         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 TX and RX paths
         are buffered with internal FIFOs, allowing up to eight 16-bit values to be stored independently.

         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 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.

30                                                                               June 14, 2007

                        Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

1.4.3.3  I2C(see page 359)

1.4.3.4  The Inter-Integrated Circuit (I2C) bus provides bi-directional data transfer through a two-wire design
1.4.3.5  (a serial data line SDA and a serial clock line SCL).
1.4.4    The I2C bus interfaces to external I2C devices such as serial memory (RAMs and ROMs), networking
1.4.4.1  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.
         The LM3S8938 controller includes two I2C modules that provide the ability to communicate to other
         IC devices over an I2C bus. The I2C bus supports devices that can both transmit and receive (write
         and read) data.
         Devices on the I2C bus can be designated as either a master or a slave. Each I2C module supports
         both sending and receiving data as either a master or a slave, and also supports the simultaneous
         operation as both a master and a slave. The four I2C modes are: Master Transmit, Master Receive,
         Slave Transmit, and Slave Receive.
         A Stellaris I2C module can operate at two speeds: Standard (100 Kbps) and Fast (400 Kbps).
         Both the I2C master and slave can generate interrupts. The I2C master generates interrupts when
         a transmit or receive operation completes (or aborts due to an error). The I2C slave generates
         interrupts when data has been sent or requested by a master.

         Controller Area Network (see page 394)

         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 a more robust twisted-pair
         wire. Originally created for automotive purposes, now it is used in many embedded control
         applications (for example, industrial or medical). Bit rates up to 1Mb/s are possible at network lengths
         below 40 meters. Decreased bit rates allow longer network distances (for example, 125 Kb/s 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 LM3S8938 includes one CAN units.

         Ethernet MAC (see page 438)

         Ethernet is a frame-based computer networking technology for local area networks (LANs). Ethernet
         has been standardized as IEEE 802.3. It defines a number of wiring and signaling standards for the
         physical layer, two means of network access at the Media Access Control (MAC)/Data Link Layer,
         and a common addressing format.

         The Stellaris Ethernet Controller consists of a fully integrated media access controller (MAC) and
         network physical (PHY) interface device. The Ethernet Controller conforms to IEEE 802.3
         specifications and fully supports 10BASE-T and 100BASE-TX standards. In addition, the Ethernet
         Controller supports automatic MDI/MDI-X cross-over correction.

         System Peripherals

         Programmable GPIOs (see page 155)

         General-purpose input/output (GPIO) pins offer flexibility for a variety of connections.

June 14, 2007                                                           31

               Luminary Micro Confidential-Advance Product Information
Architectural Overview

1.4.4.2  The Stellaris GPIO module is composed of seven physical GPIO blocks, each corresponding to
         an individual GPIO port. The GPIO module is FiRM-compliant (compliant to the ARM Foundation
1.4.4.3  IP for Real-Time Microcontrollers specification) and supports 3-38 programmable input/output pins.
         The number of GPIOs available depends on the peripherals being used (see "Signal Tables" on page
1.4.5    496 for the signals available to each GPIO pin).
1.4.5.1
1.4.5.2  The GPIO module features programmable interrupt generation as either edge-triggered or
         level-sensitive on all pins, programmable control for GPIO pad configuration, and bit masking in
         both read and write operations through address lines.

         Four Programmable Timers (see page 196)

         Programmable timers can be used to count or time external events that drive the Timer input pins.
         The Stellaris General-Purpose Timer Module (GPTM) contains four GPTM blocks. Each GPTM
         block provides two 16-bit timer/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).
         Timers can also be used to trigger analog-to-digital (ADC) conversions.

         When configured in 32-bit mode, a timer can run as a one-shot timer, periodic timer, or Real-Time
         Clock (RTC). When in 16-bit mode, a timer can run as a one-shot timer or periodic timer, and can
         extend its precision by using an 8-bit prescaler. A 16-bit timer can also be configured for event
         capture or Pulse Width Modulation (PWM) generation.

         Watchdog Timer (see page 229)

         A watchdog timer can generate nonmaskable interrupts (NMIs) or a reset when a time-out value is
         reached. The 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 Stellaris Watchdog Timer module consists of a 32-bit down counter, a programmable load
         register, interrupt generation logic, and a locking register.

         The Watchdog Timer can be configured to generate an interrupt to the controller on its first time-out,
         and to generate a reset signal on its second time-out. Once the Watchdog Timer has been configured,
         the lock register can be written to prevent the timer configuration from being inadvertently altered.

         Memory Peripherals

         The LM3S8938 controller offers both SRAM and Flash memory.

         SRAM (see page 131)

         The LM3S8938 static random access memory (SRAM) controller supports 64 KB SRAM. The internal
         SRAM of the Stellaris devices is located at offset 0x0000.0000 of the device memory map. To
         reduce the number of time-consuming read-modify-write (RMW) operations, ARM has introduced
         bit-banding technology in the new Cortex-M3 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.

         Flash (see page 132)

         The LM3S8938 Flash controller supports 256 KB of flash memory. The flash 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 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

32                                                                               June 14, 2007

                        Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

1.4.6    be read by the controller instruction fetch mechanism, protecting the contents of those blocks from
1.4.6.1  being read by either the controller or by a debugger.
1.4.6.2
         Additional Features
1.4.6.3
1.4.6.4  Memory Map (see page 41)
1.4.7
         A memory map lists the location of instructions and data in memory. The memory map for the
         LM3S8938 controller can be found in "Memory Map" on page 41. Register addresses are given as
         a hexadecimal increment, relative to the module's base address as shown in the memory map.

         The ARM CortexTM-M3 Technical Reference Manual provides further information on the memory
         map.

         JTAG TAP Controller (see page 46)

         The Joint Test Action Group (JTAG) port provides a standardized serial interface for controlling the
         Test Access Port (TAP) and associated test logic. The TAP, JTAG instruction register, and JTAG
         data registers can be used to test the interconnects of assembled printed circuit boards, obtain
         manufacturing information on the components, and observe and/or control the inputs and outputs
         of the controller during normal operation. The JTAG port provides a high degree of testability and
         chip-level access at a low cost.

         The JTAG port is comprised of the standard five pins: TRST, TCK, TMS, TDI, and TDO. Data is
         transmitted serially into the controller on TDI and out of the controller on TDO. The interpretation of
         this data is dependent on the current state of the TAP controller. For detailed information on the
         operation of the JTAG port and TAP controller, please refer to the IEEE Standard 1149.1-Test
         Access Port and Boundary-Scan Architecture.

         The Luminary Micro JTAG controller works with the ARM JTAG controller built into the Cortex-M3
         core. This is implemented by multiplexing the TDO outputs from both JTAG controllers. ARM JTAG
         instructions select the ARM TDO output while Luminary Micro JTAG instructions select the Luminary
         Micro TDO outputs. The multiplexer is controlled by the Luminary Micro JTAG controller, which has
         comprehensive programming for the ARM, Luminary Micro, and unimplemented JTAG instructions.

         System Control and Clocks (see page 57)

         System control determines the overall operation of the device. It provides information about the
         device, controls the clocking of the device and individual peripherals, and handles reset detection
         and reporting.

         Hibernation Module (see page 113)

         The Hibernation module provides logic to switch power off to the main processor and peripherals,
         and to wake on external or time-based events. The Hibernation module includes power-sequencing
         logic, a real-time clock with a pair of match registers, low-battery detection circuitry, and interrupt
         signalling to the processor. It also includes 64 32-bit words of non-volatile memory that can be used
         for saving state during hibernation.

         Hardware Details

         Details on the pins and package can be found in the following sections:

          "Pin Diagram" on page 495

          "Signal Tables" on page 496

June 14, 2007                                                           33

               Luminary Micro Confidential-Advance Product Information
Architectural Overview

                 "Operating Characteristics" on page 510
                 "Electrical Characteristics" on page 511
                 "Package Information" on page 525

34                                                           June 14, 2007

    Luminary Micro Confidential-Advance Product Information
                                                                                                                             LM3S8938 Microcontroller

2 ARM Cortex-M3 Processor Core

                The ARM Cortex-M3 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. Features include:

                 Compact core.

                 Thumb-2 instruction set, delivering the high-performance expected of an ARM core in the memory
                    size usually associated with 8- and 16-bit devices; typically in the range of a few kilobytes of
                    memory for microcontroller class applications.

                 Speedy application execution through Harvard architecture characterized by separate buses for
                    instruction and data.

                 Exceptional interrupt handling, by implementing the register manipulations required for handling
                    an interrupt in hardware.

                 Memory protection unit (MPU) to provide a privileged mode of operation for complex applications.

                 Migration from the ARM7(TM) processor family for better performance and power efficiency.

                 Full-featured debug solution with a:

                     Serial Wire JTAG Debug Port (SWJ-DP)

                     Flash Patch and Breakpoint (FPB) unit for implementing breakpoints

                     Data Watchpoint and Trigger (DWT) unit for implementing watchpoints, trigger resources,
                         and system profiling

                     Instrumentation Trace Macrocell (ITM) for support of printf style debugging

                     Trace Port Interface Unit ( TPIU) for bridging to a Trace Port Analyzer
                The Stellaris family of microcontrollers builds on this core to bring high-performance 32-bit computing
                to cost-sensitive embedded microcontroller applications, such as factory automation and control,
                industrial control power devices, building and home automation, and stepper motors.
                For more information on the ARM Cortex-M3 processor core, see the ARM CortexTM-M3 Technical
                Reference Manual. For information on SWJ-DP, see the ARM CoreSight Technical Reference
                Manual.

June 14, 2007                                                           35

               Luminary Micro Confidential-Advance Product Information
ARM Cortex-M3 Processor Core

2.1 Block Diagram

                Figure 2-1. CPU Block Diagram

                          Nested     Interrupts        CM3 Core                ARM                           Serial
                         Vectored      Sleep                                Cortex-M3                         Wire
                         Interrupt    Debug      Instructions Data                                           Output
                         Controller                     Memory                                               Trace
                                                      Protection                                  Trace Port
                                                          Unit                                     Port (SWO)
                                                                                                Interface
                                                                                                   Unit

                                                 Flash                  Data Instrumentation      Private
                                              Patch and             Watchpoint Trace Macrocell  Peripheral
                                              Breakpoint            and Trace
                                                                                                    Bus
                         Private Peripheral                                                     (external)
                                  Bus
                                                                                                  ROM
                               (internal)                                                         Table

                             Adv. High-                                     Adv. Peripheral
                              Perf. Bus                                            Bus
                            Access Port
                                                                     Bus                        I-code bus
                                                                    Matrix                      D-code bus
                                                                                                System bus
       Serial Wire JTAG
           Debug Port

2.2    Functional Description

2.2.1  Important: The ARM CortexTM-M3 Technical Reference Manual describes all the features of an
                       ARM Cortex-M3 in detail. However, these features differ based on the implementation.
                       This section describes the Stellaris implementation.

       Luminary Micro has implemented the ARM Cortex-M3 core as shown in Figure 2-1 on page 36. As
       noted in the ARM CortexTM-M3 Technical Reference Manual, several Cortex-M3 components are
       flexible in their implementation: SW/JTAG-DP, ETM, TPIU, the ROM table, the MPU, and the Nested
       Vectored Interrupt Controller (NVIC). Each of these is addressed in the sections that follow.

       Serial Wire and JTAG Debug

       Luminary Micro has replaced the ARM SW-DP and JTAG-DP with the ARM CoreSightTM-compliant
       Serial Wire JTAG Debug Port (SWJ-DP) interface. This means Chapter 12, "Debug Port," of the
       ARM CortexTM-M3 Technical Reference Manual does not apply to Stellaris devices.

       The SWJ-DP interface combines the SWD and JTAG debug ports into one module. See the
       CoreSightTM Design Kit Technical Reference Manual for details on SWJ-DP.

36                                                                                              June 14, 2007

       Luminary Micro Confidential-Advance Product Information
                                                                               LM3S8938 Microcontroller

2.2.2  Embedded Trace Macrocell (ETM)
2.2.3
       ETM was not implemented in the Stellaris devices. This means Chapters 15 and 16 of the ARM
       CortexTM-M3 Technical Reference Manual can be ignored.

       Trace Port Interface Unit (TPIU)

       The TPIU acts as a bridge between the Cortex-M3 trace data from the ITM, and an off-chip Trace
       Port Analyzer. The Stellaris devices have implemented TPIU as shown in Figure 2-2 on page 37.
       This is similar to the non-ETM version described in the ARM CortexTM-M3 Technical Reference
       Manual, however, SWJ-DP only provides SWV output for the TPIU.

       Figure 2-2. TPIU Block Diagram

               Debug    ATB      Asynchronous FIFO  Trace Out                  Serial Wire
                ATB   Interface                     (serializer)               Trace Port
               Slave
                Port                                                             (SWO)

               APB      APB
               Slave  Interface
                Port

2.2.4  ROM Table
2.2.5
2.2.6  The default ROM table was implemented as described in the ARM CortexTM-M3 Technical
       Reference Manual.

       Memory Protection Unit (MPU)

       The Memory Protection Unit (MPU) is included on the LM3S8938 controller and 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.

       Nested Vectored Interrupt Controller (NVIC)

       The Nested Vectored Interrupt Controller (NVIC):

        Facilitates low-latency exception and interrupt handling

June 14, 2007                                                                               37

                      Luminary Micro Confidential-Advance Product Information
ARM Cortex-M3 Processor Core

2.2.6.1   Controls power management
2.2.6.2
          Implements system control registers

         The NVIC supports up to 240 dynamically reprioritizable interrupts each with up to 256 levels of
         priority. The NVIC and the processor core interface are closely coupled, which enables low latency
         interrupt processing and efficient processing of late arriving interrupts. The NVIC maintains knowledge
         of the stacked (nested) interrupts to enable tail-chaining of interrupts.
         You can only fully access the NVIC from privileged mode, but you can pend interrupts in user-mode
         if you enable the Configuration Control Register (see the ARM CortexTM-M3 Technical Reference
         Manual). Any other user-mode access causes a bus fault.
         All NVIC registers are accessible using byte, halfword, and word unless otherwise stated.
         All NVIC registers and system debug registers are little endian regardless of the endianness state
         of the processor.

         Interrupts

         The ARM CortexTM-M3 Technical Reference Manual describes the maximum number of interrupts
         and interrupt priorities. The LM3S8938 microcontroller supports 34 interrupts with eight priority
         levels.

         System Timer (SysTick)

         Cortex-M3 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 which 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. Software can use this to measure time to completion and time used.

          An internal clock source control based on missing/meeting durations. The COUNTFLAG bit-field
             in the 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.

         Functional Description
         The timer consists of three registers:

          A control and status counter to configure its clock, enable the counter, enable the SysTick
             interrupt, and determine counter status.

          The reload value for the counter, used to provide the counter's wrap value.

          The current value of the counter.

         A fourth register, the SysTick Calibration Value Register, is not implemented in the Stellaris devices.

38                                                                June 14, 2007

         Luminary Micro Confidential-Advance Product Information
                                                                                       LM3S8938 Microcontroller

When enabled, the timer counts down from the reload value to zero, reloads (wraps) to the value
in the SysTick Reload Value register on the next clock edge, then decrements on subsequent clocks.
Writing a value of zero to the Reload Value register disables the counter on the next wrap. When
the counter reaches zero, the COUNTFLAG status bit is set. The COUNTFLAG bit clears on reads.

Writing to the Current Value register clears the register and the COUNTFLAG 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.

If the core is in debug state (halted), the counter will not decrement. The timer is clocked with respect
to a reference clock. The reference clock can be the core clock or an external clock source.

SysTick Control and Status Register

Use the SysTick Control and Status Register to enable the SysTick features. The reset is
0x0000.0000.

Bit/Field Name Type Reset Description

               31:17  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.

               16 COUNTFLAG R/W 0 Returns 1 if timer counted to 0 since last time this was read. Clears on read by
                                                               application. If read by the debugger using the DAP, this bit is cleared on read-only
                                                               if the MasterType bit in the AHB-AP Control Register is set to 0. Otherwise, the
                                                               COUNTFLAG bit is not changed by the debugger read.

               15:3   reserved R/W 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.

               2 CLKSOURCE R/W 0 0 = external reference clock. (Not implemented for Stellaris microcontrollers.)

                      1 = core clock.

                      If no reference clock is provided, it is held at 1 and so gives the same time as the
                      core clock. The core clock must be at least 2.5 times faster than the reference clock.
                      If it is not, the count values are Unpredictable.

               1      TICKINT R/W 0 1 = counting down to 0 pends the SysTick handler.

                      0 = counting down to 0 does not pend the SysTick handler. Software can use the
                      COUNTFLAG to determine if ever counted to 0.

               0      ENABLE R/W 0 1 = counter operates in a multi-shot way. That is, counter loads with the Reload

                      value and then begins counting down. On reaching 0, it sets the COUNTFLAG to

                      1 and optionally pends the SysTick handler, based on TICKINT. It then loads the

                      Reload value again, and begins counting.

                      0 = counter disabled.

SysTick Reload Value Register

Use the SysTick Reload Value Register to specify the start value to load into the current value
register when the counter reaches 0. It can be any value between 1 and 0x00FFFFFF. A start value
of 0 is possible, but has no effect because the SysTick interrupt and COUNTFLAG are activated
when counting from 1 to 0.

Therefore, as a multi-shot timer, repeated over and over, it fires every N+1 clock pulse, where N is
any value from 1 to 0x00FFFFFF. So, if the tick interrupt is required every 100 clock pulses, 99 must
be written into the RELOAD. If a new value is written on each tick interrupt, so treated as single
shot, then the actual count down must be written. For example, if a tick is next required after 400
clock pulses, 400 must be written into the RELOAD.

June 14, 2007                                                                                                        39

                      Luminary Micro Confidential-Advance Product Information
ARM Cortex-M3 Processor Core

    Bit/Field Name Type Reset Description

    31:24 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.

    23:0 RELOAD W1C - Value to load into the SysTick Current Value Register when the counter reaches 0.

    SysTick Current Value Register
    Use the SysTick Current Value Register to find the current value in the register.

    Bit/Field Name Type Reset Description

    31:24 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.

    23:0 CURRENT W1C - Current value at the time the register is accessed. No read-modify-write protection is
                                                 provided, so change with care.

                              This register is write-clear. Writing to it with any value clears the register to 0. Clearing
                              this register also clears the COUNTFLAG bit of the SysTick Control and Status Register.

    SysTick Calibration Value Register
    The SysTick Calibration Value register is not implemented.

40                                                                                     June 14, 2007

    Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

3 Memory Map

The memory map for the LM3S8938 controller is provided in Table 3-1 on page 41.

In this manual, register addresses are given as a hexadecimal increment, relative to the module's
base address as shown in the memory map. See also Chapter 4, "Memory Map" in the ARM
CortexTM-M3 Technical Reference Manual.

Note: In Table 3-1 on page 41 addresses not listed are reserved.

Table 3-1. Memory Mapa

Start             End          Description                              For details
                                                                        on
                                                                        registers,
                                                                        see page ...

Memory            0x1FFF.FFFF  On-chip flash b                          135
0x0000.0000       0x200F.FFFF
0x2000.0000       0x21FF.FFFF  Bit-banded on-chip SRAMc                 135
0x2010.0000       0x23FF.FFFF
0x2200.0000       0x3FFF.FFFF  Reserved non-bit-banded SRAM space       -
0x2400.0000
FiRM Peripherals  0x4000.0FFF  Bit-band alias of 0x2000.0000 through 0x200F.FFFF 131
0x4000.0000       0x4000.3FFF
0x4000.1000       0x4000.4FFF  Reserved non-bit-banded SRAM space       -
0x4000.4000       0x4000.5FFF
0x4000.5000       0x4000.6FFF  Watchdog timer                           231
0x4000.6000       0x4000.7FFF
0x4000.7000       0x4000.8FFF  Reserved                                 -
0x4000.8000       0x4000.BFFF
0x4000.A000       0x4000.CFFF  GPIO Port A                              161
0x4000.C000       0x4000.DFFF
0x4000.D000       0x4000.EFFF  GPIO Port B                              161
0x4000.E000       0x4000.FFFF
0x4000.F000       0x4001.FFFF  GPIO Port C                              161
0x4001.0000
Peripherals       0x4002.07FF  GPIO Port D                              161
0x4002.0000       0x4002.0FFF
0x4002.0800       0x4002.17FF  SSI0                                     336
0x4002.1000       0x4002.1FFF
0x4001.1800       0x4002.3FFF  Reserved                                 -
0x4002.2000       0x4002.4FFF
0x4002.4000       0x4002.5FFF  UART0                                    292
0x4002.5000       0x4002.6FFF
0x4002.6000       0x4002.BFFF  UART1                                    292
0x4002.9000       0x4002.FFFF
0x4002.E000                    UART2                                    292

                               Reserved                                 -

                               Reserved for future FiRM peripherals     -

                               I2C Master 0                             372

                               I2C Slave 0                              385

                               I2C Master 1                             372

                               I2C Slave 1                              385

                               Reserved                                 -

                               GPIO Port E                              161

                               GPIO Port F                              161

                               GPIO Port G                              161

                               Reserved                                 -

                               Reserved                                 -

June 14, 2007                                                                         41

               Luminary Micro Confidential-Advance Product Information
Memory Map

            Start                   End          Description                                   For details
                                                                                               on
                                                                                               registers,
                                                                                               see page ...

            0x4003.0000             0x4003.0FFF  Timer0                                        207

            0x4003.1000             0x4003.1FFF  Timer1                                        207

            0x4003.2000             0x4003.2FFF  Timer2                                        207

            0x4003.3000             0x4003.3FFF  Timer3                                        207

            0x4003.4000             0x4003.7FFF  Reserved                                      -

            0x4003.8000             0x4003.8FFF  ADC                                           258

            0x4003.9000             0x4003.BFFF  Reserved                                      -

            0x4003.C000             0x4003.CFFF  Analog Comparators                            482

            0x4003.D000             0x4003.FFFF  Reserved                                      -

            0x4004.0000             0x4004.0FFF  CAN0 Controller                               407

            0x4004.3000             0x4004.7FFF  Reserved                                      -

            0x4004.8000             0x4004.8FFF  Ethernet Controller                           446

            0x4004.9000             0x4004.BFFF  Reserved                                      -

            0x4004.C000             0x400F.BFFF  Reserved                                      -

            0x400F.C000             0x400F.CFFF  Hibernation Module                            118

            0x400F.D000             0x400F.DFFF  Flash control                                 135

            0x400F.E000             0x400F.EFFF  System control                                64

            0x400F.F000             0x400F.FFFF  Reserved                                      -

            0x4011.1000             0x4011.1FFF  Reserved                                      -

            0x4012.0000             0x41FF.FFFF  Reserved for non bit-banded peripheral space  -

            0x4200.0000             0x43FF.FFFF  Bit-banded alias of 0x4000.0000 through 0x400F.FFFF -

            0x4400.0000             0x5E32.FFFF  Reserved for non bit-banded peripheral space  -

            0x5E34.0000             0x5FFF.FFFF  Reserved                                      -

            0x6000.0000             0xDFFF.FFFF  Reserved for external devices                 -

            Private Peripheral Bus

            0xE000.0000             0xE000.0FFF  Instrumentation Trace Macrocell (ITM)         ARM
            0xE000.1000             0xE000.1FFF  Data Watchpoint and Trace (DWT)               CortexTM-M3
            0xE000.2000             0xE000.2FFF  Flash Patch and Breakpoint (FPB)              Technical
            0xE000.3000             0xE000.DFFF  Reserved                                      Reference
                                                                                               Manual

            0xE000.E000             0xE000.EFFF  Nested Vectored Interrupt Controller (NVIC)

            0xE000.F000             0xE003.FFFF  Reserved

            0xE004.0000             0xE004.0FFF  Trace Port Interface Unit (TPIU)

            0xE004.1000             0xE004.1FFF  Reserved                                      -

            0xE004.2000             0xE00F.FFFF  Reserved                                      -

            0xE010.0000             0xFFFF.FFFF  Reserved for vendor peripherals               -

    a. All reserved space returns a bus fault when read or written.
    b. The unavailable flash will bus fault throughout this range.
    c. The unavailable SRAM will bus fault throughout this range.

42                                                                                             June 14, 2007

                         Luminary Micro Confidential-Advance Product Information
                                                                          LM3S8938 Microcontroller

4 Interrupts

The ARM Cortex-M3 processor and the Nested Vectored Interrupt Controller (NVIC) prioritize and
handle all exceptions. All exceptions are handled 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, which
enables 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 4-1 on page 43 lists all the exceptions. Software can set eight priority levels on seven of these
exceptions (system handlers) as well as on 34 interrupts (listed in Table 4-2 on page 44).

Priorities on the system handlers are set with the NVIC System Handler Priority registers. Interrupts
are enabled through the NVIC Interrupt Set Enable register and prioritized with the NVIC Interrupt
Priority registers. You can also group priorities by splitting priority levels into pre-emption priorities
and subpriorities. All the interrupt registers are described in Chapter 8, "Nested Vectored Interrupt
Controller" in the ARM CortexTM-M3 Technical Reference Manual.

Internally, the highest user-settable priority (0) is treated as fourth priority, after a Reset, NMI, and
a Hard Fault. Note that 0 is the default priority for all the settable priorities.

If you assign the same priority level to two or more interrupts, their hardware priority (the lower the
position number) determines the order in which the processor activates them. For example, if both
GPIO Port A and GPIO Port B are priority level 1, then GPIO Port A has higher priority.

See Chapter 5, "Exceptions" and Chapter 8, "Nested Vectored Interrupt Controller" in the ARM
CortexTM-M3 Technical Reference Manual for more information on exceptions and interrupts.

Note: In Table 4-2 on page 44 interrupts not listed are reserved.

Table 4-1. Exception Types

Exception Type     Position Prioritya Description

-                  0        -         Stack top is loaded from first entry of vector table on reset.
Reset
                   1        -3 (highest) Invoked on power up and warm reset. On first instruction, drops to lowest
Non-Maskable
Interrupt (NMI)                       priority (and then is called the base level of activation). This is

                                      asynchronous.

                   2        -2        Cannot be stopped or preempted by any exception but reset. This is

                                      asynchronous.

Hard Fault         3           -1     An NMI is only producible by software, using the NVIC Interrupt Control
                            settable  State register.
Memory Management  4
                                      All classes of Fault, when the fault cannot activate due to priority or the
                                      configurable fault handler has been disabled. This is synchronous.

                                      MPU mismatch, including access violation and no match. This is
                                      synchronous.

                                      The priority of this exception can be changed.

Bus Fault          5        settable Pre-fetch fault, memory access fault, and other address/memory related

                                      faults. This is synchronous when precise and asynchronous when

                                      imprecise.

Usage Fault          6      settable  You can enable or disable this fault.
                                      Usage fault, such as undefined instruction executed or illegal state
-                  7-10         -     transition attempt. This is synchronous.
SVCall              11      settable  Reserved.
                                      System service call with SVC instruction. This is synchronous.

June 14, 2007                                                                                               43

                 Luminary Micro Confidential-Advance Product Information
Interrupts

            Exception Type      Position Prioritya Description

            Debug Monitor          12   settable Debug monitor (when not halting). This is synchronous, but only active

                                               when enabled. It does not activate if lower priority than the current

                                               activation.

            -                      13   -      Reserved.

            PendSV                 14   settable Pendable request for system service. This is asynchronous and only

                                               pended by software.

            SysTick                15   settable System tick timer has fired. This is asynchronous.

            Interrupts          16 and  settable Asserted from outside the ARM Cortex-M3 core and fed through the NVIC
                                above                 (prioritized). These are all asynchronous. Table 4-2 on page 44 lists the
                                                      interrupts on the LM3S8938 controller.

            a. 0 is the default priority for all the settable priorities.

            Table 4-2. Interrupts

               Interrupt (Bit in Interrupt Registers) Description

                            0           GPIO Port A

                            1           GPIO Port B

                            2           GPIO Port C

                            3           GPIO Port D

                            4           GPIO Port E

                            5           UART0

                            6           UART1

                            7           SSI0

                            8           I2C0

                            14          ADC Sequence 0

                            15          ADC Sequence 1

                            16          ADC Sequence 2

                            17          ADC Sequence 3

                            18          Watchdog timer

                            19          Timer0 A

                            20          Timer0 B

                            21          Timer1 A

                            22          Timer1 B

                            23          Timer2 A

                            24          Timer2 B

                            25          Analog Comparator 0

                            26          Analog Comparator 1

                            27          Analog Comparator 2

                            28          System Control

                            29          Flash Control

                            30          GPIO Port F

                            31          GPIO Port G

                            33          UART2

                            35          Timer3 A

                            36          Timer3 B

44                                                                                                   June 14, 2007

                            Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

               Interrupt (Bit in Interrupt Registers) Description

               37     I2C1

               39     CAN0

               42     Ethernet Controller

               43     Hibernation Module

               44-47  Reserved

June 14, 2007                                                           45

               Luminary Micro Confidential-Advance Product Information
JTAG Interface

5 JTAG Interface

                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.
                The JTAG port is comprised of the standard five pins: TRST, TCK, TMS, TDI, and TDO. Data is
                transmitted serially into the controller on TDI and out of the controller on TDO. The interpretation of
                this data is dependent on the current state of the TAP controller. For detailed information on the
                operation of the JTAG port and TAP controller, please refer to the IEEE Standard 1149.1-Test
                Access Port and Boundary-Scan Architecture.
                The Luminary Micro JTAG controller works with the ARM JTAG controller built into the Cortex-M3
                core. This is implemented by multiplexing the TDO outputs from both JTAG controllers. ARM JTAG
                instructions select the ARM TDO output while Luminary Micro JTAG instructions select the Luminary
                Micro TDO outputs. The multiplexer is controlled by the Luminary Micro JTAG controller, which has
                comprehensive programming for the ARM, LMI, and unimplemented JTAG instructions.
                The JTAG module 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 instruction

                     IDCODE instruction

                     SAMPLE/PRELOAD instruction

                     EXTEST instruction

                     INTEST instruction

                 ARM additional instructions:

                     APACC instruction

                     DPACC instruction

                     ABORT instruction

                 Integrated ARM Serial Wire Debug (SWD)

                See the ARM CortexTM-M3 Technical Reference Manual for more information on the ARM JTAG
                controller.

46                                                           June 14, 2007

    Luminary Micro Confidential-Advance Product Information
                                                                             LM3S8938 Microcontroller

5.1 Block Diagram

                Figure 5-1. JTAG Module Block Diagram

TRST                TAP Controller
TCK
TMS

               TDI  Instruction Register (IR)

                    BYPASS Data Register                                        TDO
                    Boundary Scan Data Register
                    IDCODE Data Register                                     Cortex-M3
                    ABORT Data Register                                      Debug
                    DPACC Data Register                                      Port
                    APACC Data Register

5.2 Functional Description

                A high-level conceptual drawing of the JTAG module is shown in Figure 5-1 on page 47. The JTAG
                module is composed of the Test Access Port (TAP) controller and serial shift chains with parallel
                update registers. The TAP controller is a simple state machine controlled by the TRST, TCK and
                TMS inputs. The current state of the TAP controller depends on the current value of TRST and the
                sequence of values captured on TMS at the rising edge of TCK. The TAP controller determines when
                the serial shift chains capture new data, shift data from TDI towards TDO, and update the parallel
                load registers. The current state of the TAP controller also determines whether the Instruction
                Register (IR) chain or one of the Data Register (DR) chains is being accessed.

                The serial shift chains with parallel load registers are comprised of a single Instruction Register (IR)
                chain and multiple Data Register (DR) chains. The current instruction loaded in the parallel load
                register determines which DR chain is captured, shifted, or updated during the sequencing of the
                TAP controller.

                Some instructions, like EXTEST and INTEST, operate on data currently in a DR chain and do not
                capture, shift, or update any of the chains. Instructions that are not implemented decode to the
                BYPASS instruction to ensure that the serial path between TDI and TDO is always connected (see
                Table 5-2 on page 53 for a list of implemented instructions).

                See "JTAG and Boundary Scan" on page 521 for JTAG timing diagrams.

June 14, 2007                                                                47

                    Luminary Micro Confidential-Advance Product Information
JTAG Interface

5.2.1    JTAG Interface Pins

         The JTAG interface consists of five standard pins: TRST, TCK, TMS, TDI, and TDO. These pins and
         their associated reset state are given in Table 5-1 on page 48. Detailed information on each pin
         follows.

         Table 5-1. JTAG Port Pins Reset State

         Pin Name Data Direction Internal Pull-Up Internal Pull-Down Drive Strength Drive Value

                TRST  Input   Enabled           Disabled  N/A                  N/A

                TCK   Input   Enabled           Disabled  N/A                  N/A

                TMS   Input   Enabled           Disabled  N/A                  N/A

                TDI   Input   Enabled           Disabled  N/A                  N/A

                TDO   Output  Enabled           Disabled  2-mA driver          High-Z

5.2.1.1  Test Reset Input (TRST)
5.2.1.2
5.2.1.3  The TRST pin is an asynchronous active Low input signal for initializing and resetting the JTAG TAP
         controller and associated JTAG circuitry. When TRST is asserted, the TAP controller resets to the
         Test-Logic-Reset state and remains there while TRST is asserted. When the TAP controller enters
         the Test-Logic-Reset state, the JTAG Instruction Register (IR) resets to the default instruction,
         IDCODE.

         By default, the internal pull-up resistor on the TRST pin is enabled after reset. Changes to the pull-up
         resistor settings on GPIO Port B should ensure that the internal pull-up resistor remains enabled
         on PB7/TRST; otherwise JTAG communication could be lost.

         Test Clock Input (TCK)

         The TCK pin is the clock for the JTAG module. This clock is provided so the test logic can operate
         independently of any other system clocks. In addition, it ensures that multiple JTAG TAP controllers
         that are daisy-chained together can synchronously communicate serial test data between
         components. During normal operation, TCK is driven by a free-running clock with a nominal 50%
         duty cycle. When necessary, TCK can be stopped at 0 or 1 for extended periods of time. While TCK
         is stopped at 0 or 1, the state of the TAP controller does not change and data in the JTAG Instruction
         and Data Registers is not lost.

         By default, the internal pull-up resistor on the TCK pin is enabled after reset. This assures that no
         clocking occurs if the pin is not driven from an external source. The internal pull-up and pull-down
         resistors can be turned off to save internal power as long as the TCK pin is constantly being driven
         by an external source.

         Test Mode Select (TMS)

         The TMS pin selects the next state of the JTAG TAP controller. TMS is sampled on the rising edge
         of TCK. Depending on the current TAP state and the sampled value of TMS, the next state is entered.
         Because the TMS pin is sampled on the rising edge of TCK, the IEEE Standard 1149.1 expects the
         value on TMS to change on the falling edge of TCK.

         Holding TMS high for five consecutive TCK cycles drives the TAP controller state machine to the
         Test-Logic-Reset state. When the TAP controller enters the Test-Logic-Reset state, the JTAG
         Instruction Register (IR) resets to the default instruction, IDCODE. Therefore, this sequence can
         be used as a reset mechanism, similar to asserting TRST. The JTAG Test Access Port state machine
         can be seen in its entirety in Figure 5-2 on page 50.

48                                                                                               June 14, 2007

                      Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

5.2.1.4  By default, the internal pull-up resistor on the TMS pin is enabled after reset. Changes to the pull-up
5.2.1.5  resistor settings on GPIO Port C should ensure that the internal pull-up resistor remains enabled
5.2.2    on PC1/TMS; otherwise JTAG communication could be lost.

         Test Data Input (TDI)

         The TDI pin provides a stream of serial information to the IR chain and the DR chains. TDI is
         sampled on the rising edge of TCK and, depending on the current TAP state and the current
         instruction, presents this data to the proper shift register chain. Because the TDI pin is sampled on
         the rising edge of TCK, the IEEE Standard 1149.1 expects the value on TDI to change on the falling
         edge of TCK.

         By default, the internal pull-up resistor on the TDI pin is enabled after reset. Changes to the pull-up
         resistor settings on GPIO Port C should ensure that the internal pull-up resistor remains enabled
         on PC2/TDI; otherwise JTAG communication could be lost.

         Test Data Output (TDO)

         The TDO pin provides an output stream of serial information from the IR chain or the DR chains.
         The value of TDO depends on the current TAP state, the current instruction, and the data in the
         chain being accessed. In order to save power when the JTAG port is not being used, the TDO pin
         is placed in an inactive drive state when not actively shifting out data. Because TDO can be connected
         to the TDI of another controller in a daisy-chain configuration, the IEEE Standard 1149.1 expects
         the value on TDO to change on the falling edge of TCK.

         By default, the internal pull-up resistor on the TDO pin is enabled after reset. This assures that the
         pin remains at a constant logic level when the JTAG port is not being used. The internal pull-up and
         pull-down resistors can be turned off to save internal power if a High-Z output value is acceptable
         during certain TAP controller states.

         JTAG TAP Controller

         The JTAG TAP controller state machine is shown in Figure 5-2 on page 50. The TAP controller
         state machine is reset to the Test-Logic-Reset state on the assertion of a Power-On-Reset (POR)
         or the assertion of TRST. Asserting the correct sequence on the TMS pin allows the JTAG module
         to shift in new instructions, shift in data, or idle during extended testing sequences. For detailed
         information on the function of the TAP controller and the operations that occur in each state, please
         refer to IEEE Standard 1149.1.

June 14, 2007                                                           49

               Luminary Micro Confidential-Advance Product Information
JTAG Interface

       Figure 5-2. Test Access Port State Machine

                Test Logic Reset

       1        0

           Run Test Idle           Select DR Scan                        Select IR Scan
                                1                        1                                    1

       0                                      0                                    0

                                        Capture DR                Capture IR
                                   1                        1

                                                 0                        0

                                   Shift DR                              Shift IR

                                                   1  0                  1          0

                                   Exit 1 DR                             Exit 1 IR
                                                     1                                    1

                                          0                                    0

                                   Pause DR                              Pause IR

                                                   1  0                  1          0

                                          Exit 2 DR                Exit 2 IR
                                   0                        0

                                                 1                        1

                                   Update DR                             Update IR
                                       10                                    10

5.2.3  Shift Registers
5.2.4
       The Shift Registers consist of a serial shift register chain and a parallel load register. The serial shift
       register chain samples specific information during the TAP controller's CAPTURE states and allows
       this information to be shifted out of TDO during the TAP controller's SHIFT states. While the sampled
       data is being shifted out of the chain on TDO, new data is being shifted into the serial shift register
       on TDI. This new data is stored in the parallel load register during the TAP controller's UPDATE
       states. Each of the shift registers is discussed in detail in "Register Descriptions" on page 53.

       Operational Considerations

       There are certain operational considerations when using the JTAG module. Because the JTAG pins
       can be programmed to be GPIOs, board configuration and reset conditions on these pins must be
       considered. In addition, because the JTAG module has integrated ARM Serial Wire Debug, the
       method for switching between these two operational modes is described below.

50                                                                          June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

5.2.4.1  GPIO Functionality

         When the controller is reset with either a POR or RST, the JTAG/SWD port pins default to their
         JTAG/SWD configurations. The default configuration includes enabling digital functionality (setting
         GPIODEN to 1), enabling the pull-up resistors (setting GPIOPUR to 1), and enabling the alternate
         hardware function (setting GPIOAFSEL to 1) for the PB7 and PC[3:0] JTAG/SWD pins.

         It is possible for software to configure these pins as GPIOs after reset by writing 0s to PB7 and
         PC[3:0] in the GPIOAFSEL register. If the user does not require the JTAG/SWD port for debugging
         or board-level testing, this provides five more GPIOs for use in the design.

         Caution If the JTAG pins are used as GPIOs in a design, PB7 and PC2 cannot have external pull-down
         resistors connected to both of them at the same time. If both pins are pulled Low during reset, the
         controller has unpredictable behavior. If this happens, remove one or both of the pull-down resistors,
         and apply RST or power-cycle the part.

         In addition, it is possible to create a software sequence that prevents the debugger from connecting to
         the Stellaris microcontroller. If the program code loaded into flash immediately changes the JTAG
         pins to their GPIO functionality, the debugger may not have enough time to connect and halt the
         controller before the JTAG pin functionality switches. This may lock the debugger out of the part. This
         can be avoided with a software routine that restores JTAG functionality based on an external or software
         trigger.

         The commit control registers provide a layer of protection against accidental programming of critical
         hardware peripherals. Writes to protected bits of the GPIO Alternate Function Select (GPIOAFSEL)
         register (see page 171) are not committed to storage unless the GPIO Lock (GPIOLOCK) register
         (see page 181) has been unlocked and the appropriate bits of the GPIO Commit (GPIOCR) register
         (see page 182) have been set to 1.

         Recovering a "Locked" Device
         If software configures any of the JTAG/SWD pins as GPIO and loses the ability to communicate
         with the debugger, there is a debug sequence that can be used to recover the device. Performing
         a total of ten JTAG-to-SWD and SWD-to-JTAG switch sequences while holding the device in reset
         mass erases the flash memory. The sequence to recover the device is:

         1. Assert and hold the RST signal.

         2. Perform the JTAG-to-SWD switch sequence.

         3. Perform the SWD-to-JTAG switch sequence.

         4. Perform the JTAG-to-SWD switch sequence.

         5. Perform the SWD-to-JTAG switch sequence.

         6. Perform the JTAG-to-SWD switch sequence.

         7. Perform the SWD-to-JTAG switch sequence.

         8. Perform the JTAG-to-SWD switch sequence.

         9. Perform the SWD-to-JTAG switch sequence.

         10. Perform the JTAG-to-SWD switch sequence.

         11. Perform the SWD-to-JTAG switch sequence.

June 14, 2007                                                           51

               Luminary Micro Confidential-Advance Product Information
JTAG Interface

5.2.4.2  12. Release the RST signal.

         The JTAG-to-SWD and SWD-to-JTAG switch sequences are described in "ARM Serial Wire Debug
         (SWD)" on page 52. When performing switch sequences for the purpose of recovering the debug
         capabilities of the device, only steps 1 and 2 of the switch sequence need to be performed.

         ARM Serial Wire Debug (SWD)

         In order to seamlessly integrate the ARM Serial Wire Debug (SWD) functionality, a serial-wire
         debugger must be able to connect to the Cortex-M3 core without having to perform, or have any
         knowledge of, JTAG cycles. This is accomplished with a SWD preamble that is issued before the
         SWD session begins.

         The preamble used to enable the SWD interface of the SWJ-DP module starts with the TAP controller
         in the Test-Logic-Reset state. From here, the preamble sequences the TAP controller through the
         following states: Run Test Idle, Select DR, Select IR, Test Logic Reset, Test Logic Reset, Run Test
         Idle, Run Test Idle, Select DR, Select IR, Test Logic Reset, Test Logic Reset, Run Test Idle, Run
         Test Idle, Select DR, Select IR, and Test Logic Reset states.

         Stepping through this sequences of the TAP state machine enables the SWD interface and disables
         the JTAG interface. For more information on this operation and the SWD interface, see the ARM
         CortexTM-M3 Technical Reference Manual and the ARM CoreSight Technical Reference Manual.

         Because this sequence is a valid series of JTAG operations that could be issued, the ARM JTAG
         TAP controller is not fully compliant to the IEEE Standard 1149.1. This is the only instance where
         the ARM JTAG TAP controller does not meet full compliance with the specification. Due to the low
         probability of this sequence occurring during normal operation of the TAP controller, it should not
         affect normal performance of the JTAG interface.

         JTAG-to-SWD Switching

         To switch the operating mode of the Debug Access Port (DAP) from JTAG to SWD mode, the
         external debug hardware must send a switch sequence to the device. The 16-bit switch sequence
         for switching to SWD mode is defined as b1110011110011110, transmitted LSB first. This can also
         be represented as 16'hE79E when transmitted LSB first. The complete switch sequence should
         consist of the following transactions on the TCK/SWCLK and TMS/SWDIO signals:

         1. Send at least 50 TCK/SWCLK cycles with TMS/SWDIO set to 1. This ensures that both JTAG and
              SWD are in their reset/idle states.

         2. Send the 16-bit JTAG-to-SWD switch sequence, 16'hE79E.

         3. Send at least 50 TCK/SWCLK cycles with TMS/SWDIO set to 1. This ensures that if SWJ-DP was
              already in SWD mode, before sending the switch sequence, the SWD goes into the line reset
              state.

         SWD-to-JTAG Switching

         To switch the operating mode of the Debug Access Port (DAP) from SWD to JTAG mode, the
         external debug hardware must send a switch sequence to the device. The 16-bit switch sequence
         for switching to JTAG mode is defined as b1110011110011110, transmitted LSB first. This can also
         be represented as 16'hE73C when transmitted LSB first. The complete switch sequence should
         consist of the following transactions on the TCK/SWCLK and TMS/SWDIO signals:

         1. Send at least 50 TCK/SWCLK cycles with TMS/SWDIO set to 1. This ensures that both JTAG and
              SWD are in their reset/idle states.

52                                                                       June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                                          LM3S8938 Microcontroller

         2. Send the 16-bit SWD-to-JTAG switch sequence, 16'hE73C.

         3. Send at least 5 TCK/SWCLK cycles with TMS/SWDIO set to 1. This ensures that if SWJ-DP was
              already in JTAG mode, before sending the switch sequence, the JTAG goes into the Test Logic
              Reset state.

5.3 Initialization and Configuration

                After a Power-On-Reset or an external reset (RST), the JTAG pins are automatically configured for
                JTAG communication. No user-defined initialization or configuration is needed. However, if the user
                application changes these pins to their GPIO function, they must be configured back to their JTAG
                functionality before JTAG communication can be restored. This is done by enabling the five JTAG
                pins (PB7 and PC[3:0]) for their alternate function using the GPIOAFSEL register.

5.4      Register Descriptions

5.4.1    There are no APB-accessible registers in the JTAG TAP Controller or Shift Register chains. The
         registers within the JTAG controller are all accessed serially through the TAP Controller. The registers
         can be broken down into two main categories: Instruction Registers and Data Registers.

         Instruction Register (IR)

         The JTAG TAP Instruction Register (IR) is a four-bit serial scan chain with a parallel load register
         connected between the JTAG TDI and TDO pins. When the TAP Controller is placed in the correct
         states, bits can be shifted into the Instruction Register. Once these bits have been shifted into the
         chain and updated, they are interpreted as the current instruction. The decode of the Instruction
         Register bits is shown in Table 5-2 on page 53. A detailed explanation of each instruction, along
         with its associated Data Register, follows.

         Table 5-2. JTAG Instruction Register Commands

               IR[3:0]  Instruction  Description

               0000     EXTEST       Drives the values preloaded into the Boundary Scan Chain by the SAMPLE/PRELOAD
                                     instruction onto the pads.

               0001     INTEST       Drives the values preloaded into the Boundary Scan Chain by the SAMPLE/PRELOAD
                                     instruction into the controller.

               0010 SAMPLE / PRELOAD Captures the current I/O values and shifts the sampled values out of the Boundary Scan
                                                          Chain while new preload data is shifted in.

               1000     ABORT        Shifts data into the ARM Debug Port Abort Register.

               1010     DPACC        Shifts data into and out of the ARM DP Access Register.

               1011     APACC        Shifts data into and out of the ARM AC Access Register.

               1110     IDCODE       Loads manufacturing information defined by the IEEE Standard 1149.1 into the IDCODE
                                     chain and shifts it out.

               1111     BYPASS       Connects TDI to TDO through a single Shift Register chain.

         All Others     Reserved     Defaults to the BYPASS instruction to ensure that TDI is always connected to TDO.

5.4.1.1  EXTEST Instruction

         The EXTEST instruction does not have an associated Data Register chain. The EXTEST instruction
         uses the data that has been preloaded into the Boundary Scan Data Register using the
         SAMPLE/PRELOAD instruction. When the EXTEST instruction is present in the Instruction Register,
         the preloaded data in the Boundary Scan Data Register associated with the outputs and output
         enables are used to drive the GPIO pads rather than the signals coming from the core. This allows

June 14, 2007                                                                                                           53

                        Luminary Micro Confidential-Advance Product Information
JTAG Interface

5.4.1.2  tests to be developed that drive known values out of the controller, which can be used to verify
5.4.1.3  connectivity.

5.4.1.4  INTEST Instruction
5.4.1.5
5.4.1.6  The INTEST instruction does not have an associated Data Register chain. The INTEST instruction
         uses the data that has been preloaded into the Boundary Scan Data Register using the
         SAMPLE/PRELOAD instruction. When the INTEST instruction is present in the Instruction Register,
         the preloaded data in the Boundary Scan Data Register associated with the inputs are used to drive
         the signals going into the core rather than the signals coming from the GPIO pads. This allows tests
         to be developed that drive known values into the controller, which can be used for testing. It is
         important to note that although the RST input pin is on the Boundary Scan Data Register chain, it
         is only observable.

         SAMPLE/PRELOAD Instruction

         The SAMPLE/PRELOAD instruction connects the Boundary Scan Data Register chain between
         TDI and TDO. This instruction samples the current state of the pad pins for observation and preloads
         new test data. Each GPIO pad has an associated input, output, and output enable signal. When the
         TAP controller enters the Capture DR state during this instruction, the input, output, and output-enable
         signals to each of the GPIO pads are captured. These samples are serially shifted out of TDO while
         the TAP controller is in the Shift DR state and can be used for observation or comparison in various
         tests.

         While these samples of the inputs, outputs, and output enables are being shifted out of the Boundary
         Scan Data Register, new data is being shifted into the Boundary Scan Data Register from TDI.
         Once the new data has been shifted into the Boundary Scan Data Register, the data is saved in the
         parallel load registers when the TAP controller enters the Update DR state. This update of the
         parallel load register preloads data into the Boundary Scan Data Register that is associated with
         each input, output, and output enable. This preloaded data can be used with the EXTEST and
         INTEST instructions to drive data into or out of the controller. Please see "Boundary Scan Data
         Register" on page 56 for more information.

         ABORT Instruction

         The ABORT instruction connects the associated ABORT Data Register chain between TDI and
         TDO. This instruction provides read and write access to the ABORT Register of the ARM Debug
         Access Port (DAP). Shifting the proper data into this Data Register clears various error bits or initiates
         a DAP abort of a previous request. Please see the "ABORT Data Register" on page 56 for more
         information.

         DPACC Instruction

         The DPACC instruction connects the associated DPACC Data Register chain between TDI and
         TDO. This instruction provides read and write access to the DPACC Register of the ARM Debug
         Access Port (DAP). Shifting the proper data into this register and reading the data output from this
         register allows read and write access to the ARM debug and status registers. Please see "DPACC
         Data Register" on page 56 for more information.

         APACC Instruction

         The APACC instruction connects the associated APACC Data Register chain between TDI and
         TDO. This instruction provides read and write access to the APACC Register of the ARM Debug
         Access Port (DAP). Shifting the proper data into this register and reading the data output from this
         register allows read and write access to internal components and buses through the Debug Port.
         Please see "APACC Data Register" on page 56 for more information.

54                                                                       June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

5.4.1.7  IDCODE Instruction
5.4.1.8
         The IDCODE instruction connects the associated IDCODE Data Register chain between TDI and
         TDO. This instruction provides information on the manufacturer, part number, and version of the
         ARM core. This information can be used by testing equipment and debuggers to automatically
         configure their input and output data streams. IDCODE is the default instruction that is loaded into
         the JTAG Instruction Register when a power-on-reset (POR) is asserted, TRST is asserted, or the
         Test-Logic-Reset state is entered. Please see "IDCODE Data Register" on page 55 for more
         information.

         BYPASS Instruction

         The BYPASS instruction connects the associated BYPASS Data Register chain between TDI and
         TDO. This instruction is used to create a minimum length serial path between the TDI and TDO ports.
         The BYPASS Data Register is a single-bit shift register. This instruction improves test efficiency by
         allowing components that are not needed for a specific test to be bypassed in the JTAG scan chain
         by loading them with the BYPASS instruction. Please see "BYPASS Data Register" on page 55 for
         more information.

5.4.2    Data Registers
5.4.2.1
         The JTAG module contains six Data Registers. These include: IDCODE, BYPASS, Boundary Scan,
         APACC, DPACC, and ABORT serial Data Register chains. Each of these Data Registers is discussed
         in the following sections.

         IDCODE Data Register

         The format for the 32-bit IDCODE Data Register defined by the IEEE Standard 1149.1 is shown in
         Figure 5-3 on page 55. The standard requires that every JTAG-compliant device implement either
         the IDCODE instruction or the BYPASS instruction as the default instruction. The LSB of the IDCODE
         Data Register is defined to be a 1 to distinguish it from the BYPASS instruction, which has an LSB
         of 0. This allows auto configuration test tools to determine which instruction is the default instruction.

         The major uses of the JTAG port are for manufacturer testing of component assembly, and program
         development and debug. To facilitate the use of auto-configuration debug tools, the IDCODE
         instruction outputs a value of 0x3BA00477. This value indicates an ARM Cortex-M3, Version 1
         processor. This allows the debuggers to automatically configure themselves to work correctly with
         the Cortex-M3 during debug.

         Figure 5-3. IDCODE Register Format

5.4.2.2  BYPASS Data Register

         The format for the 1-bit BYPASS Data Register defined by the IEEE Standard 1149.1 is shown in
         Figure 5-4 on page 56. The standard requires that every JTAG-compliant device implement either
         the BYPASS instruction or the IDCODE instruction as the default instruction. The LSB of the BYPASS
         Data Register is defined to be a 0 to distinguish it from the IDCODE instruction, which has an LSB
         of 1. This allows auto configuration test tools to determine which instruction is the default instruction.

June 14, 2007                                                           55

               Luminary Micro Confidential-Advance Product Information
JTAG Interface
                Figure 5-4. BYPASS Register Format

5.4.2.3  Boundary Scan Data Register

         The format of the Boundary Scan Data Register is shown in Figure 5-5 on page 56. Each GPIO
         pin, in a counter-clockwise direction from the JTAG port pins, is included in the Boundary Scan Data
         Register. Each GPIO pin has three associated digital signals that are included in the chain. These
         signals are input, output, and output enable, and are arranged in that order as can be seen in the
         figure. In addition to the GPIO pins, the controller reset pin, RST, is included in the chain. Because
         the reset pin is always an input, only the input signal is included in the Data Register chain.

         When the Boundary Scan Data Register is accessed with the SAMPLE/PRELOAD instruction, the
         input, output, and output enable from each digital pad are sampled and then shifted out of the chain
         to be verified. The sampling of these values occurs on the rising edge of TCK in the Capture DR
         state of the TAP controller. While the sampled data is being shifted out of the Boundary Scan chain
         in the Shift DR state of the TAP controller, new data can be preloaded into the chain for use with
         the EXTEST and INTEST instructions. These instructions either force data out of the controller, with
         the EXTEST instruction, or into the controller, with the INTEST instruction.

         Figure 5-5. Boundary Scan Register Format

         TDI  I  O         O  ...  I  O             O  I    I  O         O  ... I            O       O TDO
              N  U         E       N  U             E  N    N  U         E                N  U       E
                 T                    T                        T                             T

                 GPIO PB6             GPIO m           RST     GPIO m+1                      GPIO n

5.4.2.4  For detailed information on the order of the input, output, and output enable bits for each of the
5.4.2.5  GPIO ports, please refer to the Stellaris Family Boundary Scan Description Language (BSDL) files,
5.4.2.6  downloadable from www.luminarymicro.com.

         APACC Data Register

         The format for the 35-bit APACC Data Register defined by ARM is described in the ARM
         CortexTM-M3 Technical Reference Manual.

         DPACC Data Register

         The format for the 35-bit DPACC Data Register defined by ARM is described in the ARM
         CortexTM-M3 Technical Reference Manual.

         ABORT Data Register

         The format for the 35-bit ABORT Data Register defined by ARM is described in the ARM
         CortexTM-M3 Technical Reference Manual.

56                                                                                           June 14, 2007

                 Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

6 System Control

6.1      System control determines the overall operation of the device. It provides information about the
         device, controls the clocking to the core and individual peripherals, and handles reset detection and
6.1.1    reporting.
6.1.2
6.1.2.1  Functional Description
6.1.2.2
         The System Control module provides the following capabilities:
6.1.2.3
          Device identification, see "Device Identification" on page 57

          Local control, such as reset (see "Reset Control" on page 57), power (see "Power
             Control" on page 60) and clock control (see "Clock Control" on page 60)

          System control (Run, Sleep, and Deep-Sleep modes), see "System Control" on page 62

         Device Identification

         Seven read-only registers provide software with information on the microcontroller, such as version,
         part number, SRAM size, flash size, and other features. See the DID0, DID1, and DC0-DC4 registers.

         Reset Control

         This section discusses aspects of hardware functions during reset as well as system software
         requirements following the reset sequence.

         CMOD0 and CMOD1 Test-Mode Control Pins

         Two pins, CMOD0 and CMOD1, are defined for use by Luminary Micro for testing the devices during
         manufacture. They have no end-user function and should not be used. The CMOD pins should be
         connected to ground.

         Reset Sources

         The controller has five sources of reset:

         1. External reset input pin (RST) assertion, see "RST Pin Assertion" on page 57.

         2. Power-on reset (POR), see "Power-On Reset (POR)" on page 58.

         3. Internal brown-out (BOR) detector, see "Brown-Out Reset (BOR)" on page 58.

         4. Software-initiated reset (with the software reset registers), see "Software Reset" on page 59.

         5. A watchdog timer reset condition violation, see "Watchdog Timer Reset" on page 59.

         After a reset, the Reset Cause (RESC) register is set with the reset cause. The bits in this register
         are sticky and maintain their state across multiple reset sequences, except when an internal POR
         is the cause, and then all the other bits in the RESC register are cleared except for the POR indicator.

         RST Pin Assertion

         The external reset pin (RST) resets the controller. This resets the core and all the peripherals except
         the JTAG TAP controller (see "JTAG Interface" on page 46). The external reset sequence is as
         follows:

June 14, 2007                                                           57

               Luminary Micro Confidential-Advance Product Information
System Control

         1. The external reset pin (RST) is asserted and then de-asserted.

         2. The internal reset is released and the core loads from memory the initial stack pointer, the initial
              program counter, the first instruction designated by the program counter, and begins execution.
              A few clocks cycles from RST de-assertion to the start of the reset sequence is necessary for
              synchronization.

6.1.2.4  The external reset timing is shown in Figure 22-11 on page 523.

         Power-On Reset (POR)

         The Power-On Reset (POR) circuit monitors the power supply voltage (VDD). The POR circuit
         generates a reset signal to the internal logic when the power supply ramp reaches a threshold value
         (VTH). If the application only uses the POR circuit, the RST input needs to be connected to the power
         supply (VDD) through a pull-up resistor (1K to 10K ).

         The device must be operating within the specified operating parameters at the point when the on-chip
         power-on reset pulse is complete. The 3.3-V power supply to the device must reach 3.0 V within
         10 msec of it crossing 2.0 V to guarantee proper operation. For applications that require the use of
         an external reset to hold the device in reset longer than the internal POR, the RST input may be
         used with the circuit as shown in Figure 6-1 on page 58.

         Figure 6-1. External Circuitry to Extend Reset

                D1  R1            Stellaris
                            RST

                        R2
                    C1

6.1.2.5  The R1 and C1 components define the power-on delay. The R2 resistor mitigates any leakage from
         the RST input. The diode (D1) discharges C1 rapidly when the power supply is turned off.
         The Power-On Reset sequence is as follows:

         1. The controller waits for the later of external reset (RST) or internal POR to go inactive.

         2. The internal reset is released and the core loads from memory the initial stack pointer, the initial
              program counter, the first instruction designated by the program counter, and begins execution.

         The internal POR is only active on the initial power-up of the controller. The Power-On Reset timing
         is shown in Figure 22-12 on page 524.

         Note: The power-on reset also resets the JTAG controller. An external reset does not.

         Brown-Out Reset (BOR)

         A drop in the input voltage resulting in the assertion of the internal brown-out detector can be used
         to reset the controller. This is initially disabled and may be enabled by software.

         The system provides a brown-out detection circuit that triggers if the power supply (VDD) drops
         below a brown-out threshold voltage (VBTH). If a brown-out condition is detected, the system may
         generate a controller interrupt or a system reset.

58                                                                               June 14, 2007

                        Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

6.1.2.6  Brown-out resets are controlled with the Power-On and Brown-Out Reset Control (PBORCTL)
6.1.2.7  register. The BORIOR bit in the PBORCTL register must be set for a brown-out condition to trigger
         a reset.

         The brown-out reset is equivelent to an assertion of the external RST input and the reset is held
         active until the proper VDD level is restored. The RESC register can be examined in the reset interrupt
         handler to determine if a Brown-Out condition was the cause of the reset, thus allowing software to
         determine what actions are required to recover.

         The internal Brown-Out Reset timing is shown in Figure 22-13 on page 524.

         Software Reset

         Software can generate a reset to the entire system or may reset a specific peripheral.

         Peripherals can be individually reset by software via three registers that control reset signals to each
         peripheral (see the SRCRn registers). If the bit position corresponding to a peripheral is set, the
         peripheral is reset. The encoding of the reset registers is consistent with the encoding of the clock
         gating control for peripherals and on-chip functions (see "System Control" on page 62). Writing a
         bit lane with a value of 1 initiates a reset of the corresponding unit. Note that all reset signals for all
         clocks of the specified unit are asserted as a result of a software-initiated reset.

         The entire system can be reset by software by setting the SYSRESETREQ bit in the Cortex-M3
         Application Interrupt and Reset Control register resets the entire system including the core. The
         software-initiated system reset sequence is as follows:

         1. A software system reset is initiated by writing the SYSRESETREQ bit in the ARM Cortex-M3
              Application Interrupt and Reset Control register.

         2. An internal reset is asserted.

         3. The internal reset is deasserted and the controller loads from memory the initial stack pointer,
              the initial program counter, and the first instruction designated by the program counter, and
              then begins execution.

         The software-initiated system reset timing is shown in Figure 22-14 on page 524.

         Watchdog Timer Reset

         The watchdog timer module's function is to prevent system hangs. The watchdog timer can be
         configured to generate an interrupt to the controller on its first time-out, and to generate a reset
         signal on its second time-out.

         After the first time-out event, the 32-bit counter is reloaded with the value of the Watchdog Timer
         Load (WDTLOAD) register, and the timer resumes counting down from that value. If the timer counts
         down to its zero state again before the first time-out interrupt is cleared, and the reset signal has
         been enabled, the watchdog timer asserts its reset signal to the system. The watchdog timer reset
         sequence is as follows:

         1. The watchdog timer times out for the second time without being serviced.

         2. An internal reset is asserted.

         3. The internal reset is released and the controller loads from memory the initial stack pointer, the
              initial program counter, the first instruction designated by the program counter, and begins
              execution.

June 14, 2007                                                           59

               Luminary Micro Confidential-Advance Product Information
System Control

         The watchdog reset timing is shown in Figure 22-15 on page 524.

6.1.3    Power Control

6.1.4    The Stellaris microcontroller provides an integrated LDO regulator that may be used to provide
6.1.4.1  power to the majority of the controller's internal logic. The LDO regulator provides software a
         mechanism to adjust the regulated value, in small increments (VSTEP), over the range of 2.25 V
         to 2.75 V (inclusive)--or 2.5 V 10%. The adjustment is made by changing the value of the VADJ
         field in the LDO Power Control (LDOPCTL) register.

         Note:  The use of the LDO is optional. The internal logic may be supplied by the on-chip LDO or
                by an external regulator. If the LDO is used, the LDO output pin is connected to the VDD25
                pins on the printed circuit board. The LDO requires decoupling capacitors on the printed
                circuit board. If an external regulator is used, it is strongly recommended that the external
                regulator supply the controller only and not be shared with other devices on the printed
                circuit board.

         Clock Control

         System control determines the control of clocks in this part.

         Fundamental Clock Sources

         There are four clock sources for use in the device:

          Internal Oscillator (IOSC): The internal oscillator is an on-chip clock source. It does not require
             the use of any external components. The frequency of the internal oscillator is 12 MHz 30%.
             Applications that do not depend on accurate clock sources may use this clock source to reduce
             system cost. The internal oscillator is the clock source the device uses during and following POR.
             If the main oscillator is required, software must enable the main oscillator following reset and
             allow the main oscillator to stabilize before changing the clock reference.

          Main Oscillator: The main oscillator provides 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. The crystal value allowed
             depends on whether the main oscillator is used as the clock reference source to the PLL. If so,
             the crystal must be one of the supported frequencies between 3.579545 MHz through 8.192
             MHz (inclusive). If the PLL is not being used, the crystal may be any one of the supported
             frequencies between 1 MHz and 8.192 MHz. The single-ended clock source range is from DC
             through the specified speed of the device. The supported crystals are listed in Table
             6-3 on page 75.

          Internal 30-kHz oscillator: The internal 30-kHz oscillator is similar to the internal oscillator,
             except that it provides an operational frequency of 30 kHz 30%. It is intended for use during
             Deep-Sleep power-saving modes. This power-savings mode benefits from reduced internal
             switching and also allows the main oscillator to be powered down.

          External real-time oscillator: The external real-time oscillator provides a low-frequency, accurate
             clock reference. It is intended to provide the system with a real-time clock source. The real-time
             oscillator is part of the Hibernation Module ("Hibernation Module" on page 113) and may also
             provide an accurate source of Deep-Sleep or Hibernate mode power savings.

         The internal system clock (sysclk), is derived from any of the four sources plus two others: the output
         of the internal PLL, and the internal oscillator divided by four (3 MHz 30%). The frequency of the
         PLL clock reference must be in the range of 3.579545 MHz to 8.192 MHz (inclusive).

60                                                                        June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

6.1.4.2  The Run-Mode Clock Configuration (RCC) and Run-Mode Clock Configuration 2 (RCC2)
6.1.4.3  registers provide control for the system clock. The RCC2 register is provided to extend fields that
         offer additional encodings over the RCC register. When used, the RCC2 register field values are
6.1.4.4  used by the logic over the corresponding field in the RCC register. In particular, RCC2 provides for
6.1.4.5  a larger assortment of clock configuration options.

         Crystal Configuration for the Main Oscillator (MOSC)

         The main oscillator supports the use of a select number of crystals in the range of 1 MHz through
         8.192 MHz. This method allows Luminary Micro to provide the best possible PLL settings.

         Table 6-3 on page 75 describes the available crystal choices and default programming values.

         Software configures the RCC register XTAL field with the crystal number. If the PLL is used in the
         design, the XTAL field value is internally translated to the PLL settings.

         PLL Frequency Configuration

         The PLL is disabled by default during power-on reset and is enabled later by software if required.
         Software configures the PLL input reference clock source, specifies the output divisor to set the
         system clock frequency, and enables the PLL to drive the output.

         If the main oscillator provides the clock reference to the PLL, the translation provided by hardware
         and used to program the PLL is available for software in the XTAL to PLL Translation (PLLCFG)
         register (see page 77). The internal translation provides a translation within 1% of the targetted
         PLL VCO frequency.

         Table 6-3 on page 75 describes the available crystal choices and default programming of the
         PLLCFG register. The crystal number is written into the XTAL field of the Run-Mode Clock
         Configuration (RCC) register. Any time the XTAL field changes, the new settings are translated
         and the internal PLL settings are updated.

         PLL Modes

         The PLL has two modes of operation: Normal and Power-Down

          Normal: The PLL multiplies the input clock reference and drives the output.

          Power-Down: Most of the PLL internal circuitry is disabled and the PLL does not drive the output.

         The modes are programmed using the RCC/RCC2 register fields (see page 73 and page 78).

         PLL Operation

         If the PLL configuration is changed, the PLL output frequency is unstable until it reconverges (relocks)
         to the new setting. The time between the configuration change and relock is TREADY (see Table
         22-5 on page 513). During this time, the PLL is not usable as a clock reference.

         The PLL is changed by one of the following:

          Change to the XTAL value in the RCC register--writes of the same value do not cause a relock.

          Change in the PLL from Power-Down to Normal mode.

         A counter is defined to measure the TREADY requirement. The counter is clocked by the main
         oscillator. The range of the main oscillator has been taken into account and the down counter is set
         to 0x1200 (that is, ~600 s at a 8.192 MHz external oscillator clock). Hardware is provided to keep
         the PLL from being used as a system clock until the TREADY condition is met after one of the two

June 14, 2007                                                           61

               Luminary Micro Confidential-Advance Product Information
System Control

6.1.5  changes above. It is the user's responsibility to have a stable clock source (like the main oscillator)
       before the RCC/RCC2 register is switched to use the PLL.

       System Control

       For power-savings purposes, the RCGCn , SCGCn , and DCGCn registers control the clock gating
       logic for each peripheral or block in the system while the controller is in Run, Sleep, and Deep-Sleep
       mode, respectively.

       In Run mode, the processor executes code. In Sleep mode, the clock frequency of the active
       peripherals is unchanged, but the processor is not clocked and therefore no longer executes code.
       In Deep-Sleep mode, the clock frequency of the active peripherals may change (depending on the
       Run mode clock configuration) in addition to the processor clock being stopped. An interrupt returns
       the device to Run mode from one of the sleep modes; the sleep modes are entered on request from
       the code. Each mode is described in more detail below.

       There are four levels of operation for the device defined as:

        Run Mode. Run Mode provides normal operation of the processor and all of the peripherals that
           are currently enabled by the RCGCn registers. The system clock can be any of the available
           clock sources including the PLL.

        Sleep Mode. Sleep mode is entered by the Cortex-M3 core executing a WFI (Wait for
           Interrupt) instruction. Any properly configured interrupt event in the system will bring the
           processor back into Run mode. See the system control NVIC section of the ARM CortexTM-M3
           Technical Reference Manual for more details.

           In Sleep Mode, the Cortex-M3 processor core and the memory subsystem are not clocked.
           Peripherals are clocked that are enabled in the SCGCn register when auto-clock gating is enabled
           (see the RCC register) or the RCGCn register when the auto-clock gating is disabled. The system
           clock has the same source and frequency as that during Run mode.

        Deep-Sleep Mode. Deep-Sleep mode is entered by first writing the Deep Sleep Enable bit in
           the ARM Cortex-M3 NVIC system control register and then executing a WFI instruction. Any
           properly configured interrupt event in the system will bring the processor back into Run mode.
           See the system control NVIC section of the ARM CortexTM-M3 Technical Reference Manual
           for more details.

           The Cortex-M3 processor core and the memory subsystem are not clocked. Peripherals are
           clocked that are enabled in the DCGCn register when auto-clock gating is enabled (see the RCC
           register) or the RCGCn register when auto-clock gating is disabled. The system clock source is
           the main oscillator by default or the internal oscillator specified in the DSLPCLKCFG register if
           one is enabled. When the DSLPCLKCFG register is used, the internal oscillator is powered up,
           if necessary, and the main oscillator is powered down. If the PLL is running at the time of the
           WFI instruction, hardware will power the PLL down and override the SYSDIV field of the active
           RCC/RCC2 register to be /16 or /64, respectively. When the Deep-Sleep exit event occurs,
           hardware brings the system clock back to the source and frequency it had at the onset of
           Deep-Sleep mode before enabling the clocks that had been stopped during the Deep-Sleep
           duration.

        Hibernate Mode. In this mode, the power supplies are turned off to the main part of the device
           and only the Hibernation module's circuitry is active. An external wake event or RTC event is
           required to bring the device back to Run mode. The Cortex-M3 processor and peripherals outside
           of the Hibernation module see a normal "power on" sequence and the processor starts running

62                                                                       June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                         LM3S8938 Microcontroller

               code. It can determine that it has been restarted from Hibernate mode by inspecting the
               Hibernation module registers.

6.2 Initialization and Configuration

                The PLL is configured using direct register writes to the RCC/RCC2 register. If the RCC2 register
                is being used, the USERCC2 bit must be set and the appropriate RCC2 bit/field is used. The steps
                required to successfully change the PLL-based system clock are:

                1. Bypass the PLL and system clock divider by setting the BYPASS bit and clearing the USESYS
                     bit in the RCC register. This configures the system to run off a "raw" clock source (using the
                     main oscillator or internal oscillator) and allows for the new PLL configuration to be validated
                     before switching the system clock to the PLL.

                2. Select the crystal value (XTAL) and oscillator source (OSCSRC), and clear the PWRDN bit in
                     RCC/RCC2. Setting the XTAL field automatically pulls valid PLL configuration data for the
                     appropriate crystal, and clearing the PWRDN bit powers and enables the PLL and its output.

                3. Select the desired system divider (SYSDIV) in RCC/RCC2 and set the USESYS bit in RCC. The
                     SYSDIV field determines the system frequency for the microcontroller.

       4. Wait for the PLL to lock by polling the PLLLRIS bit in the Raw Interrupt Status (RIS) register.
       5. Enable use of the PLL by clearing the BYPASS bit in RCC/RCC2.

6.3 Register Map

                Table 6-1 on page 63 lists the System Control registers, grouped by function. The offset listed is a
                hexadecimal increment to the register's address, relative to the System Control base address of
                0x400F.E000.

                Note: Spaces in the System Control register space that are not used are reserved for future or
                           internal use by Luminary Micro, Inc. Software should not modify any reserved memory
                           address.

                Note: A BV in the Reset column indicates the reset value is a Build Value and part-specific. See
                           the page number referenced for the reset value description.

Table 6-1. System Control Register Map

Offset Name     Type                    Reset  Description                                              See
                                                                                                        page
0x000  DID0     RO                      -      Device Identification 0
0x004  DID1                                                                                              65
0x008  DC0      RO                      -      Device Identification 1                                   81
0x010  DC1                                                                                               83
0x014  DC2      RO    0x00FF.007F Device Capabilities 0                                                  84
0x018  DC3                                                                                               86
0x01C  DC4      RO    0x0101.33FF Device Capabilities 1                                                  88
0x030  PBORCTL                                                                                           90
                RO    0x070F.5017 Device Capabilities 2                                                  67

                RO    0x3FFF.7FC0 Device Capabilities 3

                RO    0x5100.007F Device Capabilities 4

                R/W   0x0000.7FFD Brown-Out Reset Control

June 14, 2007                                                                                           63

                Luminary Micro Confidential-Advance Product Information
System Control

Offset Name       Type   Reset        Description                                                    See
                                                                                                     page
0x034 LDOPCTL      R/W   0x0000.0000  LDO Power Control
0x040 SRCR0        R/W    0x00000000  Software Reset Control 0                                        68
0x044 SRCR1        R/W    0x00000000  Software Reset Control 1                                        109
0x048 SRCR2        R/W    0x00000000  Software Reset Control 2                                        110
0x050 RIS           RO   0x0000.0000  Raw Interrupt Status                                            112
0x054 IMC          R/W   0x0000.0000  Interrupt Mask Control                                          69
0x058 MISC        R/W1C  0x0000.0000  Masked Interrupt Status and Clear                               70
0x05C RESC         R/W                Reset Cause                                                     71
0x060 RCC          R/W           -    Run-Mode Clock Configuration                                    72
0x064 PLLCFG        RO   0x07A0.3AD1  XTAL to PLL Translation                                         73
0x070 RCC2         R/W                Run-Mode Clock Configuration 2                                  77
0x100 RCGC0        R/W           -    Run Mode Clock Gating Control Register 0                        78
0x104 RCGC1        R/W   0x0780.2800  Run Mode Clock Gating Control Register 1                        91
0x108 RCGC2        R/W    0x00000040  Run Mode Clock Gating Control Register 2                        97
0x110 SCGC0        R/W    0x00000000  Sleep Mode Clock Gating Control Register 0                      103
0x114 SCGC1        R/W    0x00000000  Sleep Mode Clock Gating Control Register 1                      93
0x118 SCGC2        R/W    0x00000040  Sleep Mode Clock Gating Control Register 2                      99
0x120 DCGC0        R/W    0x00000000  Deep Sleep Mode Clock Gating Control Register 0                 105
0x124 DCGC1        R/W    0x00000000  Deep Sleep Mode Clock Gating Control Register 1                 95
0x128 DCGC2        R/W    0x00000040  Deep Sleep Mode Clock Gating Control Register 2                 101
0x144 DSLPCLKCFG   R/W    0x00000000  Deep Sleep Clock Configuration                                  107
                          0x00000000                                                                  80
                         0x0780.0000

6.4 Register Descriptions

                All addresses given are relative to the System Control base address of 0x400F.E000.

64                                                                         June 14, 2007

                  Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

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

              This register identifies the version of the device.

Device Identification 0 (DID0)

Base 0x400F.E000
Offset 0x000
Type RO, reset -

       31         30  29        28         27  26     25       24  23  22  21  20         19                    18  17          16

       reserved       VER                         reserved                         CLASS

Type RO           RO  RO        RO  RO         RO     RO       RO  RO  RO  RO  RO        RO                     RO  RO          RO

Reset  0          0   0         1          0   0            0  0   0   0   0   0          0                     0   0               1

       15         14  13        12         11  10           9  8   7   6   5   4          3                     2   1               0

                                    MAJOR                                          MINOR

Type RO           RO  RO        RO  RO         RO     RO       RO  RO  RO  RO  RO        RO                     RO  RO          RO

Reset      -      -   -         -          -   -            -  -   -   -   -   -          -                     -   -               -

Bit/Field              Name         Type           Reset       Description
   31                 reserved       RO               0
                                                               Software should not rely on the value of a reserved bit. To provide
30:28                  VER          RO               1        compatibility with future products, the value of a reserved bit should be
                                                               preserved across a read-modify-write operation.

                                                               This field defines the DID0 register format version. The version number
                                                               is numeric. The value of the VER field is encoded as follows:

                                                               Value Description
                                                               1 First revision of the DID0 register format, for Stellaris

                                                                         Fury-class devices.

27:24                 reserved             RO      0           Software should not rely on the value of a reserved bit. To provide
23:16                 CLASS
                                                               compatibility with future products, the value of a reserved bit should be

                                                               preserved across a read-modify-write operation.

                                           RO      1           The CLASS field value identifies the internal design from which all mask

                                                               sets are generated for all devices in a particular product line. The CLASS

                                                               field value is changed for new product lines, for changes in fab process

                                                               (for example, a remap or shrink), or any case where the MAJOR or MINOR

                                                               fields require differentiation from prior devices. The value of the CLASS

                                                               field is encoded as follows (all other encodings are reserved):

                                                               Value Description
                                                               0 Stellaris Sandstorm-class devices.
                                                               1 Stellaris Fury-class devices.

June 14, 2007                                                                                                                          65

                                Luminary Micro Confidential-Advance Product Information
System Control

    Bit/Field    Name  Type  Reset  Description
      15:8      MAJOR   RO      -
                                    This field specifies the major revision number of the device. The major
       7:0      MINOR   RO      -   revision reflects changes to base layers of the design. The major revision
                                    number is indicated in the part number as a letter (A for first revision, B
                                    for second, and so on). This field is encoded as follows:

                                    Value Description
                                    0 Revision A (initial device)
                                    1 Revision B (first base layer revision)
                                    2 Revision C (second base layer revision)

                                    and so on.

                                    This field specifies the minor revision number of the device. The minor
                                    revision reflects changes to the metal layers of the design. The MINOR
                                    field value is reset when the MAJOR field is changed. This field is numeric
                                    and is encoded as follows:

                                    Value Description
                                    0 Initial device, or a major revision update.
                                    1 First metal layer change.
                                    2 Second metal layer change.

                                    and so on.

66                                                                              June 14, 2007

                       Luminary Micro Confidential-Advance Product Information
                                                                                          LM3S8938 Microcontroller

           Register 2: Brown-Out Reset Control (PBORCTL), offset 0x030

           This register is responsible for controlling reset conditions after initial power-on reset.

Brown-Out Reset Control (PBORCTL)

Base 0x400F.E000
Offset 0x030
Type R/W, reset 0x0000.7FFD

       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                                              BORIOR reserved

Type RO        RO            RO  RO  RO    RO  RO     RO       RO           RO  RO  RO    RO  RO        R/W  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:2             reserved           RO          0
    1              BORIOR            R/W          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
    0              reserved           RO          0   preserved across a read-modify-write operation.

                                                      BOR Interrupt or Reset

                                                      This bit controls how a BOR event is signaled to the controller. If set, a
                                                      reset is signaled. Otherwise, an interrupt is signaled.

                                                      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 14, 2007                                                                                                    67

                                 Luminary Micro Confidential-Advance Product Information
System Control

               Register 3: LDO Power Control (LDOPCTL), offset 0x034

               The VADJ field in this register adjusts the on-chip output voltage (VOUT).

LDO Power Control (LDOPCTL)

Base 0x400F.E000
Offset 0x034
Type R/W, 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                                                      VADJ

    Type RO     RO    RO      RO  RO    RO        RO       RO    RO        RO       R/W  R/W  R/W        R/W  R/W  R/W

Reset  0        0     0       0   0            0        0  0            0        0  0    0    0          0    0    0

    Bit/Field        Name         Type            Reset    Description
      31:6          reserved       RO                0
                                                           Software should not rely on the value of a reserved bit. To provide
       5:0            VADJ        R/W              0x0     compatibility with future products, the value of a reserved bit should be
                                                           preserved across a read-modify-write operation.

                                                           This field sets the on-chip output voltage. The programming values for
                                                           the VADJ field are provided in Table 6-2 on page 68.

               Table 6-2. VADJ to VOUT

               VADJ Value VOUT (V) VADJ Value VOUT (V) VADJ Value VOUT (V)

                0x1B      2.75    0x1F            2.55     0x03            2.35

                0x1C      2.70    0x00            2.50     0x04            2.30

                0x1D      2.65    0x01            2.45     0x05            2.25

                0x1E      2.60    0x02            2.40 0x06-0x3F Reserved

68                                                                                                            June 14, 2007

                              Luminary Micro Confidential-Advance Product Information
                                                                                          LM3S8938 Microcontroller

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

           Central location for system control raw interrupts. These are set and cleared by hardware.

Raw Interrupt Status (RIS)

Base 0x400F.E000
Offset 0x050
Type RO, 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                             PLLLRIS         reserved         BORRIS 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

Bit/Field            Name           Type          Reset  Description
  31:7             reserved          RO              0
    6              PLLLRIS           RO              0   Software should not rely on the value of a reserved bit. To provide
   5:2             reserved          RO              0   compatibility with future products, the value of a reserved bit should be
    1              BORRIS            RO              0   preserved across a read-modify-write operation.

    0              reserved          RO              0   PLL Lock Raw Interrupt Status

                                                         This bit is set when the PLL TREADY Timer asserts.

                                                         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.

                                                         Brown-Out Reset Raw Interrupt Status

                                                         This bit is the raw interrupt status for any brown-out conditions. If set,
                                                         a brown-out condition is currently active. This is an unregistered signal
                                                         from the brown-out detection circuit. An interrupt is reported if the BORIM
                                                         bit in the IMC register is set and the BORIOR bit in the PBORCTL register
                                                         is cleared.

                                                         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 14, 2007                                                                                                     69

                                Luminary Micro Confidential-Advance Product Information
System Control

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

               Central location for system control interrupt masks.

Interrupt Mask Control (IMC)

Base 0x400F.E000
Offset 0x054
Type R/W, 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                             PLLLIM         reserved         BORIM reserved

    Type RO     RO           RO  RO  RO        RO  RO     RO  RO          R/W     RO  RO  RO          RO  R/W  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:7          reserved          RO              0
        6           PLLLIM           R/W              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
       5:2          reserved          RO              0   preserved across a read-modify-write operation.
        1           BORIM            R/W              0
                                                          PLL Lock Interrupt Mask
        0           reserved          RO              0
                                                          This bit specifies whether a current limit detection is promoted to a
                                                          controller interrupt. If set, an interrupt is generated if PLLLRIS in RIS
                                                          is set; otherwise, an interrupt is not generated.

                                                          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.

                                                          Brown-Out Reset Interrupt Mask

                                                          This bit specifies whether a brown-out condition is promoted to a
                                                          controller interrupt. If set, an interrupt is generated if BORRIS is set;
                                                          otherwise, an interrupt is not generated.

                                                          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.

70                                                                                                        June 14, 2007

                                 Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

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

           Central location for system control result of RIS AND IMC to generate an interrupt to the controller.
           All of the bits are R/W1C and this action also clears the corresponding raw interrupt bit in the RIS
           register (see page 69).

Masked Interrupt Status and Clear (MISC)

Base 0x400F.E000
Offset 0x058
Type R/W1C, 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                             PLLLMIS         reserved         BORMIS reserved

Type RO        RO  RO          RO  RO        RO  RO     RO  RO R/W1C RO              RO  RO          RO R/W1C 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:7             reserved          RO             0
                                                        Software should not rely on the value of a reserved bit. To provide
    6              PLLLMIS         R/W1C            0   compatibility with future products, the value of a reserved bit should be
                                                        preserved across a read-modify-write operation.
   5:2             reserved          RO             0
                                                        PLL Lock Masked Interrupt Status
    1              BORMIS          R/W1C            0
    0              reserved          RO             0   This bit is set when the PLL TREADY timer asserts. The interrupt is cleared
                                                        by writing a 1 to this bit.

                                                        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.

                                                        The BORMIS is simply the BORRIS ANDed with the mask value, BORIM.

                                                        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 14, 2007                                                                                                    71

                               Luminary Micro Confidential-Advance Product Information
System Control

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

               This register is set with the reset cause after reset. The bits in this register are sticky and maintain
               their state across multiple reset sequences, except when an external reset is the cause, and then
               all the other bits in the RESC register are cleared.

Reset Cause (RESC)

Base 0x400F.E000
Offset 0x05C
Type R/W, reset -

       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                                LDO  SW   WDT  BOR  POR  EXT

    Type RO        RO  RO        RO  RO    RO        RO     RO  RO          RO  R/W  R/W  R/W  R/W  R/W  R/W

Reset  0           0   0         0   0            0  0      0            0  0   -    -    -    -    -    -

    Bit/Field           Name         Type            Reset  Description
      31:6             reserved       RO                0
                                                            Software should not rely on the value of a reserved bit. To provide
        5                LDO         R/W                -   compatibility with future products, the value of a reserved bit should be
                                                            preserved across a read-modify-write operation.
        4                 SW         R/W                -
        3                WDT         R/W                -   When set, indicates the LDO circuit has lost regulation and has
        2                BOR         R/W                -   generated a reset event.
        1                POR         R/W                -
        0                EXT         R/W                -   When set, indicates a software reset is the cause of the reset event.

                                                            When set, indicates a watchdog reset is the cause of the reset event.

                                                            When set, indicates a brown-out reset is the cause of the reset event.

                                                            When set, indicates a power-on reset is the cause of the reset event.

                                                            When set, indicates an external reset (RST assertion) is the cause of
                                                            the reset event.

72                                                                                                  June 14, 2007

                                 Luminary Micro Confidential-Advance Product Information
                                                                                                      LM3S8938 Microcontroller

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

           This register is defined to provide source control and frequency speed.

Run-Mode Clock Configuration (RCC)

Base 0x400F.E000
Offset 0x060
Type R/W, reset 0x07A0.3AD1

       31      30            29      28  27    26       25   24             23   22         21   20   19  18          17   16

                        reserved         ACG               SYSDIV                USESYSDIV               reserved

Type RO        RO            RO      RO  R/W   R/W      R/W  R/W            R/W  R/W        RO   RO   RO  RO          RO   RO

Reset  0             0            0  0   0     1        1          1        1    0          0    0    0            0  0    0

       15      14            13      12  11    10       9          8        7    6          5    4    3            2  1    0

           reserved     PWRDN reserved BYPASS reserved                XTAL                  OSCSRC       reserved     IOSCDIS MOSCDIS

Type RO        RO       R/W          RO  R/W   RO       R/W  R/W            R/W  R/W        R/W  R/W  RO  RO          R/W  R/W

Reset  0             1            1  1   1     0        1          0        1    1          0    1    0            0  0    1

Bit/Field                Name            Type       Reset    Description
31:28                  reserved          RO         0x0
                                                             Software should not rely on the value of a reserved bit. To provide
   27                     ACG            R/W           0     compatibility with future products, the value of a reserved bit should be
                                                             preserved across a read-modify-write operation.

                                                             Auto Clock Gating

                                                             This bit specifies whether the system uses the Sleep-Mode Clock
                                                             Gating Control (SCGCn) registers and Deep-Sleep-Mode Clock
                                                             Gating Control (DCGCn) registers if the controller enters a Sleep or
                                                             Deep-Sleep mode (respectively). If set, the SCGCn or DCGCn registers
                                                             are used to control the clocks distributed to the peripherals when the
                                                             controller is in a sleep mode. Otherwise, the Run-Mode Clock Gating
                                                             Control (RCGCn) registers are used when the controller enters a sleep
                                                             mode.

                                                             The RCGCn registers are always used to control the clocks in Run
                                                             mode.

                                                             This allows peripherals to consume less power when the controller is
                                                             in a sleep mode and the peripheral is unused.

June 14, 2007                                                                                                                  73

                                     Luminary Micro Confidential-Advance Product Information
System Control

    Bit/Field       Name    Type  Reset  Description
     26:23         SYSDIV   R/W    0xF
                                         System Clock Divisor
       22       USESYSDIV   R/W      0
     21:14        reserved   RO      1   Specifies which divisor is used to generate the system clock from the
                  PWRDN     R/W      1   PLL output.
       13         reserved   RO      1
       12                                The PLL VCO frequency is 400 MHz.

                                         Binary Value Divisor (BYPASS=1) Frequency (BYPASS=0)

                                         0000-0010 reserved  reserved

                                         0011         /8     50 MHz

                                         0100         /10    40 MHz

                                         0101         /12    33.33 MHz

                                         0110         /14    28.57 MHz

                                         0111         /16    25 MHz

                                         1000         /18    22.22 MHz

                                         1001         /20    20 MHz

                                         1010         /22    18.18 MHz

                                         1011         /24    16.67 MHz

                                         1100         /26    15.38 MHz

                                         1101         /28    14.29 MHz

                                         1110         /30    13.33 MHz

                                         1111         /32    12.5 MHz (default)

                                         When reading the Run-Mode Clock Configuration (RCC) register (see
                                         page 73), the SYSDIV value is MINSYSDIV if a lower divider was
                                         requested and the PLL is being used. This lower value is allowed to
                                         divide a non-PLL source.

                                         Use the system clock divider as the source for the system clock. The
                                         system clock divider is forced to be used when the PLL is selected as
                                         the source.

                                         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.

                                         PLL Power Down

                                         This bit connects to the PLL PWRDN input. The reset value of 1 powers
                                         down the PLL.

                                         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.

74                                                                       June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                                       LM3S8938 Microcontroller

Bit/Field        Name          Type  Reset  Description
   11          BYPASS          R/W      1
                                            PLL Bypass
   10          reserved         RO      0
   9:6           XTAL          R/W    0xB   Chooses whether the system clock is derived from the PLL output or
   5:4                         R/W    0x1   the OSC source. If set, the clock that drives the system is the OSC
               OSCSRC                       source. Otherwise, the clock that drives the system is the PLL output
                                            clock divided by the system divider.

                                            Note:  The ADC must be clocked from the PLL or directly from a
                                                   14-MHz to 18-MHz clock source to operate properly. While
                                                   the ADC works in a 14-18 MHz range, to maintain a 1 M
                                                   sample/second rate, the ADC must be provided a 16-MHz
                                                   clock source.

                                            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.

                                            This field specifies the crystal value attached to the main oscillator. The
                                            encoding for this field is provided in Table 6-3 on page 75.

                                            Picks among the four input sources for the OSC. The values are:

                                            Value Input Source
                                            00 Main oscillator (default)
                                            01 Internal oscillator (default)
                                            10 Internal oscillator / 4 (this is necessary if used as input to PLL)
                                            11 reserved

3:2            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.

1              IOSCDIS         R/W   0      Internal Oscillator (IOSC) Disable

                                            0: Internal oscillator is enabled.

                                            1: Internal oscillator is disabled.

0              MOSCDIS         R/W   1      Main Oscillator Disable

                                            0: Main oscillator is enabled.

                                            1: Main oscillator is disabled (default).

           Table 6-3. Default Crystal Field Values and PLL Programming

           Crystal Number (XTAL Binary Value) Crystal Frequency (MHz) Not Using Crystal Frequency (MHz) Using the PLL
                                                               the PLL

                         0000               1.000                           reserved

                         0001               1.8432                          reserved

                         0010               2.000                           reserved

                         0011               2.4576                          reserved

                         0100                            3.579545 MHz

                         0101                                        3.6864 MHz

                         0110                                        4 MHz

                         0111                                        4.096 MHz

June 14, 2007                                                                                                    75

                         Luminary Micro Confidential-Advance Product Information
System Control

    Crystal Number (XTAL Binary Value) Crystal Frequency (MHz) Not Using Crystal Frequency (MHz) Using the PLL
                                                        the PLL

                1000  4.9152 MHz

                1001  5 MHz

                1010  5.12 MHz

                1011  6 MHz (reset value)

                1100  6.144 MHz

                1101  7.3728 MHz

                1110  8 MHz

                1111  8.192 MHz

76                                                                       June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

              Register 9: XTAL to PLL Translation (PLLCFG), offset 0x064

              This register provides a means of translating external crystal frequencies into the appropriate PLL
              settings. This register is initialized during the reset sequence and updated anytime that the XTAL
              field changes in the Run-Mode Clock Configuration (RCC) register (see page 73).

              The PLL frequency is calculated using the PLLCFG field values, as follows:

              PLLFreq = OSCFreq * F / (R + 1)

XTAL to PLL Translation (PLLCFG)

Base 0x400F.E000
Offset 0x064
Type RO, reset -

       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

              OD                              F                                              R

Type RO           RO  RO        RO  RO    RO  RO     RO  RO          RO  RO  RO          RO  RO  RO  RO

Reset      -      -   -         -   -     -   -      -            -  -   -   -           -   -   -   -

Bit/Field              Name         Type      Reset  Description
31:16                reserved       RO          0
                                                     Software should not rely on the value of a reserved bit. To provide
15:14                   OD          RO          -   compatibility with future products, the value of a reserved bit should be
  13:5                    F          RO          -   preserved across a read-modify-write operation.
   4:0                    R          RO          -
                                                     This field specifies the value supplied to the PLL's OD input.

                                                     This field specifies the value supplied to the PLL's F input.

                                                     This field specifies the value supplied to the PLL's R input.

June 14, 2007                                                                                            77

                                Luminary Micro Confidential-Advance Product Information
System Control

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

               This register overrides the RCC equivalent register fields when the USERCC2 bit is set. This allows
               RCC2 to be used to extend the capabilities, while also providing a means to be backward-compatible
               to previous parts. The fields within the RCC2 register occupy the same bit positions as they do
               within the RCC register as LSB-justified.

               The SYSDIV2 field is wider so that additional larger divisors are possible. This allows a lower system
               clock frequency for improved Deep Sleep power consumption.

Run-Mode Clock Configuration 2 (RCC2)

Base 0x400F.E000
Offset 0x070
Type R/W, reset 0x0780.2800

       31       30          29           28   27     26   25     24        23   22   21       20   19        18  17          16

       USERCC2              reserved                 SYSDIV2                                       reserved

    Type R/W    RO          RO           R/W  R/W    R/W  R/W    R/W       R/W  RO   RO       RO   RO        RO  RO          RO

Reset  0                 0            0  0    0      1    1             1  1    0    0        0    0         0            0  0

       15       14          13           12   11     10   9             8  7    6    5        4    3         2            1  0

               reserved     PWRDN2 reserved BYPASS2           reserved               OSCSRC2                    reserved

    Type RO     RO          R/W          RO   R/W    RO   RO     RO        RO   R/W  R/W      R/W  RO        RO  RO          RO

Reset  0                 0            1  0    1      0    0             0  0    0    0        0    0         0            0  0

    Bit/Field                  Name           Type        Reset  Description
       31                   USERCC2           R/W            0
                             reserved          RO            0   When set, overrides the RCC register fields.
     30:29                  SYSDIV2           R/W
     28:23                                                0x0F   Software should not rely on the value of a reserved bit. To provide
                             reserved          RO                compatibility with future products, the value of a reserved bit should be
     22:14                  PWRDN2            R/W            0   preserved across a read-modify-write operation.
       13                    reserved          RO            1
       12                   BYPASS2           R/W            0   System Clock Divisor (6-bit)
       11                    reserved          RO            1
      10:7                                                   0   Specifies which divisor is used to generate the system clock from the
                                                                 PLL output.

                                                                 The PLL VCO frequency is 400 MHz.

                                                                 This field is wider than the RCC register SYSDIV field in order to provide
                                                                 additional divisor values. This permits the system clock to be run at
                                                                 much lower frequencies during Deep Sleep mode. For example, where
                                                                 the RCC register SYSDIV encoding of 111 provides /16, the RCC2
                                                                 register SYSDIV2 encoding of 111111 provides /64.

                                                                 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.

                                                                 When set, powers down the PLL.

                                                                 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.

                                                                 When set, bypasses the PLL for the clock source.

                                                                 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.

78                                                                                                               June 14, 2007

                                         Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

Bit/Field         Name    Type  Reset  Description
   6:4         OSCSRC2    R/W      0
                                       System Clock Source
   3:0          reserved   RO
                                       Name Value Description
                                       MOSC 0 Main oscillator
                                       IOSC 1 Internal oscillator
                                       IOSC/4 2 Internal oscillator / 4
                                       30kHz 3 30 kHz internal oscillator
                                       32kHz 7 32 kHz external oscillator

                                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.

June 14, 2007                                                                                               79

               Luminary Micro Confidential-Advance Product Information
System Control

               Register 11: Deep Sleep Clock Configuration (DSLPCLKCFG), offset 0x144

               This register provides configuration information for the hardware control of Deep Sleep Mode.

Deep Sleep Clock Configuration (DSLPCLKCFG)

Base 0x400F.E000
Offset 0x144
Type R/W, reset 0x0780.0000

         31     30           29    28   27        26      25  24    23     22   21        20   19              18  17          16

               reserved                           DSDIVORIDE                                   reserved

    Type RO     RO           RO    R/W  R/W       R/W  R/W    R/W   R/W    RO   RO        RO   RO              RO  RO          RO

Reset    0      0            0     0    0         1       1   1     1      0    0         0    0               0            0      0

         15     14           13    12   11        10      9   8     7      6    5         4    3               2            1      0

                                        reserved                                DSOSCSRC                          reserved

    Type RO     RO           RO    RO   RO        RO      RO  RO    RO     R/W  R/W       R/W  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:29            reserved           RO               0
                                                              Software should not rely on the value of a reserved bit. To provide
     28:23         DSDIVORIDE           R/W            0x0F   compatibility with future products, the value of a reserved bit should be
      22:7            reserved           RO               0   preserved across a read-modify-write operation.

       6:4         DSOSCSRC             R/W               0   6-bit system divider field to override when Deep-Sleep occurs with PLL
                                                              running.

                                                              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.

                                                              When set, forces IOSC to be clock source during Deep Sleep mode.

                                                              Name Value Description

                                                              NOORIDE 0 No override to the oscillator clock source is done

                                                              IOSC         1 Use internal 12 MHz oscillator as source

                                                              30kHz 3 Use 30 kHz internal oscillator

                                                              32kHz 7 Use 32 kHz external oscillator

    3:0                  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.

80                                                                                                                 June 14, 2007

                                   Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

           Register 12: Device Identification 1 (DID1), offset 0x004

           This register identifies the device family, part number, temperature range, pin count, and package
           type.

Device Identification 1 (DID1)

Base 0x400F.E000
Offset 0x004
Type RO, reset -

       31         30       29   28  27    26        25   24      23   22      21  20       19   18    17                     16

                      VER                     FAM                                    PARTNO

Type RO           RO       RO   RO  RO    RO        RO   RO      RO   RO      RO  RO       RO   RO    RO                     RO

Reset  0          0        0    1   0     0         0    0       1    0       0   0          1  0     0                      0

       15         14       13   12  11    10        9    8       7    6       5   4          3  2     1                      0

           PINCOUNT                       reserved                    TEMP            PKG       ROHS      QUAL

Type RO           RO       RO   RO  RO    RO        RO   RO      RO   RO      RO  RO       RO   RO    RO                     RO

Reset  0          1        0    0   0     0         0    0       0    0       1   0          1  1     -                      -

Bit/Field             Name          Type      Reset      Description
31:28                VER            RO        0x1
                                                         This field defines the DID1 register format version. The version number
                                                         is numeric. The value of the VER field is encoded as follows (all other
                                                         encodings are reserved):

                                                         Value Description
                                                         0x1 First revision of the DID1 register format, indicating a Stellaris

                                                                   LM3Snnnn device.

27:24                 FAM           RO              0x0  Family

                                                         This field provides the family identification of the device within the
                                                         Luminary Micro product portfolio. The value is encoded as follows (all
                                                         other encodings are reserved):

                                                         Value Description

                                                         0x0 Stellaris family of microcontollers, that is, all devices with
                                                                  external part numbers starting with LM3S.

23:16                 PARTNO        RO              0x88 Part Number

                                                         This field provides the part number of the device within the family. The
                                                         value is encoded as follows (all other encodings are reserved):

                                                         Value Description
                                                         0x88 LM3S8938

15:13                 PINCOUNT      RO              0x2  Package Pin Count

                                                         This field specifies the number of pins on the device package. The value
                                                         is encoded as follows (all other encodings are reserved):

                                                         Value Description
                                                         0x2 100-pin package

June 14, 2007                                                                                                                    81

                                Luminary Micro Confidential-Advance Product Information
System Control

    Bit/Field    Name     Type  Reset  Description
      12:8      reserved   RO      0
       7:5                 RO          Software should not rely on the value of a reserved bit. To provide
                 TEMP            0x1   compatibility with future products, the value of a reserved bit should be
       4:3                 RO          preserved across a read-modify-write operation.
                  PKG
        2                  RO          Temperature Range
       1:0       ROHS      RO          This field specifies the temperature rating of the device. The value is
                 QUAL                  encoded as follows (all other encodings are reserved):

                                       Value Description
                                       0x1 Industrial temperature range (-40C to 85C)

                                0x1    Package Type

                                       This field specifies the package type. The value is encoded as follows
                                       (all other encodings are reserved):

                                       Value Description
                                       0x1 LQFP package

                                1      RoHS-Compliance

                                       This bit specifies whether the device is RoHS-compliant. A 1 indicates
                                       the part is RoHS-compliant.

                                -      Qualification Status

                                       This field specifies the qualification status of the device. The value is
                                       encoded as follows (all other encodings are reserved):

                                       Value Description
                                       0x0 Engineering Sample (unqualified)
                                       0x1 Pilot Production (unqualified)
                                       0x2 Fully Qualified

82                                                                                 June 14, 2007

                          Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

           Register 13: Device Capabilities 0 (DC0), offset 0x008

           This register is predefined by the part and can be used to verify features.

Device Capabilities 0 (DC0)

Base 0x400F.E000
Offset 0x008
Type RO, reset 0x00FF.007F

       31      30           29  28  27    26  25      24  23        22  21       20      19            18  17  16

                                                         SRAMSZ

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          1  1         1  1       1             1   1   1

       15      14           13  12  11    10  9       8          7  6         5  4       3             2   1   0

                                                      FLASHSZ

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  1         1  1       1             1   1   1

Bit/Field            Name           Type       Reset  Description
31:16             SRAMSZ            RO       0x00FF  SRAM Size
                                                      Indicates the size of the on-chip SRAM memory.
                                                      Value Description
                                                      0x00FF 64 KB of SRAM

15:0               FLASHSZ          RO        0x007F Flash Size

                                                      Indicates the size of the on-chip flash memory.

                                                      Value Description
                                                      0x007F 256 KB of Flash

June 14, 2007                                                                                                      83

                                Luminary Micro Confidential-Advance Product Information
System Control

               Register 14: Device Capabilities 1 (DC1), offset 0x010

               This register is predefined by the part and can be used to verify features. The PWM, SARADC0,
               MAXADCSPD, WDT, SWO, SWD, and JTAG bits mask the RCGC0, SCGC0, and DCGC0 registers.
               Other bits are passed as 0. MAXADCSPD is clipped to the maximum value specified in DC1.

Device Capabilities 1 (DC1)

Base 0x400F.E000
Offset 0x010
Type RO, reset 0x0101.33FF

          31    30  29         28       27    26     25    24       23  22        21  20        19    18  17              16
                                                         CAN0
                              reserved                              RO                reserved        RO              SARADC0
                                                          RO         0                                 0
    Type RO     RO  RO         RO       RO    RO     RO     1        7  RO        RO  RO        RO     2  RO              RO
                                                            8      MPU                               SWO
Reset     0     0          0   0        0     0      0              RO  0         0   0         0     RO  0               1
                                                          RO         1                                 1
          15    14  13         12       11    10     9      1           6         5   4           3         1           0

                   SYSDIV                     MAXADCSPD                 HIB TEMPSNS PLL         WDT       SWD         JTAG

    Type RO     RO  RO         RO       RO    RO     RO                 RO        RO  RO         RO        RO          RO
                                                                                                  1         1           1
Reset     0     0          1   1        0     0      1                  1         1   1

    Bit/Field          Name             Type      Reset  Description
     31:25           reserved            RO          0
                                                         Software should not rely on the value of a reserved bit. To provide
       24              CAN0              RO          1   compatibility with future products, the value of a reserved bit should be
     23:17           reserved            RO          0   preserved across a read-modify-write operation.

       16           SARADC0              RO          1   When set, indicates that CAN unit 0 is present.
     15:12           SYSDIV              RO        0x3
                                                         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.

                                                         When set, indicates that general SAR ADC 0 is present.

                                                         Minimum 4-bit divider value for system clock. The reset value is
                                                         hardware-dependent. See the RCC register for how to change the
                                                         system clock divisor using the SYSDIV bit.

                                                         Value Description
                                                         0x3 Specifies a 50-MHz CPU clock with a PLL divider of 4.

    11:8           MAXADCSPD            RO        0x3    This field indicates the maximum rate at which the ADC samples data.

                                                         Value Description
                                                         0x3 1M samples/second

       7            MPU                 RO        1      When set, indicates that the Cortex-M3 Memory Protection Unit (MPU)

                                                         module is present. See the ARM Cortex-M3 Technical Reference Manual

                                                         for details on the MPU.

       6            HIB                 RO        1      When set, indicates that the Hibernation module is present.

       5            TEMPSNS             RO        1      When set, indicates that the on-chip temperature sensor is present.

       4            PLL                 RO        1      When set, indicates that the on-chip Phase Locked Loop (PLL) is

                                                         present.

84                                                                                                        June 14, 2007

                              Luminary Micro Confidential-Advance Product Information
                                                                              LM3S8938 Microcontroller

Bit/Field      Name  Type  Reset  Description
    3          WDT    RO      1   When set, indicates that a watchdog timer is present.
    2          SWO    RO      1   When set, indicates that the Serial Wire Output (SWO) trace port is
                                  present.
    1          SWD    RO      1   When set, indicates that the Serial Wire Debugger (SWD) is present.
    0          JTAG   RO      1   When set, indicates that the JTAG debugger interface is present.

June 14, 2007                                                                 85

                     Luminary Micro Confidential-Advance Product Information
System Control

               Register 15: Device Capabilities 2 (DC2), offset 0x014

               This register is predefined by the part and can be used to verify features.

Device Capabilities 2 (DC2)

Base 0x400F.E000
Offset 0x014
Type RO, reset 0x070F.5017

       31        30         29   28    27    26  25     24        23  22  21          20    19  18  17  16

                       reserved              COMP2 COMP1 COMP0           reserved         TIMER3 TIMER2 TIMER1 TIMER0

    Type RO      RO         RO   RO    RO    RO  RO     RO        RO  RO  RO          RO    RO  RO  RO  RO

Reset  0         0          0    0     0     1   1      1         0   0            0  0     1   1   1   1

       15         14       13     12   11    10  9      8         7   6            5  4     3   2   1   0

       reserved  I2C1  reserved  I2C0                   reserved                      SSI0 reserved UART2 UART1 UART0

    Type RO      RO       RO     RO    RO    RO  RO     RO        RO  RO  RO          RO    RO  RO  RO  RO
                   1        0      1
Reset  0                               0     0   0      0         0   0            0  1     0   1   1   1

    Bit/Field           Name           Type      Reset  Description
     31:27             reserved         RO          0
                                                        Software should not rely on the value of a reserved bit. To provide
       26              COMP2            RO          1   compatibility with future products, the value of a reserved bit should be
       25              COMP1            RO          1   preserved across a read-modify-write operation.
       24              COMP0            RO          1
     23:20             reserved         RO          0   When set, indicates that analog comparator 2 is present.

       19              TIMER3           RO          1   When set, indicates that analog comparator 1 is present.
       18              TIMER2           RO          1
       17              TIMER1           RO          1   When set, indicates that analog comparator 0 is present.
       16              TIMER0           RO          1
       15              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
       14                I2C1           RO          1   preserved across a read-modify-write operation.
       13              reserved         RO          0
                                                        When set, indicates that General-Purpose Timer module 3 is present.
       12                I2C0           RO          1
      11:5             reserved         RO          0   When set, indicates that General-Purpose Timer module 2 is present.

        4                SSI0           RO          1   When set, indicates that General-Purpose Timer module 1 is present.

                                                        When set, indicates that General-Purpose Timer module 0 is present.

                                                        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.

                                                        When set, indicates that I2C module 1 is present.

                                                        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.

                                                        When set, indicates that I2C module 0 is present.

                                                        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.

                                                        When set, indicates that SSI module 0 is present.

86                                                                                                  June 14, 2007

                                 Luminary Micro Confidential-Advance Product Information
                                                                                  LM3S8938 Microcontroller

Bit/Field       Name     Type  Reset  Description
    3          reserved   RO      0
                                      Software should not rely on the value of a reserved bit. To provide
    2          UART2      RO      1   compatibility with future products, the value of a reserved bit should be
    1          UART1      RO      1   preserved across a read-modify-write operation.
    0          UART0      RO      1
                                      When set, indicates that UART module 2 is present.

                                      When set, indicates that UART module 1 is present.

                                      When set, indicates that UART module 0 is present.

June 14, 2007                                                                     87

                         Luminary Micro Confidential-Advance Product Information
System Control

               Register 16: Device Capabilities 3 (DC3), offset 0x018

               This register is predefined by the part and can be used to verify features.

Device Capabilities 3 (DC3)

Base 0x400F.E000
Offset 0x018
Type RO, reset 0x3FFF.7FC0

       31       30          29        28    27    26    25     24    23    22    21    20        19    18        17    16

               reserved     CCP5 CCP4     CCP3  CCP2  CCP1   CCP0  ADC7  ADC6  ADC5  ADC4      ADC3  ADC2      ADC1  ADC0

    Type RO     RO          RO        RO   RO    RO    RO     RO    RO    RO    RO    RO        RO    RO        RO    RO
                                             1     1     1      1     1     1     1     1         1     1         1     1
Reset  0                 0  1         1

       15       14          13        12  11    10    9      8     7     6     5     4         3            2  1     0

       reserved C2O C2PLUS C2MINUS C1O C1PLUS C1MINUS C0O C0PLUS C0MINUS                          reserved

    Type RO     RO          RO        RO  RO    RO    RO     RO    RO    RO    RO    RO        RO    RO        RO    RO

Reset  0                 1  1         1   1     1     1      1     1     1     0     0         0            0  0     0

    Bit/Field                 Name        Type        Reset  Description
     31:30                  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
       29                     CCP5         RO            1   preserved across a read-modify-write operation.
       28                     CCP4         RO            1   When set, indicates that Capture/Compare/PWM pin 5 is present.
       27                     CCP3         RO            1   When set, indicates that Capture/Compare/PWM pin 4 is present.
       26                     CCP2         RO            1   When set, indicates that Capture/Compare/PWM pin 3 is present.
       25                     CCP1         RO            1   When set, indicates that Capture/Compare/PWM pin 2 is present.
       24                     CCP0         RO            1   When set, indicates that Capture/Compare/PWM pin 1 is present.
       23                     ADC7         RO            1   When set, indicates that Capture/Compare/PWM pin 0 is present.
       22                     ADC6         RO            1   When set, indicates that ADC pin 7 is present.
       21                     ADC5         RO            1   When set, indicates that ADC pin 6 is present.
       20                     ADC4         RO            1   When set, indicates that ADC pin 5 is present.
       19                     ADC3         RO            1   When set, indicates that ADC pin 4 is present.
       18                     ADC2         RO            1   When set, indicates that ADC pin 3 is present.
       17                     ADC1         RO            1   When set, indicates that ADC pin 2 is present.
       16                     ADC0         RO            1   When set, indicates that ADC pin 1 is present.
       15                   reserved       RO            0   When set, indicates that ADC pin 0 is present.
                                                             Software should not rely on the value of a reserved bit. To provide
       14                      C2O         RO            1   compatibility with future products, the value of a reserved bit should be
       13                   C2PLUS         RO            1   preserved across a read-modify-write operation.
       12                   C2MINUS        RO            1   When set, indicates that the analog comparator 2 output pin is present.
                                                             When set, indicates that the analog comparator 2 (+) input pin is present.
                                                             When set, indicates that the analog comparator 2 (-) input pin is present.

88                                                                                                             June 14, 2007

                                      Luminary Micro Confidential-Advance Product Information
                                                                                  LM3S8938 Microcontroller

Bit/Field        Name    Type  Reset  Description
   11             C1O     RO      1   When set, indicates that the analog comparator 1 output pin is present.
   10          C1PLUS     RO      1   When set, indicates that the analog comparator 1 (+) input pin is present.
    9          C1MINUS    RO      1   When set, indicates that the analog comparator 1 (-) input pin is present.
    8             C0O     RO      1   When set, indicates that the analog comparator 0 output pin is present.
    7          C0PLUS     RO      1   When set, indicates that the analog comparator 0 (+) input pin is present.
    6          C0MINUS    RO      1   When set, indicates that the analog comparator 0 (-) input pin is present.
   5:0         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.

June 14, 2007                                                                     89

                         Luminary Micro Confidential-Advance Product Information
System Control

               Register 17: Device Capabilities 4 (DC4), offset 0x01C

               This register is predefined by the part and can be used to verify features.

Device Capabilities 4 (DC4)

Base 0x400F.E000
Offset 0x01C
Type RO, reset 0x5100.007F

       31       30          29  28    27        26        25    24   23  22  21  20         19   18  17  16
                                                              E1588
       reserved EPHY0 reserved EMAC0            reserved                            reserved
                                                                RO
    Type RO     RO          RO  RO    RO        RO        RO     1   RO  RO  RO  RO         RO   RO  RO  RO
                                                                 8
Reset  0        1           0   1     0         0         0          0   0   0   0            0  0   0   0
                                                                RO
       15       14          13  12    11        10        9      0   7   6   5   4            3  2   1   0

                                      reserved                           GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA

    Type RO     RO          RO  RO    RO        RO        RO         RO  RO  RO  RO         RO   RO  RO  RO

Reset  0        0           0   0     0         0         0          0   1   1   1            1  1   1   1

    Bit/Field        Name             Type          Reset     Description
       31           reserved           RO              0
                                                              Software should not rely on the value of a reserved bit. To provide
       30           EPHY0              RO              1      compatibility with future products, the value of a reserved bit should be
       29           reserved           RO              0      preserved across a read-modify-write operation.

       28           EMAC0              RO              1      When set, indicates that Ethernet PHY module 0 is present.
     27:25          reserved           RO              0
                                                              Software should not rely on the value of a reserved bit. To provide
       24            E1588             RO              1      compatibility with future products, the value of a reserved bit should be
      23:7          reserved           RO              0      preserved across a read-modify-write operation.

        6           GPIOG              RO              1      When set, indicates that Ethernet MAC module 0 is present.
        5            GPIOF             RO              1
        4            GPIOE             RO              1      Software should not rely on the value of a reserved bit. To provide
        3            GPIOD             RO              1      compatibility with future products, the value of a reserved bit should be
        2            GPIOC             RO              1      preserved across a read-modify-write operation.
        1            GPIOB             RO              1
        0            GPIOA             RO              1      When set, indicates that that EMAC0 is 1588-capable.

                                                              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.

                                                              When set, indicates that GPIO Port G is present.

                                                              When set, indicates that GPIO Port F is present.

                                                              When set, indicates that GPIO Port E is present.

                                                              When set, indicates that GPIO Port D is present.

                                                              When set, indicates that GPIO Port C is present.

                                                              When set, indicates that GPIO Port B is present.

                                                              When set, indicates that GPIO Port A is present.

90                                                                                                   June 14, 2007

                                Luminary Micro Confidential-Advance Product Information
                                                                                                LM3S8938 Microcontroller

           Register 18: Run Mode Clock Gating Control Register 0 (RCGC0), offset 0x100

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC0 is the
           clock configuration register for running operation, SCGC0 for Sleep operation, and DCGC0 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes.

Run Mode Clock Gating Control Register 0 (RCGC0)

Base 0x400F.E000
Offset 0x100
Type R/W, reset 0x00000040

       31      30           29  28        27    26   25     24    23  22        21  20          19   18  17        16

                                reserved                    CAN0                    reserved                       SARADC0

Type RO        RO           RO  RO        RO    RO   RO     R/W   RO  RO        RO  RO          RO   RO  RO        R/W

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                      MAXADCSPD         reserved HIB     reserved     WDT      reserved

Type RO        RO           RO  RO        R/W   R/W  R/W    R/W   RO  R/W       RO  RO          R/W  RO  RO        RO
                                                                                                  0
Reset  0       0            0   0         0     0    0      0     0   0         0            0       0   0         0

Bit/Field             Name                Type       Reset  Description
31:25              reserved               RO           0
   24                                     R/W           0   Software should not rely on the value of a reserved bit. To provide
23:17                CAN0                 RO           0   compatibility with future products, the value of a reserved bit should be
   16               reserved              R/W           0   preserved across a read-modify-write operation.
                   SARADC0
15:12                                     RO           0   This bit controls the clock gating for CAN unit 0. If set, the unit receives
                    reserved                                a clock and functions. Otherwise, the unit is unclocked and disabled.

                                                            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.

                                                            This bit controls the clock gating for SAR ADC module 0. If set, the unit
                                                            receives a clock and functions. Otherwise, the unit is unclocked and
                                                            disabled. If the unit is unclocked, a read or write to the unit generates
                                                            a bus fault.

                                                            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 14, 2007                                                                                                          91

                                Luminary Micro Confidential-Advance Product Information
System Control

    Bit/Field        Name    Type  Reset  Description
      11:8      MAXADCSPD    R/W      0
                                          This field sets the rate at which the ADC samples data. You cannot set
        7          reserved   RO          the rate higher than the maximum rate. You can set the sample rate by
        6              HIB   R/W          setting the MAXADCSPD bit as follows:
       5:4                    RO
        3          reserved  R/W          Value Description
       2:0            WDT     RO          0x3 1M samples/second
                                          0x2 500K samples/second
                   reserved               0x1 250K samples/second
                                          0x0 125K samples/second

                                   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.

                                   0      This bit controls the clock gating for the Hibernation module. If set, the

                                          unit receives a clock and functions. Otherwise, the unit is unclocked and

                                          disabled.

                                   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.

                                   0      This bit controls the clock gating for the WDT module. If set, the unit

                                          receives a clock and functions. Otherwise, the unit is unclocked and

                                          disabled. If the unit is unclocked, a read or write to the unit generates

                                          a bus fault.

                                   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.

92                                                                                         June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                                               LM3S8938 Microcontroller

           Register 19: Sleep Mode Clock Gating Control Register 0 (SCGC0), offset
           0x110

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC0 is the
           clock configuration register for running operation, SCGC0 for Sleep operation, and DCGC0 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes. bit was changed to

Sleep Mode Clock Gating Control Register 0 (SCGC0)

Base 0x400F.E000
Offset 0x110
Type R/W, reset 0x00000040

       31      30  29          28        27    26   25     24    23  22        21  20          19   18  17        16

                               reserved                    CAN0                    reserved                       SARADC0

Type RO        RO  RO          RO        RO    RO   RO     R/W   RO  RO        RO  RO          RO   RO  RO        R/W

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                     MAXADCSPD         reserved HIB     reserved     WDT      reserved

Type RO        RO  RO          RO        R/W   R/W  R/W    R/W   RO  R/W       RO  RO          R/W  RO  RO        RO
                                                                                                 0
Reset  0       0            0  0         0     0    0      0     0   0         0            0       0   0         0

Bit/Field             Name               Type       Reset  Description
31:25              reserved              RO           0
   24                                    R/W           0   Software should not rely on the value of a reserved bit. To provide
23:17                CAN0                RO           0   compatibility with future products, the value of a reserved bit should be
   16               reserved             R/W           0   preserved across a read-modify-write operation.
                   SARADC0
15:12                                    RO           0   This bit controls the clock gating for CAN unit 0. If set, the unit receives
                    reserved                               a clock and functions. Otherwise, the unit is unclocked and disabled.

                                                           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.

                                                           This bit controls the clock gating for general SAR ADC module 0. If set,
                                                           the unit receives a clock and functions. Otherwise, the unit is unclocked
                                                           and disabled. If the unit is unclocked, a read or write to the unit generates
                                                           a bus fault.

                                                           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 14, 2007                                                                                                         93

                               Luminary Micro Confidential-Advance Product Information
System Control

    Bit/Field        Name    Type  Reset  Description
      11:8      MAXADCSPD    R/W      0
                                          This field sets the rate at which the ADC samples data. You cannot set
        7          reserved   RO          the rate higher than the maximum rate.You can set the sample rate by
        6              HIB   R/W          setting the MAXADCSPD bit as follows:
       5:4                    RO
        3          reserved  R/W          Value Description
       2:0            WDT     RO          0x3 1M samples/second
                                          0x2 500K samples/second
                   reserved               0x1 250K samples/second
                                          0x0 125K samples/second

                                   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.

                                   0      This bit controls the clock gating for the Hibernation module. If set, the

                                          unit receives a clock and functions. Otherwise, the unit is unclocked and

                                          disabled.

                                   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.

                                   0      This bit controls the clock gating for the WDT module. If set, the unit

                                          receives a clock and functions. Otherwise, the unit is unclocked and

                                          disabled. If the unit is unclocked, a read or write to the unit generates

                                          a bus fault.

                                   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.

94                                                                                         June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                                               LM3S8938 Microcontroller

           Register 20: Deep Sleep Mode Clock Gating Control Register 0 (DCGC0),
           offset 0x120

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC0 is the
           clock configuration register for running operation, SCGC0 for Sleep operation, and DCGC0 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes. bit was changed to

Deep Sleep Mode Clock Gating Control Register 0 (DCGC0)

Base 0x400F.E000
Offset 0x120
Type R/W, reset 0x00000040

       31      30  29          28        27    26   25     24    23  22        21  20          19   18  17        16

                               reserved                    CAN0                    reserved                       SARADC0

Type RO        RO  RO          RO        RO    RO   RO     R/W   RO  RO        RO  RO          RO   RO  RO        R/W

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                     MAXADCSPD         reserved HIB     reserved     WDT      reserved

Type RO        RO  RO          RO        R/W   R/W  R/W    R/W   RO  R/W       RO  RO          R/W  RO  RO        RO
                                                                                                 0
Reset  0       0            0  0         0     0    0      0     0   0         0            0       0   0         0

Bit/Field             Name               Type       Reset  Description
31:25              reserved              RO           0
   24                                    R/W           0   Software should not rely on the value of a reserved bit. To provide
23:17                CAN0                RO           0   compatibility with future products, the value of a reserved bit should be
   16               reserved             R/W           0   preserved across a read-modify-write operation.
                   SARADC0
15:12                                    RO           0   This bit controls the clock gating for CAN unit 0. If set, the unit receives
                    reserved                               a clock and functions. Otherwise, the unit is unclocked and disabled.

                                                           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.

                                                           This bit controls the clock gating for general SAR ADC module 0. If set,
                                                           the unit receives a clock and functions. Otherwise, the unit is unclocked
                                                           and disabled. If the unit is unclocked, a read or write to the unit generates
                                                           a bus fault.

                                                           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 14, 2007                                                                                                         95

                               Luminary Micro Confidential-Advance Product Information
System Control

    Bit/Field        Name    Type  Reset  Description
      11:8      MAXADCSPD    R/W      0
                                          This field sets the rate at which the ADC samples data. You cannot set
        7          reserved   RO          the rate higher than the maximum rate. You can set the sample rate by
        6              HIB   R/W          setting the MAXADCSPD bit as follows:
       5:4                    RO
        3          reserved  R/W          Value Description
       2:0            WDT     RO          0x3 1M samples/second
                                          0x2 500K samples/second
                   reserved               0x1 250K samples/second
                                          0x0 125K samples/second

                                   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.

                                   0      This bit controls the clock gating for the Hibernation module. If set, the

                                          unit receives a clock and functions. Otherwise, the unit is unclocked and

                                          disabled.

                                   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.

                                   0      This bit controls the clock gating for the WDT module. If set, the unit

                                          receives a clock and functions. Otherwise, the unit is unclocked and

                                          disabled. If the unit is unclocked, a read or write to the unit generates

                                          a bus fault.

                                   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.

96                                                                                         June 14, 2007

                Luminary Micro Confidential-Advance Product Information
                                                                                          LM3S8938 Microcontroller

           Register 21: Run Mode Clock Gating Control Register 1 (RCGC1), offset 0x104

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC1 is the
           clock configuration register for running operation, SCGC1 for Sleep operation, and DCGC1 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes.

Run Mode Clock Gating Control Register 1 (RCGC1)

Base 0x400F.E000
Offset 0x104
Type R/W, reset 0x00000000

       31      30           29  28   27    26     25   24        23  22  21          20   19   18   17   16

                    reserved               COMP2 COMP1 COMP0            reserved          TIMER3 TIMER2 TIMER1 TIMER0

Type RO        RO           RO  RO   RO    R/W  R/W    R/W       RO  RO  RO          RO   R/W  R/W  R/W  R/W

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 I2C1 reserved I2C0                     reserved                      SSI0 reserved UART2 UART1 UART0

Type RO        R/W          RO  R/W  RO    RO   RO     RO        RO  RO  RO          R/W  RO   R/W  R/W  R/W

Reset  0       0            0   0    0     0      0    0         0   0            0  0    0    0    0    0

Bit/Field            Name            Type       Reset  Description
31:27              reserved          RO           0
   26               COMP2            R/W           0   Software should not rely on the value of a reserved bit. To provide
   25               COMP1            R/W           0   compatibility with future products, the value of a reserved bit should be
   24               COMP0            R/W           0   preserved across a read-modify-write operation.
23:20              reserved          RO           0
   19               TIMER3           R/W           0   This bit controls the clock gating for analog comparator 2. If set, the unit
                                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                       a bus fault.

                                                       This bit controls the clock gating for analog comparator 1. If set, the unit
                                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                       a bus fault.

                                                       This bit controls the clock gating for analog comparator 0. If set, the unit
                                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                       a bus fault.

                                                       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.

                                                       This bit controls the clock gating for General-Purpose Timer module 3.
                                                       If set, the unit receives a clock and functions. Otherwise, the unit is
                                                       unclocked and disabled. If the unit is unclocked, reads or writes to the
                                                       unit will generate a bus fault.

June 14, 2007                                                                                                97

                                Luminary Micro Confidential-Advance Product Information
System Control

    Bit/Field    Name     Type  Reset  Description
       18       TIMER2    R/W      0
       17       TIMER1    R/W      0   This bit controls the clock gating for General-Purpose Timer module 2.
       16       TIMER0    R/W      0   If set, the unit receives a clock and functions. Otherwise, the unit is
       15       reserved   RO      0   unclocked and disabled. If the unit is unclocked, reads or writes to the
       14                 R/W      0   unit will generate a bus fault.
       13         I2C1     RO      0
       12       reserved  R/W      0   This bit controls the clock gating for General-Purpose Timer module 1.
      11:5                 RO      0   If set, the unit receives a clock and functions. Otherwise, the unit is
        4         I2C0    R/W      0   unclocked and disabled. If the unit is unclocked, reads or writes to the
        3       reserved   RO      0   unit will generate a bus fault.
        2                 R/W      0
        1         SSI0    R/W      0   This bit controls the clock gating for General-Purpose Timer module 0.
        0       reserved  R/W      0   If set, the unit receives a clock and functions. Otherwise, the unit is
                UART2                  unclocked and disabled. If the unit is unclocked, reads or writes to the
                UART1                  unit will generate a bus fault.
                UART0
                                       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.

                                       This bit controls the clock gating for I2C module 1. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for I2C module 0. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for SSI module 0. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for UART module 2. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

                                       This bit controls the clock gating for UART module 1. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

                                       This bit controls the clock gating for UART module 0. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

98                                                                                 June 14, 2007

                          Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

           Register 22: Sleep Mode Clock Gating Control Register 1 (SCGC1), offset
           0x114

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC1 is the
           clock configuration register for running operation, SCGC1 for Sleep operation, and DCGC1 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes.

Sleep Mode Clock Gating Control Register 1 (SCGC1)

Base 0x400F.E000
Offset 0x114
Type R/W, reset 0x00000000

       31      30   29        28    27    26   25     24        23  22  21          20   19   18   17   16

                    reserved              COMP2 COMP1 COMP0            reserved          TIMER3 TIMER2 TIMER1 TIMER0

Type RO        RO   RO        RO    RO    R/W  R/W    R/W       RO  RO  RO          RO   R/W  R/W  R/W  R/W

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 I2C1 reserved I2C0                    reserved                      SSI0 reserved UART2 UART1 UART0

Type RO        R/W  RO        R/W   RO    RO   RO     RO        RO  RO  RO          R/W  RO   R/W  R/W  R/W

Reset  0       0    0         0     0     0    0      0         0   0            0  0    0    0    0    0

Bit/Field            Name           Type       Reset  Description
31:27              reserved         RO           0
   26               COMP2           R/W           0   Software should not rely on the value of a reserved bit. To provide
   25               COMP1           R/W           0   compatibility with future products, the value of a reserved bit should be
   24               COMP0           R/W           0   preserved across a read-modify-write operation.
23:20              reserved         RO           0
   19               TIMER3          R/W           0   This bit controls the clock gating for analog comparator 2. If set, the unit
                                                      receives a clock and functions. Otherwise, the unit is unclocked and
                                                      disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                      a bus fault.

                                                      This bit controls the clock gating for analog comparator 1. If set, the unit
                                                      receives a clock and functions. Otherwise, the unit is unclocked and
                                                      disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                      a bus fault.

                                                      This bit controls the clock gating for analog comparator 0. If set, the unit
                                                      receives a clock and functions. Otherwise, the unit is unclocked and
                                                      disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                      a bus fault.

                                                      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.

                                                      This bit controls the clock gating for General-Purpose Timer module 3.
                                                      If set, the unit receives a clock and functions. Otherwise, the unit is
                                                      unclocked and disabled. If the unit is unclocked, reads or writes to the
                                                      unit will generate a bus fault.

June 14, 2007                                                                                               99

                              Luminary Micro Confidential-Advance Product Information
System Control

Bit/Field        Name     Type  Reset  Description
   18           TIMER2    R/W      0
   17           TIMER1    R/W      0   This bit controls the clock gating for General-Purpose Timer module 2.
   16           TIMER0    R/W      0   If set, the unit receives a clock and functions. Otherwise, the unit is
   15           reserved   RO      0   unclocked and disabled. If the unit is unclocked, reads or writes to the
   14                     R/W      0   unit will generate a bus fault.
   13             I2C1     RO      0
   12           reserved  R/W      0   This bit controls the clock gating for General-Purpose Timer module 1.
  11:5                     RO      0   If set, the unit receives a clock and functions. Otherwise, the unit is
    4             I2C0    R/W      0   unclocked and disabled. If the unit is unclocked, reads or writes to the
    3           reserved   RO      0   unit will generate a bus fault.
    2                     R/W      0
    1             SSI0    R/W      0   This bit controls the clock gating for General-Purpose Timer module 0.
    0           reserved  R/W      0   If set, the unit receives a clock and functions. Otherwise, the unit is
                UART2                  unclocked and disabled. If the unit is unclocked, reads or writes to the
                UART1                  unit will generate a bus fault.
                UART0
                                       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.

                                       This bit controls the clock gating for I2C module 1. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for I2C module 0. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for SSI module 0. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for UART module 2. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

                                       This bit controls the clock gating for UART module 1. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

                                       This bit controls the clock gating for UART module 0. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

100                                                                                June 14, 2007

                          Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

           Register 23: Deep Sleep Mode Clock Gating Control Register 1 (DCGC1),
           offset 0x124

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC1 is the
           clock configuration register for running operation, SCGC1 for Sleep operation, and DCGC1 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes.

Deep Sleep Mode Clock Gating Control Register 1 (DCGC1)

Base 0x400F.E000
Offset 0x124
Type R/W, reset 0x00000000

       31      30   29        28    27    26   25     24        23  22  21          20   19   18   17   16

                    reserved              COMP2 COMP1 COMP0            reserved          TIMER3 TIMER2 TIMER1 TIMER0

Type RO        RO   RO        RO    RO    R/W  R/W    R/W       RO  RO  RO          RO   R/W  R/W  R/W  R/W

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 I2C1 reserved I2C0                    reserved                      SSI0 reserved UART2 UART1 UART0

Type RO        R/W  RO        R/W   RO    RO   RO     RO        RO  RO  RO          R/W  RO   R/W  R/W  R/W

Reset  0       0    0         0     0     0    0         0      0   0            0  0    0    0    0    0

Bit/Field            Name           Type       Reset  Description
31:27              reserved         RO           0
   26               COMP2           R/W           0   Software should not rely on the value of a reserved bit. To provide
   25               COMP1           R/W           0   compatibility with future products, the value of a reserved bit should be
   24               COMP0           R/W           0   preserved across a read-modify-write operation.
23:20              reserved         RO           0
   19               TIMER3          R/W           0   This bit controls the clock gating for analog comparator 2. If set, the unit
                                                      receives a clock and functions. Otherwise, the unit is unclocked and
                                                      disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                      a bus fault.

                                                      This bit controls the clock gating for analog comparator 1. If set, the unit
                                                      receives a clock and functions. Otherwise, the unit is unclocked and
                                                      disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                      a bus fault.

                                                      This bit controls the clock gating for analog comparator 0. If set, the unit
                                                      receives a clock and functions. Otherwise, the unit is unclocked and
                                                      disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                      a bus fault.

                                                      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.

                                                      This bit controls the clock gating for General-Purpose Timer module 3.
                                                      If set, the unit receives a clock and functions. Otherwise, the unit is
                                                      unclocked and disabled. If the unit is unclocked, reads or writes to the
                                                      unit will generate a bus fault.

June 14, 2007                                                                                           101

                              Luminary Micro Confidential-Advance Product Information
System Control

Bit/Field        Name     Type  Reset  Description
   18           TIMER2    R/W      0
   17           TIMER1    R/W      0   This bit controls the clock gating for General-Purpose Timer module 2.
   16           TIMER0    R/W      0   If set, the unit receives a clock and functions. Otherwise, the unit is
   15           reserved   RO      0   unclocked and disabled. If the unit is unclocked, reads or writes to the
   14                     R/W      0   unit will generate a bus fault.
   13             I2C1     RO      0
   12           reserved  R/W      0   This bit controls the clock gating for General-Purpose Timer module 1.
  11:5                     RO      0   If set, the unit receives a clock and functions. Otherwise, the unit is
    4             I2C0    R/W      0   unclocked and disabled. If the unit is unclocked, reads or writes to the
    3           reserved   RO      0   unit will generate a bus fault.
    2                     R/W      0
    1             SSI0    R/W      0   This bit controls the clock gating for General-Purpose Timer module 0.
    0           reserved  R/W      0   If set, the unit receives a clock and functions. Otherwise, the unit is
                UART2                  unclocked and disabled. If the unit is unclocked, reads or writes to the
                UART1                  unit will generate a bus fault.
                UART0
                                       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.

                                       This bit controls the clock gating for I2C module 1. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for I2C module 0. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for SSI module 0. If set, the unit receives
                                       a clock and functions. Otherwise, the unit is unclocked and disabled. If
                                       the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                       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.

                                       This bit controls the clock gating for UART module 2. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

                                       This bit controls the clock gating for UART module 1. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

                                       This bit controls the clock gating for UART module 0. If set, the unit
                                       receives a clock and functions. Otherwise, the unit is unclocked and
                                       disabled. If the unit is unclocked, reads or writes to the unit will generate
                                       a bus fault.

102                                                                                June 14, 2007

                          Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

           Register 24: Run Mode Clock Gating Control Register 2 (RCGC2), offset 0x108

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC2 is the
           clock configuration register for running operation, SCGC2 for Sleep operation, and DCGC2 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes.

Run Mode Clock Gating Control Register 2 (RCGC2)

Base 0x400F.E000
Offset 0x108
Type R/W, reset 0x00000000

       31      30           29  28    27        26  25     24  23  22   21         20    19   18   17   16

       reserved EPHY0 reserved EMAC0                                  reserved

Type RO        R/W          RO  R/W   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                     GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA

Type RO        RO           RO  RO    RO        RO  RO     RO  RO  R/W  R/W        R/W   R/W  R/W  R/W  R/W

Reset  0       0            0   0     0         0   0      0   0   0            0  0     0    0    0    0

Bit/Field            Name             Type          Reset  Description
   31               reserved           RO              0
   30               EPHY0             R/W              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
   29               reserved           RO              0   preserved across a read-modify-write operation.
   28               EMAC0             R/W              0
                                                           This bit controls the clock gating for Ethernet PHY unit 0. If set, the unit
  27:7              reserved           RO              0   receives a clock and functions. Otherwise, the unit is unclocked and
    6               GPIOG             R/W              0   disabled. If the unit is unclocked, reads or writes to the unit will generate
    5                GPIOF            R/W              0   a bus fault.

                                                           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.

                                                           This bit controls the clock gating for Ethernet MAC unit 0. If set, the unit
                                                           receives a clock and functions. Otherwise, the unit is unclocked and
                                                           disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                           a bus fault.

                                                           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.

                                                           This bit controls the clock gating for Port G. If set, the unit receives a
                                                           clock and functions. Otherwise, the unit is unclocked and disabled. If
                                                           the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                                           This bit controls the clock gating for Port F. If set, the unit receives a
                                                           clock and functions. Otherwise, the unit is unclocked and disabled. If
                                                           the unit is unclocked, reads or writes to the unit will generate a bus fault.

June 14, 2007                                                                                           103

                                Luminary Micro Confidential-Advance Product Information
System Control

Bit/Field       Name   Type  Reset  Description
    4           GPIOE  R/W      0
    3           GPIOD  R/W      0   This bit controls the clock gating for Port E. If set, the unit receives a
    2           GPIOC  R/W      0   clock and functions. Otherwise, the unit is unclocked and disabled. If
    1           GPIOB  R/W      0   the unit is unclocked, reads or writes to the unit will generate a bus fault.
    0           GPIOA  R/W      0
                                    This bit controls the clock gating for Port D. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port C. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port B. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port A. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

104                                                                             June 14, 2007

                       Luminary Micro Confidential-Advance Product Information
                                                                                        LM3S8938 Microcontroller

           Register 25: Sleep Mode Clock Gating Control Register 2 (SCGC2), offset
           0x118

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC2 is the
           clock configuration register for running operation, SCGC2 for Sleep operation, and DCGC2 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes.

Sleep Mode Clock Gating Control Register 2 (SCGC2)

Base 0x400F.E000
Offset 0x118
Type R/W, reset 0x00000000

       31      30   29        28      27        26  25     24  23  22   21         20   19   18   17   16

       reserved EPHY0 reserved EMAC0                                  reserved

Type RO        R/W  RO        R/W     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                     GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA

Type RO        RO   RO        RO      RO        RO  RO     RO  RO  R/W  R/W        R/W  R/W  R/W  R/W  R/W

Reset  0       0    0         0       0         0   0      0   0   0            0  0    0    0    0    0

Bit/Field            Name             Type          Reset  Description
   31               reserved           RO              0
   30               EPHY0             R/W              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
   29               reserved           RO              0   preserved across a read-modify-write operation.
   28               EMAC0             R/W              0
                                                           This bit controls the clock gating for Ethernet PHY unit 0. If set, the unit
  27:7              reserved           RO              0   receives a clock and functions. Otherwise, the unit is unclocked and
    6               GPIOG             R/W              0   disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                           a bus fault.

                                                           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.

                                                           This bit controls the clock gating for Ethernet MAC unit 0. If set, the unit
                                                           receives a clock and functions. Otherwise, the unit is unclocked and
                                                           disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                           a bus fault.

                                                           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.

                                                           This bit controls the clock gating for Port G. If set, the unit receives a
                                                           clock and functions. Otherwise, the unit is unclocked and disabled. If
                                                           the unit is unclocked, reads or writes to the unit will generate a bus fault.

June 14, 2007                                                                                          105

                              Luminary Micro Confidential-Advance Product Information
System Control

Bit/Field       Name   Type  Reset  Description
    5           GPIOF  R/W      0
    4           GPIOE  R/W      0   This bit controls the clock gating for Port F. If set, the unit receives a
    3           GPIOD  R/W      0   clock and functions. Otherwise, the unit is unclocked and disabled. If
    2           GPIOC  R/W      0   the unit is unclocked, reads or writes to the unit will generate a bus fault.
    1           GPIOB  R/W      0
    0           GPIOA  R/W      0   This bit controls the clock gating for Port E. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port D. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port C. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port B. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port A. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

106                                                                             June 14, 2007

                       Luminary Micro Confidential-Advance Product Information
                                                                                        LM3S8938 Microcontroller

           Register 26: Deep Sleep Mode Clock Gating Control Register 2 (DCGC2),
           offset 0x128

           This register controls the clock gating logic. Each bit controls a clock enable for a given interface,
           function, or unit. If set, the unit receives a clock and functions. Otherwise, the unit is unclocked and
           disabled (saving power). If the unit is unclocked, reads or writes to the unit will generate a bus fault.
           The reset state of these bits is 0 (unclocked) unless otherwise noted, so that all functional units are
           disabled. It is the responsibility of software to enable the ports necessary for the application. Note
           that these registers may contain more bits than there are interfaces, functions, or units to control.
           This is to assure reasonable code compatibility with other family and future parts. RCGC2 is the
           clock configuration register for running operation, SCGC2 for Sleep operation, and DCGC2 for
           Deep-Sleep operation. Setting the ACG bit in the Run-Mode Clock Configuration (RCC) register
           specifies that the system uses sleep modes.

Deep Sleep Mode Clock Gating Control Register 2 (DCGC2)

Base 0x400F.E000
Offset 0x128
Type R/W, reset 0x00000000

       31      30   29        28      27        26  25     24  23  22   21         20   19   18   17   16

       reserved EPHY0 reserved EMAC0                                  reserved

Type RO        R/W  RO        R/W     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                     GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA

Type RO        RO   RO        RO      RO        RO  RO     RO  RO  R/W  R/W        R/W  R/W  R/W  R/W  R/W

Reset  0       0    0         0       0         0   0      0   0   0            0  0    0    0    0    0

Bit/Field            Name             Type          Reset  Description
   31               reserved           RO              0
   30               EPHY0             R/W              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
   29               reserved           RO              0   preserved across a read-modify-write operation.
   28               EMAC0             R/W              0
                                                           This bit controls the clock gating for Ethernet PHY unit 0. If set, the unit
  27:7              reserved           RO              0   receives a clock and functions. Otherwise, the unit is unclocked and
    6               GPIOG             R/W              0   disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                           a bus fault.

                                                           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.

                                                           This bit controls the clock gating for Ethernet MAC unit 0. If set, the unit
                                                           receives a clock and functions. Otherwise, the unit is unclocked and
                                                           disabled. If the unit is unclocked, reads or writes to the unit will generate
                                                           a bus fault.

                                                           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.

                                                           This bit controls the clock gating for Port G. If set, the unit receives a
                                                           clock and functions. Otherwise, the unit is unclocked and disabled. If
                                                           the unit is unclocked, reads or writes to the unit will generate a bus fault.

June 14, 2007                                                                                          107

                              Luminary Micro Confidential-Advance Product Information
System Control

Bit/Field       Name   Type  Reset  Description
    5           GPIOF  R/W      0
    4           GPIOE  R/W      0   This bit controls the clock gating for Port F. If set, the unit receives a
    3           GPIOD  R/W      0   clock and functions. Otherwise, the unit is unclocked and disabled. If
    2           GPIOC  R/W      0   the unit is unclocked, reads or writes to the unit will generate a bus fault.
    1           GPIOB  R/W      0
    0           GPIOA  R/W      0   This bit controls the clock gating for Port E. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port D. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port C. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port B. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

                                    This bit controls the clock gating for Port A. If set, the unit receives a
                                    clock and functions. Otherwise, the unit is unclocked and disabled. If
                                    the unit is unclocked, reads or writes to the unit will generate a bus fault.

108                                                                             June 14, 2007

                       Luminary Micro Confidential-Advance Product Information
                                                                                              LM3S8938 Microcontroller

           Register 27: Software Reset Control 0 (SRCR0), offset 0x040

           Writes to this register are masked by the bits in the Device Capabilities 1 (DC1) register.

Software Reset Control 0 (SRCR0)

Base 0x400F.E000
Offset 0x040
Type R/W, reset 0x00000000

       31      30           29  28        27        26  25     24    23  22   21  20          19   18  17        16

                                reserved                       CAN0               reserved                       SARADC0

Type RO        RO           RO  RO        RO        RO  RO     R/W   RO  RO   RO  RO          RO   RO  RO        R/W

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                       HIB     reserved     WDT      reserved

Type RO        RO           RO  RO        RO        RO  RO     RO    RO  R/W  RO  RO          R/W  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:25              reserved               RO              0
                                                               Software should not rely on the value of a reserved bit. To provide
   24                 CAN0                R/W              0   compatibility with future products, the value of a reserved bit should be
23:17              reserved               RO              0   preserved across a read-modify-write operation.

   16              SARADC0                R/W              0   Reset control for CAN unit 0.
  15:7              reserved               RO              0
                                                               Software should not rely on the value of a reserved bit. To provide
    6                  HIB                R/W              0   compatibility with future products, the value of a reserved bit should be
   5:4              reserved               RO              0   preserved across a read-modify-write operation.

    3                 WDT                 R/W              0   Reset control for SAR ADC module 0.
   2:0              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.

                                                               Reset control for the Hibernation module.

                                                               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.

                                                               Reset control for Watchdog unit.

                                                               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 14, 2007                                                                                                    109

                                Luminary Micro Confidential-Advance Product Information
System Control

           Register 28: Software Reset Control 1 (SRCR1), offset 0x044

           Writes to this register are masked by the bits in the Device Capabilities 2 (DC2) register.

Software Reset Control 1 (SRCR1)

Base 0x400F.E000
Offset 0x044
Type R/W, reset 0x00000000

       31       30          29  28   27    26   25     24        23  22  21          20   19   18   17   16

                    reserved               COMP2 COMP1 COMP0            reserved          TIMER3 TIMER2 TIMER1 TIMER0

Type RO         RO          RO  RO   RO    R/W  R/W    R/W       RO  RO  RO          RO   R/W  R/W  R/W  R/W

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 I2C1 reserved I2C0                     reserved                      SSI0 reserved UART2 UART1 UART0

Type RO    R/W              RO  R/W  RO    RO   RO     RO        RO  RO  RO          R/W  RO   R/W  R/W  R/W

Reset  0        0           0   0    0     0    0      0         0   0            0  0    0    0    0    0

Bit/Field            Name            Type       Reset  Description
31:27              reserved          RO           0
                                                       Software should not rely on the value of a reserved bit. To provide
   26               COMP2            R/W           0   compatibility with future products, the value of a reserved bit should be
   25               COMP1            R/W           0   preserved across a read-modify-write operation.
   24               COMP0            R/W           0
23:20              reserved          RO           0   Reset control for analog comparator 2.

   19               TIMER3           R/W           0   Reset control for analog comparator 1.
   18               TIMER2           R/W           0
   17               TIMER1           R/W           0   Reset control for analog comparator 0.
   16               TIMER0           R/W           0
   15               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
   14                 I2C1           R/W           0   preserved across a read-modify-write operation.
   13               reserved          RO           0
                                                       Reset control for General-Purpose Timer module 3.
   12                 I2C0           R/W           0
  11:5              reserved          RO           0   Reset control for General-Purpose Timer module 2.

    4                 SSI0           R/W           0   Reset control for General-Purpose Timer module 1.

                                                       Reset control for General-Purpose Timer module 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.

                                                       Reset control for I2C unit 1.

                                                       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.

                                                       Reset control for I2C unit 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.

                                                       Reset control for SSI unit 0.

110                                                                                                 June 14, 2007

                                Luminary Micro Confidential-Advance Product Information
                                                                                  LM3S8938 Microcontroller

Bit/Field       Name     Type  Reset  Description
    3          reserved   RO      0
                                      Software should not rely on the value of a reserved bit. To provide
    2          UART2     R/W      0   compatibility with future products, the value of a reserved bit should be
    1          UART1     R/W      0   preserved across a read-modify-write operation.
    0          UART0     R/W      0
                                      Reset control for UART unit 2.

                                      Reset control for UART unit 1.

                                      Reset control for UART unit 0.

June 14, 2007                                                                     111

                         Luminary Micro Confidential-Advance Product Information
System Control

           Register 29: Software Reset Control 2 (SRCR2), offset 0x048

           Writes to this register are masked by the bits in the Device Capabilities 4 (DC4) register.

Software Reset Control 2 (SRCR2)

Base 0x400F.E000
Offset 0x048
Type R/W, reset 0x00000000

       31       30          29  28    27        26  25     24  23  22   21         20    19   18   17   16

       reserved EPHY0 reserved EMAC0                                  reserved

Type RO    R/W              RO  R/W   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                     GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA

Type RO         RO          RO  RO    RO        RO  RO     RO  RO  R/W  R/W        R/W   R/W  R/W  R/W  R/W

Reset  0        0           0   0     0         0   0      0   0   0            0  0     0    0    0    0

Bit/Field            Name             Type          Reset  Description
   31               reserved           RO              0
                                                           Software should not rely on the value of a reserved bit. To provide
   30               EPHY0             R/W              0   compatibility with future products, the value of a reserved bit should be
   29               reserved           RO              0   preserved across a read-modify-write operation.

   28               EMAC0             R/W              0   Reset control for Ethernet PHY unit 0.
  27:7              reserved           RO              0
                                                           Software should not rely on the value of a reserved bit. To provide
    6               GPIOG             R/W              0   compatibility with future products, the value of a reserved bit should be
    5                GPIOF            R/W              0   preserved across a read-modify-write operation.
    4                GPIOE            R/W              0
    3                GPIOD            R/W              0   Reset control for Ethernet MAC unit 0.
    2                GPIOC            R/W              0
    1                GPIOB            R/W              0   Software should not rely on the value of a reserved bit. To provide
    0                GPIOA            R/W              0   compatibility with future products, the value of a reserved bit should be
                                                           preserved across a read-modify-write operation.

                                                           Reset control for GPIO Port G.

                                                           Reset control for GPIO Port F.

                                                           Reset control for GPIO Port E.

                                                           Reset control for GPIO Port D.

                                                           Reset control for GPIO Port C.

                                                           Reset control for GPIO Port B.

                                                           Reset control for GPIO Port A.

112                                                                                                June 14, 2007

                                Luminary Micro Confidential-Advance Product Information
                                                                                                                             LM3S8938 Microcontroller

7 Hibernation Module

           HIB

                The Hibernation Module manages removal and restoration of power to the rest of the microcontroller
                to provide a means for reducing power consumption. When the processor and peripherals are idle,
                power can be completely removed with only the Hibernation Module remaining powered. Power
                can be restored based on an external signal, or at a certain time using the built-in real-time clock
                (RTC). The Hibernation module can be independently supplied from a battery or an auxillary power
                supply.
                The Hibernation module has the following features:
                 Power-switching logic to discrete external regulator
                 Dedicated pin for waking from an external signal
                 Low-battery detection, signalling, and interrupt generation
                 32-bit real-time counter (RTC)
                 Two 32-bit RTC match registers for timed wake-up and interrupt generation
                 Clock source from a 32.768-kHz external oscillator or a 4.194304-MHz crystal
                 RTC trim predivider for making fine adjustments to the clock rate
                 64 32-bit words of non-volatile memory
                 Programmable interrupts for RTC match, external wake, and low battery events

June 14, 2007                                                           113

               Luminary Micro Confidential-Advance Product Information
Hibernation Module

7.1 Block Diagram

                Figure 7-1. Hibernation Module Block Diagram

       XOSC0               HIBCTL.CLK32EN   Pre-Divider                       Interrupts  Interrupts
       XOSC1                                  HIBRTCT                         HIBIM        to CPU
                                 /128                                         HIBRIS
        WAKE        HIBCTL.CLKSEL          RTC                                HIBMIS        HIB
                                              HIBRTCC                         HIBIC
                             Non-Volatile                     MATCH0/1
                               Memory       HIBRTCLD
                              HIBDATA       HIBRTCM0           LOWBAT
                                            HIBRTCM1

       VDD                                 Low Battery                         Power
       VBAT                                   Detect                         Sequence

                                                                                Logic

                    HIBCTL.LOWBATEN                           HIBCTL.PWRCUT
                                                              HIBCTL.RTCWEN
                                                              HIBCTL.EXTWEN
                                                              HIBCTL.VABORT

7.2    Functional Description

7.2.1  The Hibernation module controls the power to the processor with an enable signal (HIB) that signals
       an external voltage regulator to turn off. The Hibernation module itself is powered from a separate
       supply such as a battery or auxillary supply. It also has a separate clock source to maintain a
       real-time clock (RTC). Once in hibernation, the module signals an external voltage regulator to turn
       back on the power when an external pin (WAKE) is asserted, or when the internal RTC reaches a
       certain value. The Hibernation module can also detect when the battery voltage is low, and optionally
       prevent hibernation when this occurs.

       Power-up from a power cut to code execution is defined as the regulator turn-on time (specifed at
       250 s maximum) plus the normal chip POR (see Figure 22-12 on page 524).

       Register Access Timing

       Because the Hibernation module has an independent clocking domain, certain registers must be
       written only with a timing gap between accesses. The delay time is tHIB_REG_WRITE, therefore software
       must guarantee that a delay of tHIB_REG_WRITE is inserted between back-to-back writes to certain
       Hibernation registers, or between a write followed by a read to those same registers. There is no
       restriction on timing for back-to-back reads from the Hibernation module. Refer to "Register
       Descriptions" on page 118 for details about which registers are subject to this timing restriction.

114                                                                                       June 14, 2007

                    Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

7.2.2  Clock Source
7.2.3
7.2.4  The Hibernation module must be clocked by an external source, even if the RTC feature will not be
       used. An external oscillator or crystal can be used for this purpose. To use a crystal, a 4.194304-MHz
       crystal is connected to the XOSC0 and XOSC1 pins. This clock signal will be divided by 128 internally
       to produce the 32.768-kHz clock reference. To use a more precise clock source, a 32.768-kHz
       oscillator can be connected to the XOSC0 pin.

       The clock source is enabled by setting the CLK32EN bit of the HIBCTL register. The type of clock
       source is selected by setting the CLKSEL bit to 0 for a 4.194304-MHz clock source, and to 1 for a
       32.768-kHz clock source. If the bit is set to 0, the input clock is divided by 128, resulting in a
       32.768-kHz clock source. If a crystal is used for the clock source, the software must leave a delay
       of tXOSC_SETTLE after setting the CLK32EN bit and before any other accesses to the Hibernation
       module registers. The delay allows the crystal to power up and stabilize. If an oscillator is used for
       the clock source, no delay is needed.

       Battery Management

       The Hibernation module can be independently powered by a battery or an auxiliary power source.
       The module can monitor the voltage level of the battery and detect when the voltage becomes too
       low. When this happens, an interrupt can be generated. The module can also be configured so that
       it will not go into Hibernate mode if the battery voltage is too low.

       Note that the Hibernation module draws power from whichever source (VBAT or VDD) has the higher
       voltage. Therefore, it is important to design the circuit to ensure that VDD is higher that VBAT under
       nominal conditions or else the Hibernation module draws power from the battery even when VDD
       is available.

       The Hibernation module can be configured to detect a low battery condition by setting the LOWBATEN
       bit of the HIBCTL register. In this configuration, the LOWBAT bit of the HIBRIS register will be set
       when the battery level is low. If the VABORT bit is also set, then the module is prevented from entering
       Hibernation mode when a low battery is detected. The module can also be configured to generate
       an interrupt for the low-battery condition (see "Interrupts and Status" on page 116).

       Real-Time Clock

       The Hibernation module includes a 32-bit counter that increments once per second with a proper
       clock source and configuration (see "Clock Source" on page 115). The 32.768-kHz clock signal is
       fed into a trim predivider which counts down from a nominal value of 0x7FFF to achieve a once per
       second clock rate for the RTC. The trim predivider register can be adjusted up or down to compensate
       for inaccuracies in the clock source. The trim predivider should be adjusted up from 0x7FFF in order
       to slow down the RTC rate, and down from 0x7FFF in order to speed up the RTC rate.

       The Hibernation module includes two 32-bit match registers that are compared to the value of the
       RTC counter. The match registers can be used to wake the processor from hibernation mode, or
       to generate an interrupt to the processor if it is not in hibernation.

       The RTC must be enabled with the RTCEN bit of the HIBCTL register. The value of the RTC can be
       set at any time by writing to the HIBRTCLD register. The trim predivider can be adjusted by reading
       and writing the HIBRTCT register. The predivider is updated once every 64 seconds from this
       register. The two match registers can be set by writing to the HIBRTCM0 and HIBRTCM1 registers.
       The RTC can be configured to generate interrupts by using the interrupt registers (see "Interrupts
       and Status" on page 116).

June 14, 2007                                                           115

               Luminary Micro Confidential-Advance Product Information
Hibernation Module

7.2.5  Non-Volatile Memory
7.2.6
       The Hibernation module contains 64 32-bit words of memory which are retained during hibernation.
7.2.7  This memory is powered from the battery or auxillary power supply during hibernation. The processor
       software can save state information in this memory prior to hibernation, and can then recover the
7.3    state upon waking. The non-volatile memory can be accessed through the HIBDATA registers.

       Power Control

       The Hibernation module controls power to the processor through the use of the HIB pin, which is
       intended to be connected to the enable signal of the external regulator(s) providing 3.3 V and/or 2.5
       V to the microcontroller. When the HIB signal is asserted by the Hibernation module, the external
       regulator is turned off and no longer powers the microcontroller. The Hibernation module remains
       powered from the VBAT supply, which could be a battery or an auxillary power source. Hibernation
       mode is initiated by the microcontroller setting the HIBREQ bit of the HIBCTL register. Prior to doing
       this, a wake-up condition must be configured, either from the external WAKE pin, or by using an RTC
       match.

       The Hibernation module is configured to wake from the external WAKE pin by setting the PINWEN
       bit of the HIBCTL register. It is configured to wake from RTC match by setting the RTCWEN bit. Either
       one or both of these bits can be set prior to going into hibernation.

       When the Hibernation module wakes, the microcontroller will see a normal power-on reset. It can
       detect that the power-on was due to a wake from hibernation by examining the raw interrupt status
       register (see "Interrupts and Status" on page 116) and by looking for state data in the non-volatile
       memory (see "Non-Volatile Memory" on page 116).

       Interrupts and Status

       The Hibernation module can generate interrupts when the following conditions occur:

        Assertion of WAKE pin

        RTC match

        Low battery detected

       All of the interrupts are ORed together before being sent to the interrupt controller, so the Hibernate
       module can only generate a single interrupt request to the controller at any given time. The software
       interrupt handler can service multiple interrupt events by reading the HIBMIS register. Software can
       also read the status of the Hibernation module at any time by reading the HIBRIS register which
       shows all of the pending events. This register can be used at power-on to see if a wake condition
       is pending, which indicates to the software that a hibernation wake occurred.

       The events that can trigger an interrupt are configured by setting the appropriate bits in the HIBIM
       register. Pending interrupts can be cleared by writing the corresponding bit in the HIBIC register.

       Initialization and Configuration

       The Hibernation module can be configured in several different combinations. The following sections
       show the recommended programming sequence for various scenarios. The examples below assume
       that a 32.768-kHz oscillator is used, and thus always show bit 2 (CLKSEL) of the HIBCTL register
       set to 1. If a 4.194304-MHz crystal is used instead, then the CLKSEL bit remains cleared. Because
       the Hibernation module runs at 32 kHz and is asynchronous to the rest of the system, software must
       allow a delay of tHIB_REG_WRITE after writes to certain registers (see "Register Access

116                                                                          June 14, 2007

                    Luminary Micro Confidential-Advance Product Information
                                                                        LM3S8938 Microcontroller

7.3.1  Timing" on page 114). The registers that require a delay are denoted with a footnote in
       Table 7-1 on page 118.
7.3.2
7.3.3  Initialization
7.3.4
       The clock source must be enabled first, even if the RTC will not be used. If a 4.194304-MHz crystal
       is used, perform the following steps:

       1. Write 0x40 to the HIBCTL register at offset 0x10 to enable the crystal and select the divide-by-128
            input path.

       2. Wait for a time of tXOSC_SETTLE for the crystal to power up and stabilize before performing any
            other operations with the Hibernation module.

       If a 32.678-kHz oscillator is used, then perform the following steps:

       1. Write 0x44 to the HIBCTL register at offset 0x10 to enable the oscillator input.

       2. No delay is necessary.

       The above is only necessary when the entire system is initialized for the first time. If the processor
       is powered due to a wake from hibernation, then the Hibernation module has already been powered
       up and the above steps are not necessary. The software can detect that the Hibernation module
       and clock are already powered by examining the CLK32EN bit of the HIBCTL register.

       RTC Match Functionality (No Hibernation)

       The following steps are needed to use the RTC match functionality of the Hibernation module:

       1. Write the required RTC match value to one of the HIBRTCMn registers at offset 0x004 or 0x008.

       2. Write the required RTC load value to the HIBRTCLD register at offset 0x00C.

       3. Set the required RTC match interrupt mask in the RTCALT0 and RTCALT1 bits (bits 1:0) in the
            HIBIM register at offset 0x014.

       4. Write 0x0000.0041 to the HIBCTL register at offset 0x010 to enable the RTC to begin counting.

       RTC Match/Wake-Up from Hibernation

       The following steps are needed to use the RTC match and wake-up functionality of the Hibernation
       module:

       1. Write the required RTC match value to the RTCMn registers at offset 0x004 or 0x008.

       2. Write the required RTC load value to the HIBRTCLD register at offset 0x00C.

       3. Write any data to be retained during power cut to the HIBDATA register at offsets 0x030-0x130.

       4. Set the RTC Match Wake-Up and start the hibernation sequence by writing 0x0000.004F to the
            HIBCTL register at offset 0x010.

       External Wake-Up from Hibernation

       The following steps are needed to use the Hibernation module with the external WAKE pin as the
       wake-up source for the microcontroller:

June 14, 2007                                                           117

               Luminary Micro Confidential-Advance Product Information
Hibernation Module

7.3.5   1. Write any data to be retained during power cut to the HIBDATA register at offsets 0x030-0x130.

        2. Enable the external wake and start the hibernation sequence by writing 0x0000.0056 to the
             HIBCTL register at offset 0x010.

        RTC/External Wake-Up from Hibernation

        1. Write the required RTC match value to the RTCMn registers at offset 0x004 or 0x008.
        2. Write the required RTC load value to the HIBRTCLD register at offset 0x00C.
        3. Write any data to be retained during power cut to the HIBDATA register at offsets 0x030-0x130.
        4. Set the RTC Match/External Wake-Up and start the hibernation sequence by writing 0x0000.005F

             to the HIBCTL register at offset 0x010.

7.4 Register Map

                Note: HIBRTCC, HIBRTCM0, HIBRTCM1, HIBRTCLD, HIBRTCT, and HIBDATA are internal
                           BAPI module registers on the VBAPI voltage domain and the 32-kHz clock domain.

Table 7-1. Hibernation Module Register Map

Offset Name         Type  Reset             Description                                                  See
                                                                                                         page
0x000 HIBRTCC        RO   0x0000.0000       Hibernation RTC Counter                                       119
                    R/W   0xFFFF.FFFF       Hibernation RTC Match 0                                       120
0x004 HIBRTCM0      R/W   0xFFFF.FFFF       Hibernation RTC Match 1                                       121
                    R/W   0xFFFF.FFFF       Hibernation RTC Load                                          122
0x008 HIBRTCM1      R/W   0x0000.0000       Hibernation Control                                           123
                    R/W   0x0000.0000       Hibernation Interrupt Mask                                    125
0x00C HIBRTCLD       RO   0x0000.0000       Hibernation Raw Interrupt Status                              126
                     RO   0x0000.0000       Hibernation Masked Interrupt Status                           127
0x010 HIBCTL        W1C   0x0000.0000       Hibernation Interrupt Clear                                   128
                    R/W   0x0000.0000       Hibernation RTC Trim                                          129
0x014 HIBIM
                    R/W                                                                                   130
0x018 HIBRIS

0x01C HIBMIS

0x020 HIBIC

0x024 HIBRTCT

0x030-  HIBDATA           0x0000.0000 Hibernation Data
0x12C

7.5 Register Descriptions

                All addresses given are relative to the Hibernation module Base Address at 0x400F.C000.

118                                                                              June 14, 2007

                    Luminary Micro Confidential-Advance Product Information
                                                                                  LM3S8938 Microcontroller

           Register 1: Hibernation RTC Counter (HIBRTCC), offset 0x000

           This register is the current 32-bit value of the RTC counter.

Hibernation RTC Counter (HIBRTCC)

Offset 0x000
Type RO, reset 0x0000.0000

       31      30  29    28        27    26  25  24        23   22  21  20        19  18  17  16

                                                     RTCC

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

                                                     RTCC

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

Bit/Field          Name            Type      Reset Description
  31:0             RTCC
                                   RO 0x0000.0000 RTC Counter

                                                                 A read returns the 32-bit counter value. This register is read-only. To
                                                                 change the value, use the HIBRTCLD register.

June 14, 2007                                                                                 119

                         Luminary Micro Confidential-Advance Product Information
Hibernation Module

           Register 2: Hibernation RTC Match 0 (HIBRTCM0), offset 0x004

           This register is the 32-bit match 0 register for the RTC counter.

Hibernation RTC Match 0 (HIBRTCM0)

Offset 0x004
Type R/W, reset 0xFFFF.FFFF

       31  30       29     28   27    26   25   24         23  22   21   20         19   18                         17   16

                                                    RTCM0

Type R/W   R/W      R/W    R/W  R/W   R/W  R/W  R/W  R/W       R/W  R/W  R/W        R/W  R/W                        R/W  R/W

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

                                                    RTCM0

Type R/W   R/W      R/W    R/W  R/W   R/W  R/W  R/W  R/W       R/W  R/W  R/W        R/W  R/W                        R/W  R/W

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              RTCM0
                                R/W 0xFFFF.FFFF RTC Match 0
                                                              A write loads the value into the RTC match register.
                                                              A read returns the current match value.

120                                                                                                                 June 14, 2007

                           Luminary Micro Confidential-Advance Product Information
                                                                                    LM3S8938 Microcontroller

           Register 3: Hibernation RTC Match 1 (HIBRTCM1), offset 0x008

           This register is the 32-bit match 1 register for the RTC counter.

Hibernation RTC Match 1 (HIBRTCM1)

Offset 0x008
Type R/W, reset 0xFFFF.FFFF

       31      30   29     28   27    26   25   24         23  22   21   20         19   18                         17   16

                                                    RTCM1

Type R/W       R/W  R/W    R/W  R/W   R/W  R/W  R/W  R/W       R/W  R/W  R/W        R/W  R/W                        R/W  R/W

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

                                                    RTCM1

Type R/W       R/W  R/W    R/W  R/W   R/W  R/W  R/W  R/W       R/W  R/W  R/W        R/W  R/W                        R/W  R/W

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              RTCM1
                                R/W 0xFFFF.FFFF RTC Match 1
                                                              A write loads the value into the RTC match register.
                                                              A read returns the current match value.

June 14, 2007                                                                                                            121

                           Luminary Micro Confidential-Advance Product Information
Hibernation Module

           Register 4: Hibernation RTC Load (HIBRTCLD), offset 0x00C

           This register is the 32-bit value loaded into the RTC counter.

Hibernation RTC Load (HIBRTCLD)

Offset 0x00C
Type R/W, reset 0xFFFF.FFFF

       31  30       29     28    27    26   25   24         23  22   21   20        19   18   17                             16

                                                     RTCLD

Type R/W   R/W      R/W    R/W   R/W   R/W  R/W  R/W  R/W       R/W  R/W  R/W       R/W  R/W  R/W                            R/W

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

                                                     RTCLD

Type R/W   R/W      R/W    R/W   R/W   R/W  R/W  R/W  R/W       R/W  R/W  R/W       R/W  R/W  R/W                            R/W

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              RTCLD
                                 R/W 0xFFFF.FFFF RTC Load
                                                               A writes load the current value into the RTC counter (RTCC).
                                                               A read returns the 32-bit load value.

122                                                                                           June 14, 2007

                           Luminary Micro Confidential-Advance Product Information
                                                                                         LM3S8938 Microcontroller

           Register 5: Hibernation Control (HIBCTL), offset 0x010

           This register is the control register for the Hibernation module.

Hibernation Control (HIBCTL)

Offset 0x010
Type R/W, 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                    VABORT CLK32EN LOWBATEN PINWEN RTCWEN CLKSEL HIBREQ RTCEN

Type RO        RO  RO          RO  RO          RO  RO     RO  R/W         R/W  R/W  R/W  R/W  R/W  R/W  R/W

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             0x00
    7                VABORT        R/W                    Software should not rely on the value of a reserved bit. To provide
    6               CLK32EN        R/W                0   compatibility with future products, the value of a reserved bit should be
                                                      0   preserved across a read-modify-write operation.
    5              LOWBATEN        R/W
    4                PINWEN        R/W                0   Power Cut Abort Enable
                                                      0   0: Power Cut occurs during a low-battery alert
    3               RTCWEN         R/W                    1: Power Cut is aborted
                                                      0
                                                          32-kHz Oscillator Enable
                                                          0: Disabled
                                                          1: Enabled
                                                          This bit must be enabled to use the Hibernation module. If a crystal is
                                                          used, then software should wait 20 ms after setting this bit to allow the
                                                          crystal to power up and stabilize.

                                                          LOW BAT Monitoring Enable
                                                          0: Disabled
                                                          1: Enabled
                                                          When set, low battery voltage detection is enabled.

                                                          External WAKE Pin Enable
                                                          0: Disabled
                                                          1: Enabled
                                                          When set, an external event on the WAKE pin will re-power the device.

                                                          RTC Wake-up Enable
                                                          0: Disabled
                                                          1: Enabled
                                                          When set, an RTC match event (RTC0 or RTC1) will re-power the device
                                                          based on the RTC counter value matching the corresponding match
                                                          register 0 or 1.

June 14, 2007                                                                                           123

                       Luminary Micro Confidential-Advance Product Information
Hibernation Module

Bit/Field   Name    Type  Reset  Description
    2      CLKSEL   R/W      0
    1      HIBREQ   R/W      0   Hibernation Module Clock Select
                                 0: Use Divide by 128 output. Use this value for a 4-MHz crystal.
    0      RTCEN    R/W      0   1: Use raw output. Use this value for a 32-kHz oscillator.

                                 Hibernation Request
                                 0: Disabled
                                 1: Hibernation initiated
                                 After a wake-up event, this bit is cleared by hardware.

                                 RTC Timer Enable
                                 0: Disabled
                                 1: Enabled

124                                                                          June 14, 2007

                    Luminary Micro Confidential-Advance Product Information
                                                                                               LM3S8938 Microcontroller

           Register 6: Hibernation Interrupt Mask (HIBIM), offset 0x014

           This register is the interrupt mask register for the Hibernation module interrupt sources.

Hibernation Interrupt Mask (HIBIM)

Offset 0x014
Type R/W, 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                                          EXTW LOWBAT RTCALT1 RTCALT0

Type RO        RO  RO        RO     RO    RO     RO       RO  RO          RO  RO     RO        R/W  R/W  R/W  R/W

Reset  0       0   0         0      0     0            0  0            0  0   0            0   0    0    0    0

Bit/Field            Name           Type      Reset Description
  31:4             reserved
    3                               RO 0x000.0000 Software should not rely on the value of a reserved bit. To provide
    2                EXTW                                         compatibility with future products, the value of a reserved bit should be
    1              LOWBAT                                         preserved across a read-modify-write operation.
    0              RTCALT1
                   RTCALT0          R/W       0           External Wake-Up Interrupt Mask

                                                          0: Masked

                                                          1: Unmasked

                                    R/W       0           Low Battery Voltage Interrupt Mask

                                                          0: Masked

                                                          1: Unmasked

                                    R/W       0           RTC Alert1 Interrupt Mask

                                                          0: Masked

                                                          1: Unmasked

                                    R/W       0           RTC Alert0 Interrupt Mask

                                                          0: Masked

                                                          1: Unmasked

June 14, 2007                                                                                                 125

                             Luminary Micro Confidential-Advance Product Information
Hibernation Module

           Register 7: Hibernation Raw Interrupt Status (HIBRIS), offset 0x018

           This register is the raw interrupt status for the Hibernation module interrupt sources.

Hibernation Raw Interrupt Status (HIBRIS)

Offset 0x018
Type RO, 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                                            EXTW LOWBAT RTCALT1 RTCALT0

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

Bit/Field        Name        Type              Reset Description
  31:4         reserved
                             RO 0x000.0000 Software should not rely on the value of a reserved bit. To provide
    3            EXTW                                      compatibility with future products, the value of a reserved bit should be
    2          LOWBAT                                      preserved across a read-modify-write operation.
    1          RTCALT1
    0          RTCALT0       RO                0           External Wake-Up Raw Interrupt Status

                             RO                0           Low Battery Voltage Raw Interrupt Status

                             RO                0           RTC Alert1 Raw Interrupt Status

                             RO                0           RTC Alert0 Raw Interrupt Status

126                                                                                                          June 14, 2007

                         Luminary Micro Confidential-Advance Product Information
                                                                                                  LM3S8938 Microcontroller

           Register 8: Hibernation Masked Interrupt Status (HIBMIS), offset 0x01C

           This register is the masked interrupt status for the Hibernation module interrupt sources.

Hibernation Masked Interrupt Status (HIBMIS)

Offset 0x01C
Type RO, 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                                         EXTW LOWBAT RTCALT1 RTCALT0

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

Bit/Field            Name        Type            Reset Description
  31:4             reserved
                                 RO 0x000.0000 Software should not rely on the value of a reserved bit. To provide
    3                EXTW                                      compatibility with future products, the value of a reserved bit should be
    2              LOWBAT                                      preserved across a read-modify-write operation.
    1              RTCALT1
    0              RTCALT0       RO              0            External Wake-Up Masked Interrupt Status

                                 RO              0            Low Battery Voltage Masked Interrupt Status

                                 RO              0            RTC Alert1 Masked Interrupt Status

                                 RO              0            RTC Alert0 Masked Interrupt Status

June 14, 2007                                                                                                      127

                             Luminary Micro Confidential-Advance Product Information
Hibernation Module

           Register 9: Hibernation Interrupt Clear (HIBIC), offset 0x020

           This register is the interrupt write-one-to-clear register for the Hibernation module interrupt sources.

Hibernation Interrupt Clear (HIBIC)

Offset 0x020
Type W1C, 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                                            EXTW LOWBAT RTCALT1 RTCALT0

Type RO    RO       RO   RO          RO     RO     RO       RO  RO          RO  RO  RO R/W1C R/W1C R/W1C R/W1C

Reset  0   0        0    0           0      0            0  0            0  0   0   0                0  0   0   0

Bit/Field        Name                Type       Reset Description
  31:4         reserved
    3                                RO 0x000.0000 Software should not rely on the value of a reserved bit. To provide
    2            EXTW                                              compatibility with future products, the value of a reserved bit should be
    1          LOWBAT                                              preserved across a read-modify-write operation.
    0          RTCALT1
               RTCALT0               R/W1C      0           External Wake-Up Masked Interrupt Clear

                                                            Reads return an indeterminate value.

                                     R/W1C      0           Low Battery Voltage Masked Interrupt Clear

                                                            Reads return an indeterminate value.

                                     R/W1C      0           RTC Alert1 Masked Interrupt Clear

                                                            Reads return an indeterminate value.

                                     R/W1C      0           RTC Alert0 Masked Interrupt Clear

                                                            Reads, return an indeterminate value.

128                                                                                                         June 14, 2007

                         Luminary Micro Confidential-Advance Product Information
                                                                                       LM3S8938 Microcontroller

           Register 10: Hibernation RTC Trim (HIBRTCT), offset 0x024

           This register contains the value that is used to trim the RTC clock predivider. It represents the
           computed underflow value that is used during the trim cycle. It is represented as 0x7FFF N clock
           cycles.

Hibernation RTC Trim (HIBRTCT)

Offset 0x024
Type R/W, 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

                                                           TRIM

Type R/W       R/W  R/W       R/W  R/W   R/W  R/W     R/W        R/W  R/W  R/W  R/W    R/W  R/W  R/W  R/W

Reset  0       1    1         1    1     1    1       1            1  1    1    1      1    1    1    1

Bit/Field            Name          Type       Reset Description
31:16              reserved        RO
                                              0x0000  Software should not rely on the value of a reserved bit. To provide
  15:0                TRIM         R/W                compatibility with future products, the value of a reserved bit should be
                                                      preserved across a read-modify-write operation.

                                              0x7FFF  RTC Trim Value

                                                      This value is loaded into the RTC predivider every 64 seconds. It is used
                                                      to adjust the RTC rate to account for drift and inaccuracy in the clock
                                                      source. The compensation is made by software by adjusting the default
                                                      value of 0x7FFF up or down.

June 14, 2007                                                                                         129

                              Luminary Micro Confidential-Advance Product Information
Hibernation Module

           Register 11: Hibernation Data (HIBDATA), offset 0x030-0x12C

           This address space is implemented as a 64x32-bit memory (256 bytes). It can be loaded by the
           system processor in order to store any non-volatile state data and will not lose power during a power
           cut operation.

Hibernation Data (HIBDATA)

Offset 0x030-0x12C
Type R/W, reset 0x0000.0000

       31  30       29       28   27    26   25   24        23   22   21   20            19   18   17   16

                                                       RTD

Type R/W   R/W      R/W      R/W  R/W   R/W  R/W  R/W       R/W  R/W  R/W  R/W           R/W  R/W  R/W  R/W

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

                                                       RTD

Type R/W   R/W      R/W      R/W  R/W   R/W  R/W  R/W       R/W  R/W  R/W  R/W           R/W  R/W  R/W  R/W

Reset  0   0        0        0    0     0    0    0         0    0    0    0             0    0    0    0

Bit/Field           Name          Type       Reset Description
  31:0              RTD
                                  R/W 0x0000.0000 Hibernation Module NV Registers[63:0]

130                                                                                                June 14, 2007

                             Luminary Micro Confidential-Advance Product Information
                                                                                LM3S8938 Microcontroller

8 Internal Memory

           FLASH

                The LM3S8938 microcontroller comes with 64 KB of bit-banded SRAM and 256 KB of flash memory.
                The flash controller provides a user-friendly interface, making flash programming a simple task.
                Flash protection can be applied to the flash memory on a 2-KB block basis.

8.1 Block Diagram

       Figure 8-1. Flash Block Diagram

                                                  Flash Timing
                                                     USECRL

               Cortex-M3   ICode                  Flash Control
                           DCode
                                                        FMA
                                                        FMD                      Flash Array
                                                        FMC
               System Bus                              FCRIS
                                                        FCIM
                                                     FCMISC

               Bridge      APB

               SRAM Array       Flash Protection                 User Registers
                                                                  USER_DBG
                                     FMPREn                      USER_REG0
                                     FMPPEn                      USER_REG1

8.2    Functional Description

8.2.1  This section describes the functionality of both the flash and SRAM memories.

       SRAM Memory

       The internal SRAM of the Stellaris devices is located at address 0x2000.0000 of the device memory
       map. To reduce the number of time consuming read-modify-write (RMW) operations, ARM has
       introduced bit-banding technology in the Cortex-M3 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.

June 14, 2007                                                                                 131

                       Luminary Micro Confidential-Advance Product Information
Internal Memory

8.2.2    The bit-band alias is calculated by using the formula:
8.2.2.1
8.2.2.2  bit-band alias = bit-band base + (byte offset * 32) + (bit number * 4)

         For example, if bit 3 at address 0x2000.1000 is to be modified, the bit-band alias is calculated as:

         0x2200.0000 + (0x1000 * 32) + (3 * 4) = 0x2202.000C

         With the alias address calculated, an instruction performing a read/write to address 0x2202.000C
         allows direct access to only bit 3 of the byte at address 0x2000.1000.

         For details about bit-banding, please refer to Chapter 4, "Memory Map" in the ARM CortexTM-M3
         Technical Reference Manual.

         Flash Memory

         The flash 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. An individual 32-bit word can be
         programmed to change bits that are currently 1 to a 0. These blocks are paired into a set of 2-KB
         blocks that can be individually protected. The protection allows blocks to 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.

         Flash Memory Timing

         The timing for the flash is automatically handled by the flash controller. However, in order to do so,
         it must know the clock rate of the system in order to time its internal signals properly. The number
         of clock cycles per microsecond must be provided to the flash controller for it to accomplish this
         timing. It is software's responsibility to keep the flash controller updated with this information via the
         USec Reload (USECRL) register.

         On reset, the USECRL register is loaded with a value that configures the flash timing so that it works
         with the maximum clock rate of the part. If software changes the system operating frequency, the
         new operating frequency minus 1 (in MHz) must be loaded into USECRL before any flash
         modifications are attempted. For example, if the device is operating at a speed of 20 MHz, a value
         of 0x13 (20-1) must be written to the USECRL register.

         Flash Memory Protection

         The user is provided two forms of flash protection per 2-KB flash blocks infour pairs of 32-bit wide
         registers. The protection policy for each form is controlled by individual bits (per policy per block)
         in the FMPPEn and FMPREn registers.

          Flash Memory Protection Program Enable (FMPPEn): If set, the block may be programmed
             (written) or erased. If cleared, the block may not be changed.

          Flash Memory Protection Read Enable (FMPREn): If set, the block may be executed or read
             by software or debuggers. If cleared, the block may only be executed. The contents of the memory
             block are prohibited from being accessed as data and traversing the DCode bus.

         The policies may be combined as shown in Table 8-1 on page 133.

132                                                                       June 14, 2007

                 Luminary Micro Confidential-Advance Product Information
                                                                                        LM3S8938 Microcontroller

         Table 8-1. Flash Protection Policy Combinations

         FMPPEn FMPREn Protection

               0  0 Execute-only protection. The block may only be executed and may not be written or erased. This mode

                  is used to protect code.

               1  0 The block may be written, erased or executed, but not read. This combination is unlikely to be used.

               0  1 Read-only protection. The block may be read or executed but may not be written or erased. This mode

                  is used to lock the block from further modification while allowing any read or execute access.

               1  1 No protection. The block may be written, erased, executed or read.

         An access that attempts to program or erase a PE-protected block is prohibited. A controller interrupt
         may be optionally generated (by setting the AMASK bit in the FIM register) to alert software developers
         of poorly behaving software during the development and debug phases.

         An access that attempts to read an RE-protected block is prohibited. Such accesses return data
         filled with all 0s. A controller interrupt may be optionally generated to alert software developers of
         poorly behaving software during the development and debug phases.

         The factory settings for the FMPREn and FMPPEn registers are a value of 1 for all implemented
         banks. This implements a policy of open access and programmability. The register bits may be
         changed by writing the specific register bit. The changes are not permanent until the register is
         committed (saved), at which point the bit change is permanent. If a bit is changed from a 1 to a 0
         and not committed, it may be restored by executing a power-on reset sequence. Details on
         programming these bits are discussed in "Nonvolatile Register Programming" on page 134.

8.3 Flash Memory Initialization and Configuration

8.3.1    Flash Programming
8.3.1.1
         The Stellaris devices provide a user-friendly interface for flash programming. All erase/program
         operations are handled via three registers: FMA, FMD, and FMC.

         To program a 32-bit word:

         1. Write source data to the FMD register.

         2. Write the target address to the FMA register.

         3. Write the flash write key and the WRITE bit (a value of 0xA442.0001) to the FMC register.

8.3.1.2  4. Poll the FMC register until the WRITE bit is cleared.

         To perform an erase of a 1-KB page:

         1. Write the page address to the FMA register.

         2. Write the flash write key and the ERASE bit (a value of 0xA442.0002) to the FMC register.

8.3.1.3  3. Poll the FMC register until the ERASE bit is cleared.

         To perform a mass erase of the flash:

         1. Write the flash write key and the MERASE bit (a value of 0xA442.0004) to the FMC register.

         2. Poll the FMC register until the MERASE bit is cleared.

June 14, 2007                                                                                                     133

                  Luminary Micro Confidential-Advance Product Information
Internal Memory

8.3.2  Nonvolatile Register Programming

       This section discusses how to update registers that are resident within the flash memory itself.
       These registers exist in a separate space from the main flash array and are not affected by an
       ERASE or MASS ERASE operation. These nonvolatile registers are updated by using the COMT bit
       in the FMC register to activate a write operation. For the USER_DBG register, the data to be written
       must be loaded into the FMD register before it is "committed". All other registers are R/W and can
       have their operation tried before committing them to nonvolatile memory.

       Important: These register can only have bits changed from 1 to 0 by the user and there is no
                       mechanism for the user to erase them back to a 1 value.

       In addition, the USER_REG0, USER_REG1, and USER_DBG use bit 31 (NOTWRITTEN) of their
       respective registers to indicate that they are available for user write. These three registers can only
       be written once whereas the flash protection registers may be written multiple times. Table
       8-2 on page 134 provides the FMA address required for commitment of each of the registers and
       the source of the data to be written when the COMT bit of the FMC register is written with a value of
       0xA442.0008. After writing the COMT bit, the user may poll the FMC register to wait for the commit
       operation to complete.

       Table 8-2. Flash Resident Registersa

       Register to be Committed FMA Value Data Source

       FMPRE0         0x0000.0000 FMPRE0

       FMPRE1         0x0000.0002 FMPRE1

       FMPRE2         0x0000.0004 FMPRE2

       FMPRE3         0x0000.0008 FMPRE3

       FMPPE0         0x0000.0001 FMPPE0

       FMPPE1         0x0000.0003 FMPPE1

       FMPPE2         0x0000.0005 FMPPE2

       FMPPE3         0x0000.0007 FMPPE3

       USER_REG0      0x8000.0000 USER_REG0

       USER_REG1      0x8000.0001 USER_REG1

       USER_DBG       0x7510.0000 FMD

       a. Which FMPREn and FMPPEn registers are available depend on the flash size of your particular Stellaris device.

8.4 Register Map

                Table 8-3 on page 134 lists the Flash memory and control registers. The offset listed is a hexadecimal
                increment to the register's address. The FMA, FMD, FMC, FCRIS, FCIM, and FCMISC registers
                are relative to the Flash control base address of 0x400F.D000. The FMPREn, FMPPEn, USECRL,
                USER_DBG, and USER_REGn registers are relative to the System Control base address of
                0x400F.E000.

                Note: A BV in the Reset column indicates the reset is a Build Value and part-specific. See the
                           page number referenced for the reset value description.

Table 8-3. Internal Memory Register Map

Offset Name           Type               Reset  Description                    See
                                                                               page

Flash Control Offset

134                                                                            June 14, 2007

                      Luminary Micro Confidential-Advance Product Information
                                                                                LM3S8938 Microcontroller

  Offset Name           Type      Reset    Description                                         See
                                                                                               page
  0x000 FMA             R/W   0x0000.0000  Flash Memory Address                                 136
  0x004 FMD             R/W   0x0000.0000  Flash Memory Data                                    137
  0x008 FMC             R/W   0x0000.0000  Flash Memory Control                                 138
  0x00C FCRIS            RO   0x0000.0000  Flash Controller Raw Interrupt Status                140
  0x010 FCIM            R/W   0x0000.0000  Flash Controller Interrupt Mask                      141
  0x014 FCMISC         R/W1C  0x0000.0000  Flash Controller Masked Interrupt Status and Clear   142
System Control Offset
  0x130 FMPRE0         R/W    BV           Flash Memory Protection Read Enable 0               144
  0x200 FMPRE0
  0x134 FMPPE0         R/W    BV           Flash Memory Protection Read Enable 0               144
  0x400 FMPPE0
  0x140 USECRL         R/W    BV           Flash Memory Protection Program Enable 0            145
  0x1D0 USER_DBG
  0x1E0 USER_REG0      R/W    BV           Flash Memory Protection Program Enable 0            145
  0x1E4 USER_REG1
  0x204 FMPRE1         R/W    0x31         USec Reload                                         143
  0x208 FMPRE2
  0x20C FMPRE3         R/W    0xFFFF.FFFE User Debug                                           146
  0x404 FMPPE1
  0x408 FMPPE2         R/W    0x8FFF.FFFF User Register 0                                      147
  0x40C FMPPE3
                       R/W    0x8FFF.FFFF User Register 1                                      148

                       R/W    0xFFFF.FFFF Flash Memory Protection Read Enable 1                149

                       R/W    0xFFFF.FFFF Flash Memory Protection Read Enable 2                150

                       R/W    0xFFFF.FFFF Flash Memory Protection Read Enable 3                151

                       R/W    0xFFFF.FFFF Flash Memory Protection Program Enable 1             152

                       R/W    0xFFFF.FFFF Flash Memory Protection Program Enable 2             153

                       R/W    0xFFFF.FFFF Flash Memory Protection Program Enable 3             154

8.5 Flash Register Descriptions (Flash Control Offset)

                The remainder of this section lists and describes the Flash Memory registers, in numerical order by
                address offset.

June 14, 2007                                                                                  135

                       Luminary Micro Confidential-Advance Product Information
Internal Memory

           Register 1: Flash Memory Address (FMA), offset 0x000

           During a write operation, this register contains a 4-byte-aligned address and specifies where the
           data is written. During erase operations, this register contains a 1 KB-aligned address and specifies
           which page is erased. Note that the alignment requirements must be met by software or the results
           of the operation are unpredictable.

Flash Memory Address (FMA)

Base 0x400F.D000
Offset 0x000
Type R/W, reset 0x0000.0000

       31  30                29   28   27    26   25     24   23       22   21   20        19   18   17   16

                                                            OFFSET

Type R/W   R/W               R/W  R/W  R/W   R/W  R/W    R/W  R/W      R/W  R/W  R/W       R/W  R/W  R/W  R/W

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

                                                            OFFSET

Type R/W   R/W               R/W  R/W  R/W   R/W  R/W    R/W  R/W      R/W  R/W  R/W       R/W  R/W  R/W  R/W

Reset  0         0           0    0    0     0    0      0          0  0    0    0         0    0    0    0

Bit/Field            Name              Type       Reset  Description
  31:0              OFFSET             R/W         0x0
                                                         Address offset in flash where operation is performed, except for
                                                         nonvolatile registers (see "Nonvolatile Register Programming" on page
                                                         134 for details on values for this field).

136                                                                                                  June 14, 2007

                                  Luminary Micro Confidential-Advance Product Information
                                                                                               LM3S8938 Microcontroller

           Register 2: Flash Memory Data (FMD), offset 0x004

           This register contains the data to be written during the programming cycle or read during the read
           cycle. Note that the contents of this register are undefined for a read access of an execute-only
           block. This register is not used during the erase cycles.

Flash Memory Data (FMD)

Base 0x400F.D000
Offset 0x004
Type R/W, reset 0x0000.0000

       31      30            29   28   27    26   25     24         23   22   21          20   19   18   17   16

                                                              DATA

Type R/W       R/W           R/W  R/W  R/W   R/W  R/W    R/W        R/W  R/W  R/W         R/W  R/W  R/W  R/W  R/W

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

                                                              DATA

Type R/W       R/W           R/W  R/W  R/W   R/W  R/W    R/W        R/W  R/W  R/W         R/W  R/W  R/W  R/W  R/W

Reset  0       0             0    0    0     0    0      0          0    0    0           0    0    0    0    0

Bit/Field           Name               Type       Reset  Description
  31:0              DATA               R/W         0x0   Data value for write operation.

June 14, 2007                                                                                                 137

                                  Luminary Micro Confidential-Advance Product Information
Internal Memory

           Register 3: Flash Memory Control (FMC), offset 0x008

           When this register is written, the flash controller initiates the appropriate access cycle for the location
           specified by the Flash Memory Address (FMA) register (see page 136). If the access is a write
           access, the data contained in the Flash Memory Data (FMD) register (see page 137) is written.

           This is the final register written and initiates the memory operation. There are four control bits in the
           lower byte of this register that, when set, initiate the memory operation. The most used of these
           register bits are the ERASE and WRITE bits.

           It is a programming error to write multiple control bits and the results of such an operation are
           unpredictable.

Flash Memory Control (FMC)

Base 0x400F.D000
Offset 0x008
Type R/W, reset 0x0000.0000

       31  30                29  28  27    26  25          24  23       22  21  20        19   18   17   16

                                                              WRKEY

Type WO    WO                WO  WO  WO    WO  WO          WO  WO       WO  WO  WO        WO   WO   WO   WO

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                                    COMT MERASE ERASE WRITE

Type RO    RO                RO  RO  RO    RO  RO          RO  RO       RO  RO  RO        R/W  R/W  R/W  R/W

Reset  0         0           0   0   0     0            0  0         0  0   0   0         0    0    0    0

Bit/Field             Name           Type      Reset       Description
31:16              WRKEY            WO         0x0
  15:4              reserved          RO                   This field contains a write key, which is used to minimize the incidence
    3                COMT            R/W          0        of accidental flash writes. The value 0xA442 must be written into this
                                                  0        field for a write to occur. Writes to the FMC register without this WRKEY
    2               MERASE           R/W                   value are ignored. A read of this field returns the value 0.
                                                  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.

                                                           Commit (write) of register value to nonvolatile storage. A write of 0 has
                                                           no effect on the state of this bit.

                                                           If read, the state of the previous commit access is provided. If the
                                                           previous commit access is complete, a 0 is returned; otherwise, if the
                                                           commit access is not complete, a 1 is returned.

                                                           This can take up to 50 s.

                                                           Mass erase flash memory.

                                                           If this bit is set, the flash main memory of the device is all erased. A
                                                           write of 0 has no effect on the state of this bit.

                                                           If read, the state of the previous mass erase access is provided. If the
                                                           previous mass erase access is complete, a 0 is returned; otherwise, if
                                                           the previous mass erase access is not complete, a 1 is returned.

                                                           This can take up to 250 ms.

138                                                                                                 June 14, 2007

                                 Luminary Micro Confidential-Advance Product Information
                                                                               LM3S8938 Microcontroller

Bit/Field       Name  Type  Reset  Description
    1          ERASE  R/W      0
                                   Erase a page of flash memory.
    0          WRITE  R/W      0
                                   If this bit is set, the page of flash main memory as specified by the
                                   contents of FMA is erased. A write of 0 has no effect on the state of this
                                   bit.

                                   If read, the state of the previous erase access is provided. If the previous
                                   erase access is complete, a 0 is returned; otherwise, if the previous
                                   erase access is not complete, a 1 is returned.

                                   This can take up to 25 ms.

                                   Write a word into flash memory.

                                   If this bit is set, the data stored in FMD is written into the location as
                                   specified by the contents of FMA. A write of 0 has no effect on the state
                                   of this bit.

                                   If read, the state of the previous write update is provided. If the previous
                                   write access is complete, a 0 is returned; otherwise, if the write access
                                   is not complete, a 1 is returned.

                                   This can take up to 50 s.

June 14, 2007                                                                  139

                      Luminary Micro Confidential-Advance Product Information
Internal Memory

           Register 4: Flash Controller Raw Interrupt Status (FCRIS), offset 0x00C

           This register indicates that the flash controller has an interrupt condition. An interrupt is only signaled
           if the corresponding FCIM register bit is set.

Flash Controller Raw Interrupt Status (FCRIS)

Base 0x400F.D000
Offset 0x00C
Type RO, 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                                      PRIS ARIS

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

Bit/Field            Name           Type          Reset  Description
  31:2              reserved         RO              0
    1                                RO              0   Software should not rely on the value of a reserved bit. To provide
                      PRIS                               compatibility with future products, the value of a reserved bit should be
    0                                RO              0   preserved across a read-modify-write operation.
                      ARIS
                                                         Programming Raw Interrupt Status

                                                         This bit indicates the current state of the programming cycle. If set, the
                                                         programming cycle completed; if cleared, the programming cycle has
                                                         not completed. Programming cycles are either write or erase actions
                                                         generated through the Flash Memory Control (FMC) register bits (see
                                                         page 138).

                                                         Access Raw Interrupt Status

                                                         This bit indicates if the flash was improperly accessed. If set, the program
                                                         tried to access the flash counter to the policy as set in the Flash Memory
                                                         Protection Read Enable (FMPREn) and Flash Memory Protection
                                                         Program Enable (FMPPEn) registers. Otherwise, no access has tried
                                                         to improperly access the flash.

140                                                                                                June 14, 2007

                                Luminary Micro Confidential-Advance Product Information
                                                                                          LM3S8938 Microcontroller

           Register 5: Flash Controller Interrupt Mask (FCIM), offset 0x010

           This register controls whether the flash controller generates interrupts to the controller.

Flash Controller Interrupt Mask (FCIM)

Base 0x400F.D000
Offset 0x010
Type R/W, 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                                       PMASK AMASK

Type RO        RO            RO  RO  RO     RO  RO     RO       RO           RO  RO  RO   RO  RO        R/W  R/W

Reset  0       0             0   0      0   0   0            0            0  0   0   0    0   0         0    0

Bit/Field           Name             Type       Reset  Description
  31:2             reserved           RO           0
    1              PMASK             R/W           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
    0              AMASK             R/W           0   preserved across a read-modify-write operation.

                                                       Programming Interrupt Mask

                                                       This bit controls the reporting of the programming raw interrupt status
                                                       to the controller. If set, a programming-generated interrupt is promoted
                                                       to the controller. Otherwise, interrupts are recorded but suppressed from
                                                       the controller.

                                                       Access Interrupt Mask

                                                       This bit controls the reporting of the access raw interrupt status to the
                                                       controller. If set, an access-generated interrupt is promoted to the
                                                       controller. Otherwise, interrupts are recorded but suppressed from the
                                                       controller.

June 14, 2007                                                                                                141

                                 Luminary Micro Confidential-Advance Product Information
Internal Memory

           Register 6: Flash Controller Masked Interrupt Status and Clear (FCMISC),
           offset 0x014

           This register provides two functions. First, it reports the cause of an interrupt by indicating which
           interrupt source or sources are signalling the interrupt. Second, it serves as the method to clear the
           interrupt reporting.

Flash Controller Masked Interrupt Status and Clear (FCMISC)

Base 0x400F.D000
Offset 0x014
Type R/W1C, 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                                       PMISC AMISC

Type RO    RO       RO         RO  RO     RO  RO     RO       RO           RO  RO  RO   RO  RO R/W1C R/W1C

Reset  0         0  0          0   0      0   0            0            0  0   0   0    0   0   0   0

Bit/Field            Name           Type      Reset  Description
  31:2              reserved         RO          0
    1                PMISC         R/W1C         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
    0                AMISC         R/W1C         0   preserved across a read-modify-write operation.

                                                     Programming Masked Interrupt Status and Clear

                                                     This bit indicates whether an interrupt was signaled because a
                                                     programming cycle completed and was not masked. This bit is cleared
                                                     by writing a 1. The PRIS bit in the FCRIS register (see page 140) is also
                                                     cleared when the PMISC bit is cleared.

                                                     Access Masked Interrupt Status and Clear

                                                     This bit indicates whether an interrupt was signaled because an improper
                                                     access was attempted and was not masked. This bit is cleared by writing
                                                     a 1. The ARIS bit in the FCRIS register is also cleared when the AMISC
                                                     bit is cleared.

8.6 Flash Register Descriptions (System Control Offset)

                The remainder of this section lists and describes the Flash Memory registers, in numerical order by
                address offset.

142                                                                                             June 14, 2007

                               Luminary Micro Confidential-Advance Product Information
                                                                                              LM3S8938 Microcontroller

&n