SWCU193A
April 2023 – August 2024
CC2340R2
,
CC2340R5
,
CC2340R5-Q1
1
Read This First
About This Manual
Devices
Register, Field, and Bit Calls
Related Documentation
Trademarks
1
Architectural Overview
1.1
Target Applications
1.2
Introduction
1.3
Arm Cortex M0+
1.3.1
Processor Core
1.3.2
SysTick Timer
1.3.3
Nested Vectored Interrupt Controller
1.3.4
System Control Block (SCB)
1.4
On-Chip Memory
1.4.1
SRAM
1.4.2
Flash
1.4.3
ROM
1.5
Power Supply System
1.5.1
VDDS
1.5.2
VDDR
1.5.3
VDDD Digital Core Supply
1.5.4
DC/DC Converter
1.6
Radio
1.7
AES 128-bit Cryptographic Accelerator
1.8
System Timer (SYSTIM)
1.9
General Purpose Timers (LGPT)
1.10
Always-ON (AON) or Ultra-Low Leakage (ULL) Domain
1.10.1
Watchdog Timer
1.10.2
Battery and Temperature Monitor
1.10.3
Real-time Clock (RTC)
1.10.4
Low Power Comparator
1.11
Direct Memory Access
1.12
System Control and Clock
1.13
Communication Peripherals
1.13.1
UART
1.13.2
I2C
1.13.3
SPI
1.14
Programmable I/Os
1.15
Serial Wire Debug (SWD)
2
Arm Cortex-M0+ Processor
2.1
Introduction
2.2
Block Diagram
2.3
Overview
2.3.1
Peripherals
2.3.2
Programmer's Model
2.3.3
Instruction Set Summary
2.3.4
Memory Model
2.4
Registers
2.4.1
BPU Registers
2.4.2
CPU_ROM_TABLE Registers
2.4.3
DCB Registers
2.4.4
SCB Registers
2.4.5
SCSCS Registers
2.4.6
NVIC Registers
2.4.7
SYSTICK Registers
3
Memory Map
3.1
Memory Map
4
Interrupts and Events
4.1
Exception Model
4.1.1
Exception States
4.1.2
Exception Types
4.1.3
Exception Handlers
4.1.4
Vector Table
4.1.5
Exception Priorities
4.1.6
Exception Entry and Return
4.1.6.1
Exception Entry
4.1.6.2
Exception Return
4.2
Fault Handling
4.2.1
Lockup
4.3
Event Fabric
4.3.1
Introduction
4.3.2
Overview
4.3.3
Registers
4.3.4
AON Event Fabric
4.3.4.1
AON Common Input Events List
4.3.4.2
AON Event Subscribers
4.3.4.3
Power Management Controller (PMCTL)
4.3.4.4
Real Time Clock (RTC)
4.3.4.5
AON to MCU Event Fabric
4.3.5
MCU Event Fabric
4.3.5.1
Common Input Event List
4.3.5.2
MCU Event Subscribers
4.3.5.2.1
System CPU
4.3.5.2.2
Non-Maskable Interrupt (NMI)
4.4
Digital Test Bus (DTB)
4.5
EVTULL Registers
4.6
EVTSVT Registers
5
Debug Subsystem
5.1
Introduction
5.2
Block Diagram
5.3
Overview
5.3.1
Physical Interface
5.3.2
Debug Access Ports
5.4
Debug Features
5.4.1
Processor Debug
5.4.2
Breakpoint Unit (BPU)
5.4.3
Peripheral Debug
5.5
Behavior in Low Power Modes
5.6
Restricting Debug Access
5.7
Mailbox (DSSM)
5.8
Mailbox Events
5.8.1
CPU Interrupt Event (AON_DBG_COMB)
5.9
Software Considerations
5.10
DBGSS Registers
6
Power, Reset, and Clocking
6.1
Introduction
6.2
System CPU Modes
6.3
Supply System
6.3.1
Internal DC/DC Converter and Global LDO
6.4
Power States
6.4.1
Reset
6.4.2
Shutdown
6.4.3
Active
6.4.4
Idle
6.4.5
Standby
6.5
Digital Power Partitioning
6.6
Clocks
6.6.1
CLKSVT
6.6.2
CLKULL
6.7
Resets
6.7.1
Watchdog Timer (WDT)
6.7.2
LF Loss Detection
6.8
AON (REG3V3) Register Bank
6.9
CKMD Registers
6.10
CLKCTL Registers
6.11
PMCTL Registers
7
Internal Memory
7.1
SRAM
7.2
VIMS
7.2.1
Introduction
7.2.2
Block Diagram
7.2.3
Cache
7.2.3.1
Basic Cache Mechanism
7.2.3.2
Cache Prefetch Mechanism
7.2.3.3
Cache Micro-Prediction Mechanism
7.2.4
Flash
7.2.4.1
Flash Read-Only Protection
7.2.4.2
Flash Memory Programming
7.2.5
ROM
7.3
VIMS Registers
7.4
FLASH Registers
8
Device Boot and Bootloader
8.1
Device Boot and Programming
8.1.1
Boot Flow
8.1.2
Boot Timing
8.1.3
Boot Status
8.1.4
Boot Protection/Locking Mechanisms
8.1.5
Debug and Active SWD Connections at Boot
8.1.6
Flashless Test Mode and Tools Client Mode
8.1.6.1
Flashless Test Mode
8.1.6.2
Tools Client Mode
8.1.7
Retest Mode and Return-to-Factory Procedure
8.1.8
Disabling SWD Debug Port
8.2
Flash Programming
8.2.1
CCFG
8.2.2
CCFG Permissions/Restrictions that Affect Flash Programming
8.2.3
SACI Flash Programming Commands
8.2.4
Flash Programming Flows
8.2.4.1
Initial Programming of a New Device
8.2.4.2
Reprogramming of Previously Programmed Device
8.2.4.3
Add User Record on Already Programmed Device as Part of Commissioning Step
8.2.4.4
Incrementally Program Ancillary Data to MAIN Flash Sectors of a Previously Programmed Device
8.2.4.5
Debug Flow Charts
8.3
Device Management Command Interface
8.3.1
SACI Communication Protocol
8.3.1.1
Host Side Protocol
8.3.1.2
Command Format
8.3.1.3
Response Format
8.3.1.4
Response Result Field
8.3.1.5
Command Sequence Tag
8.3.1.6
Host Side Timeout
8.3.2
SACI Commands
8.3.2.1
Miscellaneous Commands
8.3.2.1.1
SACI_CMD_MISC_NO_OPERATION
8.3.2.1.2
SACI_CMD_MISC_GET_DIE_ID
8.3.2.1.3
SACI_CMD_MISC_GET_CCFG_USER_REC
8.3.2.2
Debug Commands
8.3.2.2.1
SACI_CMD_DEBUG_REQ_PWD_ID
8.3.2.2.2
SACI_CMD_DEBUG_SUBMIT_AUTH
8.3.2.2.3
SACI_CMD_DEBUG_EXIT_SACI_HALT
8.3.2.2.4
SACI_CMD_DEBUG_EXIT_SACI_SHUTDOWN
8.3.2.2.5
SACI_CMD_BLDR_APP_RESET_DEVICE
8.3.2.2.6
SACI_CMD_BLDR_APP_EXIT_SACI_RUN
8.3.2.3
Flash Programming Commands
8.3.2.3.1
SACI_CMD_FLASH_ERASE_CHIP
8.3.2.3.2
SACI_CMD_FLASH_PROG_CCFG_SECTOR
8.3.2.3.3
SACI_CMD_FLASH_PROG_CCFG_USER_REC
8.3.2.3.4
SACI_CMD_FLASH_PROG_MAIN_SECTOR
8.3.2.3.5
SACI_CMD_FLASH_PROG_MAIN_PIPELINED
8.3.2.3.6
SACI_CMD_FLASH_VERIFY_MAIN_SECTORS
8.3.2.3.7
SACI_CMD_FLASH_VERIFY_CCFG_SECTOR
8.4
Bootloader Support
8.4.1
Bootloader Parameters
8.4.2
Persistent State
8.4.3
User-Defined Bootloader Guidelines
8.5
ROM Serial Bootloader
8.5.1
ROM Serial Bootloader Interfaces
8.5.1.1
Packet Handling
8.5.1.1.1
Packet Acknowledge and Not-Acknowledge Bytes
8.5.1.2
Transport Layer
8.5.1.2.1
UART Transport
8.5.1.2.1.1
UART Baud Rate Automatic Detection
8.5.1.2.2
SPI Transport
8.5.2
ROM Serial Bootloader Parameters
8.5.3
ROM Serial Bootloader Commands
8.5.3.1
BLDR_CMD_PING
8.5.3.2
BLDR_CMD_GET_STATUS
8.5.3.3
BLDR_CMD_GET_PART_ID
8.5.3.4
BLDR_CMD_RESET
8.5.3.5
BLDR_CMD_CHIP_ERASE
8.5.3.6
BLDR_CMD_CRC32
8.5.3.7
BLDR_CMD_DOWNLOAD
8.5.3.8
BLDR_CMD_DOWNLOAD_CRC
8.5.3.9
BLDR_CMD_SEND_DATA
8.5.4
Bootloader Firmware Update Example
9
Device Configuration
9.1
Factory Configuration (FCFG)
9.2
Customer Configuration (CCFG)
10
General Purpose Timers (LGPT)
10.1
Overview
10.2
Block Diagram
10.3
Functional Description
10.3.1
Prescaler
10.3.2
Counter
10.3.3
Target
10.3.4
Channel Input Logic
10.3.5
Channel Output Logic
10.3.6
Channel Actions
10.3.6.1
Period and Pulse Width Measurement
10.3.6.2
Clear on Zero, Toggle on Compare Repeatedly
10.3.6.3
Set on Zero, Toggle on Compare Repeatedly
10.3.7
Channel Capture Configuration
10.3.8
Channel Filters
10.3.8.1
Setting up the Channel Filters
10.3.9
Synchronize Multiple LGPT Timers
10.3.10
Interrupts, ADC Trigger, and DMA Request
10.4
Timer Modes
10.4.1
Quadrature Decoder
10.4.2
DMA
10.4.3
IR Generation
10.4.4
Fault and Park
10.4.5
Deadband
10.4.6
Deadband, Fault, and Park
10.4.7
Example Application: Brushless DC (BLDC) Motor
10.5
LGPT0 Registers
10.6
LGPT1 Registers
10.7
LGPT2 Registers
10.8
LGPT3 Registers
11
System Timer (SYSTIM)
11.1
Overview
11.2
Block Diagram
11.3
Functional Description
11.3.1
Common Channel Features
11.3.1.1
Compare Mode
11.3.1.2
Capture Mode
11.3.1.3
Additional Channel Arming Methods
11.3.2
Interrupts and Events
11.4
SYSTIM Registers
12
Real Time Clock (RTC)
12.1
Introduction
12.2
Block Diagram
12.3
Interrupts and Events
12.3.1
Input Event
12.3.2
Output Event
12.3.3
Arming and Disarming Channels
12.4
Capture and Compare Configuration
12.4.1
Capture
12.4.2
Compare
12.5
RTC Registers
13
Low Power Comparator and SYS0
13.1
Introduction
13.2
Block Diagram
13.3
Functional Description
13.3.1
Input Selection
13.3.2
Voltage Divider
13.3.3
Hysteresis
13.3.4
Wake-Up
13.4
SYS0 Registers
14
Battery Monitor, Temperature Sensor, and DCDC Controller (PMUD)
14.1
Introduction
14.2
Functional Description
14.2.1
BATMON
14.2.2
DCDC
14.3
PMUD Registers
15
Micro Direct Memory Access (µDMA)
15.1
Introduction
15.2
Block Diagram
15.3
Functional Description
15.3.1
Channel Assignments
15.3.2
Priority
15.3.3
Arbitration Size
15.3.4
Request Types
15.3.4.1
Single Request
15.3.4.2
Burst Request
15.3.5
Channel Configuration
15.3.6
Transfer Modes
15.3.6.1
Stop Mode
15.3.6.2
Basic Mode
15.3.6.3
Auto Mode
15.3.6.4
Ping-Pong Mode
15.3.6.5
Memory Scatter-Gather Mode
15.3.6.6
Peripheral Scatter-Gather Mode
15.3.7
Transfer Size and Increments
15.3.8
Peripheral Interface
15.3.9
Software Request
15.3.10
Interrupts and Errors
15.3.11
Initialization and Configuration
15.3.11.1
Module Initialization
15.3.11.2
Configuring a Memory-to-Memory Transfer
15.3.11.3
Configure the Channel Attributes
15.3.11.4
Configure the Channel Control Structure
15.3.11.5
Start the Transfer
15.3.11.6
Software Considerations
15.4
DMA Registers
16
Advanced Encryption Standard (AES)
16.1
Introduction
16.1.1
AES Performance
16.2
Functional Description
16.2.1
Reset Considerations
16.2.2
Interrupt and Event Support
16.2.2.1
Interrupt Events and Requests
16.2.2.2
Connection to Event Fabric
16.2.3
µDMA
16.2.3.1
µDMA Example
16.3
Encryption and Decryption Configuration
16.3.1
CBC-MAC (Cipher Block Chaining-Message Authentication Code)
16.3.2
CBC (Cipher Block Chaining) Encryption
16.3.3
CBC Decryption
16.3.4
CTR (Counter) Encryption/Decryption
16.3.5
ECB (Electronic Code Book) Encryption
16.3.6
ECB Decryption
16.3.7
CFB (Cipher Feedback) Encryption
16.3.8
CFB Decryption
16.3.9
OFB (Open Feedback) Encryption
16.3.10
OFB Decryption
16.3.11
PCBC (Propagating Cipher Block Chaining) Encryption
16.3.12
PCBC Decryption
16.3.13
CTR-DRBG (Counter-Deterministic Random Bit Generator)
16.3.14
CCM
16.4
AES Registers
17
Analog to Digital Converter (ADC)
17.1
Overview
17.2
Block Diagram
17.3
Functional Description
17.3.1
ADC Core
17.3.2
Voltage Reference Options
17.3.3
Resolution Modes
17.3.4
ADC Clocking
17.3.5
Power-Down Behavior
17.3.6
Sampling Trigger Sources and Sampling Modes
17.3.6.1
AUTO Sampling Mode
17.3.6.2
MANUAL Sampling Mode
17.3.7
Sampling Period
17.3.8
Conversion Modes
17.3.9
ADC Data Format
17.3.10
Status Register
17.3.11
ADC Events
17.3.11.1
CPU Interrupt Event Publisher (INT_EVENT0)
17.3.11.2
Generic Event Publisher (INT_EVENT1)
17.3.11.3
DMA Trigger Event Publisher (INT_EVENT2)
17.3.11.4
Generic Event Subscriber
17.4
Advanced Features
17.4.1
Window Comparator
17.4.2
DMA and FIFO Operation
17.4.2.1
DMA/CPU Operation in Non-FIFO Mode (FIFOEN=0)
17.4.2.2
DMA/CPU Operation in FIFO Mode (FIFOEN=1)
17.4.2.3
DMA/CPU Operation Summary Matrix
17.4.3
Ad-Hoc Single Conversion
17.5
ADC Registers
18
I/O Controller (IOC)
18.1
Introduction
18.2
Block Diagram
18.3
I/O Mapping and Configuration
18.3.1
Basic I/O Mapping
18.3.2
Radio GPO
18.3.3
Pin Mapping
18.3.4
DTB Muxing
18.4
Edge Detection
18.5
GPIO
18.6
I/O Pins
18.7
Unused Pins
18.8
Debug Configuration
18.9
IOC Registers
18.10
GPIO Registers
19
Universal Asynchronous Receiver/Transmitter (UART)
19.1
Introduction
19.2
Block Diagram
19.3
Functional Description
19.3.1
Transmit and Receive Logic
19.3.2
Baud Rate Generation
19.3.3
FIFO Operation
19.3.3.1
FIFO Remapping
19.3.4
Data Transmission
19.3.5
Flow Control
19.3.6
IrDA Encoding and Decoding
19.3.7
Interrupts
19.3.8
Loopback Operation
19.4
Interface to µDMA
19.5
Initialization and Configuration
19.6
UART Registers
20
Serial Peripheral Interface (SPI)
20.1
Overview
20.1.1
Features
20.1.2
Block Diagram
20.2
Signal Description
20.3
Functional Description
20.3.1
Clock Control
20.3.2
FIFO Operation
20.3.2.1
Transmit FIFO
20.3.2.2
Repeated Transmit Operation
20.3.2.3
Receive FIFO
20.3.2.4
FIFO Flush
20.3.3
Interrupts
20.3.4
Data Format
20.3.5
Delayed Data Sampling
20.3.6
Chip Select Control
20.3.7
Command Data Control
20.3.8
Protocol Descriptions
20.3.8.1
Motorola SPI Frame Format
20.3.8.2
Texas Instruments Synchronous Serial Frame Format
20.3.8.3
MICROWIRE Frame Format
20.3.9
CRC Configuration
20.3.10
Auto CRC Functionality
20.3.11
Auto Header Functionality
20.3.12
SPI Status
20.3.13
Debug Halt
20.4
µDMA Operation
20.5
Initialization and Configuration
20.6
SPI Registers
21
Inter-Integrated Circuit (I2C)
21.1
Introduction
21.2
Block Diagram
21.3
Functional Description
21.3.1
Functional Overview
21.3.1.1
Start and Stop Conditions
21.3.1.2
Data Format with 7-Bit Address
21.3.1.3
Data Validity
21.3.1.4
Acknowledge
21.3.1.5
Arbitration
21.3.2
Available Speed Modes
21.3.3
Interrupts
21.3.3.1
I2C Controller Interrupts
21.3.3.2
I2C Target Interrupts
21.3.4
Loopback Operation
21.3.5
Command Sequence Flow Charts
21.3.5.1
I2C Controller Command Sequences
21.3.5.2
I2C Target Command Sequences
21.4
Initialization and Configuration
21.5
I2C Registers
22
Radio
22.1
Introduction
22.2
Block Diagram
22.3
Overview
22.3.1
Radio Sub-Domains
22.3.2
Radio RAMs
22.3.3
Doorbell (DBELL)
22.3.3.1
Interrupts
22.3.3.2
GPIO Control
22.3.3.3
SYSTIM Interface
22.4
Radio Usage Model
22.4.1
CRC and Whitening
22.5
LRFDDBELL Registers
22.6
LRFDRXF Registers
22.7
LRFDTXF Registers
23
Revision History
15.3.11
Initialization and Configuration