nRF5340 PS v1.5
nRF5340 PS v1.5
Product Specification
v1.5
•
™
aQFN94 package, 7x7 mm • Operating temperature from -40°C to 105°C
• 514 EEMBC CoreMark score running from flash, 4.0 CoreMark per MHz • 244 EEMBC CoreMark score running from flash memory, 101
• Data watchpoint and trace (DWT), embedded trace macrocell (ETM), • Serial wire debug (SWD)
instrumentation trace macrocell (ITM), and cross trigger interface (CTI) • SWO trace port
• Serial wire debug (SWD) • 256 kB flash and 64 kB low leakage RAM
®
• Trace port interface unit (TPIU) • Bluetooth 5.2, IEEE 802.15.4-2006, 2.4 GHz enabled transceiver
• 4-bit parallel trace of ITM and ETM trace data • -98 dBm sensitivity in 1 Mbps Bluetooth Low Energy mode
• Serial wire output (SWO) trace of ITM data • -104 dBm sensitivity in 125 kbps Bluetooth Low Energy mode
• RSA public key cryptography with max key size 3072 bits • Bluetooth 5.2 - 2 Mbps, 1 Mbps, 500 kbps, and 125 kbps
• ECC support for most used curves • IEEE 802.15.4-2006 - 250 kbps
• Application key management using derived key model • Proprietary 2.4 GHz - 2 Mbps, 1 Mbps
• Two-way set associative cache towards flash and QSPI XIP code regions • Angle of Arrival (AoA) and Angle of Departure (AoD) direction
finding using Bluetooth Low Energy
• QSPI peripheral for communicating with an external flash memory device
• Single-ended antenna output (on-chip balun)
• Execute in place with optional on-the-fly encryption and decryption
• 128-bit AES/ECB/CCM/AAR co-processor (on-the-fly packet
• Near field communication (NFC-A) tag with wake-on field and touch-to-pair
encryption)
• Up to 5x SPI master/slave with EasyDMA
• 3.2 mA run current in TX (0 dBm)
• Up to 4x I2C compatible two-wire master/slave with EasyDMA
• 2.6 mA run current in RX
• Up to 4x UART (CTS/RTS) with EasyDMA
• RSSI (1 dB resolution)
• Audio peripherals - I2S compatible, digital microphone interface (PDM)
• SPI master/slave with EasyDMA
• Four pulse width modulator (PWM) units with EasyDMA
• I2C compatible two-wire master/slave with EasyDMA
• 12-bit, 200 ksps ADC with EasyDMA - eight configurable channels with
• UART (CTS/RTS) with EasyDMA
programmable gain
• Three 32-bit timers with counter mode
• Three 32-bit timers with counter mode
• Two real-time counters (RTC)
• Two 24-bit real-time counters (RTC)
• Temperature sensor
• Two Quadrature decoders (QDEC)
• Distributed programmable peripheral interconnect (DPPI)
• Distributed programmable peripheral interconnect (DPPI)
• Inter-processor communication (IPC)
• Inter-processor communication (IPC)
• Mutually exclusive peripheral (MUTEX)
• Mutually exclusive peripheral (MUTEX)
4406_640 v1.5 ii
nRF5340 features
Applications:
• Advanced computer peripherals and I/O devices • Internet of things (IoT)
• Professional lighting
• Bluetooth Low Energy Audio
1 Revision history. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Product overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 Block diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 RAM — Random access memory. . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.2 Flash — Non-volatile memory. . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.3 XIP — Execute in place. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.4 Access latency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4406_640 v1.5 iv
4.9.2 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.10 RESET — Reset control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.10.1 Power-on reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.10.2 Pin reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.10.3 Brownout reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.10.4 Wakeup from System OFF mode reset. . . . . . . . . . . . . . . . . . . . . 66
4.10.5 Soft reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.10.6 Watchdog timer reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.10.7 Network Force-OFF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.10.8 Retained registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.10.9 Application core reset behavior. . . . . . . . . . . . . . . . . . . . . . . . 67
4.10.10 Network core reset behavior. . . . . . . . . . . . . . . . . . . . . . . . . 68
4.10.11 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.10.12 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.11 CLOCK — Clock control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.11.1 HFCLK controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.11.2 LFCLK controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.11.3 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.11.4 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.12 OSCILLATORS — Oscillator control. . . . . . . . . . . . . . . . . . . . . . . . . 98
4.12.1 High-frequency (32 MHz) crystal oscillator (HFXO). . . . . . . . . . . . . . . . 98
4.12.2 Low-frequency (32.768 kHz) crystal oscillator (LFXO). . . . . . . . . . . . . . . 99
4.12.3 Low-frequency (32.768 kHz) external source. . . . . . . . . . . . . . . . . . 100
4.12.4 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.12.5 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7 Peripherals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4406_640 v1.5 v
7.1 Peripheral interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.1.1 Peripheral ID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.1.2 Peripherals with shared ID. . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.1.3 Peripheral registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.1.4 Bit set and clear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.1.5 Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.1.6 Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.1.7 Publish and subscribe. . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.1.8 Shortcuts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.1.9 Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.1.10 Secure/non-secure peripherals. . . . . . . . . . . . . . . . . . . . . . . . 153
7.2 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.2.1 EasyDMA error handling. . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.2.2 EasyDMA array list. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.3 ACL — Access control lists. . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.3.1 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.4 AAR — Accelerated address resolver. . . . . . . . . . . . . . . . . . . . . . . . 158
7.4.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.4.2 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.4.3 Resolving a resolvable address. . . . . . . . . . . . . . . . . . . . . . . . 159
7.4.4 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.4.5 IRK data structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.4.6 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.4.7 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.5 CCM — AES CCM mode encryption. . . . . . . . . . . . . . . . . . . . . . . . 166
7.5.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.5.2 Keystream generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.5.3 Encryption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.5.4 Decryption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
7.5.5 AES CCM and RADIO concurrent operation. . . . . . . . . . . . . . . . . . . 169
7.5.6 Encrypting packets on-the-fly in radio transmit mode. . . . . . . . . . . . . . . 169
7.5.7 Decrypting packets on-the-fly in RADIO receive mode. . . . . . . . . . . . . . . 170
7.5.8 CCM data structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
7.5.9 EasyDMA and ERROR event. . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.5.10 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.5.11 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.6 COMP — Comparator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.6.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.6.2 Differential mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.6.3 Single-ended mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.6.4 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
7.6.5 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.7 CRYPTOCELL — Arm TrustZone CryptoCell 312. . . . . . . . . . . . . . . . . . . . 196
7.7.1 Disclaimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
7.7.2 Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
7.7.3 Security configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
7.7.4 Cryptographic flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.7.5 Cryptographic key selection. . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.7.6 Internal memories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
7.7.7 Direct memory access (DMA). . . . . . . . . . . . . . . . . . . . . . . . . 200
7.7.8 Power and clock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
7.7.9 Interrupt handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
7.7.10 Standards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
7.7.11 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
4406_640 v1.5 vi
7.7.12 Accelerators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
7.7.13 Host integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
7.8 DCNF — Domain configuration. . . . . . . . . . . . . . . . . . . . . . . . . . 269
7.8.1 Protection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
7.8.2 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
7.9 DPPI — Distributed programmable peripheral interconnect. . . . . . . . . . . . . . 272
7.9.1 Subscribing to and publishing on channels. . . . . . . . . . . . . . . . . . . 273
7.9.2 DPPI controller (DPPIC). . . . . . . . . . . . . . . . . . . . . . . . . . . 275
7.9.3 Connection examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
7.9.4 Special considerations for a system implementing TrustZone for Cortex-M processors. . 276
7.9.5 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
7.10 ECB — AES electronic codebook mode encryption. . . . . . . . . . . . . . . . . 280
7.10.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
7.10.2 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
7.10.3 ECB data structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
7.10.4 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
7.10.5 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 285
7.11 EGU — Event generator unit. . . . . . . . . . . . . . . . . . . . . . . . . . 285
7.11.1 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
7.11.2 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 288
7.12 FPU — Floating point unit (FPU) exceptions. . . . . . . . . . . . . . . . . . . . 288
7.12.1 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
7.13 GPIO — General purpose input/output. . . . . . . . . . . . . . . . . . . . . . 293
7.13.1 Assigning pins between cores, peripherals, or subsystems. . . . . . . . . . . . . 294
7.13.2 Pin configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
7.13.3 Pin sense mechanism. . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
7.13.4 GPIO security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
7.13.5 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
7.13.6 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 303
7.14 GPIOTE — GPIO tasks and events. . . . . . . . . . . . . . . . . . . . . . . . 304
7.14.1 Pin events and tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
7.14.2 Port event. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
7.14.3 Tasks and events pin configuration. . . . . . . . . . . . . . . . . . . . . . 306
7.14.4 Low power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
7.14.5 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
7.15 I2S — Inter-IC sound interface. . . . . . . . . . . . . . . . . . . . . . . . . . 312
7.15.1 Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
7.15.2 Transmitting and receiving. . . . . . . . . . . . . . . . . . . . . . . . . . 312
7.15.3 Left right clock (LRCK). . . . . . . . . . . . . . . . . . . . . . . . . . . 313
7.15.4 Serial clock (SCK). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
7.15.5 Master clock (MCK). . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
7.15.6 Width, alignment and format. . . . . . . . . . . . . . . . . . . . . . . . 316
7.15.7 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
7.15.8 Module operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
7.15.9 Pin configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
7.15.10 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
7.15.11 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 336
7.16 IPC — Interprocessor communication. . . . . . . . . . . . . . . . . . . . . . . 337
7.16.1 IPC and PPI connections. . . . . . . . . . . . . . . . . . . . . . . . . . 339
7.16.2 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
7.16.3 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 342
7.17 KMU — Key management unit. . . . . . . . . . . . . . . . . . . . . . . . . . 343
7.17.1 Functional view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
7.17.2 Access control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
4406_640 v1.5 ix
7.29.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
7.29.2 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
7.29.3 Digital output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
7.29.4 Analog inputs and channels. . . . . . . . . . . . . . . . . . . . . . . . . 590
7.29.5 Operation modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
7.29.6 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
7.29.7 Resistor ladder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
7.29.8 Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
7.29.9 Acquisition time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
7.29.10 Limits event monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . 595
7.29.11 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
7.29.12 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 613
7.29.13 Performance factors. . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
7.30 SPIM — Serial peripheral interface master with EasyDMA. . . . . . . . . . . . . . 614
7.30.1 SPI master transaction sequence. . . . . . . . . . . . . . . . . . . . . . . 615
7.30.2 D/CX functionality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
7.30.3 Pin configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
7.30.4 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
7.30.5 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
7.30.6 Low power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
7.30.7 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
7.30.8 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 633
7.31 SPIS — Serial peripheral interface slave with EasyDMA. . . . . . . . . . . . . . . . 634
7.31.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
7.31.2 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
7.31.3 SPI slave operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
7.31.4 Semaphore operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
7.31.5 Pin configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
7.31.6 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
7.31.7 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 649
7.32 SPU — System protection unit. . . . . . . . . . . . . . . . . . . . . . . . . . 651
7.32.1 General concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
7.32.2 Flash access control. . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
7.32.3 RAM access control. . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
7.32.4 Peripheral access control. . . . . . . . . . . . . . . . . . . . . . . . . . 658
7.32.5 Pin access control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
7.32.6 DPPI access control. . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
7.32.7 External domain access control. . . . . . . . . . . . . . . . . . . . . . . . 662
7.32.8 Arm TrustZone for Cortex-M ID allocation. . . . . . . . . . . . . . . . . . . 663
7.32.9 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
7.33 SWI — Software interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . 674
7.33.1 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
7.34 TEMP — Temperature sensor. . . . . . . . . . . . . . . . . . . . . . . . . . 675
7.34.1 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
7.34.2 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 682
7.35 TIMER — Timer/counter. . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
7.35.1 Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
7.35.2 Compare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
7.35.3 Task delays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
7.35.4 Task priority. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
7.35.5 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
7.36 TWIM — I2C compatible two-wire interface master with EasyDMA. . . . . . . . . . . 692
7.36.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
7.36.2 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
4406_640 v1.5 x
7.36.3 Master write sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . 694
7.36.4 Master read sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . 695
7.36.5 Master repeated start sequence. . . . . . . . . . . . . . . . . . . . . . . 696
7.36.6 Low power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
7.36.7 Master mode pin configuration. . . . . . . . . . . . . . . . . . . . . . . . 697
7.36.8 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
7.36.9 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 712
7.36.10 Pullup resistor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
7.37 TWIS — I2C compatible two-wire interface slave with EasyDMA. . . . . . . . . . . . 713
7.37.1 Shared resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
7.37.2 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
7.37.3 TWIS responding to a read command. . . . . . . . . . . . . . . . . . . . . 716
7.37.4 TWIS responding to a write command. . . . . . . . . . . . . . . . . . . . . 717
7.37.5 Master repeated start sequence. . . . . . . . . . . . . . . . . . . . . . . 718
7.37.6 Terminating an ongoing TWI transaction. . . . . . . . . . . . . . . . . . . . 718
7.37.7 Low power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
7.37.8 Slave mode pin configuration. . . . . . . . . . . . . . . . . . . . . . . . 719
7.37.9 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
7.37.10 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 733
7.38 UARTE — Universal asynchronous receiver/transmitter with EasyDMA. . . . . . . . . 733
7.38.1 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
7.38.2 Transmission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
7.38.3 Reception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
7.38.4 Error conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
7.38.5 Using the UARTE without flow control. . . . . . . . . . . . . . . . . . . . . 737
7.38.6 Parity and stop bit configuration. . . . . . . . . . . . . . . . . . . . . . . 737
7.38.7 Low power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
7.38.8 Pin configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
7.38.9 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
7.38.10 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 756
7.39 USBD — Universal serial bus device. . . . . . . . . . . . . . . . . . . . . . . 756
7.39.1 USB device states. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
7.39.2 USB terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
7.39.3 USB pins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
7.39.4 USBD power-up sequence. . . . . . . . . . . . . . . . . . . . . . . . . . 759
7.39.5 USB pull-up. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
7.39.6 USB reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
7.39.7 USB suspend and resume. . . . . . . . . . . . . . . . . . . . . . . . . . 761
7.39.8 EasyDMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
7.39.9 Control transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
7.39.10 Bulk and interrupt transactions. . . . . . . . . . . . . . . . . . . . . . . 768
7.39.11 Isochronous transactions. . . . . . . . . . . . . . . . . . . . . . . . . . 771
7.39.12 USB register access limitations. . . . . . . . . . . . . . . . . . . . . . . 773
7.39.13 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
7.39.14 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 802
7.40 VMC — Volatile memory controller. . . . . . . . . . . . . . . . . . . . . . . . 802
7.40.1 RAM power states. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
7.40.2 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
7.41 WDT — Watchdog timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
7.41.1 Reload criteria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
7.41.2 Temporarily pausing the watchdog. . . . . . . . . . . . . . . . . . . . . . 805
7.41.3 Watchdog reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
7.41.4 Stopping the watchdog. . . . . . . . . . . . . . . . . . . . . . . . . . . 806
7.41.5 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
4406_640 v1.5 xi
7.41.6 Electrical specification. . . . . . . . . . . . . . . . . . . . . . . . . . . 812
June 2024 1.5 The following content has been added or updated:
• Domain configuration
• Pin assignments – Updated description for A25, B12, B26, G1, H2, and J31
pins connected to VSS in Reference circuitry on page 862
• Reference circuitry – Aligned pin names of A25, B12, B26, G1, H2, and J31
with Pin assignments on page 851
• KMU – Access to OTP region must be full 32-bit word aligned to a 32-bit
address
• Editorial changes
December 2023 1.3.1 The following content has been added or updated:
• Editorial changes
September 2021 1.2 The following content has been added or updated:
4406_640 v1.5 14
Revision history
• COMP
• VREQCTRL
• USBREG
• RADIO
• Editorial changes
April 2021 1.1 The following content has been added or updated:
• DPPI – Corrected number of DPPI channels (32) for the network core
• SAADC
• QSPI
• RESET
• CLOCK
• Editorial changes
4406_640 v1.5 15
2 About this document
This document is organized into chapters that are based on the modules and peripherals available in the
IC.
4406_640 v1.5 16
About this document
Abbreviation Description
NS Trustzone/security attribute is Non-secure - The peripheral is accessible as a Non-secure
peripheral.
S Trustzone/security attribute is Secure - The peripheral is accessible as a Secure
peripheral.
US Trustzone Map is user selectable - The Trustzone/security attribute of the peripheral is
configurable.
HF Trustzone Map is Hardware Fixed - The Trustzone/security attribute of the peripheral
cannot be changed.
NA Not Applicable - Peripheral has no DMA capability.
NSA NoSeparateAttribute - Peripheral with DMA and DMA transfer has the same security
attribute as assigned to the peripheral.
SA SeparateAttribute - Peripheral with DMA and DMA transfers can have a different
security attribute than the one assigned to the peripheral.
The Secure mapping column in the peripheral instantiation table defines configuration capabilities for the
Arm TrustZone for Armv8-M secure attribute. The DMA security column describes the DMA capabilities of
the peripheral.
The instantiation table has the following columns:
• Instance Column - Indicates the peripheral instance name followed by optional Trustzone attribute. A
corresponding address is listed in Base address column indicating the base address for Secure and Non-
secure Trustzone attribute. This optional Trustzone attribute is separated by a colon (:).
• Trustzone Column - This has 3 sub-columns indicating the Trustzone map, Trustzone attribute and DMA
capability. The options are as listed in Instantiation table abbreviations on page 17.
Field Description
Register Name of register
Offset Offset address from peripheral base address
TZ Security setting for split-security peripherals, and blank for other peripherals
Description Short summary of intended use
4406_640 v1.5 17
About this document
2.4.2 Permissions
Different fields in a register might have different access permissions enforced by hardware.
The access permission for each register field is documented in the Access column in the following ways:
4406_640 v1.5 18
About this document
2.5 Registers
Register overview
2.5.1 DUMMY
Address offset: 0x514
Example of a register controlling a dummy feature
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID I H G F E D D D C C C B A A
Reset 0x00050002 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW FIELD0 Example of a read-write field with several enumerated values
Disabled 0 The example feature is disabled
NormalMode 1 The example feature is enabled in normal mode
ExtendedMode 2 The example feature is enabled along with extra functionality
B RW FIELD1 Example of a deprecated read-write field
4406_640 v1.5 19
3 Product overview
nRF5340 is a wireless, ultra-low power multicore System on Chip (SoC), integrating two fully
programmable Arm Cortex-M33 processors, advanced security features, a range of peripherals, and
a multiprotocol 2.4 GHz transceiver. The transceiver supports Bluetooth Low Energy, ANT™, and IEEE
802.15.4 for Thread and Zigbee protocols. It also allows the implementation of proprietary 2.4 GHz
protocols.
The two Arm Cortex-M33 processors share the power, clock, and peripheral architecture with Nordic
Semiconductor nRF51, nRF52, and nRF91 Series of SoCs, ensuring minimal porting efforts. The application
core is a full-featured Arm Cortex-M33 processor including DSP instructions and FPU, running at up to 128
MHz with 1 MB of flash and 512 kB of RAM. The option to run the application processor at 64 MHz allows
the CPU to increase energy efficiency. The network core is an Arm Cortex-M33 processor with a reduced
feature set, designed for ultra-low power operation. It runs at a fixed 64 MHz frequency and contains 256
kB of flash and 64 kB of RAM.
The peripheral set offers a variety of analog and digital functionality enabling single-chip implementation
of a wide range of applications. Arm TrustZone technology, Arm CryptoCell-312, and supporting blocks
for system protection and key management are embedded for the advanced security needed for IoT
applications.
4406_640 v1.5 20
Product overview
SWD
Trace pins Debug and trace
SWO/
SW-DP
TPIU
DAPBUS
64 kB
64 kB
64 kB
64 kB
64 kB
64 kB
64 kB
RAM
RAM
RAM
RAM
RAM
RAM
RAM
RAM
16 kB
16 kB
16 kB
16 kB
RAM
RAM
RAM
RAM
CBus
SBus
RAM0
RAM1
RAM2
RAM3
CBus
SBus
AMLI (64/128 MHz AHB)
2-way set
RAM4
RAM5
RAM6
RAM7
RAM0
RAM1
RAM3
RAM2
associative
cache Synchronous
bridge
Asynchronous
AMLI (64/128 MHz AHB) bridge AMLI (64 MHz AHB)
3.2 Memory
The nRF5340 SoC contains two processor cores, each with flash memory and RAM that can be used for
code and data storage.
4406_640 v1.5 21
Product overview
All memory and registers are found in the same address space, as shown in Memory map on page 23.
This includes the two blocks of 256 kB RAM, which are accessible in the memory map as one contiguous
512 kB block of RAM. The first 256 kB block of RAM has single-cycle access time from the CPU, while up to
four CPU cycles additional latency occurs when accessing the additional 256 kB block of RAM.
The application core memory is mapped to the network core memory map. This means that the network
core CPU can access and use the application core memory for shared memory communication. The
application core can restrict network core access through the domain configuration (DCNF) PROTECT
registers, see DCNF — Domain configuration on page 269. Access to secure memory or peripherals as
defined by the SPU — System protection unit on page 651 is also prevented when the network core is
marked as non-secure in an application using TrustZone technology.
Note: The EasyDMA masters of the network core peripherals cannot access the application core
RAM. The network core processor cannot execute code directly from the application core flash or
access QSPI XIP memories.
4406_640 v1.5 22
Product overview
RAM
Peripherals Peripherals
0x5000 0000 (secure) (secure) RAM
RAM
0x2100 0000 SRAM
RAM RAM
0x2000 0000
XIP
0x1000 0000
UICR
FICR
Flash Code
0x0100 0000
UICR
FICR
Flash Flash
0x0000 0000
Figure 2: Memory map
4406_640 v1.5 23
Product overview
4406_640 v1.5 24
4 Power and clock management
The power and clock management system in nRF5340 is optimized for ultra-low power applications to
ensure maximum power efficiency.
The core of the power and clock management system is the power management unit (PMU) shown in the
following figure.
SoC
VDDH
External Internal
power sources voltage
VDD
regulators
Application core
PMU
32 MHz crystal
The PMU automatically tracks the power and clock resources required by the different components in
the system at any given time. To achieve the lowest power consumption possible, the PMU optimizes the
system by evaluating power and clock requests, automatically starting and stopping clock sources, and
choosing regulator operation modes.
The nRF5340 start-up sequence after reset is described in RESET — Reset control on page 65.
4406_640 v1.5 25
Power and clock management
Power consumption during System ON with CPU and peripherals in IDLE state sleep is reduced by
configuring the application core's clock to 64 MHz before entering CPU sleep.
• Using QSPI with 96 MHz clock frequency
• Using the USB peripheral
• When debugging
• Requesting additional voltage on the VREGRADIO supply using VREQCTRL — Voltage request control on
page 63
4406_640 v1.5 26
Power and clock management
4406_640 v1.5 27
Power and clock management
Each scenario specifies a set of operations and conditions applying to the given scenario. All scenarios
are listed in Electrical specification on page 30. The following table shows a set of common conditions
used in all scenarios, unless otherwise stated in the description of a given scenario.
4406_640 v1.5 28
Power and clock management
32 kHz crystal SMD 2012 Only applies when the low frequency
crystal oscillator (LFXO) is running.
32.768 kHz
ftol= ±20 ppm
CL=9 pF
C0=1.3 pF
RL=70 kΩ
DL≤1.0 μW
4406_640 v1.5 29
Power and clock management
ION_IDLE1,LDO System ON, 0k application RAM, wake on any event, regulator = LDO 3.3 uA
ION_IDLE3 System ON, wake on any event, power-fail comparator enabled 1.3 uA
ION_IDLE3,128MHz System ON, wake on any event, power-fail comparator enabled, 785 uA
clock=HFINT128M
ION_IDLE4_LP System ON, wake on GPIOTE input (event mode, LATENCY=LowPower) 1.3 uA
ION_IDLE6 System ON, 0 kB application RAM, wake on RTC (running from LFXO clock) 1.5 uA
ION_IDLE7 System ON, wake on RTC (running from LFXO clock) 1.5 uA
ION_IDLE8 System ON, 0 kB application RAM, wake on RTC (running from LFXO clock), 5 1.7 uA
V supply on VDDH, VREGH output = 3.3 V
ION_IDLE7 System ON, 0 kB network RAM, wake on network RTC (running from LFXO 1.5 uA
clock)
ION_IDLE8 System ON, 64 kB network RAM, wake on network RTC (running from LFXO 1.7 uA
clock)
ION_IDLE9 System ON, 0 kB application RAM, wake on RTC (running from LFRC clock) 2.1 uA
ION_IDLE10 Both cores in System ON, wake on any event. VREQH=Disabled. 1.3 uA
4406_640 v1.5 30
Power and clock management
IOFF0,LDO System OFF, 0 kB application RAM, wake on reset; regulator = LDO 1.4 uA
IOFF3 System OFF, 0 kB application RAM, wake on reset, 5 V supply on VDDH, 1.1 uA
VREGH output = 3.3V
IOFF3,LDO System OFF, 0 kB application RAM, wake on reset, 5 V supply on VDDH, 1.4 uA
VREGH output = 3.3V; regulator = LDO
IOFF4 System OFF, 512 kB application RAM + 64 kB network RAM, wake on reset 2.4 uA
14
12
10
Current consumption [µA]
0
-40 -20 0 20 40 60 80 100 120
1.7 V 3V 3.6 V
4406_640 v1.5 31
Power and clock management
45
40
35
Current consumption [µA]
30
25
20
15
10
0
-40 -20 0 20 40 60 80 100 120
1.7 V 3V 3.6 V
Figure 5: System ON, wake on any event, power-fail comparator enabled (typical values)
Linker flags:
-Omax
4406_640 v1.5 32
Power and clock management
Linker flags:
-Omax
20 kB of RAM in network core switched on and retained in execute-from-flash cases, and 40 kB in execute-
from-RAM cases.
Clock and regulator settings only apply to network core. The settings in the application core are the same
as the common conditions.
4406_640 v1.5 33
Power and clock management
IPDM,RUN,ACLK PDM receiving and processing data @ 1 MHz (RATIO = 64, PDMCLKCTRL = 1045 uA
343597056), stereo mode, HFXO ACLK = 12.288 MHz
IPWM,RUN1,LDO PWM running at 16 MHz, top = 10, duty = 50%; regulator = LDO 1035 uA
IPWM,RUN2 PWM running at 125 kHz, top = 10, duty = 50%, clock = HFXO64M 750 uA
IPWM,RUN3 PWM running at 16 MHz, top = 10, duty = 50%, clock = HFXO64M 755 uA
4406_640 v1.5 34
Power and clock management
IQSPI,DATA QSPI transferring data (activated, and transferring data to/from external flash 4430 uA
memory), SCKFREQ = 96 MHz, quad mode, clock = HFXO192M
IRADIO_TX1 Radio transmitting @ 0 dBm output power, 1 Mbps Bluetooth low energy 4.1 mA
(BLE) mode, clock = HFXO64M
IRADIO_TX2 Radio transmitting @ -40 dBm output power, 1 Mbps Bluetooth low energy 2.6 mA
(BLE) mode, clock = HFXO64M
IRADIO_TX3 Radio transmitting @ 0 dBm output power, 1 Mbps Bluetooth low energy 9.7 mA
(BLE) mode, clock = HFXO64M; regulator = LDO
IRADIO_TX4 Radio transmitting @ -40 dBm output power, 1 Mbps Bluetooth low energy 5.0 mA
(BLE) mode, clock = HFXO64M; regulator = LDO
IRADIO_TX5 Radio transmitting @ 0 dBm output power, 2 Mbps Bluetooth low energy 4.2 mA
(BLE) mode, clock = HFXO64M
IRADIO_TX6 Radio transmitting @ 0 dBm output power, 500 kbps Bluetooth low energy 4.1 mA
(BLE) long-range (LR) mode, clock = HFXO64M
IRADIO_TX7 Radio transmitting @ 0 dBm output power, 125 kbps Bluetooth low energy 4.1 mA
(BLE) long-range (LR) mode, clock = HFXO64M
IRADIO_TX8 Radio transmitting @ 0 dBm output power, 250 kbps IEEE 802.15.4-2006 4.1 mA
mode, clock = HFXO64M
4406_640 v1.5 35
Power and clock management
IRADIO_RX1 Radio receiving @ 1 Mbps Bluetooth low energy (BLE) mode, clock = 8.0 mA
HFXO64M; regulator = LDO
IRADIO_RX2 Radio receiving @ 2 Mbps Bluetooth low energy (BLE) mode, clock = 4.1 mA
HFXO64M
IRADIO_RX3 Radio receiving @ 500 kbps Bluetooth low energy (BLE) long-range (LR) 3.6 mA
mode, clock = HFXO64M
IRADIO_RX4 Radio receiving @ 125 kbps Bluetooth low energy (BLE) long-range (LR) 3.6 mA
mode, clock = HFXO64M
IRADIO_RX5 Radio receiving @ 250 kbps IEEE 802.15.4-2006 mode, clock = HFXO64M 3.9 mA
9.5
8.5
8
Current consumption [mA]
7.5
6.5
5.5
4.5
1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6
-40 ºC 25 ºC 105 ºC
Figure 6: Radio transmitting at 3 dBm output power, 1 Mbps Bluetooth LE mode (typical values)
4406_640 v1.5 36
Power and clock management
6.5
5.5
4.5
3.5
1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6
-40 ºC 25 ºC 105 ºC
Figure 7: Radio transmitting at 0 dBm output power, 1 Mbps Bluetooth LE mode (typical values)
ISAADC,TASK SAADC sampling @ 1 kHz from RTC in task mode, acquisition time = 20 us, 160 uA
clock = HFINT64M and LFXO
4406_640 v1.5 37
Power and clock management
ITIMER3,LDO One TIMER running @ 16 MHz, clock = HFXO64M; regulator = LDO 1280 uA
4406_640 v1.5 38
Power and clock management
IUARTE,IDLE1 UARTE RX idle (started, waiting for data, no data transfer), clock = HFXO64M 840 uA
IUARTE3 UARTE transmitting and receiving data @ 115200 bps, clock = HFXO64M 895 uA
4406_640 v1.5 39
Power and clock management
4.4.1.23 Compounded
These are scenarios where both cores are active. 20 kB of RAM in the application core and 64 kB of RAM in
the network core are switched on and retained.
In scenarios where both cores are active, the clock and regulator settings apply to both.
IS1 Application CPU running CoreMark from flash, radio receiving @ 1 Mbps 6.9 mA
Bluetooth Low Energy mode; clock = HFXO64M
IS2 Application CPU running CoreMark from flash, radio transmitting @ 0 dBm 16.9 mA
output power, 1 Mbps Bluetooth Low Energy mode; clock = HFXO64M,
regulator = LDO
IS3 Application CPU running CoreMark from flash, radio receiving @ 1 Mbps 15.6 mA
Bluetooth Low Energy mode; clock = HFXO64M; regulator = LDO
IS4 Application CPU running CoreMark from flash, radio transmitting @ 0 dBm 6.7 mA
output power, 1 Mbps Bluetooth Low Energy mode; clock = HFXO64M, 5 V
supply on VDDH, VREGH output = 3.3 V
IS5 Application CPU running CoreMark from flash, radio receiving @ 1 Mbps 6.4 mA
Bluetooth Low Energy mode; clock = HFXO64M, 5 V supply on VDDH, VREGH
output = 3.3 V
IS6 Network CPU running CoreMark from flash, radio transmitting @ 0 dBm 5.9 mA
output power, 1 Mbps Bluetooth Low Energy mode, clock = HFXO64M
IS7 Network CPU running CoreMark from flash, radio receiving @ 1 Mbps 5.4 mA
Bluetooth Low Energy mode, clock = HFXO64M
IS8 Application + Network CPU running CoreMark from flash, radio transmitting 9.1 mA
@ 0 dBm output power, 1 Mbps Bluetooth Low Energy mode; clock =
HFXO64M
IS9 Application + Network CPU running CoreMark from flash, radio receiving @ 1 8.6 mA
Mbps Bluetooth Low Energy mode; clock = HFXO64M
4406_640 v1.5 40
Power and clock management
IS11 Application + Network CPU running CoreMark from flash, radio transmitting 21.5 mA
@ +3 dBm output power, 1 Mbps Bluetooth Low Energy mode; clock =
HFXO64M; regulator = LDO
IS12 Application + Network CPU running CoreMark from flash, radio transmitting 20.2 mA
@ 0 dBm output power, 1 Mbps Bluetooth Low Energy mode; clock =
HFXO64M; regulator = LDO
IS13 Application + Network CPU running CoreMark from flash, radio receiving @ 1 21.5 mA
Mbps Bluetooth Low Energy mode; clock = HFXO64M; regulator = LDO
IS14 Network CPU running CoreMark from flash, radio transmitting @ 0 dBm 12.6 mA
output power, 1 Mbps Bluetooth Low Energy mode, clock = HFXO64M;
regulator = LDO
IS15 Network CPU running CoreMark from flash, radio receiving @ 1 Mbps 14.0 mA
Bluetooth Low Energy mode, clock = HFXO64M; regulator = LDO
IUSB,SUSPEND,VBUS Current from VBUS supply, USB suspended, CPU sleeping 180 uA
IUSB,ACTIVE,VDD Current from VDD supply (normal voltage mode), all RAM retained, CPU 3.0 mA
running, USB active
IUSB,SUSPEND,VDD Current from VDD supply (normal voltage mode), all RAM retained, CPU 815 uA
sleeping, USB suspended
IUSB,SUSPEND,VDD,LDO Current from VDD supply (normal voltage mode), all RAM retained, CPU 135 uA
sleeping, USB suspended, regulator = LDO
IUSB,ACTIVE,VDDH Current from VDDH supply (high voltage mode), VDD=3 V (VREGH output), all 3.2 mA
RAM retained, CPU running, USB active
IUSB,SUSPEND,VDDH Current from VDDH supply (high voltage mode), VDD=3 V (VREGH output), all 2340 uA
RAM retained, CPU sleeping, USB suspended
IUSB,SUSPEND,VDDH,LDO Current from VDDH supply (high voltage mode), VDD=3 V (VREGH output), all 125 uA
RAM retained, CPU sleeping, USB suspended, regulator = LDO
IUSB,DISABLED,VDD Current from VDD supply, USB disabled, VBUS supply connected, all RAM 3 uA
retained, CPU sleeping
4406_640 v1.5 41
Power and clock management
VDD
Internal
power
Radio voltage regulator supply
(VREGRADIO) Network core
VDDH
High voltage regulator
(VREGH) Internal
power
Main voltage regulator supply
(VREGMAIN)
4406_640 v1.5 42
Power and clock management
GPIOs
VDD
External power source Internal
power
Radio voltage regulator supply
(VREGRADIO) Network core
The VDD and VDDH pins are connected together. The external power supply is connected to the both pins.
In this case, the VREGH regulator is automatically deactivated.
In normal voltage mode, each regulator can operate in LDO or DC/DC mode. See Normal voltage mode on
page 51 for details about configuration of the regulators in this mode.
VDD
Internal
power
Radio voltage regulator supply
(VREGRADIO) Network core
The external power supply is connected to the VDDH pin. The VREGMAIN and VREGRADIO regulators
power the internal circuitry from the VDD pin. The VREGH regulator supplies the VDD pin.
By default, the high voltage regulator is configured to source external components from the VDD pin. To
save power this feature must be disabled. For details, see High voltage mode on page 52.
4406_640 v1.5 43
Power and clock management
In high voltage mode, each of the three regulators can operate in LDO or DC/DC mode. See High voltage
mode on page 52 for details about configuring the regulators in this mode.
Brownout detector
Brownout reset
Vbor (BOR)
POFWARN event
Vpof
POFCON
The power supply mode detector determines which supply pin is used when the device is powered up.
It selects the appropriate power supply mode, generates the enable signal that automatically enables
VREGH, and generates a power-on reset (POR) initializing the device. For an overview of the supply
modes, see Power supply modes and regulators on page 42.
The brownout detector monitors the VDD supply (input of the VREGMAIN regulator) to ensure safe
operation. It generates a brownout reset (BOR) when the voltage is too low, holding the device in reset
when the voltage is too low for safe operation. The brownout reset voltage is defined in parameters
VBOR,OFF and VBOR,ON.
4406_640 v1.5 44
Power and clock management
4.2 V VDDH
Application core
...........
MUX VPOFH
2.8 V POWER
2.7 V POFWARN
Network core
2.8 V VDD
POWER
...........
VPOF
MUX
2.0 V
1.9 V
POFCON.THRESHOLD POFCON.POF
Using the POF is optional, and must be enabled and configured through the register POFCON (Retained)
on page 55.
Depending on the supply mode (see Power supply modes and regulators on page 42), the thresholds
VPOF and VPOFH must be configured to a suitable level through the POFCON register. When the supply
voltage falls below the defined threshold, the POF generates the event POFWARN that is sent to the
POWER module within both the application and network cores. Software running on both cores uses this
signal to prepare for a power failure. This event is also generated when the supply voltage is below the
threshold at the time the power-fail comparator is enabled, or if the threshold is reconfigured to a level
above the supply voltage.
If the POF is enabled and the supply voltage is below the threshold, the POF prevents the NVMC from
performing write operations to the NVM.
To save power, the power-fail comparator is not active in System OFF or in System ON when HFCLK is not
running.
The POF features a hysteresis of VPOFHYST, as illustrated in the following figure.
4406_640 v1.5 45
Power and clock management
VDD
VPOF +VPOFHYST
VPOF
VBOR,ON
POFWARN
POFWARN
Core BOR
Figure 13: POF hysteresis and POFWARN event (BOR = brownout reset)
The POF hysteresis voltage is defined with the VPOFHYST parameter in Electrical specification on page
57.
Note: Registers INTEN on page 50, INTENSET on page 50, and INTENCLR on page 50 are
shared between the POWER and CLOCK peripherals.
4.6.1 Registers
Instances
POWER : S 0x50005000
APPLICATION US S NA No Power control
POWER : NS 0x40005000
POWER NETWORK 0x41005000 HF NS NA No Power control
4406_640 v1.5 46
Power and clock management
Register overview
4.6.1.1 TASKS_CONSTLAT
Address offset: 0x78
Enable Constant Latency mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CONSTLAT Enable Constant Latency mode
Trigger 1 Trigger task
4.6.1.2 TASKS_LOWPWR
Address offset: 0x7C
Enable Low-Power mode (variable latency)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_LOWPWR Enable Low-Power mode (variable latency)
Trigger 1 Trigger task
4.6.1.3 SUBSCRIBE_CONSTLAT
Address offset: 0xF8
Subscribe configuration for task CONSTLAT
4406_640 v1.5 47
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CONSTLAT will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.6.1.4 SUBSCRIBE_LOWPWR
Address offset: 0xFC
Subscribe configuration for task LOWPWR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task LOWPWR will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.6.1.5 EVENTS_POFWARN
Address offset: 0x108
Power failure warning
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_POFWARN Power failure warning
NotGenerated 0 Event not generated
Generated 1 Event generated
4.6.1.6 EVENTS_SLEEPENTER
Address offset: 0x114
CPU entered WFI/WFE sleep
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SLEEPENTER CPU entered WFI/WFE sleep
NotGenerated 0 Event not generated
Generated 1 Event generated
4.6.1.7 EVENTS_SLEEPEXIT
Address offset: 0x118
4406_640 v1.5 48
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SLEEPEXIT CPU exited WFI/WFE sleep
NotGenerated 0 Event not generated
Generated 1 Event generated
4.6.1.8 PUBLISH_POFWARN
Address offset: 0x188
Publish configuration for event POFWARN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event POFWARN will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.6.1.9 PUBLISH_SLEEPENTER
Address offset: 0x194
Publish configuration for event SLEEPENTER
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SLEEPENTER will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.6.1.10 PUBLISH_SLEEPEXIT
Address offset: 0x198
Publish configuration for event SLEEPEXIT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SLEEPEXIT will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4406_640 v1.5 49
Power and clock management
4.6.1.11 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW POFWARN Enable or disable interrupt for event POFWARN
Disabled 0 Disable
Enabled 1 Enable
B RW SLEEPENTER Enable or disable interrupt for event SLEEPENTER
Disabled 0 Disable
Enabled 1 Enable
C RW SLEEPEXIT Enable or disable interrupt for event SLEEPEXIT
Disabled 0 Disable
Enabled 1 Enable
4.6.1.12 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW POFWARN Write '1' to enable interrupt for event POFWARN
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW SLEEPENTER Write '1' to enable interrupt for event SLEEPENTER
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW SLEEPEXIT Write '1' to enable interrupt for event SLEEPEXIT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
4.6.1.13 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW POFWARN Write '1' to disable interrupt for event POFWARN
Clear 1 Disable
4406_640 v1.5 50
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW SLEEPENTER Write '1' to disable interrupt for event SLEEPENTER
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW SLEEPEXIT Write '1' to disable interrupt for event SLEEPEXIT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW GPREGRET General purpose retention register
For an overview on the available regulators, see Power supply modes and regulators on page 42.
4406_640 v1.5 51
Power and clock management
The VREGMAIN and VREGRADIO regulators operate in LDO mode by default. DC/DC mode is
enabled independently for each regulator using VREGMAIN.DCDCEN (Retained) on page 56 and
VREGRADIO.DCDCEN (Retained) on page 56 respectively.
When configured as shown in the following figure, nRF5340 enters normal voltage mode. Here both
regulators are in DC/DC mode. An external LC filter is required for each regulator in DC/DC mode. If a
regulator is only to be used in LDO mode, the inductor for this regulator is not needed. In this mode, the
VDDH pin must be connected to VDD, even if the high voltage regulator (VREGH) is not in use.
SoC
VREGH.DCDCEN UICR.VREGHVOUT
VDDH VDDH
High voltage regulator
(VREGH)
DCCH
Supply
VDD
CVDD
VREGMAIN.DCDCEN
GND
VDD
CDECD
VREGRADIO.DCDCEN
GND VDD
CDECR
GND
GND GND
Operating a regulator in DC/DC mode reduces the overall power consumption due to higher efficiency
than in LDO mode. Regulator efficiency in DC/DC mode varies depending on the supply voltage and the
current drawn from the regulators.
4406_640 v1.5 52
Power and clock management
Supply
SoC
VDDH
VREGH.DCDCEN UICR.VREGHVOUT
CVDDH
VDDH
GND High voltage
LDCCH (*) regulator
DCCH
(VREGH)
VDD
CVDD
VREGMAIN.DCDCEN
GND
VDD
Main regulator
LDCCD (*)
DCCD (VREGMAIN)
System power
DECD application core
CDECD
VREGRADIO.DCDCEN
GND VDD
Radio regulator
LDCC (*) (VREGRADIO)
DCC
Radio power
DECR network core
CDECR
GND
GND GND
(*) Inductors required only if DC/DC mode is used
Operating a regulator in DC/DC mode reduces the overall power consumption due to higher efficiency
than in LDO mode. Regulator efficiency in DC/DC mode varies depending on the supply voltage and the
current drawn from the regulators.
Note: The maximum allowed current drawn by external circuitry is dependent on the total
internal current draw. The maximum current that can be drawn externally from REGH is defined in
Regulator specifications, VREGH stage on page 57.
4406_640 v1.5 53
Power and clock management
In normal voltage mode, the GPIO high level equals the voltage supplied to the VDD pin. In high voltage
mode, it equals the level specified in the VREGHVOUT register.
4.7.4 Registers
Instances
REGULATORS : S 0x50004000
APPLICATION US S NA No Regulator configuration
REGULATORS : NS 0x40004000
Register overview
Silent mode is used when DC/DC is enabled, and is ignored in LDO mode. Disabling silent
mode reduces current consumption in sleep.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R VREGH VREGH status
Inactive 0 Normal voltage mode. Voltage supplied on VDD and VDDH.
Active 1 High voltage mode. Voltage supplied on VDDH.
4.7.4.2 SYSTEMOFF
Address offset: 0x500
4406_640 v1.5 54
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SYSTEMOFF Enable System OFF mode
Enter 1 Enable System OFF mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C B B B B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW POF Enable or disable power-fail comparator
Disabled 0 Disable
Enabled 1 Enable
B RW THRESHOLD Power-fail comparator threshold setting
V19 6 Set threshold to 1.9 V
V20 7 Set threshold to 2.0 V
V21 8 Set threshold to 2.1 V
V22 9 Set threshold to 2.2 V
V23 10 Set threshold to 2.3 V
V24 11 Set threshold to 2.4 V
V25 12 Set threshold to 2.5 V
V26 13 Set threshold to 2.6 V
V27 14 Set threshold to 2.7 V
V28 15 Set threshold to 2.8 V
C RW THRESHOLDVDDH Power-fail comparator threshold setting for voltage supply on VDDH
V27 0 Set threshold to 2.7 V
V28 1 Set threshold to 2.8 V
V29 2 Set threshold to 2.9 V
V30 3 Set threshold to 3.0 V
V31 4 Set threshold to 3.1 V
V32 5 Set threshold to 3.2 V
V33 6 Set threshold to 3.3 V
V34 7 Set threshold to 3.4 V
V35 8 Set threshold to 3.5 V
V36 9 Set threshold to 3.6 V
V37 10 Set threshold to 3.7 V
V38 11 Set threshold to 3.8 V
V39 12 Set threshold to 3.9 V
V40 13 Set threshold to 4.0 V
V41 14 Set threshold to 4.1 V
V42 15 Set threshold to 4.2 V
4406_640 v1.5 55
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DCDCEN Enable or disable DC/DC converter
Disabled 0 Disable
Enabled 1 Enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DCDCEN Enable or disable DC/DC converter
Disabled 0 Disable
Enabled 1 Enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DCDCEN Enable or disable DC/DC converter
Disabled 0 Disable
Enabled 1 Enable
4406_640 v1.5 56
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW EXTSILENTEN Enable silent external DC/DC supply
Disabled 0 Disable
Enabled 1 Enable
System OFF.
IEXT,DCDC External current draw1 allowed in High Voltage mode (supply on VDDH) when 7 mA
consumption from both cores2, and at the lowest VDD output voltage setting.
IEXT,LDO External current draw1 allowed in High Voltage mode (supply on VDDH) when 1 mA
consumption from both cores2, and at the lowest VDD output voltage setting.
VREGH,DROP Required difference between input voltage (VDDH) and output voltage (VDD, 0.3 V
configured in VREGHVOUT on page 130), VDDH > VDD
1
External current draw is defined as the sum of all GPIO currents and the current being drawn from
VDD.
2
In practice, the maximum external current draw is limited by the maximum output current of VREGH,
subtracting the actual current being drawn from VDD.
4406_640 v1.5 57
Power and clock management
4406_640 v1.5 58
Power and clock management
USB supply
5 V USB
supply
CVBUS
DECUSB
CDECUSB
To ensure stability, the input and output of the USB regulator need to be decoupled with a suitable
decoupling capacitor CVBUS. See Reference circuitry on page 862 for the recommended values.
4.8.1 Registers
Instances
USBREGULATOR : S 0x50037000
APPLICATION US S NA No USB regulator control
USBREGULATOR : NS 0x40037000
Register overview
4.8.1.1 EVENTS_USBDETECTED
Address offset: 0x100
Voltage supply detected on VBUS
4406_640 v1.5 59
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_USBDETECTED Voltage supply detected on VBUS
NotGenerated 0 Event not generated
Generated 1 Event generated
4.8.1.2 EVENTS_USBREMOVED
Address offset: 0x104
Voltage supply removed from VBUS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_USBREMOVED Voltage supply removed from VBUS
NotGenerated 0 Event not generated
Generated 1 Event generated
4.8.1.3 EVENTS_USBPWRRDY
Address offset: 0x108
USB 3.3 V supply ready
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_USBPWRRDY USB 3.3 V supply ready
NotGenerated 0 Event not generated
Generated 1 Event generated
4.8.1.4 PUBLISH_USBDETECTED
Address offset: 0x180
Publish configuration for event USBDETECTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event USBDETECTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.8.1.5 PUBLISH_USBREMOVED
Address offset: 0x184
Publish configuration for event USBREMOVED
4406_640 v1.5 60
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event USBREMOVED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.8.1.6 PUBLISH_USBPWRRDY
Address offset: 0x188
Publish configuration for event USBPWRRDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event USBPWRRDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.8.1.7 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW USBDETECTED Enable or disable interrupt for event USBDETECTED
Disabled 0 Disable
Enabled 1 Enable
B RW USBREMOVED Enable or disable interrupt for event USBREMOVED
Disabled 0 Disable
Enabled 1 Enable
C RW USBPWRRDY Enable or disable interrupt for event USBPWRRDY
Disabled 0 Disable
Enabled 1 Enable
4.8.1.8 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW USBDETECTED Write '1' to enable interrupt for event USBDETECTED
4406_640 v1.5 61
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW USBREMOVED Write '1' to enable interrupt for event USBREMOVED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW USBPWRRDY Write '1' to enable interrupt for event USBPWRRDY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
4.8.1.9 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW USBDETECTED Write '1' to disable interrupt for event USBDETECTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW USBREMOVED Write '1' to disable interrupt for event USBREMOVED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW USBPWRRDY Write '1' to disable interrupt for event USBPWRRDY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
4.8.1.10 USBREGSTATUS
Address offset: 0x400
USB supply status
4406_640 v1.5 62
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R VBUSDETECT VBUS input detection status (USBDETECTED and USBREMOVED events are
derived from this information)
NoVbus 0 VBUS voltage below valid threshold
VbusPresent 1 VBUS voltage above valid threshold
B R OUTPUTRDY USB supply output settling time elapsed
NotReady 0 USBREG output settling time not elapsed
Ready 1 USBREG output settling time elapsed (same information as USBPWRRDY
event)
4406_640 v1.5 63
Power and clock management
4.9.1 Registers
Instances
Register overview
After requesting high voltage, the user must wait until VREQHREADY is set to Ready
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VREQH Request high voltage
Disabled 0 Disable
Enabled 1 Enable
4.9.1.2 VREGRADIO.VREQHREADY
Address offset: 0x508
High voltage on RADIO is ready
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R READY RADIO is ready to operate on high voltage
NotReady 0 Not ready
Ready 1 Ready
4406_640 v1.5 64
Power and clock management
Application core
Power-on reset
VDD POR
WDT reset
WDT
VDD
Reset logic
GPIO NFC LPCOMP VBUS
Pin reset
RESET System OFF reset
System OFF
wakeup logic
Soft reset
CTRL-AP
SWD NETWORK.
FORCEOFF
Network core
Forceoff
Soft reset
CTRL-AP
CPU lockup
Cortex-M33
Reset logic Soft reset
WDT reset
WDT
After a system-level reset, the application core starts up on its own. The network core is not automatically
started, but can be started by the application core CPU, see Network Force-OFF on page 67.
After a reset occurs, the register RESETREAS on page 70 can be read to determine which source
generated the reset. Each core has its own RESETREAS register. System-level and application core reset
sources are also available in the network core's RESETREAS register, unless otherwise noted.
4406_640 v1.5 65
Power and clock management
Note: Because the network core WDT reset is local for the network core, the application core is not
aware of WDT timing out in the network core. Notifying the application core is possible. One way is
to check the register RESETREAS on page 70 for WDT flags and report the error through inter-
processor communication (IPC).
4406_640 v1.5 66
Power and clock management
For more information about WDT, see WDT — Watchdog timer on page 805. More information about
IPC is available in IPC — Interprocessor communication on page 337.
Reset target
Reset source CPU Network Debug RAM WDT RESETREAS
core
CPU lockup x x
Soft reset x x
Wakeup from System OFF x x x x3 x
mode reset
Watchdog timer reset x x x x x
Pin reset x x x x x
Brownout reset x x x x x x
Power-on reset x x x x x x
NETWORK.FORCEOFF x
4406_640 v1.5 67
Power and clock management
Note: RAM is never reset, but depending on the reset source, its content may be corrupted.
Some retained registers may have a different reset behavior, as shown in the following table.
Reset target
Regular SPU GPIO REGU- POWER-
Reset source peripheral LATORS, GPREGRET
registers OSCI-
LLATORS
CPU lockup x x x4
Soft reset x x x4
Wakeup from System OFF x
mode reset
Watchdog timer reset x x x x
Pin reset x x x x
Brownout reset x x x x x
Power-on reset x x x x x
3
Depending on RAM retention settings.
4
Except MCUSEL field, the MCUSEL register of the GPIO peripheral is not reset for CPU lockup and Soft
reset.
4406_640 v1.5 68
Power and clock management
An 'x' in the table means that the specific module is reset. Pin reset, brownout reset, and power-on reset
are system level reset sources with the network core and application core having the same behavior, see
Application core reset behavior on page 67.
Reset target
Reset source
CPU RAM WDT RESETREAS
CPU lockup x
Soft reset x
Network FORCEOFF x x5 x
Note: RAM is never reset, but its content may be corrupted depending on the reset source.
Some retained registers may have a different reset behavior, as shown in following table.
An 'x' in the table means that the specific module is reset. Pin reset, brownout reset, and power-on reset
are system level reset sources with the network core and application core having the same behavior, see
Application core reset behavior on page 67.
Reset target
5
Depending on RAM retention settings.
6
MCUSEL settings are kept.
4406_640 v1.5 69
Power and clock management
4.10.11 Registers
Instances
RESET : S 0x50005000
APPLICATION US S NA No Reset control and status
RESET : NS 0x40005000
RESET NETWORK 0x41005000 HF NS NA No Reset status
Configuration
Register overview
4.10.11.1 RESETREAS
Address offset: 0x400
Reset reason
Unless cleared, the RESETREAS register will be cumulative. A field is cleared by writing 1 to it. Multiple
fields can be cleared at the same time by writing a value with several of the fields set to 1.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RESETPIN Reset from pin reset detected
NotDetected 0 Not detected
Detected 1 Detected
B RW DOG0 Reset from application watchdog timer 0 detected
NotDetected 0 Not detected
Detected 1 Detected
C RW CTRLAP Reset from application CTRL-AP detected
NotDetected 0 Not detected
Detected 1 Detected
D RW SREQ Reset from application soft reset detected
NotDetected 0 Not detected
Detected 1 Detected
E RW LOCKUP Reset from application CPU lockup detected
NotDetected 0 Not detected
Detected 1 Detected
4406_640 v1.5 70
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
F RW OFF Reset due to wakeup from System OFF mode when wakeup is triggered by
DETECT signal from GPIO
NotDetected 0 Not detected
Detected 1 Detected
G RW LPCOMP Reset due to wakeup from System OFF mode when wakeup is triggered by
ANADETECT signal from LPCOMP
NotDetected 0 Not detected
Detected 1 Detected
H RW DIF Reset due to wakeup from System OFF mode when wakeup is triggered by
entering the Debug Interface mode
NotDetected 0 Not detected
Detected 1 Detected
I RW LSREQ Reset from network soft reset detected
4.10.11.2 NETWORK.FORCEOFF
Address offset: 0x614
Force network core off
Function present only in application core
4406_640 v1.5 71
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW FORCEOFF Force network core off
Release 0 Release Force-OFF
Hold 1 Hold Force-OFF
4406_640 v1.5 72
Power and clock management
HFINT
192 MHz internal HFCLK192M HFCLK192M PCLK192M
HFCLK192M
oscillator
oscillator control clock control PCLK48M
HFINT
128 MHz internal HCLK128M
HFCLK128M HFCLK128M HFCLK128M PCLK64M
oscillator PCLK32M
oscillator control clock control PCLK16M
PCLK1M
Optional internal
HFINT
capacitors 64 MHz internal LFCLK
XC1 HFCLK64M HFCLK64M PCLK32KI
HFXO oscillator clock control
oscillator control
32 MHz crystal
oscillator
XC2
LFCLK
CAL RC SYNT
Network clock
Optional internal oscillator HCLK64M
HFCLK64M PCLK32M
capacitors PCLK16M
XL1 clock control PCLK1M
LFXO
LFCLK LFCLK
32.768 kHz crystal LFCLK PCLK32KI
oscillator control clock control
oscillator
XL2
The power and clock subsystem secures glitch-free switching from one clock source to another. This
applies to all clock sources.
Note: Registers INTEN on page 88, INTENSET on page 89, and INTENCLR on page 89 are
the same registers (at the same address) as the corresponding registers in POWER.
The HFCLK clocks sourced from the power and clock subsystem to the HFCLK control instances are the
following:
4406_640 v1.5 73
Power and clock management
In order to generate the HFCLK clocks, the following HFCLK sources are available:
• 192 MHz/128 MHz/64 MHz internal oscillator (HFINT)
• 32 MHz crystal oscillator (HFXO), optionally using built-in capacitors as described in OSCILLATORS —
Oscillator control on page 98
See Clock control on page 73 for more information.
CPUs, peripherals, and other system components within a core will automatically request clocks from
its corresponding local HFCLK control. The HFCLK control passes the request to the power and clock
subsystem and, once the clocks are running, distributes them to the components within the core.
When HFCLK control requests within a core are stopped, the HFCLK control will stop requesting clock
from the power and clock subsystem. For example, when the CPU enters sleep or when peripherals
have completed their tasks. If there are no HFCLK control requests from any core, the power and clock
subsystem will automatically stop the clock.
When the system enters System ON mode, and a HFCLK clock is requested, the relevant HFINT will be used
as the HFCLK source. When requests for the clock are stopped, the HFINT will automatically stop.
HFCLK clocks are only available to the HFCLK controllers when the system is in System ON mode.
It is possible to have a HFCLK source running before being started by the relevant clock request (for
instance, the HFCLK source is kept running during sleep). This gives shorter start-up time but causes
increased power consumption. Starting the HFXO is needed when crystal clock accuracy is required.
The HFCLK source selected in register HFCLKSRC on page 93 is started by triggering the HFCLKSTART
task.
The source for the HFCLK128M/HFCLK64M clocks can be configured at any time (for instance, when
the HFCLK has already been started). The content of the HFCLKSRC register only takes effect when the
HFCLKSTART task is triggered.
The event HFCLKSTARTED is generated when the HFCLKSTART task is triggered, the oscillator is started, and
the frequency is stabilized.
The HFCLK source selected in register HFCLK192MSRC on page 96 is started by triggering the
HFCLK192MSTART task.
The source for the HFCLK192M clock can be configured at any time (for instance, when the HFCLK
has already been started). The content of the HFCLK192MSRC register only takes effect when the
HFCLK192MSTART task is triggered.
The event HFCLK192MSTARTED is generated when the HFCLK192MSTART task is triggered, the oscillator is
started, and the frequency stabilized.
HFCLKAUDIO requires HFXO, so when triggering the HFCLKAUDIOSTART task, this always starts the HFXO.
The event HFCLKAUDIOSTARTED is generated when the HFCLKAUDIOSTART task is triggered, the oscillator
is started, and the frequency stabilized.
4406_640 v1.5 74
Power and clock management
It is possible to trigger a new START task after one has already been triggered, and before the
corresponding STARTED event is generated. In this case, only one STARTED event will be generated,
corresponding to the last triggered START task. Triggering a START task after the STARTED event from a
previous triggered START taks is generated, will generate a new STARTED event.
Time from a START task to the corresponding STARTED event may differ depending on whether the HFCLK
source is already running or in the process of starting. The amount of time before a STARTED event may
vary when a different HFCLK source is configured before triggering a new START task.
When the clock control system switches from HFINT source to HFXO source, the HFXO becomes active.
The startup time is programmable, enabling the use of different types of crystal oscillators (e.g. standard
crystals that may have different startup times). The HFXO startup time is given as the sum of the following:
• HFXO power-up time, as specified in 32 MHz crystal oscillator (HFXO) on page 102.
• HFXO count time, as specified in HFXOCNT on page 130.
The HFXO must be selected and started in order to do the following:
• Use RADIO
• The network domain HFCLKSTART task is used
• Enable USBD to respond to USB traffic
• The application domain HFCLK192MSTART is used
• Set NFCT to activated state
• The application domain HFCLKSTART task is used
• Improve SAADC performance by reducing clock jitter
• The application domain HFCLKSTART task is used
Each HFCLK control can request the HFXO source independently from one another via the corresponding
START task. This ensures that each core and peripheral will have access to a high accuracy clock when
needed. Core clocks that originate from the same HFCLK clock will also have the same HFCLK source. This
means that parts of the core that have not requested the HFXO may get a clock that is more accurate than
expected, but not the other way around.
All cores that have requested a HFCLK source to start by triggering a START task must also request it to
stop by triggering the corresponding STOP task (see HFCLKSTOP, HFCLK192MSTOP, and HFCLKAUDIOSTOP
tasks) before the power and clock subsystem will stop it.
HFCLK source(s) will stop when all corresponding STOP tasks have been triggered and there are no
requests for HFCLK clock(s) from the system.
Triggering a HFCLK STOP task is required only if the corresponding HFCLK START task has been triggered
before. When a HFCLK START task is triggered, it is possible to trigger again the same HFCLK START task
without triggering the corresponding HFCLK STOP task in between.
Note: Settings Div1 and Div2 in HFCLK192MCTRL register will result in increased power
consumption.
The ACLK audio clock cannot be scaled from the HFCLKAUDIO clock. Instead, its frequency can be
configured in the relevant peripherals. Refer to Audio oscillator on page 76 for more information on
audio clock and related peripherals.
4406_640 v1.5 75
Power and clock management
Note: It is possible to scale the application core clocks at any time, for instance when a clock has
already has been started, without having to stop it first.
The acceptable HFCLKAUDIO.FREQUENCY register value ranges for the two frequency bands are listed in
the following table.
When switching between the two frequency ranges, the peripherals must be stopped.
4406_640 v1.5 76
Power and clock management
Register HFCLKAUDIOALWAYSRUN can be written at any time, but is only activated by the START task.
4406_640 v1.5 77
Power and clock management
The LFCLK source may also be started by triggering the LFCLKSTART task. The LFCLK source is configured by
selecting the preferred LFCLK source in register LFCLKSRC on page 94. Once selected, the LFCLK source
will be started by triggering the LFCLKSTART task.
The LFCLK source can be configured at any time (for instance, when the LFCLK has already been started).
The content of the LFCLKSRC register only takes effect when the LFCLKSTART task is triggered.
Note: Automatic requests of the LFCLK clock will ignore the value in LFCLKSRC and use LFRC as
source, unless the LFCLK source is started by triggering the LFCLKSTART start. In this case, the LFCLK
source will correspond to the value in LFCLKSRC when the LFCLKSTART start was last triggered.
The LFCLKSTARTED event will be generated after the LFCLKSTART task has been triggered and the LFCLK
source has started. Triggering a LFCLKSTART task before the LFCLKSTARTED event from a previous
LFCLKSTART task is generated will only generate one LFCLKSTARTED event. Triggering a LFCLKSTART task
after a LFCLKSTARTED event is generated will generate a new LFCLKSTARTED event.
The LFCLK clock is stopped when nothing requests it, e.g. RTC — Real-time counter on page 572 and
WDT — Watchdog timer on page 805 are stopped, and the LFCLKSTOP task is triggered. This must
be done for all cores. Triggering the LFCLKSTOP task is required only if the LFCLKSTART task has been
triggered before.
When the LFCLKSTART task is triggered, it is possible to trigger a new LFCLKSTART task without triggering a
LFCLKSTOP task in between.
If the LFXO is selected as the LFCLK source, the LFCLK clock will initially start running from the LFRC while
the LFXO is starting up, and then automatically switch to using the LFXO once this oscillator is running.
Events will be generated in the correct order, even if an LFCLK source that is already started by another
LFCLK control instance is requested. The timing of events may differ, depending on whether a LFCLK source
is already running or in the process of starting.
If two instances of the LFCLK control system request different LFCLK sources, the power and clock
subsystem will secure that the most accurate of the requested LFCLK sources is selected. If one LFCLK
control instance requests a particular LFCLK source to stop when another LFCLK control instance (or a
peripheral) requests the same source to run, but at a lower accuracy, the power and clock subsystem will
switch to the less accurate source. The following table summarizes the priorities of the LFCLK sources.
When switching the LFCLK source, such as from LFRC to LFXO, up to one LFCLK cycle may be lost.
4406_640 v1.5 78
Power and clock management
Note: Any core changing the LFCLK source will abort calibration without the DONE event being
generated in the core triggering the CAL task.
If the CAL task is triggered while a calibration routine is already running (i.e. before the DONE event is
generated), the CAL task has no effect and the calibration continues.
All cores can trigger the CAL task independently of each other. As a result, each core will receive a
corresponding DONE event. If the calibration routine is already running (i.e. a core has triggered the CAL
task), and the CAL task is triggered from another core, a DONE event is generated in both cores when the
calibration of its corresponding LFRC oscillator is complete.
4.11.3 Registers
Instances
CLOCK : S 0x50005000
APPLICATION US S NA No Clock control
CLOCK : NS 0x40005000
CLOCK NETWORK 0x41005000 HF NS NA No Clock control
4406_640 v1.5 79
Power and clock management
Configuration
Register overview
This register value in any CLOCK instance reflects status only due to configurations/actions in
that CLOCK instance.
LFCLKRUN 0x414 Status indicating that LFCLKSTART task has been triggered
4406_640 v1.5 80
Power and clock management
This register value in any CLOCK instance reflects status only due to configurations/actions in
that CLOCK instance.
LFCLKSRCCOPY 0x41C Copy of LFCLKSRC register, set when LFCLKSTART task was triggered
HFCLKAUDIORUN 0x450 Status indicating that HFCLKAUDIOSTART task has been triggered
HFCLKAUDIOSTAT 0x454 Status indicating which HFCLKAUDIO source is running
HFCLK192MRUN 0x458 Status indicating that HFCLK192MSTART task has been triggered
HFCLK192MSTAT 0x45C Status indicating which HFCLK192M source is running
HFCLKSRC 0x514 Clock source for HFCLK128M/HFCLK64M
LFCLKSRC 0x518 Clock source for LFCLK
HFCLKCTRL 0x558 HFCLK128M frequency configuration
HFCLKAUDIO.FREQUENCY 0x55C Audio PLL frequency in 11.176 MHz - 11.402 MHz or 12.165 MHz - 12.411 MHz frequency
bands
HFCLKALWAYSRUN 0x570 Automatic or manual control of HFCLK128M/HFCLK64M
LFCLKALWAYSRUN 0x574 Automatic or manual control of LFCLK
HFCLKAUDIOALWAYSRUN 0x57C Automatic or manual control of HFCLKAUDIO
HFCLK192MSRC 0x580 Clock source for HFCLK192M
HFCLK192MALWAYSRUN 0x584 Automatic or manual control of HFCLK192M
HFCLK192MCTRL 0x5B8 HFCLK192M frequency configuration
4.11.3.1 TASKS_HFCLKSTART
Address offset: 0x000
Start HFCLK128M/HFCLK64M source as selected in HFCLKSRC
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_HFCLKSTART Start HFCLK128M/HFCLK64M source as selected in HFCLKSRC
Trigger 1 Trigger task
4.11.3.2 TASKS_HFCLKSTOP
Address offset: 0x004
Stop HFCLK128M/HFCLK64M source
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_HFCLKSTOP Stop HFCLK128M/HFCLK64M source
Trigger 1 Trigger task
4.11.3.3 TASKS_LFCLKSTART
Address offset: 0x008
Start LFCLK source as selected in LFCLKSRC
4406_640 v1.5 81
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_LFCLKSTART Start LFCLK source as selected in LFCLKSRC
Trigger 1 Trigger task
4.11.3.4 TASKS_LFCLKSTOP
Address offset: 0x00C
Stop LFCLK source
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_LFCLKSTOP Stop LFCLK source
Trigger 1 Trigger task
4.11.3.5 TASKS_CAL
Address offset: 0x010
Start calibration of LFRC oscillator
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CAL Start calibration of LFRC oscillator
Trigger 1 Trigger task
4.11.3.6 TASKS_HFCLKAUDIOSTART
Address offset: 0x018
Start HFCLKAUDIO source
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_HFCLKAUDIOSTART Start HFCLKAUDIO source
Trigger 1 Trigger task
4.11.3.7 TASKS_HFCLKAUDIOSTOP
Address offset: 0x01C
Stop HFCLKAUDIO source
4406_640 v1.5 82
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_HFCLKAUDIOSTOP Stop HFCLKAUDIO source
Trigger 1 Trigger task
4.11.3.8 TASKS_HFCLK192MSTART
Address offset: 0x020
Start HFCLK192M source as selected in HFCLK192MSRC
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_HFCLK192MSTART Start HFCLK192M source as selected in HFCLK192MSRC
Trigger 1 Trigger task
4.11.3.9 TASKS_HFCLK192MSTOP
Address offset: 0x024
Stop HFCLK192M source
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_HFCLK192MSTOP Stop HFCLK192M source
Trigger 1 Trigger task
4.11.3.10 SUBSCRIBE_HFCLKSTART
Address offset: 0x080
Subscribe configuration for task HFCLKSTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task HFCLKSTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.11 SUBSCRIBE_HFCLKSTOP
Address offset: 0x084
Subscribe configuration for task HFCLKSTOP
4406_640 v1.5 83
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task HFCLKSTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.12 SUBSCRIBE_LFCLKSTART
Address offset: 0x088
Subscribe configuration for task LFCLKSTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task LFCLKSTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.13 SUBSCRIBE_LFCLKSTOP
Address offset: 0x08C
Subscribe configuration for task LFCLKSTOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task LFCLKSTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.14 SUBSCRIBE_CAL
Address offset: 0x090
Subscribe configuration for task CAL
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CAL will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4406_640 v1.5 84
Power and clock management
4.11.3.15 SUBSCRIBE_HFCLKAUDIOSTART
Address offset: 0x098
Subscribe configuration for task HFCLKAUDIOSTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task HFCLKAUDIOSTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.16 SUBSCRIBE_HFCLKAUDIOSTOP
Address offset: 0x09C
Subscribe configuration for task HFCLKAUDIOSTOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task HFCLKAUDIOSTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.17 SUBSCRIBE_HFCLK192MSTART
Address offset: 0x0A0
Subscribe configuration for task HFCLK192MSTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task HFCLK192MSTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.18 SUBSCRIBE_HFCLK192MSTOP
Address offset: 0x0A4
Subscribe configuration for task HFCLK192MSTOP
4406_640 v1.5 85
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task HFCLK192MSTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
4.11.3.19 EVENTS_HFCLKSTARTED
Address offset: 0x100
HFCLK128M/HFCLK64M source started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_HFCLKSTARTED HFCLK128M/HFCLK64M source started
NotGenerated 0 Event not generated
Generated 1 Event generated
4.11.3.20 EVENTS_LFCLKSTARTED
Address offset: 0x104
LFCLK source started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_LFCLKSTARTED LFCLK source started
NotGenerated 0 Event not generated
Generated 1 Event generated
4.11.3.21 EVENTS_DONE
Address offset: 0x11C
Calibration of LFRC oscillator complete event
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DONE Calibration of LFRC oscillator complete event
NotGenerated 0 Event not generated
Generated 1 Event generated
4.11.3.22 EVENTS_HFCLKAUDIOSTARTED
Address offset: 0x120
HFCLKAUDIO source started
4406_640 v1.5 86
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_HFCLKAUDIOSTARTED HFCLKAUDIO source started
NotGenerated 0 Event not generated
Generated 1 Event generated
4.11.3.23 EVENTS_HFCLK192MSTARTED
Address offset: 0x124
HFCLK192M source started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_HFCLK192MSTARTED HFCLK192M source started
NotGenerated 0 Event not generated
Generated 1 Event generated
4.11.3.24 PUBLISH_HFCLKSTARTED
Address offset: 0x180
Publish configuration for event HFCLKSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event HFCLKSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.11.3.25 PUBLISH_LFCLKSTARTED
Address offset: 0x184
Publish configuration for event LFCLKSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event LFCLKSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.11.3.26 PUBLISH_DONE
Address offset: 0x19C
4406_640 v1.5 87
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DONE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.11.3.27 PUBLISH_HFCLKAUDIOSTARTED
Address offset: 0x1A0
Publish configuration for event HFCLKAUDIOSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event HFCLKAUDIOSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.11.3.28 PUBLISH_HFCLK192MSTARTED
Address offset: 0x1A4
Publish configuration for event HFCLK192MSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event HFCLK192MSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
4.11.3.29 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HFCLKSTARTED Enable or disable interrupt for event HFCLKSTARTED
Disabled 0 Disable
Enabled 1 Enable
4406_640 v1.5 88
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW LFCLKSTARTED Enable or disable interrupt for event LFCLKSTARTED
Disabled 0 Disable
Enabled 1 Enable
C RW DONE Enable or disable interrupt for event DONE
Disabled 0 Disable
Enabled 1 Enable
D RW HFCLKAUDIOSTARTED Enable or disable interrupt for event HFCLKAUDIOSTARTED
Disabled 0 Disable
Enabled 1 Enable
E RW HFCLK192MSTARTED Enable or disable interrupt for event HFCLK192MSTARTED
Disabled 0 Disable
Enabled 1 Enable
4.11.3.30 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HFCLKSTARTED Write '1' to enable interrupt for event HFCLKSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW LFCLKSTARTED Write '1' to enable interrupt for event LFCLKSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW DONE Write '1' to enable interrupt for event DONE
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW HFCLKAUDIOSTARTED Write '1' to enable interrupt for event HFCLKAUDIOSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW HFCLK192MSTARTED Write '1' to enable interrupt for event HFCLK192MSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
4.11.3.31 INTENCLR
Address offset: 0x308
Disable interrupt
4406_640 v1.5 89
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HFCLKSTARTED Write '1' to disable interrupt for event HFCLKSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW LFCLKSTARTED Write '1' to disable interrupt for event LFCLKSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW DONE Write '1' to disable interrupt for event DONE
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW HFCLKAUDIOSTARTED Write '1' to disable interrupt for event HFCLKAUDIOSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW HFCLK192MSTARTED Write '1' to disable interrupt for event HFCLK192MSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
4.11.3.32 INTPEND
Address offset: 0x30C
Pending interrupts
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R HFCLKSTARTED Read pending status of interrupt for event HFCLKSTARTED
NotPending 0 Read: Not pending
Pending 1 Read: Pending
B R LFCLKSTARTED Read pending status of interrupt for event LFCLKSTARTED
NotPending 0 Read: Not pending
Pending 1 Read: Pending
C R DONE Read pending status of interrupt for event DONE
NotPending 0 Read: Not pending
Pending 1 Read: Pending
D R HFCLKAUDIOSTARTED Read pending status of interrupt for event HFCLKAUDIOSTARTED
NotPending 0 Read: Not pending
Pending 1 Read: Pending
E R HFCLK192MSTARTED Read pending status of interrupt for event HFCLK192MSTARTED
NotPending 0 Read: Not pending
Pending 1 Read: Pending
4.11.3.33 HFCLKRUN
Address offset: 0x408
4406_640 v1.5 90
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS HFCLKSTART task triggered or not
NotTriggered 0 Task not triggered
Triggered 1 Task triggered
4.11.3.34 HFCLKSTAT
Address offset: 0x40C
Status indicating which HFCLK128M/HFCLK64M source is running
This register value in any CLOCK instance reflects status only due to configurations/actions in that CLOCK
instance.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SRC Active clock source
HFINT 0 Clock source: HFINT - 128 MHz on-chip oscillator
HFXO 1 Clock source: HFXO - 128 MHz clock derived from external 32 MHz crystal
oscillator
B R ALWAYSRUNNING ALWAYSRUN activated
NotRunning 0 Automatic clock control enabled
Running 1 Oscillator is always running
C R STATE HFCLK state
NotRunning 0 HFCLK not running
Running 1 HFCLK running
4.11.3.35 LFCLKRUN
Address offset: 0x414
Status indicating that LFCLKSTART task has been triggered
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS LFCLKSTART task triggered or not
NotTriggered 0 Task not triggered
Triggered 1 Task triggered
4.11.3.36 LFCLKSTAT
Address offset: 0x418
Status indicating which LFCLK source is running
This register value in any CLOCK instance reflects status only due to configurations/actions in that CLOCK
instance.
4406_640 v1.5 91
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SRC Active clock source
LFRC 1 32.768 kHz RC oscillator
LFXO 2 32.768 kHz crystal oscillator
LFSYNT 3 32.768 kHz synthesized from HFCLK
B R ALWAYSRUNNING ALWAYSRUN activated
NotRunning 0 Automatic clock control enabled
Running 1 Oscillator is always running
C R STATE LFCLK state
NotRunning 0 LFCLK not running
Running 1 LFCLK running
4.11.3.37 LFCLKSRCCOPY
Address offset: 0x41C
Copy of LFCLKSRC register, set when LFCLKSTART task was triggered
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R SRC Clock source
LFRC 1 32.768 kHz RC oscillator
LFXO 2 32.768 kHz crystal oscillator
LFSYNT 3 32.768 kHz synthesized from HFCLK
4.11.3.38 HFCLKAUDIORUN
Address offset: 0x450
Status indicating that HFCLKAUDIOSTART task has been triggered
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS HFCLKAUDIOSTART task triggered or not
NotTriggered 0 Task not triggered
Triggered 1 Task triggered
4.11.3.39 HFCLKAUDIOSTAT
Address offset: 0x454
Status indicating which HFCLKAUDIO source is running
4406_640 v1.5 92
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ALWAYSRUNNING ALWAYSRUN activated
NotRunning 0 Automatic clock control enabled
Running 1 Oscillator is always running
B R STATE HFCLKAUDIO state
NotRunning 0 HFCLKAUDIO not running
Running 1 HFCLKAUDIO running
4.11.3.40 HFCLK192MRUN
Address offset: 0x458
Status indicating that HFCLK192MSTART task has been triggered
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS HFCLK192MSTART task triggered or not
NotTriggered 0 Task not triggered
Triggered 1 Task triggered
4.11.3.41 HFCLK192MSTAT
Address offset: 0x45C
Status indicating which HFCLK192M source is running
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SRC Active clock source
HFINT 0 Clock source: HFINT - on-chip oscillator
HFXO 1 Clock source: HFXO - derived from external 32 MHz crystal oscillator
B R ALWAYSRUNNING ALWAYSRUN activated
NotRunning 0 Automatic clock control enabled
Running 1 Oscillator is always running
C R STATE HFCLK192M state
NotRunning 0 HFCLK192M not running
Running 1 HFCLK192M running
4.11.3.42 HFCLKSRC
Address offset: 0x514
Clock source for HFCLK128M/HFCLK64M
4406_640 v1.5 93
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW SRC Select which HFCLK source is started by the HFCLKSTART task
HFINT 0 HFCLKSTART task starts HFINT oscillator
HFXO 1 HFCLKSTART task starts HFXO oscillator
4.11.3.43 LFCLKSRC
Address offset: 0x518
Clock source for LFCLK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW SRC Select which LFCLK source is started by the LFCLKSTART task
LFRC 1 32.768 kHz RC oscillator
LFXO 2 32.768 kHz crystal oscillator
LFSYNT 3 32.768 kHz synthesized from HFCLK
4.11.3.44 HFCLKCTRL
Address offset: 0x558
HFCLK128M frequency configuration
Using any value except for the enumerations will yield unexpected results
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW HCLK High frequency clock HCLK
Div1 0 Divide HFCLK by 1
Div2 1 Divide HFCLK by 2
4.11.3.45 HFCLKAUDIO.FREQUENCY
Address offset: 0x55C
Audio PLL frequency in 11.176 MHz - 11.402 MHz or 12.165 MHz - 12.411 MHz frequency bands
4406_640 v1.5 94
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00009BAE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0
ID R/W Field Value ID Value Description
A RW FREQUENCY Frequency
0: 10.666 MHz
4.11.3.46 HFCLKALWAYSRUN
Address offset: 0x570
Automatic or manual control of HFCLK128M/HFCLK64M
The AlwaysRun setting will ensure the clock source is always running, independent of the automatic clock
request system.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ALWAYSRUN Ensure clock is always running
Automatic 0 Use automatic clock control
AlwaysRun 1 Ensure clock is always running
4.11.3.47 LFCLKALWAYSRUN
Address offset: 0x574
Automatic or manual control of LFCLK
The AlwaysRun setting will ensure the clock source is always running, independent of the automatic clock
request system.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ALWAYSRUN Ensure clock is always running
Automatic 0 Use automatic clock control
AlwaysRun 1 Ensure clock is always running
4.11.3.48 HFCLKAUDIOALWAYSRUN
Address offset: 0x57C
Automatic or manual control of HFCLKAUDIO
The AlwaysRun setting will ensure the clock source is always running, independent of the automatic clock
request system.
4406_640 v1.5 95
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ALWAYSRUN Ensure clock is always running
Automatic 0 Use automatic clock control
AlwaysRun 1 Ensure clock is always running
4.11.3.49 HFCLK192MSRC
Address offset: 0x580
Clock source for HFCLK192M
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW SRC Select which HFCLK192M source is started by the HFCLK192MSTART task
HFINT 0 HFCLK192MSTART task starts HFINT oscillator
HFXO 1 HFCLK192MSTART task starts HFXO oscillator
4.11.3.50 HFCLK192MALWAYSRUN
Address offset: 0x584
Automatic or manual control of HFCLK192M
The AlwaysRun setting will ensure the clock source is always running, independent of the automatic clock
request system.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ALWAYSRUN Ensure clock is always running
Automatic 0 Use automatic clock control
AlwaysRun 1 Ensure clock is always running
4.11.3.51 HFCLK192MCTRL
Address offset: 0x5B8
HFCLK192M frequency configuration
4406_640 v1.5 96
Power and clock management
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW HCLK192M High frequency clock HCLK192M
Div1 0 Divide HFCLK192M by 1
Div2 1 Divide HFCLK192M by 2
Div4 2 Divide HFCLK192M by 4
4406_640 v1.5 97
Power and clock management
XC1 XC2
C1 32 MHz C2
crystal
Figure 21: Circuit diagram of the high-frequency crystal oscillator
The load capacitance (CL) is the total capacitance seen by the crystal across its terminals and is calculated
by the following equation.
C1 and C2 are ceramic SMD capacitors connected between each crystal terminal and ground. For more
information, see Reference circuitry on page 862. Cpcb1 and Cpcb2 are stray capacitance on the PCB.
Cpin is the pin input capacitance on pins XC1 and XC2. See table 32 MHz crystal oscillator (HFXO) on page
102. The load capacitors C1 and C2 should have the same value.
For reliable operation, the crystal load capacitance, shunt capacitance, equivalent series resistance, and
drive level must comply with the specifications in table 32 MHz crystal oscillator (HFXO) on page 102. It
4406_640 v1.5 98
Power and clock management
is recommended to use a crystal with lower than maximum load capacitance and/or shunt capacitance. A
low load capacitance will reduce both startup time and current consumption.
CAPVALUE = (((FICR->XOSC32MTRIM.SLOPE+56)*(CAPACITANCE*2-14))
+((FICR->XOSC32MTRIM.OFFSET-8)<<4)+32)>>6;
XL1 XL2
C1 32.768 kHz C2
crystal
Figure 23: Circuit diagram of the low-frequency crystal oscillator
To enable oscillator functionality on XL1 and XL2 pins, use value Peripheral for the MCUSEL bitfield of the
register PIN_CNF[n] (n=0..31) (Retained) on page 302.
To achieve correct oscillation frequency, the load capacitance (CL) must match the specification in
the crystal data sheet. The load capacitance (CL) is the total capacitance seen by the crystal across its
terminals. It is calculated by the following equation.
4406_640 v1.5 99
Power and clock management
C1 and C2 are ceramic SMD capacitors connected between each crystal terminal and ground. Cpcb1 and
Cpcb2 are stray capacitance on the PCB. Cpin is the pin input capacitance on the XL1 and XL2 pins (see
32.768 kHz crystal oscillator (LFXO) on page 103). The load capacitors C1 and C2 should have the same
value.
For more information, see Reference circuitry on page 862.
CINT
XL1 XL2
32.768 kHz
crystal
Figure 25: Internal capacitor for the 32 kHz crystal
To enable this capacitor, choose the correct CINT capacitance in register XOSC32KI.INTCAP. The value of the
internal capacitor CINT must match the specification in the crystal data sheet. CINT is the capacitance seen
by the crystal across its terminals, including pin capacitance but excluding PCB stray capacitance.
4.12.4 Registers
Instances
OSCILLATORS : S 0x50004000
APPLICATION US S NA No Oscillator configuration
OSCILLATORS : NS 0x40004000
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CAPVALUE Value representing capacitance, calculated using provided equation
B RW ENABLE Enable on-chip capacitors on XC1 and XC2
Disabled 0 Capacitor disabled (use external caps)
Enabled 1 Capacitor enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BYPASS Enable or disable bypass of LFCLK crystal oscillator with external clock
source
Disabled 0 Disable (use with crystal or low-swing external source)
Enabled 1 Enable (use with rail-to-rail external source)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW INTCAP Control usage of internal load capacitors
External 0 Use external load capacitors
C6PF 1 6 pF internal load capacitance
C7PF 2 7 pF internal load capacitance
C9PF 3 9 pF internal load capacitance
CL_HFXO = 8 pF, C0_HFXO = 0.73 pF, LM_HFXO = 9.47 mH, RS_HFXO = 16.32 Ω
ISTBY_X32M_X3 Typical parameters for a given 1.2mm x 1.0mm crystal: 181 µA
CL_HFXO = 8 pF, C0_HFXO = 0.42 pF, LM_HFXO = 22.7 mH, RS_HFXO = 100 Ω
ISTART_X32M Average startup current for various crystals, first 1 ms
ISTART_X32M_X0 Typical parameters for a given 2.5mm x 2.0mm crystal: 363 µA
CL_HFXO = 8 pF, C0_HFXO = 0.73 pF, LM_HFXO = 9.47 mH, RS_HFXO = 16.32 Ω
ISTART_X32M_X3 Typical parameters for a given 1.2mm x 1.0mm crystal: 863 µA
CL_HFXO = 8 pF, C0_HFXO = 0.42 pF, LM_HFXO = 22.7 mH, RS_HFXO = 100 Ω
tPOWERUP_X32M Power-up time for various crystals
tPOWERUP_X32M_X0 Typical parameters for a given 2.5mm x 2.0mm crystal: 60 µs
CL_HFXO = 8 pF, C0_HFXO = 0.73 pF, LM_HFXO = 9.47 mH, RS_HFXO = 16.32 Ω
tPOWERUP_X32M_X3 Typical parameters for a given 1.2mm x 1.0mm crystal: 211 µs
CL_HFXO = 8 pF, C0_HFXO = 0.42 pF, LM_HFXO = 22.7 mH, RS_HFXO = 100 Ω
Application core
RAM0 RAM1 RAM2 RAM3
NVIC SysTick
slave
slave
slave
slave
CPU Trace
AHB Multi-Layer SBus Arm Cortex-M33 and
debug
slave
slave
slave
From network core AHB Multi-Layer
CBus
slave
slave
P0.00 – P0.31 AHB TO APB
GPIO BRIDGE
P1.00 – P1.15
CACHEDATA
COMP Cache
CACHEINFO
LPCOMP
NVMC
AIN0 – AIN7 SAADC
AREF
EasyDMA master
FICR UICR FLASH QSPI XIP
LED
A QDEC KMU
B
CSN TIMER
MISO P0.00 – P0.31
SPIM & SPIS GPIOTE
MOSI P1.00 – P1.15
SCK IO0
EasyDMA master IO1
QSPI IO2
NFC1 IO3
NFCT
NFC2 SCK
EasyDMA master CSN
master EasyDMA
USBREG
RTC
VBUS
D+ USBD MUTEX
D-
REGULATORS
EasyDMA master
WDT
DIN
PDM
CLK
POWER
EasyDMA master
CLOCK
MCLK
SCK
VMC
LRCK I2S
SDOUT
SDIN PWM OUT0 – OUT3
EasyDMA master
master EasyDMA
XC1
AHB
SPU
XC2
OSCILLATORS
XL1 DCNF
APB
XL2
5.2 CPU
The Arm Cortex-M33 processor has a 32-bit instruction set (Thumb-2 technology) that implements a super
set of 16- and 32-bit instructions to maximize code density and performance.
This processor implements several features that enable energy-efficient arithmetic and high-performance
signal processing including:
• Digital signal processing (DSP) instructions
• Single-cycle multiply and accumulate (MAC) instructions
• Hardware divide
• 8- and 16-bit single instruction multiple data (SIMD) instructions
• Single-precision floating-point unit (FPU)
• Memory Protection Unit (MPU)
• Arm TrustZone for Armv8-M
The Arm Cortex Microcontroller Software Interface Standard (CMSIS) is implemented and available for the
application processor.
Real-time execution is highly deterministic in thread mode, to and from sleep modes, and when handling
events at configurable priority levels via the Nested Vectored Interrupt Controller (NVIC).
Executing code from internal or external flash will have a wait state penalty. The instruction cache can
be enabled to minimize flash wait states when fetching instructions. For more information on cache, see
CACHE — Instruction/data cache on page 112. CPU performance parameters including wait states for
different configurations, CPU current consumption and efficiency, and processing power and efficiency
based on the CoreMark benchmark can be found in Electrical specification on page 106.
5.3 Memory
The application core contains flash memory and RAM that can be used for code and data storage.
The following figure shows how the CPU, network core, and peripherals with EasyDMA can access RAM
via the AHB multilayer interconnect. The domain configuration (DCNF) registers can block access from
external DMA masters, see DCNF — Domain configuration on page 269.
Arm® Cortex®-M33
Network
core AHB Master AHB Master
AHB Master
Cache
8 kB 2-way
set associative
System bus
Code bus
PERI USBD
DMA
APB slave master
SLAVE0
Secure APB
PERI KMU
APB
APB slave Master
PERI DMA
APB/AHB APB Peripherals master
slave
DCNF
EXTRAM[0]
Section 15
SLAVE7
RAM7 ...
AHB slave Section 1
Section 0 0x2007 0000
Section 15
SLAVE6
RAM6 ...
AHB slave Section 1
Section 0 0x2006 0000
Section 15
SLAVE5
RAM5 ...
AHB slave Section 1
Section 0 0x2005 0000
Section 15
SLAVE4
RAM4 ...
AHB slave Section 1
Section 0 0x2004 0000
Section 15
SLAVE3
RAM3 ...
AHB slave Section 1
Section 0 0x2003 0000
Section 15
SLAVE2
RAM2 ...
AHB slave Section 1
Section 0 0x2002 0000
Section 15
SLAVE1
RAM1 ...
AHB slave Section 1
Section 0 0x2001 0000
Section 15
SLAVE0
RAM0 ...
AHB slave Section 1
Section 0 0x2000 0000
0x1FFF FFFF
XIP External
AHB slave QSPI
(read-only) Memory
0x1000 0000
0x000F F000
Page 255
DCNF
Pages
EXTCODE[0]
SLAVE0 3..254
CODE0 0x0000 3000
AHB slave
Page 2 0x0000 2000
Page 1 0x0000 1000
Page 0 0x0000 0000
Abbreviation Description
NS Trustzone/security attribute is Non-secure - The peripheral is accessible as a Non-secure
peripheral.
S Trustzone/security attribute is Secure - The peripheral is accessible as a Secure
peripheral.
US Trustzone Map is user selectable - The Trustzone/security attribute of the peripheral can
be configured using SPU — System protection unit on page 651.
HF Trustzone Map is hardware fixed - The Trustzone/security attribute of the peripheral
cannot be changed.
NA Not Applicable - Peripheral has no DMA capability.
NSA NoSeparateAttribute - Peripheral with DMA and DMA transfer has the same security
attribute as assigned to the peripheral.
SA SeparateAttribute - Peripheral with DMA and DMA transfers can have a different
security attribute than the one assigned to the peripheral.
The Secure mapping column in the following table defines configuration capabilities for the Arm TrustZone
for Armv8-M secure attribute. The DMA security column describes the DMA capabilities of the peripheral.
5.3.1.1 Instantiation
Address
= =
MUX
Hit Data
In Cache mode (MODE=Cache), instruction and data accesses from the CPU over the code bus towards
internal or external flash, are cached. The contents of the cache, i.e. data, tag, valid, and MRU bits, are
memory mapped, see Cache content on page 113. This can be used for performance profiling of code
running in the system. Access to the cache content region is read-only by default, but can be blocked by
enabling a lock bit in DEBUGLOCK on page 118. Preventing cache content updates on cache misses can
be enabled through register DEBUGLOCK on page 118. When enabled, cache content is not replaced,
but kept intact. The cache is still enabled and provides fast instruction and data fetches for cached
content.
Access to internal or external flash memory will not be cached when in Ram mode (MODE=Ram). Instead,
the cache data content, as described in Cache content on page 113, can be used as read/write RAM.
32 bit
Figure 29: Cache info content
The V field contains the bit that indicates if a cache entry is valid or not. All V fields are cleared when
invalidating the cache using register INVALIDATE on page 117, when disabling the cache using register
ENABLE on page 116, or when changing MODE from Ram to Cache. The MRU field indicates which way
was used most recently in the set. The MRU bit is updated on each fetch from the cache and is used for
the cache replacement policy. The Tag field is used to check if an entry in the cache matches the address
being fetched.
The following figure shows how the cache data content is organized in memory.
Offset
Data [127:96] N*0x20 + 0xC
Data [95:64] N*0x20 + 0x8
SetN, Way0
Data [63:32] N*0x20 + 0x4
Data [31:0] N*0x20
32 bit
Figure 30: Cache data content
Each set consists of two ways, each containing 128 bits of data. The 128-bit data is available as 4x32-bit
words in sequential order. When operating in Ram mode (MODE = Ram), the data is accessible as general
purpose RAM.
The cache info and cache data content are memory mapped in the CACHEINFO and CACHEDATA regions.
These can be accessed in the CACHEINFO registers and CACHEDATA registers respectively.
5.4.1.2 Profiling
The cache includes profiling counters IHIT, IMISS, DHIT, and DMISS for both flash and execute-in-place
(XIP).
Cache performance on executed code is indicated by these counters when enabled through
PROFILINGENABLE on page 117. The counters can be cleared at any time using PROFILINGCLEAR on
page 117. Writing to this register will clear all profiling counters. After being cleared, the counters will
increment at the next instruction, or data fetch, according to the rules in the following table.
5.4.1.3 Registers
Instances
Register overview
Instruction fetch cache hit counter for cache region n, where n=0 means Flash and n=1 means XIP.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R HITS Number of instruction cache hits
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R MISSES Number of instruction cache misses
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R HITS Number of data cache hits
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R MISSES Number of data cache misses
5.4.1.3.5 ENABLE
Address offset: 0x500
Enable cache.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable cache
Disabled 0 Disable cache
Enabled 1 Enable cache
5.4.1.3.6 INVALIDATE
Address offset: 0x504
Invalidate the cache.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W INVALIDATE Invalidate the cache
Invalidate 1 Invalidate the cache
5.4.1.3.7 ERASE
Address offset: 0x508
Erase the cache.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ERASE Erase the cache
Erase 1 Erase cache
5.4.1.3.8 PROFILINGENABLE
Address offset: 0x50C
Enable the profiling counters.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable the profiling counters
Disable 0 Disable profiling
Enable 1 Enable profiling
5.4.1.3.9 PROFILINGCLEAR
Address offset: 0x510
Clear the profiling counters.
The profiling counters can be cleared at any time. When cleared, all profiling counters will be set to zero,
and will increment at the next instruction or data fetch.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W CLEAR Clearing the profiling counters
Clear 1 Clear the profiling counters
5.4.1.3.10 MODE
Address offset: 0x514
Cache mode.
Switching from Cache to Ram mode causes the RAM to be cleared.
Switching from RAM to Cache mode causes the cache to be invalidated.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MODE Cache mode
Cache 0 Cache mode
Ram 1 RAM mode
5.4.1.3.11 DEBUGLOCK
Address offset: 0x518
Lock debug mode.
This register is ignored when CACHE is used in RAM mode. Once this register has been set to Locked, the
debug mode can only be unlocked by resetting the device.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 DEBUGLOCK Lock debug mode
Unlocked 0 Debug mode unlocked
Locked 1 Debug mode locked
5.4.1.3.12 ERASESTATUS
Address offset: 0x51C
Cache erase status.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ERASESTATUS Cache erase status
Idle 0 Erase is not complete or hasn't started
Finished 1 Cache erase is finished
Write 0 to clear.
5.4.1.3.13 WRITELOCK
Address offset: 0x520
Lock cache updates. Prevents updating of cache content on cache misses, but will continue to lookup
instruction/data fetches in content already present in the cache.
Ignored in RAM mode.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW WRITELOCK Lock cache updates
Unlocked 0 Cache updates unlocked
Locked 1 Cache updates locked
5.4.1.5 Registers
Instances
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TAG Cache tag.
B R V Valid bit
Invalid 0 Invalid cache line
Valid 1 Valid cache line
C R MRU Most recently used way.
Way0 0 Way0 was most recently used
Way1 1 Way1 was most recently used
5.4.1.6 Registers
Instances
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW Data Data
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW Data Data
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW Data Data
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW Data Data
5.4.2.1 Registers
Instances
Register overview
5.4.2.1.1 INFO
Device info
5.4.2.1.1.1 INFO.CONFIGID
Address offset: 0x200
Configuration identifier
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R HWID Identification number for the HW
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R DEVICEID 64 bit unique device identifier
5.4.2.1.1.3 INFO.PART
Address offset: 0x20C
Part code
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00005340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R PART Part code
N5340 0x5340 nRF5340
Unspecified 0xFFFFFFFF Unspecified
5.4.2.1.1.4 INFO.VARIANT
Address offset: 0x210
Part Variant, Hardware version and Production configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R VARIANT Part Variant, Hardware version and Production configuration, encoded as
ASCII
QKAA 0x514B4141 QKAA
CLAA 0x434C4141 CLAA
Unspecified 0xFFFFFFFF Unspecified
5.4.2.1.1.5 INFO.PACKAGE
Address offset: 0x214
Package option
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R PACKAGE Package option
QK 0x2000 QKxx - 94-pin aQFN
CL 0x2005 CLxx - WLCSP
Unspecified 0xFFFFFFFF Unspecified
5.4.2.1.1.6 INFO.RAM
Address offset: 0x218
RAM variant
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R RAM RAM variant
K16 0x10 16 kByte RAM
K32 0x20 32 kByte RAM
K64 0x40 64 kByte RAM
K128 0x80 128 kByte RAM
K256 0x100 256 kByte RAM
K512 0x200 512 kByte RAM
Unspecified 0xFFFFFFFF Unspecified
5.4.2.1.1.7 INFO.FLASH
Address offset: 0x21C
Flash variant
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R FLASH Flash variant
K128 0x80 128 kByte FLASH
K256 0x100 256 kByte FLASH
K512 0x200 512 kByte FLASH
K1024 0x400 1 MByte FLASH
K2048 0x800 2 MByte FLASH
Unspecified 0xFFFFFFFF Unspecified
5.4.2.1.1.8 INFO.CODEPAGESIZE
Address offset: 0x220
Code memory page size in bytes
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CODEPAGESIZE Code memory page size in bytes
K4096 0x1000 4 kByte
5.4.2.1.1.9 INFO.CODESIZE
Address offset: 0x224
Code memory size
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CODESIZE Code memory size in number of pages
5.4.2.1.1.10 INFO.DEVICETYPE
Address offset: 0x228
Device type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R DEVICETYPE Device type
Die 0x0000000 Device is an physical DIE
FPGA 0xFFFFFFFF Device is an FPGA
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R Address Address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R Data Data to be written into the PAR register
5.4.2.1.4 NFC.TAGHEADER0
Address offset: 0x450
Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST,
NFCID1_2ND_LAST and NFCID1_LAST.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0xFFFFFF5F 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1
ID R/W Field Value ID Value Description
A R MFGID Default Manufacturer ID: Nordic Semiconductor ASA has ICM 0x5F
B R UD1 Unique identifier byte 1
C R UD2 Unique identifier byte 2
D R UD3 Unique identifier byte 3
5.4.2.1.5 NFC.TAGHEADER1
Address offset: 0x454
Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST,
NFCID1_2ND_LAST and NFCID1_LAST.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-D R UD[i] (i=4..7) Unique identifier byte i
5.4.2.1.6 NFC.TAGHEADER2
Address offset: 0x458
Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST,
NFCID1_2ND_LAST and NFCID1_LAST.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-D R UD[i] (i=8..11) Unique identifier byte i
5.4.2.1.7 NFC.TAGHEADER3
Address offset: 0x45C
Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST,
NFCID1_2ND_LAST and NFCID1_LAST.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-D R UD[i] (i=12..15) Unique identifier byte i
5.4.2.1.8 TRNG90B
NIST800-90B RNG calibration data
5.4.2.1.8.1 TRNG90B.BYTES
Address offset: 0xC00
Amount of bytes for the required entropy bits
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
ID R/W Field Value ID Value Description
A R BYTES Amount of bytes for the required entropy bits
5.4.2.1.8.2 TRNG90B.RCCUTOFF
Address offset: 0xC04
Repetition counter cutoff
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R RCCUTOFF Repetition counter cutoff
5.4.2.1.8.3 TRNG90B.APCUTOFF
Address offset: 0xC08
Adaptive proportion cutoff
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R APCUTOFF Adaptive proportion cutoff
5.4.2.1.8.4 TRNG90B.STARTUP
Address offset: 0xC0C
Amount of bytes for the startup tests
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R STARTUP Amount of bytes for the startup tests
5.4.2.1.8.5 TRNG90B.ROSC1
Address offset: 0xC10
Sample count for ring oscillator 1
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R ROSC1 Sample count for ring oscillator 1
5.4.2.1.8.6 TRNG90B.ROSC2
Address offset: 0xC14
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R ROSC2 Sample count for ring oscillator 2
5.4.2.1.8.7 TRNG90B.ROSC3
Address offset: 0xC18
Sample count for ring oscillator 3
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R ROSC3 Sample count for ring oscillator 3
5.4.2.1.8.8 TRNG90B.ROSC4
Address offset: 0xC1C
Sample count for ring oscillator 4
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R ROSC4 Sample count for ring oscillator 4
5.4.2.1.9 XOSC32MTRIM
Address offset: 0xC20
XOSC32M capacitor selection trim values
Note: To enable the optional internal capacitors on XC1 and XC2 pins, refer to the "Using internal
capacitors" section of the OSCILLATORS chapter.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R SLOPE [-16..15] Slope trim factor on twos complement form
0: Minimum offset
5.4.3.1 Registers
Instances
Register overview
5.4.3.1.1 APPROTECT
Address offset: 0x000
Access port protection
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PALL Blocks debugger read/write access to all CPU registers and memory mapped
addresses.
Using any value except Unprotected will lead to the protection being
enabled.
Bits with value '1' can be written to '0'. Bits with value '0' cannot be written
to '1'.
Unprotected 0x50FA50FA Unprotected
Protected 0x00000000 Protected
5.4.3.1.2 VREGHVOUT
Address offset: 0x010
Output voltage from the high voltage (VREGH) regulator stage. The maximum output voltage from this
stage is given as VDDH - VREGHDROP.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW VREGHVOUT VREGH regulator output voltage.
1V8 0 1.8 V
2V1 1 2.1 V
2V4 2 2.4 V
2V7 3 2.7 V
3V0 4 3.0 V
3V3 5 3.3 V
DEFAULT 7 Default voltage: 1.8 V
5.4.3.1.3 HFXOCNT
Address offset: 0x014
HFXO startup counter
The CLKSTARTED events are generated after the HFXO power up time + the HFXOCNT-defined debounce
time + PLL lock time has elapsed. If the HFXO has already been requested by another clock source and is
already running, the CLKSTARTED event is generated as soon as the PLL has locked.
Note: When HFXOCNT field of this register is 0xFF, e.g. after UICR being erased, a debounce time of
(4*64 us + 0.5 us) is used
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW HFXOCNT HFXO startup counter. Total debounce time = HFXOCNT*64 us + 0.5 us
MinDebounceTime 0 Min debounce time = (0*64 us + 0.5 us)
MaxDebounceTime 254 Max debounce time = (254*64 us + 0.5 us)
DefaultDebounceTime255 Default debounce time for erased UICR = 4*64 us + 0.5 us
5.4.3.1.4 SECUREAPPROTECT
Address offset: 0x01C
Secure access port protection
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PALL Blocks debugger read/write access to all secure CPU registers and secure
memory mapped addresses.
Using any value except Unprotected will lead to the protection being
enabled.
Bits with value '1' can be written to '0'. Bits with value '0' cannot be written
to '1'.
Unprotected 0x50FA50FA Unprotected
Protected 0x00000000 Protected
5.4.3.1.5 ERASEPROTECT
Address offset: 0x020
Erase protection
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PALL Blocks NVMC ERASEALL and CTRLAP ERASEALL functionality.
Using any value except Unprotected will lead to the protection being
enabled.
Unprotected 0xFFFFFFFF Unprotected
Protected 0x00000000 Protected
5.4.3.1.6 TINSTANCE
Address offset: 0x024
SW-DP Target instance
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW TINSTANCE TINSTANCE bits are negated and used in the SW-DP DLPIDR.TINSTANCE field.
5.4.3.1.7 NFCPINS
Address offset: 0x028
Setting of pins dedicated to NFC functionality: NFC antenna or GPIO
Note: When used as NFC antenna pin, the corresponding pin must be controlled by the application
core, and the GPIO PIN_CNF register initialized to its reset value.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PROTECT Setting of pins dedicated to NFC functionality
Disabled 0 Operation as GPIO pins. Same protection as normal GPIO pins
NFC 1 Operation as NFC antenna pins. Configures the protection for NFC operation
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW1 LOWER Lower half word
Note: Writing/reading this register requires the KMU SELECTKEYSLOT register to be set to n+1.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW DEST Secure APB destination address
Note: Writing/reading this register requires the KMU SELECTKEYSLOT register to be set to n+1.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW WRITE Write permission for key slot
Disabled 0 Disable write to the key value registers
Disabled 0 Disable pushing of key value registers over secure APB, but can be read if
field READ is Enabled
Enabled 1 Enable pushing of key value registers over secure APB. Register
KEYSLOT.CONFIGn.DEST must contain a valid destination address!
D RW STATE Revocation state for the key slot
Note that it is not possible to undo a key revocation by writing the value '1'
to this field
Revoked 0 Key value registers can no longer be read or pushed
Active 1 Key value registers are readable (if enabled) and can be pushed (if enabled)
Note: Writing/reading this register requires the KMU SELECTKEYSLOT register to be set to n+1.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW VALUE Define bits [31+o*32:0+o*32] of value assigned to KMU key slot
Some peripherals, like I2S, do not have a safe stalling mechanism (not able to pause incoming data and no
internal data buffering). Being a low priority bus master might cause loss of data for such peripherals upon
bus contention. To avoid AHB bus contention when using multiple bus masters, apply one of the following
guidelines:
• Avoid situations where more than one bus master is accessing the same slave.
• If more than one bus master is accessing the same slave, make sure that the bus bandwidth is not
exhausted.
Network core
CPU
Arm Cortex-M33
Trace and debug
RAM0 RAM1 RAM2 RAM3
NVIC SysTick
master
slave
slave
slave
slave
AHB Multi-Layer To application core
slave
slave
FLASH
NVMC
RTC RNG
TIMER TEMP
ACL
RADIO ANT
ECB
CCM
CSN
EasyDMA master
MISO
SPIM & SPIS
MOSI
AAR
er
mast SCK
EasyDMA master master EasyDMA
DPPI CLOCK
EGU
SCL
GPIOTE TWIM & TWIS
SDA
RTS master
CTS EasyDMA
UARTE
TXD
WDT
RXD
EasyDMA master
POWER
AHB
APB
6.2 CPU
The Arm Cortex-M33 processor has a 32-bit instruction set (Thumb-2 technology) that implements a super
set of 16- and 32-bit instructions to maximize code density and performance.
This processor implements several features that enable energy-efficient arithmetic and high-performance
signal processing including:
• Hardware divide
• 8- and 16-bit single instruction multiple data (SIMD) instructions
• Memory Protection Unit (MPU)
The Arm Cortex Microcontroller Software Interface Standard (CMSIS) is implemented and available for the
application processor.
Real-time execution is highly deterministic in thread mode, to and from sleep modes, and when handling
events at configurable priority levels via the Nested Vectored Interrupt Controller (NVIC).
Executing code from internal or external flash will have a wait state penalty. The instruction cache can
be enabled to minimize flash wait states when fetching instructions. For more information on cache, see
NVMC — Non-volatile memory controller on page 400. CPU performance parameters including mode
wait states, CPU current and efficiency, and processing power and efficiency based on the CoreMark
benchmark can be found in Electrical specification on page 137.
6.3 Memory
The network core contains flash memory and RAM that can be used for code and data storage.
The following figure shows how the CPU and peripherals with EasyDMA can access RAM via the AHB
multilayer interconnect.
The network core can access application core resources (flash, RAM, and peripherals) when granted
permission through the application's DCNF and SPU settings. A small portion of the application core RAM
is dedicated to the exchange of messages between the application and network cores.
AHB slave
Arm® Cortex®-M33
Application
core
AHB Master AHB Master
AHB Master
Code bus
System bus
PERI DMA
AHB/APB APB Peripherals Master
slave
Section 3
RAM3 Section 2
AHB slave Section 1
Section 0 0x2100 C000
Section 3
RAM2 Section 2
AHB slave Section 1
Section 0 0x2100 8000
Section 3
RAM1 Section 2
AHB slave Section 1
Section 0 0x2100 4000
Section 3
RAM0 Section 2
AHB slave Section 1
Section 0 0x2100 0000
Pages
3..126
CODE0 Cache
2 kB direct 0x0100 1800
AHB slave
mapped
Page 2 0x0100 1000
Page 1 0x0100 0800
Page 0 0x0100 0000
AHB Multilayer
Interconnect AHB Multilayer Interconnect
External side Internal side
Abbreviation Description
NS Trustzone/security attribute is Non-secure - The peripheral is accessible as a Non-secure
peripheral.
S Trustzone/security attribute is Secure - The peripheral is accessible as a Secure
peripheral.
US Trustzone Map is user selectable - The Trustzone/security attribute of the peripheral can
be configured using SPU — System protection unit on page 651.
HF Trustzone Map is hardware fixed - The Trustzone/security attribute of the peripheral
cannot be changed.
NA Not Applicable - Peripheral has no DMA capability.
NSA NoSeparateAttribute - Peripheral with DMA and DMA transfer has the same security
attribute as assigned to the peripheral.
SA SeparateAttribute - Peripheral with DMA and DMA transfers can have a different
security attribute than the one assigned to the peripheral.
The Secure mapping column in the following table defines configuration capabilities for the Arm TrustZone
for Armv8-M secure attribute. The DMA security column describes the DMA capabilities of the peripheral.
6.3.2 Instantiation
6.4.1.1 Registers
Instances
Register overview
6.4.1.1.1 INFO
Device info
6.4.1.1.1.1 INFO.CONFIGID
Address offset: 0x200
Configuration identifier
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R HWID Identification number for the HW
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R DEVICEID 64 bit unique device identifier
6.4.1.1.1.3 INFO.PART
Address offset: 0x20C
Part code
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00005340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R PART Part code
N5340 0x5340 nRF5340
Unspecified 0xFFFFFFFF Unspecified
6.4.1.1.1.4 INFO.VARIANT
Address offset: 0x210
Part Variant, Hardware version and Production configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R VARIANT Part Variant, Hardware version and Production configuration, encoded as
ASCII
QKAA 0x514B4141 QKAA
CLAA 0x434C4141 CLAA
Unspecified 0xFFFFFFFF Unspecified
6.4.1.1.1.5 INFO.PACKAGE
Address offset: 0x214
Package option
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R PACKAGE Package option
QK 0x2000 QKxx - 94-pin aQFN
CL 0x2005 CLxx - WLCSP
Unspecified 0xFFFFFFFF Unspecified
6.4.1.1.1.6 INFO.RAM
Address offset: 0x218
RAM variant
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R RAM RAM variant
K16 0x10 16 kByte RAM
K32 0x20 32 kByte RAM
K64 0x40 64 kByte RAM
K128 0x80 128 kByte RAM
K256 0x100 256 kByte RAM
K512 0x200 512 kByte RAM
Unspecified 0xFFFFFFFF Unspecified
6.4.1.1.1.7 INFO.FLASH
Address offset: 0x21C
Flash variant
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R FLASH Flash variant
K128 0x80 128 kByte FLASH
K256 0x100 256 kByte FLASH
K512 0x200 512 kByte FLASH
K1024 0x400 1 MByte FLASH
K2048 0x800 2 MByte FLASH
Unspecified 0xFFFFFFFF Unspecified
6.4.1.1.1.8 INFO.CODEPAGESIZE
Address offset: 0x220
Code memory page size in bytes
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CODEPAGESIZE Code memory page size in bytes
K2048 0x800 2 kByte
6.4.1.1.1.9 INFO.CODESIZE
Address offset: 0x224
Code memory size
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CODESIZE Code memory size in number of pages
6.4.1.1.1.10 INFO.DEVICETYPE
Address offset: 0x228
Device type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R DEVICETYPE Device type
Die 0x0000000 Device is an physical DIE
FPGA 0xFFFFFFFF Device is an FPGA
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R ER Encryption Root, word n
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R IR Identity Root, word n
6.4.1.1.4 DEVICEADDRTYPE
Address offset: 0x2A0
Device address type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R DEVICEADDRTYPE Device address type
Public 0 Public address
Random 1 Random address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R DEVICEADDR 48 bit device address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R Address Address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A R Data Data
6.4.2.1 Registers
Instances
Register overview
6.4.2.1.1 APPROTECT
Address offset: 0x000
Access port protection
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PALL Blocks debugger read/write access to all CPU registers and memory mapped
addresses.
Using any value except Unprotected will lead to the protection being
enabled.
Bits with value '1' can be written to '0'. Bits with value '0' cannot be written
to '1'.
Unprotected 0x50FA50FA Unprotected
Protected 0x00000000 Protected
6.4.2.1.2 ERASEPROTECT
Address offset: 0x004
Erase protection
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PALL Blocks NVMC ERASEALL and CTRLAP ERASEALL functionality.
Using any value except Unprotected will lead to the protection being
enabled.
Unprotected 0xFFFFFFFF Unprotected
Protected 0x00000000 Protected
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW NRFFW Reserved for Nordic firmware design
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW CUSTOMER Reserved for customer
Peripheral
EN SUBSCRIBE n CHIDX
write
TASK n
k SHORTS
OR
task
Peripheral
core
event
INTEN m
EVENT m
IRQ signal to NVIC
EN PUBLISH m CHIDX
The distributed programmable peripheral interconnect (DPPI) feature enables peripherals to connect
events to tasks without CPU intervention. For more information on DPPI and the DPPI channels, see DPPI
— Distributed programmable peripheral interconnect on page 272.
7.1.1 Peripheral ID
Every peripheral is assigned a fixed block of 0x1000 bytes of address space, which is equal to 1024 x 32 bit
registers.
See Peripherals on page 149 for more information about which peripherals are available and where
they are located in the address map.
There is a direct relationship between peripheral ID and base address. For example, a peripheral with base
address 0x40000000 is assigned ID=0, a peripheral with base address 0x40001000 is assigned ID=1, and a
peripheral with base address 0x4001F000 is assigned ID=31.
Peripherals may share the same ID, which may impose one or more of the following limitations:
• Shared registers or common resources
• Limited availability due to mutually exclusive operation; only one peripheral in use at a time
• Enforced peripheral behavior when switching between peripherals (disable the first peripheral before
enabling the second)
Note: The peripheral must be enabled before tasks and events can be used.
Most of the register values are lost during System OFF or when a reset is triggered. Some registers will
retain their values in System OFF or for some specific reset sources. These registers are marked as retained
in the register description for a given peripheral. For more information on their behavior, see chapter
RESET — Reset control on page 65.
Note: The main register may not be visible and therefore not directly accessible in all cases.
7.1.5 Tasks
Tasks are used to trigger actions in a peripheral, such as to start a particular behavior. A peripheral can
implement multiple tasks with each task having a separate register in that peripheral's task register group.
A task is triggered when firmware writes 1 to the task register, or when the peripheral itself or another
peripheral toggles the corresponding task signal. See the figure Peripheral interface on page 150.
7.1.6 Events
Events are used to notify peripherals and the CPU about events that have happened, for example a state
change in a peripheral. A peripheral may generate multiple events, where each event has a separate
register in that peripheral's event register group.
An event is generated when the peripheral itself toggles the corresponding event signal, and the event
register is updated to reflect that the event has been generated, see figure Peripheral interface on page
150. An event register is cleared when a 0 is written to it by firmware. Events can be generated by the
peripheral even when the event register is set to 1.
7.1.8 Shortcuts
A shortcut is a direct connection between an event and a task within the same peripheral. If a shortcut is
enabled, the associated task is automatically triggered when its associated event is generated.
Using shortcuts is equivalent to making the connection outside the peripheral and through the DPPI.
However, the propagation delay when using shortcuts is usually shorter than the propagation delay
through the DPPI.
Shortcuts are predefined, which means that their connections cannot be configured by firmware. Each
shortcut can be individually enabled or disabled through the shortcut register, one bit per shortcut, giving
a maximum of 32 shortcuts for each peripheral.
7.1.9 Interrupts
All peripherals support interrupts which are generated by events.
A peripheral only occupies one interrupt, and the interrupt number follows the peripheral ID. For example,
the peripheral with ID=4 is connected to interrupt number 4 in the nested vectored interrupt controller
(NVIC).
Using registers INTEN, INTENSET, and INTENCLR, every event generated by a peripheral can be
configured to generate that peripheral's interrupt. Multiple events can be enabled to generate interrupts
simultaneously. To resolve the correct interrupt source, the event registers in the event group of
peripheral registers will indicate the source.
Some peripherals implement only INTENSET and INTENCLR registers, and the INTEN register is not
available on those peripherals. See the individual peripheral chapters for details. In all cases, reading back
the INTENSET or INTENCLR register returns the same information as in INTEN.
Each event implemented in the peripheral is associated with a specific bit position in the INTEN, INTENSET,
and INTENCLR registers.
The relationship between tasks, events, shortcuts, and interrupts is illustrated in figure Peripheral interface
on page 150.
7.2 EasyDMA
EasyDMA is a module implemented by some peripherals to gain direct access to Data RAM.
EasyDMA is an AHB bus master similar to CPU and is connected to the AHB multilayer interconnect for
direct access to Data RAM. EasyDMA cannot access flash memory.
A peripheral can implement multiple EasyDMA instances to provide dedicated channels. For example, for
reading and writing of data between the peripheral and RAM. This concept is illustrated in the following
figure.
READER
AHB
RAM EasyDMA
Peripheral
Core
WRITER
RAM
AHB
EasyDMA
An EasyDMA channel is implemented in the following way, but some variations may occur:
READERBUFFER_SIZE 5
WRITERBUFFER_SIZE 6
This example shows a peripheral called MYPERIPHERAL that implements two EasyDMA channels - one for
reading called READER, and one for writing called WRITER. When the peripheral is started, it is assumed
that the peripheral will perform the following tasks:
1. Read 5 bytes from the readerBuffer located in RAM at address 0x20000000.
2. Process the data.
3. Write no more than 6 bytes back to the writerBuffer located in RAM at address 0x20000005.
The memory layout of these buffers is illustrated in EasyDMA memory layout on page 154.
The WRITER.MAXCNT register should not be specified larger than the actual size of the buffer
(writerBuffer). Otherwise, the channel would overflow the writerBuffer.
Once an EasyDMA transfer is completed, the AMOUNT register can be read by the CPU to see how many
bytes were transferred. For example, CPU can read MYPERIPHERAL->WRITER.AMOUNT register to see how
many bytes WRITER wrote to RAM.
Note: The PTR register of a READER or WRITER must point to a valid memory region before use.
The reset value of a PTR register is not guaranteed to point to valid memory. See Memory on page
21 for more information about the different memory regions and EasyDMA connectivity.
#define BUFFER_SIZE 4
MYPERIPHERAL->READER.MAXCNT = BUFFER_SIZE;
MYPERIPHERAL->READER.PTR = &ReaderList;
MYPERIPHERAL->READER.LIST = MYPERIPHERAL_READER_LIST_ArrayList;
The data structure only includes a buffer with size equal to the size of READER.MAXCNT register. EasyDMA
uses the READER.MAXCNT register to determine when the buffer is full.
READER.PTR = &ReaderList
Note: The size of the region in bytes is restricted to a multiple of the flash page size, and the
maximum region size is limited to the flash size. See Memory on page 21 for more information.
l
...
Page N+1 Write
31 ACL[7].ADDR 0
protect
Page N
l 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
31 ACL[7].SIZE 0
l 0 1
31 ACL[7].PERM 0
...
l Page 3
Read/
31 ACL[0].ADDR 0 Page 2 Write
protect
Page 1
l0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 Page 0
31 ACL[0].SIZE 0
l 1 1
31 ACL[0].PERM 0
There are four defined ACL permission schemes, each with different combinations of read/write
permissions, as shown in the following table.
Note: If a permission violation to a protected region is detected by the ACL peripheral, the request
is blocked and a Bus Fault exception is triggered.
Access control to a configured region is enforced by the hardware two CPU clock cycles after the ADDR,
SIZE, and PERM registers for an ACL instance have been successfully written. The protection is only
enforced if a valid start address of the flash page boundary is written into the ADDR register, and the
values of the SIZE and PERM registers are not zero.
The ADDR, SIZE, and PERM registers can only be written once. All ACL configuration registers are cleared
on reset (by resetting the device from any reset source), which is also the only way of clearing the
configuration registers. To ensure that the desired permission schemes are always enforced by the ACL
peripheral, the device boot sequence must perform the necessary configuration.
Debugger read access to a read-protected region will be Read-As-Zero (RAZ), while debugger write access
to a write-protected region will be Write-Ignored (WI).
7.3.1 Registers
Instances
Configuration
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 ADDR Start address of flash region n. The start address must point to a flash page
boundary.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 SIZE Size of flash region n in bytes. Must be a multiple of the flash page size.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 WRITE Configure write and erase permissions for region n. Writing a '0' has no
effect.
Enable 0 Allow write and erase instructions to region n.
Disable 1 Block write and erase instructions to region n.
B RW1 READ Configure read permissions for region n. Writing a '0' has no effect.
Enable 0 Allow read instructions to region n.
Disable 1 Block read instructions to region n.
7.4.2 EasyDMA
AAR implements EasyDMA for reading and writing to RAM. EasyDMA will have finished accessing RAM
when the END, RESOLVED, and NOTRESOLVED events are generated.
If the IRKPTR on page 165, ADDRPTR on page 165, and the SCRATCHPTR on page 165 is not
pointing to the Data RAM region, an EasyDMA transfer may result in a HardFault or RAM corruption. See
Memory on page 21 for more information about the different memory regions.
random 10
hash prand
(24-bit) (24-bit)
To resolve an address, the register ADDRPTR on page 165 must point to the start of the packet. The
resolver is started by triggering the START task. A RESOLVED event is generated when AAR manages to
resolve the address using one of the Identity Resolving Keys (IRK) found in the IRK data structure. AAR will
use the IRK specified in the register IRK0 to IRK15 starting from IRK0. The register NIRK on page 165
specifies how many IRKs should be used. The AAR module will generate a NOTRESOLVED event if it is not
able to resolve the address using the specified list of IRKs.
AAR will go through the list of available IRKs in the IRK data structure and for each IRK try to resolve the
address according to the Resolvable Private Address Resolution Procedure described in the Bluetooth Core
specification. The time it takes to resolve an address varies due to the location in the list of the resolvable
address. The resolution time will also be affected by RAM accesses performed by other peripherals and
the CPU. See the Electrical specifications for more information about resolution time.
AAR only compares the received address to those programmed in the module without checking the
address type.
AAR will stop as soon as it has managed to resolve the address, or after trying to resolve the address using
NIRK number of IRKs from the IRK data structure. AAR will generate an END event after it has stopped.
SCRATCHPTR
IRK data
S0 L S1 ADDR
structure
IRKPTR
7.4.4 Example
The following example shows how to chain RADIO packet reception with address resolution using AAR.
AAR may be started as soon as the 6 bytes required by AAR have been received by RADIO and stored in
RAM. The ADDRPTR pointer must point to the start of packet.
SCRATCHPTR
IRK data
S0 L S1 ADDR
structure
IRKPTR
From remote
transmitter
RADIO
RXEN
Figure 40: Address resolution with packet loaded into RAM by RADIO
7.4.6 Registers
Instances
Register overview
7.4.6.1 TASKS_START
Address offset: 0x000
Start resolving addresses based on IRKs specified in the IRK data structure
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start resolving addresses based on IRKs specified in the IRK data structure
Trigger 1 Trigger task
7.4.6.2 TASKS_STOP
Address offset: 0x008
Stop resolving addresses
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop resolving addresses
Trigger 1 Trigger task
7.4.6.3 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.4.6.4 SUBSCRIBE_STOP
Address offset: 0x088
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.4.6.5 EVENTS_END
Address offset: 0x100
Address resolution procedure complete
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_END Address resolution procedure complete
NotGenerated 0 Event not generated
Generated 1 Event generated
7.4.6.6 EVENTS_RESOLVED
Address offset: 0x104
Address resolved
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RESOLVED Address resolved
NotGenerated 0 Event not generated
Generated 1 Event generated
7.4.6.7 EVENTS_NOTRESOLVED
Address offset: 0x108
Address not resolved
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_NOTRESOLVED Address not resolved
NotGenerated 0 Event not generated
Generated 1 Event generated
7.4.6.8 PUBLISH_END
Address offset: 0x180
Publish configuration for event END
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event END will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.4.6.9 PUBLISH_RESOLVED
Address offset: 0x184
Publish configuration for event RESOLVED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RESOLVED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.4.6.10 PUBLISH_NOTRESOLVED
Address offset: 0x188
Publish configuration for event NOTRESOLVED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event NOTRESOLVED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.4.6.11 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW END Write '1' to enable interrupt for event END
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW RESOLVED Write '1' to enable interrupt for event RESOLVED
Set 1 Enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW NOTRESOLVED Write '1' to enable interrupt for event NOTRESOLVED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.4.6.12 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW END Write '1' to disable interrupt for event END
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW RESOLVED Write '1' to disable interrupt for event RESOLVED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW NOTRESOLVED Write '1' to disable interrupt for event NOTRESOLVED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.4.6.13 STATUS
Address offset: 0x400
Resolution status
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS [0..15] The IRK that was used last time an address was resolved
7.4.6.14 ENABLE
Address offset: 0x500
Enable AAR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable AAR
Disabled 0 Disable
Enabled 3 Enable
7.4.6.15 NIRK
Address offset: 0x504
Number of IRKs
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW NIRK [1..16] Number of Identity Root Keys available in the IRK data structure
7.4.6.16 IRKPTR
Address offset: 0x508
Pointer to IRK data structure
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW IRKPTR Pointer to the IRK data structure
7.4.6.17 ADDRPTR
Address offset: 0x510
Pointer to the resolvable address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ADDRPTR Pointer to the resolvable address (6-bytes)
7.4.6.18 SCRATCHPTR
Address offset: 0x514
Pointer to data area used for temporary storage
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SCRATCHPTR Pointer to a scratch data area used for temporary storage during resolution.
A space of minimum 3 bytes must be reserved.
7
Bluetooth AES CCM 128-bit block encryption, see Bluetooth Core specification version 4.0.
keystream
encryption / decryption
generation
SHORTCUT
7.5.3 Encryption
CCM is able to read an unencrypted packet, encrypt it, and append a four byte MIC field to the packet.
During packet encryption, CCM performs the following:
• Reads the unencrypted packet located in RAM address specified in the INPTR pointer
• Encrypts the packet
• Appends a four byte long Message Integrity Check (MIC) field to the packet
Encryption is started by triggering the CRYPT task with register MODE on page 178 set to
Encryption. An ENDCRYPT event is generated when packet encryption is completed.
CCM will also modify the length field of the packet to adjust for the appended MIC field. It adds four bytes
to the length and stores the resulting packet in RAM at the address specified in pointer OUTPTR on page
179, as illustrated in the figure below.
SCRATCHPTR
INPTR
Unencrypted packet
H: Header (S0)
L: Length
H L RFU PL Scratch area
RFU: reserved for future use (S1)
OUTPTR PL: unencrypted payload
Encrypted packet MODE = ENCRYPTION AES CCM EPL: encrypted payload
CCM data
H L+4 RFU EPL MIC
structure
CNFPTR
Empty packets (length field is set to 0) will not be encrypted, but instead moved unmodified through CCM.
CCM supports different widths of the length field in the data structure for encrypted packets. This is
configured in register MODE on page 178.
7.5.4 Decryption
CCM is able to read an encrypted packet, decrypt it, authenticate the MIC field, and generate an
appropriate MIC status.
During packet decryption, CCM performs the following:
• Reads the encrypted packet located in RAM at the address specified in the INPTR pointer
• Decrypts the packet
• Authenticates the packet's MIC field
• Generates the appropriate MIC status
The packet header (S0) and payload are included in the MIC authentication. Bits in the packet header can
be masked away by configuring register HEADERMASK on page 181.
Decryption is started by triggering the CRYPT task, by setting the register MODE on page 178 to
Decryption. An ENDCRYPT event will be generated when packet decryption is completed.
CCM modifies the length field of the packet to adjust for the MIC field. It subtracts four bytes from the
length and stores the decrypted packet in RAM at the address specified in the OUTPTR on page 179
pointer.
CCM is only able to decrypt packet payloads that are at least five bytes long (one byte or more encrypted
payload (EPL) and four bytes of MIC). CCM will therefore generate a MIC error for packets where the
length field is set to 1, 2, 3, or 4.
Empty packets (length field is set to 0) will not be decrypted but instead moved unmodified through CCM.
These packets will always pass the MIC check.
CCM supports different widths of the LENGTH field in the data structure for decrypted packets. This is
configured in register MODE on page 178.
SCRATCHPTR
OUTPTR
Unencrypted packet
H: Header (S0)
L: Length
H L RFU PL Scratch area
RFU: reserved for future use (S1)
INPTR PL: unencrypted payload
Encrypted packet MODE = DECRYPTION AES CCM EPL: encrypted payload
CCM data
H L+4 RFU EPL MIC
structure
CNFPTR
The CCM is only able to decrypt packet payloads that are at least 5 bytes long, 1 byte or more encrypted
payload (EPL) and 4 bytes of MIC. The CCM will therefore generate a MIC error for packets where the
length field is set to 1, 2, 3 or 4. Empty packets (length field is set to 0) will not be decrypted, but instead
moved unmodified through CCM. These packets will always pass the MIC check.
CCM supports different widths of the length field in the data structure for decrypted packets. This is
configured in register MODE on page 178.
Unencrypted packet
H: Header (S0)
L: Length
OUTPTR H L RFU PL Scratch area
RFU: reserved for future use (S1)
& PL: unencrypted payload
PACKETPTR MODE = ENCRYPTION AES CCM EPL: encrypted payload
Encrypted packet
CCM data
H L+4 RFU EPL MIC
structure
CNFPTR
To remote
receiver
RADIO
TXEN
In order to match RADIO’s timing, the KSGEN task must be triggered early enough to allow the keystream
generation to complete before packet encryption begins.
For short packets (MODE.LENGTH = Default), the KSGEN task must be triggered before or at the same
time as the START task in RADIO is triggered. In addition, the shortcut between the ENDKSGEN event and
the CRYPT task must be enabled. This use-case is illustrated in On-the-fly encryption of short packets
(MODE.LENGTH = Default), using a PPI connection on page 170. It uses a PPI connection between the
READY event in RADIO and the KSGEN task in CCM.
For long packets (MODE.LENGTH = Extended), the keystream generation needs to start earlier, such as
when the TXEN task in RADIO is triggered.
Refer to Timing specification on page 181 for information about the time needed for generating a
keystream.
SHORTCUT
ENDKSGEN CRYPT
keystream
AES CCM encryption
generation
KSGEN ENDCRYPT
PPI
READY
TXEN END
READY START
Figure 45: On-the-fly encryption of short packets (MODE.LENGTH = Default), using a PPI connection
For long packets (MODE.LENGTH = Extended), the keystream generation will need to be started even
earlier, for example at the time when the TXEN task in the radio is triggered.
Note: See Timing specification on page 181 for information about the time needed for
generating a keystream.
Unencrypted packet
H: Header (S0)
L: Length
INPTR H L RFU PL Scratch area
RFU: reserved for future use (S1)
& PL: unencrypted payload
PACKETPTR MODE = DECRYPTION AES CCM EPL: encrypted payload
Encrypted packet
CCM data
H L+4 RFU EPL MIC
structure
CNFPTR
From remote
transmitter
RADIO
RXEN
In order to match RADIO's timing, the KSGEN task must be triggered early enough to allow the keystream
generation to complete before the decryption of the packet starts.
For short packets (MODE.LENGTH = Default), the KSGEN task must be triggered no later than when the
START task in RADIO is triggered. In addition, the CRYPT task must not be triggered earlier than when
the ADDRESS event is generated by RADIO. If the CRYPT task is triggered exactly at the same time as the
ADDRESS event is generated by RADIO, CCM will guarantee that the decryption is completed no later than
when the END event in RADIO is generated. This use case, using a PPI connection between the ADDRESS
event in RADIO and the CRYPT task in CCM, is illustrated in figure below.
keystream
AES CCM decryption
generation
PPI PPI
READY ADDRESS
RXEN END
READY START
SHORTCUT
RU: Ramp-up of radio H: Header (S0) EPL: encrypted payload
P: Preamble L: Length
A: Address RFU: reserved for future use (S1) : radio receiving noise
Figure 47: On-the-fly decryption of short packets (MODE.LENGTH = Default), using a PPI connection
The KSGEN task is triggered from the READY event in RADIO, through a PPI connection.
For long packets (MODE.LENGTH = Extended) the keystream generation will need to start even earlier,
such as when the RXEN task in RADIO is triggered.
Refer to Timing specification on page 181 for information about the time needed for generating a
keystream.
The NONCE vector (as specified by the Bluetooth Core Specification) will be generated by hardware based
on the information specified in the CCM data structure.
LENGTH will be 0 for empty packets since the MIC is not added to empty packets
RFU 2 Reserved for future use
PAYLOAD 3 Encrypted payload
MIC 3 + payload length ENCRYPT: 4 bytes encrypted MIC
7.5.10 Registers
Instances
Register overview
7.5.10.1 TASKS_KSGEN
Address offset: 0x000
Start generation of keystream. This operation will stop by itself when completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_KSGEN Start generation of keystream. This operation will stop by itself when
completed.
Trigger 1 Trigger task
7.5.10.2 TASKS_CRYPT
Address offset: 0x004
Start encryption/decryption. This operation will stop by itself when completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CRYPT Start encryption/decryption. This operation will stop by itself when
completed.
Trigger 1 Trigger task
7.5.10.3 TASKS_STOP
Address offset: 0x008
Stop encryption/decryption
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop encryption/decryption
Trigger 1 Trigger task
7.5.10.4 TASKS_RATEOVERRIDE
Address offset: 0x00C
Override DATARATE setting in MODE register with the contents of the RATEOVERRIDE register for any
ongoing encryption/decryption
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RATEOVERRIDE Override DATARATE setting in MODE register with the contents of the
RATEOVERRIDE register for any ongoing encryption/decryption
Trigger 1 Trigger task
7.5.10.5 SUBSCRIBE_KSGEN
Address offset: 0x080
Subscribe configuration for task KSGEN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task KSGEN will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.5.10.6 SUBSCRIBE_CRYPT
Address offset: 0x084
Subscribe configuration for task CRYPT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CRYPT will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.5.10.7 SUBSCRIBE_STOP
Address offset: 0x088
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.5.10.8 SUBSCRIBE_RATEOVERRIDE
Address offset: 0x08C
Subscribe configuration for task RATEOVERRIDE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RATEOVERRIDE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.5.10.9 EVENTS_ENDKSGEN
Address offset: 0x100
Keystream generation complete
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDKSGEN Keystream generation complete
NotGenerated 0 Event not generated
Generated 1 Event generated
7.5.10.10 EVENTS_ENDCRYPT
Address offset: 0x104
Encrypt/decrypt complete
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDCRYPT Encrypt/decrypt complete
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ERROR CCM error event
7.5.10.12 PUBLISH_ENDKSGEN
Address offset: 0x180
Publish configuration for event ENDKSGEN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDKSGEN will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.5.10.13 PUBLISH_ENDCRYPT
Address offset: 0x184
Publish configuration for event ENDCRYPT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDCRYPT will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ERROR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.5.10.15 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENDKSGEN_CRYPT Shortcut between event ENDKSGEN and task CRYPT
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.5.10.16 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENDKSGEN Write '1' to enable interrupt for event ENDKSGEN
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ENDCRYPT Write '1' to enable interrupt for event ENDCRYPT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW ERROR Write '1' to enable interrupt for event ERROR
7.5.10.17 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENDKSGEN Write '1' to disable interrupt for event ENDKSGEN
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ENDCRYPT Write '1' to disable interrupt for event ENDCRYPT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW ERROR Write '1' to disable interrupt for event ERROR
7.5.10.18 MICSTATUS
Address offset: 0x400
MIC check result
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R MICSTATUS The result of the MIC check performed during the previous decryption
operation
CheckFailed 0 MIC check failed
CheckPassed 1 MIC check passed
7.5.10.19 ENABLE
Address offset: 0x500
Enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable CCM
Disabled 0 Disable
Enabled 2 Enable
7.5.10.20 MODE
Address offset: 0x504
Operation mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A- RW MODE The mode of operation to be used. Settings in this register apply whenever
either the KSGEN task or the CRYPT task is triggered.
Encryption 0 AES CCM packet encryption mode
Decryption 1 AES CCM packet decryption mode
B RW DATARATE Radio data rate that the CCM shall run synchronous with
1Mbit 0 1 Mbps
2Mbit 1 2 Mbps
125Kbps 2 125 kbps
500Kbps 3 500 kbps
C RW LENGTH Packet length configuration
Default 0 Default length. Effective length of LENGTH field in encrypted/decrypted
packet is 5 bits. A keystream for packet payloads up to 27 bytes will be
generated.
Extended 1 Extended length. Effective length of LENGTH field in encrypted/decrypted
packet is 8 bits. A keystream for packet payloads up to MAXPACKETSIZE
bytes will be generated.
7.5.10.21 CNFPTR
Address offset: 0x508
Pointer to data structure holding the AES key and the NONCE vector
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CNFPTR Pointer to the data structure holding the AES key and the CCM NONCE
vector (see table CCM data structure overview)
7.5.10.22 INPTR
Address offset: 0x50C
Input pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW INPTR Input pointer
7.5.10.23 OUTPTR
Address offset: 0x510
Output pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OUTPTR Output pointer
7.5.10.24 SCRATCHPTR
Address offset: 0x514
Pointer to data area used for temporary storage
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SCRATCHPTR Pointer to a scratch data area used for temporary storage during keystream
generation, MIC generation and encryption/decryption.
The scratch area is used for temporary storage of data during keystream
generation and encryption.
7.5.10.25 MAXPACKETSIZE
Address offset: 0x518
Length of keystream generated when MODE.LENGTH = Extended
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x000000FB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1
ID R/W Field Value ID Value Description
A RW MAXPACKETSIZE [0x001B..0x00FB] Length of keystream generated when MODE.LENGTH = Extended. This value
must be greater than or equal to the subsequent packet payload to be
encrypted/decrypted.
7.5.10.26 RATEOVERRIDE
Address offset: 0x51C
Data rate override setting.
Override value to be used instead of the setting of MODE.DATARATE. This override value applies when the
RATEOVERRIDE task is triggered.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RATEOVERRIDE Data rate override setting
1Mbit 0 1 Mbps
2Mbit 1 2 Mbps
125Kbps 2 125 kbps
500Kbps 3 500 kbps
7.5.10.27 HEADERMASK
Address offset: 0x520
Header (S0) mask.
Bitmask for packet header (S0) before MIC generation/authentication.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x000000E3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1
ID R/W Field Value ID Value Description
A RW HEADERMASK Header (S0) mask
• Normal
• High-speed
• Single-pin capacitive sensor support
• Event generation on output changes
• UP event on VIN- > VIN+
• DOWN event on VIN- < VIN+
• CROSS event on VIN+ and VIN- crossing
• READY event on core and internal reference (if used) ready
AIN0
AIN1
AIN2
AIN3
AIN4
AIN5
AIN6
AIN7
MUX PSEL
SAMPLE
START
STOP
VIN+ VIN-
+ -
Comparator
MODE
core HYST
RESULT Output
0 = BELOW (VIN+ < VIN-)
1 = ABOVE (VIN+ > VIN-)
READY
DOWN
CROSS
UP
Once enabled (using the ENABLE register), the comparator is started by triggering the START task and
stopped by triggering the STOP task. The comparator will generate a READY event to indicate when it is
ready for use and the output is correct. The delay between START and READY is tINT_REF,START if an internal
reference is selected, or t COMP,START if an external reference is used. When the COMP module is started,
events will be generated every time VIN+ crosses VIN-.
Operation modes
The comparator can be configured to operate in two main operation modes: differential mode and single-
ended mode. See the MODE register for more information. In both operation modes, the comparator can
operate in different speed and power consumption modes (low-power, normal and high-speed). High-
speed mode will consume more power compared to low-power mode, and low-power mode will result in
slower response time compared to high-speed mode.
Use the PSEL register to select any of the AIN0-AIN7 pins as VIN+ input, regardless of the operation mode
selected for the comparator. The source of VIN- depends on which of the following operation mode are
used:
• Differential mode - Derived directly from AIN0 to AIN7
• Single-ended mode - Derived from VREF. VREF can be derived from VDD, AIN0-AIN7 or internal 1.2 V,
1.8 V and 2.4 V references.
The selected analog pins will be acquired by the comparator once it is enabled.
An optional hysteresis on VIN+ and VIN- can be enabled when the module is used in differential mode
through the HYST register. In single-ended mode, VUP and VDOWN thresholds can be set to implement
a hysteresis using the reference ladder (see Comparator in single-ended mode on page 185). This
hysteresis is in the order of magnitude of VDIFFHYST, and shall prevent noise on the signal to create
unwanted events. See Hysteresis example where VIN+ starts below VUP on page 186 for an illustration
of the effect of an active hysteresis on a noisy input signal.
An upward crossing will generate an UP event and a downward crossing will generate a DOWN event. The
CROSS event will be generated every time there is a crossing, independent of direction.
The immediate value of the comparator can be sampled to RESULT register by triggering the SAMPLE task.
ISOURCE
An optional configurable current can be applied on the AINx pad currently selected for VIN+, as illustrated
in the following figure. The AINx pad is configured in register PSEL on page 193 and the current source
in register ISOURCE on page 195.
AINx
MUX PSEL
ISOURCE
VIN+ VIN-
+ -
Comparator
core
Output
Enabling ISOURCE creates a feedback path around the comparator, forming a relaxation oscillator. The
circuit will sink current from VIN+ when the comparator output is high, and source current into VIN+
when the comparator output is low. The frequency of the oscillator is dependent on the capacitance at
the analog input pin, the reference voltages, and the value of the current source. When using ISOURCE, a
capacitive sensor can to be attached between the analog input pin and ground. With a selected current
of 10 μA, VUP-VDOWN equal to 1 V, and an external capacity of typically 10 pF, the resulting oscillation
frequency is around 500 kHz.
The frequency of the oscillator can be calculated using the following equation:
Note: The current source can be enabled in any of the comparator modes.
AIN0
AIN1
AIN2
AIN3
AIN4
AIN5
AIN6
AIN7
AIN7
STOP
VIN+
VIN-
+ -
Comparator
MODE
core
RESULT
Output
0 = BELOW (VIN+ < VIN-)
1 = ABOVE (VIN+ > VIN-)
READY
DOWN
CROSS
UP
Note: Depending on the device, not all the analog inputs may be available for each MUX. See
definitions for PSEL and EXTREFSEL for more information about which analog pins are available on a
particular device.
When the HYST register is turned on during this mode, the output of the comparator and associated
events do the following:
• Change from ABOVE to BELOW when VIN+ drops below VIN- - (VDIFFHYST/2)
• Change from BELOW to ABOVE when VIN+ raises above VIN- + (VDIFFHYST/2)
This behavior is illustrated in the following figure.
VIN+
VIN- + (VDIFFHYST / 2)
VIN- - (VDIFFHYST / 2)
AIN0
AIN1
AIN2
AIN3
AIN4
AIN5
AIN6
AIN7
STOP
VDD
VUP
VIN+ 0
VIN- AREF
+ - MUX
VDOWN
Comparator 1 Reference VREF 1V2
MODE MUX
core HYST ladder
1V8
RESULT 2V4
Output
0 = BELOW (VIN+ < VIN-)
1 = ABOVE (VIN+ > VIN-)
READY
DOWN
CROSS
UP
Note: Depending on the device, not all the analog inputs may be available for each MUX. See
definitions for PSEL and EXTREFSEL for more information about which analog pins are available on a
particular device.
When the comparator core detects that VIN+ > VIN-, i.e. ABOVE as per the RESULT register, VIN- will switch
to VDOWN. When VIN+ falls below VIN- again, VIN- will be switched back to VUP. By specifying VUP larger
than VDOWN, a hysteresis can be generated as illustrated in the following figures.
Writing to HYST has no effect in single-ended mode, and the content of this register is ignored.
VIN+
VUP
VDOWN
t
Output
BELOW ABOVE
READY
DOWN
UP
1 2 3
CPU
SAMPLE
SAMPLE
START
VIN+
VUP
VDOWN
t
Output
ABOVE (VIN+ > VIN-) BELOW ( VIN+ < VIN-) ABOVE (VIN+ > VIN-) BELOW
VIN-
DOWN
DOWN
UP
1 2 3
CPU
SAMPLE
SAMPLE
START
7.6.4 Registers
Instances
COMP : S 0x5001A000
APPLICATION US S NA No Comparator
COMP : NS 0x4001A000
Register overview
7.6.4.1 TASKS_START
Address offset: 0x000
Start comparator
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start comparator
Trigger 1 Trigger task
7.6.4.2 TASKS_STOP
Address offset: 0x004
Stop comparator
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop comparator
Trigger 1 Trigger task
7.6.4.3 TASKS_SAMPLE
Address offset: 0x008
Sample comparator value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SAMPLE Sample comparator value
Trigger 1 Trigger task
7.6.4.4 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.6.4.5 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.6.4.6 SUBSCRIBE_SAMPLE
Address offset: 0x088
Subscribe configuration for task SAMPLE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SAMPLE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.6.4.7 EVENTS_READY
Address offset: 0x100
COMP is ready and output is valid
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_READY COMP is ready and output is valid
NotGenerated 0 Event not generated
Generated 1 Event generated
7.6.4.8 EVENTS_DOWN
Address offset: 0x104
Downward crossing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DOWN Downward crossing
NotGenerated 0 Event not generated
Generated 1 Event generated
7.6.4.9 EVENTS_UP
Address offset: 0x108
Upward crossing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_UP Upward crossing
NotGenerated 0 Event not generated
Generated 1 Event generated
7.6.4.10 EVENTS_CROSS
Address offset: 0x10C
Downward or upward crossing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CROSS Downward or upward crossing
NotGenerated 0 Event not generated
Generated 1 Event generated
7.6.4.11 PUBLISH_READY
Address offset: 0x180
Publish configuration for event READY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event READY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.6.4.12 PUBLISH_DOWN
Address offset: 0x184
Publish configuration for event DOWN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DOWN will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.6.4.13 PUBLISH_UP
Address offset: 0x188
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event UP will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.6.4.14 PUBLISH_CROSS
Address offset: 0x18C
Publish configuration for event CROSS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CROSS will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.6.4.15 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY_SAMPLE Shortcut between event READY and task SAMPLE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW READY_STOP Shortcut between event READY and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
C RW DOWN_STOP Shortcut between event DOWN and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW UP_STOP Shortcut between event UP and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
E RW CROSS_STOP Shortcut between event CROSS and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.6.4.16 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Enable or disable interrupt for event READY
Disabled 0 Disable
Enabled 1 Enable
B RW DOWN Enable or disable interrupt for event DOWN
Disabled 0 Disable
Enabled 1 Enable
C RW UP Enable or disable interrupt for event UP
Disabled 0 Disable
Enabled 1 Enable
D RW CROSS Enable or disable interrupt for event CROSS
Disabled 0 Disable
Enabled 1 Enable
7.6.4.17 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to enable interrupt for event READY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW DOWN Write '1' to enable interrupt for event DOWN
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW UP Write '1' to enable interrupt for event UP
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW CROSS Write '1' to enable interrupt for event CROSS
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.6.4.18 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to disable interrupt for event READY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW DOWN Write '1' to disable interrupt for event DOWN
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW UP Write '1' to disable interrupt for event UP
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW CROSS Write '1' to disable interrupt for event CROSS
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.6.4.19 RESULT
Address offset: 0x400
Compare result
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RESULT Result of last compare. Decision point SAMPLE task.
Below 0 Input voltage is below the threshold (VIN+ < VIN-)
Above 1 Input voltage is above the threshold (VIN+ > VIN-)
7.6.4.20 ENABLE
Address offset: 0x500
COMP enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable COMP
Disabled 0 Disable
Enabled 2 Enable
7.6.4.21 PSEL
Address offset: 0x504
Pin select
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PSEL Analog pin select
AnalogInput0 0 AIN0 selected as analog input
AnalogInput1 1 AIN1 selected as analog input
AnalogInput2 2 AIN2 selected as analog input
AnalogInput3 3 AIN3 selected as analog input
AnalogInput4 4 AIN4 selected as analog input
AnalogInput5 5 AIN5 selected as analog input
AnalogInput6 6 AIN6 selected as analog input
AnalogInput7 7 AIN7 selected as analog input
7.6.4.22 REFSEL
Address offset: 0x508
Reference source select for single-ended mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
ID R/W Field Value ID Value Description
A RW REFSEL Reference select
Int1V2 0 VREF = internal 1.2 V reference (VDD >= 1.7 V)
Int1V8 1 VREF = internal 1.8 V reference (VDD >= VREF + 0.2 V)
Int2V4 2 VREF = internal 2.4 V reference (VDD >= VREF + 0.2 V)
VDD 4 VREF = VDD
ARef 5 VREF = AREF
7.6.4.23 EXTREFSEL
Address offset: 0x50C
External reference select
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EXTREFSEL External analog reference select
AnalogReference0 0 Use AIN0 as external analog reference
AnalogReference1 1 Use AIN1 as external analog reference
AnalogReference2 2 Use AIN2 as external analog reference
AnalogReference3 3 Use AIN3 as external analog reference
AnalogReference4 4 Use AIN4 as external analog reference
AnalogReference5 5 Use AIN5 as external analog reference
AnalogReference6 6 Use AIN6 as external analog reference
AnalogReference7 7 Use AIN7 as external analog reference
7.6.4.24 TH
Address offset: 0x530
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW THDOWN [63:0] VDOWN = (THDOWN+1)/64*VREF
B RW THUP [63:0] VUP = (THUP+1)/64*VREF
7.6.4.25 MODE
Address offset: 0x534
Mode configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SP Speed and power modes
Low 0 Low-power mode
Normal 1 Normal mode
High 2 High-speed mode
B RW MAIN Main operation modes
SE 0 Single-ended mode
Diff 1 Differential mode
7.6.4.26 HYST
Address offset: 0x538
Comparator hysteresis enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HYST Comparator hysteresis
NoHyst 0 Comparator hysteresis disabled
Hyst50mV 1 Comparator hysteresis enabled
7.6.4.27 ISOURCE
Address offset: 0x53C
Current source select on analog input
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ISOURCE Comparator hysteresis
Off 0 Current source disabled
Ien2mA5 1 Current source enabled (+/- 2.5 uA)
Ien5mA 2 Current source enabled (+/- 5 uA)
Ien10mA 3 Current source enabled (+/- 10 uA)
8
Propagation delay is with 10 mV overdrive.
AHB multilayer
Public key
SRAM accelerator DMA
engine Engine control logic
Always-on Control
interface AES GHASH SHA ChaCha
domain
MUX
APB
The following cryptographic features are among the functionality that can be supported:
• True random number generator (TRNG) compliant with FIPS 140-2, BSI AIS-31, and NIST 800-90B.
• Pseudorandom number generator (PRNG) using underlying AES engine compliant with NIST 800-90A
• RSA public key cryptography
• Signature verification up to key sizes of 4096 bits
• Key generation up to key sizes of 3072 bits
• PKCS#1 v2.1/v1.5
• Elliptic curve cryptography (ECC)
• NIST FIPS 186-4 recommended curves using pseudorandom parameters, up to 521 bits:
• Prime field: P-192, P-224, P-256, P-384, P-521
• SEC 2 recommended curves using pseudorandom parameters, up to 521 bits:
• Prime field: secp160r1, secp192r1, secp224r1, secp256r1, secp384r1, secp521r1
• Koblitz curves using fixed parameters, up to 256 bits:
• Prime field: secp160k1, secp192k1, secp224k1, secp256k1
• Brainpool curves:
• Prime field: BrainpoolP256r1
• Edwards/Montgomery curves:
• Ed25519, Curve25519
• ECDH/ECDSA support
• Secure remote password protocol (SRP), up to 3072 bits operations
• Hashing functions
• SHA-1, SHA-2 up to 256 bits
• Keyed-hash message authentication code (HMAC)
• AES symmetric encryption
• General purpose AES engine (encrypt/decrypt, sign/verify)
• 128, 192, and 256 bits key size
• Supported encryption modes: ECB, CBC, CMAC/CBC-MAC, CTR, CCM/CCM*, GCM
• ChaCha20/Poly1305 symmetric encryption
• 128 and 256 bits key size
• Authenticated encryption with associated data (AEAD) mode
7.7.1 Disclaimer
This section contains an important disclaimer about the CRYPTOCELL subsystem documentation.
The CRYPTOCELL subsystem is recommended for use with the libraries in the Nordic Semiconductor
ASA SDK. These libraries are tested and verified to work with the CRYPTOCELL subsystem hardware. The
CRYPTOCELL subsystem documentation and register descriptions are for reference only and can be used
for modifying the Nordic supplied SDK libraries or implementing new features.
Nordic Semiconductor ASA reserves the right to change the CRYPTOCELL documentation and register
descriptions without further notice. Changes will not trigger erratas and will not be seen as changing
form/fit/function of the device.
Please note that Nordic cannot support questions directly related to the register interface or modification
of the source code implementation. Nordic provide support for the top-level API in the software library
distributed as part of the device SDK.
7.7.2 Usage
The CRYPTOCELL subsystem is a hardware and software solution where software is delivered as libraries
in Nordic device SDKs. Recommended usage of the CRYPTOCELL subsystem is to use the SDK library
implementation available for the device. The CRYPTOCELL subsystem is documented for reference purpose
only, please see section Disclaimer on page 198 for more information.
To enable CRYPTOCELL, use register ENABLE on page 203. The device will not enter the System ON IDLE
mode until CRYPTOCELL has been disabled, see POWER — Power control on page 46 for more information.
The Nordic SDK software library automatically controls enabling and disabling of the CRYPTOCELL
subsystem as a part of its function calls.
For more details, see register AO_APB_FILTERING on page 251. The configuration will be stored in the
CRYPTOCELL subsystem internal storage until next power-on reset.
Data stored in a memory type not accessible by CRYPTOCELL DMA engines must be copied to an accessible
memory type before it can be processed by the CRYPTOCELL subsystem. Maximum DMA transaction size is
limited to 216-1 bytes.
The CRYPTOCELL DMA engine can also run in Bypass mode, meaning data is read and written without
being piped through a cryptographic engine. Thus CRYPTOCELL can act as a general purpose DMA engine
for moving data.
Operating the DMA engines in Bypass mode involve the following steps:
1. Enable DMA engines clock using register DMA_CLK on page 268.
2. Configure cryptographic control for Bypass mode using register CRYPTO_CTL on page 252.
3. Set the the output destination address and size of the receiving buffer.
4. Start the DMA transaction by configuring the input source address and the number of bytes to transfer.
5. Status of the DMA transaction can be monitored by either polling register DOUT_DMA_MEM_BUSY
on page 258, or by unmasking the interrupt for field DOUT_TO_MEM_MASK in register IMR on page
262.
See DIN DMA engine on page 253 and DOUT DMA engine on page 257 for more information.
Clock gating
CRYPTOCELL implements separate clock domains for each cryptographic engine. Internal clock gating
control is handled through the MISC interface on page 266, as well as register RNG_CLK on page 247.
The registers of a cryptographic engine are only accessible when its clock is enabled.
Power gating
CRYPTOCELL must be disabled to ensure lowest possible power consumption when the subsystem is not
needed.
The CRYPTOCELL subsystem power is controlled through register ENABLE on page 203. Even though
external clock input is gated away automatically by hardware, the CRYPTOCELL subsystem power will still
be enabled. To initiate a full power-down sequence software must perform the following steps:
1. Make sure there are no pending tasks
2. Verify that CRYPTOCELL subsystem is idle using register HOST_CC_IS_IDLE on page 264.
3. Clear all pending interrupts in register RNG_ICR on page 243 and register ICR on page 263.
4. Request power-down by writing to register HOST_POWERDOWN on page 265.
5. Disable CRYPTOCELL subsystem using register ENABLE on page 203.
If the power-down request in step 4 has been issued, the CRYPTOCELL subsystem must be disabled, as
outlined in step 5.
7.7.10 Standards
Arm TrustZone CryptoCell 312 (CRYPTOCELL) is compliant with the protocol specifications and standards
shown in the following table.
7.7.11 Registers
Instances
Register overview
7.7.11.1 ENABLE
Address offset: 0x500
Enable CRYPTOCELL subsystem.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable the CRYPTOCELL subsystem.
Disabled 0 CRYPTOCELL subsystem disabled.
Enabled 1 CRYPTOCELL subsystem enabled.
7.7.12 Accelerators
This chapter contains register interfaces for each of the hardware accelerator engines.
Note:
To ensure proper operation when writing 128 bits, 192 bits, and 256 bits AES keys, the write-only
key registers of the AES engine must be written in ascending order, starting with:
• AES_KEY_0[0]
• AES_KEY_0[1]
• AES_KEY_0[2]
• AES_KEY_0[3]
For 192 bits and 256 bits AES keys, this must be followed by:
• AES_KEY_0[4]
• AES_KEY_0[5]
For 256 bits AES keys, this must be followed by:
• AES_KEY_0[6]
• AES_KEY_0[7]
Additionally, for tunneling operations using 128 bits, 192 bits, and 256 bits AES keys, the write-only
key registers for the second stage must also be written in ascending order, starting with:
• AES_KEY_1[0]
• AES_KEY_1[1]
• AES_KEY_1[2]
• AES_KEY_1[3]
For 192 bits and 256 bits second stage AES tunneling keys, this must be followed by:
• AES_KEY_1[4]
• AES_KEY_1[5]
For 256 bits second stage AES tunneling keys, this must be followed by:
• AES_KEY_1[6]
• AES_KEY_1[7]
uint8_t buf_dst[16] = { 0 };
uint8_t buf_src[16] = { 0x81, 0x02, 0xF2, 0x40, 0xD5, 0xB9, 0x44, 0x59,
0xA2, 0xEB, 0x6F, 0xF2, 0x49, 0xF5, 0xEB, 0x94 };
/* Configure AES engine control for decryption using ECB mode (default) */
NRF_CC_AES->AES_CONTROL = CC_AES_AES_CONTROL_DEC_KEY0_Decrypt;
7.7.12.1.2 Registers
Instances
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W VALUE AES non-tunneling or first tunnel stage key value.
AES key value to use as the second tunnel stage key in tunneling operations. The initial AES_KEY_1[0]
register holds the least significant bits [31:0] of the key value.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W VALUE AES second tunnel stage key value.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE AES non-tunneling or first tunnel stage IV value.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE AES second tunnel stage IV value.
This register is a 'R/W change' register, as the written register values changes during processing.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE AES CTR value.
7.7.12.1.2.6 AES_BUSY
Address offset: 0x470
Status register for AES engine activity.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS AES engine status.
Idle 0 AES engine is idle
Busy 1 AES engine is busy
7.7.12.1.2.7 AES_CMAC_INIT
Address offset: 0x47C
Writing to this address triggers the AES engine to generate K1 and K2 for AES-CMAC operations.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Generate K1 and K2 for the AES-CMAC operations.
Enable 1 Initialize AES-CMAC operations.
7.7.12.1.2.8 AES_REMAINING_BYTES
Address offset: 0x4BC
This register should be set with the amount of remaining bytes until the end of the current AES operation.
The AES engine counts down from this value to determine the last block or the block before the last blocks
in mode AES CMAC and mode AES CCM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE Remaining bytes util the end of the current AES operation.
7.7.12.1.2.9 AES_CONTROL
Address offset: 0x4C0
Control the AES engine behavior.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I I H H G F E D D D C C C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DEC_KEY0 Set AES encrypt or decrypt mode in non-tunneling operations.
Encrypt 0 Perform AES encryption
Decrypt 1 Perform AES decryption
B RW MODE0_IS_CBC_CTS This field allows to add distinction to the CBC and CTR modes defined in
field MODE_KEY0. If MODE_KEY0 is set to CBC in combination with this
field, AES mode is CBC-CTS. If MODE_KEY0 is set to CTR in combination with
this field, AES mode is GCTR.
Disable 0 Disable CBC-CTS and GCTR mode
Enable 1 Enable CBC-CTS and GCTR mode
C RW MODE_KEY0 Set the AES mode in non-tunneling operations, or the AES mode of the first
stage in tunneling operations.
ECB 0x0 Electronic codebook mode
CBC 0x1 Cipher block chaining mode
This CBC cipher mode can also be configured to run in several distinct
modes:
• CBC with ESSIV mode when combined with field CBC_IS_ESSIV set.
This CTR cipher mode can also be configured to run GCTR mode when
combined with field MODE0_IS_CBC_CTS set.
CBC_MAC 0x3 Cipher Block Chaining Message Authentication Code
XEX_XTS 0x4 Xor-Encrypt-Xor (XEX)-based tweaked-codebook mode with ciphertext
stealing (XTS)
XCBC_MAC 0x5 AES in CBC mode with extensions to overcome fixed length limitations
OFB 0x6 AES Output FeedBack mode
CMAC 0x7 Cipher-based Message Authentication Code
D RW MODE_KEY1 Set the AES mode of the second stage in tunneling operations
ECB 0x0 Electronic codebook mode
CBC 0x1 Cipher block chaining mode
CTR 0x2 Counter mode
CBC_MAC 0x3 Cipher block chaining message authentication code mode
XEX_XTS 0x4 Xor-Encrypt-Xor (XEX)-based tweaked-codebook mode with ciphertext
stealing (XTS)
XCBC_MAC 0x5 AES in CBC mode with extensions to overcome fixed length limitations
OFB 0x6 AES Output FeedBack mode
CMAC 0x7 Cipher-based Message Authentication Code
E RW CBC_IS_ESSIV If MODE_KEY0 is set to CBC, and this field is set, the mode is CBC with ESSIV.
Disable 0 Disable CBC with ESSIV mode
Enable 1 Enable CBC with ESSIV mode
F RW AES_TUNNEL Configure AES engine for standard non-tunneling or tunneling operations.
Disable 0 Standard non-tunneling operations
Enable 1 Enable tunneling operations
G RW CBC_IS_BITLOCKER If MODE_KEY0 is set to CBC, and this field is set, the mode is CBC Bitlocker.
Disable 0 Disable CBC Bitlocker mode
Enable 1 Enable CBC Bitlocker mode
H RW NK_KEY0 Set the AES key length in non-tunneling operations, or the AES key length of
the first stage in tunneling operations.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I I H H G F E D D D C C C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
128Bits 0x0 128 bits key length
192Bits 0x1 192 bits key length
256Bits 0x2 256 bits key length
I RW NK_KEY1 Set the AES key length of the second stage in tunneling operations.
128Bits 0x0 128 bits key length
192Bits 0x1 192 bits key length
256Bits 0x2 256 bits key length
J RW AES_TUNNEL1_DECRYPT Configure if first tunnel stage performs encrypt or decrypt operation.
Encrypt 0 Second tunnel stage performs encrypt operations.
Decrypt 1 Second tunnel stage performs decrypt operations.
K RW AES_TUN_B1_USES_PADDED_DATA_IN For tunneling operations this field determine the data that is fed to the
second tunneling stage.
Disable 0 The output of the first block is used directly (standard tunneling operation).
Enable 1 The output of the first block is padded before use.
L RW AES_TUNNEL0_ENCRYPT Configure if first tunnel stage performs encrypt or decrypt operation.
Decrypt 0 First tunnel stage performs decrypt operations.
Encrypt 1 First tunnel stage performs encrypt operations.
M RW AES_OUTPUT_MID_TUNNEL_DATA This fields configure if the AES engine output is the result of the first or
second tunneling stage.
SecondStage 0 Output result from the second tunnel stage (standard tunneling).
FirstStage 1 Output result from the first tunnel stage.
N RW AES_TUNNEL_B1_PAD_EN This field configure if the input data to the second tunnel stage is to be
padded with zeroes according to how many bytes are remaining.
Disable 0 The data input to the second tunnel stage is not padded with zeros.
Enable 1 The data input to the second tunnel stage is padded with zeros.
O RW AES_OUT_MID_TUN_TO_HASH This field determines for AES-TO-HASH-AND-DOUT tunneling operations,
whether the AES outputs to the HASH the result of the first or the second
tunneling stage.
SecondStage 0 The AES engine writes to the HASH the result of the second tunnel stage.
FirstStage 1 The AES engine writes to the HASH the result of the first tunnel stage.
P RW DIRECT_ACCESS Using direct access and not the DIN-DOUT DMA interface
Disable 0 Access using the DIN-DOUT DMA interface
Enable 1 Access using direct access
7.7.12.1.2.10 AES_HW_FLAGS
Address offset: 0x4C8
Hardware configuration of the AES engine. Reset value holds the supported features.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID K J I H G F E D C B A
Reset 0x00001D0B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1
ID R/W Field Value ID Value Description
A R SUPPORT_256_192_KEY If this flag is set, the engine support 192 bits and 256 bits key size.
B R AES_LARGE_RKEK If this flag is set, the engine support AES_LARGE_RKEK.
C R DPA_CNTRMSR_EXIST If this flag is set, the engine support DPA countermeasures.
D R CTR_EXIST If this flag is set, the engine support AES CTR mode.
E R ONLY_ENCRYPT If this flag is set, the engine only support encrypt operations.
F R USE_SBOX_TABLE If this flag is set, the engine uses SBOX tables.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID K J I H G F E D C B A
Reset 0x00001D0B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1
ID R/W Field Value ID Value Description
G R USE_5_SBOXES If this flag is set, the engine uses 5 SBOX where each AES round takes 4
cycles.
H R AES_SUPPORT_PREV_IV If this flag is set, the engine contains the PREV_IV register for faster AES
XCBC MAC calculation.
I R AES_TUNNEL_EXIST If this flag is set, the engine support tunneling operations.
J R SECOND_REGS_SET_EXIST If this flag is set, the engine support a second register set for tunneling
operations.
K R DFA_CNTRMSR_EXIST If this flag is set, the engine support DFA countermeasures.
7.7.12.1.2.11 AES_CTR_NO_INCREMENT
Address offset: 0x4D8
This register enables the AES CTR no increment mode in which the counter mode is not incremented
between two blocks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE This field enables the AES CTR no increment mode in which the counter
mode is not incremented between two blocks
Disable 0 Counter always incremented between blocks
Enable 1 Do not increment counter between blocks
7.7.12.1.2.12 AES_SW_RESET
Address offset: 0x4F4
Reset the AES engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the AES engine. The reset takes 4
CPU clock cycles to complete.
Enable 1 Reset AES engine.
7.7.12.1.2.13 AES_CMAC_SIZE0_KICK
Address offset: 0x524
Writing to this address triggers the AES engine to perform a CMAC operation with size 0. The CMAC result
can be read from the AES_IV_0 register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Force AES CMAC operation with size 0.
Disable 0 Normal AES CMAC operation
Enable 1 Force CMAC operation with size 0
Note: To ensure proper operation when writing 128 bits CHACHA keys, the write-only key registers
of the CHACHA engine must be written in ascending order, starting with:
• CHACHA_KEY[0]
• CHACHA_KEY[1]
• CHACHA_KEY[2]
• CHACHA_KEY[3]
For 256 bits CHACHA keys, this must be followed by:
• CHACHA_KEY[4]
• CHACHA_KEY[5]
• CHACHA_KEY[6]
• CHACHA_KEY[7]
uint8_t buf_dst[16] = { 0 };
uint8_t buf_src[16] = { 0x18, 0x35, 0x9B, 0x75, 0x18, 0x6F, 0x33, 0xBE,
0x22, 0x0A, 0x3D, 0xB7, 0x66, 0xFD, 0x98, 0x35 };
/* Configure CHACHA mode - using default (0x0), adding new message init */
NRF_CC_CHACHA->CHACHA_CONTROL =
(CC_CHACHA_CHACHA_CONTROL_INIT_Enable <<
CC_CHACHA_CHACHA_CONTROL_INIT_Pos);
7.7.12.2.2 Registers
Instances
Register overview
The initial CHACHA_POLY1305_KEY[0] register holds the least significant bits [31:0] of the key
value.
CHACHA_ENDIANNESS 0x3E4 CHACHA engine data order configuration.
CHACHA_DEBUG 0x3E8 Debug register for the CHACHA engine
7.7.12.2.2.1 CHACHA_CONTROL
Address offset: 0x380
Control the CHACHA engine behavior.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID G F E E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHACHA_OR_SALSA Run engine in ChaCha or Salsa mode
ChaCha 0 Run engine in ChaCha mode
Salsa 1 Run engine in Salsa mode
B RW INIT Perform initialization for a new message
Disable 0 Message already initialized
Enable 1 Initialize new message
C RW GEN_KEY_POLY1305 Generate the key to use in Poly1305 message authentication code
calculation.
Disable 0 Do not generate Poly1305 key
Enable 1 Generate Poly1305 key
D RW KEY_LEN Key length selection.
256Bits 0 Use 256 bits key length
128Bits 1 Use 128 bits key length
E RW NUM_OF_ROUNDS Set number of permutation rounds, default value is 20.
Default 0 Use 20 rounds of rotation (default)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID G F E E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
12Rounds 1 Use 12 rounds of rotation
8Rounds 2 Use 8 rounds of rotation
F RW RESET_BLOCK_CNT Reset block counter for new messages
Disable 0 Use current block counter value
Enable 1 Reset block counter value to zero
G RW USE_IV_96BIT Use 96 bits Initialization Vector (IV)
Disable 0 Use default size IV of 64 bit
Enable 1 The IV is 96 bits
7.7.12.2.2.2 CHACHA_VERSION
Address offset: 0x384
CHACHA engine HW version
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R CHACHA_VERSION
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W VALUE CHACHA key value.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE CHACHA IV value.
7.7.12.2.2.5 CHACHA_BUSY
Address offset: 0x3B0
Status register for CHACHA engine activity.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS CHACHA engine status.
Idle 0 CHACHA engine is idle
Busy 1 CHACHA engine is busy
7.7.12.2.2.6 CHACHA_HW_FLAGS
Address offset: 0x3B4
Hardware configuration of the CHACHA engine. Reset value holds the supported features.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R CHACHA_EXISTS If this flag is set, the engine include ChaCha support
B R SALSA_EXISTS If this flag is set, the engine include Salsa support
C R FAST_CHACHA If this flag is set, the next matrix calculated when the current one is written
to data output path.
7.7.12.2.2.7 CHACHA_BLOCK_CNT_LSB
Address offset: 0x3B8
Store the LSB value of the block counter, in order to support suspend/resume of operation
The two first words (n) in the last row of the cipher matrix are the block counter. At the end of each block
(512b), the block counter for the next block is written by HW to register CHACHA_BLOCK_CNT_LSB on
page 216 and register CHACHA_BLOCK_CNT_MSB on page 216. If starting a new message the block
counter must also be reset.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE This register holds the ChaCha block counter bits [31:0] and must be read
and written during respectively suspend and resume operations.
7.7.12.2.2.8 CHACHA_BLOCK_CNT_MSB
Address offset: 0x3BC
Store the MSB value of the block counter, in order to support suspend/resume of operation
For the description of register CHACHA_BLOCK_CNT_MSB on page 216, see register
CHACHA_BLOCK_CNT_LSB on page 216.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE This register holds the ChaCha block counter bits [63:32] and must be read
and written during respectively suspend and resume operations.
7.7.12.2.2.9 CHACHA_SW_RESET
Address offset: 0x3C0
Reset the CHACHA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the CHACHA engine. The reset takes
4 CPU clock cycles to complete.
Enable 1 Reset CHACHA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R VALUE Poly1305 key value.
7.7.12.2.2.11 CHACHA_ENDIANNESS
Address offset: 0x3E4
CHACHA engine data order configuration.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHACHA_DIN_WORD_ORDER Change the word order of the input data.
Default 0 Use default word order for 128-bits input, where words are ordered as
follows: w0, w1, w2, w3.
Reverse 1 Reverses the word order for 128-bits input, where words are re-ordered as
follows: w3, w2, w1, w0.
B RW CHACHA_DIN_BYTE_ORDER Change the byte order of the input data.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Default 0 Use default byte order within each input word, where bytes are ordered as
follows: B0, B1, B2, B3.
Reverse 1 Reverse the byte order within each input word, where bytes are re-ordered
as follows: B3, B2, B1, B0.
C RW CHACHA_CORE_MATRIX_LBE_ORDER Change the quarter of a matrix order in the engine.
Default 0 Use default quarter of matrix order, where quarters are ordered as follows:
q0, q1, q2, q3. Each quarter represents a 128-bits section of the matrix.
Reverse 1 Reverse the order of matrix quarters, where quarters are re-ordered as
follows: q3, q2, q1, q0. Each quarter represents a 128-bits section of the
matrix.
D RW CHACHA_DOUT_WORD_ORDER Change the word order of the output data.
Default 0 Uses default word order for 128-bits output, where words are ordered as
follows: w0, w1, w2, w3.
Reverse 1 Reverse the word order for 128-bits output, where words are re-ordered as
follows: w3, w2, w1, w0.
E RW CHACHA_DOUT_BYTE_ORDER Change the byte order of the output data.
Default 0 Use default byte order within each output word, where bytes are ordered as
follows: B0, B1, B2, B3.
Reverse 1 Reverse the byte order within each output word, where bytes are re-
ordered as follows: B3, B2, B1, B0.
7.7.12.2.2.12 CHACHA_DEBUG
Address offset: 0x3E8
Debug register for the CHACHA engine
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R FSM_STATE Reflects the debug state of the CHACHA FSM.
IDLE_STATE 0 CHACHA FSM is in idle state
INIT_STATE 1 CHACHA FSM is in init state
ROUNDS_STATE 2 CHACHA FSM is in rounds state
FINAL_STATE 3 CHACHA FSM is in final state
Note: To ensure proper operation, the write-only key registers of the GHASH engine must be
written in ascending order, starting with:
• GHASH_SUBKEY[0]
• GHASH_SUBKEY[1]
• GHASH_SUBKEY[2]
• GHASH_SUBKEY[3]
7.7.12.3.1 Registers
Instances
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W VALUE GHASH subkey value.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE GHASH IV value.
7.7.12.3.1.3 GHASH_BUSY
Address offset: 0x980
Status register for GHASH engine activity.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS GHASH engine status.
Idle 0 GHASH engine is idle
Busy 1 GHASH engine is busy
7.7.12.3.1.4 GHASH_INIT
Address offset: 0x984
Configure the GHASH engine for a new GHASH operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Initialize a new GHASH operation.
Enable 1 Initialize GHASH operation
Note:
To ensure proper operation, the FIPS 180-4 defined initial hash values written to the registers of the
HASH engine must be written in descending order, starting with:
• HASH_H[7] for SHA-256, and SHA-224.
• HASH_H[6] for SHA-256, and SHA-224.
• HASH_H[5] for SHA-256, and SHA-224.
• HASH_H[4] for SHA-256, SHA-224, and SHA-1.
• HASH_H[3] for SHA-256, SHA-224, and SHA-1.
• HASH_H[2] for SHA-256, SHA-224, and SHA-1.
• HASH_H[1] for SHA-256, SHA-224, and SHA-1.
• HASH_H[0] for SHA-256, SHA-224, and SHA-1.
uint8_t buf_src[32] = {
0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,
0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,
0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,
0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA };
7.7.12.4.2 Registers
Instances
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE Write the initial hash value before start of digest operation, and read the
final hash value result after the digest operation has been completed.
7.7.12.4.2.2 HASH_PAD_AUTO
Address offset: 0x684
Configure the HASH engine to automatically pad data at the end of the DMA transfer to complete the
digest operation.
This feature can only be used if HASH_PAD on page 224 is enabled, and must be disabled after a digest
operation is completed. In the event of zero bytes input data length the hardware padding must be
manually triggered using register HASH_PAD_FORCE on page 224.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W HWPAD Enable automatic padding in hardware.
7.7.12.4.2.3 HASH_XOR_DIN
Address offset: 0x688
Perform an XOR operation of the DIN DMA engine input data being fed into the HASH engine. Set this
register to '0' if XOR is not required.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE The value to XOR with the HASH engine input data.
7.7.12.4.2.4 HASH_INIT_STATE
Address offset: 0x694
Configure HASH engine initial state registers.
Data fetched using the DIN DMA engine will be loaded into initial hash value registers HASH_H[n] (n=0..7)
on page 222 or used as IV for AES MAC.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W LOAD Enable loading of data to initial state registers. Digest/IV for HASH/
AES_MAC.
Disable this register when loading of data using DIN DMA is done.
Disable 0 Disable loading of data to initial state registers.
Enable 1 Enable loading of data to initial state registers.
7.7.12.4.2.5 HASH_SELECT
Address offset: 0x6A4
Select HASH or GHASH engine as the digest engine to use.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENGINE Select HASH or GHASH engine as the digest engine.
HASH 0 Select the HASH engine
GHASH 2 Select the GHASH engine
Selecting the GHASH engine will automatically enable the GHASH engine
clock
7.7.12.4.2.6 HASH_CONTROL
Address offset: 0x7C0
Control the HASH engine behavior.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MODE Select HASH mode to execute
SHA1 1 Select SHA1 mode
SHA256 2 Select SHA256 mode
SHA224 10 Select SHA224 mode
7.7.12.4.2.7 HASH_PAD
Address offset: 0x7C4
Enable the hardware padding feature of the HASH engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW ENABLE Configure hardware padding feature.
Disable 0 Disable hardware padding feature.
Enable 1 Enable hardware padding feature.
7.7.12.4.2.8 HASH_PAD_FORCE
Address offset: 0x7C8
Force the hardware padding operation to trigger if the input data length is zero bytes.
This feature can only be used if HASH_PAD on page 224 is enabled, and must be disabled after a digest
operation is completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Trigger hardware padding operation.
7.7.12.4.2.9 HASH_CUR_LEN_0
Address offset: 0x7CC
Bits [31:0] of the number of bytes that have been digested so far.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE Bits [31:0] of current length of digested data in bytes.
7.7.12.4.2.10 HASH_CUR_LEN_1
Address offset: 0x7D0
Bits [63:32] of the number of bytes that have been digested so far.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALUE Bits [63:32] of current length of digested data in bytes.
7.7.12.4.2.11 HASH_HW_FLAGS
Address offset: 0x7DC
Hardware configuration of the HASH engine. Reset value holds the supported features.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID J I H G F E D C C C C B B B B A A A A
Reset 0x00012001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R CW Indicates the number of concurrent words the hash is using to compute
signature.
One 1 One concurrent word used by hash during signature generation
Two 2 Two concurrent words used by hash during signature generation
B R CH Indicate if Hi adders are present for each Hi value or 1 adder is shared for all
Hi.
One 0 One Hi value is updated at a time.
All 1 All Hi values are updated at the same time.
C R DW Determine the granularity of word size.
32Bits 0 32 bits word data.
64Bits 1 64 bits word data.
D R SHA_512_EXISTS If this flag is set, the engine include SHA-512 support.
E R PAD_EXISTS If this flag is set, the engine include pad block support.
F R MD5_EXISTS If this flag is set, the engine include MD5 support.
G R HMAC_EXISTS If this flag is set, the engine include HMAC support.
H R SHA_256_EXISTS If this flag is set, the engine include SHA-256 support.
I R HASH_COMPARE_EXISTS If this flag is set, the engine include compare digest logic.
J R DUMP_HASH_TO_DOUT_EXISTS If this flag is set, the engine include HASH to DOUT support.
7.7.12.4.2.12 HASH_SW_RESET
Address offset: 0x7E4
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the HASH engine. The reset takes 4
CPU clock cycles to complete.
Enable 1 Reset HASH engine.
7.7.12.4.2.13 HASH_ENDIANNESS
Address offset: 0x7E8
Configure the endianness of HASH data and padding generation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW ENDIAN Endianness of HASH data and padding generation. The default value is little-
endian.
LittleEndian 0 Use little-endian format for data and padding
BigEndian 1 Use big-endian format for data and padding
All virtual registers must be defined and configured in the dedicated PKA SRAM on page 231 before they
can be accessed by the PKA engine during processing. This SRAM acts as a private memory pool for the
PKA engine, where all other access is blocked during processing. The virtual registers are used as input for
the PKA calculation and as a placeholder for intermediate and final results.
The PKA engine can be configured to perform multiple operations on virtual operand registers and store
the result of the operation in a virtual result or intermediate result register. During the next iteration the
PKA engine can then use an intermediate result register from a previous operation as a virtual operand
register for further calculations. This re-mapping strategy enables the PKA engine to efficiently handle
complex cryptographic operations.
In total there are 32 virtual registers that can be mapped to different PKA SRAM regions using register
MEMORY_MAP[n] (n=0..31) on page 233, denoted as virtual register R0 - R31. Four of these 32
virtual registers are special registers, and their register index mapping can be changed using register
N_NP_T0_T1_ADDR on page 234:
• N - holds the modulus number, by default mapped to virtual register R0. This register is used by the
PKA engine for modular operations, and its modulus N value does not change during processing.
• Np - holds the inverse modulus number, by default mapped to virtual register R1. This register is used
by the PKA engine for the Barrett reduction algorithm, and its inverse modulus Np value does not
change during processing.
• T0 - temporary register, by default mapped to virtual register R30. This register is for internal use by the
PKA engine.
• T1 - temporary register, by default mapped to virtual register R31. This register is for internal use by the
PKA engine.
All virtual registers must be 64 bits word size aligned, and the size of the virtual registers must be at least
the size of the largest operand plus an extra 64 bits for internal PKA calculations. These extra 64 bits must
be initialized to zero. This is applicable for all virtual registers R0 - R31. The configured virtual register size
does not define the size of the operation, it only limits the largest operand size that can be used with the
corresponding virtual register.
The memory map configuration can be altered dynamically by the PKA engine, depending on the
operation. Not all virtual registers need to be configured for each operation. It is recommended to re-write
the memory map configuration after a reset.
OPCODE Operation
Terminate Terminate ongoing PKA operation
AddInc Add or Increment
• INC: REG_R = REG_A + 0x1, when REG_B and CONST_B are 0x1
SubDecNeg Subtract, Decrement, or Negate
• DEC: REG_R = REG_A - 0x1, when REG_B and CONST_B are 0x1
• NEG: REG_R = 0x0 - REG_B, when REG_A is 0x0 and CONST_A is 0x1
ModAddInc Modular Add or Modular Increment
• ModINC: REG_R = (REG_A + 0x1) % REG_N, when REG_B and CONST_B are 0x1
ModSubDecNeg Modular Subtract, Modular Decrement, or Modular Negate
• ModDEC: REG_R = (REG_A - 0x1) % REG_N, when REG_B and CONST_B is 0x1
• TST0: REG_R = REG_A & 0x1, when REG_B is 0x1, and CONST_B is 0x1
• CLR: REG_R = 0x0, when REG_B is 0x0 and CONST_B is 0x1. REG_A is ignored.
ORCOPYSET0 Or, Copy, or Set bit 0
• FLP0: REG_R = REG_A XOR 0x1, when REG_B and CONST_B is 0x1.
• INV: REG_R = REG_A XOR 0xFFFFFFFF, when REG_B is 0x1F and CONST_B is 0x1.
• CMP: REG_A XOR REG_B, when DISCARD_R is 0x1, result of comparison is provided by the ALU_OUT_ZERO flag in
PKA_STATUS register.
SHR0 Shift right 0. This operation performs a logical right shift on the contents of REG_A by a specified number of bit positions and
stores the result in REG_R. The leftmost bits of REG_R that are vacated by the shift operation are filled with zeros.
REG_R = REG_A >> s, CONST_B must be set to 0x1. To perform s shifts, REG_B should be set to s - 1 (where 1 <=
s <= 31).
SHR1 Shift right 1. This operation performs a logical right shift on the contents of REG_A by a specified number of bit positions and
stores the result in REG_R. The leftmost bits of REG_R that are vacated by the shift operation are filled with ones.
REG_R = REG_A >> s, CONST_B must be set to 0x1. To perform s shifts, REG_B should be set to s - 1 (where 1 <=
s <= 31).
SHL0 Shift left 0. This operation performs a logical left shift on the contents of REG_A by a specified number of bit positions and
stores the result in REG_R. The leftmost bits of REG_R that are vacated by the shift operation are filled with zeros.
REG_R = REG_A << s, CONST_B must be set to 0x1. To perform s shifts, REG_B should be set to s - 1 (where 1 <=
s <= 31).
SHL1 Shift left 1. This operation performs a logical left shift on the contents of REG_A by a specified number of bit positions and
stores the result in REG_R. The leftmost bits of REG_R that are vacated by the shift operation are filled with ones.
REG_R = REG_A << s, CONST_B must be set to 0x1. To perform s shifts, REG_B should be set to s - 1 (where 1 <=
s <= 31).
MulLow Multiply Low. This operation performs a multiplication of the values in REG_A and REG_B and stores the result in the
destination register REG_R. Any bits of the product that exceed the operand size are discarded, effectively keeping only the
least significant bits (LSBs) that fit within the operand size.
OPCODE Operation
REG_R = (REG_A * REG_B) & operand size mask
ModMul Modular Multiply.
If REG_B is zero (0x0), the operation is invalid, and the divide by zero bit in the status register is set to indicate a division error.
Note: PKA division operations with operands larger than 4K bits return erroneous results.
Note: Before switching from writing to reading operations (or vice versa), the PKA SRAM write
buffer must be cleared. This is done using register PKA_SRAM_WCLEAR on page 237. Clearing
the buffer ensures that the next operation starts cleanly without any leftover data from the
previous operation.
This cryptographic flow example perform a subtract operation with the following assumptions:
• All PKA SRAM registers, including the special virtual registers N, Np, T0, and T1, have been cleared
before the operation is run.
• The operation is using index 1 in register PKA_L[n] (n=0..7) on page 235, which is set to
accommodate an operand size of 2048 bits.
• Register R4 and R5 have been selected to run this operation. Register R4 is used both as the operand
A register and the result register.
• The memory map is configured to allow operands of 2048 bits plus an additional 64 bits for the internal
PKA engine calculations. The configuration of the MEMORY_MAP[n] (n=0..31) on page 233 for
virtual register N, Np, T0, and T1 is not included in the example. The memory map is thus configured
with 66 words per register, leading to the following:
7.7.12.5.6 Registers
Instances
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ADDR The physical word address used for the virtual register.
7.7.12.5.6.2 OPCODE
Address offset: 0x80
Operation code to be executed by the PKA engine.
Writing to this register triggers the PKA operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID I I I I I H H H G F F F F F E D D D D D C B B B B B A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TAG Holds the operation tag or the operand C virtual register index.
B RW REG_R Result register virtual register index.
C RW DISCARD_R This field controls the interpretation of REG_R.
Register 0x0 REG_R is intepreted as a register index.
Discard 0x1 Result is discarded.
D RW REG_B Operand B virtual register index.
E RW CONST_B This field controls the interpretation of REG_B.
Register 0x0 REG_B is intepreted as a register index.
Constant 0x1 REG_B is intepreted as a constant.
F RW REG_A Operand A virtual register index.
G RW CONST_A This field controls the interpretation of REG_A.
Register 0x0 REG_A is intepreted as a register index.
Constant 0x1 REG_A is intepreted as a constant.
H RW LEN The length of the operands. This value serves as an PKA length register
index. E.g.: if LEN field value is set to 0, PKA_L[0] holds the size of the
operands.
I RW OPCODE Operation code to be executed by the PKA engine
Terminate 0x0 Terminate operation
AddInc 0x4 Add or Increment
SubDecNeg 0x5 Subtract, Decrement, or Negate
ModAddInc 0x6 Modular Add or Modular Increment
ModSubDecNeg 0x7 Modular Subtract, Modular Decrement, or Modular Negate
ANDTST0CLR0 0x8 Perform AND, test, or clear
ORCOPYSET0 0x9 Perform OR, copy, or set bits
XORFLP0INVCMP 0xA Perform XOR, flip bits, invert, or compare
SHR0 0xC Shift right 0 operation
SHR1 0xD Shift right 1 operation
SHL0 0xE Shift left 0 operation
SHL1 0xF Shift left 1 operation
MulLow 0x10 Multiply low operation
ModMul 0x11 Modular multiply operation
ModMulN 0x12 Modular multiply N operation
ModExp 0x13 Modular exponentiation operation
Division 0x14 Division operation
ModInv 0x15 Modular inversion operation
ModDiv 0x16 Modular division operation
MulHigh 0x17 Multiply high operation
ModMLAC 0x18 Modular multiplication acceleration
ModMLACNR 0x19 Modular multiplication acceleration where final reduction is omitted
Reduction 0x1B Reduction operation
7.7.12.5.6.3 N_NP_T0_T1_ADDR
Address offset: 0x84
This register defines the N, Np, T0, and T1 virtual register index.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D C C C C C B B B B B A A A A A
Reset 0x000FF820 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW N_VIRTUAL_ADDR Register N virtual register index. Default is R0.
B RW NP_VIRTUAL_ADDR Register Np virtual register index. Default is R1.
C RW T0_VIRTUAL_ADDR Temporary register 0 virtual register index. Default is R30.
D RW T1_VIRTUAL_ADDR Temporary register 1 virtual register index. Default is R31.
7.7.12.5.6.4 PKA_STATUS
Address offset: 0x88
This register holds the status for the PKA pipeline.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID K K K K K J I H G F E D C B B B B A A A A
Reset 0x00001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ALU_MSB_4BITS The most significant 4-bits of the operand updated in shift operation.
B R ALU_LSB_4BITS The least significant 4-bits of the operand updated in shift operation.
C R ALU_SIGN_OUT Indicates the MSB sign of the last operation.
D R ALU_CARRY Holds the carry of the last ALU operation.
E R ALU_CARRY_MOD Holds the carry of the last modular operation.
F R ALU_SUB_IS_ZERO Indicates the last subtraction operation sign.
G R ALU_OUT_ZERO Indicates if the result of ALU OUT is zero.
H R ALU_MODOVRFLW Modular overflow flag.
I R DIV_BY_ZERO Indication if the division is done by zero.
J R MODINV_OF_ZERO Indicates the modular inverse of zero.
K R OPCODE Opcode of the last operation
7.7.12.5.6.5 PKA_SW_RESET
Address offset: 0x8C
Reset the PKA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the PKA engine. The reset takes 4
CPU clock cycles to complete.
Enable 1 Reset PKA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OpSize Operand bit size.
7.7.12.5.6.7 PKA_PIPE
Address offset: 0xB0
Status register indicating if the PKA pipeline is ready to receive a new OPCODE.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R STATUS PKA pipeline status.
NotReady 0 PKA pipeline is not ready for a new OPCODE
Ready 1 PKA pipeline is ready for a new OPCODE
7.7.12.5.6.8 PKA_DONE
Address offset: 0xB4
Status register indicating if the PKA operation has been completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R STATUS PKA operation status.
Processing 0 PKA operation is processing
Completed 1 PKA operation is completed and pipeline is empty
7.7.12.5.6.9 PKA_VERSION
Address offset: 0xC4
PKA engine HW version. Reset value holds the version.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x16110215 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1
ID R/W Field Value ID Value Description
A R PKA_VERSION
7.7.12.5.6.10 PKA_SRAM_WADDR
Address offset: 0xD4
Start address in PKA SRAM for subsequent write transactions.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ADDR PKA SRAM start address for write transaction
7.7.12.5.6.11 PKA_SRAM_WDATA
Address offset: 0xD8
Write data to PKA SRAM. Writing to this register triggers a DMA transaction writing data into PKA SRAM.
The DMA address offset is automatically incremented during write.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W DATA Data to write to PKA SRAM.
7.7.12.5.6.12 PKA_SRAM_RDATA
Address offset: 0xDC
Read data from PKA SRAM. Reading from this register triggers a DMA transaction read data from PKA
SRAM. The DMA address offset is automatically incremented during read.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R DATA Data to read from PKA SRAM
7.7.12.5.6.13 PKA_SRAM_WCLEAR
Address offset: 0xE0
Register for clearing PKA SRAM write buffer.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W CLEAR Clear the PKA SRAM write buffer.
7.7.12.5.6.14 PKA_SRAM_RADDR
Address offset: 0xE4
Start address in PKA SRAM for subsequent read transactions.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ADDR PKA SRAM start address for read transaction
repeated until the collection of 192 bits of random data can be collected without an error event being
triggered.
It is recommended to always try the shortest ROSC length first, allowing the RNG engine to complete the
entropy collection in a shorter time and keep the ring oscillator turned off for longer periods in order to
save power.
The RNG SRAM memory is not directly mapped to the device memory map. Instead, any read or write
operation using word granularity to this memory region must be done using RNG SRAM interface on page
265. Larger payloads than word granularity can be processed using the DIN DMA engine on page 253
and DOUT DMA engine on page 257.
Before any RNG SRAM read or write transaction can be performed, the CRYPTOCELL must be enabled.
Writing data to the RNG SRAM involves the following steps:
1. Set the Address Offset: Specify the starting byte address for writing by setting register SRAM_ADDR
on page 266. An offset value of 0x0 points to the first 32-bits word in the RNG SRAM memory. An
offset value of 0x10 points to the fourth 32-bits word in the RNG SRAM memory.
2. Write Data: When register SRAM_DATA_READY on page 266 indicates DMA engine is idle, data is
written to register SRAM_DATA on page 266. The address will automatically increment after each
write, allowing writes to the next word without needing to set the offset again.
Reading data from the RNG SRAM involves the following steps:
1. Set the Read Address: Specify the starting byte address for reading by setting register SRAM_ADDR on
page 266
2. Discard first read: Read and discard the first value from register SRAM_DATA on page 266, as it will
contain the previous value pointed to by register SRAM_ADDR on page 266.
3. Read Data: When register SRAM_DATA_READY on page 266 indicates DMA engine is idle, retrieve
the data from register SRAM_DATA on page 266. Similar to the write address, the read address will
auto-increment with each read, setting it to the next word.
Note: Once the address register reaches the last RNG SRAM address, the automatic address
incrementation halts. Any subsequent read or write transaction will cause the DMA engine to
continue operating on the last 32-bits word in the RNG SRAM memory.
NOISE_SOURCE
192
EHR_WIDTH
VNC TRNG_TESTS EHR_DATA
EHR_VALID
SAMPLE_CNT
The TRNG collects random bits from the noise source according to the programmed sample counter
value in register SAMPLE_CNT on page 245. The sampled bits are post-processed in a von Neumann
corrector (VNC) before being subjected to a continuous random number generation test (CRNGT) and
autocorrelation test.
192 bits of random data can be read from the entropy holding registers EHR_DATA[n] (n=0..5) on page
244 once interrupt EHR_VALID_INT in register RNG_ISR on page 243 trigger. If this interrupt
is masked away in register RNG_IMR on page 242, the status register TRNG_VALID on page 244
contains field EHR_DATA which can be polled when the random data is valid. Reading the most significant
word from EHR_DATA registers will reset register TRNG_VALID and a new 192 bits collection period will
start.
Note:
To ensure proper operation when reading 192 bits of random data from the EHR_DATA registers of
the RNG engine the data must be read in ascending order, starting with:
• EHR_DATA[0]
• EHR_DATA[1]
• EHR_DATA[2]
• EHR_DATA[3]
• EHR_DATA[4]
• EHR_DATA[5]
11 01 11 10 11 11 01 10 11 11 10 01 11 11 01
X 0 X 1 X X 0 1 X X 1 0 X X 0
VNC
0 1 0 1 1 0 0
The VNC statistically output one bit for each 4 input bits sampled, meaning the average output rate of the
TRNG is 1/(SAMPLE_CNT * 4) bits per CPU clock cycle.
7.7.12.6.3.2 Continuous random number generation test
The Continuous random number generation test (CRNGT) process the balanced output of random data
from the von Neumann corrector.
In the event that two consecutive blocks of 16 collected bits are equal, the CRNGT will trigger event
CRNGT_ERR_INT in register RNG_ISR on page 243.
7.7.12.6.3.3 Autocorrelation test
The Autocorrelation test determine if there over time is a bias in the random bit sequences towards
certain values or patterns, or if the bits in the sequence are truly independent.
If a bias in the collected bit stream is detected, the output will be discarded and the error flagged in
register AUTOCORR_STATISTIC on page 245. If a bias is detected four consecutive times in a row, the
autocorrelation test will trigger event AUTOCORR_ERR_INT in register RNG_ISR on page 243. In this
situation the TRNG will cease to function until manually reset using register RNG_SW_RESET on page
246.
/* Reset engine */
NRF_CC_RNG->RNG_SW_RESET = CC_RNG_RNG_SW_RESET_RESET_Enable;
7.7.12.6.5 Registers
Instances
Register overview
The initial EHR_DATA[0] register holds the least significant bits [31:0] of the random data
value.
NOISE_SOURCE 0x12C This register controls the ring oscillator circuit used as a noise source.
SAMPLE_CNT 0x130 Sample count defining the number of CPU clock cycles between two consecutive noise source
samples.
AUTOCORR_STATISTIC 0x134 Statistics counter for autocorrelation test activations. Statistics collection is stopped if one of
the counters reach its limit of all ones.
TRNG_DEBUG 0x138 Debug register for the TRNG. This register is used to bypass TRNG tests in hardware.
RNG_SW_RESET 0x140 Reset the RNG engine.
RNG_BUSY 0x1B8 Status register for RNG engine activity.
TRNG_RESET 0x1BC Reset the TRNG, including internal counter of collected bits and registers EHR_DATA and
TRNG_VALID.
RNG_HW_FLAGS 0x1C0 Hardware configuration of RNG engine. Reset value holds the supported features.
RNG_CLK 0x1C4 Control clock for the RNG engine.
RNG_DMA 0x1C8 Writing to this register enables the RNG DMA engine.
RNG_DMA_ROSC_LEN 0x1CC This register defines which ring oscillator length configuration should be used when using the
RNG DMA engine.
RNG_DMA_SRAM_ADDR 0x1D0 This register defines the start address in TRNG SRAM for the TRNG data to be collected by the
RNG DMA engine.
RNG_DMA_SAMPLES_NUM 0x1D4 This register defines the number of 192-bits samples that the RNG DMA engine collects per
run.
RNG_WATCHDOG_VAL 0x1D8 This register defines the maximum number of CPU clock cycles per TRNG collection of 192-
bits samples. If the number of cycles for a collection exceeds this threshold the WATCHDOG
interrupt is triggered.
RNG_DMA_BUSY 0x1DC Status register for RNG DMA engine activity.
7.7.12.6.5.1 RNG_IMR
Address offset: 0x100
Interrupt mask register. Each bit of this register holds the mask of a single interrupt source.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x0000003F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW EHR_VALID_MASK See RNG_ISR for explanation on this interrupt.
IRQEnable 0 Do not mask EHR interrupt i.e. interrupt is generated
IRQDisable 1 Mask EHR interrupt i.e. no interrupt is generated
B RW AUTOCORR_ERR_MASK See RNG_ISR for explanation on this interrupt.
IRQEnable 0 Do not mask autocorrelation interrupt i.e. interrupt is generated
IRQDisable 1 Mask autocorrelation interrupt i.e. no interrupt is generated
C RW CRNGT_ERR_MASK See RNG_ISR for explanation on this interrupt.
IRQEnable 0 Do not mask the CRNGT error interrupt i.e. interrupt is generated
IRQDisable 1 Mask the CRNGT error interrupt i.e. no interrupt is generated
D RW VNC_ERR_MASK See RNG_ISR for explanation on this interrupt.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x0000003F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
ID R/W Field Value ID Value Description
IRQEnable 0 Do not mask the von Neumann corrector error interrupt i.e. interrupt is
generated
IRQDisable 1 Mask the von Neumann corrector error interrupt i.e. no interrupt is
generated
E RW WATCHDOG_MASK See RNG_ISR for explanation on this interrupt.
IRQEnable 0 Do not mask the watchdog interrupt i.e. interrupt is generated
IRQDisable 1 Mask the watchdog interrupt i.e. no interrupt is generated
F RW DMA_DONE_MASK See RNG_ISR for explanation on this interrupt.
IRQEnable 0 Do not mask the RNG DMA completion interrupt i.e. interrupt is generated
IRQDisable 1 Mask the RNG DMA completion interrupt i.e. no interrupt is generated
7.7.12.6.5.2 RNG_ISR
Address offset: 0x104
Interrupt status register. Each bit of this register holds the interrupt status of a single interrupt source. If
corresponding RNG_IMR bit is unmasked, an interrupt is generated.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R EHR_VALID_INT 192-bits have been collected and are ready to be read.
B R AUTOCORR_ERR_INT Autocorrelation error. Failure occurs when autocorrelation test has failed
four times in a row. Once set, the TRNG ceases to function until next reset.
C R CRNGT_ERR_INT Continuous random number generator test error. Failure occurs when two
consecutive blocks of 16 collected bits are equal.
D R VNC_ERR_INT von Neumann corrector error. Failure occurs if 32 consecutive collected bits
are identical, ZERO, or ONE.
E R WATCHDOG_INT Maximum number of CPU clock cycles per sample have been exceeded. See
RNG_WATCHDOG_VAL for more information.
F R DMA_DONE_INT RNG DMA to SRAM is completed.
7.7.12.6.5.3 RNG_ICR
Address offset: 0x108
Interrupt clear register. Writing a 1 bit into a field in this register will clear the corresponding bit in
RNG_ISR.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W EHR_VALID_CLEAR Writing value '1' clears corresponding bit in RNG_ISR
B W AUTOCORR_ERR_CLEAR Cannot be cleared by software! Only RNG reset clears this bit.
C W CRNGT_ERR_CLEAR Writing value '1' clears corresponding bit in RNG_ISR
D W VNC_ERR_CLEAR Writing value '1' clears corresponding bit in RNG_ISR
E W WATCHDOG_CLEAR Writing value '1' clears corresponding bit in RNG_ISR
F W DMA_DONE_CLEAR Writing value '1' clears corresponding bit in RNG_ISR
7.7.12.6.5.4 TRNG_CONFIG
Address offset: 0x10C
TRNG ring oscillator length configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ROSC_LEN Set the length of the oscillator ring (= the number of inverters) out of four
possible configurations.
ROSC1 0 Use shortest ROSC1 ring oscillator configuration.
ROSC2 1 Use ROSC2 ring oscillator configuration.
ROSC3 2 Use ROSC3 ring oscillator configuration.
ROSC4 3 Use longest ROSC4 ring oscillator configuration.
7.7.12.6.5.5 TRNG_VALID
Address offset: 0x110
This register indicates if TRNG entropy collection is valid.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R EHR_DATA A value of 1 indicates that collection of bits in the TRNG is completed, and
data can be read from EHR_DATA registers.
NotValid 0 Collection of bits not valid.
Valid 1 Collection of bits valid.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R VALUE Random data value.
7.7.12.6.5.7 NOISE_SOURCE
Address offset: 0x12C
This register controls the ring oscillator circuit used as a noise source.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable the noise source.
Disabled 0 Noise source is disabled
Enabled 1 Noise source is enabled
7.7.12.6.5.8 SAMPLE_CNT
Address offset: 0x130
Sample count defining the number of CPU clock cycles between two consecutive noise source samples.
After selecting the desired ring oscillator length configuration in TRNG_CONFIG on page 244 this
register must be set to the corresponding value from FICR.TRNG90B.ROSC1-4.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x0000FFFF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW VALUE Number of CPU clock cycles between two consecutive noise source samples.
If the von Neumann corrector is bypassed, the minimum value set in this
register must not be smaller than decimal 17.
7.7.12.6.5.9 AUTOCORR_STATISTIC
Address offset: 0x134
Statistics counter for autocorrelation test activations. Statistics collection is stopped if one of the counters
reach its limit of all ones.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW AUTOCORR_TRYS Count each time an autocorrelation test starts. Any write to the field resets
the counter.
B RW AUTOCORR_FAILS Count each time an autocorrelation test fails. Any write to the field resets
the counter.
7.7.12.6.5.10 TRNG_DEBUG
Address offset: 0x138
Debug register for the TRNG. This register is used to bypass TRNG tests in hardware.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VNC_BYPASS Bypass the von Neumann corrector post-processing test, including the 32
consecutive bits test.
Disabled 0 von Neumann corrector post-processing is active
Enabled 1 Bypass the von Neumann corrector
B RW CRNGT_BYPASS Bypass the Continuous Random Number Generator Test (CRNGT).
Disabled 0 CRNGT is active
Enabled 1 Bypass CRNGT
C RW AUTOCORR_BYPASS Bypass the autocorrelation test.
Disabled 0 Autocorrelation test is active
Enabled 1 Bypass the autocorrelation test
7.7.12.6.5.11 RNG_SW_RESET
Address offset: 0x140
Reset the RNG engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the RNG engine. The reset takes 4
CPU clock cycles to complete.
Enable 1 Reset RNG engine.
7.7.12.6.5.12 RNG_BUSY
Address offset: 0x1B8
Status register for RNG engine activity.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS RNG engine status.
Idle 0 RNG engine is idle
Busy 1 RNG engine is busy
B R TRNG_STATUS TRNG status.
Idle 0 TRNG is idle
Busy 1 TRNG is busy
7.7.12.6.5.13 TRNG_RESET
Address offset: 0x1BC
Reset the TRNG, including internal counter of collected bits and registers EHR_DATA and TRNG_VALID.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the internal bits counter and
registers EHR_DATA and TRNG_VALID. Register NOISE_SOURCE must be
disabled in order for the reset to take place.
Enable 1 Reset TRNG.
7.7.12.6.5.14 RNG_HW_FLAGS
Address offset: 0x1C0
Hardware configuration of RNG engine. Reset value holds the supported features.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x0000000F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
ID R/W Field Value ID Value Description
A R EHR_WIDTH Data width supported by the entropy collector
128Bits 0 128 bits EHR width
192Bits 1 192 bits EHR width
B R CRNGT_EXISTS If this flag is set, the engine include support for continuous random number
generator test.
C R AUTOCORR_EXISTS If this flag is set, the engine include support for autocorrelation test.
D R BYPASS_EXISTS If this flag is set, the engine include support for bypassing TRNG tests.
E R PRNG_EXISTS If this flag is set, the engine include a pseudo-random number generator.
F R KAT_EXISTS If this flag is set, the engine include support for known answer tests.
G R RESEEDING_EXISTS If this flag is set, the engine include support for automatic reseeding.
H R RNG_USE_5_SBOXES
Disable 0 20 SBOX AES
Enable 1 5 SBOX AES
7.7.12.6.5.15 RNG_CLK
Address offset: 0x1C4
Control clock for the RNG engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Enables clock for the RNG engine.
Disable 0 Disable clock for RNG engine.
Enable 1 Enable clock for RNG engine.
7.7.12.6.5.16 RNG_DMA
Address offset: 0x1C8
Writing to this register enables the RNG DMA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE
Disable 0 Disable RNG DMA engine
Enable 1 Enable RNG DMA engine
This value is cleared when the RNG DMA engine completes its operation.
7.7.12.6.5.17 RNG_DMA_ROSC_LEN
Address offset: 0x1CC
This register defines which ring oscillator length configuration should be used when using the RNG DMA
engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ROSC1 Use shortest ROSC1 ring oscillator configuration.
Disable 0 Disable ROSC1
Enable 1 Enable ROSC1
B RW ROSC2 Use ROSC2 ring oscillator configuration.
Disable 0 Disable ROSC2
Enable 1 Enable ROSC2
C RW ROSC3 Use ROSC3 ring oscillator configuration.
Disable 0 Disable ROSC3
Enable 1 Enable ROSC3
D RW ROSC4 Use longest ROSC4 ring oscillator configuration.
Disable 0 Disable ROSC4
Enable 1 Enable ROSC4
7.7.12.6.5.18 RNG_DMA_SRAM_ADDR
Address offset: 0x1D0
This register defines the start address in TRNG SRAM for the TRNG data to be collected by the RNG DMA
engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RNG_SRAM_DMA_ADDR Start address of the TRNG data in TRNG SRAM.
7.7.12.6.5.19 RNG_DMA_SAMPLES_NUM
Address offset: 0x1D4
This register defines the number of 192-bits samples that the RNG DMA engine collects per run.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RNG_SAMPLES_NUM Defines the number of 192-bits samples that the DMA engine collects per
run.
7.7.12.6.5.20 RNG_WATCHDOG_VAL
Address offset: 0x1D8
This register defines the maximum number of CPU clock cycles per TRNG collection of 192-bits samples. If
the number of cycles for a collection exceeds this threshold the WATCHDOG interrupt is triggered.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RNG_WATCHDOG_VAL Defines the maximum number of CPU clock cycles per TRNG collection
of 192-bits samples. If the number of cycles for a collection exceeds this
threshold the WATCHDOG interrupt is triggered.
7.7.12.6.5.21 RNG_DMA_BUSY
Address offset: 0x1DC
Status register for RNG DMA engine activity.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C C C C C B B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS RNG DMA engine status.
Idle 0 RNG DMA engine is idle
Busy 1 RNG DMA engine is busy
B R ROSC_LEN The active ring oscillator length configuration used by the RNG DMA engine.
ROSC1 0 Shortest ROSC1 ring oscillator configuration used.
ROSC2 1 ROSC2 ring oscillator configuration used.
ROSC3 2 ROSC3 ring oscillator configuration used.
ROSC4 3 Longest ROSC4 ring oscillator configuration used.
C R NUM_OF_SAMPLES Number of samples already collected using the current ring oscillator
configuration.
7.7.13.1.1 Registers
Instances
Register overview
7.7.13.1.1.1 AHBM_SINGLES
Address offset: 0xB00
This register forces the AHB transactions from CRYPTOCELL master to be always singles.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW AHB_SINGLES Force AHB singles
7.7.13.1.1.2 AHBM_HPROT
Address offset: 0xB04
This register holds the AHB HPROT value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW AHB_HPROT The AHB HPROT value
7.7.13.1.1.3 AHBM_HMASTLOCK
Address offset: 0xB08
This register holds AHB HMASTLOCK value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW AHB_HMASTLOCK The AHB HMASTLOCK value.
7.7.13.1.1.4 AHBM_HNONSEC
Address offset: 0xB0C
This register holds AHB HNONSEC value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW AHB_WRITE_HNONSEC The AHB HNONSEC value for write transaction.
B RW AHB_READ_HNONSEC The AHB HNONSEC value for read transaction.
7.7.13.2 AO interface
The always-on (AO) interface controls various persistent security configurations for the CRYPTOCELL
subsystem.
7.7.13.2.1 Registers
Instances
Register overview
7.7.13.2.1.1 AO_APB_FILTERING
Address offset: 0xE38
This register holds the AO_APB_FILTERING configuration.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
ID R/W Field Value ID Value Description
A RW ONLY_SEC_ACCESS_ALLOWED When this FW controlled field is set, the APB slave accepts only secure
accesses
B RW ONLY_SEC_ACCESS_ALLOWED_LOCK When this FW controlled field is set, the ONLY_SEC_ACCESS_ALLOWED field
cannot be modified until the next PoR
C RW ONLY_PRIV_ACCESS_ALLOWED When this FW controlled field is set, the APB slave accepts only privileged
accesses
D RW ONLY_PRIV_ACCESS_ALLOWED_LOCK When this FW controlled field is set, the
APBC_ONLY_PRIV_ACCESS_ALLOWED field cannot be modified until the
next PoR
7.7.13.2.1.2 CC_SW_RESET
Address offset: 0xE40
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the CRYPTOCELL subsystem. The
reset takes 4 CPU clock cycles to complete.
Enable 1 Reset CRYPTOCELL subsystem.
7.7.13.3.1 Registers
Instances
Register overview
7.7.13.3.1.1 CRYPTO_CTL
Address offset: 0x900
Defines the cryptographic flow.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W MODE Configure the cryptographic engine mode.
7.7.13.3.1.2 CRYPTO_BUSY
Address offset: 0x910
Status register for cryptographic cores engine activity.
This register will be asserted whenever register AES_BUSY on page 208 or register HASH_BUSY on page
253 is asserted or when register DIN_FIFO_EMPTY on page 257 indicate that the DIN FIFO is not
empty.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS Cryptographic core engines status.
Idle 0 Cryptographic core engines are idle
Busy 1 Cryptographic core engines are busy
7.7.13.3.1.3 HASH_BUSY
Address offset: 0x91C
Status register for HASH engine activity.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS Hash engine status.
Idle 0 HASH engine is idle
Busy 1 HASH engine is busy
7.7.13.3.1.4 CONTEXT_ID
Address offset: 0x930
A general-purpose read/write register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CONTEXT_ID Context ID
SRC_MEM_SIZE on page 255 to define the input source address and number of input bytes,
respectively.
7.7.13.4.1 Registers
Instances
Register overview
7.7.13.4.1.1 DIN_BUFFER
Address offset: 0xC00
Used by CPU to write data directly to the DIN buffer, which is then sent to the cryptographic engines for
processing.
The number of bytes to write is defined in DIN_CPU_DATA on page 256.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W DATA This register is mapped into 8 addresses in order to enable a CPU burst.
7.7.13.4.1.2 DIN_DMA_MEM_BUSY
Address offset: 0xC20
Status register for DIN DMA engine activity when accessing memory.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS DIN memory DMA engine status.
Idle 0 DIN memory DMA engine is idle
Busy 1 DIN memory DMA engine is busy
7.7.13.4.1.3 SRC_MEM_ADDR
Address offset: 0xC28
Data source address in memory.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ADDR Source address in memory.
7.7.13.4.1.4 SRC_MEM_SIZE
Address offset: 0xC2C
The number of bytes to be read from memory. Writing to this register triggers the DMA operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SIZE Total number of bytes to read from memory.
B W FIRST This field is reserved
C W LAST This field is reserved
7.7.13.4.1.5 SRC_SRAM_ADDR
Address offset: 0xC30
Data source address in RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ADDR Source address in RNG SRAM.
7.7.13.4.1.6 SRC_SRAM_SIZE
Address offset: 0xC34
The number of bytes to be read from RNG SRAM. Writing to this register triggers the DMA operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SIZE Total number of bytes to read from RNG SRAM.
7.7.13.4.1.7 DIN_DMA_SRAM_BUSY
Address offset: 0xC38
Status register for DIN DMA engine activity when accessing RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS DIN RNG SRAM DMA engine status.
Idle 0 DIN RNG SRAM DMA engine is idle
Busy 1 DIN RNG SRAM DMA engine is busy
7.7.13.4.1.8 DIN_DMA_SRAM_ENDIANNESS
Address offset: 0xC3C
Configure the endianness of DIN DMA transactions towards RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENDIAN Endianness of DIN DMA transactions towards RNG SRAM. The default value
is little-endian.
LittleEndian 0 Use little-endian format for RNG SRAM DMA transactions
BigEndian 1 Use big-endian format for RNG SRAM DMA transactions
7.7.13.4.1.9 DIN_SW_RESET
Address offset: 0xC44
Reset the DIN DMA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the DIN DMA engine. The reset
takes 4 CPU clock cycles to complete.
Enable 1 Reset DIN DMA engine.
7.7.13.4.1.10 DIN_CPU_DATA
Address offset: 0xC48
Specifies the number of bytes the CPU will write to the DIN_BUFFER, ensuring the cryptographic engine
processes the correct amount of data.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SIZE When using CPU direct write to the DIN_BUFFER, the size of input data in
bytes should be written to this register.
7.7.13.4.1.11 DIN_WRITE_ALIGN
Address offset: 0xC4C
Indicates that the next CPU write to the DIN_BUFFER is the last in the sequence. This is needed only when
the data size is NOT modulo 4 (e.g. HASH padding).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W LAST Next CPU write to the DIN_BUFFER is the last word.
Confirm 1 The next CPU write is the last in the sequence.
7.7.13.4.1.12 DIN_FIFO_EMPTY
Address offset: 0xC50
Register indicating if DIN FIFO is empty and if more data can be accepted.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R STATUS DIN FIFO status
NotEmpty 0 DIN FIFO is not empty
Empty 1 DIN FIFO is empty, and more data can be accepted
7.7.13.4.1.13 DIN_FIFO_RESET
Address offset: 0xC58
Reset the DIN FIFO, effectively clearing the FIFO for new data.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the DIN FIFO.
Enable 1 Reset DIN FIFO.
Maximum DMA transaction size is limited to 216-1 bytes. If a DMA transaction is configured with a
payload size above the maximum DMA transaction size limit, the DMA engine must be reset before being
functional again using register DOUT_SW_RESET on page 261.
The flow demonstrated in Cryptographic flow on page 205 shows how the DOUT DMA engine is
configured to output data from the AES engine using registers DST_MEM_ADDR on page 259 and
DST_MEM_SIZE on page 259 to define the output source address and number of output bytes,
respectively.
7.7.13.5.1 Registers
Instances
Register overview
7.7.13.5.1.1 DOUT_BUFFER
Address offset: 0xD00
Cryptographic results directly accessible by the CPU.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R DATA This address can be used by the CPU to read data directly from the DOUT
buffer.
7.7.13.5.1.2 DOUT_DMA_MEM_BUSY
Address offset: 0xD20
Status register for DOUT DMA engine activity when accessing memory.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS DOUT memory DMA engine status.
Idle 0 DOUT memory DMA engine is idle
Busy 1 DOUT memory DMA engine is busy
7.7.13.5.1.3 DST_MEM_ADDR
Address offset: 0xD28
Data destination address in memory.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ADDR Destination address in memory.
7.7.13.5.1.4 DST_MEM_SIZE
Address offset: 0xD2C
The number of bytes to be written to memory.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SIZE Total number of bytes to write to memory.
B W FIRST This field is reserved
C W LAST This field is reserved
7.7.13.5.1.5 DST_SRAM_ADDR
Address offset: 0xD30
Data destination address in RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ADDR Destination address in RNG SRAM.
7.7.13.5.1.6 DST_SRAM_SIZE
Address offset: 0xD34
The number of bytes to be written to RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SIZE Total number of bytes to write to RNG SRAM.
7.7.13.5.1.7 DOUT_DMA_SRAM_BUSY
Address offset: 0xD38
Status register for DOUT DMA engine activity when accessing RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS DOUT RNG SRAM DMA engine status.
Idle 0 DOUT RNG SRAM DMA engine is idle
Busy 1 DOUT RNG SRAM DMA engine is busy
7.7.13.5.1.8 DOUT_DMA_SRAM_ENDIANNESS
Address offset: 0xD3C
Configure the endianness of DOUT DMA transactions towards RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENDIAN Endianness of DOUT DMA transactions towards RNG SRAM. The default
value is little-endian.
LittleEndian 0 Use little-endian format for RNG SRAM DMA transactions
BigEndian 1 Use big-endian format for RNG SRAM DMA transactions
7.7.13.5.1.9 DOUT_READ_ALIGN
Address offset: 0xD44
Indication that the next CPU read from the DOUT_BUFFER is the last in the sequence. This is needed only
when the data size is NOT modulo 4 (e.g. HASH padding).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W LAST Next CPU read from the DOUT_BUFFER is the last word, and the remaining
read aligned content can be flushed.
Flush 1 Flush the remaining read aligned content.
7.7.13.5.1.10 DOUT_FIFO_EMPTY
Address offset: 0xD50
Register indicating if DOUT FIFO is empty or if more data will come.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R STATUS DOUT FIFO status
NotEmpty 0 DOUT FIFO is not empty, and more data will come
Empty 1 DOUT FIFO is empty
7.7.13.5.1.11 DOUT_SW_RESET
Address offset: 0xD58
Reset the DOUT DMA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RESET Writing any value to this address resets the DOUT DMA engine. The reset
takes 4 CPU clock cycles to complete.
Enable 1 Reset DOUT DMA engine.
7.7.13.6.1 Registers
Instances
Register overview
7.7.13.6.1.1 IRR
Address offset: 0xA00
Interrupt request register. Each bit of this register holds the interrupt status of a single interrupt source. If
corresponding IMR bit is unmasked, an interrupt is generated.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SRAM_TO_DIN_INT The RNG SRAM to DIN DMA done interrupt status. This interrupt is asserted
when all data was delivered from RNG SRAM to DIN buffer.
B R DOUT_TO_SRAM_INT The DOUT to RNG SRAM DMA done interrupt status. This interrupt is
asserted when all data was delivered from DOUT buffer to RNG SRAM.
C R MEM_TO_DIN_INT The memory to DIN DMA done interrupt status. This interrupt is asserted
when all data was delivered from memory to DIN buffer.
D R DOUT_TO_MEM_INT The DOUT to memory DMA done interrupt status. This interrupt is asserted
when all data was delivered from DOUT buffer to memory.
E R AHB_ERR_INT The AHB error interrupt status.
F R PKA_INT The PKA end of operation interrupt status.
G R RNG_INT The RNG interrupt status.
H R SYM_DMA_INT The symmetric engine DMA completed interrupt status.
7.7.13.6.1.2 IMR
Address offset: 0xA04
Interrupt mask register. Each bit of this register holds the mask of a single interrupt source.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000FFF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW SRAM_TO_DIN_MASK The RNG SRAM to DIN DMA done interrupt mask.
IRQEnable 0 Do not mask RNG SRAM to DIN DMA done interrupt i.e. interrupt is
generated
IRQDisable 1 Mask RNG SRAM to DIN DMA done interrupt i.e. no interrupt is generated
B RW DOUT_TO_SRAM_MASK The DOUT to RNG SRAM DMA done interrupt mask.
IRQEnable 0 Do not mask DOUT to RNG SRAM DMA done interrupt i.e. interrupt is
generated
IRQDisable 1 Mask DOUT to RNG SRAM DMA done interrupt i.e. no interrupt is generated
C RW MEM_TO_DIN_MASK The memory to DIN DMA done interrupt mask.
IRQEnable 0 Do not mask memory to DIN DMA done interrupt i.e. interrupt is generated
IRQDisable 1 Mask memory to DIN DMA done interrupt i.e. no interrupt is generated
D RW DOUT_TO_MEM_MASK The DOUT to memory DMA done interrupt mask.
IRQEnable 0 Do not mask DOUT to memory DMA done interrupt i.e. interrupt is
generated
IRQDisable 1 Mask DOUT to memory DMA done interrupt i.e. no interrupt is generated
E RW AHB_ERR_MASK The AHB error interrupt mask.
IRQEnable 0 Do not mask AHB error interrupt i.e. interrupt is generated
IRQDisable 1 Mask AHB error interrupt i.e. no interrupt is generated
F RW PKA_MASK The PKA end of operation interrupt mask.
IRQEnable 0 Do not mask PKA end of operation interrupt i.e. interrupt is generated
IRQDisable 1 Mask PKA end of operation interrupt i.e. no interrupt is generated
G RW RNG_MASK The RNG interrupt mask.
IRQEnable 0 Do not mask RNG interrupt i.e. interrupt is generated
IRQDisable 1 Mask RNG interrupt i.e. no interrupt is generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000FFF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
H RW SYM_DMA_MASK The symmetric engine DMA completed interrupt mask.
IRQEnable 0 Do not mask the symmetric engine DMA completed interrupt i.e. interrupt
is generated
IRQDisable 1 Mask the symmetric engine DMA completed interrupt i.e. no interrupt is
generated
7.7.13.6.1.3 ICR
Address offset: 0xA08
Interrupt clear register. Writing a 1 bit into a field in this register will clear the corresponding bit in IRR.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SRAM_TO_DIN_CLEAR The RNG SRAM to DIN DMA done interrupt clear.
B W DOUT_TO_SRAM_CLEAR The DOUT to RNG SRAM DMA done interrupt clear.
C W MEM_TO_DIN_CLEAR The memory to DIN DMA done interrupt clear.
D W DOUT_TO_MEM_CLEAR The DOUT to memory DMA done interrupt clear.
E W AHB_ERR_CLEAR The AHB error interrupt clear.
F W PKA_CLEAR The PKA end of operation interrupt clear.
G W RNG_CLEAR The RNG interrupt clear. Register RNG_ISR in the RNG engine must be
cleared before this interrupt can be cleared.
H W SYM_DMA_CLEAR The symmetric engine DMA completed interrupt clear.
7.7.13.6.1.4 ENDIANNESS
Address offset: 0xA0C
This register defines the endianness of the Host-accessible registers, and can only be written once.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DOUT_WR_BG DOUT write endianness.
LittleEndian 0 Configure DOUT write as little-endian
BigEndian 1 Configure DOUT write as big-endian
B RW DIN_RD_BG DIN read endianness.
LittleEndian 0 Configure DIN read as little-endian
BigEndian 1 Configure DIN read as big-endian
C RW DOUT_WR_WBG DOUT write word endianness.
LittleEndian 0 Configure DOUT write word as little-endian
BigEndian 1 Configure DOUT write word as big-endian
D RW DIN_RD_WBG DIN read word endianness.
LittleEndian 0 Configure DIN read word as little-endian
BigEndian 1 Configure DIN read word as big-endian
7.7.13.6.1.5 HOST_SIGNATURE
Address offset: 0xA24
This register holds the CRYPTOCELL subsystem signature. See reset value.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x10E00000 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R VALUE Fixed-value identification signature used by host driver to verify
CRYPTOCELL presence at this address.
7.7.13.6.1.6 HOST_BOOT
Address offset: 0xA28
Hardware configuration of the CRYPTOCELL subsystem. Reset value holds the supported features.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID b a Z Y X W V U T S R Q P O N M L K J I H G F F F E D C B A
Reset 0x5E62982E 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0
ID R/W Field Value ID Value Description
A R POWER_GATING_EXISTS_LOCAL If this flag is set, full power gating is implemented
B R LARGE_RKEK_LOCAL If this flag is set, large RKEK is supported
C R HASH_IN_FUSES_LOCAL If this flag is set, HASH in fuses is supported
D R EXT_MEM_SECURED_LOCAL If this flag is set, external secure memory is supported
E R RKEK_ECC_EXISTS_LOCAL_N If this flag is set, RKEK ECC is supported
F R SRAM_SIZE_LOCAL SRAM size
G R DSCRPTR_EXISTS_LOCAL If this flag is set, Descriptors are supported
H R PAU_EXISTS_LOCAL If this flag is set, PAU is supported
I R RNG_EXISTS_LOCAL If this flag is set, the RNG engine is present
J R PKA_EXISTS_LOCAL If this flag is set, the PKA engine is present
K R RC4_EXISTS_LOCAL If this flag is set, the RC4 engine is present
L R SHA_512_PRSNT_LOCAL If this flag is set, the HASH engine supports SHA512
M R SHA_256_PRSNT_LOCAL If this flag is set, the HASH engine supports SHA256
N R MD5_PRSNT_LOCAL If this flag is set, the HASH engine supports MD5
O R HASH_EXISTS_LOCAL If this flag is set, the HASH engine is present
P R C2_EXISTS_LOCAL If this flag is set, the C2 engine is present
Q R DES_EXISTS_LOCAL If this flag is set, the DES engine is present
R R AES_XCBC_MAC_EXISTS_LOCAL If this flag is set, AES XCBC-MAC mode is supported
S R AES_CMAC_EXISTS_LOCAL If this flag is set, AES CMAC mode is supported
T R AES_CCM_EXISTS_LOCAL If this flag is set, AES CCM mode is supported
U R AES_XEX_HW_T_CALC_LOCAL If this flag is set, AES XEX mode T-value calculation in HW is supported
V R AES_XEX_EXISTS_LOCAL If this flag is set, AES XEX mode is supported
W R CTR_EXISTS_LOCAL If this flag is set, AES CTR mode is supported
X R AES_DIN_BYTE_RESOLUTION_LOCAL If this flag is set, the AES engine data input support byte size resolution
Y R TUNNELING_ENB_LOCAL If this flag is set, the AES engine supports tunneling operations
Z R SUPPORT_256_192_KEY_LOCAL If this flag is set, the AES engine supports 192/256 bits key sizes
a R ONLY_ENCRYPT_LOCAL If this flag is set, the AES engine only support encryption
b R AES_EXISTS_LOCAL If this flag is set, the AES engine is present
7.7.13.6.1.7 HOST_CC_IS_IDLE
Address offset: 0xA7C
Idle state register for the CRYPTOCELL subsystem.
Other fields in this register will indicate which parts of CRYPTOCELL subsystem are busy.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R HOST_CC_IS_IDLE CRYPTOCELL idle state.
Busy 0 CRYPTOCELL subsystem busy.
Idle 1 CRYPTOCELL subsystem idle.
B R SYM_IS_BUSY Symmetric flow busy state.
Busy 1 Symmetric flow busy.
Idle 0 Symmetric flow idle.
C R AHB_IS_IDLE AHB state machine idle state.
Busy 0 AHB state machine busy.
Idle 1 AHB state machine idle.
D R RNG_IS_IDLE RNG engine idle state.
Busy 0 RNG engine busy.
Idle 1 RNG engine idle.
E R PKA_IS_IDLE PKA engine idle state.
Busy 0 PKA engine busy.
Idle 1 PKA engine idle.
F R CRYPTO_IS_IDLE Cryptographic flow idle state.
Busy 0 Cryptographic flow busy.
Idle 1 Cryptographic flow idle.
7.7.13.6.1.8 HOST_POWERDOWN
Address offset: 0xA80
This register start the power-down sequence.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HOST_POWERDOWN Power down enable register.
7.7.13.7.1 Registers
Instances
Register overview
7.7.13.7.1.1 SRAM_DATA
Address offset: 0xF00
Read/Write data from RNG SRAM
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SRAM_DATA 32 bits DMA read/write from/to RNG SRAM. A 'read' or 'write' operation to
this register will trigger the DMA address to be automatically incremented.
7.7.13.7.1.2 SRAM_ADDR
Address offset: 0xF04
First address given to RNG SRAM DMA for read/write transactions from/to RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SRAM_ADDR RNG SRAM starting address
7.7.13.7.1.3 SRAM_DATA_READY
Address offset: 0xF08
RNG SRAM DMA engine is ready to read/write from/to RNG SRAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R SRAM_READY RNG SRAM DMA status.
Busy 0 DMA is busy
Idle 1 DMA is idle
Note: Clock control for the RNG engine on page 238 is handled by register RNG_CLK on page
247 and not through the MISC interface.
7.7.13.8.1 Registers
Instances
Register overview
7.7.13.8.1.1 AES_CLK
Address offset: 0x810
Clock control for the AES engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Enables clock for the AES engine.
Disable 0 Disable clock for the AES engine.
Enable 1 Enable clock for the AES engine.
7.7.13.8.1.2 HASH_CLK
Address offset: 0x818
Clock control for the HASH engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Enables clock for the HASH engine.
Disable 0 Disable clock for the HASH engine.
Enable 1 Enable clock for the HASH engine.
7.7.13.8.1.3 PKA_CLK
Address offset: 0x81C
Clock control for the PKA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Enables clock for the PKA engine.
Disable 0 Disable clock for the PKA engine.
Enable 1 Enable clock for the PKA engine.
7.7.13.8.1.4 DMA_CLK
Address offset: 0x820
Clock control for the DMA engines.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Enables clock for the DMA engines.
Disable 0 Disable clock for the DMA engines.
Enable 1 Enable clock for the DMA engines.
7.7.13.8.1.5 CLK_STATUS
Address offset: 0x824
CRYPTOCELL clocks status register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AES_CLK Status of AES engine clock.
Disabled 0 Clock for AES engine is disabled
Enabled 1 Clock for AES engine is enabled
B R HASH_CLK Status of HASH engine clock.
Disabled 0 Clock for HASH engine is disabled
Enabled 1 Clock for HASH engine is enabled
C R PKA_CLK Status of PKA engine clock.
Disabled 0 Clock for PKA engine is disabled
Enabled 1 Clock for PKA engine is enabled
D R CHACHA_CLK Status of CHACHA engine clock.
Disabled 0 Clock for CHACHA engine is disabled
Enabled 1 Clock for CHACHA engine is enabled
E R DMA_CLK Status of DMA engines clock.
Disabled 0 Clocks for DMA engines are disabled
Enabled 1 Clocks for DMA engines are enabled
7.7.13.8.1.6 CHACHA_CLK
Address offset: 0x858
Clock control for the CHACHA engine.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ENABLE Enables clock for the CHACHA engine.
Disable 0 Disable clock for the CHACHA engine.
Enable 1 Enable clock for the CHACHA engine.
7.8.1 Protection
DCNF protection blocks the path of AHB masters in an external core from accessing AHB slaves in the AMLI
of the local core. Essentially, blocking external core access to internal resources of the local core.
The following figure is a simplified version of the AMLI that shows the set of configuration registers used
to control this behavior. A more detailed AMLI figure can be found in Memory on page 21.
External
core
AHB Master
DCNF
EXTPERI[0]
SLAVE0
PERI APB Peripherals
APB slave
DCNF
< 0.5 GB RAM
EXTRAM[0] Section N
SLAVEn
RAMn ...
AHB slave Section 1
Section 0
Section N
SLAVE1
RAM1 ...
AHB slave Section 1
Section 0
Section N
SLAVE0
RAM0 ...
AHB slave Section 1
Section 0 0x2000 0000
DCNF
EXTCODE[0] ...
SLAVE0
CODE0
AHB slave
Page 2
Page 1
Page 0 0x0000 0000
The DCNF configuration registers that enable the DCNF protection are the following:
• EXTPERI[n].PROTECT
• EXTRAM[n].PROTECT
• EXTCODE[n].PROTECT
An attempt to access the blocked resources will trigger a BusFault or a HardFault exception, depending
on the value of the BUSFAULTENA bit in the Arm Cortex-M33 SHCSR (system handler control and state
register). This is described in the Arm Cortex-M33 Devices Generic User Guide.
RAM protection
RAM regions are protected by configuring the SLAVE bits in the register EXTRAM[n].PROTECT of the
equivalent master port.
Peripheral protection
Peripheral memory regions are protected by configuring the SLAVE bits in the register EXTPERI[n].PROTECT
of the equivalent master port.
Code protection
Code memory regions are protected by configuring the SLAVE bits in the register EXTCODE[0].PROTECT of
the equivalent master port.
7.8.2 Registers
Instances
DCNF : S 0x50000000
APPLICATION US S NA No Domain configuration
DCNF : NS 0x40000000
DCNF NETWORK 0x41000000 HF NS NA No Domain configuration
Configuration
Register overview
7.8.2.1 CPUID
Address offset: 0x420
CPU ID of this subsystem
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CPUID CPU ID
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SLAVE[i] (i=0..0) Control access to slave i of master EXTPERI[n]
Allowed 0 Access to slave is allowed
Blocked 1 Access to slave is blocked
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW SLAVE[i] (i=0..7) Control access to slave i of master EXTRAM[n]
Allowed 0 Access to slave is allowed
Blocked 1 Access to slave is blocked
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SLAVE[i] (i=0..0) Control access to slave i of master EXTCODE[n]
Allowed 0 Access to slave is allowed
Blocked 1 Access to slave is blocked
Note: For more information on tasks, events, publish/subscribe, interrupts, and other concepts,
see Peripheral interface on page 149.
Peripheral A
Channel X-1
Channel 0
Channel 1
Channel 2
PeripheralCore
events[0:N-1]
tasks[0:M-1]
ppiBusProducer [0:X-1]
PPIBus ppiBusConsumer[0:X-1]
PeripheralCore
DPPI
controller
events[0:I-1]
tasks[0:J-1]
ppiBusProducer [0:X-1]
PPIBus ppiBusConsumer[0:X-1]
PeripheralCore
event[N-1]
event[0]
PPIBus
EN EN
PUB[0] PUB[N-1]
CHIDX CHIDX
ppiBusProducer[X-1]
ppiBusProducer[0]
The following figure illustrates how peripheral tasks are triggered from different channels based on
subscribe registers.
ppiBusConsumer[X-1]
ppiBusConsumer[0]
ppiBusConsumer[1]
PPIBus
SUB[0] SUB[M-1]
CHIDX CHIDX
EN EN
task[M-1]
task[0]
PeripheralCore
Note: ENABLE tasks are prioritized over DISABLE tasks. When a channel belongs to two or more
groups, for example group m and n, and the tasks CHG[m].EN and CHG[n].DIS occur simultaneously
(m and n can be equal or different), the CHG[m].EN task on that channel is prioritized.
DPPIC tasks (for example CHG[0].EN) can be triggered through DPPI like any other task, which means they
can be linked to a DPPI channel through the subscribe registers.
In order to write to CHG[x], the corresponding CHG[x].EN and CHG[x].DIS subscribe registers must be
disabled. Writes to CHG[x] are ignored if any of the two subscribe registers are enabled.
One-to-one connection
This example shows how to create a one-to-one connection between TIMER compare register and SAADC
start task.
The channel configuration is set up first. TIMER0 will publish its COMPARE0 event on channel 0, and
SAADC will subscribe its START task to events on the same channel. After that, the channel is enabled
through the DPPIC.
NRF_TIMER0->PUBLISH_COMPARE0 = (DPPI_PUB_CHIDX_Ch0) |
(DPPI_PUB_EN_Msk);
NRF_SAADC->SUBSCRIBE_START = (DPPI_SUB_CHIDX_Ch0) |
(DPPI_SUB_EN_Msk);
Many-to-many connection
The example shows how to create a many-to-many connection, showcasing the DPPIC's channel group
functionality.
A channel group that includes only channel 0 is set up first. Then the GPIOTE and TIMER0 configure their
IN0 and COMPARE0 events respectively to be published on channel 0, while the SAADC configures its
START task to subscribe to events on channel 0. Through DPPIC, the CHG0 DISABLE task is configured
to subscribe to events on channel 0. After an event is received on channel 0 it will be disabled. Finally,
channel 0 is enabled using the DPPIC task to enable a channel group.
NRF_GPIOTE->PUBLISH_IN0 = (DPPI_PUB_CHIDX_Ch0) |
(DPPI_PUB_EN_Msk);
NRF_TIMER0->PUBLISH_COMPARE0 = (DPPI_PUB_CHIDX_Ch0) |
(DPPI_PUB_EN_Msk);
NRF_SAADC->SUBSCRIBE_START = (DPPI_SUB_CHIDX_Ch0) |
(DPPI_SUB_EN_Msk);
NRF_DPPIC->SUBSCRIBE_CHG[0].DIS = (DPPI_SUB_CHIDX_Ch0) |
(DPPI_SUB_EN_Msk);
NRF_DPPIC->TASK_CHG[0].EN = 1;
• A secure peripheral access can control all the DPPI channels, independently of the SPU.DPPI.PERM[]
register(s)
A group of channels can be created, making it possible to simultaneously enable or disable all channels
within the group. The security attribute of a group of channels (secure or non-secure) is defined as
follows:
• If all channels (enabled or not) within a group are non-secure, then the group is considered non-secure
• If at least one of the channels (enabled or not) within the group is secure, then the group is considered
secure
A non-secure access to a DPPI register, or a bit field, controlling a channel marked as secure in
SPU.DPPI[].PERM register(s) will be ignored. Write accesses will have no effect, and read accesses will
always return a zero value.
No exceptions are triggered when non-secure accesses target a register or a bit field controlling a secure
channel. For example, if the bit i is set in the SPU.DPPI[0].PERM register (declaring DPPI channel i as
secure), then:
• Non-secure write accesses to registers CHEN, CHENSET, and CHENCLR cannot write bit i of these
registers
• Non-secure write accesses to TASK_CHG[j].EN and TASK_CHG[j].DIS registers are ignored if the channel
group j contains at least one channel defined as secure (it can be the channel i itself or any channel
declared as secure)
• Non-secure read accesses to registers CHEN, CHENSET, and CHENCLR always read 0 for the bit at
position i
For the channel configuration registers (CHG[]), access from non-secure code is only possible if the
included channels are all non-secure, whether the channels are enabled or not. If a CHG[g] register
included one or more secure channel(s), then the group g is considered as secure, and only secure
transfers can read to or write from CHG[g]. A non-secure write access is ignored, and a non-secure read
access returns 0.
The DPPI can subscribe to secure and non-secure channels through the SUBSCRIBE_CHG[] registers, in
order to trigger the task for enabling or disabling groups of channels. An event from a secure channel will
be ignored if the group subscribing to this channel is non-secure. A secure group can subscribe to a non-
secure channel or a secure channel.
7.9.5 Registers
Instances
DPPIC : S 0x50017000
APPLICATION US S NA Yes DPPI controller
DPPIC : NS 0x40017000
DPPIC NETWORK 0x4100F000 HF NS NA No DPPI controller
Configuration
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W EN Enable channel group n
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W DIS Disable channel group n
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CHG[n].EN will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CHG[n].DIS will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.9.5.3 CHEN
Address offset: 0x500
Channel enable register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW CH[i] (i=0..31) Enable or disable channel i
Disabled 0 Disable channel
Enabled 1 Enable channel
7.9.5.4 CHENSET
Address offset: 0x504
Channel enable set register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW CH[i] (i=0..31) Channel i enable set register. Writing 0 has no effect.
W1S
Disabled 0 Read: Channel disabled
Enabled 1 Read: Channel enabled
Set 1 Write: Enable channel
7.9.5.5 CHENCLR
Address offset: 0x508
Channel enable clear register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW CH[i] (i=0..31) Channel i enable clear register. Writing 0 has no effect.
W1C
Disabled 0 Read: Channel disabled
Enabled 1 Read: Channel enabled
Clear 1 Write: Disable channel
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW CH[i] (i=0..31) Include or exclude channel i
Excluded 0 Exclude
Included 1 Include
7.10.2 EasyDMA
The ECB implements an EasyDMA mechanism for reading and writing to the Data RAM. This DMA cannot
access the program memory or any other parts of the memory area except RAM.
If the ECBDATAPTR is not pointing to the Data RAM region, an EasyDMA transfer may result in a HardFault
or RAM corruption. See Memory on page 21 for more information about the different memory regions.
The EasyDMA will have finished accessing the Data RAM when the ENDECB or ERRORECB is generated.
7.10.4 Registers
Instances
Register overview
7.10.4.1 TASKS_STARTECB
Address offset: 0x000
Start ECB block encrypt
If a crypto operation is already running in the AES core, the STARTECB task will not start a new encryption
and an ERRORECB event will be triggered
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTECB Start ECB block encrypt
If a crypto operation is already running in the AES core, the STARTECB task
will not start a new encryption and an ERRORECB event will be triggered
Trigger 1 Trigger task
7.10.4.2 TASKS_STOPECB
Address offset: 0x004
Abort a possible executing ECB operation
If a running ECB operation is aborted by STOPECB, the ERRORECB event is triggered.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOPECB Abort a possible executing ECB operation
7.10.4.3 SUBSCRIBE_STARTECB
Address offset: 0x080
Subscribe configuration for task STARTECB
If a crypto operation is already running in the AES core, the STARTECB task will not start a new encryption
and an ERRORECB event will be triggered
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTECB will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.10.4.4 SUBSCRIBE_STOPECB
Address offset: 0x084
Subscribe configuration for task STOPECB
If a running ECB operation is aborted by STOPECB, the ERRORECB event is triggered.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOPECB will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.10.4.5 EVENTS_ENDECB
Address offset: 0x100
ECB block encrypt complete
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDECB ECB block encrypt complete
NotGenerated 0 Event not generated
Generated 1 Event generated
7.10.4.6 EVENTS_ERRORECB
Address offset: 0x104
ECB block encrypt aborted because of a STOPECB task or due to an error
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ERRORECB ECB block encrypt aborted because of a STOPECB task or due to an error
NotGenerated 0 Event not generated
Generated 1 Event generated
7.10.4.7 PUBLISH_ENDECB
Address offset: 0x180
Publish configuration for event ENDECB
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDECB will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.10.4.8 PUBLISH_ERRORECB
Address offset: 0x184
Publish configuration for event ERRORECB
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ERRORECB will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.10.4.9 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENDECB Write '1' to enable interrupt for event ENDECB
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ERRORECB Write '1' to enable interrupt for event ERRORECB
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.10.4.10 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENDECB Write '1' to disable interrupt for event ENDECB
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ERRORECB Write '1' to disable interrupt for event ERRORECB
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.10.4.11 ECBDATAPTR
Address offset: 0x504
ECB block encrypt memory pointers
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ECBDATAPTR Pointer to the ECB data structure (see Table 1 ECB data structure overview)
7.11.1 Registers
Instances
EGU0 : S 0x5001B000
APPLICATION US S NA No Event generator unit 0
EGU0 : NS 0x4001B000
EGU1 : S 0x5001C000
APPLICATION US S NA No Event generator unit 1
EGU1 : NS 0x4001C000
EGU2 : S 0x5001D000
APPLICATION US S NA No Event generator unit 2
EGU2 : NS 0x4001D000
EGU3 : S 0x5001E000
APPLICATION US S NA No Event generator unit 3
EGU3 : NS 0x4001E000
EGU4 : S 0x5001F000
APPLICATION US S NA No Event generator unit 4
EGU4 : NS 0x4001F000
EGU5 : S 0x50020000
APPLICATION US S NA No Event generator unit 5
EGU5 : NS 0x40020000
EGU0 NETWORK 0x41014000 HF NS NA No Event generator unit 0
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_TRIGGER Trigger n for triggering the corresponding TRIGGERED[n] event
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task TRIGGER[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TRIGGERED Event number n generated by triggering the corresponding TRIGGER[n] task
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TRIGGERED[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.11.1.5 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW TRIGGERED[i] (i=0..15) Enable or disable interrupt for event TRIGGERED[i]
Disabled 0 Disable
Enabled 1 Enable
7.11.1.6 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW TRIGGERED[i] (i=0..15) Write '1' to enable interrupt for event TRIGGERED[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.11.1.7 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW TRIGGERED[i] (i=0..15) Write '1' to disable interrupt for event TRIGGERED[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.12.1 Registers
Instances
FPU : S 0x50000000
APPLICATION US S NA No Floating Point unit interrupt control
FPU : NS 0x40000000
Register overview
7.12.1.1 EVENTS_INVALIDOPERATION
Address offset: 0x100
An FPUIOC exception triggered by an invalid operation has occurred in the FPU
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_INVALIDOPERATION An FPUIOC exception triggered by an invalid operation has occurred in the
FPU
NotGenerated 0 Event not generated
Generated 1 Event generated
7.12.1.2 EVENTS_DIVIDEBYZERO
Address offset: 0x104
An FPUDZC exception triggered by a floating-point divide-by-zero operation has occurred in the FPU
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DIVIDEBYZERO An FPUDZC exception triggered by a floating-point divide-by-zero operation
has occurred in the FPU
NotGenerated 0 Event not generated
Generated 1 Event generated
7.12.1.3 EVENTS_OVERFLOW
Address offset: 0x108
An FPUOFC exception triggered by a floating-point overflow has occurred in the FPU
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_OVERFLOW An FPUOFC exception triggered by a floating-point overflow has occurred in
the FPU
NotGenerated 0 Event not generated
Generated 1 Event generated
7.12.1.4 EVENTS_UNDERFLOW
Address offset: 0x10C
An FPUUFC exception triggered by a floating-point underflow has occurred in the FPU
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_UNDERFLOW An FPUUFC exception triggered by a floating-point underflow has occurred
in the FPU
NotGenerated 0 Event not generated
Generated 1 Event generated
7.12.1.5 EVENTS_INEXACT
Address offset: 0x110
An FPUIXC exception triggered by an inexact floating-point operation has occurred in the FPU
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_INEXACT An FPUIXC exception triggered by an inexact floating-point operation has
occurred in the FPU
NotGenerated 0 Event not generated
Generated 1 Event generated
7.12.1.6 EVENTS_DENORMALINPUT
Address offset: 0x114
An FPUIDC exception triggered by a denormal floating-point input has occurred in the FPU
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DENORMALINPUT An FPUIDC exception triggered by a denormal floating-point input has
occurred in the FPU
NotGenerated 0 Event not generated
Generated 1 Event generated
7.12.1.7 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW INVALIDOPERATION Enable or disable interrupt for event INVALIDOPERATION
Disabled 0 Disable
Enabled 1 Enable
B RW DIVIDEBYZERO Enable or disable interrupt for event DIVIDEBYZERO
Disabled 0 Disable
Enabled 1 Enable
C RW OVERFLOW Enable or disable interrupt for event OVERFLOW
Disabled 0 Disable
Enabled 1 Enable
D RW UNDERFLOW Enable or disable interrupt for event UNDERFLOW
Disabled 0 Disable
Enabled 1 Enable
E RW INEXACT Enable or disable interrupt for event INEXACT
Disabled 0 Disable
Enabled 1 Enable
F RW DENORMALINPUT Enable or disable interrupt for event DENORMALINPUT
Disabled 0 Disable
Enabled 1 Enable
7.12.1.8 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW INVALIDOPERATION Write '1' to enable interrupt for event INVALIDOPERATION
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW DIVIDEBYZERO Write '1' to enable interrupt for event DIVIDEBYZERO
Set 1 Enable
Disabled 0 Read: Disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Read: Enabled
C RW OVERFLOW Write '1' to enable interrupt for event OVERFLOW
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW UNDERFLOW Write '1' to enable interrupt for event UNDERFLOW
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW INEXACT Write '1' to enable interrupt for event INEXACT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW DENORMALINPUT Write '1' to enable interrupt for event DENORMALINPUT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.12.1.9 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW INVALIDOPERATION Write '1' to disable interrupt for event INVALIDOPERATION
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW DIVIDEBYZERO Write '1' to disable interrupt for event DIVIDEBYZERO
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW OVERFLOW Write '1' to disable interrupt for event OVERFLOW
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW UNDERFLOW Write '1' to disable interrupt for event UNDERFLOW
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW INEXACT Write '1' to disable interrupt for event INEXACT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW DENORMALINPUT Write '1' to disable interrupt for event DENORMALINPUT
Clear 1 Disable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
LDETECT
ANAEN
DETECTMODE DIR_OVERRIDE
PIN[0].CNF.DRIVE GPIO Port
OUT_OVERRIDE
DETECT LATCH OUT PIN0
O PIN[0].OUT
PIN0
PIN[0].OUT PIN[0].CNF.DIR PIN[0].IN
PIN[0].CNF
PIN0.DETECT Sense
PIN1.DETECT ..
PIN[0].CNF.SENSE PIN[0].CNF.PULL
PIN31.DETECT PIN31
PIN[0].CNF.INPUT PIN[31].OUT
PIN31
PIN[0].IN I PIN[31].IN
PIN[31].CNF
IN
INPUT_OVERRIDE
ANAIN
O: output buffer I: input buffer
GPIO Peripheral
PIN_CNF[x] MCUSEL Peripheral or TaD
with access to only
PIN_CNF[y] MCUSEL PINx
Application core
Note: To avoid glitches, changing the MCUSEL bitfield for a pin should only occur when the pin is
disabled.
Also note that when a pin p is not assigned to the application core, the application core's GPIO LATCH
register, PIN_CNF[p].MCUSEL bitfield, and PIN_CNF[p].SENSE bitfield is prevented. For these, any write
operations are ignored, and any read operation will return 0.
Note: For more information on pin assignment and the corresponding effect of read and write
operations of GPIO registers, see Assigning pins between cores, peripherals, or subsystems on page
294.
Note: All write-capable registers are retained registers, see POWER — Power control on page 46
for more information.
The input buffer of a GPIO pin can be disconnected from the pin to enable power savings when the pin is
not used as an input, see GPIO port and the GPIO pin details on page 293. Inputs must be connected to
get a valid input value in the IN register, and for the sense mechanism to get access to the pin.
Other peripherals in the system can connect to GPIO pins and override their output value and
configuration, or read their analog or digital input value. See GPIO port and the GPIO pin details on page
293.
Selected pins also support analog input signals, see ANAIN in GPIO port and the GPIO pin details on page
293. The assignment of the analog pins can be found in Pin assignments on page 851.
The drive strength is configured using the DRIVE field of register PIN_CNF[n] (n=0..31) (Retained) on page
302. Some pins may not support every drive configuration, see Pin assignments on page 851 for more
information.
The following delays should be taken into considerations:
• There is a delay of 2 CPU clock cycles from the GPIO pad to the IN register.
• The GPIO pad must be low (or high depending on the SENSE polarity) for 3 CPU clock cycles after
DETECT has gone high to generate a new DETECT signal.
Note: When a pin is configured as digital input, care has been taken to minimize increased current
consumption when the input voltage is between VIL and VIH. However, it is a good practice to
ensure that the external circuitry does not drive that pin to levels between VIL and VIH for a long
period of time.
Note: Refer to Assigning pins between cores, peripherals, or subsystems on page 294 for pin
assignment and corresponding effect of read and write operations of GPIO registers
When the correct level is detected on any such configured pin, the sense mechanism will set the DETECT
signal high. Each pin has a separate DETECT signal. Default behavior, defined by the DETECTMODE register,
is that the DETECT signals from all pins in the GPIO port are combined into one common DETECT signal
that is routed throughout the system, which then can be utilized by other peripherals. This mechanism is
functional in both System ON and System OFF modes.
DETECTMODE and DETECTMODE_SEC are provided to handle secure and non-secure pins.
DETECTMODE_SEC register is available to control the behavior associated to pin marked as secure, while
the DETECTMODE register is restricted to pin marked as non-secure. Please refer to GPIO security on page
297 for more details.
Make sure that a pin is in a level that cannot trigger the sense mechanism before enabling it. The DETECT
signal will go high immediately if the SENSE condition configured in the PIN_CNF registers is met when the
sense mechanism is enabled. This will trigger a PORT event if the DETECT signal was low before enabling
the sense mechanism.
The DETECT signal is also used by power and clock management system to exit from System OFF mode,
and by GPIOTE to generate the PORT event. In addition GPIOTE_SEC is used for PORT event related to
secure pins). See POWER — Power control on page 46 and GPIOTE — GPIO tasks and events on page
304 for more information about how the DETECT signal is used.
When a pin's PINx.DETECT signal goes high, a flag will be set in the LATCH register. For example, when
the PIN0.DETECT signal goes high, bit 0 in the LATCH register will be set to '1'. If the CPU performs a clear
operation on a bit in the LATCH register when the associated PINx.DETECT signal is high, the bit in the
LATCH register will not be cleared. The LATCH register will only be cleared if the CPU explicitly clears it by
writing a '1' to the bit that shall be cleared, i.e. the LATCH register will not be affected by a PINx.DETECT
signal being set low.
The LDETECT signal will be set high when one or more bits in the LATCH register are '1'. The LDETECT signal
will be set low when all bits in the LATCH register are successfully cleared to '0'.
If one or more bits in the LATCH register are '1' after the CPU has performed a clear operation on the
LATCH registers, a rising edge will be generated on the LDETECT signal. This is illustrated in DETECT signal
behavior on page 297.
Note: The CPU can read the LATCH register at any time to check if a SENSE condition has been met
on one or more of the the GPIO pins, even if that condition is no longer met at the time the CPU
queries the LATCH register. This mechanism will work even if the LDETECT signal is not used as the
DETECT signal.
The LDETECT signal is by default not connected to the GPIO port's DETECT signal, but via the DETECTMODE
register it is possible to change from default behavior to DETECT signal being derived directly from the
LDETECT signal instead. See GPIO port and the GPIO pin details on page 293. DETECT signal behavior on
page 297 illustrates the DETECT signal behavior for these two alternatives.
PIN31.DETECT
PIN1.DETECT
PIN0.DETECT
DETECT
(Default mode)
LATCH.31
LATCH.1
LATCH.0
DETECT
(LDETECT mode)
CPU 1 2 3 4
LATCH = (1<<0)
LATCH = (1<<1)
LATCH = (1<<1)
Note: For more information on pin assignment and the corresponding effect of read and write
operations of GPIO registers, see Assigning pins between cores, peripherals, or subsystems on page
294.
A non-secure peripheral access will only be able to configure and control pins defined as non-secure in the
system protection unit (SPU) GPIOPORT.PERM[] register(s).
A non-secure access to a register or a bitfield controlling a pin marked as secure in GPIO.PERM[] register(s)
will be ignored. Write access will have no effect and read access will return a zero value.
No exception is triggered when a non-secure access targets a register or bitfield controlling a secure pin.
For example, if the bit i is set in the SPU.GPIO.PERM[0] register (declaring Pin P0.i as secure), then
• non-secure write accesses to OUT, OUTSET, OUTCLR, DIR, DIRSET, DIRCLR and LATCH registers will not
be able to write to bit i of those registers
• non-secure write accesses to registers PIN[i].OUT and PIN_CNF[i] will be ignored
• non-secure read accesses to registers OUT, OUTSET, OUTCLR, IN, DIR, DIRSET, DIRCLR and LATCH will
always read a '0' for the bit at position i
• non-secure read accesses to registers PIN[i].OUT, PIN[i].OUT and PIN_CNF[i] will always return 0
The GPIO.DETECTMODE and GPIO.DETECTMODE_SEC registers are handled differently than the other
registers mentioned before. When accessed by a secure access, the DETECTMODE_SEC register control the
source for the DETECT_SEC signal for the pins marked as secure. When accessed by a non-secure access,
the DETECTMODE_SEC is read as zero and write accesses are ignored. The GPIO.DETECTMODE register
controls the source for the DETECT_NSEC signal for the pins defined as non-secure.
The DETECT_NSEC signal is routed to the GPIOTE peripheral, allowing generation of events and interrupts
from pins marked as non-secure. The DETECT_SEC signal is routed to the GPIOTESEC peripheral, allowing
generation of events and interrupts from pins marked as secure. Principle of direct pin access on
page 298 illustrates how the DETECT_NSEC and DETECT_SEC signals are generated from the GPIO
PIN[].DETECT signals.
SPU.GPIOPORT[].PERM register
31 n 0
31 n 0 LATCH
PIN[0].DETECT
PIN[n].DETECT
PIN[31].DETECT
GPIO.DETECTMODE GPIO.DETECTMODE_SEC
1 0 0 1
DETECT_NSEC DETECT_SEC
to GPIOTE to GPIOTESEC
DETECT
7.13.5 Registers
Instances
Configuration
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Pin i
Low 0 Pin driver is low
High 1 Pin driver is high
7.13.5.2 OUTSET
Address offset: 0x008
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Pin i
W1S
Low 0 Read: pin driver is low
High 1 Read: pin driver is high
Set 1 Write: writing a '1' sets the pin high; writing a '0' has no effect
7.13.5.3 OUTCLR
Address offset: 0x00C
Clear individual bits in GPIO port
Read: reads value of OUT register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Pin i
W1C
Low 0 Read: pin driver is low
High 1 Read: pin driver is high
Clear 1 Write: writing a '1' sets the pin low; writing a '0' has no effect
7.13.5.4 IN
Address offset: 0x010
Read GPIO port
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f R PIN[i] (i=0..31) Pin i
Low 0 Pin input is low
High 1 Pin input is high
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Pin i
Input 0 Pin set as input
Output 1 Pin set as output
7.13.5.6 DIRSET
Address offset: 0x018
DIR set register
Read: reads value of DIR register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Set as output pin i
W1S
Input 0 Read: pin set as input
Output 1 Read: pin set as output
Set 1 Write: writing a '1' sets pin to output; writing a '0' has no effect
7.13.5.7 DIRCLR
Address offset: 0x01C
DIR clear register
Read: reads value of DIR register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Set as input pin i
W1C
Input 0 Read: pin set as input
Output 1 Read: pin set as output
Clear 1 Write: writing a '1' sets pin to input; writing a '0' has no effect
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Status on whether PIN[i] has met criteria set in PIN_CNF[i].SENSE register.
Write '1' to clear.
NotLatched 0 Criteria has not been met
Latched 1 Criteria has been met
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DETECTMODE Select between default DETECT signal behavior and LDETECT mode
Default 0 DETECT directly connected to PIN DETECT signals
LDETECT 1 Use the latched LDETECT behavior
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DETECTMODE Select between default DETECT signal behavior and LDETECT mode
Default 0 DETECT directly connected to PIN DETECT signals
LDETECT 1 Use the latched LDETECT behavior
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F F F E E D D D D C C B A
Reset 0x00000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW DIR Pin direction. Same physical register as DIR register
Input 0 Configure pin as an input pin
Output 1 Configure pin as an output pin
B RW INPUT Connect or disconnect input buffer
Connect 0 Connect input buffer
Disconnect 1 Disconnect input buffer
C RW PULL Pull configuration
Disabled 0 No pull
Pulldown 1 Pull down on pin
Pullup 3 Pull up on pin
D RW DRIVE Drive configuration
tHRF,10pF,QSPI96 Rise/Fall time, high drive mode, 20 to 80%, 10 pF load, VDD 1.6 V to 3.6 V, 8.5 ns
1
QSPI running at 96 MHz
tHRF,15pF Rise/Fall time, high drive mode, 10 to 90%, 15 pF load1 4 ns
2
Excludes the 20 mA dedicated high-speed open-drain pins used for TWI. VREGH specifications must
be followed if operating in high voltage mode.
1
Rise and fall times based on simulations
The secure instance of the GPIOTE peripheral is able to operate on all GPIO pins configured in
GPIOTE.CONFIG[n].PSEL.
The non-secure instance of the GPIOTE peripheral is able to operate only on non-secure GPIO pins. The
field GPIOTE.CONFIG[n].PSEL can only select a non-secure pin.
The tasks SET[n], CLR[n], and OUT[n] can write to individual pins, and events IN[n] can be generated from
input changes of individual pins.
The SET task will set the pin selected in GPIOTE.CONFIG[n].PSEL to high. The CLR task will set the pin low.
The effect of the OUT task on the pin is configurable in CONFIG[n].POLARITY. It can set the pin high, set it
low, or toggle it.
Tasks and events are configured using the CONFIG[n] registers. One CONFIG[n] register is associated with a
set of SET[n], CLR[n], and OUT[n] tasks and IN[n] events.
As long as a SET[n], CLR[n], and OUT[n] task or an IN[n] event is configured to control pin n, the pin's
output value will only be updated by the GPIOTE module. The pin's output value, as specified in the GPIO,
will be ignored as long as the pin is controlled by GPIOTE. Attempting to write to the pin as a normal GPIO
pin will have no effect. When the GPIOTE is disconnected from a pin, the associated pin gets the output
and configuration values specified in the GPIO module, see MODE field in CONFIG[n] register.
When conflicting tasks are triggered simultaneously (i.e. during the same clock cycle) in one channel, the
priority of the tasks is as described in the following table.
Priority Task
1 OUT
2 CLR
3 SET
When setting the CONFIG[n] registers, MODE=Disabled does not have the same effect as MODE=Task and
POLARITY=None. In the latter case, a CLR or SET task occurring at the exact same time as OUT will end up
with no change on the pin, based on the priorities described in the table above.
When a GPIOTE channel is configured to operate on a pin as a task, the initial value of that pin is
configured in the OUTINIT field of CONFIG[n].
To prevent spurious interrupts from the PORT event while configuring the sources, the following steps
must be performed:
1. Disable interrupts on the PORT event (through INTENCLR.PORT).
2. Configure the sources (PIN_CNF[n].SENSE).
3. Clear any potential event that could have occurred during configuration (write 0 to EVENTS_PORT).
4. Enable interrupts (through INTENSET.PORT).
Note: A pin can only be assigned to one GPIOTE channel at a time. Failing to do so may result in
unpredictable behavior.
7.14.5 Registers
Instances
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_OUT Task for writing to pin specified in CONFIG[n].PSEL. Action on pin is
configured in CONFIG[n].POLARITY.
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SET Task for writing to pin specified in CONFIG[n].PSEL. Action on pin is to set it
high.
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CLR Task for writing to pin specified in CONFIG[n].PSEL. Action on pin is to set it
low.
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task OUT[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SET[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CLR[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_IN Event generated from pin specified in CONFIG[n].PSEL
NotGenerated 0 Event not generated
Generated 1 Event generated
7.14.5.8 EVENTS_PORT
Address offset: 0x17C
Event generated from multiple input GPIO pins with SENSE mechanism enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_PORT Event generated from multiple input GPIO pins with SENSE mechanism
enabled
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event IN[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.14.5.10 PUBLISH_PORT
Address offset: 0x1FC
Publish configuration for event PORT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event PORT will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.14.5.11 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW IN[i] (i=0..7) Write '1' to enable interrupt for event IN[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW PORT Write '1' to enable interrupt for event PORT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.14.5.12 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW IN[i] (i=0..7) Write '1' to disable interrupt for event IN[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW PORT Write '1' to disable interrupt for event PORT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.14.5.13 LATENCY
Address offset: 0x504
Latency selection for Event mode (MODE=Event) with rising or falling edge detection on the pin.
POLARITY=Toggle can only be used with LATENCY=LowLatency.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW LATENCY Latency setting
LowPower 0 Low power setting
LowLatency 1 Low latency setting
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D D C B B B B B A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MODE Mode
Disabled 0 Disabled. Pin specified by PSEL will not be acquired by the GPIOTE module.
Event 1 Event mode
The pin specified by PSEL will be configured as an input and the IN[n] event
will be generated if operation specified in POLARITY occurs on the pin.
Task 3 Task mode
CONFIG.CLKCONFIG MUX
BYPASS
CONFIG.MODE
SDOUT
LRCK
SDIN
SCK
CONFIG.ALIGN
CONFIG.FORMAT Serial transceiever
TXD.PTR
RXD.PTR EasyDMA
RXTXD.MAXCNT
RAM
7.15.1 Mode
The I2S protocol specification defines two modes of operation, Master and Slave.
The I2S mode decides which of the two sides (master or slave) shall provide the clock signals LRCK and
SCK, and these signals are always supplied by the master to the slave.
TX data is written to the SDOUT pin on the falling edge of SCK, and RX data is read from the SDIN pin on
the rising edge of SCK. The most significant bit (MSB) is always transmitted first.
Note: When starting a transmission in master mode, the first frame is filled with zeros.
TX and RX are available in both Master and Slave modes and can be enabled/disabled independently in
the CONFIG.TXEN on page 330 and CONFIG.RXEN on page 330.
Transmission and/or reception is started by triggering the START task. With transmission enabled in
CONFIG.TXEN), the TXPTRUPD event will be generated for every number of transmitted data words given
by RXTXD.MAXCNT on page 334. Each data word contains one or more samples. The TXPTRUPD event
is generated just before MAXCNT number of data words have been transmitted. Similarly, with reception
enabled in CONFIG.RXEN, the RXPTRUPD event will be generated for every received data word given by
RXTXD.MAXCNT on page 334. The RXPTRUPD event is generated just after MAXCNT number of data
words have been received.
The FRAMESTART event is generated synchronously to the active LRCK edge at the beginning of a frame
after transmitting RXTXD.MAXCNT data words. The initial FRAMESTART event is generated at the first
active edge of LRCK after the START task has been triggered. The FRAMESTART event is only defined for
transmitting full left and right sample pairs. If MAXCNT is configured so that the frame ends between
the left and right sample pairs, the FRAMESTART event is not generated. This occurs for the following
combinations of SWIDTH and MAXCNT:
Table 33: Restrictions on combinations of SWIDTH and MAXCNT for correct FRAMESTART
RXTXD.MAXCNT RXTXD.MAXCNT
A A A A C C C C E
SDIN
B B B B D D D D F
SCK
LRCK
FRAMESTART
FRAMESTART
FRAMESTART
RXPTRUPD
RXPTRUPD
RXPTRUPD
TXPTRUPD
TXPTRUPD
TXPTRUPD
CPU
RXD.PTR = D
TXD.PTR = E
RXD.PTR = F
TXD.PTR = G
RXD.PTR = H
TXD.PTR = C
TXD.PTR = A
RXD.PTR = B
START
In I2S format, each frame contains one left and/or right sample pair. The left sample is transferred during
the low half period of LRCK, followed by the right sample being transferred during the high half period of
LRCK.
In Aligned format, each frame contains one left and/or right sample pair. The left sample is transferred
during the high half period of LRCK, followed by the right sample being transferred during the low half
period of LRCK.
For mono, the frame will contain only zeros for the unused half period of LRCK.
Consequently, the LRCK frequency is equivalent to the audio sample rate.
When operating in Master mode, the LRCK is generated from the MCK, and the frequency of LRCK is then
given as:
LRCK always toggles around the falling edge of the serial clock SCK.
The falling edge of the SCK falls on the toggling edge of LRCK.
When operating in Slave mode, SCK is provided by the external I2S master.
The parameter fMCK is the requested MCK clock frequency in Hz, and fsource is the frequency of the
selected clock source in Hz. Because of rounding errors, an accurate MCK clock may not be achievable. The
equation does not take into account the maximum register value of CONFIG.MCKFREQ on page 331.
The actual MCK frequency can be calculated using the equation below.
The clock error can be calculated using the equation below. The error e is the percentage difference from
the requested fMCK frequency.
The master clock generator does not add any jitter to the clock source chosen.
The master clock generator is enabled/disabled using CONFIG.MCKEN on page 330, and the generator is
started or stopped by the START or STOP tasks respectively.
The MCK frequency can be adjusted on-the-fly:
• For PCLK32M, by using MCKFREQ
• For ACLK, by adjusting the audio clock source, see CLOCK — Clock control on page 72.
In Master mode, the LRCK and the SCK frequencies are closely related as both are derived from MCK and
set indirectly through CONFIG.RATIO on page 332 and CONFIG.SWIDTH on page 332.
When configuring these registers, the user is responsible for fulfilling the following requirements:
1. The SCK frequency can never exceed the MCK frequency.
2. The MCK/LRCK ratio shall be a multiple of 2 * CONFIG.SWIDTH.
The MCK signal can be routed to an output pin (specified in PSEL.MCK) to supply external I2S devices that
require the MCK to be supplied from the outside.
When operating in Slave mode, the I2S module does not use the MCK and the MCK generator does not
need to be enabled.
MCK
MCK
RATIO =
LRCK
LRCK
SWIDTH
SCK
Source Requested RATIO Requested MCKFREQ MCK [Hz] LRCK [Hz] LRCK
frequency LRCK [Hz] MCK [Hz] error
[Hz] [%]
32000000 16000 32 512000 68173824 507936 15873 -0.8
32000000 16000 64 1024000 135274496 1032258 16129 0.8
32000000 16000 256 4096000 516685824 4000000 15625 -2.3
32000000 32000 32 1024000 135274496 1032258 32258 0.8
32000000 32000 64 2048000 266350592 2000000 31250 -2.3
32000000 32000 256 8192000 974741504 8000000 31250 -2.3
32000000 44100 32 1411200 185319424 1391304 43478 -1.4
32000000 44100 64 2822400 362815488 2909090 45455 3.1
32000000 48000 32 1536000 201326592 1523809 47619 -0.8
32000000 48000 64 3072000 393428992 3200000 50000 4.2
32000000 96000 32 3072000 393428992 3200000 100000 4.2
32000000 96000 64 6144000 752402432 6400000 100000 4.2
Source Requested RATIO Requested MCKFREQ MCK [Hz] LRCK [Hz] LRCK
frequency LRCK [Hz] MCK [Hz] error
[Hz] [%]
11289600 44100 32 1411200 505286656 1411200 44100 0
11289600 44100 64 2822400 954433536 2822400 44100 0
12288000 16000 32 510000 175304704 512000 16000 0
12288000 16000 64 1024000 343597056 1024000 16000 0
12288000 32000 32 1024000 343597056 1024000 32000 0
12288000 32000 64 2048000 660762624 2048000 32000 0
12288000 48000 32 1536000 505286656 1536000 48000 0
12288000 48000 64 3072000 954433536 3072000 48000 0
12288000 96000 32 3072000 954433536 3072000 96000 0
half-frame
LRCK left
SCK
SDATA
16-bit sample and
16 clock pulses
Figure 74: Aligned format, with CONFIG.SWIDTH configured to 16 bit samples in a 16 bit half-frame
half-frame
LRCK left
SCK
SDATA
24 clock cycles
16-bit sample
Figure 75: Aligned format, with CONFIG.SWIDTH configured to 16-bit samples in a 24-bit half-frame
The register CONFIG.FORMAT on page 333 is used to choose whether a word shall be aligned on the
LRCK edge, or be delayed one bit period after this edge:
• When using Aligned format, the first bit in a half-frame gets sampled on the first rising edge of SCK
following a LRCK edge, as illustrated in Aligned format. Identical sample width and half-frame width.
Left sample on high level of LRCK on page 317. The left sample is transferred during the high half
period of LRCK.
• When using I2S format, the first bit in a half-frame (containing one left or right sample) gets sampled
on the second rising edge of the SCK after a LRCK edge, as illustrated in I2S format. Identical sample
width and half-frame width. Left sample on low level of LRCK on page 317. The left sample is
transferred during the low half period of LRCK.
frame
LRCK left right left
SCK
SDATA
Figure 76: Aligned format. Identical sample width and half-frame width. Left sample on high level of LRCK
frame
LRCK left right left
SCK
SDIN or SDOUT
Figure 77: I2S format. Identical sample width and half-frame width. Left sample on low level of LRCK
If the half-frame width differs from the sample width, the sample value can be either right or left-aligned
inside a half-frame, as specified in CONFIG.ALIGN on page 332
• When using left-alignment, each half-frame starts with the MSB of the sample value, as illustrated by
CONFIG.ALIGN set to left justified on page 317.
• When using right-alignment, each half-frame ends with the LSB of the sample value. This is illustrated
in CONFIG.ALIGN set to right justified on page 318.
LRCK left right
SCK
SDATA
7.15.7 EasyDMA
The I2S module implements EasyDMA for accessing internal Data RAM without CPU intervention.
The source and destination pointers for the TX and RX data are configured in TXD.PTR on page 334 and
RXD.PTR on page 334. The memory pointed to by these pointers will only be read or written when TX or
RX are enabled in CONFIG.TXEN on page 330, and CONFIG.RXEN on page 330.
The addresses written to the pointer registers TXD.PTR on page 334 and RXD.PTR on page 334 are
double-buffered in hardware. These double buffers are updated for every number of transmitted data
words given by RXTXD.MAXCNT on page 334 read from/written to memory. The events TXPTRUPD and
RXPTRUPD are generated whenever the TXD.PTR and RXD.PTR are transferred to these double buffers.
If TXD.PTR on page 334 is not pointing to the Data RAM region when transmission is enabled, or
RXD.PTR on page 334 is not pointing to the Data RAM region when reception is enabled, an EasyDMA
transfer may result in a HardFault and/or memory corruption. See Memory on page 21 for more
information about the different memory regions.
Due to the nature of I2S, where the number of transmitted samples always equals the number of received
samples (at least when both TX and RX are enabled), one common register RXTXD.MAXCNT on page
334 is used for specifying the sizes of these two memory buffers. The size of the buffers is specified in
a number of 32-bit words. Such a 32-bit memory word can either contain one 32-bit sample, one right-
aligned 24-bit sample sign extended to 32-bit, two 16-bit samples or four 8-bit samples.
In Stereo mode (CONFIG.CHANNELS on page 333=Stereo), the samples are stored as left and right
sample pairs in memory. Memory mapping for 8-bit stereo. CONFIG.SWIDTH = 8Bit, CONFIG.CHANNELS =
Stereo. on page 319, Memory mapping for 16-bit stereo. CONFIG.SWIDTH = 16Bit, CONFIG.CHANNELS
= Stereo. on page 319 and Memory mapping for 24-bit stereo. CONFIG.SWIDTH = 24Bit,
CONFIG.CHANNELS = Stereo. on page 320 show how the samples are mapped to memory in this mode.
The mapping is valid for both RX and TX.
In Mono mode (CONFIG.CHANNELS on page 333=Left or Right), RX sample from only one channel in
the frame is stored in memory, the other channel sample is ignored. Memory mapping for 8-bit mono.
CONFIG.SWIDTH = 8Bit, CONFIG.CHANNELS = Left. on page 319, Memory mapping for 16-bit mono, left
channel only. CONFIG.SWIDTH = 16Bit, CONFIG.CHANNELS = Left. on page 320 and Memory mapping
for 24-bit mono, left channel only. CONFIG.SWIDTH = 24Bit, CONFIG.CHANNELS = Left. on page 320
show how RX samples are mapped to memory in this mode. For TX, the same outgoing sample read from
memory is transmitted on both left and right in a frame, resulting in a mono output stream.
31 24 23 16 15 8 7 0
Figure 80: Memory mapping for 8-bit stereo. CONFIG.SWIDTH = 8Bit, CONFIG.CHANNELS = Stereo.
31 24 23 16 15 8 7 0
x.PTR + n - 4 Left sample n-1 Left sample n-2 Left sample n-3 Left sample n-4
Figure 81: Memory mapping for 8-bit mono. CONFIG.SWIDTH = 8Bit, CONFIG.CHANNELS = Left.
31 16 15 0
Figure 82: Memory mapping for 16-bit stereo. CONFIG.SWIDTH = 16Bit, CONFIG.CHANNELS = Stereo.
31 16 15 0
31 23 0
Figure 84: Memory mapping for 24-bit stereo. CONFIG.SWIDTH = 24Bit, CONFIG.CHANNELS = Stereo.
31 23 0
31 0
Figure 86: Memory mapping for 32-bit stereo. CONFIG.SWIDTH = 32Bit, CONFIG.CHANNELS = Stereo.
31 0
// Enable reception
NRF_I2S->CONFIG.RXEN = (I2S_CONFIG_RXEN_RXEN_Enabled <<
I2S_CONFIG_RXEN_RXEN_Pos);
// Enable transmission
NRF_I2S->CONFIG.TXEN = (I2S_CONFIG_TXEN_TXEN_Enabled <<
I2S_CONFIG_TXEN_TXEN_Pos);
// Enable MCK generator
NRF_I2S->CONFIG.MCKEN = (I2S_CONFIG_MCKEN_MCKEN_Enabled <<
I2S_CONFIG_MCKEN_MCKEN_Pos);
// MCKFREQ = 4 MHz
NRF_I2S->CONFIG.MCKFREQ = I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV8 <<
I2S_CONFIG_MCKFREQ_MCKFREQ_Pos;
// Ratio = 256
NRF_I2S->CONFIG.RATIO = I2S_CONFIG_RATIO_RATIO_256X <<
I2S_CONFIG_RATIO_RATIO_Pos;
// MCKFREQ = 4 MHz and Ratio = 256 gives sample rate = 15.625 ks/s
// Sample width = 16 bit
NRF_I2S->CONFIG.SWIDTH = I2S_CONFIG_SWIDTH_SWIDTH_16Bit <<
I2S_CONFIG_SWIDTH_SWIDTH_Pos;
// Alignment = Left
NRF_I2S->CONFIG.ALIGN = I2S_CONFIG_ALIGN_ALIGN_Left <<
I2S_CONFIG_ALIGN_ALIGN_Pos;
// Format = I2S
NRF_I2S->CONFIG.FORMAT = I2S_CONFIG_FORMAT_FORMAT_I2S <<
I2S_CONFIG_FORMAT_FORMAT_Pos;
// Use stereo
NRF_I2S->CONFIG.CHANNELS = I2S_CONFIG_CHANNELS_CHANNELS_Stereo <<
I2S_CONFIG_CHANNELS_CHANNELS_Pos;
3. Configure TX and RX data pointers using the TXD, RXD and RXTXD registers
NRF_I2S->TXD.PTR = my_tx_buf;
NRF_I2S->RXD.PTR = my_rx_buf;
NRF_I2S->TXD.MAXCNT = MY_BUF_SIZE;
NRF_I2S->ENABLE = 1;
NRF_I2S->TASKS_START = 1;
6. Handle received and transmitted data when receiving the TXPTRUPD and RXPTRUPD events
if(NRF_I2S->EVENTS_TXPTRUPD != 0)
{
NRF_I2S->TXD.PTR = my_next_tx_buf;
NRF_I2S->EVENTS_TXPTRUPD = 0;
}
if(NRF_I2S->EVENTS_RXPTRUPD != 0)
{
NRF_I2S->RXD.PTR = my_next_rx_buf;
NRF_I2S->EVENTS_RXPTRUPD = 0;
}
7.15.10 Registers
Instances
I2S0 : S 0x50028000
APPLICATION US S SA No Inter-IC sound interface
I2S0 : NS 0x40028000
Configuration
Register overview
7.15.10.1 TASKS_START
Address offset: 0x000
Starts continuous I2S transfer. Also starts MCK generator when this is enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Starts continuous I2S transfer. Also starts MCK generator when this is
enabled
Trigger 1 Trigger task
7.15.10.2 TASKS_STOP
Address offset: 0x004
Stops I2S transfer and MCK generator. Triggering this task will cause the event STOPPED to be generated.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stops I2S transfer and MCK generator. Triggering this task will cause the
event STOPPED to be generated.
Trigger 1 Trigger task
7.15.10.3 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.15.10.4 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.15.10.5 EVENTS_RXPTRUPD
Address offset: 0x104
The RXD.PTR register has been copied to internal double-buffers. When the I2S module is started and RX is
enabled, this event will be generated for every RXTXD.MAXCNT words received on the SDIN pin.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXPTRUPD The RXD.PTR register has been copied to internal double-buffers. When the
I2S module is started and RX is enabled, this event will be generated for
every RXTXD.MAXCNT words received on the SDIN pin.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.15.10.6 EVENTS_STOPPED
Address offset: 0x108
I2S transfer stopped.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED I2S transfer stopped.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.15.10.7 EVENTS_TXPTRUPD
Address offset: 0x114
The TDX.PTR register has been copied to internal double-buffers. When the I2S module is started and TX is
enabled, this event will be generated for every RXTXD.MAXCNT words that are sent on the SDOUT pin.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXPTRUPD The TDX.PTR register has been copied to internal double-buffers. When the
I2S module is started and TX is enabled, this event will be generated for
every RXTXD.MAXCNT words that are sent on the SDOUT pin.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.15.10.8 EVENTS_FRAMESTART
Address offset: 0x11C
Frame start event, generated on the active edge of LRCK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_FRAMESTART Frame start event, generated on the active edge of LRCK
NotGenerated 0 Event not generated
Generated 1 Event generated
7.15.10.9 PUBLISH_RXPTRUPD
Address offset: 0x184
Publish configuration for event RXPTRUPD
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXPTRUPD will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.15.10.10 PUBLISH_STOPPED
Address offset: 0x188
Publish configuration for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.15.10.11 PUBLISH_TXPTRUPD
Address offset: 0x194
Publish configuration for event TXPTRUPD
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXPTRUPD will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.15.10.12 PUBLISH_FRAMESTART
Address offset: 0x19C
Publish configuration for event FRAMESTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event FRAMESTART will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.15.10.13 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H F C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW RXPTRUPD Enable or disable interrupt for event RXPTRUPD
Disabled 0 Disable
Enabled 1 Enable
C RW STOPPED Enable or disable interrupt for event STOPPED
Disabled 0 Disable
Enabled 1 Enable
F RW TXPTRUPD Enable or disable interrupt for event TXPTRUPD
Disabled 0 Disable
Enabled 1 Enable
H RW FRAMESTART Enable or disable interrupt for event FRAMESTART
Disabled 0 Disable
Enabled 1 Enable
7.15.10.14 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H F C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW RXPTRUPD Write '1' to enable interrupt for event RXPTRUPD
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW TXPTRUPD Write '1' to enable interrupt for event TXPTRUPD
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW FRAMESTART Write '1' to enable interrupt for event FRAMESTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H F C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.15.10.15 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H F C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW RXPTRUPD Write '1' to disable interrupt for event RXPTRUPD
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW TXPTRUPD Write '1' to disable interrupt for event TXPTRUPD
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW FRAMESTART Write '1' to disable interrupt for event FRAMESTART
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.15.10.16 ENABLE
Address offset: 0x500
Enable I2S module
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable I2S module
Disabled 0 Disable
Enabled 1 Enable
7.15.10.17 CONFIG.MODE
Address offset: 0x504
I2S mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MODE I2S mode
Master 0 Master mode. SCK and LRCK generated from internal master clcok (MCK)
and output on pins defined by PSEL.xxx.
Slave 1 Slave mode. SCK and LRCK generated by external master and received on
pins defined by PSEL.xxx
7.15.10.18 CONFIG.RXEN
Address offset: 0x508
Reception (RX) enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RXEN Reception (RX) enable
Disabled 0 Reception disabled and now data will be written to the RXD.PTR address.
Enabled 1 Reception enabled.
7.15.10.19 CONFIG.TXEN
Address offset: 0x50C
Transmission (TX) enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW TXEN Transmission (TX) enable
Disabled 0 Transmission disabled and now data will be read from the RXD.TXD address.
Enabled 1 Transmission enabled.
7.15.10.20 CONFIG.MCKEN
Address offset: 0x510
Master clock generator enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW MCKEN Master clock generator enable
Disabled 0 Master clock generator disabled and PSEL.MCK not connected(available as
GPIO).
Enabled 1 Master clock generator running and MCK output on PSEL.MCK.
7.15.10.21 CONFIG.MCKFREQ
Address offset: 0x514
I2S clock generator control
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x20000000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MCKFREQ I2S MCK frequency configuration
NOTE: The 12 least significant bits of the register are ignored and shall be
set to zero.
32MDIV2 0x80000000 32 MHz / 2 = 16.0 MHz
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x20000000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
32MDIV125 0x020C0000 32 MHz / 125 = 0.256 MHz
7.15.10.22 CONFIG.RATIO
Address offset: 0x518
MCK / LRCK ratio
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
ID R/W Field Value ID Value Description
A RW RATIO MCK / LRCK ratio
32X 0 LRCK = MCK / 32
48X 1 LRCK = MCK / 48
64X 2 LRCK = MCK / 64
96X 3 LRCK = MCK / 96
128X 4 LRCK = MCK / 128
192X 5 LRCK = MCK / 192
256X 6 LRCK = MCK / 256
384X 7 LRCK = MCK / 384
512X 8 LRCK = MCK / 512
7.15.10.23 CONFIG.SWIDTH
Address offset: 0x51C
Sample width
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW SWIDTH Sample and half-frame width
8Bit 0 8 bit sample.
16Bit 1 16 bit sample.
24Bit 2 24 bit sample.
32Bit 3 32 bit sample.
8BitIn16 4 8 bit sample in a 16-bit half-frame.
8BitIn32 5 8 bit sample in a 32-bit half-frame.
16BitIn32 6 16 bit sample in a 32-bit half-frame.
24BitIn32 7 24 bit sample in a 32-bit half-frame.
7.15.10.24 CONFIG.ALIGN
Address offset: 0x520
Alignment of sample within a frame
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ALIGN Alignment of sample within a frame
Left 0 Left-aligned.
Right 1 Right-aligned.
7.15.10.25 CONFIG.FORMAT
Address offset: 0x524
Frame format
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FORMAT Frame format
I2S 0 Original I2S format.
Aligned 1 Alternate (left- or right-aligned) format.
7.15.10.26 CONFIG.CHANNELS
Address offset: 0x528
Enable channels
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHANNELS Enable channels
Stereo 0 Stereo.
Left 1 Left only.
Right 2 Right only.
7.15.10.27 CONFIG.CLKCONFIG
Address offset: 0x52C
Clock source selection for the I2S module
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CLKSRC Clock source selection
PCLK32M 0 32MHz peripheral clock
ACLK 1 Audio PLL clock
B RW BYPASS Bypass clock generator. MCK will be equal to source input.
7.15.10.28 RXD.PTR
Address offset: 0x538
Receive buffer RAM start address.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Receive buffer Data RAM start address. When receiving, words containing
samples will be written to this address. This address is a word aligned Data
RAM address.
Note: See the memory chapter for details about which memories
are available for EasyDMA.
7.15.10.29 TXD.PTR
Address offset: 0x540
Transmit buffer RAM start address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Transmit buffer Data RAM start address. When transmitting, words
containing samples will be fetched from this address. This address is a word
aligned Data RAM address.
Note: See the memory chapter for details about which memories
are available for EasyDMA.
7.15.10.30 RXTXD.MAXCNT
Address offset: 0x550
Size of RXD and TXD buffers
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT Size of RXD and TXD buffers in number of 32 bit words
7.15.10.31 PSEL.MCK
Address offset: 0x560
Pin select for MCK signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.15.10.32 PSEL.SCK
Address offset: 0x564
Pin select for SCK signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.15.10.33 PSEL.LRCK
Address offset: 0x568
Pin select for LRCK signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.15.10.34 PSEL.SDIN
Address offset: 0x56C
Pin select for SDIN signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.15.10.35 PSEL.SDOUT
Address offset: 0x570
Pin select for SDOUT signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
tSCK_LRCK
LRCK
SCK
tS_SDIN tH_SDIN
SDIN
tS_SDOUT
tH_SDOUT
SDOUT
MCU subsystem 0
IPC channel M
IPC channel 0
IPC channel 1
IPC channel 2
System-bus Cortex-M
NVIC
IRQ
eventOut[0..N]
IPC0 eventIn[0..N]
MCU subsystem 1
System-bus Cortex-M
NVIC
IRQ
eventOut[0..K]
IPC1 eventIn[0..K]
An instance of the IPC peripheral can have multiple SEND tasks and RECEIVE events. A single SEND task can
be configured to signal an event on one or more IPC channels, and a RECEIVE event can be configured to
listen on one or more IPC channels. The IPC channels that are triggered in a SEND task can be configured
through the SEND_CNF registers, and the IPC channels that trigger a RECEIVE event are configured through
the RECEIVE_CNF registers. The figure below illustrates how the SEND_CNF and RECEIVE_CNF registers
work. Both the SEND task and the RECEIVE event can be connected to all IPC channels.
IPC channel X
IPC channel 0
eventOut0
TASK_SEND[0]
eventOut N
TASK_SEND[N]
eventIn1
EVENTS_RECEIVE[0]
eventIn N
EVENTS_RECEIVE[N]
A SEND task can be viewed as broadcasting events onto one or more IPC channels, and a RECEIVE event
can be seen as subscribing to a subset of IPC channels. It is possible for multiple IPCs to trigger events onto
the same PPI channel at the same time. When two or more events on the same channel occur within tIPC,
the events may be merged into a single event seen from the IPC receiver. One of the events can therefore
be lost. To prevent this, the user must ensure that events on the same IPC channel do not occur within
tIPC of each other. When implementing firmware data structures, such as queues or mailboxes, this can be
done by using one IPC channel for acknowledgements.
An IPC event often does not contain any data itself, it is used to signal other MCUs that something has
occurred. Data can be shared through shared memory, for example in the form of a software implemented
mailbox, or command/event queues. It is up to software to assign a logical functionality to an IPC channel.
For instance, one IPC channel can be used to signal that a command is ready to be executed, and any
processor in the system can subscribe to that particular IPC channel and decode/execute the command.
The time it takes to transfer an IPC event varies depending on the state of the receiving MCU subsystem.
A receiving MCU subsystem in the IDLE state (CPU and all peripherals are sleeping) has a greater latency
than in the RUN state. IPC does not guarantee jitter-free transfer of accurate timing information between
MCU subsystems.
MCU 0 MCU 1
PPI channel 0 PPI channel 0
IPC channel 0
PUBLISH_COMPARE[0] TASKS_CAPTURE[0]
TIMER TIMER
SUBSCRIBE_SEND[0] IPC
IPC PUBLISH_RECEIVE[0]
7.16.2 Registers
Instances
IPC : S 0x5002A000
APPLICATION US S NA No Interprocessor communication
IPC : NS 0x4002A000
IPC NETWORK 0x41012000 HF NS NA No Interprocessor communication
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SEND Trigger events on IPC channel enabled in SEND_CNF[n]
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SEND[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RECEIVE Event received on one or more of the enabled IPC channels in
RECEIVE_CNF[n]
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RECEIVE[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.16.2.5 INTEN
Address offset: 0x300
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW RECEIVE[i] (i=0..15) Enable or disable interrupt for event RECEIVE[i]
Disabled 0 Disable
Enabled 1 Enable
7.16.2.6 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW RECEIVE[i] (i=0..15) Write '1' to enable interrupt for event RECEIVE[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.16.2.7 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW RECEIVE[i] (i=0..15) Write '1' to disable interrupt for event RECEIVE[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.16.2.8 INTPEND
Address offset: 0x30C
Pending interrupts
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P R RECEIVE[i] (i=0..15) Read pending status of interrupt for event RECEIVE[i]
NotPending 0 Read: Not pending
Pending 1 Read: Pending
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW CHEN[i] (i=0..15) Enable broadcasting on IPC channel i
Disable 0 Disable broadcast
Enable 1 Enable broadcast
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-P RW CHEN[i] (i=0..15) Enable subscription to IPC channel i
Disable 0 Disable events
Enable 1 Enable events
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW GPMEM General purpose memory
9
When receiving core is in RUN state.
10
When receiving core is in IDLE state.
Part-specific
User defined Key headers Key values
instantiation
Permission legend:
Write-once per halfword limitation, always readable
One-time programmable (OTP) memory is typically used for holding values that are written once, and then
never to be changed again throughout the product lifetime. The OTP region of UICR is emulated by placing
a write-once per halfword limitation on registers defined here.
The key storage region contains multiple key slots, where each slot consists of a key header and an
associated key value. The key value is limited to 128 bits. Any key size greater than 128 bits must be
divided and distributed over multiple key slot instances.
Key headers are allocated an address range of 0x400 in the UICR memory map, allowing a total of 128 keys
to be addressable inside the key storage region.
Note: The use of the key storage region in UICR should be limited to keys with a certain life span,
and not per-session derived keys where the CPU is involved in the key exchange.
Any restricted access requires an explicit key slot selection through the KMU register interface. Any illegal
access to restricted key slot registers will be blocked and word 0xDEADDEAD will be returned on the AHB.
The OTP region has individual access control behavior, while access control to the key storage region is
configured on a per key slot basis. The KMU FSM operates on only one key slot instance at a time, and
the permissions and the usage restriction for a key value associated with a key slot can be configured
individually.
Note: Even if the KMU can be configured as non-secure, all non-secure transactions will be
blocked.
7.17.4 Usage
This section describes the specific KMU and UICR behavior in more detail, to help the reader get a better
overview of KMU's features and the intended usage.
7.17.4.1 OTP
The OTP region of the UICR contains a user-defined static configuration of the device. The KMU emulates
the OTP functionality by placing a write-once per halfword limitation of registers defined in this region, i.e.
only halfwords containing all '1's can be written.
Any access, both read and write, to the OTP region of UICR must be a full 32-bit word aligned to a 32-bit
address.
An OTP write transaction must consist of a full 32-bit word. Both halfwords can either be written
simultaneously or one at a time. The KMU FSM will block any write to a halfword in the OTP region, if
the initial value of this halfword is not 0xFFFF. When writing halfwords one at a time, the non-active
halfword must be masked as 0xFFFF, otherwise the request will be blocked. For example, writing
0x1234XXXX to an OTP destination address which already contains the value 0xFFFFAABB, must be
configured as 0x1234FFFF. The OTP destination address will contain the value 0x1234AABB after both
write transactions have been processed.
The KMU will also only allow secure AHB write transactions into the OTP region of the UICR. Any AHB
write transaction to this region that does not satisfy the above requirements will be ignored, and the
STATUS.BLOCKED register will be set to '1'.
SELECTED status is set when a key slot is selected, and a read or write acccess to that keyslot occurs.
BLOCKED status is set when any illegal access to key slot registers is detected.
When the use of the particular key slot is stopped, the key slot selection in SELECTKEYSLOT must be set
back to 0.
By default, all KMU key slots will consist of a 128-bit key value of '1's, where the key headers have no
secure destination address, or any usage and read restrictions.
Note: A key value distributed over multiple key slots should use the same key slot configuration in
its key headers, but the secure destination address for each key slot instance must be incremented
by 4 words (128 bits) for each key slot instance spanned.
Note: Write to flash must be enabled in NVMC->CONFIG prior to writing keys to flash, and
subsequently disabled once writing is complete.
Steps 1 through 5 above will be blocked if any of the following violations are detected:
• No key slot selected
• Non-empty key slot selected
• NVM destination address not empty
• AHB write to KEYSLOT.KEY[ID-1].VALUE[0-3] registers not belonging to selected key slot
2. If STATE and READ permission requirements are fulfilled as defined in KEYSLOT.CONFIG[ID-1].PERM, the
key value can be read from region KEYSLOT.KEY[ID-1].VALUE[0-3] for selected key slot.
3. Select key slot 0.
Step 2 will be blocked and word 0xDEADDEAD will be returned on AHB if any of the following violations
are detected:
• No key slot selected
• Key slot not configured as readable
• Key slot is revoked
• AHB read to KEYSLOT.KEY[ID-1].VALUE[0-3] registers not belonging to selected key slot
Note: If a key value is distributed over multiple key slots due to its key size, exceeding the
maximum 128-bit key value limitation, then each distributed key slot must be pushed individually in
order to transfer the entire key value over secure APB.
Step 3 will trigger other events than EVENTS_KEYSLOT_PUSHED if the following violations are detected:
• EVENTS_KEYSLOT_ERROR:
• If no key slot is selected
• If a key slot has no destination address configured
• If when pushing a key slot, flash or peripheral returns an error
• If pushing a key slot when push permissions are disabled
• If attempting to push a key slot with default permissions
• EVENTS_KEYSLOT_REVOKED if a key slot is marked as revoked in its key header configuration
3. Previously pushed key values stored in a peripheral write-only key register are not affected by key
revocation. If secure code wants to enforce that a revoked key is no longer usable by a peripheral for
cryptographic operations, the secure code should disable or reset the peripheral in question.
Note: If a key slot is revoked, the KMU will automatically zeroize the associated VALUE registers.
7.17.5 Registers
Instances
KMU : S 0x50039000
APPLICATION HF S NA Yes Key management unit
KMU : NS 0x40039000
Register overview
7.17.5.1 TASKS_PUSH_KEYSLOT
Address offset: 0x0000
Push a key slot over secure APB
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_PUSH_KEYSLOT Push a key slot over secure APB
Trigger 1 Trigger task
7.17.5.2 EVENTS_KEYSLOT_PUSHED
Address offset: 0x100
Key slot successfully pushed over secure APB
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_KEYSLOT_PUSHED Key slot successfully pushed over secure APB
NotGenerated 0 Event not generated
Generated 1 Event generated
7.17.5.3 EVENTS_KEYSLOT_REVOKED
Address offset: 0x104
Key slot has been revoked and cannot be tasked for selection
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_KEYSLOT_REVOKED Key slot has been revoked and cannot be tasked for selection
NotGenerated 0 Event not generated
Generated 1 Event generated
7.17.5.4 EVENTS_KEYSLOT_ERROR
Address offset: 0x108
No key slot selected, no destination address defined, or error during push operation
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_KEYSLOT_ERROR No key slot selected, no destination address defined, or error during push
operation
NotGenerated 0 Event not generated
Generated 1 Event generated
7.17.5.5 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW KEYSLOT_PUSHED Enable or disable interrupt for event KEYSLOT_PUSHED
Disabled 0 Disable
Enabled 1 Enable
B RW KEYSLOT_REVOKED Enable or disable interrupt for event KEYSLOT_REVOKED
Disabled 0 Disable
Enabled 1 Enable
C RW KEYSLOT_ERROR Enable or disable interrupt for event KEYSLOT_ERROR
Disabled 0 Disable
Enabled 1 Enable
7.17.5.6 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW KEYSLOT_PUSHED Write '1' to enable interrupt for event KEYSLOT_PUSHED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW KEYSLOT_REVOKED Write '1' to enable interrupt for event KEYSLOT_REVOKED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW KEYSLOT_ERROR Write '1' to enable interrupt for event KEYSLOT_ERROR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.17.5.7 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW KEYSLOT_PUSHED Write '1' to disable interrupt for event KEYSLOT_PUSHED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW KEYSLOT_REVOKED Write '1' to disable interrupt for event KEYSLOT_REVOKED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
C RW KEYSLOT_ERROR Write '1' to disable interrupt for event KEYSLOT_ERROR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.17.5.8 INTPEND
Address offset: 0x30C
Pending interrupts
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R KEYSLOT_PUSHED Read pending status of interrupt for event KEYSLOT_PUSHED
NotPending 0 Read: Not pending
Pending 1 Read: Pending
B R KEYSLOT_REVOKED Read pending status of interrupt for event KEYSLOT_REVOKED
NotPending 0 Read: Not pending
Pending 1 Read: Pending
C R KEYSLOT_ERROR Read pending status of interrupt for event KEYSLOT_ERROR
NotPending 0 Read: Not pending
Pending 1 Read: Pending
7.17.5.9 STATUS
Address offset: 0x40C
Status bits for KMU operation
This register is reset and re-written by the KMU whenever SELECTKEYSLOT is written
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SELECTED Key slot ID successfully selected by the KMU
Disabled 0 No key slot ID selected by KMU
Enabled 1 Key slot ID successfully selected by KMU
B R BLOCKED Violation status
Disabled 0 No access violation detected
Enabled 1 Access violation detected and blocked
7.17.5.10 SELECTKEYSLOT
Address offset: 0x500
Select key slot to be read over AHB or pushed over secure APB when TASKS_PUSH_KEYSLOT is started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ID Select key slot ID to be read over AHB, or pushed over secure APB, when
TASKS_PUSH_KEYSLOT is started.
NOTE: ID=0 is not a valid key slot ID. The 0 ID should be used when the KMU
is idle or not in use.
Note: LPCOMP cannot be used (STARTed) at the same time as COMP. Only one comparator can be
used at a time.
tasks
EXTREFSEL REFSEL PSEL HYST RESULT
START
STOP
SAMPLE
AIN0 AREF
MUX AIN0
AIN1 AIN1
VDD*1/16 AIN2
AIN3 VIN+
VDD*1/8 MUX +
VDD*3/16 AIN4
VDD*2/8 AIN5
AIN6 Comparator
VDD*5/16 ANADETECT
AIN7 core
VDD*3/8 (signal to POWER module)
VDD*7/16 MUX VIN-
VDD*4/8 -
VDD*9/16
VDD*5/8
VDD*11/16
UP
CROSS
DOWN
READY
VDD*6/8
VDD*13/16
VDD*7/8
VDD*15/16 events
The wakeup comparator (LPCOMP) compares an input voltage (VIN+), which comes from an analog input
pin selected via the PSEL register, against a reference voltage (VIN-) selected via registers REFSEL on page
360 and EXTREFSEL.
The PSEL, REFSEL, and EXTREFSEL registers must be configured before the LPCOMP is enabled through the
ENABLE register.
The HYST register allows enabling an optional hysteresis in the comparator core. This hysteresis shall
prevent noise on the signal to create unwanted events. Figure below illustrates the effect of an active
hysteresis on a noisy input signal. It is disabled by default, and shall be configured before enabling
LPCOMP as well.
VIN+
VIN- + VHYST/2
VIN- - VHYST/2
The LPCOMP is started by triggering the START task. After a startup time of tLPCOMP,STARTUP, the LPCOMP
will generate a READY event to indicate that the comparator is ready to use and the output of the LPCOMP
is correct. The LPCOMP will generate events every time VIN+ crosses VIN-. More specifically, every time
VIN+ rises above VIN- (upward crossing) an UP event is generated along with a CROSS event. Every time
VIN+ falls below VIN- (downward crossing), a DOWN event is generated along with a CROSS event. When
hysteresis is enabled, the upward crossing level becomes (VIN- + VHYST/2), and the downward crossing
level becomes (VIN- - VHYST/2).
The LPCOMP is stopped by triggering the STOP task.
LPCOMP will be operational in both System ON and System OFF mode when it is enabled through the
ENABLE register. See POWER — Power control on page 46 for more information about power modes. Note
that it is not allowed to go to System OFF when a READY event is pending to be generated.
All LPCOMP registers, including ENABLE, are classified as retained registers when the LPCOMP is enabled.
However, when the device wakes up from System OFF, all LPCOMP registers will be reset.
The LPCOMP can wake up the system from System OFF by asserting the ANADETECT signal. The
ANADETECT signal can be derived from any of the event sources that generate the UP, DOWN and CROSS
events. In case of wakeup from System OFF, no events will be generated, only the ANADETECT signal.
See the ANADETECT register (ANADETECT on page 361) for more information on how to configure the
ANADETECT signal.
The immediate value of the LPCOMP can be sampled to RESULT on page 360 by triggering the SAMPLE
task.
See RESETREAS on page 70 for more information on how to detect a wakeup from LPCOMP.
The LPCOMP peripheral shall not be disabled (by writing to the ENABLE register) before the peripheral has
been stopped. Failing to do so may result in unpredictable behavior.
7.18.3 Registers
Instances
LPCOMP : S 0x5001A000
APPLICATION US S NA No Low-power comparator
LPCOMP : NS 0x4001A000
Register overview
7.18.3.1 TASKS_START
Address offset: 0x000
Start comparator
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start comparator
Trigger 1 Trigger task
7.18.3.2 TASKS_STOP
Address offset: 0x004
Stop comparator
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop comparator
Trigger 1 Trigger task
7.18.3.3 TASKS_SAMPLE
Address offset: 0x008
Sample comparator value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SAMPLE Sample comparator value
Trigger 1 Trigger task
7.18.3.4 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.18.3.5 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.18.3.6 SUBSCRIBE_SAMPLE
Address offset: 0x088
Subscribe configuration for task SAMPLE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SAMPLE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.18.3.7 EVENTS_READY
Address offset: 0x100
LPCOMP is ready and output is valid
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_READY LPCOMP is ready and output is valid
NotGenerated 0 Event not generated
Generated 1 Event generated
7.18.3.8 EVENTS_DOWN
Address offset: 0x104
Downward crossing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DOWN Downward crossing
NotGenerated 0 Event not generated
Generated 1 Event generated
7.18.3.9 EVENTS_UP
Address offset: 0x108
Upward crossing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_UP Upward crossing
NotGenerated 0 Event not generated
Generated 1 Event generated
7.18.3.10 EVENTS_CROSS
Address offset: 0x10C
Downward or upward crossing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CROSS Downward or upward crossing
NotGenerated 0 Event not generated
Generated 1 Event generated
7.18.3.11 PUBLISH_READY
Address offset: 0x180
Publish configuration for event READY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event READY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.18.3.12 PUBLISH_DOWN
Address offset: 0x184
Publish configuration for event DOWN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DOWN will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.18.3.13 PUBLISH_UP
Address offset: 0x188
Publish configuration for event UP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event UP will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.18.3.14 PUBLISH_CROSS
Address offset: 0x18C
Publish configuration for event CROSS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CROSS will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.18.3.15 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY_SAMPLE Shortcut between event READY and task SAMPLE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW READY_STOP Shortcut between event READY and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
C RW DOWN_STOP Shortcut between event DOWN and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW UP_STOP Shortcut between event UP and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
E RW CROSS_STOP Shortcut between event CROSS and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.18.3.16 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to enable interrupt for event READY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW DOWN Write '1' to enable interrupt for event DOWN
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW UP Write '1' to enable interrupt for event UP
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW CROSS Write '1' to enable interrupt for event CROSS
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.18.3.17 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to disable interrupt for event READY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW DOWN Write '1' to disable interrupt for event DOWN
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW UP Write '1' to disable interrupt for event UP
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW CROSS Write '1' to disable interrupt for event CROSS
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.18.3.18 RESULT
Address offset: 0x400
Compare result
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RESULT Result of last compare. Decision point SAMPLE task.
Below 0 Input voltage is below the reference threshold (VIN+ < VIN-)
Above 1 Input voltage is above the reference threshold (VIN+ > VIN-)
7.18.3.19 ENABLE
Address offset: 0x500
Enable LPCOMP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable LPCOMP
Disabled 0 Disable
Enabled 1 Enable
7.18.3.20 PSEL
Address offset: 0x504
Input pin select
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PSEL Analog pin select
AnalogInput0 0 AIN0 selected as analog input
AnalogInput1 1 AIN1 selected as analog input
AnalogInput2 2 AIN2 selected as analog input
AnalogInput3 3 AIN3 selected as analog input
AnalogInput4 4 AIN4 selected as analog input
AnalogInput5 5 AIN5 selected as analog input
AnalogInput6 6 AIN6 selected as analog input
AnalogInput7 7 AIN7 selected as analog input
7.18.3.21 REFSEL
Address offset: 0x508
Reference select
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
ID R/W Field Value ID Value Description
A RW REFSEL Reference select
Ref1_8Vdd 0 VDD * 1/8 selected as reference
Ref2_8Vdd 1 VDD * 2/8 selected as reference
Ref3_8Vdd 2 VDD * 3/8 selected as reference
Ref4_8Vdd 3 VDD * 4/8 selected as reference
Ref5_8Vdd 4 VDD * 5/8 selected as reference
Ref6_8Vdd 5 VDD * 6/8 selected as reference
Ref7_8Vdd 6 VDD * 7/8 selected as reference
ARef 7 External analog reference selected
Ref1_16Vdd 8 VDD * 1/16 selected as reference
Ref3_16Vdd 9 VDD * 3/16 selected as reference
Ref5_16Vdd 10 VDD * 5/16 selected as reference
Ref7_16Vdd 11 VDD * 7/16 selected as reference
Ref9_16Vdd 12 VDD * 9/16 selected as reference
Ref11_16Vdd 13 VDD * 11/16 selected as reference
Ref13_16Vdd 14 VDD * 13/16 selected as reference
Ref15_16Vdd 15 VDD * 15/16 selected as reference
7.18.3.22 EXTREFSEL
Address offset: 0x50C
External reference select
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- RW EXTREFSEL External analog reference select
AnalogReference0 0 Use AIN0 as external analog reference
AnalogReference1 1 Use AIN1 as external analog reference
7.18.3.23 ANADETECT
Address offset: 0x520
Analog detect configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ANADETECT Analog detect configuration
Cross 0 Generate ANADETECT on crossing, both upward crossing and downward
crossing
Up 1 Generate ANADETECT on upward crossing only
Down 2 Generate ANADETECT on downward crossing only
7.18.3.24 HYST
Address offset: 0x538
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HYST Comparator hysteresis enable
Disabled 0 Comparator hysteresis disabled
Enabled 1 Comparator hysteresis enabled
Note: Faults are not managed by the peripheral. If a mutex is locked and a fault occurs, it is the
responsibility of the fault handler to release the mutex. If a fault handler is not managing the mutex
release, the mutex will stay locked.
The following code is an example of how a mutex can be used by two different CPUs:
Only one CPU can access the mutex at a time, meaning the mutex must be released before being accessed
by the another CPU. If the load operation occurs at the same time, a bus arbitration mechanism will
ensure only one CPU gets the mutex.
7.19.1 Registers
Instances
MUTEX : S 0x50030000
APPLICATION US S NA No Mutual exclusive hardware support
MUTEX : NS 0x40030000
APPMUTEX : S 0x50030000
NETWORK US S NA No Mutex control
APPMUTEX : NS 0x40030000
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MUTEX Mutex register n
Unlocked 0 Mutex n is in unlocked state
Locked 1 Mutex n is in locked state
TASKS_
ACTIVATE
DISABLE
SENSE
STARTTX
ENABLERXDATA
GOIDLE
GOSLEEP
NFCT
Frame
Modulator/ NFC1
EasyDMA assemble/
receiver NFC2
disassemble
EVENTS_
READY
FIELDDETECTED
FIELDLOST
TXFRAMESTART
TXFRAMEEND
RXFRAMESTART
RXFRAMEEND
ERROR
RXERROR
ENDRX
ENDTX
AUTOCOLRESSTARTED
COLLISION
SELECTED
STARTED
7.20.1 Overview
The NFCT peripheral contains a 13.56 MHz AM receiver and a 13.56 MHz load modulator with 106 kbps
data rate as defined by the NFC Forum.
NFCT
PACKETPTR TXD.FRAMECONFIG
MAXLEN
STARTTX
Collision ENABLERXDATA Frame timing
EasyDMA Clock recovery
resolution FRAMEDELAYxxx controller
NFC1
NFC2
Frame disassemble On-the-air 13.56 MHz NFC-A
SoF/EoF/parity/CRC symbol decoder receiver
NFCID1_xxx
SENSRES FRAMESTATUS.RX
SELRES Field detector
RXD.FRAMECONFIG
When transmitting, the frame data will be transferred directly from RAM and transmitted with
configurable frame type and delay timing. The system will be notified by an event whenever a complete
frame is received or sent. The received frames will be automatically disassembled and the data part of the
frame transferred to RAM.
The NFCT peripheral also supports the collision detection and resolution ("anticollision") as defined by the
NFC Forum.
Wake-on-field is supported in SENSE mode while the device is either in System OFF or System ON mode.
When the antenna enters an NFC field, an event will be triggered notifying the system to activate the NFCT
functionality for incoming frames. In System ON, if the energy detected at the antenna increases beyond
a threshold value, the module will generate a FIELDDETECTED event. When the strength of the field no
longer supports NFC communication, the module will generate a FIELDLOST event. For the Low Power
Field Detect threshold values, refer to NFCT Electrical Specification on page 400.
In System OFF, the NFCT Low Power Field Detect function can wake the system up through a reset. See
RESETREAS on page 70 for more information on how to detect a wakeup from NFCT.
If the system is put into System OFF mode while a field is already present, the NFCT Low Power Field
Detect function will wake the system up right away and generate a reset.
Note: As a consequence of a reset, NFCT is disabled, and therefore the reset handler will have to
activate NFCT again and set it up properly.
The HFXO must be running before the NFCT peripheral goes into ACTIVATED state. Note that the NFCT
peripheral calibration is automatically done on ACTIVATE task. The HFXO can be turned off when the NFCT
peripheral goes into SENSE mode. The shortcut FIELDDETECTED_ACTIVATE can be used when the HFXO is
already running while in SENSE mode.
Outgoing data will be collected from RAM with the EasyDMA function and assembled according to the
TXD.FRAMECONFIG register. Incoming data will be disassembled according to the RXD.FRAMECONFIG
register and the data section in the frame will be written to RAM via the EasyDMA function.
The NFCT peripheral includes a frame timing controller that can be used to accurately control the inter-
frame delay between the incoming frame and a corresponding outgoing frame. It also includes optional
CRC functionality.
DISABLE
NFC (ALL_REQ)
DISABLE / AUTOCOLRESSTARTED
/ READY / SELECTED
ACTIVATE IDLERU IDLE READY_A
NFC (SENS_REQ)
/ AUTOCOLRESSTARTED
NFC (OTHER)
/ COLLISION
GOSLEEP / SELECTED
SLEEP_A READY_A*
DISABLE SENSE NFC (ALL_REQ)
NFC (SLP_REQ)
/ AUTOCOLRESSTARTED
ACTIVE_A
ENABLERXDATA STARTTX
SENSE
SENSE_FIELD
STARTTX / TXFRAMEEND
RECEIVE TRANSMIT
Activated
DISABLE
DISABLE
ACTIVATE IDLERU
/ READY
DISABLE SENSE
ACTIVE_A
ENABLERXDATA STARTTX
SENSE
SENSE_FIELD
STARTTX /TXFRAMEEND
RECEIVE TRANSMIT
ACTIVATE / RXERROR
/RXFRAMEEND
Important:
• FIELDLOST event is not generated in SENSE mode.
• Sending SENSE task while field is still present does not generate FIELDDETECTED event.
• If the FIELDDETECTED event is cleared before sending the ACTIVATE task, then the
FIELDDETECTED event shows up again after sending the ACTIVATE task. The shortcut
FIELDDETECTED_ACTIVATE can be used to avoid this condition.
7.20.4 EasyDMA
The NFCT peripheral implements EasyDMA for reading and writing of data packets from and to the Data
RAM.
The NFCT EasyDMA utilizes a pointer called PACKETPTR on page 395 for receiving and transmitting
packets.
The NFCT peripheral uses EasyDMA to read or write RAM, but not both at the same time. The event
RXFRAMESTART indicates that the EasyDMA has started writing to the RAM for a receive frame and the
event RXFRAMEND indicates that the EasyDMA has completed writing to the RAM. Similarly, the event
TXFRAMESTART indicates that the EasyDMA has started reading from the RAM for a transmit frame and
the event TXFRAMEND indicates that the EasyDMA has completed reading from the RAM. If a transmit
and a receive operation is issued at the same time, the transmit operation would be prioritized.
Starting a transmit operation while the EasyDMA is writing a receive frame to the RAM will result in
unpredictable behavior. Starting an EasyDMA operation when there is an ongoing EasyDMA operation may
result in unpredictable behavior. It is recommended to wait for the TXFRAMEEND or RXFRAMEEND event
for the ongoing transmit or receive before starting a new receive or transmit operation.
The MAXLEN on page 395 register determines the maximum number of bytes that can be read from
or written to the RAM. This feature can be used to ensure that the NFCT peripheral does not overwrite,
or read beyond, the RAM assigned to a packet. Note that if the RXD.AMOUNT or TXD.AMOUNT register
indicates longer data packets than set in MAXLEN, the frames sent to or received from the physical layer
will be incomplete. If that situation occurs in RX mode, the OVERRUN bit in the FRAMESTATUS.RX register
will be set and an RXERROR event will be triggered.
Important: The RXD.AMOUNT and TXD.AMOUNT define a frame length in bytes and bits excluding
start of frame (SoF), end of frame (EoF), and parity, but including CRC for RXD.AMOUNT only. Make
sure to take potential additional bits into account when setting MAXLEN.
Only sending task ENABLERXDATA ensures that a new value in PACKETPTR pointing to the RX buffer in Data
RAM is taken into account.
If PACKETPTR is not pointing to the Data RAM region, an EasyDMA transfer may result in a hard fault or
RAM corruption. For more information about the different memory regions, see Chapter Memory on page
21.
The NFCT peripherals normally do alternative receive and transmit frames. Therefore, to prepare for the
next frame, the PACKETPTR, MAXLEN, TXD.FRAMECONFIG and TXD.AMOUNT can be updated while the
receive is in progress, and, similarly, the PACKETPTR, MAXLEN and RXD.FRAMECONFIG can be updated
while the transmit is in progress. They can be updated and prepared for the next NFC frame immediately
after the STARTED event of the current frame has been received. Updating the TXD.FRAMECONFIG and
TXD.AMOUNT during the current transmit frame or updating RXD.FRAMECONFIG during current receive
frame may cause unpredictable behaviour.
In accordance with NFC Forum, NFC Digital Protocol Technical Specification, the least significant bit (LSB)
from the least significant byte (LSByte) is sent on air first. The bytes are stored in increasing order, starting
at the lowest address in the EasyDMA buffer in RAM.
Note: Some NFC Forum documents, such as NFC Forum, NFC Digital Protocol Technical
Specification, define bit numbering in a byte from b1 (LSB) to b8 (most significant bit (MSB)),
while most other technical documents from the NFC Forum, and also the Nordic Semiconductor
documentation, traditionally number them from b0 to b7. The present document uses the b0–
b7 numbering scheme. Be aware of this when comparing the NFC Forum, NFC Digital Protocol
Technical Specification to others.
The frame assembler can be configured in TXD.FRAMECONFIG to add SoF symbol, calculate and add parity
bits, and calculate and add CRC to the data read from RAM when assembling the frame. The total frame
will then be longer than what is defined by TXD.AMOUNT.TXDATABYTES. TXDATABITS. DISCARDMODE will
select if the first bits in the first byte read from RAM or the last bits in the last byte read from RAM will
be discarded if TXD.AMOUNT.TXDATABITS are not equal to zero. Note that if TXD.FRAMECONFIG.PARITY
= Parity and TXD.FRAMECONFIG.DISCARDMODE=DiscardStart, a parity bit will be included after the non-
complete first byte. No parity will be added after a non-complete last byte.
The frame assemble operation for different settings in TXD.FRAMECONFIG is illustrated in the following
table. All shaded bit fields are added by the frame assembler. Some of these bits are optional and
appearances are configured in TXD.FRAMECONFIG. Note that the frames illustrated do not necessarily
comply with the NFC specification. The figure only illustrates the behavior of the NFCT peripheral.
Data from RAM
Byte 1: PACKETPTR + 0 Byte 2: PACKETPTR + 1 Byte (TXDATABYTES) Byte (TXDATABYTES + 1)
b0 .. b7 b0 .. b7 b0 .. b7 b0 .. b7
(only if TXDATABITS > 0)
Frame on air
PARITY = Parity
TXDATABITS = 0
CRCMODETX = CRC16TX
PARITY = Parity
TXDATABITS = 4
CRCMODETX = NoCRCTX
DISCARDMODE = DiscardStart
PARITY = Parity
TXDATABITS = 0
CRCMODETX = NoCRCTX
The accurate timing for transmitting the frame on air is set using the frame timing controller settings.
Frame on air
PARITY = Parity
RXDATABITS = 0
CRCMODERX = CRC16RX
PARITY = Parity
CRCMODERX = NoCRCTR
RXDATABITS = 4
PARITY = NoParity
CRCMODERX = NoCRCRX
RXDATABITS = 0
Data to RAM
Byte 1: PACKETPTR + 0 Byte 2: PACKETPTR + 1 Byte (RXDATABYTES) Byte (RXDATABYTES + 1)
b0 .. b7 b0 .. b7 b0 .. b7 b0 .. b7
(only if RXDATABITS > 0)
Per NFC specification, the time between EoF to the next SoF can be as short as 86 μs, and thefore care
must be taken that PACKETPTR and MAXLEN are ready and ENABLERXDATA is issued on time after the end
of previous frame. The use of a PPI shortcut from TXFRAMEEND to ENABLERXDATA is recommended.
Receive Transmit
Last data bit EoF
SoF
Subcarrier modulation
SoF
Subcarrier modulation
Subcarrier modulation
ERROR event
NFCID1_Q nfcid10
NFCID1_R nfcid11
NFCID1_S nfcid12
NFCID1_T nfcid10 nfcid13
NFCID1_U nfcid11 nfcid14
NFCID1_V nfcid12 nfcid15
NFCID1_W nfcid10 nfcid13 nfcid16
NFCID1_X nfcid11 nfcid14 nfcid17
NFCID1_Y nfcid12 nfcid15 nfcid18
NFCID1_Z nfcid13 nfcid16 nfcid19
The hardware implementation can handle the states from IDLE to ACTIVE_A automatically as defined
in the NFC Forum, NFC Activity Technical Specification, and the other states are to be handled by
software. The software keeps track of the state through events. The collision resolution will trigger
an AUTOCOLRESSTARTED event when it has started. Reaching the ACTIVE_A state is indicated by the
SELECTED event.
If collision resolution fails, a COLLISION event is triggered. Note that errors occurring during automatic
collision resolution may also cause ERROR and/or RXERROR events to be generated. Other events may also
get generated. It is recommended that the software ignores any event except COLLISION, SELECTED and
FIELDLOST during automatic collision resolution. Software shall also make sure that any unwanted SHORT
or PPI shortcut is disabled during automatic collision resolution.
The automatic collision resolution will be restarted, if the packets are received with CRC or parity errors
while in ACTIVE_A state. The automatic collision resolution feature can be disabled while in ACTIVE_A
state to avoid this.
The SLP_REQ is automatically handled by the NFCT peripheral when the automatic collision resolution is
enabled. However, this results in an ERROR event (with FRAMEDELAYTIMEOUT cause in ERRORSTATUS)
since the SLP_REQ has no response. This error must be ignored until the SELECTED event is triggered and
this error should be cleared by the software when the SELECTED event is triggered.
NFC1
NFC2
An antenna inductance of Lant = 2 μH will give tuning capacitors in the range of 130 pF on each pin. The
total capacitance on NFC1 and NFC2 must be matched.
There are two registers that allow configuration of the modulation signal (i.e. of the response from NFCT
to the NFC Reader), MODULATIONCTRL and MODULATIONPSEL. The registers need to be programmed
before NFCT sends a response to a request from a reader. Ideally, this configuration is performed during
startup and whenever the NFCT peripheral is powered up.
The selected GPIO needs to be configured as output in the corresponding GPIO configuration register. It
is recommended to set an output value in the corresponding GPIO.OUT register – this value will be driven
whenever the NFCT peripheral is disabled.
NFCT drives the pin low when there is no modulation, and drives it with On-Off Keying (OOK) modulation
of an 847 kHz subcarrier (derived from the carrier frequency) when it responds to commands from an NFC
Reader.
7.20.13 References
NFC Forum, NFC Analog Specification version 2.1, www.nfc-forum.org
NFC Forum, NFC Digital Protocol Technical Specification version 2.2, www.nfc-forum.org
NFC Forum, NFC Activity Technical Specification version 2.1, www.nfc-forum.org
7.20.14 Registers
Instances
NFCT : S 0x5002D000
APPLICATION US S SA No Near field communication tag
NFCT : NS 0x4002D000
Register overview
7.20.14.1 TASKS_ACTIVATE
Address offset: 0x000
Activate NFCT peripheral for incoming and outgoing frames, change state to activated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_ACTIVATE Activate NFCT peripheral for incoming and outgoing frames, change state to
activated
Trigger 1 Trigger task
7.20.14.2 TASKS_DISABLE
Address offset: 0x004
Disable NFCT peripheral
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_DISABLE Disable NFCT peripheral
Trigger 1 Trigger task
7.20.14.3 TASKS_SENSE
Address offset: 0x008
Enable NFC sense field mode, change state to sense mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SENSE Enable NFC sense field mode, change state to sense mode
Trigger 1 Trigger task
7.20.14.4 TASKS_STARTTX
Address offset: 0x00C
Start transmission of an outgoing frame, change state to transmit
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTTX Start transmission of an outgoing frame, change state to transmit
Trigger 1 Trigger task
7.20.14.5 TASKS_ENABLERXDATA
Address offset: 0x01C
Initializes the EasyDMA for receive.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_ENABLERXDATA Initializes the EasyDMA for receive.
Trigger 1 Trigger task
7.20.14.6 TASKS_GOIDLE
Address offset: 0x024
Force state machine to IDLE state
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_GOIDLE Force state machine to IDLE state
Trigger 1 Trigger task
7.20.14.7 TASKS_GOSLEEP
Address offset: 0x028
Force state machine to SLEEP_A state
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_GOSLEEP Force state machine to SLEEP_A state
Trigger 1 Trigger task
7.20.14.8 SUBSCRIBE_ACTIVATE
Address offset: 0x080
Subscribe configuration for task ACTIVATE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task ACTIVATE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.20.14.9 SUBSCRIBE_DISABLE
Address offset: 0x084
Subscribe configuration for task DISABLE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task DISABLE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.20.14.10 SUBSCRIBE_SENSE
Address offset: 0x088
Subscribe configuration for task SENSE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SENSE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.20.14.11 SUBSCRIBE_STARTTX
Address offset: 0x08C
Subscribe configuration for task STARTTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTTX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.20.14.12 SUBSCRIBE_ENABLERXDATA
Address offset: 0x09C
Subscribe configuration for task ENABLERXDATA
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task ENABLERXDATA will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.20.14.13 SUBSCRIBE_GOIDLE
Address offset: 0x0A4
Subscribe configuration for task GOIDLE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task GOIDLE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.20.14.14 SUBSCRIBE_GOSLEEP
Address offset: 0x0A8
Subscribe configuration for task GOSLEEP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task GOSLEEP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.20.14.15 EVENTS_READY
Address offset: 0x100
The NFCT peripheral is ready to receive and send frames
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_READY The NFCT peripheral is ready to receive and send frames
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.16 EVENTS_FIELDDETECTED
Address offset: 0x104
Remote NFC field detected
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_FIELDDETECTED Remote NFC field detected
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.17 EVENTS_FIELDLOST
Address offset: 0x108
Remote NFC field lost
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_FIELDLOST Remote NFC field lost
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.18 EVENTS_TXFRAMESTART
Address offset: 0x10C
Marks the start of the first symbol of a transmitted frame
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXFRAMESTART Marks the start of the first symbol of a transmitted frame
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.19 EVENTS_TXFRAMEEND
Address offset: 0x110
Marks the end of the last transmitted on-air symbol of a frame
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXFRAMEEND Marks the end of the last transmitted on-air symbol of a frame
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.20 EVENTS_RXFRAMESTART
Address offset: 0x114
Marks the end of the first symbol of a received frame
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXFRAMESTART Marks the end of the first symbol of a received frame
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.21 EVENTS_RXFRAMEEND
Address offset: 0x118
Received data has been checked (CRC, parity) and transferred to RAM, and EasyDMA has ended accessing
the RX buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXFRAMEEND Received data has been checked (CRC, parity) and transferred to RAM, and
EasyDMA has ended accessing the RX buffer
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.22 EVENTS_ERROR
Address offset: 0x11C
NFC error reported. The ERRORSTATUS register contains details on the source of the error.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ERROR NFC error reported. The ERRORSTATUS register contains details on the
source of the error.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.23 EVENTS_RXERROR
Address offset: 0x128
NFC RX frame error reported. The FRAMESTATUS.RX register contains details on the source of the error.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXERROR NFC RX frame error reported. The FRAMESTATUS.RX register contains details
on the source of the error.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.24 EVENTS_ENDRX
Address offset: 0x12C
RX buffer (as defined by PACKETPTR and MAXLEN) in Data RAM full.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDRX RX buffer (as defined by PACKETPTR and MAXLEN) in Data RAM full.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.25 EVENTS_ENDTX
Address offset: 0x130
Transmission of data in RAM has ended, and EasyDMA has ended accessing the TX buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDTX Transmission of data in RAM has ended, and EasyDMA has ended accessing
the TX buffer
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.26 EVENTS_AUTOCOLRESSTARTED
Address offset: 0x138
Auto collision resolution process has started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_AUTOCOLRESSTARTED Auto collision resolution process has started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.27 EVENTS_COLLISION
Address offset: 0x148
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_COLLISION NFC auto collision resolution error reported.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.28 EVENTS_SELECTED
Address offset: 0x14C
NFC auto collision resolution successfully completed
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SELECTED NFC auto collision resolution successfully completed
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.29 EVENTS_STARTED
Address offset: 0x150
EasyDMA is ready to receive or send frames.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STARTED EasyDMA is ready to receive or send frames.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.20.14.30 PUBLISH_READY
Address offset: 0x180
Publish configuration for event READY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event READY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.31 PUBLISH_FIELDDETECTED
Address offset: 0x184
Publish configuration for event FIELDDETECTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event FIELDDETECTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.32 PUBLISH_FIELDLOST
Address offset: 0x188
Publish configuration for event FIELDLOST
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event FIELDLOST will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.33 PUBLISH_TXFRAMESTART
Address offset: 0x18C
Publish configuration for event TXFRAMESTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXFRAMESTART will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.34 PUBLISH_TXFRAMEEND
Address offset: 0x190
Publish configuration for event TXFRAMEEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXFRAMEEND will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.35 PUBLISH_RXFRAMESTART
Address offset: 0x194
Publish configuration for event RXFRAMESTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXFRAMESTART will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.36 PUBLISH_RXFRAMEEND
Address offset: 0x198
Publish configuration for event RXFRAMEEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXFRAMEEND will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.37 PUBLISH_ERROR
Address offset: 0x19C
Publish configuration for event ERROR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ERROR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.38 PUBLISH_RXERROR
Address offset: 0x1A8
Publish configuration for event RXERROR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXERROR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.39 PUBLISH_ENDRX
Address offset: 0x1AC
Publish configuration for event ENDRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDRX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.40 PUBLISH_ENDTX
Address offset: 0x1B0
Publish configuration for event ENDTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDTX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.41 PUBLISH_AUTOCOLRESSTARTED
Address offset: 0x1B8
Publish configuration for event AUTOCOLRESSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event AUTOCOLRESSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.42 PUBLISH_COLLISION
Address offset: 0x1C8
Publish configuration for event COLLISION
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event COLLISION will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.43 PUBLISH_SELECTED
Address offset: 0x1CC
Publish configuration for event SELECTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SELECTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.44 PUBLISH_STARTED
Address offset: 0x1D0
Publish configuration for event STARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.20.14.45 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FIELDDETECTED_ACTIVATE Shortcut between event FIELDDETECTED and task ACTIVATE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW FIELDLOST_SENSE Shortcut between event FIELDLOST and task SENSE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
F RW TXFRAMEEND_ENABLERXDATA Shortcut between event TXFRAMEEND and task ENABLERXDATA
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.20.14.46 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID T S R N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Enable or disable interrupt for event READY
Disabled 0 Disable
Enabled 1 Enable
B RW FIELDDETECTED Enable or disable interrupt for event FIELDDETECTED
Disabled 0 Disable
Enabled 1 Enable
C RW FIELDLOST Enable or disable interrupt for event FIELDLOST
Disabled 0 Disable
Enabled 1 Enable
D RW TXFRAMESTART Enable or disable interrupt for event TXFRAMESTART
Disabled 0 Disable
Enabled 1 Enable
E RW TXFRAMEEND Enable or disable interrupt for event TXFRAMEEND
Disabled 0 Disable
Enabled 1 Enable
F RW RXFRAMESTART Enable or disable interrupt for event RXFRAMESTART
Disabled 0 Disable
Enabled 1 Enable
G RW RXFRAMEEND Enable or disable interrupt for event RXFRAMEEND
Disabled 0 Disable
Enabled 1 Enable
H RW ERROR Enable or disable interrupt for event ERROR
Disabled 0 Disable
Enabled 1 Enable
K RW RXERROR Enable or disable interrupt for event RXERROR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID T S R N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Disable
Enabled 1 Enable
L RW ENDRX Enable or disable interrupt for event ENDRX
Disabled 0 Disable
Enabled 1 Enable
M RW ENDTX Enable or disable interrupt for event ENDTX
Disabled 0 Disable
Enabled 1 Enable
N RW AUTOCOLRESSTARTED Enable or disable interrupt for event AUTOCOLRESSTARTED
Disabled 0 Disable
Enabled 1 Enable
R RW COLLISION Enable or disable interrupt for event COLLISION
Disabled 0 Disable
Enabled 1 Enable
S RW SELECTED Enable or disable interrupt for event SELECTED
Disabled 0 Disable
Enabled 1 Enable
T RW STARTED Enable or disable interrupt for event STARTED
Disabled 0 Disable
Enabled 1 Enable
7.20.14.47 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID T S R N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to enable interrupt for event READY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW FIELDDETECTED Write '1' to enable interrupt for event FIELDDETECTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW FIELDLOST Write '1' to enable interrupt for event FIELDLOST
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW TXFRAMESTART Write '1' to enable interrupt for event TXFRAMESTART
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW TXFRAMEEND Write '1' to enable interrupt for event TXFRAMEEND
Set 1 Enable
Disabled 0 Read: Disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID T S R N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Read: Enabled
F RW RXFRAMESTART Write '1' to enable interrupt for event RXFRAMESTART
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW RXFRAMEEND Write '1' to enable interrupt for event RXFRAMEEND
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW ERROR Write '1' to enable interrupt for event ERROR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
K RW RXERROR Write '1' to enable interrupt for event RXERROR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW ENDRX Write '1' to enable interrupt for event ENDRX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
M RW ENDTX Write '1' to enable interrupt for event ENDTX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
N RW AUTOCOLRESSTARTED Write '1' to enable interrupt for event AUTOCOLRESSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
R RW COLLISION Write '1' to enable interrupt for event COLLISION
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
S RW SELECTED Write '1' to enable interrupt for event SELECTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
T RW STARTED Write '1' to enable interrupt for event STARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.20.14.48 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID T S R N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to disable interrupt for event READY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW FIELDDETECTED Write '1' to disable interrupt for event FIELDDETECTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW FIELDLOST Write '1' to disable interrupt for event FIELDLOST
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW TXFRAMESTART Write '1' to disable interrupt for event TXFRAMESTART
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW TXFRAMEEND Write '1' to disable interrupt for event TXFRAMEEND
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW RXFRAMESTART Write '1' to disable interrupt for event RXFRAMESTART
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW RXFRAMEEND Write '1' to disable interrupt for event RXFRAMEEND
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW ERROR Write '1' to disable interrupt for event ERROR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
K RW RXERROR Write '1' to disable interrupt for event RXERROR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW ENDRX Write '1' to disable interrupt for event ENDRX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
M RW ENDTX Write '1' to disable interrupt for event ENDTX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
N RW AUTOCOLRESSTARTED Write '1' to disable interrupt for event AUTOCOLRESSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
R RW COLLISION Write '1' to disable interrupt for event COLLISION
Clear 1 Disable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID T S R N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
S RW SELECTED Write '1' to disable interrupt for event SELECTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
T RW STARTED Write '1' to disable interrupt for event STARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.20.14.49 ERRORSTATUS
Address offset: 0x404
NFC Error Status register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FRAMEDELAYTIMEOUT No STARTTX task triggered before expiration of the time set in
W1C FRAMEDELAYMAX
7.20.14.50 FRAMESTATUS.RX
Address offset: 0x40C
Result of last incoming frame
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CRCERROR No valid end of frame (EoF) detected
W1C
CRCCorrect 0 Valid CRC detected
CRCError 1 CRC received does not match local check
B RW PARITYSTATUS Parity status of received frame
W1C
ParityOK 0 Frame received with parity OK
ParityError 1 Frame received with parity error
C RW OVERRUN Overrun detected
W1C
NoOverrun 0 No overrun detected
Overrun 1 Overrun error
7.20.14.51 NFCTAGSTATE
Address offset: 0x410
Current operating state of NFC tag
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R NFCTAGSTATE NfcTag state
Disabled 0 Disabled or sense
RampUp 2 RampUp
Idle 3 Idle
Receive 4 Receive
FrameDelay 5 FrameDelay
Transmit 6 Transmit
7.20.14.52 SLEEPSTATE
Address offset: 0x420
Sleep state during automatic collision resolution
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SLEEPSTATE Reflects the sleep state during automatic collision resolution. Set to IDLE by
a GOIDLE task. Set to SLEEP_A when a valid SLEEP_REQ frame is received or
by a GOSLEEP task.
Idle 0 State is IDLE.
SleepA 1 State is SLEEP_A.
7.20.14.53 FIELDPRESENT
Address offset: 0x43C
Indicates the presence or not of a valid field
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R FIELDPRESENT Indicates if a valid field is present. Available only in the activated state.
NoField 0 No valid field detected
FieldPresent 1 Valid field detected
B R LOCKDETECT Indicates if the low level has locked to the field
NotLocked 0 Not locked to field
Locked 1 Locked to field
7.20.14.54 FRAMEDELAYMIN
Address offset: 0x504
Minimum frame delay
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FRAMEDELAYMIN Minimum frame delay in number of 13.56 MHz clock cycles
7.20.14.55 FRAMEDELAYMAX
Address offset: 0x508
Maximum frame delay
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A
Reset 0x00001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FRAMEDELAYMAX Maximum frame delay in number of 13.56 MHz clock cycles
7.20.14.56 FRAMEDELAYMODE
Address offset: 0x50C
Configuration register for the Frame Delay Timer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW FRAMEDELAYMODE Configuration register for the Frame Delay Timer
FreeRun 0 Transmission is independent of frame timer and will start when the STARTTX
task is triggered. No timeout.
Window 1 Frame is transmitted between FRAMEDELAYMIN and FRAMEDELAYMAX
ExactVal 2 Frame is transmitted exactly at FRAMEDELAYMAX
WindowGrid 3 Frame is transmitted on a bit grid between FRAMEDELAYMIN and
FRAMEDELAYMAX
7.20.14.57 PACKETPTR
Address offset: 0x510
Packet pointer for TXD and RXD data storage in Data RAM
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Packet pointer for TXD and RXD data storage in Data RAM. This address is a
byte-aligned RAM address.
Note: See the memory chapter for details about which memories
are available for EasyDMA.
7.20.14.58 MAXLEN
Address offset: 0x514
Size of the RAM buffer allocated to TXD and RXD data storage each
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXLEN [0..257] Size of the RAM buffer allocated to TXD and RXD data storage each
7.20.14.59 TXD.FRAMECONFIG
Address offset: 0x518
Configuration of outgoing frames
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1
ID R/W Field Value ID Value Description
A RW PARITY Indicates if parity is added to the frame
NoParity 0 Parity is not added to TX frames
Parity 1 Parity is added to TX frames
B RW DISCARDMODE Discarding unused bits at start or end of a frame
DiscardEnd 0 Unused bits are discarded at end of frame (EoF)
DiscardStart 1 Unused bits are discarded at start of frame (SoF)
C RW SOF Adding SoF or not in TX frames
NoSoF 0 SoF symbol not added
SoF 1 SoF symbol added
D RW CRCMODETX CRC mode for outgoing frames
NoCRCTX 0 CRC is not added to the frame
CRC16TX 1 16 bit CRC added to the frame based on all the data read from RAM that is
used in the frame
7.20.14.60 TXD.AMOUNT
Address offset: 0x51C
Size of outgoing frame
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B B A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TXDATABITS [0..7] Number of bits in the last or first byte read from RAM that shall be included
in the frame (excluding parity bit).
7.20.14.61 RXD.FRAMECONFIG
Address offset: 0x520
Configuration of incoming frames
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
ID R/W Field Value ID Value Description
A RW PARITY Indicates if parity expected in RX frame
NoParity 0 Parity is not expected in RX frames
Parity 1 Parity is expected in RX frames
B RW SOF SoF expected or not in RX frames
NoSoF 0 SoF symbol is not expected in RX frames
SoF 1 SoF symbol is expected in RX frames
C RW CRCMODERX CRC mode for incoming frames
NoCRCRX 0 CRC is not expected in RX frames
CRC16RX 1 Last 16 bits in RX frame is CRC, CRC is checked and CRCSTATUS updated
7.20.14.62 RXD.AMOUNT
Address offset: 0x524
Size of last incoming frame
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B B A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RXDATABITS Number of bits in the last byte in the frame, if less than 8 (including CRC,
but excluding parity and SoF/EoF framing).
Frames with 0 data bytes and less than 7 data bits are invalid and are not
received properly.
B R RXDATABYTES Number of complete bytes received in the frame (including CRC, but
excluding parity and SoF/EoF framing)
7.20.14.63 MODULATIONCTRL
Address offset: 0x52C
Enables the modulation output to a GPIO pin which can be connected to a second external antenna.
See MODULATIONPSEL for GPIO configuration.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW MODULATIONCTRL Configuration of modulation control.
Invalid 0x0 Invalid, defaults to same behaviour as for Internal
Internal 0x1 Use internal modulator only
ModToGpio 0x2 Output digital modulation signal to a GPIO pin.
InternalAndModToGpio
0x3 Use internal modulator and output digital modulation signal to a GPIO pin.
7.20.14.64 MODULATIONPSEL
Address offset: 0x538
Pin select for Modulation control
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.20.14.65 NFCID1_LAST
Address offset: 0x590
Last NFCID1 part (4, 7 or 10 bytes ID)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x00006363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1
ID R/W Field Value ID Value Description
A RW NFCID1_Z NFCID1 byte Z (very last byte sent)
B RW NFCID1_Y NFCID1 byte Y
C RW NFCID1_X NFCID1 byte X
D RW NFCID1_W NFCID1 byte W
7.20.14.66 NFCID1_2ND_LAST
Address offset: 0x594
Second last NFCID1 part (7 or 10 bytes ID)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW NFCID1_V NFCID1 byte V
B RW NFCID1_U NFCID1 byte U
C RW NFCID1_T NFCID1 byte T
7.20.14.67 NFCID1_3RD_LAST
Address offset: 0x598
Third last NFCID1 part (10 bytes ID)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW NFCID1_S NFCID1 byte S
B RW NFCID1_R NFCID1 byte R
C RW NFCID1_Q NFCID1 byte Q
7.20.14.68 AUTOCOLRESCONFIG
Address offset: 0x59C
Controls the auto collision resolution function. This setting must be done before the NFCT peripheral is
activated.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW MODE Enables/disables auto collision resolution
Enabled 0 Auto collision resolution enabled
Disabled 1 Auto collision resolution disabled
7.20.14.69 SENSRES
Address offset: 0x5A0
NFC-A SENS_RES auto-response settings
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E E E E D D D D C C B A A A A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW BITFRAMESDD Bit frame SDD as defined by the b5:b1 of byte 1 in SENS_RES response in the
NFC Forum, NFC Digital Protocol Technical Specification
SDD00000 0 SDD pattern 00000
SDD00001 1 SDD pattern 00001
SDD00010 2 SDD pattern 00010
SDD00100 4 SDD pattern 00100
SDD01000 8 SDD pattern 01000
SDD10000 16 SDD pattern 10000
B RW RFU5 Reserved for future use. Shall be 0.
C RW NFCIDSIZE NFCID1 size. This value is used by the auto collision resolution engine.
NFCID1Single 0 NFCID1 size: single (4 bytes)
NFCID1Double 1 NFCID1 size: double (7 bytes)
NFCID1Triple 2 NFCID1 size: triple (10 bytes)
D RW PLATFCONFIG Tag platform configuration as defined by the b4:b1 of byte 2 in SENS_RES
response in the NFC Forum, NFC Digital Protocol Technical Specification
E RW RFU74 Reserved for future use. Shall be 0.
7.20.14.70 SELRES
Address offset: 0x5A4
NFC-A SEL_RES auto-response settings
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D D C C B A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RFU10 Reserved for future use. Shall be 0.
B RW CASCADE Cascade as defined by the b3 of SEL_RES response in the NFC Forum, NFC
Digital Protocol Technical Specification (controlled by hardware, shall be 0)
C RW RFU43 Reserved for future use. Shall be 0.
D RW PROTOCOL Protocol as defined by the b7:b6 of SEL_RES response in the NFC Forum,
NFC Digital Protocol Technical Specification
E RW RFU7 Reserved for future use. Shall be 0.
DISABLE
TASKS
SENSE
tactivate
tsense tsense
RF-Carrier
FIELDLOST
FIELDDETECTED
EVENTS
Figure 104: NFCT timing parameters (Shortcuts for FIELDDETECTED and FIELDLOST are disabled)
When the NVMC is configured to be a secure peripheral, only secure code has access.
Before a write can be performed, the NVMC must be enabled for writing in CONFIG.WEN. Similarly, before
an erase can be performed, the NVMC must be enabled for erasing in CONFIG.EEN, see CONFIG on page
404. The user must make sure that writing and erasing are not enabled at the same time. Failing to do
so may result in unpredictable behavior.
2. Use the register WRITEUICRNS on page 407, via non-secure debugger, to set APPROTECT
(APPROTECT is automatically written to 0x00000000 by the NVMC).
UICR can only be written nWRITE number of times before an erase must be performed using ERASEALL.
The time it takes to write a word to the UICR is specified by tWRITE. The CPU is stalled if the CPU executes
code from the flash while the NVMC is writing to the UICR.
7.21.7 Cache
An instruction cache (I-Cache) can be enabled for the ICODE bus in the NVMC.
See Memory on page 21 for the location of flash.
A cache hit is an instruction fetch from the cache, and it has a 0 wait-state delay. The number of wait-
states for a cache miss, where the instruction is not available in the cache and needs to be fetched from
flash, depends on the processor frequency, see CPU parameter W_FLASHCACHE.
Enabling the cache can increase the CPU performance, and reduce power consumption by reducing the
number of wait cycles and the number of flash accesses. This will depend on the cache hit rate. Cache
draws current when enabled. If the reduction in average current due to reduced flash accesses is larger
than the cache power requirement, the average current to execute the program code will be reduced.
When disabled, the cache does not draw current and its content is not retained.
It is possible to enable cache profiling to analyze the performance of the cache for your program using
the register ICACHECNF. When profiling is enabled, registers IHIT and IMISS are incremented for every
instruction cache hit or miss respectively.
7.21.8 Registers
Instances
NVMC : S 0x50039000
APPLICATION US S NA Yes Non-volatile memory controller
NVMC : NS 0x40039000
NVMC NETWORK 0x41080000 HF NS NA No Non-Volatile Memory Controller
Configuration
Register overview
7.21.8.1 READY
Address offset: 0x400
Ready flag
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R READY NVMC is ready or busy
Busy 0 NVMC is busy (ongoing write or erase operation)
Ready 1 NVMC is ready
7.21.8.2 READYNEXT
Address offset: 0x408
Ready flag
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R READYNEXT NVMC can accept a new write operation
Busy 0 NVMC cannot accept any write operation
Ready 1 NVMC is ready
7.21.8.3 CONFIG
Address offset: 0x504
Configuration register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW WEN Program memory access mode. It is strongly recommended to only activate
erase and write modes when they are actively used.
Enabling write or erase will invalidate the cache and keep it invalidated.
Using other values than those defined may result in unpredictable behavior.
Ren 0 Read only access
Wen 1 Write enabled
Een 2 Erase enabled
PEen 4 Partial erase enabled
7.21.8.4 ERASEALL
Address offset: 0x50C
Register for erasing all non-volatile user memory
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ERASEALL Erase all non-volatile memory including UICR registers.
7.21.8.5 ERASEPAGEPARTIALCFG
Address offset: 0x51C
Register for partial erase configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x0000000A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
ID R/W Field Value ID Value Description
A RW DURATION Duration of the partial erase in milliseconds
The user must ensure that the total erase time is long enough for a
complete erase of the flash page
7.21.8.6 ICACHECNF
Address offset: 0x540
I-code cache configuration register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CACHEEN Cache enable
Disabled 0 Disable cache. Invalidates all cache entries.
Enabled 1 Enable cache
B RW CACHEPROFEN Cache profiling enable
Disabled 0 Disable cache profiling
Enabled 1 Enable cache profiling
7.21.8.7 IHIT
Address offset: 0x548
I-code cache hit counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HITS Number of cache hits
7.21.8.8 IMISS
Address offset: 0x54C
I-code cache miss counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MISSES Number of cache misses
7.21.8.9 CONFIGNS
Address offset: 0x584
Non-secure configuration register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW WEN Program memory access mode. It is strongly recommended to only activate
erase and write modes when they are actively used.
Enabling write or erase will invalidate the cache and keep it invalidated.
Using other values than those defined may result in unpredictable behavior.
Ren 0 Read only access
Wen 1 Write enabled
Een 2 Erase enabled
7.21.8.10 WRITEUICRNS
Address offset: 0x588
Non-secure APPROTECT enable register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B B B B B B B B B B B B B B B B B B B B B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W SET Allow non-secure code to set APPROTECT
Set 1 Set value
B W KEY Key to write in order to validate the write operation
Keyvalid 0xAFBE5A7 Key value
11
Applies when HFXO is used. Timing varies according to HFINT accuracy when HFINT is used.
12
Only applicable for network core. Application core has a separate cache, see CACHE — Instruction/
data cache on page 112.
MUX MCLKCONFIG
Bandpass and
PDM to PCM
decimation (left) EasyDMA
Sampling
RAM
DIN
Bandpass and
PDM to PCM
decimation (right)
The master clock generator does not add any jitter to the HFCLK source chosen. It is recommended (but
not mandatory) to use the Xtal as HFCLK source.
The following equation can be used to calculate the value of the PDMCLKCTRL register for a given PDM
clock- and master clock source frequency:
Where fpdm is the requested PDM clock frequency in Hz, and fsource is the master clock generator source in
Hz. Because of rounding errors, an accurate PDM clock may not be achievable. The actual PDM frequency
can be calculated using the equation below.
The clock error can be calculated using the equation below. The error e is the percentage difference from
the requested fpdm frequency.
The PDM frequency can be adjusted while the clock generator is running.
• For PCLK32M, by using PDMCLKCTRL
• For ACLK, by adjusting the audio clock source, see CLOCK — Clock control on page 72.
Requested fsource [Hz] RATIO PDMCLKCTRL Actual PDM Sample Error [%]
PDM frequency frequency
frequency factual [Hz] [Hz]
fpdm [Hz]
1024000 32000000 64 135274496 1032258.1 16129.0 0.81
(PCLK32M)
1280000 32000000 80 168427520 1280000 16000 0
(PCLK32M)
1024000 12288000 64 343597056 1024000 16000 0
(ACLK)
alternating left and right 16-bit samples (Stereo), or only left 16-bit samples (Mono). To ensure continuous
PDM sampling, it is up to the application to update the EasyDMA destination address pointer as the
previous buffer is filled.
The continuous transfer can be started or stopped by sending the START and STOP tasks. STOP becomes
effective after the current frame has finished transferring, which will generate the STOPPED event. The
STOPPED event indicates that all activity in the module is finished, and that the data is available in RAM
(EasyDMA has finished transferring as well). Attempting to restart before receiving the STOPPED event
may result in unpredictable behavior.
Remember to check that the resulting values programmed into GAINL and GAINR fall within MinGain and
MaxGain.
7.22.5 EasyDMA
Samples will be written directly to RAM, and EasyDMA must be configured accordingly.
The address pointer for the EasyDMA channel is set in SAMPLE.PTR register. If the destination address set
in SAMPLE.PTR is not pointing to the Data RAM region, an EasyDMA transfer may result in a HardFault or
RAM corruption. See Memory on page 21 for more information about the different memory regions.
The DMA transfer supports Stereo (left and right 16-bit samples) and Mono (left only) data transfer as
configured in the OPERATION field of the MODE register. The samples are stored little endian.
MODE.OPERATION Bits per sample Result stored per RAM Physical RAM allocated Result boundary indexes Note
word (32-bit words) in RAM
Stereo 32 (2x16) L+R ceil(SAMPLE.MAXCNT/2) R0=[31:16]; L0=[15:0] Default
Mono 16 2xL ceil(SAMPLE.MAXCNT/2) L1=[31:16]; L0=[15:0]
The destination buffer in RAM consists of one block, the size of which is set in SAMPLE.MAXCNT register.
Format is number of 16-bit samples. The physical RAM allocated is always:
CLK CLK
CLK
DIN
CLK CLK
CLK
DIN
Note that in a single microphone (mono) configuration, depending on the microphone’s implementation,
either the left or the right channel (sampled at falling or rising CLK edge respectively) will contain reliable
data.
If two microphones are used, one of them has to be set as left, the other as right (L/R pin tied high or to
GND on the respective microphone). It is strongly recommended to use two microphones of exactly the
same brand and type so that their timings in left and right operation match.
Vdd nRFxxxxx
CLK CLK
Vdd
CLK
L/R DATA
CLK
DIN
7.22.8 Registers
Instances
Register overview
7.22.8.1 TASKS_START
Address offset: 0x000
Starts continuous PDM transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Starts continuous PDM transfer
Trigger 1 Trigger task
7.22.8.2 TASKS_STOP
Address offset: 0x004
Stops PDM transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stops PDM transfer
Trigger 1 Trigger task
7.22.8.3 SUBSCRIBE_START
Address offset: 0x080
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.22.8.4 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.22.8.5 EVENTS_STARTED
Address offset: 0x100
PDM transfer has started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STARTED PDM transfer has started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.22.8.6 EVENTS_STOPPED
Address offset: 0x104
PDM transfer has finished
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED PDM transfer has finished
NotGenerated 0 Event not generated
Generated 1 Event generated
7.22.8.7 EVENTS_END
Address offset: 0x108
The PDM has written the last sample specified by SAMPLE.MAXCNT (or the last sample after a STOP task
has been received) to Data RAM
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_END The PDM has written the last sample specified by SAMPLE.MAXCNT (or the
last sample after a STOP task has been received) to Data RAM
NotGenerated 0 Event not generated
Generated 1 Event generated
7.22.8.8 PUBLISH_STARTED
Address offset: 0x180
Publish configuration for event STARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.22.8.9 PUBLISH_STOPPED
Address offset: 0x184
Publish configuration for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.22.8.10 PUBLISH_END
Address offset: 0x188
Publish configuration for event END
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event END will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.22.8.11 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STARTED Enable or disable interrupt for event STARTED
Disabled 0 Disable
Enabled 1 Enable
B RW STOPPED Enable or disable interrupt for event STOPPED
Disabled 0 Disable
Enabled 1 Enable
C RW END Enable or disable interrupt for event END
Disabled 0 Disable
Enabled 1 Enable
7.22.8.12 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STARTED Write '1' to enable interrupt for event STARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW END Write '1' to enable interrupt for event END
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.22.8.13 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STARTED Write '1' to disable interrupt for event STARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW END Write '1' to disable interrupt for event END
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.22.8.14 ENABLE
Address offset: 0x500
PDM module enable register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable PDM module
Disabled 0 Disable
Enabled 1 Enable
7.22.8.15 PDMCLKCTRL
Address offset: 0x504
PDM clock generator control
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x08400000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FREQ PDM_CLK frequency configuration.
7.22.8.16 MODE
Address offset: 0x508
Defines the routing of the connected PDM microphones' signals
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OPERATION Mono or stereo operation
Stereo 0 Sample and store one pair (left + right) of 16-bit samples per RAM word
R=[31:16]; L=[15:0]
Mono 1 Sample and store two successive left samples (16 bits each) per RAM word
L1=[31:16]; L0=[15:0]
B RW EDGE Defines on which PDM_CLK edge left (or mono) is sampled
LeftFalling 0 Left (or mono) is sampled on falling edge of PDM_CLK
LeftRising 1 Left (or mono) is sampled on rising edge of PDM_CLK
7.22.8.17 GAINL
Address offset: 0x518
Left output gain adjustment
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
ID R/W Field Value ID Value Description
A RW GAINL Left output gain adjustment, in 0.5 dB steps, around the default module gain
(see electrical parameters)
(...)
(...)
7.22.8.18 GAINR
Address offset: 0x51C
Right output gain adjustment
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
ID R/W Field Value ID Value Description
A RW GAINR Right output gain adjustment, in 0.5 dB steps, around the default module
gain (see electrical parameters)
MinGain 0x00 -20 dB gain adjustment (minimum)
DefaultGain 0x28 0 dB gain adjustment
MaxGain 0x50 +20 dB gain adjustment (maximum)
7.22.8.19 RATIO
Address offset: 0x520
Selects the ratio between PDM_CLK and output sample rate. Change PDMCLKCTRL accordingly.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RATIO Selects the ratio between PDM_CLK and output sample rate
Ratio64 0 Ratio of 64
Ratio80 1 Ratio of 80
7.22.8.20 PSEL.CLK
Address offset: 0x540
Pin number configuration for PDM CLK signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.22.8.21 PSEL.DIN
Address offset: 0x544
Pin number configuration for PDM DIN signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.22.8.22 MCLKCONFIG
Address offset: 0x54C
Master clock generator configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SRC Master clock source selection
PCLK32M 0 32 MHz peripheral clock
ACLK 1 Audio PLL clock
7.22.8.23 SAMPLE.PTR
Address offset: 0x560
RAM address pointer to write samples to with EasyDMA
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SAMPLEPTR Address to write PDM samples to over DMA
Note: See the memory chapter for details about which memories
are available for EasyDMA.
7.22.8.24 SAMPLE.MAXCNT
Address offset: 0x564
Number of samples to allocate memory for in EasyDMA mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BUFFSIZE [0..32767] Length of DMA RAM allocation in number of samples
tPDM,CLK
CLK
DIN (L)
tPDM,cv tPDM,s tPDM,h=tPDM,ci
DIN(R)
PWM
START STARTED
EasyDMA
STOP STOPPED
SEQSTART[0]
SEQSTART[1]
SEQSTARTED[0]
SEQ[n].REFRESH SEQSTARTED[1]
Decoder SEQEND[0]
NEXTSTEP
SEQEND[1]
COMP0 PSEL.OUT[0]
COMP1 PSEL.OUT[1]
COMP2 PSEL.OUT[2]
COMP3 PSEL.OUT[3]
Carry/Reload
Wave Counter COUNTERTOP
PWM_CLK PRESCALER
COMP1
COMP0
OUT[0]
OUT[1]
The counter is automatically reset to zero when COUNTERTOP is reached and OUT[n] will invert. OUT[n]
is held low if the compare value is 0 and held high if set to COUNTERTOP, given that the polarity is set to
FallingEdge. Counter running in up mode results in pulse widths that are edge-aligned. The following is the
code for the counter in up mode example:
When the counter is running in up mode, the following formula can be used to compute the PWM period
and the step size:
PWM period: TPWM(Up)= TPWM_CLK * COUNTERTOP
Step width/Resolution: Tsteps= TPWM_CLK
The following figure shows the counter operating in up-and-down mode
(MODE=PWM_MODE_UpAndDown), with two PWM channels with the same frequency but different duty
cycle and output polarity:
COUNTERTOP
COMP1
COMP0
OUT[0]
OUT[1]
The counter starts decrementing to zero when COUNTERTOP is reached and will invert the OUT[n] when
compare value is hit for the second time. This results in a set of pulses that are center-aligned. The
following is the code for the counter in up-and-down mode example:
When the counter is running in up-and-down mode, the following formula can be used to compute the
PWM period and the step size:
TPWM(Up And Down) = TPWM_CLK * 2 * COUNTERTOP
Step width/Resolution: Tsteps = TPWM_CLK * 2
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Id B A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Id RW Field Value Id Value Description
A RW COMPARE Duty cycle setting - value loaded to internal compare
register
B RW POLARITY Edge polarity of GPIO.
RisingEdge 0 First edge within the PWM period is rising
FallingEdge 1 First edge within the PWM period is falling
The DECODER register controls how the RAM content is interpreted and loaded into the internal compare
registers. The LOAD field controls if the RAM values are loaded to all compare channels, or to update a
group or all channels with individual values. The following figure illustrates how parameters stored in RAM
are organized and routed to various compare channels in different modes:
DECODER.LOAD=Common DECODER.LOAD=Grouped DECODER.LOAD=Single
P COMP0 P P
SEQ[n].PTR O COMPARE COMP1 O COMPARE COMP0 O COMPARE COMP0
COMP2 COMP1
L COMP3 L L
P COMP0 P P
O COMPARE COMP1 O COMPARE COMP2 O COMPARE COMP1
COMP2 COMP3
L COMP3 L L
Increasing Data P
RAM address
... ... O COMPARE COMP2
L
P COMP0 P P
O COMPARE COMP1 O COMPARE COMP0 O COMPARE COMP3
COMP2 COMP1
L COMP3 L L
DECODER.LOAD=WaveForm
P
O COMPARE COMP0
L
P
O COMPARE COMP1
L
P
O COMPARE COMP2
L
TOP COUNTERTOP
A special mode of operation is available when DECODER.LOAD is set to WaveForm. In this mode, up to
three PWM channels can be enabled - OUT[0] to OUT[2]. In RAM, four values are loaded at a time: the
first, second and third location are used to load the values, and the fourth RAM location is used to load
the COUNTERTOP register. This way one can have up to three PWM channels with a frequency base that
changes on a per PWM period basis. This mode of operation is useful for arbitrary wave form generation
in applications, such as LED lighting.
The register SEQ[n].REFRESH=N (one per sequence n=0 or 1) will instruct a new RAM stored pulse width
value on every (N+1)th PWM period. Setting the register to zero will result in a new duty cycle update
every PWM period, as long as the minimum PWM period is observed.
Note that registers SEQ[n].REFRESH and SEQ[n].ENDDELAY are ignored when DECODER.MODE=NextStep.
The next value is loaded upon every received NEXTSTEP task.
SEQ[n].PTR is the pointer used to fetch COMPARE values from RAM. If the SEQ[n].PTR is not pointing to
a RAM region, an EasyDMA transfer may result in a HardFault or RAM corruption. See Memory on page
21 for more information about the different memory regions. After the SEQ[n].PTR is set to the desired
RAM location, the SEQ[n].CNT register must be set to the number of 16-bit half words in the sequence. It
is important to observe that the Grouped mode requires one half word per group, while the Single mode
requires one half word per channel, thus increasing the RAM size occupation. If PWM generation is not
running when the SEQSTART[n] task is triggered, the task will load the first value from RAM and then start
the PWM generation. A SEQSTARTED[n] event is generated as soon as the EasyDMA has read the first
PWM parameter from RAM and the wave counter has started executing it. When LOOP.CNT=0, sequence
n=0 or 1 is played back once. After the last value in the sequence has been loaded and started executing,
a SEQEND[n] event is generated. The PWM generation will then continue with the last loaded value. The
following figure illustrates an example of a simple playback.
Continues with last setting
P P P P
COMPARE COMPARE COMPARE COMPARE
SEQ[0].PTR O O O O
0 1 2 3
L L L L
The following source code is used for configuration and timing details in a sequence where only sequence
0 is used and only run once with a new PWM duty cycle for each period.
To completely stop the PWM generation and force the associated pins to a defined state, a STOP task can
be triggered at any time. A STOPPED event is generated when the PWM generation has stopped at the end
of the currently running PWM period, and the pins go into their idle state as defined in GPIO OUT register.
PWM generation can then only be restarted through a SEQSTART[n] task. SEQSTART[n] will resume PWM
generation after having loaded the first value from the RAM buffer defined in the SEQ[n].PTR register.
The following table indicates when specific registers get sampled by the hardware. Care should be taken
when updating these registers to avoid that values are applied earlier than expected.
Every time a new value from sequence [0] has been loaded from When no more value from sequence [0] gets loaded from RAM
RAM and gets applied to the Wave Counter (indicated by the (indicated by the SEQEND[0] event)
PWMPERIODEND event)
At any time during sequence [1] (which starts when the
SEQSTARTED[1] event is generated)
SEQ[1].ENDDELAY When sending the SEQSTART[1] task Before starting sequence [1] through a SEQSTART[1] task
Every time a new value from sequence [1] has been loaded from When no more value from sequence [1] gets loaded from RAM
RAM and gets applied to the Wave Counter (indicated by the (indicated by the SEQEND[1] event)
PWMPERIODEND event)
At any time during sequence [0] (which starts when the
SEQSTARTED[0] event is generated)
SEQ[0].REFRESH When sending the SEQSTART[0] task Before starting sequence [0] through a SEQSTART[0] task
Every time a new value from sequence [0] has been loaded from At any time during sequence [1] (which starts when the
RAM and gets applied to the Wave Counter (indicated by the SEQSTARTED[1] event is generated)
PWMPERIODEND event)
SEQ[1].REFRESH When sending the SEQSTART[1] task Before starting sequence [1] through a SEQSTART[1] task
Every time a new value from sequence [1] has been loaded from At any time during sequence [0] (which starts when the
RAM and gets applied to the Wave Counter (indicated by the SEQSTARTED[0] event is generated)
PWMPERIODEND event)
COUNTERTOP In DECODER.LOAD=WaveForm: this register is ignored. Before starting PWM generation through a SEQSTART[n] task
In all other LOAD modes: at the end of current PWM period After a STOP task has been triggered, and the STOPPED event has
(indicated by the PWMPERIODEND event) been received.
MODE Immediately Before starting PWM generation through a SEQSTART[n] task
After a STOP task has been triggered, and the STOPPED event has
been received.
DECODER Immediately Before starting PWM generation through a SEQSTART[n] task
After a STOP task has been triggered, and the STOPPED event has
been received.
PRESCALER Immediately Before starting PWM generation through a SEQSTART[n] task
After a STOP task has been triggered, and the STOPPED event has
been received.
LOOP Immediately Before starting PWM generation through a SEQSTART[n] task
After a STOP task has been triggered, and the STOPPED event has
been received.
PSEL.OUT[n] Immediately Before enabling the PWM instance through the ENABLE register
Note: SEQ[n].REFRESH and SEQ[n].ENDDELAY are ignored at the end of a complex sequence,
indicated by a LOOPSDONE event. The reason for this is that the last value loaded from RAM
is maintained until further action from software (restarting a new sequence, or stopping PWM
generation).
The following figure shows a more complex example using the register LOOP on page 442.
P P
SEQ[0].PTR O COMPARE O COMPARE
L L
Event/Tasks
(continuation)
In this case, an automated playback takes place, consisting of SEQ[0], delay 0, SEQ[1], delay 1, then again
SEQ[0], etc. The user can choose to start a complex playback with SEQ[0] or SEQ[1] through sending the
SEQSTART[0] or SEQSTART[1] task. The complex playback always ends with delay 1.
The two sequences 0 and 1 are defined by the addresses of value tables in RAM (pointed to by
SEQ[n].PTR) and the buffer size (SEQ[n].CNT). The rate at which a new value is loaded is defined
individually for each sequence by SEQ[n].REFRESH. The chaining of sequence 1 following the sequence 0 is
implicit, the LOOP.CNT register allows the chaining of sequence 1 to sequence 0 for a determined number
of times. In other words, it allows to repeat a complex sequence a number of times in a fully automated
way.
In the following code example, sequence 0 is defined with SEQ[0].REFRESH set to 1, meaning that a
new PWM duty cycle is pushed every second PWM period. This complex sequence is started with the
SEQSTART[0] task, so SEQ[0] is played first. Since SEQ[0].ENDDELAY=1 there will be one PWM period delay
between last period on sequence 0 and the first period on sequence 1. Since SEQ[1].ENDDELAY=0 there
is no delay 1, so SEQ[0] would be started immediately after the end of SEQ[1]. However, as LOOP.CNT is
1, the playback stops after having played SEQ[1] only once, and both SEQEND[1] and LOOPSDONE are
generated (their order is not guaranteed in this case).
The decoder can also be configured to asynchronously load new PWM duty cycle. If the DECODER.MODE
register is set to NextStep, then the NEXTSTEP task will cause an update of internal compare registers on
the next PWM period.
The following figures provide an overview of each part of an arbitrary sequence, in various modes
(LOOP.CNT=0 and LOOP.CNT>0). In particular, the following are represented:
• Initial and final duty cycle on the PWM output(s)
• Chaining of SEQ[0] and SEQ[1] if LOOP.CNT>0
• Influence of registers on the sequence
• Events generated during a sequence
• DMA activity (loading of next value and applying it to the output(s))
LOOP.CNT
EVENTS_SEQEND[1]
cycle
SEQ[1].ENDDELAY
Previously
loaded duty
EVENTS_SEQSTARTED[0]
TASKS_SEQSTART[0]
SEQ[0].CNT EVENTS_SEQSTARTED[0]
EVENTS_SEQEND[0] SEQ[0].CNT
430
SEQ[0].ENDDELAY EVENTS_SEQEND[0]
SEQ[0].ENDDELAY
EVENTS_SEQSTARTED[1]
SEQ[1].CNT
EVENTS_SEQEND[1]
(LOOP.CNT - 1) ...
Figure 119: Single shot (LOOP.CNT=0)
EVENTS_SEQSTARTED[0]
duty cycle
last loaded
maintained
SEQ[0].CNT
EVENTS_SEQEND[0]
SEQ[0].ENDDELAY1
EVENTS_SEQSTARTED[1]
SEQ[1].CNT
duty cycle
last loaded
maintained
Peripherals
Peripherals
SEQ[1].ENDDELAY
SEQ[0].ENDDELAY
SEQ[0].ENDDELAY
SEQ[1].ENDDELAY
SEQ[1].CNT
SEQ[0].CNT
SEQ[1].CNT
SEQ[0].CNT
SEQ[1].CNT
100% duty cycle
Previously
loaded last loaded
duty cycle duty cycle
maintained
0% duty cycle
EVENTS_SEQEND[0]
EVENTS_SEQEND[1]
EVENTS_SEQEND[0]
EVENTS_SEQEND[1]
EVENTS_LOOPSDONE
EVENTS_SEQSTARTED[1]
EVENTS_SEQSTARTED[0]
EVENTS_SEQSTARTED[1]
EVENTS_SEQSTARTED[0]
EVENTS_SEQSTARTED[1]
TASKS_SEQSTART[1]
Note: If a sequence is in use in a simple or complex sequence, it must have a length of SEQ[n].CNT
> 0.
This example shows how the PWM module can be configured to repeat a single sequence until stopped.
7.23.3 Limitations
The previous compare value is repeated if the PWM period is shorter than the time it takes for the
EasyDMA to retrieve from RAM and update the internal compare registers. This is to ensure a glitch-free
operation even for very short PWM periods.
Only SEQ[1] can trigger the LOOPSDONE event upon completion, not SEQ[0]. This requires looping to be
enabled (LOOP > 0) and SEQ[1].CNT > 0 when sequence playback starts.
The idle state of a pin is defined by the OUT register in the GPIO module, to ensure that the pins used by
the PWM module are driven correctly. If PWM generation is stopped by triggering a STOP task, the PWM
module itself is temporarily disabled or the device temporarily enters System OFF. This configuration must
be retained in the GPIO for the selected pins (I/Os) for as long as the PWM module is supposed to be
connected to an external PWM circuit.
Only one peripheral can be assigned to drive a particular GPIO pin at a time. Failing to do so may result in
unpredictable behavior.
7.23.5 Registers
Instances
PWM0 : S 0x50021000
APPLICATION US S SA No Pulse width modulation unit 0
PWM0 : NS 0x40021000
PWM1 : S 0x50022000
APPLICATION US S SA No Pulse width modulation unit 1
PWM1 : NS 0x40022000
PWM2 : S 0x50023000
APPLICATION US S SA No Pulse width modulation unit 2
PWM2 : NS 0x40023000
PWM3 : S 0x50024000
APPLICATION US S SA No Pulse width modulation unit 3
PWM3 : NS 0x40024000
Register overview
7.23.5.1 TASKS_STOP
Address offset: 0x004
Stops PWM pulse generation on all channels at the end of current PWM period, and stops sequence
playback
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stops PWM pulse generation on all channels at the end of current PWM
period, and stops sequence playback
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SEQSTART Loads the first PWM value on all enabled channels from sequence n, and
starts playing that sequence at the rate defined in SEQ[n]REFRESH and/or
DECODER.MODE. Causes PWM generation to start if not running.
Trigger 1 Trigger task
7.23.5.3 TASKS_NEXTSTEP
Address offset: 0x010
Steps by one value in the current sequence on all enabled channels if DECODER.MODE=NextStep. Does
not cause PWM generation to start if not running.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_NEXTSTEP Steps by one value in the current sequence on all enabled channels if
DECODER.MODE=NextStep. Does not cause PWM generation to start if not
running.
Trigger 1 Trigger task
7.23.5.4 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SEQSTART[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.23.5.6 SUBSCRIBE_NEXTSTEP
Address offset: 0x090
Subscribe configuration for task NEXTSTEP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task NEXTSTEP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.23.5.7 EVENTS_STOPPED
Address offset: 0x104
Response to STOP task, emitted when PWM pulses are no longer generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED Response to STOP task, emitted when PWM pulses are no longer generated
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SEQSTARTED First PWM period started on sequence n
NotGenerated 0 Event not generated
Generated 1 Event generated
Emitted at end of every sequence n, when last value from RAM has been applied to wave counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SEQEND Emitted at end of every sequence n, when last value from RAM has been
applied to wave counter
NotGenerated 0 Event not generated
Generated 1 Event generated
7.23.5.10 EVENTS_PWMPERIODEND
Address offset: 0x118
Emitted at the end of each PWM period
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_PWMPERIODEND Emitted at the end of each PWM period
NotGenerated 0 Event not generated
Generated 1 Event generated
7.23.5.11 EVENTS_LOOPSDONE
Address offset: 0x11C
Concatenated sequences have been played the amount of times defined in LOOP.CNT
This event triggers after the last SEQ[1] completion of the loop, and only if looping was enabled (LOOP > 0)
when the sequence playback was started.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_LOOPSDONE Concatenated sequences have been played the amount of times defined in
LOOP.CNT
This event triggers after the last SEQ[1] completion of the loop, and only if
looping was enabled (LOOP > 0) when the sequence playback was started.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.23.5.12 PUBLISH_STOPPED
Address offset: 0x184
Publish configuration for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SEQSTARTED[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SEQEND[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.23.5.15 PUBLISH_PWMPERIODEND
Address offset: 0x198
Publish configuration for event PWMPERIODEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event PWMPERIODEND will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.23.5.16 PUBLISH_LOOPSDONE
Address offset: 0x19C
Publish configuration for event LOOPSDONE
This event triggers after the last SEQ[1] completion of the loop, and only if looping was enabled (LOOP > 0)
when the sequence playback was started.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event LOOPSDONE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.23.5.17 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SEQEND0_STOP Shortcut between event SEQEND[0] and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW SEQEND1_STOP Shortcut between event SEQEND[1] and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
C RW LOOPSDONE_SEQSTART0 Shortcut between event LOOPSDONE and task SEQSTART[0]
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW LOOPSDONE_SEQSTART1 Shortcut between event LOOPSDONE and task SEQSTART[1]
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
E RW LOOPSDONE_STOP Shortcut between event LOOPSDONE and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.23.5.18 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW STOPPED Enable or disable interrupt for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Disable
Enabled 1 Enable
C-D RW SEQSTARTED[i] (i=0..1) Enable or disable interrupt for event SEQSTARTED[i]
Disabled 0 Disable
Enabled 1 Enable
E-F RW SEQEND[i] (i=0..1) Enable or disable interrupt for event SEQEND[i]
Disabled 0 Disable
Enabled 1 Enable
G RW PWMPERIODEND Enable or disable interrupt for event PWMPERIODEND
Disabled 0 Disable
Enabled 1 Enable
H RW LOOPSDONE Enable or disable interrupt for event LOOPSDONE
This event triggers after the last SEQ[1] completion of the loop, and only if
looping was enabled (LOOP > 0) when the sequence playback was started.
Disabled 0 Disable
Enabled 1 Enable
7.23.5.19 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C-D RW SEQSTARTED[i] (i=0..1) Write '1' to enable interrupt for event SEQSTARTED[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E-F RW SEQEND[i] (i=0..1) Write '1' to enable interrupt for event SEQEND[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW PWMPERIODEND Write '1' to enable interrupt for event PWMPERIODEND
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW LOOPSDONE Write '1' to enable interrupt for event LOOPSDONE
This event triggers after the last SEQ[1] completion of the loop, and only if
looping was enabled (LOOP > 0) when the sequence playback was started.
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.23.5.20 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C-D RW SEQSTARTED[i] (i=0..1) Write '1' to disable interrupt for event SEQSTARTED[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E-F RW SEQEND[i] (i=0..1) Write '1' to disable interrupt for event SEQEND[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW PWMPERIODEND Write '1' to disable interrupt for event PWMPERIODEND
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW LOOPSDONE Write '1' to disable interrupt for event LOOPSDONE
This event triggers after the last SEQ[1] completion of the loop, and only if
looping was enabled (LOOP > 0) when the sequence playback was started.
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.23.5.21 ENABLE
Address offset: 0x500
PWM module enable register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable PWM module
Disabled 0 Disabled
Enabled 1 Enable
7.23.5.22 MODE
Address offset: 0x504
Selects operating mode of the wave counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW UPDOWN Selects up mode or up-and-down mode for the counter
Up 0 Up counter, edge-aligned PWM duty cycle
UpAndDown 1 Up and down counter, center-aligned PWM duty cycle
7.23.5.23 COUNTERTOP
Address offset: 0x508
Value up to which the pulse generator counter counts
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A
Reset 0x000003FF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW COUNTERTOP [3..32767] Value up to which the pulse generator counter counts. This register is
ignored when DECODER.MODE=WaveForm and only values from RAM are
used.
7.23.5.24 PRESCALER
Address offset: 0x50C
Configuration for PWM_CLK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PRESCALER Prescaler of PWM_CLK
DIV_1 0 Divide by 1 (16 MHz)
DIV_2 1 Divide by 2 (8 MHz)
DIV_4 2 Divide by 4 (4 MHz)
DIV_8 3 Divide by 8 (2 MHz)
DIV_16 4 Divide by 16 (1 MHz)
DIV_32 5 Divide by 32 (500 kHz)
DIV_64 6 Divide by 64 (250 kHz)
DIV_128 7 Divide by 128 (125 kHz)
7.23.5.25 DECODER
Address offset: 0x510
Configuration of the decoder
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LOAD How a sequence is read from RAM and spread to the compare register
Common 0 1st half word (16-bit) used in all PWM channels 0..3
Grouped 1 1st half word (16-bit) used in channel 0..1; 2nd word in channel 2..3
Individual 2 1st half word (16-bit) in ch.0; 2nd in ch.1; ...; 4th in ch.3
WaveForm 3 1st half word (16-bit) in ch.0; 2nd in ch.1; ...; 4th in COUNTERTOP
B RW MODE Selects source for advancing the active sequence
RefreshCount 0 SEQ[n].REFRESH is used to determine loading internal compare registers
NextStep 1 NEXTSTEP task causes a new value to be loaded to internal compare
registers
7.23.5.26 LOOP
Address offset: 0x514
Number of playbacks of a loop
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CNT Number of playbacks of pattern cycles
Disabled 0 Looping disabled (stop at the end of the sequence)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Beginning address in RAM of this sequence
Note: See the memory chapter for details about which memories
are available for EasyDMA.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CNT Number of values (duty cycles) in this sequence
Disabled 0 Sequence is disabled, and shall not be started as it is empty
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW CNT Number of additional PWM periods between samples loaded into compare
register (load every REFRESH.CNT+1 PWM periods)
Continuous 0 Update every PWM period
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CNT Time added after the sequence in PWM periods
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
ACCREAD ACCDBLREAD
ACC ACCDBL
+ +
SAMPLE
Quadrature decoder
IO router
On-chip
Off-chip Phase A Phase B LED
Mechanical to electrical
Mechanical
device
Quadrature Encoder
A B A B
0 0 0 0 0 No change No change No movement
0 0 0 1 1 Increment No change Movement in positive direction
0 0 1 0 -1 Decrement No change Movement in negative direction
0 0 1 1 2 No change Increment Error: Double transition
0 1 0 0 -1 Decrement No change Movement in negative direction
0 1 0 1 0 No change No change No movement
0 1 1 0 2 No change Increment Error: Double transition
0 1 1 1 1 Increment No change Movement in positive direction
1 0 0 0 1 Increment No change Movement in positive direction
1 0 0 1 2 No change Increment Error: Double transition
1 0 1 0 0 No change No change No movement
1 0 1 1 -1 Decrement No change Movement in negative direction
1 1 0 0 2 No change Increment Error: Double transition
1 1 0 1 -1 Decrement No change Movement in negative direction
1 1 1 0 1 Increment No change Movement in positive direction
1 1 1 1 0 No change No change No movement
7.24.4 Accumulators
The quadrature decoder contains two accumulator registers, ACC and ACCDBL. These registers accumulate
valid motion sample values and the number of detected invalid samples (double transitions), respectively.
The ACC register accumulates all valid values (1/-1) written to the SAMPLE register. This can be useful for
preventing hard real-time requirements from being enforced on the application. When using the ACC
register, the application can fetch data when necessary instead of reading all SAMPLE register output. The
ACC register holds the relative movement of the external mechanical device from the previous clearing
of the ACC register. Sample values indicating a double transition (2) will not be accumulated in the ACC
register.
An ACCOF event is generated if the ACC receives a SAMPLE value that would cause the register to overflow
or underflow. Any SAMPLE value that would cause an ACC overflow or underflow will be discarded, but
any samples that do not cause the ACC to overflow or underflow will still be accepted.
The accumulator ACCDBL accumulates the number of detected double transitions since the previous
clearing of the ACCDBL register.
The ACC and ACCDBL registers can be cleared by the READCLRACC and subsequently read using the
ACCREAD and ACCDBLREAD registers.
The ACC register can be separately cleared by the RDCLRACC and subsequently read using the ACCREAD
registers.
The ACCDBL register can be separately cleared by the RDCLRDBL and subsequently read using the
ACCDBLREAD registers.
The REPORTPER register allows automated capture of multiple samples before sending an event. When
a non-null displacement is captured and accumulated, a REPORTRDY event is sent. When one or more
double-displacements are captured and accumulated, a DBLRDY event is sent. The REPORTPER field in this
register determines how many samples must be accumulated before the contents are evaluated and a
REPORTRDY or DBLRDY event is sent.
Using the RDCLRACC task (manually sent upon receiving the event, or using the DBLRDY_RDCLRACC
shortcut), ACCREAD can then be read.
When a double transition has been captured and accumulated, a DBLRDY event is sent. Using the
RDCLRDBL task (manually sent upon receiving the event, or using the DBLRDY_RDCLRDBL shortcut),
ACCDBLREAD can then be read.
Only one peripheral can be assigned to drive a particular GPIO pin at a time. Failing to do so may result in
unpredictable behavior.
7.24.7 Registers
Instances
QDEC0 : S 0x50033000
APPLICATION US S NA No Quadrature decoder 0
QDEC0 : NS 0x40033000
QDEC1 : S 0x50034000
APPLICATION US S NA No Quadrature decoder 1
QDEC1 : NS 0x40034000
Register overview
7.24.7.1 TASKS_START
Address offset: 0x000
Task starting the quadrature decoder
When started, the SAMPLE register will be continuously updated at the rate given in the SAMPLEPER
register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Task starting the quadrature decoder
When started, the SAMPLE register will be continuously updated at the rate
given in the SAMPLEPER register.
Trigger 1 Trigger task
7.24.7.2 TASKS_STOP
Address offset: 0x004
Task stopping the quadrature decoder
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Task stopping the quadrature decoder
Trigger 1 Trigger task
7.24.7.3 TASKS_READCLRACC
Address offset: 0x008
Read and clear ACC and ACCDBL
Task transferring the content of ACC to ACCREAD and the content of ACCDBL to ACCDBLREAD, and then
clearing the ACC and ACCDBL registers. These read-and-clear operations will be done atomically.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_READCLRACC Read and clear ACC and ACCDBL
Task transferring the content of ACC to ACCREAD and the content of ACCDBL
to ACCDBLREAD, and then clearing the ACC and ACCDBL registers. These
read-and-clear operations will be done atomically.
Trigger 1 Trigger task
7.24.7.4 TASKS_RDCLRACC
Address offset: 0x00C
Read and clear ACC
Task transferring the content of ACC to ACCREAD, and then clearing the ACC register. This read-and-clear
operation will be done atomically.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RDCLRACC Read and clear ACC
Task transferring the content of ACC to ACCREAD, and then clearing the ACC
register. This read-and-clear operation will be done atomically.
Trigger 1 Trigger task
7.24.7.5 TASKS_RDCLRDBL
Address offset: 0x010
Read and clear ACCDBL
Task transferring the content of ACCDBL to ACCDBLREAD, and then clearing the ACCDBL register. This read-
and-clear operation will be done atomically.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RDCLRDBL Read and clear ACCDBL
7.24.7.6 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
When started, the SAMPLE register will be continuously updated at the rate given in the SAMPLEPER
register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.24.7.7 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.24.7.8 SUBSCRIBE_READCLRACC
Address offset: 0x088
Subscribe configuration for task READCLRACC
Task transferring the content of ACC to ACCREAD and the content of ACCDBL to ACCDBLREAD, and then
clearing the ACC and ACCDBL registers. These read-and-clear operations will be done atomically.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task READCLRACC will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.24.7.9 SUBSCRIBE_RDCLRACC
Address offset: 0x08C
Subscribe configuration for task RDCLRACC
Task transferring the content of ACC to ACCREAD, and then clearing the ACC register. This read-and-clear
operation will be done atomically.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RDCLRACC will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.24.7.10 SUBSCRIBE_RDCLRDBL
Address offset: 0x090
Subscribe configuration for task RDCLRDBL
Task transferring the content of ACCDBL to ACCDBLREAD, and then clearing the ACCDBL register. This read-
and-clear operation will be done atomically.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RDCLRDBL will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.24.7.11 EVENTS_SAMPLERDY
Address offset: 0x100
Event being generated for every new sample value written to the SAMPLE register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SAMPLERDY Event being generated for every new sample value written to the SAMPLE
register
NotGenerated 0 Event not generated
Generated 1 Event generated
7.24.7.12 EVENTS_REPORTRDY
Address offset: 0x104
Non-null report ready
Event generated when REPORTPER number of samples has been accumulated in the ACC register and the
content of the ACC register is not equal to 0. (Thus, this event is only generated if a motion is detected
since the previous clearing of the ACC register).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_REPORTRDY Non-null report ready
7.24.7.13 EVENTS_ACCOF
Address offset: 0x108
ACC or ACCDBL register overflow
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ACCOF ACC or ACCDBL register overflow
NotGenerated 0 Event not generated
Generated 1 Event generated
7.24.7.14 EVENTS_DBLRDY
Address offset: 0x10C
Double displacement(s) detected
Event generated when REPORTPER number of samples has been accumulated and the content of the
ACCDBL register is not equal to 0. (Thus, this event is only generated if a double transition is detected
since the previous clearing of the ACCDBL register).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DBLRDY Double displacement(s) detected
7.24.7.15 EVENTS_STOPPED
Address offset: 0x110
QDEC has been stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED QDEC has been stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.24.7.16 PUBLISH_SAMPLERDY
Address offset: 0x180
Publish configuration for event SAMPLERDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SAMPLERDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.24.7.17 PUBLISH_REPORTRDY
Address offset: 0x184
Publish configuration for event REPORTRDY
Event generated when REPORTPER number of samples has been accumulated in the ACC register and the
content of the ACC register is not equal to 0. (Thus, this event is only generated if a motion is detected
since the previous clearing of the ACC register).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event REPORTRDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.24.7.18 PUBLISH_ACCOF
Address offset: 0x188
Publish configuration for event ACCOF
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ACCOF will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.24.7.19 PUBLISH_DBLRDY
Address offset: 0x18C
Publish configuration for event DBLRDY
Event generated when REPORTPER number of samples has been accumulated and the content of the
ACCDBL register is not equal to 0. (Thus, this event is only generated if a double transition is detected
since the previous clearing of the ACCDBL register).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DBLRDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.24.7.20 PUBLISH_STOPPED
Address offset: 0x190
Publish configuration for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.24.7.21 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW REPORTRDY_READCLRACC Shortcut between event REPORTRDY and task READCLRACC
Disabled 0 Disable shortcut
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Enable shortcut
B RW SAMPLERDY_STOP Shortcut between event SAMPLERDY and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
C RW REPORTRDY_RDCLRACC Shortcut between event REPORTRDY and task RDCLRACC
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW REPORTRDY_STOP Shortcut between event REPORTRDY and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
E RW DBLRDY_RDCLRDBL Shortcut between event DBLRDY and task RDCLRDBL
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
F RW DBLRDY_STOP Shortcut between event DBLRDY and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
G RW SAMPLERDY_READCLRACC Shortcut between event SAMPLERDY and task READCLRACC
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.24.7.22 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SAMPLERDY Write '1' to enable interrupt for event SAMPLERDY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW REPORTRDY Write '1' to enable interrupt for event REPORTRDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
D RW DBLRDY Write '1' to enable interrupt for event DBLRDY
7.24.7.23 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SAMPLERDY Write '1' to disable interrupt for event SAMPLERDY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW REPORTRDY Write '1' to disable interrupt for event REPORTRDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.24.7.24 ENABLE
Address offset: 0x500
Enable the quadrature decoder
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- RW ENABLE Enable or disable the quadrature decoder
When enabled the decoder pins will be active. When disabled the
quadrature decoder pins are not active and can be used as GPIO .
Disabled 0 Disable
Enabled 1 Enable
7.24.7.25 LEDPOL
Address offset: 0x504
LED output pin polarity
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LEDPOL LED output pin polarity
ActiveLow 0 Led active on output pin low
ActiveHigh 1 Led active on output pin high
7.24.7.26 SAMPLEPER
Address offset: 0x508
Sample period
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SAMPLEPER Sample period. The SAMPLE register will be updated for every new sample
128us 0 128 µs
256us 1 256 µs
512us 2 512 µs
1024us 3 1024 µs
2048us 4 2048 µs
4096us 5 4096 µs
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
8192us 6 8192 µs
16384us 7 16384 µs
32ms 8 32768 µs
65ms 9 65536 µs
131ms 10 131072 µs
7.24.7.27 SAMPLE
Address offset: 0x50C
Motion sample value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SAMPLE [-1..2] Last motion sample
The value is a 2's complement value, and the sign gives the direction of the
motion. The value '2' indicates a double transition.
7.24.7.28 REPORTPER
Address offset: 0x510
Number of samples to be taken before REPORTRDY and DBLRDY events can be generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW REPORTPER Specifies the number of samples to be accumulated in the ACC register
before the REPORTRDY and DBLRDY events can be generated.
The report period in [µs] is given as: RPUS = SP * RP Where RPUS is the
report period in [µs/report], SP is the sample period in [µs/sample] specified
in SAMPLEPER, and RP is the report period in [samples/report] specified in
REPORTPER .
10Smpl 0 10 samples/report
40Smpl 1 40 samples/report
80Smpl 2 80 samples/report
120Smpl 3 120 samples/report
160Smpl 4 160 samples/report
200Smpl 5 200 samples/report
240Smpl 6 240 samples/report
280Smpl 7 280 samples/report
1Smpl 8 1 sample/report
7.24.7.29 ACC
Address offset: 0x514
Register accumulating the valid transitions
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ACC [-1024..1023] Register accumulating all valid samples (not double transition) read from the
SAMPLE register.
7.24.7.30 ACCREAD
Address offset: 0x518
Snapshot of the ACC register, updated by the READCLRACC or RDCLRACC task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ACCREAD [-1024..1023] Snapshot of the ACC register.
7.24.7.31 PSEL.LED
Address offset: 0x51C
Pin select for LED signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.24.7.32 PSEL.A
Address offset: 0x520
Pin select for A signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.24.7.33 PSEL.B
Address offset: 0x524
Pin select for B signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.24.7.34 DBFEN
Address offset: 0x528
Enable input debounce filters
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DBFEN Enable input debounce filters
Disabled 0 Debounce input filters disabled
Enabled 1 Debounce input filters enabled
7.24.7.35 LEDPRE
Address offset: 0x540
Time period the LED is switched ON prior to sampling
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A
Reset 0x00000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
ID R/W Field Value ID Value Description
A RW LEDPRE [1..511] Period in µs the LED is switched on prior to sampling
7.24.7.36 ACCDBL
Address offset: 0x544
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ACCDBL [0..15] Register accumulating the number of detected double or illegal transitions.
( SAMPLE = 2 ).
When this register has reached its maximum value, the accumulation
of double/illegal transitions will stop. An overflow event (ACCOF) will
be generated if any double or illegal transitions are detected after the
maximum value was reached. This field is cleared by triggering the
READCLRACC or RDCLRDBL task.
7.24.7.37 ACCDBLREAD
Address offset: 0x548
Snapshot of the ACCDBL, updated by the READCLRACC or RDCLRDBL task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ACCDBLREAD [0..15] Snapshot of the ACCDBL register. This field is updated when the
READCLRACC or RDCLRDBL task is triggered.
Deactivate
WriteStart
EraseStart
ReadStart
Activate
QSPI
PSEL.SCK
PSEL.CSN
PSEL.IO0
PSEL.IO1
EasyDMA XIP PSEL.IO2
PSEL.IO3
Ready
Note:
If the IFCONFIG0 register is configured to use the quad mode, the external flash device also needs
to be set in the quad mode before any data transfers can take place.
This can be done by sending custom instructions to the external flash device, as described in
Sending custom instructions on page 465.
RAM
0x60000000
Peripheral
0x40000000 XIP
SRAM
0x20000000
XIP
Code XIPOFFSET
0x00000000 0x00000000
7.25.6 Encryption
The contents of an external flash memory can be protected using stream cipher encryption. Encryption
can be configured and enabled independently for XIP and EasyDMA, with separate keys and nonce.
Once configured and enabled, the stream cipher operates between the AHB bus and the external flash,
encrypting and decrypting data passing through.
The following figure shows the stream cipher block with the three configuration registers. The stream
cipher uses an AES 128 encryption operation to form the keystream from key, nonce, and external
memory address. The keystream then combines each 32-bit plaintext digit one at a time with the
corresponding digit of the keystream.
ENC.KEY[127:0]
ADDR[3:2]
DATA IN[31:0]
DATA OUT[31:0]
ENC.ENABLE
The same nonce and key must be used for both encryption and decryption of the same memory address.
The memory address used for encryption is the external flash memory address and thus independent
of XIPOFFSET on page 483. This means a second firmware image can be encrypted and written using
EasyDMA, then XIPOFFSET on page 483 set to point to the new firmware image before executing from
it.
Stream ciphers are symmetric. They do not differentiate between encrypting or decrypting, reading or
writing. Thus, if the contents of a plain text external flash is read when stream cipher is enabled, the data
provided to the MCU is encrypted.
EasyDMA
Enable the stream cipher for QSPI EasyDMA by doing the following steps.
1. Configure keys using DMA_ENC.KEY0 on page 486 through DMA_ENC.KEY3 on page 487.
2. Configure nonce using DMA_ENC.NONCE0 on page 487 through DMA_ENC.NONCE2 on page 488.
3. Set DMA_ENC.ENABLE on page 488.
Any data read from or written to the external flash over the EasyDMA interface will now pass through the
stream cipher.
CSN
IO2 LIO2
IO3 LIO3
Optional
0 1 2 3 4 5 6 7 0 1 2 3 21 22 23 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
24-bit
Command – 0Bh address 8 dummy bits 1 2
IO0 23 22 21 20 2 1 0
IO1 Hi-Z
7 6 5 4 3 2 1 0 7 6
IO2
IO3
0 1 2 3 4 5 6 7 0 1 2 3 21 22 23 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
24-bit
Command – 3Bh address 8 dummy bits 1 2 3
IO0 23 22 21 20 2 1 0 6 4 2 0 6 4 2 0 6 4
IO1 Hi-Z
7 5 3 1 7 5 3 1 7 5
IO2
IO3
Byte 1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
4 dummy
Command – BBh 24-bit address bits 1 2 3
IO0 22 20 18 16 14 12 10 8 6 4 2 0 6 4 2 0 6 4 2 0 6 4
IO1 Hi-Z 23 21 19 17 15 13 11 9 7 5 3 1 7 5 3 1 7 5 3 1 7 5
IO2
IO3
0 1 2 3 4 5 6 7 0 1 2 3 21 22 23 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
24-bit
Command – 6Bh address 8 dummy bits 1 2 3 4 5
IO0 23 22 21 20 2 1 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z
5 1 5 1 5 1 5 1 5 1
IO2 6 2 6 2 6 2 6 2 6 2
IO3 7 3 7 3 7 3 7 3 7 3
Byte 1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
4 dummy
Command – EBh 24-bit address 2 zeros bits 1 2 3 4 5 6 7
IO0 20 16 12 8 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z 21 17 13 9 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1
IO2 22 18 14 10 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2
IO3 23 19 15 11 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3
0 1 2 3 4 5 6 7 0 1 2 3 21 22 23 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
24-bit
Command – 02h address 1 2 3
IO0 23 22 21 20 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6
IO1 Hi-Z
IO2
IO3
Byte 1 Byte 2, 3, 4
0 1 2 3 4 5 6 7 0 1 2 3 21 22 23 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
24-bit
Command – A2h address 1 2 3 4 5
IO0 23 22 21 20 2 1 0 6 4 3 0 6 4 2 0 6 4 2 0 6 4 2 0 6 4
IO1 Hi-Z
7 5 3 1 7 5 3 1 7 5 3 1 7 5 3 1 7 5
IO2
IO3
Byte 1 Byte 2, 3, 4
0 1 2 3 4 5 6 7 0 1 2 3 21 22 23 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
24-bit
Command – 32h address 1 2 3 4 5 6 7 8 9
IO0 23 22 21 20 2 1 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z
5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1
IO2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2
IO3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3
Figure 134: 24-bit PP4O (quad page program output), SPIMODE = MODE0
Byte 1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
IO0 20 16 12 8 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z 21 17 13 9 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1
IO2 22 18 14 10 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2
IO3 23 19 15 11 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3
Figure 135: 24-bit PP4IO (quad page program input/output), SPIMODE = MODE0
0 1 2 3 4 5 6 7 0 1 2 3 29 30 31 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
32-bit
Command – 0Bh address 8 dummy bits 1 2
IO0 31 30 29 28 2 1 0
IO1 Hi-Z
7 6 5 4 3 2 1 0 7 6
IO2
IO3
0 1 2 3 4 5 6 7 0 1 2 3 29 30 31 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
32-bit
Command – 3Bh address 8 dummy bits 1 2 3
IO0 31 30 29 28 2 1 0 6 4 2 0 6 4 2 0 6 4
IO1 Hi-Z
7 5 3 1 7 5 3 1 7 5
IO2
IO3
Byte 1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
4 dummy
Command – BBh 32-bit address bits 1 2
IO0 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0 6 4 2 0 6 4
IO1 Hi-Z 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 7 5 3 1 7 5
IO2
IO3
0 1 2 3 4 5 6 7 0 1 2 3 29 30 31 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
32-bit
Command – 6Bh address 8 dummy bits 1 2 3 4 5
IO0 31 30 29 28 2 1 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z
5 1 5 1 5 1 5 1 5 1
IO2 6 2 6 2 6 2 6 2 6 2
IO3 7 3 7 3 7 3 7 3 7 3
Byte 1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data in
IO0 28 24 20 16 12 8 4 0 4 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z 29 25 21 17 13 9 5 1 5 1 5 1 5 1 5 1 5 1 5 1
IO2 30 26 22 18 14 10 6 2 6 2 6 2 6 2 6 2 6 2 6 2
IO3 31 27 23 19 15 11 7 3 7 3 7 3 7 3 7 3 7 3 7 3
0 1 2 3 4 5 6 7 0 1 2 3 29 30 31 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
32-bit
Command – 02h address 1 2 3
IO0 31 30 29 28 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6
IO1 Hi-Z
IO2
IO3
Byte 1 Byte 2, 3, 4, 5
0 1 2 3 4 5 6 7 0 1 2 3 29 30 31 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
32-bit
Command – A2h address 1 2 3 4 5
IO0 31 30 29 28 2 1 0 6 4 3 0 6 4 2 0 6 4 2 0 6 4 2 0 6 4
IO1 Hi-Z
7 5 3 1 7 5 3 1 7 5 3 1 7 5 3 1 7 5
IO2
IO3
0 1 2 3 4 5 6 7 0 1 2 3 29 30 31 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
32-bit
Command – 32h address 1 2 3 4 5 6 7 8 9
IO0 31 30 29 28 2 1 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z
5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1
IO2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2
IO3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3
Byte 1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1
SCK
CSN
Data out
IO0 28 24 20 16 12 8 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0
IO1 Hi-Z 29 25 21 17 13 9 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1
IO2 29 26 22 18 14 10 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2
IO3 30 27 23 19 15 11 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3
Figure 144: 32-bit PP4IO (quad page program input/output), SPIMODE = MODE0
7.25.11 Registers
Instances
Configuration
Register overview
7.25.11.1 TASKS_ACTIVATE
Address offset: 0x000
Activate QSPI interface
Triggering this task activates the external flash memory interface and initiates communication with the
external memory. The READY event is generated when the activation has been completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_ACTIVATE Activate QSPI interface
Triggering this task activates the external flash memory interface and
initiates communication with the external memory. The READY event is
generated when the activation has been completed.
Trigger 1 Trigger task
7.25.11.2 TASKS_READSTART
Address offset: 0x004
Start transfer from external flash memory to internal RAM
The READY event will be generated when transfer is complete.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_READSTART Start transfer from external flash memory to internal RAM
7.25.11.3 TASKS_WRITESTART
Address offset: 0x008
Start transfer from internal RAM to external flash memory
The READY event will be generated when transfer is complete.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_WRITESTART Start transfer from internal RAM to external flash memory
7.25.11.4 TASKS_ERASESTART
Address offset: 0x00C
Start external flash memory erase operation
The READY event will be generated when the erase operation has been started. The generation of the
READY event does not imply that the erase operation is completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_ERASESTART Start external flash memory erase operation
The READY event will be generated when the erase operation has been
started. The generation of the READY event does not imply that the erase
operation is completed.
Trigger 1 Trigger task
7.25.11.5 TASKS_DEACTIVATE
Address offset: 0x010
Deactivate QSPI interface
This task might be needed to optimize current consumption in case there are any added current
consumption when QSPI interface is activated, but idle.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_DEACTIVATE Deactivate QSPI interface
7.25.11.6 SUBSCRIBE_ACTIVATE
Address offset: 0x080
Subscribe configuration for task ACTIVATE
Triggering this task activates the external flash memory interface and initiates communication with the
external memory. The READY event is generated when the activation has been completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task ACTIVATE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.25.11.7 SUBSCRIBE_READSTART
Address offset: 0x084
Subscribe configuration for task READSTART
The READY event will be generated when transfer is complete.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task READSTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.25.11.8 SUBSCRIBE_WRITESTART
Address offset: 0x088
Subscribe configuration for task WRITESTART
The READY event will be generated when transfer is complete.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task WRITESTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.25.11.9 SUBSCRIBE_ERASESTART
Address offset: 0x08C
Subscribe configuration for task ERASESTART
The READY event will be generated when the erase operation has been started. The generation of the
READY event does not imply that the erase operation is completed.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task ERASESTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.25.11.10 SUBSCRIBE_DEACTIVATE
Address offset: 0x090
Subscribe configuration for task DEACTIVATE
This task might be needed to optimize current consumption in case there are any added current
consumption when QSPI interface is activated, but idle.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task DEACTIVATE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.25.11.11 EVENTS_READY
Address offset: 0x100
QSPI peripheral is ready. This event will be generated as a response to all QSPI tasks except DEACTIVATE.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_READY QSPI peripheral is ready. This event will be generated as a response to all
QSPI tasks except DEACTIVATE.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.25.11.12 PUBLISH_READY
Address offset: 0x180
Publish configuration for event READY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event READY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.25.11.13 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Enable or disable interrupt for event READY
Disabled 0 Disable
Enabled 1 Enable
7.25.11.14 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to enable interrupt for event READY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.25.11.15 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to disable interrupt for event READY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.25.11.16 ENABLE
Address offset: 0x500
Enable QSPI peripheral and acquire the pins selected in PSELn registers
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable QSPI
Disabled 0 Disable QSPI
Enabled 1 Enable QSPI
7.25.11.17 READ.SRC
Address offset: 0x504
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SRC Word-aligned flash memory source address.
7.25.11.18 READ.DST
Address offset: 0x508
RAM destination address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DST Word-aligned RAM destination address.
7.25.11.19 READ.CNT
Address offset: 0x50C
Read transfer length
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CNT Read transfer length in number of bytes. The length must be a multiple of 4
bytes.
7.25.11.20 WRITE.DST
Address offset: 0x510
Flash destination address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DST Word-aligned flash destination address.
7.25.11.21 WRITE.SRC
Address offset: 0x514
RAM source address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SRC Word-aligned RAM source address.
7.25.11.22 WRITE.CNT
Address offset: 0x518
Write transfer length
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CNT Write transfer length in number of bytes. The length must be a multiple of 4
bytes.
7.25.11.23 ERASE.PTR
Address offset: 0x51C
Start address of flash block to be erased
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Word-aligned start address of block to be erased.
7.25.11.24 ERASE.LEN
Address offset: 0x520
Size of block to be erased.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LEN LEN
4KB 0 Erase 4 kB block (flash command 0x20)
64KB 1 Erase 64 kB block (flash command 0xD8)
All 2 Erase all (flash command 0xC7)
7.25.11.25 PSEL.SCK
Address offset: 0x524
Pin select for serial clock SCK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.25.11.26 PSEL.CSN
Address offset: 0x528
Pin select for chip select signal CSN.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.25.11.27 PSEL.IO0
Address offset: 0x530
Pin select for serial data MOSI/IO0.
Serial data output (MOSI) during single mode, or serial data IO0 during quad mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.25.11.28 PSEL.IO1
Address offset: 0x534
Pin select for serial data MISO/IO1.
Serial data input (MISO) during single mode, or serial data IO1 during quad mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.25.11.29 PSEL.IO2
Address offset: 0x538
Pin select for serial data WP/IO2.
In single mode, this pin can control Write protect (WP, active low).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.25.11.30 PSEL.IO3
Address offset: 0x53C
Pin select for serial data HOLD/IO3.
In single mode, this pin can can pause the device (HOLD, active low).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.25.11.31 XIPOFFSET
Address offset: 0x540
Address offset into the external memory for Execute in Place operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW XIPOFFSET Address offset into the external memory for Execute in Place operation.
Value must be a multiple of 4.
7.25.11.32 IFCONFIG0
Address offset: 0x544
Interface configuration.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B B B A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READOC Configure number of data lines and opcode used for reading.
FASTREAD 0 Single data line SPI. FAST_READ (opcode 0x0B).
READ2O 1 Dual data line SPI. READ2O (opcode 0x3B).
READ2IO 2 Dual data line SPI. READ2IO (opcode 0xBB).
READ4O 3 Quad data line SPI. READ4O (opcode 0x6B).
READ4IO 4 Quad data line SPI. READ4IO (opcode 0xEB).
B RW WRITEOC Configure number of data lines and opcode used for writing.
PP 0 Single data line SPI. PP (opcode 0x02).
PP2O 1 Dual data line SPI. PP2O (opcode 0xA2).
PP4O 2 Quad data line SPI. PP4O (opcode 0x32).
PP4IO 3 Quad data line SPI. PP4IO (opcode 0x38).
C RW ADDRMODE Addressing mode.
24BIT 0 24-bit addressing.
32BIT 1 32-bit addressing.
D RW DPMENABLE Enable deep power-down mode (DPM) feature.
Disable 0 Disable DPM feature.
Enable 1 Enable DPM feature.
E RW PPSIZE Page size for commands PP, PP2O, PP4O and PP4IO.
256Bytes 0 256 bytes.
512Bytes 1 512 bytes.
7.25.11.33 XIPEN
Address offset: 0x54C
Enable Execute in Place operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW XIPEN Enable XIP AHB Slave interface and access to XIP memory range
7.25.11.34 XIP_ENC.KEY0
Address offset: 0x560
Bits 31:0 of XIP AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY0 Bits 31:0 of XIP AES KEY
7.25.11.35 XIP_ENC.KEY1
Address offset: 0x564
Bits 63:32 of XIP AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY1 Bits 63:32 of XIP AES KEY
7.25.11.36 XIP_ENC.KEY2
Address offset: 0x568
Bits 95:64 of XIP AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY2 Bits 95:64 of XIP AES KEY
7.25.11.37 XIP_ENC.KEY3
Address offset: 0x56C
Bits 127:96 of XIP AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY3 Bits 127:96 of XIP AES KEY
7.25.11.38 XIP_ENC.NONCE0
Address offset: 0x570
Bits 31:0 of XIP NONCE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W NONCE0 Bits 31:0 of XIP NONCE
7.25.11.39 XIP_ENC.NONCE1
Address offset: 0x574
Bits 63:32 of XIP NONCE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W NONCE1 Bits 63:32 of XIP NONCE
7.25.11.40 XIP_ENC.NONCE2
Address offset: 0x578
Bits 95:64 of XIP NONCE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W NONCE2 Bits 95:64 of XIP NONCE
7.25.11.41 XIP_ENC.ENABLE
Address offset: 0x57C
Enable stream cipher for XIP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable stream cipher for XIP
Disabled 0 Disable stream cipher for QSPI XIP
Enabled 1 Enable stream cipher for QSPI XIP
7.25.11.42 DMA_ENC.KEY0
Address offset: 0x580
Bits 31:0 of DMA AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY0 Bits 31:0 of DMA AES KEY
7.25.11.43 DMA_ENC.KEY1
Address offset: 0x584
Bits 63:32 of DMA AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY1 Bits 63:32 of DMA AES KEY
7.25.11.44 DMA_ENC.KEY2
Address offset: 0x588
Bits 95:64 of DMA AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY2 Bits 95:64 of DMA AES KEY
7.25.11.45 DMA_ENC.KEY3
Address offset: 0x58C
Bits 127:96 of DMA AES KEY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W KEY3 Bits 127:96 of DMA AES KEY
7.25.11.46 DMA_ENC.NONCE0
Address offset: 0x590
Bits 31:0 of DMA NONCE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W NONCE0 Bits 31:0 of DMA NONCE
7.25.11.47 DMA_ENC.NONCE1
Address offset: 0x594
Bits 63:32 of DMA NONCE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W NONCE1 Bits 63:32 of DMA NONCE
7.25.11.48 DMA_ENC.NONCE2
Address offset: 0x598
Bits 95:64 of DMA NONCE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W NONCE2 Bits 95:64 of DMA NONCE
7.25.11.49 DMA_ENC.ENABLE
Address offset: 0x59C
Enable stream cipher for EasyDMA
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable stream cipher for EasyDMA
Disabled 0 Disable stream cipher for QSPI EasyDMA
Enabled 1 Enable stream cipher for QSPI EasyDMA
7.25.11.50 IFCONFIG1
Address offset: 0x600
Interface configuration.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D C B A A A A A A A A
Reset 0x00040480 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SCKDELAY [0..255] Minimum amount of time that the CSN pin must stay high before it can go
low again.
7.25.11.51 STATUS
Address offset: 0x604
Status register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C C C C C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R DPM Deep power-down mode (DPM) status of external flash.
Disabled 0 External flash is not in DPM.
Enabled 1 External flash is in DPM.
B R READY Ready status.
READY 1 QSPI peripheral is ready. It is allowed to trigger new tasks, writing custom
instructions or enter/exit DPM.
BUSY 0 QSPI peripheral is busy. It is not allowed to trigger any new tasks, writing
custom instructions or enter/exit DPM.
C R SREG Value of external flash device Status Register. When the external flash has
two bytes status register this field includes the value of the low byte.
7.25.11.52 DPMDUR
Address offset: 0x614
Set the duration required to enter/exit deep power-down mode (DPM).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW ENTER [0..0xFFFF] Duration needed by external flash to enter DPM.
7.25.11.53 ADDRCONF
Address offset: 0x624
Extended address configuration.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x000000B7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1
ID R/W Field Value ID Value Description
A RW OPCODE [0xFF..0] Opcode that enters the 32-bit addressing mode.
B RW BYTE0 [0xFF..0] Byte 0 following opcode.
C RW BYTE1 [0xFF..0] Byte 1 following byte 0.
D RW MODE Extended addressing mode.
NoInstr 0 Do not send any instruction.
Opcode 1 Send opcode.
OpByte0 2 Send opcode, BYTE0.
All 3 Send opcode, BYTE0, BYTE1.
E RW WIPWAIT Wait for write complete before sending command.
Disable 0 No wait.
Enable 1 Wait.
F RW WREN Send WREN (write enable opcode 0x06) before instruction.
Disable 0 Do not send WREN.
Enable 1 Send WREN.
7.25.11.54 CINSTRCONF
Address offset: 0x634
Custom instruction configuration register.
A new custom instruction is sent every time this register is written. The READY event will be generated
when the custom instruction has been sent.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B B B B A A A A A A A A
Reset 0x00002000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OPCODE [0..255] Opcode of Custom instruction.
B RW LENGTH Length of custom instruction in number of bytes.
1B 1 Send opcode only.
2B 2 Send opcode, CINSTRDAT0.BYTE0.
3B 3 Send opcode, CINSTRDAT0.BYTE0 -> CINSTRDAT0.BYTE1.
4B 4 Send opcode, CINSTRDAT0.BYTE0 -> CINSTRDAT0.BYTE2.
5B 5 Send opcode, CINSTRDAT0.BYTE0 -> CINSTRDAT0.BYTE3.
6B 6 Send opcode, CINSTRDAT0.BYTE0 -> CINSTRDAT1.BYTE4.
7B 7 Send opcode, CINSTRDAT0.BYTE0 -> CINSTRDAT1.BYTE5.
8B 8 Send opcode, CINSTRDAT0.BYTE0 -> CINSTRDAT1.BYTE6.
9B 9 Send opcode, CINSTRDAT0.BYTE0 -> CINSTRDAT1.BYTE7.
C RW LIO2 [0..1] Level of the IO2 pin (if connected) during transmission of custom
instruction.
D RW LIO3 [0..1] Level of the IO3 pin (if connected) during transmission of custom
instruction.
E RW WIPWAIT Wait for write complete before sending command.
Disable 0 No wait.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B B B B A A A A A A A A
Reset 0x00002000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enable 1 Wait.
F RW WREN Send WREN (write enable opcode 0x06) before instruction.
Disable 0 Do not send WREN.
Enable 1 Send WREN.
G RW LFEN Enable Long frame mode. When enabled, a custom instruction transaction
has to be ended by writing the LFSTOP field.
Disable 0 Long frame mode disabled
Enable 1 Long frame mode enabled
H RW LFSTOP Stop (finalize) long frame transaction
Stop 1 Stop
7.25.11.55 CINSTRDAT0
Address offset: 0x638
Custom instruction data register 0.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BYTE0 [0..0xFF] Data byte 0
B RW BYTE1 [0..0xFF] Data byte 1
C RW BYTE2 [0..0xFF] Data byte 2
D RW BYTE3 [0..0xFF] Data byte 3
7.25.11.56 CINSTRDAT1
Address offset: 0x63C
Custom instruction data register 1.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BYTE4 [0..0xFF] Data byte 4
B RW BYTE5 [0..0xFF] Data byte 5
C RW BYTE6 [0..0xFF] Data byte 6
D RW BYTE7 [0..0xFF] Data byte 7
7.25.11.57 IFTIMING
Address offset: 0x640
SPI interface timing.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RXDELAY [7..0] Timing related to sampling of the input serial data. The value of RXDELAY
specifies the number of prescaled 192 MHz cycles delay from the the
rising edge of the SPI Clock (SCK) until the input serial data is sampled. For
example, if RXDELAY is set to 0, the input serial data is sampled on the rising
edge of SCK.
SCK
tMOH tMOH
MEM_O
RAM RADIO
S0 2.4 GHz
CRC Dewhitening
Packet receiver
L
disassembler
S1
EasyDMA
Payload
IFS
Bit counter
control unit
S0 ANT1
L Packet
assembler 2.4 GHz
S1 CRC Whitening
transmitter
Payload MAXLEN
RADIO includes a device address match unit and an interframe spacing control unit that can be utilized to
simplify device filtering and interframe spacing in Bluetooth Low Energy and similar applications.
RADIO also includes a received signal strength indicator (RSSI) and a bit counter. The bit counter generates
events when a preconfigured number of bits are sent or received by RADIO.
LSBit
LSBit
TERM
MSBit
LSBit
LSBit
LSBit
LSBit
Figure 148: On-air packet layout for Long Range (125 kbps and 500 kbps) Bluetooth Low Energy modes
Not shown in the figures is the static payload add-on (the length of which is defined in PCNF1.STATLEN,
and which is 0 bytes in a standard BLE packet). The static payload add-on is sent between PAYLOAD and
CRC fields. RADIO sends the different fields in the packet in the order they are illustrated above, from left
to right.
PREAMBLE is sent with least significant bit first on air. The size of the PREAMBLE depends on the mode
selected in the MODE register:
• The PREAMBLE is one byte for MODE = Ble_1Mbit as well as all Nordic proprietary operating modes
(MODE = Nrf_1Mbit and MODE = Nrf_2Mbit), and PCNF0.PLEN has to be set accordingly. If the first bit
of the ADDRESS is 0, the preamble will be set to 0xAA. Otherwise the PREAMBLE will be set to 0x55.
• For MODE = Ble_2Mbit, the PREAMBLE must be set to 2 bytes through PCNF0.PLEN. If the first bit of
the ADDRESS is 0, the preamble will be set to 0xAAAA. Otherwise the PREAMBLE will be set to 0x5555.
• For MODE = Ble_LR125Kbit and MODE = Ble_LR500Kbit, the PREAMBLE is 10 repetitions of 0x3C.
• For MODE = Ieee802154_250Kbit, the PREAMBLE is 4 bytes and set to all zeros.
Radio packets are stored in memory inside instances of a RADIO packet data structure as illustrated below.
The PREAMBLE, ADDRESS, CI, TERM1, TERM2, and CRC fields are omitted in this data structure. Fields S0,
LENGTH, and S1 are optional.
S0 LENGTH S1 PAYLOAD
0 LSByte n
The byte ordering on air is always least significant byte first for the ADDRESS and PAYLOAD fields, and
most significant byte first for the CRC field. The ADDRESS fields are always transmitted and received
least significant bit first. The CRC field is always transmitted and received most significant bit first. The
endianness, i.e. the order in which the bits are sent and received, of the S0, LENGTH, S1, and PAYLOAD
fields can be configured via PCNF1.ENDIAN.
The sizes of the S0, LENGTH, and S1 fields can be individually configured via S0LEN, LFLEN, and S1LEN in
PCNF0 respectively. If any of these fields are configured to be less than 8 bits, the least significant bits of
the fields are used.
If S0, LENGTH, or S1 are specified with zero length, their fields will be omitted in memory. Otherwise each
field will be represented as a separate byte, regardless of the number of bits in their on-air counterpart.
Independent of the configuration of PCNF1.MAXLEN, the combined length of S0, LENGTH, S1, and
PAYLOAD cannot exceed 258 bytes.
D0 D4 D7 Data out
+ +
Position 0 1 2 3 4 5 6
Data in
Whitening and de-whitening will be performed over the whole packet except for the preamble and the
address fields.
Including the address field in CRC check (CRCCNF.SKIPADDR=Include) is not supported for whitened
packets.
7.26.4 CRC
The CRC generator in RADIO calculates the CRC over the whole packet excluding the preamble.
If useful, the address field can be excluded from the CRC calculation as well. See the CRCCNF register for
more information.
The CRC polynomial is configurable as illustrated in the following figure, where bit 0 in the CRCPOLY
register corresponds to X0 and bit 1 corresponds to X1 etc. See CRCPOLY on page 551 for more
information.
Xn Xn-1 X2 X1 X0
Packet
(Clocked in serially)
+ + + + +
bn b0
The figure shows that the CRC is calculated by feeding the packet serially through the CRC generator.
Before the packet is clocked through the CRC generator, the CRC generator's latches b0 through bn will
be initialized with a predefined value specified in the CRCINIT register. After the whole packet has been
clocked through the CRC generator, b0 through bn will hold the resulting CRC. This value will be used by
RADIO during both transmission and reception. Latches b0 through bn are not available to be read by the
CPU at any time. However, a received CRC can be read by the CPU via the RXCRC register.
The length (n) of the CRC is configurable, see CRCCNF for more information.
Once the entire packet, including the CRC, has been received and no errors were detected, RADIO
generates a CRCOK event. If CRC errors were detected, a CRCERROR event is generated.
The status of the CRC check can be read from the CRCSTATUS register after a packet has been received.
State Description
DISABLED No operations are going on inside RADIO and the power consumption is at a minimum
RXRU RADIO is ramping up and preparing for reception
RXIDLE RADIO is ready for reception to start
RX Reception has been started and the addresses enabled in the RXADDRESSES register are being monitored
TXRU RADIO is ramping up and preparing for transmission
TXIDLE RADIO is ready for transmission to start
TX RADIO is transmitting a packet
RXDISABLE RADIO is disabling the receiver
TXDISABLE RADIO is disabling the transmitter
DISABLE
Address sent
START / ADDRESS
TXDISABLE TXRU TXIDLE TX
Ramp-up Payload sent
complete STOP [payload length >=0]
/ READY / PAYLOAD
/ DISABLED Packet sent / END
TXEN TXEN Last bit sent / PHYEND
DISABLED
Last bit received / PHYEND
RXEN
/ DISABLED Packet received / END Address received
Ramp-up
[Address match]
complete START
/ ADDRESS
/ READY
RXDISABLE RXRU RXIDLE RX
Payload received
STOP
[payload length >=0]
/ PAYLOAD
DISABLE
This figure shows how the tasks and events relate to RADIO's operation. RADIO does not prevent a task
from being triggered from the wrong state. If a task is triggered from the wrong state, for example if the
RXEN task is triggered from the RXDISABLE state, this may lead to incorrect behavior. The PAYLOAD event is
always generated even if the payload is zero.
The END to START shortcut should not be used with IEEE 802.15.4 250 kbps mode. Use the PHYEND to
START shortcut instead.
The END to START shortcut should not be used with Long Range (125 kbps and 500 kbps) Bluetooth Low
Energy modes. Use the PHYEND to START shortcut instead.
Before RADIO can transmit a packet, it must first ramp-up in TX mode. See TXRU in Radio states on page
496 and Transmit sequence on page 497. A TXRU ramp-up sequence is initiated when the TXEN task
is triggered. After RADIO has successfully ramped up it will generate the READY event indicating that a
packet transmission can be initiated. A packet transmission is initiated by triggering the START task. The
START task can first be triggered after RADIO has entered into the TXIDLE state.
The following figure illustrates a single packet transmission where the CPU manually triggers the different
tasks needed to control the flow of RADIO, i.e. no shortcuts are used. If shortcuts are not used, a certain
amount of delay caused by CPU execution is expected between READY and START, and between END
and DISABLE. As illustrated in the following figure, RADIO will by default transmit 1s between READY and
START, and between END and DISABLED. What is transmitted can be programmed through the DTX field in
the MODECNF0 register.
State
PHYEND
DISABLED
READY
ADDRESS
PAYLOAD
END
Lifeline
1 2 3
DISABLE
START
TXEN
The following figure shows a slightly modified version of the transmit sequence where RADIO is configured
to use shortcuts between READY and START, and between END and DISABLE, which means that no delay is
introduced.
State
TXRU TX TXDISABLE
Transmitter
PAYLOAD
READY
END
Lifeline
1 2
DISABLE
START
TXEN
RADIO is able to send multiple packets one after the other without having to disable and re-enable RADIO
between packets, as illustrated in the following figure.
State
TXRU TX TXIDLE TX TXDISABLE
Transmitter
P A S0 L S1 PAYLOAD CRC (carrier) P A S0 L S1 PAYLOAD CRC (carrier)
PHYEND
DISABLED
ADDRESS
ADDRESS
PAYLOAD
PAYLOAD
PHYEND
END
READY
END
Lifeline
1 2 3
DISABLE
START
START
TXEN
DISABLED
READY
ADDRESS
PAYLOAD
PHYEND
END
Lifeline
1 2 3
DISABLE
START
RXEN
The following figure shows a modified version of the receive sequence, where RADIO is configured to
use shortcuts between READY and START, and between END and DISABLE, which means that no delay is
introduced.
State
RXRU RX RXDISABLE
Reception
’X’ P A S0 L S1 PAYLOAD CRC
DISABLED
READY
ADDRESS
PHYEND
PAYLOAD
END
Lifeline
1 2
START
DISABLE
RXEN
RADIO can receive consecutive packets without having to disable and re-enable RADIO between packets,
as illustrated in the following figure.
State
DISABLED
PHYEND
PHYEND
ADDRESS
ADDRESS
PAYLOAD
PAYLOAD
END
READY
END
Lifeline
1 2 3
DISABLE
START
START
RXEN
switch the transmitter back on). The TIFS register can be written any time before the last bit on air is
received.
This timing is illustrated in the following figure.
Change to MODE OK
RX RXDISABLE TXRU TX
On air
ADDRESS
DISABLED
PAYLOAD
READY
END
Lifeline
TIFS
START
DISABLE
TXEN
The TIFS duration starts after the last bit on air (just before the END event), and elapses with the first bit
being transmitted on air (just after READY event).
TIFS is only enforced if the shortcuts END to DISABLE and DISABLED to TXEN or END to DISABLE and
DISABLED to RXEN are enabled.
TIFS is qualified for use in IEEE 802.15.4 250kbps mode, Bluetooth Low Energy Long Range (125 kbps and
500 kbps) modes, and Bluetooth Low Energy 1 Mbps and 2 Mbps modes, using the default ramp-up mode.
SHORTS and TIFS registers are not double-buffered, and can be updated at any point before the last bit on
air is received. The MODE register is double-buffered and sampled at the TXEN or RXEN task.
RXRU RX RXDISABLE
0 1 2
Reception
BCMATCH
and S1 is 12 bits.
DISABLED
ADDRESS
PAYLOAD
END
Lifeline
1 2 3
BCC = 12
DISABLE
BCC = 12 + 16
START
BCSTART
RXEN
BCSTOP
kHz for the 2 Mbps Bluetooth Low Energy PHY. The format of the CTE, when switching and/or sampling, is
shown in the following figure.
GUARD SWITCH SAMPLE SWITCH SAMPLE SWITCH SAMPLE
REFERENCE PERIOD ...
PERIOD SLOT SLOT SLOT SLOT SLOT SLOT
4 µs 8 µs 1 or 2 µs 1 or 2 µs
16-160 µs
Antenna switching is performed during switch slots and the guard period. The AoA/AoD feature requires
that one IQ sample is taken for each microsecond within the reference period, and once for each sample
slot. Oversampling is possible by changing the sample spacing as described in IQ sampling on page 505.
The switch slot and sample slot durations are either 1 or 2 µs, but must be equal. The format of the CTE
and switching and sampling procedures may be configured prior to, or during, packet transmission and
reception. Alternatively, during packet reception, these operations can be configured by reading specific
fields of the packet contents.
7.26.12.2 Mode
Depending on the DFEMODE, the device performs the procedures shown in the following table.
DFEMODE
AOA AOD
TX RX TX RX
Generating and transmitting CTE x x
AoA/AoD Procedure Receiving, interpreting, and sampling CTE x x
Antenna switching x x
Table 52: AoA/AoD Procedures performed as a function of DFEMODE and TX/RX mode
1 2 0 or 8
5 bits 8 bits
bit bits bits
When encrypting and decrypting Bluetooth Low Energy packets using the CCM peripheral, it is also
required to set PCNF0.S1INCL=1. The CCM mode must be configured to use an 8-bit length field. The value
of the CP bit is included in the calculation of the MIC, while the S1 field is ignored by the CCM calculation.
Extended CTEInfo
PDU Type ... Length AdvMode ... ... AdvA TargetA CTEInfo ... CRC CTE
Header Length flag
2 5
4 bits 4 bits 8 bits 6 bits 2 bits 1 bit 6 octets 6 octets 8 bits ...
bits bits
The CTEINLINECONF.S0CONF and CTEINLINECONF.S0MASK fields can be configured to accept only certain
advertising PDU Types. If the extended header length is non-zero, the CTEInfo extended header flag is
checked to determine whether CTEInfo is present. If a bit before the CTEInfo flag within the extended
header flags is set, then the CTEInfo position is postponed 6 octets.
CTEInfo parsing
The CTEInfo field is shown in the following figure.
The CTETIME field defines the length of the CTE in 8 µs units. The valid upper bound of values can
be adjusted using CTEINLINECONF.CTETIMEVALIDRANGE, including allowing use of the RFU bit
within this field. If the CTETIME field is an invalid value of either 0 or 1, the CTE is assumed to be the
minimum valid length of 16 µs. The slot duration is determined by the CTEType field. In RX mode this
determines whether the sample spacing as defined in CTEINLINECONF.CTEINLINERXMODE1US or
CTEINLINECONF.CTEINLINERXMODE2US is used.
CTEType Description TX switch spacing RX sample spacing during Sample spacing RX during
reference period reference period
0 AoA, no switching - TSAMPLESPACING1 TSAMPLESPACING2
1 AoD, 1 µs slots 2 µs TSAMPLESPACING1 CTEINLINERXMODE1US
2 AoD, 2 µs slots 4 µs TSAMPLESPACING1 CTEINLINERXMODE2US
3 Reserved for future use
configured to be the end of the CRC, or alternatively, the ADDRESS event. The additional offset for antenna
switching is configured using DFECTRL2.TSWITCHOFFSET. Similarly, the additional offset for antenna
sampling is configured using DFECTRL2.TSAMPLEOFFSET.
DISABLED
PHYEND
READY
ADDRESS
PAYLOAD
END
Lifeline
1 2 3
DISABLE
START
TXEN
The presence of CTE within a received packet is signalled by the CTEPRESENT event illustrated in the
following figure.
State
DISABLED
READY
ADDRESS
PAYLOAD
END
Lifeline
1 2 3
DISABLE
START
RXEN
Pin configuration
The eight antenna selection signals are mapped to physical pins according to the pin numbers specified
in the PSEL.DFEGPIO[n] registers. Only pins that have the PSEL.DFEGPIO[n].CONNECTED field set to
Connected will be controlled by RADIO. Pins that are disconnected will be controlled by GPIO.
During transmission in AoD TX mode or reception in AoA RX mode, RADIO automatically acquires the
pins as needed. At times when RADIO does not use the pin, the pin is released to its default state and
controlled by the GPIO configuration. Thus, the pin must be configured using the GPIO peripheral.
Table 54: Pin configuration matrix for a connected and enabled pin [n]
7.26.12.7 IQ sampling
RADIO uses DMA to write IQ samples recorded during the CTE to RAM. Alternatively, the magnitude
and phase of the samples can be recorded using the DFECTRL1.SAMPLETYPE field. The samples are
written to the location in RAM specified by DFEPACKET.PTR. The maximum number of samples to
transfer are specified by DFEPACKET.MAXCNT and the number of samples transferred are given in
DFEPACKET.AMOUNT. The IQ samples are recorded with respect to the RX carrier frequency. The format of
the samples is provided in the following table.
Oversampling is configured separately for the reference period and for the time after the reference period.
During the reference period, the sample spacing is determined by DFECTRL1.TSAMPLESPACINGREF.
DFECTRL2.TSAMPLEOFFSET allows fine tuning the position of the samples in steps of 16 MHz periods (62.5
ns)
For the time after the reference period, if CTEINLINECONF.CTEINLINECTRLEN is disabled, the sample
spacing is set in DFECTRL1.TSAMPLESPACING. However, when CTEINLINECONF.CTEINLINECTRLEN is
enabled, the sample spacing is determined by two different registers, depending on whether the device is
in AoA or AoD RX-mode.
For AoD RX mode, the sample spacing after the reference period is determined by the CTEType in the
packet, as listed in the following table.
Table 56: Sample spacing when CTEINLINECONF.CTEINLINECTRLEN is set and the device is in AoD RX mode
For AoA RX mode, the sample spacing after the reference period is determined by
DFECTRL1.TSWITCHSPACING, as listed in the following table.
Table 57: Sample spacing when CTEINLINECONF.CTEINLINECTRLEN is set and the device is in AoA RX mode
160 µs 32 µs <=4064 µs
PHY protocol data unit (PPDU)
Preamble sequence SFD Length PHY payload
5 octets synchronization header (SHR) 1 octet Maximum 127 octets (PSDU)
(PHR)
The standard uses the term octet for an 8-bit storage unit within the PPDU. For timing, the value symbol is
used, and it has a duration of 16 µs.
The total usable payload (PSDU) is 127 octets, but when CRC is in use, this is reduced to 125 octets of
usable payload.
The preamble sequence consists of four octets that are all zero, and are used for synchronizing RADIO's
receiver. Following the preamble is the single octet start of frame delimiter (SFD), with a fixed value of
0xA7. An alternate SFD can be programmed through the SFD register, providing an initial level of frame
filtering for those who choose non-standard compliance. It is a valuable feature when operating in a
congested or private network. The preamble sequence and the SFD are generated by RADIO, and are not
programmed by the user into the frame buffer.
Following the five octet synchronization header (SHR) is the single octet phy header (PHR). The least
significant seven bits of PHR denote the frame length of the following PSDU. The most significant bit is
reserved and is set to 0 for frames that are standard compliant. RADIO reports all eight bits which can be
used to carry additional information. The PHR is the first byte written to the frame data memory pointed
to by PACKETPTR. Frames with zero length are discarded, and the FRAMESTART event is not generated in
this case.
The next N octets carry the data of the PHY packet, where N equals the value of the PHR. For an
implementation also using the IEEE 802.15.4 medium access control (MAC) layer, the PHY data is a MAC
frame of N-2 octets, since two octets occupy a CRC field.
An IEEE 802.15.4 MAC layer frame consists of the following:
• A header:
• The frame control field (FCF)
• The sequence number
• Addressing fields
• A payload
• The 16-bit frame control sequence (FCS)
MAC protocol data unit (MPDU)
FCF Seq Addressing fields MAC payload FCS
MAC header (MHR) MAC service data unit (MSDU) (MFR)
Dst PAN ID Dst address Src PAN ID Src address Security CRC-16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Frame type Sec Pend ACK Comp Reserved Dst A mode Frame ver Src A mode
Frame control field (FCF) 2 octets
The two FCF octets contain information about the frame type, addressing, and other control flags. This
field is decoded when using the assisted operating modes offered by RADIO.
The sequence number is a single octet in size and is unique for a frame. It is used in the associated
acknowledgement frame sent upon successful frame reception.
The addressing field can be zero (acknowledgement frame) or up to 20 octets in size. The field is used
to direct packets to the correct recipient and denote its origin. IEEE 802.15.4 bases its addressing on
networks being organized in PANs with 16-bit identifier and nodes having a 16-bit or 64-bit address. In the
assisted receive mode, these parameters are analyzed for address matching and acknowledgement.
The MAC payload carries the data of the next higher layer, or in the case of a MAC command frame,
information used by the MAC layer itself.
The two last octets contain the 16-bit ITU-T CRC. The FCS is calculated over the MAC header (MHR) and
MAC payload (MSDU) parts of the frame. This field is calculated automatically when sending a frame, or
indicated in the CRCSTATUS register when a frame is received. If configured, this feature is maintained
autonomously by the CRC module.
For scaling between hardware value and dBm, see equation Conversion between hardware value and dBm
on page 511.
The mlme-scan.req primitive of the MAC layer uses the ED measurement to detect channels where there
might be wireless activity. To assist this primitive, a tailored mode of operation is available where the
ED measurement runs for a defined number of iterations keeping track of the maximum ED level. This is
enganged by writing the EDCNT register to a value different from 0, where it will run the specified number
of iterations and report the maximum energy measurement in the EDSAMPLE register. The scan is started
with EDSTART task and its end indicated with the EDEND event. This significantly reduces the interrupt
frequency and therefore power consumption. The following figure shows how the ED measurement will
operate depending on the EDCNT register.
EDCNT = 0
EDSTART EDEND
128 µs
EDCNT = N-1
EDSTART EDEND
128*(N) µs
The scan is stopped by writing the EDSTOP task. It is followed by the EDSTOPPED event when the module
has terminated.
CCA Mode 1
CCA Mode 1 is enabled by first configuring the field CCACTRL.CCAMODE=EdMode and writing
the CCACTRL.CCAEDTHRES field to a chosen value. Once the CCASTART task is written, RADIO will
perform an ED measurement for 8 symbols and compare the measured level with that found in the
CCACTRL.CCAEDTHRES field. If the measured value is higher than or equal to this threshold, the CCABUSY
event is generated. If the measured level is less than the threshold, the CCAIDLE event is generated.
CCA Mode 2
CCA Mode 2 is enabled by configuring CCACTRL.CCAMODE=CarrierMode. RADIO will sample to see if a
valid SFD is found during the 8 symbols. If a valid SFD is detected, the CCABUSY event is generated and
the device should not send any data. The CCABUSY event is also generated if the scan was performed
during an ongoing frame reception. In the case where the measurement period completes with no SFD
detection, the CCAIDLE event is generated. When CCACTRL.CCACORRCNT is not zero, the algorithm will
look at the correlator output in addition to the SFD detection signal. If a SFD is reported during the scan
period, it will terminate immidiately indicating busy medium. Similarly, if the number of peaks above
CCACTRL.CCACORRTHRES crosses the CCACTRL.CCACORRCNT, the CCACTRL.CCABUSY event is generated.
If less than CCACORRCOUNT crossings are found and no SFD is reported, the CCAIDLE event will be
generated and the device can send data.
CCA Mode 3
CCA Mode 3 is enabled by configuring CCACTRL.CCAMODE=CarrierAndEdMode or
CCACTRL.CCAMODE=CarrierOrEdMode, performing the required logical combination of the result from
CCA Mode 1 and 2. The CCABUSY or CCAIDLE events are generated by ANDing or ORing the energy above
threshold and carrier detection scans.
Shortcuts
An ongoing CCA can always be stopped by issuing the CCASTOP task. This will trigger the associated
CCASTOPPED event.
For CCA mode automation, the following shortcuts are available:
• To automatically switch between RX mode (when performing the CCA) and to TX mode where the
packet is sent, the shortcut between CCAIDLE and TXEN, in conjunction with the short between
CCAIDLE and STOP must be used.
• To automatically disable RADIO whenever the CCA reports a busy medium, the shortcut between
CCABUSY and DISABLE can be used.
• To immediately start a CCA after ramping up into RX mode, the shortcut between RXREADY and
CCASTART can be used.
Conversion
The conversion from a CCAEDTHRES, LQI, or EDSAMPLE value to dBm can be done with the following
equation, where VALHARDWARE is either CCAEDTHRES, LQI, or EDSAMPLE. LQI and EDSAMPLE are hardware-
reported values, while CCAEDTHRES is set by software. Constants ED_RSSISCALE and ED_RSSIOFFS are
from electrical specifications.
PRF[dBm] = ED_RSSIOFFS + VALHARDWARE
Figure 170: Conversion between hardware value and dBm
The ENDIANESS subregister must be set to little-endian since the FCS field is transmitted from left bit to
right.
State
RXRU RXIDLE RX TXRU TXIDLE TX TXIDLE TXDISABLE
Transmitter/Receiver
P
Clear channel SHR H PAYLOAD CRC
R
DISABLED
FRAMESTART
CCAIDLE
READY
READY
END
Lifeline
DISABLE
CCASTART
START
RXEN
TXEN
Figure 172: IEEE 802.15.4 transmit sequence
The receiver will ramp up and enter the RXIDLE state where the READY event is generated. Upon receiving
the ready event, the CCA is started by triggering the CCASTART task. The chosen mode of assessment
(CCACTRL.CCAMODE register) will be performed and signal the CCAIDLE or CCABUSY event 128 µs later.
If the CCABUSY event is received, RADIO will have to retry the CCA after a specific back-off period. This is
outlined in the IEEE 802.15.4 standard, Figure 69 in section 7.5.1.4 The CSMA-CA algorithm.
If the CCAIDLE event is generated, a write to the TXEN task register enters RADIO in TXRU state. The
READY event will be generated when RADIO is in TXIDLE state and ready to transmit. With the PACKETPTR
pointing to the length (PHR) field of the frame, the START task can be written. RADIO will send the four
octet preamble sequence followed by the start of frame delimiter (SFD register). The first byte read from
the Data RAM is the length field (PHR) followed by the transmission of the number of bytes indicated as
the frame length. If the CRC module is configured it will run for PHR-2 octets. The last two octets will be
substituted with the results from running the CRC. The necessary CRC parameters are sampled on the
START task. The FCS field of the frame is little endian.
In addition to the already available shortcuts, one is provided between the READY event and the
CCASTART task so that a CCA can automatically start when the receiver is ready. A second shortcut has
been added between the CCAIDLE event and the TXEN task, so that upon detecting a clear channel RADIO
can immediately enter TX mode.
State
RXRU RXIDLE RX RXIDLE RXDISABLE
Reception
P
’X’ SHR H PAYLOAD CRC
R
FRAMESTART
DISABLED
READY
END
Lifeline
DISABLE
START
RXEN
When a valid SHR is received, RADIO will start storing future octets (starting with PHR) to the data memory
pointed to by PACKETPTR. After the SFD octet is received, the FRAMESTART event is generated. If the CRC
module is enabled it will start updating with the second byte received (first byte in payload) and run for
the full frame length. The two last bytes in the frame are not written to RAM when CRC is configured.
However, if the result of the CRC after running the full frame is zero, the CRCOK event will be generated.
The END event is generated when the last octet has been received and is available in data memory.
When a packet is received, a link quality indicator (LQI) is also generated and appended immediately
after the last received octet. When using an IEEE 802.15.4 compliant frame, this will be just after the
MSDU since the FCS is not reported. In the case of a non-compliant frame, it will be appended after the
full frame. The LQI reported by the hardware must be converted to the IEEE 802.15.4 range by an 8-
bit saturating multiplication of 4, as shown in IEEE 802.15.4 ED measurement example on page 509.
The LQI is only valid for frames equal to or longer than three octets. When receiving a frame, the RSSI
(reported as negative dB) will be measured at three points during the reception. These three values will be
sorted and the middle one selected (median 3) to be remapped within the LQI range. The following figure
illustrates the LQI measurement and how the data is arranged in data memory.
On air frame
160 µs 32 µs ≤4064 µs
RSSI
RSSI
RSSI
In RAM frame Median 3
A shortcut has been added between the FRAMESTART event and the BCSTART task. This can be used to
trigger a BCMATCH event after N bits, such as when inspecting the MAC addressing fields.
Acknowledged transmission
Long frame ACK Short frame ACK
Unacknowledged transmission
Long frame Short frame
7.26.14 EasyDMA
RADIO uses EasyDMA to read and write packets to RAM without CPU involvement.
As illustrated in RADIO block diagram on page 493, RADIO's EasyDMA utilizes the same PACKETPTR
for receiving and transmitting packets. This pointer should be reconfigured by the CPU each time before
RADIO is started by the START task. The PACKETPTR register is double-buffered, meaning that it can be
updated and prepared for the next transmission.
The END event indicates that the last bit has been processed by RADIO. The DISABLED event is issued to
acknowledge that a DISABLE task is done.
The structure of a packet is described in detail in Packet configuration on page 493. The data that is
stored in Data RAM and transported by EasyDMA consists of the following fields:
• S0
• LENGTH
• S1
• PAYLOAD
In addition, a static add-on is sent immediately after the payload.
The size of each of the above fields in the frame is configurable (see Packet configuration on page 493),
and the space occupied in RAM depends on these settings. The size of the field can be zero, as long as the
resulting frame complies with the chosen RF protocol.
All fields are extended in size to align with a byte boundary in RAM. For instance, a 3-bit long field on air
will occupy 1 byte in RAM while a 9-bit long field will be extended to 2 bytes.
The packet's elements can be configured as follows:
• CI, TERM1, and TERM2 fields are only present in Bluetooth Low Energy Long Range mode
• S0 is configured through the PCNF0.S0LEN field
• LENGTH is configured through the PCNF0.LFLEN field
• S1 is configured through the PCNF0.S1LEN field
• Payload size is configured through the value in RAM corresponding to the LENGTH field
• Static add-on size is configured through the PCNF1.STATLEN field
The PCNF1.MAXLEN field configures the maximum packet payload plus add-on size in number of bytes
that can be transmitted or received by RADIO. This feature can be used to ensure that RADIO does not
overwrite, or read beyond, the RAM assigned to the packet payload. This means that if the LENGTH
field of the packet payload exceedes PCNF1.STATLEN, and the LENGTH field in the packet specifies a
packet larger than configured in PCNF1.MAXLEN, the payload will be truncated to the length specified in
PCNF1.MAXLEN.
Note: The PCNF1.MAXLEN field includes the payload and the add-on, but excludes the size
occupied by the S0, LENGTH, and S1 fields. This has to be taken into account when allocating RAM.
If the payload and add-on length is specified larger than PCNF1.MAXLEN, RADIO will still transmit or
receive in the same way as before, except the payload is now truncated to PCNF1.MAXLEN. The packet's
LENGTH field will not be altered when the payload is truncated. RADIO will calculate CRC as if the packet
length is equal to PCNF1.MAXLEN.
Note: If PACKETPTR is not pointing to the Data RAM region, an EasyDMA transfer may result in a
HardFault or RAM corruption. See Memory on page 21 for more information about the different
memory regions.
The END event indicates that the last bit has been processed by RADIO. The DISABLED event is issued to
acknowledge that an DISABLE task is done.
7.26.15 Registers
Instances
Register overview
7.26.15.1 TASKS_TXEN
Address offset: 0x000
Enable RADIO in TX mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_TXEN Enable RADIO in TX mode
Trigger 1 Trigger task
7.26.15.2 TASKS_RXEN
Address offset: 0x004
Enable RADIO in RX mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RXEN Enable RADIO in RX mode
Trigger 1 Trigger task
7.26.15.3 TASKS_START
Address offset: 0x008
Start RADIO
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start RADIO
Trigger 1 Trigger task
7.26.15.4 TASKS_STOP
Address offset: 0x00C
Stop RADIO
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop RADIO
Trigger 1 Trigger task
7.26.15.5 TASKS_DISABLE
Address offset: 0x010
Disable RADIO
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_DISABLE Disable RADIO
Trigger 1 Trigger task
7.26.15.6 TASKS_RSSISTART
Address offset: 0x014
Start the RSSI and take one single sample of the receive signal strength
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RSSISTART Start the RSSI and take one single sample of the receive signal strength
Trigger 1 Trigger task
7.26.15.7 TASKS_RSSISTOP
Address offset: 0x018
Stop the RSSI measurement
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RSSISTOP Stop the RSSI measurement
Trigger 1 Trigger task
7.26.15.8 TASKS_BCSTART
Address offset: 0x01C
Start the bit counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_BCSTART Start the bit counter
Trigger 1 Trigger task
7.26.15.9 TASKS_BCSTOP
Address offset: 0x020
Stop the bit counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_BCSTOP Stop the bit counter
Trigger 1 Trigger task
7.26.15.10 TASKS_EDSTART
Address offset: 0x024
Start the energy detect measurement used in IEEE 802.15.4 mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_EDSTART Start the energy detect measurement used in IEEE 802.15.4 mode
Trigger 1 Trigger task
7.26.15.11 TASKS_EDSTOP
Address offset: 0x028
Stop the energy detect measurement
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_EDSTOP Stop the energy detect measurement
Trigger 1 Trigger task
7.26.15.12 TASKS_CCASTART
Address offset: 0x02C
Start the clear channel assessment used in IEEE 802.15.4 mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CCASTART Start the clear channel assessment used in IEEE 802.15.4 mode
Trigger 1 Trigger task
7.26.15.13 TASKS_CCASTOP
Address offset: 0x030
Stop the clear channel assessment
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CCASTOP Stop the clear channel assessment
Trigger 1 Trigger task
7.26.15.14 SUBSCRIBE_TXEN
Address offset: 0x080
Subscribe configuration for task TXEN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task TXEN will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.15 SUBSCRIBE_RXEN
Address offset: 0x084
Subscribe configuration for task RXEN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RXEN will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.16 SUBSCRIBE_START
Address offset: 0x088
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.17 SUBSCRIBE_STOP
Address offset: 0x08C
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.18 SUBSCRIBE_DISABLE
Address offset: 0x090
Subscribe configuration for task DISABLE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task DISABLE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.19 SUBSCRIBE_RSSISTART
Address offset: 0x094
Subscribe configuration for task RSSISTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RSSISTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.20 SUBSCRIBE_RSSISTOP
Address offset: 0x098
Subscribe configuration for task RSSISTOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RSSISTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.21 SUBSCRIBE_BCSTART
Address offset: 0x09C
Subscribe configuration for task BCSTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task BCSTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.22 SUBSCRIBE_BCSTOP
Address offset: 0x0A0
Subscribe configuration for task BCSTOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task BCSTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.23 SUBSCRIBE_EDSTART
Address offset: 0x0A4
Subscribe configuration for task EDSTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task EDSTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.24 SUBSCRIBE_EDSTOP
Address offset: 0x0A8
Subscribe configuration for task EDSTOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task EDSTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.25 SUBSCRIBE_CCASTART
Address offset: 0x0AC
Subscribe configuration for task CCASTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CCASTART will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.26 SUBSCRIBE_CCASTOP
Address offset: 0x0B0
Subscribe configuration for task CCASTOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CCASTOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.26.15.27 EVENTS_READY
Address offset: 0x100
RADIO has ramped up and is ready to be started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_READY RADIO has ramped up and is ready to be started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.28 EVENTS_ADDRESS
Address offset: 0x104
Address sent or received
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ADDRESS Address sent or received
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.29 EVENTS_PAYLOAD
Address offset: 0x108
Packet payload sent or received
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_PAYLOAD Packet payload sent or received
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.30 EVENTS_END
Address offset: 0x10C
Packet sent or received
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_END Packet sent or received
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.31 EVENTS_DISABLED
Address offset: 0x110
RADIO has been disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DISABLED RADIO has been disabled
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.32 EVENTS_DEVMATCH
Address offset: 0x114
A device address match occurred on the last received packet
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DEVMATCH A device address match occurred on the last received packet
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.33 EVENTS_DEVMISS
Address offset: 0x118
No device address match occurred on the last received packet
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DEVMISS No device address match occurred on the last received packet
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.34 EVENTS_RSSIEND
Address offset: 0x11C
Sampling of receive signal strength complete
A new RSSI sample is ready for readout from the RADIO.RSSISAMPLE register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RSSIEND Sampling of receive signal strength complete
7.26.15.35 EVENTS_BCMATCH
Address offset: 0x128
Bit counter reached bit count value
Bit counter value is specified in the RADIO.BCC register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_BCMATCH Bit counter reached bit count value
7.26.15.36 EVENTS_CRCOK
Address offset: 0x130
Packet received with CRC ok
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CRCOK Packet received with CRC ok
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.37 EVENTS_CRCERROR
Address offset: 0x134
Packet received with CRC error
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CRCERROR Packet received with CRC error
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.38 EVENTS_FRAMESTART
Address offset: 0x138
IEEE 802.15.4 length field received
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_FRAMESTART IEEE 802.15.4 length field received
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.39 EVENTS_EDEND
Address offset: 0x13C
Sampling of energy detection complete. A new ED sample is ready for readout from the RADIO.EDSAMPLE
register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_EDEND Sampling of energy detection complete. A new ED sample is ready for
readout from the RADIO.EDSAMPLE register.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.40 EVENTS_EDSTOPPED
Address offset: 0x140
The sampling of energy detection has stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_EDSTOPPED The sampling of energy detection has stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.41 EVENTS_CCAIDLE
Address offset: 0x144
Wireless medium in idle - clear to send
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CCAIDLE Wireless medium in idle - clear to send
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.42 EVENTS_CCABUSY
Address offset: 0x148
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CCABUSY Wireless medium busy - do not send
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.43 EVENTS_CCASTOPPED
Address offset: 0x14C
The CCA has stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CCASTOPPED The CCA has stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.44 EVENTS_RATEBOOST
Address offset: 0x150
Ble_LR CI field received, receive mode is changed from Ble_LR125Kbit to Ble_LR500Kbit.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RATEBOOST Ble_LR CI field received, receive mode is changed from Ble_LR125Kbit to
Ble_LR500Kbit.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.45 EVENTS_TXREADY
Address offset: 0x154
RADIO has ramped up and is ready to be started TX path
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXREADY RADIO has ramped up and is ready to be started TX path
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.46 EVENTS_RXREADY
Address offset: 0x158
RADIO has ramped up and is ready to be started RX path
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXREADY RADIO has ramped up and is ready to be started RX path
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.47 EVENTS_MHRMATCH
Address offset: 0x15C
MAC header match found
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_MHRMATCH MAC header match found
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.48 EVENTS_SYNC
Address offset: 0x168
Preamble indicator
A possible preamble has been received in Ble_LR125Kbit, Ble_LR500Kbit, or Ieee802154_250Kbit modes
during an RX transaction. False triggering of the event is possible.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SYNC Preamble indicator
7.26.15.49 EVENTS_PHYEND
Address offset: 0x16C
Generated when last bit is sent on air, or received from air
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_PHYEND Generated when last bit is sent on air, or received from air
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.50 EVENTS_CTEPRESENT
Address offset: 0x170
CTE is present (early warning right after receiving CTEInfo byte)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CTEPRESENT CTE is present (early warning right after receiving CTEInfo byte)
NotGenerated 0 Event not generated
Generated 1 Event generated
7.26.15.51 PUBLISH_READY
Address offset: 0x180
Publish configuration for event READY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event READY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.52 PUBLISH_ADDRESS
Address offset: 0x184
Publish configuration for event ADDRESS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ADDRESS will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.53 PUBLISH_PAYLOAD
Address offset: 0x188
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event PAYLOAD will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.54 PUBLISH_END
Address offset: 0x18C
Publish configuration for event END
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event END will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.55 PUBLISH_DISABLED
Address offset: 0x190
Publish configuration for event DISABLED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DISABLED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.56 PUBLISH_DEVMATCH
Address offset: 0x194
Publish configuration for event DEVMATCH
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DEVMATCH will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.57 PUBLISH_DEVMISS
Address offset: 0x198
Publish configuration for event DEVMISS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DEVMISS will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.58 PUBLISH_RSSIEND
Address offset: 0x19C
Publish configuration for event RSSIEND
A new RSSI sample is ready for readout from the RADIO.RSSISAMPLE register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RSSIEND will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.59 PUBLISH_BCMATCH
Address offset: 0x1A8
Publish configuration for event BCMATCH
Bit counter value is specified in the RADIO.BCC register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event BCMATCH will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.60 PUBLISH_CRCOK
Address offset: 0x1B0
Publish configuration for event CRCOK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CRCOK will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.61 PUBLISH_CRCERROR
Address offset: 0x1B4
Publish configuration for event CRCERROR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CRCERROR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.62 PUBLISH_FRAMESTART
Address offset: 0x1B8
Publish configuration for event FRAMESTART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event FRAMESTART will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.63 PUBLISH_EDEND
Address offset: 0x1BC
Publish configuration for event EDEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event EDEND will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.64 PUBLISH_EDSTOPPED
Address offset: 0x1C0
Publish configuration for event EDSTOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event EDSTOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.65 PUBLISH_CCAIDLE
Address offset: 0x1C4
Publish configuration for event CCAIDLE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CCAIDLE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.66 PUBLISH_CCABUSY
Address offset: 0x1C8
Publish configuration for event CCABUSY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CCABUSY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.67 PUBLISH_CCASTOPPED
Address offset: 0x1CC
Publish configuration for event CCASTOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CCASTOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.68 PUBLISH_RATEBOOST
Address offset: 0x1D0
Publish configuration for event RATEBOOST
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RATEBOOST will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.69 PUBLISH_TXREADY
Address offset: 0x1D4
Publish configuration for event TXREADY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXREADY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.70 PUBLISH_RXREADY
Address offset: 0x1D8
Publish configuration for event RXREADY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXREADY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.71 PUBLISH_MHRMATCH
Address offset: 0x1DC
Publish configuration for event MHRMATCH
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event MHRMATCH will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.72 PUBLISH_SYNC
Address offset: 0x1E8
Publish configuration for event SYNC
A possible preamble has been received in Ble_LR125Kbit, Ble_LR500Kbit, or Ieee802154_250Kbit modes
during an RX transaction. False triggering of the event is possible.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SYNC will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.73 PUBLISH_PHYEND
Address offset: 0x1EC
Publish configuration for event PHYEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event PHYEND will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.74 PUBLISH_CTEPRESENT
Address offset: 0x1F0
Publish configuration for event CTEPRESENT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CTEPRESENT will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.26.15.75 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID U T S R Q P O N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY_START Shortcut between event READY and task START
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW END_DISABLE Shortcut between event END and task DISABLE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
C RW DISABLED_TXEN Shortcut between event DISABLED and task TXEN
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW DISABLED_RXEN Shortcut between event DISABLED and task RXEN
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
E RW ADDRESS_RSSISTART Shortcut between event ADDRESS and task RSSISTART
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
F RW END_START Shortcut between event END and task START
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
G RW ADDRESS_BCSTART Shortcut between event ADDRESS and task BCSTART
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID U T S R Q P O N M L K H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
H RW DISABLED_RSSISTOP Shortcut between event DISABLED and task RSSISTOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
K RW RXREADY_CCASTART Shortcut between event RXREADY and task CCASTART
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
L RW CCAIDLE_TXEN Shortcut between event CCAIDLE and task TXEN
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
M RW CCABUSY_DISABLE Shortcut between event CCABUSY and task DISABLE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
N RW FRAMESTART_BCSTART Shortcut between event FRAMESTART and task BCSTART
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
O RW READY_EDSTART Shortcut between event READY and task EDSTART
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
P RW EDEND_DISABLE Shortcut between event EDEND and task DISABLE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
Q RW CCAIDLE_STOP Shortcut between event CCAIDLE and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
R RW TXREADY_START Shortcut between event TXREADY and task START
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
S RW RXREADY_START Shortcut between event RXREADY and task START
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
T RW PHYEND_DISABLE Shortcut between event PHYEND and task DISABLE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
U RW PHYEND_START Shortcut between event PHYEND and task START
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.26.15.76 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID b a Z W V U T S R Q P O N M L J H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to enable interrupt for event READY
Set 1 Enable
Disabled 0 Read: Disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID b a Z W V U T S R Q P O N M L J H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Read: Enabled
B RW ADDRESS Write '1' to enable interrupt for event ADDRESS
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW PAYLOAD Write '1' to enable interrupt for event PAYLOAD
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW END Write '1' to enable interrupt for event END
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW DISABLED Write '1' to enable interrupt for event DISABLED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW DEVMATCH Write '1' to enable interrupt for event DEVMATCH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW DEVMISS Write '1' to enable interrupt for event DEVMISS
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW RSSIEND Write '1' to enable interrupt for event RSSIEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID b a Z W V U T S R Q P O N M L J H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
P RW EDSTOPPED Write '1' to enable interrupt for event EDSTOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Q RW CCAIDLE Write '1' to enable interrupt for event CCAIDLE
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
R RW CCABUSY Write '1' to enable interrupt for event CCABUSY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
S RW CCASTOPPED Write '1' to enable interrupt for event CCASTOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
T RW RATEBOOST Write '1' to enable interrupt for event RATEBOOST
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
U RW TXREADY Write '1' to enable interrupt for event TXREADY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
V RW RXREADY Write '1' to enable interrupt for event RXREADY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
W RW MHRMATCH Write '1' to enable interrupt for event MHRMATCH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Z RW SYNC Write '1' to enable interrupt for event SYNC
7.26.15.77 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID b a Z W V U T S R Q P O N M L J H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW READY Write '1' to disable interrupt for event READY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ADDRESS Write '1' to disable interrupt for event ADDRESS
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW PAYLOAD Write '1' to disable interrupt for event PAYLOAD
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW END Write '1' to disable interrupt for event END
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW DISABLED Write '1' to disable interrupt for event DISABLED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW DEVMATCH Write '1' to disable interrupt for event DEVMATCH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW DEVMISS Write '1' to disable interrupt for event DEVMISS
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW RSSIEND Write '1' to disable interrupt for event RSSIEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID b a Z W V U T S R Q P O N M L J H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
N RW FRAMESTART Write '1' to disable interrupt for event FRAMESTART
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
O RW EDEND Write '1' to disable interrupt for event EDEND
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
P RW EDSTOPPED Write '1' to disable interrupt for event EDSTOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Q RW CCAIDLE Write '1' to disable interrupt for event CCAIDLE
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
R RW CCABUSY Write '1' to disable interrupt for event CCABUSY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
S RW CCASTOPPED Write '1' to disable interrupt for event CCASTOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
T RW RATEBOOST Write '1' to disable interrupt for event RATEBOOST
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
U RW TXREADY Write '1' to disable interrupt for event TXREADY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
V RW RXREADY Write '1' to disable interrupt for event RXREADY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
W RW MHRMATCH Write '1' to disable interrupt for event MHRMATCH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Z RW SYNC Write '1' to disable interrupt for event SYNC
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID b a Z W V U T S R Q P O N M L J H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
a RW PHYEND Write '1' to disable interrupt for event PHYEND
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
b RW CTEPRESENT Write '1' to disable interrupt for event CTEPRESENT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.26.15.78 CRCSTATUS
Address offset: 0x400
CRC status
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CRCSTATUS CRC status of packet received
CRCError 0 Packet received with CRC error
CRCOk 1 Packet received with CRC ok
7.26.15.79 RXMATCH
Address offset: 0x408
Received address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RXMATCH Received address
7.26.15.80 RXCRC
Address offset: 0x40C
CRC field of previously received packet
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RXCRC CRC field of previously received packet
7.26.15.81 DAI
Address offset: 0x410
Device address match index
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R DAI Device address match index
Index (n) of device address, see DAB[n] and DAP[n], that got an address
match
7.26.15.82 PDUSTAT
Address offset: 0x414
Payload status
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R PDUSTAT Status on payload length vs. PCNF1.MAXLEN
LessThan 0 Payload less than PCNF1.MAXLEN
GreaterThan 1 Payload greater than PCNF1.MAXLEN
B R CISTAT Status on what rate packet is received with in Long Range
LR125kbit 0 Frame is received at 125 kbps
LR500kbit 1 Frame is received at 500 kbps
7.26.15.83 CTESTATUS
Address offset: 0x44C
CTEInfo parsed from received packet
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C B A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CTETIME CTETime parsed from packet
B R RFU RFU parsed from packet
C R CTETYPE CTEType parsed from packet
7.26.15.84 DFESTATUS
Address offset: 0x458
DFE status information
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SWITCHINGSTATE Internal state of switching state machine
Idle 0 Switching state Idle
Offset 1 Switching state Offset
Guard 2 Switching state Guard
Ref 3 Switching state Ref
Switching 4 Switching state Switching
Ending 5 Switching state Ending
B R SAMPLINGSTATE Internal state of sampling state machine
Idle 0 Sampling state Idle
Sampling 1 Sampling state Sampling
7.26.15.85 PACKETPTR
Address offset: 0x504
Packet pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x01000000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PACKETPTR Packet pointer
7.26.15.86 FREQUENCY
Address offset: 0x508
Frequency
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A
Reset 0x00000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW FREQUENCY [0..100] Radio channel frequency
7.26.15.87 TXPOWER
Address offset: 0x50C
Output power
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TXPOWER RADIO output power
Output power in number of dBm, i.e. if the value -20 is specified the output
power will be set to -20 dBm.
7.26.15.88 MODE
Address offset: 0x510
Data rate and modulation
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MODE Radio data rate and modulation setting. The radio supports frequency-shift
keying (FSK) modulation.
Nrf_1Mbit 0 1 Mbps Nordic proprietary radio mode
Nrf_2Mbit 1 2 Mbps Nordic proprietary radio mode
Ble_1Mbit 3 1 Mbps BLE
Ble_2Mbit 4 2 Mbps BLE
Ble_LR125Kbit 5 Long Range 125 kbps TX, 125 kbps and 500 kbps RX
Ble_LR500Kbit 6 Long Range 500 kbps TX, 125 kbps and 500 kbps RX
Ieee802154_250Kbit 15 IEEE 802.15.4-2006 250 kbps
7.26.15.89 PCNF0
Address offset: 0x514
Packet configuration register 0
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H H G F F E E D C C C C B A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LFLEN Length on air of LENGTH field in number of bits
B RW S0LEN Length on air of S0 field in number of bytes
C RW S1LEN Length on air of S1 field in number of bits
D RW S1INCL Include or exclude S1 field in RAM
Automatic 0 Include S1 field in RAM only if S1LEN > 0
Include 1 Always include S1 field in RAM independent of S1LEN
E RW CILEN Length of code indicator - Long Range
F RW PLEN Length of preamble on air. Decision point: TASKS_START task
8bit 0 8-bit preamble
16bit 1 16-bit preamble
32bitZero 2 32-bit zero preamble - used for IEEE 802.15.4
LongRange 3 Preamble - used for Bluetooth LE Long Range
G RW CRCINC Indicates if LENGTH field contains CRC or not
Exclude 0 LENGTH does not contain CRC
Include 1 LENGTH includes CRC
H RW TERMLEN Length of TERM field in Long Range operation
7.26.15.90 PCNF1
Address offset: 0x518
Packet configuration register 1
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C C C B B B B B B B B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXLEN [0..255] Maximum length of packet payload. If the packet payload is larger than
MAXLEN, the radio will truncate the payload to MAXLEN.
B RW STATLEN [0..255] Static length in number of bytes
The static length parameter is added to the total length of the payload when
sending and receiving packets, e.g. if the static length is set to N the radio
will receive or send N bytes more than what is defined in the LENGTH field
of the packet.
C RW BALEN [2..4] Base address length in number of bytes
The address field is composed of the base address and the one byte long
address prefix, e.g. set BALEN=2 to get a total address of 3 bytes.
D RW ENDIAN On-air endianness of packet, this applies to the S0, LENGTH, S1, and the
PAYLOAD fields.
Little 0 Least significant bit on air first
Big 1 Most significant bit on air first
E RW WHITEEN Enable or disable packet whitening
Including the address field to CRC check is not supported for whitened
packets.
Disabled 0 Disable
Enabled 1 Enable
7.26.15.91 BASE0
Address offset: 0x51C
Base address 0
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BASE0 Base address 0
7.26.15.92 BASE1
Address offset: 0x520
Base address 1
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BASE1 Base address 1
7.26.15.93 PREFIX0
Address offset: 0x524
Prefixes bytes for logical addresses 0-3
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D RW AP[i] (i=0..3) Address prefix i.
7.26.15.94 PREFIX1
Address offset: 0x528
Prefixes bytes for logical addresses 4-7
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D RW AP[i] (i=4..7) Address prefix i.
7.26.15.95 TXADDRESS
Address offset: 0x52C
Transmit address select
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TXADDRESS Transmit address select
7.26.15.96 RXADDRESSES
Address offset: 0x530
Receive address select
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW ADDR[i] (i=0..7) Enable or disable reception on logical address i.
Disabled 0 Disable
Enabled 1 Enable
7.26.15.97 CRCCNF
Address offset: 0x534
CRC configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LEN [0..3] CRC length in number of bytes
7.26.15.98 CRCPOLY
Address offset: 0x538
CRC polynomial
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CRCPOLY CRC polynomial
Each term in the CRC polynomial is mapped to a bit in this register which
index corresponds to the term's exponent. The least significant term/
bit is hardwired internally to 1, and bit number 0 of the register content
is ignored by the hardware. The following example is for an 8 bit CRC
polynomial: x8 + x7 + x3 + x2 + 1 = 1 1000 1101 .
7.26.15.99 CRCINIT
Address offset: 0x53C
CRC initial value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CRCINIT CRC initial value
7.26.15.100 TIFS
Address offset: 0x544
Interframe spacing in µs
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TIFS Interframe spacing in µs.
7.26.15.101 RSSISAMPLE
Address offset: 0x548
RSSI sample
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RSSISAMPLE [0..127] RSSI sample.
RSSI sample result. The value of this register is read as a positive value while
the actual received signal strength is a negative value. Actual received signal
strength is therefore as follows: received signal strength = -A dBm.
7.26.15.102 STATE
Address offset: 0x550
Current radio state
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATE Current radio state
Disabled 0 RADIO is in the Disabled state
RxRu 1 RADIO is in the RXRU state
RxIdle 2 RADIO is in the RXIDLE state
Rx 3 RADIO is in the RX state
RxDisable 4 RADIO is in the RXDISABLED state
TxRu 9 RADIO is in the TXRU state
TxIdle 10 RADIO is in the TXIDLE state
Tx 11 RADIO is in the TX state
TxDisable 12 RADIO is in the TXDISABLED state
7.26.15.103 DATAWHITEIV
Address offset: 0x554
Data whitening initial value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DATAWHITEIV Data whitening initial value. Bit 6 is hardwired to '1', writing '0' to it has no
effect, and it will always be read back and used by the device as '1'.
7.26.15.104 BCC
Address offset: 0x560
Bit counter compare
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BCC Bit counter compare
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DAB Device address base segment n
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DAP Device address prefix n
7.26.15.107 DACNF
Address offset: 0x640
Device address match configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW ENA[i] (i=0..7) Enable or disable device address matching using device address i
Disabled 0 Disabled
Enabled 1 Enabled
I-P RW TXADD[i] (i=0..7) TxAdd for device address i
7.26.15.108 MHRMATCHCONF
Address offset: 0x644
Search pattern configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MHRMATCHCONF Search pattern configuration
7.26.15.109 MHRMATCHMAS
Address offset: 0x648
Pattern mask
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MHRMATCHMAS Pattern mask
7.26.15.110 MODECNF0
Address offset: 0x650
Radio mode configuration register 0
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B A
Reset 0x00000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RU Radio ramp-up time
Default 0 Default ramp-up time (tRXEN and tTXEN), compatible with firmware written
for nRF51
Fast 1 Fast ramp-up (tRXEN,FAST and tTXEN,FAST), see RADIO timings for more
information
Specifies what the RADIO will transmit when it is not started, i.e. between:
For IEEE 802.15.4 250 kbps mode only Center is a valid setting
For Bluetooth Low Energy Long Range mode only Center is a valid setting
B1 0 Transmit '1'
B0 1 Transmit '0'
Center 2 Transmit center frequency
When tuning the crystal for center frequency, the RADIO must be set in DTX
= Center mode to be able to achieve the expected accuracy
7.26.15.111 SFD
Address offset: 0x660
IEEE 802.15.4 start of frame delimiter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x000000A7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1
ID R/W Field Value ID Value Description
A RW SFD IEEE 802.15.4 start of frame delimiter
7.26.15.112 EDCNT
Address offset: 0x664
IEEE 802.15.4 energy detect loop count
Number of iterations to perform an ED scan. If set to 0 one scan is performed, otherwise the specified
number + 1 of ED scans will be performed and the max ED value tracked in EDSAMPLE.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EDCNT IEEE 802.15.4 energy detect loop count
7.26.15.113 EDSAMPLE
Address offset: 0x668
IEEE 802.15.4 energy detect level
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R EDLVL [0..127] IEEE 802.15.4 energy detect level
7.26.15.114 CCACTRL
Address offset: 0x66C
IEEE 802.15.4 clear channel assessment control
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D D D D D D D D C C C C C C C C B B B B B B B B A A A
Reset 0x052D0000 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CCAMODE CCA mode of operation
EdMode 0 Energy above threshold
7.26.15.115 DFEMODE
Address offset: 0x900
Whether to use Angle-of-Arrival (AOA) or Angle-of-Departure (AOD)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DFEOPMODE Direction finding operation mode
Disabled 0 Direction finding mode disabled
AoD 2 Direction finding mode set to AoD
AoA 3 Direction finding mode set to AoA
7.26.15.116 CTEINLINECONF
Address offset: 0x904
Configuration for CTE inline mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H H H H H H H H G G G G G G G G F F F E E E D D C B A
Reset 0x00002800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CTEINLINECTRLEN Enable parsing of CTEInfo from received packet in BLE modes
Enabled 1 Parsing of CTEInfo is enabled
Disabled 0 Parsing of CTEInfo is disabled
B RW CTEINFOINS1 CTEInfo is S1 byte or not
InS1 1 CTEInfo is in S1 byte (data PDU)
NotInS1 0 CTEInfo is NOT in S1 byte (advertising PDU)
C RW CTEERRORHANDLING Sampling/switching if CRC is not OK
Yes 1 Sampling and antenna switching also when CRC is not OK
No 0 No sampling and antenna switching when CRC is not OK
D RW CTETIMEVALIDRANGE Max range of CTETime
Valid range is 2-20 in the Bluetooth Core Specification. If larger than 20, it
can be an indication of an error in the received packet.
20 0 20 in 8 µs unit (default)
AoD 1 µs
4us 1 4 µs
2us 2 2 µs
1us 3 1 µs
500ns 4 0.5 µs
250ns 5 0.25 µs
125ns 6 0.125 µs
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H H H H H H H H G G G G G G G G F F F E E E D D C B A
Reset 0x00002800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
F RW CTEINLINERXMODE2US Spacing between samples for the samples in the SWITCHING period when
CTEINLINEMODE is set.
When the device is in AoD mode, this is used when the received CTEType is
"AoD 2 µs". When in AoA mode, this is used when TSWITCHSPACING is 4 µs.
4us 1 4 µs
2us 2 2 µs
1us 3 1 µs
500ns 4 0.5 µs
250ns 5 0.25 µs
125ns 6 0.125 µs
G RW S0CONF S0 bit pattern to match
The least significant bit always corresponds to the first bit of S0 received.
H RW S0MASK S0 bit mask to set which bit to match
The least significant bit always corresponds to the first bit of S0 received.
7.26.15.117 DFECTRL1
Address offset: 0x910
Various configuration for Direction finding
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H H H H G G G G F F F E D D D C C C B A A A A A A
Reset 0x00023282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW NUMBEROF8US Length of the AoA/AoD procedure in number of 8 µs units
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H H H H G G G G F F F E D D D C C C B A A A A A A
Reset 0x00023282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
2us 2 2 µs
1us 3 1 µs
500ns 4 0.5 µs
250ns 5 0.25 µs
125ns 6 0.125 µs
G RW REPEATPATTERN Repeat each individual antenna pattern N times sequentially, i.e. P0, P0, P1,
P1, P2, P2, P3, P3, etc.
NoRepeat 0 Do not repeat (1 time in total)
H RW AGCBACKOFFGAIN Gain will be lowered by the specified number of gain steps at the start of
CTE
At the start of receiving the CTE, the gain is lowered by the specified
number of gain steps (approximately 3 dB ± 1 dB per step). The initial gain
reduction is implemented in the analog front-end, thus the gain back-off can
be used to prevent sample saturation.
7.26.15.118 DFECTRL2
Address offset: 0x914
Start offset for Direction finding
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B B B B B A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TSWITCHOFFSET Signed value offset after the end of the CRC before starting switching in
number of 16 MHz clock cycles
7.26.15.119 SWITCHPATTERN
Address offset: 0x928
GPIO patterns to be used for each antenna
Maximum 8 GPIOs can be controlled. To secure correct signal levels on the pins, the pins must be
configured in the GPIO peripheral as described in Pin configuration.
If, during switching, the total number of antenna slots is bigger than the number of written patterns, the
RADIO loops back to the pattern used after the reference pattern.
A minimum number of three patterns must be written.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SWITCHPATTERN Fill array of GPIO patterns for antenna control.
When read, returns the number of GPIO patterns written since the last time
the array was cleared. Use CLEARPATTERN to clear the array.
7.26.15.120 CLEARPATTERN
Address offset: 0x92C
Clear the GPIO pattern array for antenna control
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CLEARPATTERN Clears GPIO pattern array for antenna control
W1C
Clear 1 Clear the GPIO pattern
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.26.15.122 DFEPACKET
DFE packet EasyDMA channel
7.26.15.122.1 DFEPACKET.PTR
Address offset: 0x950
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x01000000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
7.26.15.122.2 DFEPACKET.MAXCNT
Address offset: 0x954
Maximum number of buffer words to transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A
Reset 0x00001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT Maximum number of buffer words to transfer
7.26.15.122.3 DFEPACKET.AMOUNT
Address offset: 0x958
Number of samples transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT Number of samples transferred in the last transaction
7.26.15.123 POWER
Address offset: 0xFFC
Peripheral power control
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW POWER Peripheral power control. The peripheral and its registers will be reset to its
initial state by switching the peripheral off and then back on again.
Disabled 0 Peripheral is powered off
Enabled 1 Peripheral is powered on
PRF2,1 2nd Adjacent Channel Transmit Power 2 MHz (1 Mbps) -52 13 dBc
PRF1,2 1st Adjacent Channel Transmit Power 2 MHz (2 Mbps) -25 14 dBc
PRF2,2 2nd Adjacent Channel Transmit Power 4 MHz (2 Mbps) -5014 dBc
PACP,A, IEEE 802.15.4 IEEE 802 15.4 Absolute adjacent Channel Power, offset > 3.5 MHz 15 -36 dBm
4.5
3.5
Output power [dBm]
2.5
1.5
-40 -20 0 20 40 60 80 100 120
1.7 V 3V 3.6 V
13
MODE = Nrf_1Mbit
14
MODE = Nrf_2Mbit
15
Output power set to maximum TXPOWER setting, resolution bandwidth (RBW) set to 100 kHz, and
transmitter Duty-Cycle approximately 85%.
1.5
0.5
-0.5
-40 -20 0 20 40 60 80 100 120
1.7 V 3V 3.6 V
Figure 177: Output power, 1 Mbps Bluetooth low energy mode, at 0 dBm TXPOWER setting (typical values)
PSENS,IT,SP,1M,BLE Sensitivity, 1 Mbps Bluetooth LE ideal transmitter, packet length ≤ 37 bytes -98 dBm
17
BER = 1E-3
PSENS,IT,LP,1M,BLE Sensitivity, 1 Mbps Bluetooth LE ideal transmitter, packet length ≥ 128 bytes -97 dBm
18
BER = 1E-4
PSENS,IT,SP,2M,BLE Sensitivity, 2 Mbps Bluetooth LE ideal transmitter, packet length ≤ 37 bytes -95 dBm
PSENS,IT,BLE LE125k Sensitivity, 125 kbps Bluetooth LE mode -104 dBm
PSENS,IT,BLE LE500k Sensitivity, 500 kbps Bluetooth LE mode -100 dBm
PSENS,IEEE 802.15.4 Sensitivity in IEEE 802.15.4 mode -101 dBm
16
Typical sensitivity applies when ADDR0 is used for receiver address correlation. When ADDR[1...7]
are used for receiver address correlation, the typical sensitivity for this mode is degraded by 3 dB.
17
As defined in the Bluetooth Core Specification v4.0 Volume 6: Core System Package (Low Energy
Controller Volume).
18
Equivalent BER limit < 10E-04.
-95
-95.5
-96
-96.5
Sensitivity [dBm]
-97
-97.5
-98
-98.5
-99
-99.5
-100
-40 -20 0 20 40 60 80 100 120
1.7 V 3V 3.6 V
Figure 178: Sensitivity, 1 Mbps Bluetooth low energy mode, Regulator = DCDC (typical values)
19
Desired signal level at PIN = -67 dBm. One interferer is used, having equal modulation as the desired
signal. The input power of the interferer where the sensitivity equals BER = 1E-4 is presented.
7.26.16.10 Jitter
The RNG is started by triggering the START task and stopped by triggering the STOP task. When started,
new random numbers are generated continuously and written to the VALUE register when ready. A
VALRDY event is generated for every new random number that is written to the VALUE register. This means
that after a VALRDY event is generated, the CPU has the time until the next VALRDY event to read out the
random number from the VALUE register before it is overwritten by a new random number.
7.27.2 Speed
The time needed to generate one random byte of data is unpredictable, and may vary from one byte to
the next. This is especially true when bias correction is enabled.
7.27.3 Registers
Instances
Register overview
7.27.3.1 TASKS_START
Address offset: 0x000
Task starting the random number generator
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Task starting the random number generator
Trigger 1 Trigger task
7.27.3.2 TASKS_STOP
Address offset: 0x004
Task stopping the random number generator
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Task stopping the random number generator
Trigger 1 Trigger task
7.27.3.3 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.27.3.4 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.27.3.5 EVENTS_VALRDY
Address offset: 0x100
Event being generated for every new random number written to the VALUE register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_VALRDY Event being generated for every new random number written to the VALUE
register
NotGenerated 0 Event not generated
Generated 1 Event generated
7.27.3.6 PUBLISH_VALRDY
Address offset: 0x180
Publish configuration for event VALRDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event VALRDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.27.3.7 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALRDY_STOP Shortcut between event VALRDY and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.27.3.8 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALRDY Write '1' to enable interrupt for event VALRDY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.27.3.9 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW VALRDY Write '1' to disable interrupt for event VALRDY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.27.3.10 CONFIG
Address offset: 0x504
Configuration register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DERCEN Bias correction
Disabled 0 Disabled
Enabled 1 Enabled
7.27.3.11 VALUE
Address offset: 0x508
Output random number
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R VALUE [0..255] Generated random number
STOP COUNTER
CLEAR OVRFLW
TRIGOVRFLW
CC[0:n]
CAPTURE[0:n] COMPARE[0:n]
The RTC module features a 24-bit COUNTER, a 12-bit (1/X) prescaler, capture/compare registers, and a tick
event generator.
The PRESCALER register can only be written when the RTC is stopped.
The prescaler is restarted on tasks START, CLEAR and TRIGOVRFLW. That is, the prescaler value is latched
to an internal register (<<PRESC>>) on these tasks.
Examples:
LFCLK
TICK
PRESC 0x000
PCLK16M
LFCLK
TICK
PRESC 0x001
7.28.4 Overflow
An OVRFLW event is generated on COUNTER register overflow (overflowing from 0xFFFFFF to 0).
The TRIGOVRFLW task will set the COUNTER value to 0xFFFFF0, to allow software test of the overflow
condition.
OR
task
RTC core
event
EVTEN m INTEN m
EVENT m
IRQ signal to NVIC
7.28.7 Capture
The RTC implements one capture task for every available capture/compare register.
Every time TASKS_CAPTURE[n] is triggered, <<COUNTER>> is copied to the corresponding CC[n] register.
If the CAPTURE and CLEAR tasks are triggered at the same time, the CAPTURE task will be prioritized. This
means that the CC[n] register for the corresponding CAPTURE[n] task will be set to the captured value
before the counter is reset. There is a delay of 6 PCLK16M periods from when the TASKS_CAPTURE[n] is
triggered until the corresponding CC[n] register is updated.
The CAPTURE[n] tasks will not generate COMPARE[n] events, even though CC[n] will then equal the
COUNTER.
7.28.8 Compare
The RTC implements one COMPARE event for every available compare register.
When the COUNTER is incremented and then becomes equal to the value specified in the register CC[n],
the corresponding compare event COMPARE[n] is generated.
When writing a CC[n] register, the RTC COMPARE event exhibits several behaviors. See the following
figures for more information.
If a CC value is 0 when a CLEAR task is set, this will not trigger a COMPARE event.
PCLK16M
LFCLK
<<PRESC>> 0x000
<<COUNTER>> X 0x000000
CLEAR
CC[0] 0x000000
COMPARE[0] 0
If a CC value is N and the COUNTER value is N when the START task is set, this will not trigger a COMPARE
event.
PCLK16M
LFCLK
<<PRESC>> 0x000
<<COUNTER>> N N+1
START
CC[0] N
COMPARE[0] 0
A COMPARE event occurs when a CC value is N, and the COUNTER value transitions from N-1 to N.
PCLK16M
LFCLK
<<PRESC>> 0x000
CC[0] N
COMPARE[0] 0 1
If the COUNTER value is N, writing N+2 to a CC register is guaranteed to trigger a COMPARE event at N+2.
PCLK16M
LFCLK
<<PRESC>> 0x000
CC[0] X N+2
COMPARE[0] 0 1
If the COUNTER value is N, writing N or N+1 to a CC register may not trigger a COMPARE event.
PCLK16M
LFCLK
<<PRESC>> 0x000
>= 0 ns
CC[0] X N+1
COMPARE[0] 0
If the COUNTER value is N, and the current CC value is N+1 or N+2 when a new CC value is written, a
match may trigger on the previous CC value before the new value takes effect. If the current CC value is
greater than N+2 when the new value is written, there will be no event due to the old value.
PCLK16M
LFCLK
<<PRESC>> 0x000
>= 0 ns
CC[0] N X
COMPARE[0] 0 1
If the COMPARE[i]_CLEAR short is enabled, the COUNTER will be cleared one LFClk after the COMPARE
event.
PCLK16M
COMPARE CLEAR
LFCLK
<<PRESC>> 0x000
CC[0] N
COMPARE[0] 0 1
CLEAR
PCLK16M
CLEAR
LFCLK
<<PRESC>> 0x000
When a STOP task is triggered, the PCLK16M domain will immediately prevent the generation of any
EVENTS from the RTC. However, as seen in the following figure, the COUNTER value can still increment one
final time.
PCLK16M
STOP
LFCLK
<<PRESC>> 0x000
<<COUNTER>> X X+1
The START task will start the RTC. Assuming that the LFCLK was previously running and stable, the first
increment of COUNTER (and instance of TICK event) will be typically after 30.5 μs ±15 μs. Additional delay
will occur if the RTC is started before the LFCLK is running, see CLOCK — Clock control on page 72 for LFLK
startup times. The software should therefore wait for the first TICK if it has to make sure that the RTC is
running. Sending a TRIGOVRFLW task sets the COUNTER to a value close to overflow. However, since the
update of COUNTER relies on a stable LFCLK, sending this task while LFCLK is not running will also add
additional delay as previously described. The figures show the smallest and largest delays on the START
task, appearing as a ±15 μs jitter on the first COUNTER increment.
PCLK16M
First tick
LFCLK
PRESC 0x000
≥ ~15 µs
START 0 or more PCLK16M cycles before
PCLK16M
First tick
LFCLK
PRESC 0x000
START
The following tables summarize jitter introduced for tasks and events. Any 32.768 kHz clock jitter will
come in addition to these numbers.
Task Delay
CLEAR, START, STOP, TRIGOVRFLOW +15 to 46 μs
Operation/Function Jitter
START to COUNTER increment ± 15 μs
7.28.10 Registers
Instances
RTC0 : S 0x50014000
APPLICATION US S NA No Real time counter 0
RTC0 : NS 0x40014000
RTC1 : S 0x50015000
APPLICATION US S NA No Real time counter 1
RTC1 : NS 0x40015000
RTC0 NETWORK 0x41011000 HF NS NA No Real-time counter 0
RTC1 NETWORK 0x41016000 HF NS NA No Real-time counter 1
Register overview
20
Assumes RTC runs continuously between these events.
7.28.10.1 TASKS_START
Address offset: 0x000
Start RTC counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start RTC counter
Trigger 1 Trigger task
7.28.10.2 TASKS_STOP
Address offset: 0x004
Stop RTC counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop RTC counter
Trigger 1 Trigger task
7.28.10.3 TASKS_CLEAR
Address offset: 0x008
Clear RTC counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CLEAR Clear RTC counter
Trigger 1 Trigger task
7.28.10.4 TASKS_TRIGOVRFLW
Address offset: 0x00C
Set counter to 0xFFFFF0
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_TRIGOVRFLW Set counter to 0xFFFFF0
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CAPTURE Capture RTC counter to CC[n] register
Trigger 1 Trigger task
7.28.10.6 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.28.10.7 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.28.10.8 SUBSCRIBE_CLEAR
Address offset: 0x088
Subscribe configuration for task CLEAR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CLEAR will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.28.10.9 SUBSCRIBE_TRIGOVRFLW
Address offset: 0x08C
Subscribe configuration for task TRIGOVRFLW
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task TRIGOVRFLW will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CAPTURE[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.28.10.11 EVENTS_TICK
Address offset: 0x100
Event on counter increment
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TICK Event on counter increment
NotGenerated 0 Event not generated
Generated 1 Event generated
7.28.10.12 EVENTS_OVRFLW
Address offset: 0x104
Event on counter overflow
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_OVRFLW Event on counter overflow
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_COMPARE Compare event on CC[n] match
NotGenerated 0 Event not generated
Generated 1 Event generated
7.28.10.14 PUBLISH_TICK
Address offset: 0x180
Publish configuration for event TICK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TICK will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.28.10.15 PUBLISH_OVRFLW
Address offset: 0x184
Publish configuration for event OVRFLW
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event OVRFLW will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event COMPARE[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.28.10.17 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D RW COMPARE[i]_CLEAR (i=0..3) Shortcut between event COMPARE[i] and task CLEAR
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.28.10.18 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TICK Write '1' to enable interrupt for event TICK
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW OVRFLW Write '1' to enable interrupt for event OVRFLW
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C-F RW COMPARE[i] (i=0..3) Write '1' to enable interrupt for event COMPARE[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.28.10.19 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TICK Write '1' to disable interrupt for event TICK
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW OVRFLW Write '1' to disable interrupt for event OVRFLW
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C-F RW COMPARE[i] (i=0..3) Write '1' to disable interrupt for event COMPARE[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.28.10.20 EVTEN
Address offset: 0x340
Enable or disable event routing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TICK Enable or disable event routing for event TICK
Disabled 0 Disable
Enabled 1 Enable
B RW OVRFLW Enable or disable event routing for event OVRFLW
Disabled 0 Disable
Enabled 1 Enable
C-F RW COMPARE[i] (i=0..3) Enable or disable event routing for event COMPARE[i]
Disabled 0 Disable
Enabled 1 Enable
7.28.10.21 EVTENSET
Address offset: 0x344
Enable event routing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TICK Write '1' to enable event routing for event TICK
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Set 1 Enable
B RW OVRFLW Write '1' to enable event routing for event OVRFLW
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Set 1 Enable
C-F RW COMPARE[i] (i=0..3) Write '1' to enable event routing for event COMPARE[i]
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Set 1 Enable
7.28.10.22 EVTENCLR
Address offset: 0x348
Disable event routing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TICK Write '1' to disable event routing for event TICK
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Clear 1 Disable
B RW OVRFLW Write '1' to disable event routing for event OVRFLW
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Clear 1 Disable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
C-F RW COMPARE[i] (i=0..3) Write '1' to disable event routing for event COMPARE[i]
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Clear 1 Disable
7.28.10.23 COUNTER
Address offset: 0x504
Current counter value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R COUNTER Counter value
7.28.10.24 PRESCALER
Address offset: 0x508
12-bit prescaler for counter frequency (32768 / (PRESCALER + 1)). Must be written when RTC is stopped.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PRESCALER Prescaler value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW COMPARE Compare value
7.29.2 Overview
The ADC supports up to eight external analog input channels. It can be operated in One-shot mode with
sampling under software control, or Continuous mode with a programmable sampling rate.
The analog inputs can be configured as eight single-ended inputs, four differential inputs, or a
combination of these. Each channel can be configured to select one of the following:
• AIN0 to AIN7 pins
• VDD pin
• VDDHDIV5 (through VDDH pin)
Channels can be sampled individually in One-shot or Continuous sampling modes. Using Scan mode,
multiple channels can be sampled in sequence. Channels can also be oversampled to improve noise
performance.
PSEL_A PSEL_A
PSEL_A
PSEL_A
PSEL_A PSEL_A
PSEL_A
PSEL_A
PSEL_A PSEL_A
PSEL_A
PSEL_A
CH[X].PSELP CH[X].CONFIG
NC
AIN0 SAADC
AIN1
AIN2 RAM
AIN3
AIN4 MUX
AIN5 RESULT
P
AIN6 RESP RESULT
AIN7
VDD RESULT
VDDHDIV5 SAR
GAIN EasyDMA RESULT
core
NC RESULT
AIN0 N
RESULT
AIN1 RESN RESULT
AIN2
RESULT
AIN3
AIN4 MUX RESULT.PTR
AIN5
AIN6
AIN7
VDD VDD
START REFSEL STARTED
VDDHDIV5 Internal reference
SAMPLE END
STOP STOPPED
CH[X].PSELN
PSEL_A
PSEL_A
PSEL_A
PSEL_A
PSEL_A
PSEL_A
Internally, the ADC is always a differential analog-to-digital converter, but by default it is configured with
single-ended input SE in the MODE field of the CH[n].CONFIG register. In Single-ended (SE) mode, the
negative input will be shorted to ground internally.
In Single-ended mode, the assumption is that the internal ground of the ADC is the same as the external
ground that the measured voltage is referred to. The ADC is thus sensitive to ground bounce on the PCB.
This can be reduced by configuring SAADC to use differential measurent setting the MODE field of the
CH[n].CONFIG register to Diff (differential).
Variable Description
V(P) Voltage at input P
V(N) Voltage at input N
GAIN Selected gain setting
m Mode setting (Use m=0 if CONFIG.MODE=SE, or
m=1 if CONFIG.MODE=Diff)
REFERENCE Selected reference voltage
The result generated by the ADC will deviate from the expected due DC errors like offset, gain, differential
non-linearity (DNL), and integral non-linearity (INL). See Electrical specification for details on these
parameters. The result can also vary due to AC errors like non-linearities in the GAIN block, settling errors
due to high source impedance and sampling jitter. For battery measurement, the DC errors are most
noticeable.
The ADC has a wide selection of gains controlled in the GAIN field of the CH[n].CONFIG register. If
CH[n].CONFIG.REFSEL=0, the input range of the ADC core is nominally ±0.6 V differential, and the input
must be scaled accordingly.
The ADC has a temperature dependent offset. If the ADC is to operate over a large temperature range,
it is recommended to run CALIBRATEOFFSET at regular intervals. The CALIBRATEDONE, DONE, and
RESULTDONE events will be generated when the calibration has completed.
Note: Channels selected for COMP cannot be used at the same time for ADC sampling, though
channels not selected for use by these blocks can be used by the ADC.
Care shall be taken to ensure that the sample rate fulfills the following criteria, depending on how many
channels are active.
The SAMPLERATE register can be used as a local timer instead of triggering individual SAMPLE tasks. When
SAMPLERATE.MODE is set to Timers, it is sufficient to trigger SAMPLE task only once in order to start the
SAADC and triggering the STOP task will stop sampling. The SAMPLERATE.CC field controls the sample rate.
The SAMPLERATE timer mode cannot be combined with Scan mode, and only one channel can be enabled
in this mode.
A DONE event signals that one sample has been taken.
In this mode, the RESULTDONE event has the same meaning as DONE when no oversampling takes place.
Both events may occur before the actual value has been transferred into RAM by EasyDMA.
7.29.5.3 Oversampling
An accumulator in the ADC can be used to average noise on the analog input. In general, oversampling
improves the signal-to-noise ratio (SNR). Oversampling, however, does not improve the integral non-
linearity (INL), or differential non-linearity (DNL).
Oversampling and Scan mode should not be combined, since oversampling and scan will average over
input channels.
The accumulator is controlled in the OVERSAMPLE register. The SAMPLE task must be set 2OVERSAMPLE
number of times before the result is written to RAM. This can be achieved by the following:
• Configuring a fixed sampling rate using the local timer or a general purpose timer and the PPI system to
trigger a SAMPLE task
• Triggering SAMPLE 2OVERSAMPLE times from software
• Enabling BURST mode
CH[n].CONFIG.BURST can be enabled to avoid setting SAMPLE task 2OVERSAMPLE times. With BURST = 1 the
ADC will sample the input 2OVERSAMPLE times as fast as it can (actual timing: <(tACQ+tCONV)×2OVERSAMPLE).
Thus, for the user it will just appear like the conversion took a bit longer time, but other than that, it is
similar to One-shot mode.
A DONE event signals that one sample has been taken.
In this mode, the RESULTDONE event signals that enough conversions have taken place for an
oversampled result to get transferred into RAM. Both events may occur before the actual value has been
transferred into RAM by EasyDMA.
31 16 15 0
st st
RESULT.PTR CH[2] 1 result CH[1] 1 result
nd
RESULT.PTR + 4 CH[1] 2 result CH[5] 1st result
(…)
RESULT.PTR +
2*(RESULT.MAXCNT – 2)
CH[5] last result CH[2] last result
Figure 196: Example of RAM placement (even RESULT.MAXCNT), channels 1, 2 and, 5 enabled
The following figure shows an example of the placement of results in Data RAM, with an odd
RESULT.MAXCNT. In this example, channels 1, 2 and, 5 are enabled, all others are disabled. The last 32-bit
word is populated only with one 16-bit result.
31 16 15 0
st st
RESULT.PTR CH[2] 1 result CH[1] 1 result
nd
RESULT.PTR + 4 CH[1] 2 result CH[5] 1st result
(…)
RESULT.PTR +
2*(RESULT.MAXCNT – 1)
CH[5] last result
Figure 197: Example of RAM placement (odd RESULT.MAXCNT), channels 1, 2 and, 5 enabled
7.29.6 EasyDMA
After configuring RESULT.PTR and RESULT.MAXCNT, the ADC resources are started by triggering the START
task. The ADC is using EasyDMA to store results in a Result buffer in RAM.
The Result buffer is located at the address specified in the RESULT.PTR register. The RESULT.PTR register
is double-buffered and it can be updated and prepared for the next START task immediately after the
STARTED event is generated. The size of the Result buffer is specified in the RESULT.MAXCNT register
and the ADC will generate an END event when it has filled up the Result buffer, see ADC on page 593.
Results are stored in little-endian byte order in Data RAM. Every sample will be sign extended to 16 bit
before stored in the Result buffer.
The ADC is stopped by triggering the STOP task. The STOP task will terminate an ongoing sampling. The
ADC will generate a STOPPED event when it has stopped. If the ADC is already stopped when the STOP task
is triggered, the STOPPED event will still be generated.
Data RAM
0x20000000
Result 0
0x20000002
Result 1
0x20000010
Result 2
0x20000012
Result 3
0x20000020
0
0x20000022
0
ADC
Sample and convert RAM Sample and convert RAM Sample and convert RAM Sample and convert RAM
STARTED
STARTED
END
END
Lifeline
1 2 3
RESULT.PTR = 0x20000000
RESULT.PTR = 0x20000010
RESULT.PTR = 0x20000020
SAMPLE
SAMPLE
SAMPLE
SAMPLE
RESULT.MAXCNT
START
START
If the RESULT.PTR is not pointing to a RAM region accessible from the peripheral, an EasyDMA transfer may
result in a HardFault and/or memory corruption. See Memory on page 21 for more information about the
different memory regions.
The EasyDMA will have finished accessing the RAM when the END or STOPPED event has been generated.
The RESULT.AMOUNT register can be read following an END event or a STOPPED event to see how many
results have been transferred to the Result buffer in RAM since the START task was triggered.
In Scan mode, SAMPLE tasks can be triggered once the START task is triggered. The END event is generated
when the number of samples transferred to memory reaches the value specified by RESULT.MAXCNT. After
an END event, the START task needs to be triggered again before new samples can be taken. By specifying
RESULT.MAXCNT ≥ number of channels enabled, the size of the Result buffer should be large enough for
a minimum of one result from each of the enabled channels. See Scan mode on page 591 for more
information.
RESP = Pullup
R
Input Output
RESP = Pulldown
7.29.8 Reference
The ADC can use the following two references, controlled in the REFSEL field of the CH[n].CONFIG register.
• Internal reference
• VDD as reference
The internal reference results in an input range of ±0.6 V on the ADC core. VDD as reference results in an
input range of ±VDD/4 on the ADC core. The gain block can be used to change the effective input range of
the ADC.
For example, choosing VDD as reference, single ended input (grounded negative input), and a gain of 1/4
the input range is the following:
With internal reference, single ended input (grounded negative input), and a gain of 1/6 the input range is
the following:
The AIN0 - AIN7 inputs cannot exceed VDD, or be lower than VSS.
ADC
Rsource
TACQ
VIN
CH[n].LIMIT.HIGH
CH[n].LIMIT.LOW
events
EVENTS_CH[n].LIMITH
EVENTS_CH[n].LIMITH
EVENTS_CH[n].LIMITH
EVENTS_CH[n].LIMITL
The CH[n].LIMIT.HIGH shall always be higher than or equal to CH[n].LIMIT.LOW . In other words, an event
can be generated only when the input signal has been sampled outside of the defined limits. It is not
possible to generate an event when the input signal is inside a defined range by swapping high and low
limits.
The comparison to limits always takes place, there is no need to enable it. If comparison is not required
on a channel, the software shall simply ignore the related events. In that situation, the value of the limits
registers is irrelevant, so it does not matter if CH[n].LIMIT.LOW is lower than CH[n].LIMIT.HIGH or not.
7.29.11 Registers
Instances
Register overview
7.29.11.1 TASKS_START
Address offset: 0x000
Start the ADC and prepare the result buffer in RAM
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start the ADC and prepare the result buffer in RAM
Trigger 1 Trigger task
7.29.11.2 TASKS_SAMPLE
Address offset: 0x004
Take one ADC sample, if scan is enabled all channels are sampled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SAMPLE Take one ADC sample, if scan is enabled all channels are sampled
Trigger 1 Trigger task
7.29.11.3 TASKS_STOP
Address offset: 0x008
Stop the ADC and terminate any ongoing conversion
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop the ADC and terminate any ongoing conversion
Trigger 1 Trigger task
7.29.11.4 TASKS_CALIBRATEOFFSET
Address offset: 0x00C
Starts offset auto-calibration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CALIBRATEOFFSET Starts offset auto-calibration
7.29.11.5 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.29.11.6 SUBSCRIBE_SAMPLE
Address offset: 0x084
Subscribe configuration for task SAMPLE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SAMPLE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.29.11.7 SUBSCRIBE_STOP
Address offset: 0x088
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.29.11.8 SUBSCRIBE_CALIBRATEOFFSET
Address offset: 0x08C
Subscribe configuration for task CALIBRATEOFFSET
Do not trigger when the ADC has been started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CALIBRATEOFFSET will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.29.11.9 EVENTS_STARTED
Address offset: 0x100
The ADC has started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STARTED The ADC has started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.29.11.10 EVENTS_END
Address offset: 0x104
The ADC has filled up the Result buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_END The ADC has filled up the Result buffer
NotGenerated 0 Event not generated
Generated 1 Event generated
7.29.11.11 EVENTS_DONE
Address offset: 0x108
A conversion task has been completed. Depending on the mode, multiple conversions might be needed for
a result to be transferred to RAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DONE A conversion task has been completed. Depending on the mode, multiple
conversions might be needed for a result to be transferred to RAM.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.29.11.12 EVENTS_RESULTDONE
Address offset: 0x10C
A result is ready to get transferred to RAM
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RESULTDONE A result is ready to get transferred to RAM
NotGenerated 0 Event not generated
Generated 1 Event generated
7.29.11.13 EVENTS_CALIBRATEDONE
Address offset: 0x110
Calibration is complete
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CALIBRATEDONE Calibration is complete
NotGenerated 0 Event not generated
Generated 1 Event generated
7.29.11.14 EVENTS_STOPPED
Address offset: 0x114
The ADC has stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED The ADC has stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIMITH Last results is equal or above CH[n].LIMIT.HIGH
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIMITL Last results is equal or below CH[n].LIMIT.LOW
NotGenerated 0 Event not generated
Generated 1 Event generated
7.29.11.16 PUBLISH_STARTED
Address offset: 0x180
Publish configuration for event STARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.29.11.17 PUBLISH_END
Address offset: 0x184
Publish configuration for event END
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event END will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.29.11.18 PUBLISH_DONE
Address offset: 0x188
Publish configuration for event DONE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DONE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.29.11.19 PUBLISH_RESULTDONE
Address offset: 0x18C
Publish configuration for event RESULTDONE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RESULTDONE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.29.11.20 PUBLISH_CALIBRATEDONE
Address offset: 0x190
Publish configuration for event CALIBRATEDONE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CALIBRATEDONE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.29.11.21 PUBLISH_STOPPED
Address offset: 0x194
Publish configuration for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CH[n].LIMITH will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CH[n].LIMITL will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.29.11.23 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STARTED Enable or disable interrupt for event STARTED
Disabled 0 Disable
Enabled 1 Enable
B RW END Enable or disable interrupt for event END
Disabled 0 Disable
Enabled 1 Enable
C RW DONE Enable or disable interrupt for event DONE
Disabled 0 Disable
Enabled 1 Enable
D RW RESULTDONE Enable or disable interrupt for event RESULTDONE
Disabled 0 Disable
Enabled 1 Enable
E RW CALIBRATEDONE Enable or disable interrupt for event CALIBRATEDONE
Disabled 0 Disable
Enabled 1 Enable
F RW STOPPED Enable or disable interrupt for event STOPPED
Disabled 0 Disable
Enabled 1 Enable
G RW CH0LIMITH Enable or disable interrupt for event CH0LIMITH
Disabled 0 Disable
Enabled 1 Enable
H RW CH0LIMITL Enable or disable interrupt for event CH0LIMITL
Disabled 0 Disable
Enabled 1 Enable
I RW CH1LIMITH Enable or disable interrupt for event CH1LIMITH
Disabled 0 Disable
Enabled 1 Enable
J RW CH1LIMITL Enable or disable interrupt for event CH1LIMITL
Disabled 0 Disable
Enabled 1 Enable
K RW CH2LIMITH Enable or disable interrupt for event CH2LIMITH
Disabled 0 Disable
Enabled 1 Enable
L RW CH2LIMITL Enable or disable interrupt for event CH2LIMITL
Disabled 0 Disable
Enabled 1 Enable
M RW CH3LIMITH Enable or disable interrupt for event CH3LIMITH
Disabled 0 Disable
Enabled 1 Enable
N RW CH3LIMITL Enable or disable interrupt for event CH3LIMITL
Disabled 0 Disable
Enabled 1 Enable
O RW CH4LIMITH Enable or disable interrupt for event CH4LIMITH
Disabled 0 Disable
Enabled 1 Enable
P RW CH4LIMITL Enable or disable interrupt for event CH4LIMITL
Disabled 0 Disable
Enabled 1 Enable
Q RW CH5LIMITH Enable or disable interrupt for event CH5LIMITH
Disabled 0 Disable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Enable
R RW CH5LIMITL Enable or disable interrupt for event CH5LIMITL
Disabled 0 Disable
Enabled 1 Enable
S RW CH6LIMITH Enable or disable interrupt for event CH6LIMITH
Disabled 0 Disable
Enabled 1 Enable
T RW CH6LIMITL Enable or disable interrupt for event CH6LIMITL
Disabled 0 Disable
Enabled 1 Enable
U RW CH7LIMITH Enable or disable interrupt for event CH7LIMITH
Disabled 0 Disable
Enabled 1 Enable
V RW CH7LIMITL Enable or disable interrupt for event CH7LIMITL
Disabled 0 Disable
Enabled 1 Enable
7.29.11.24 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STARTED Write '1' to enable interrupt for event STARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW END Write '1' to enable interrupt for event END
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW DONE Write '1' to enable interrupt for event DONE
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW RESULTDONE Write '1' to enable interrupt for event RESULTDONE
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW CALIBRATEDONE Write '1' to enable interrupt for event CALIBRATEDONE
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Read: Enabled
G RW CH0LIMITH Write '1' to enable interrupt for event CH0LIMITH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW CH0LIMITL Write '1' to enable interrupt for event CH0LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW CH1LIMITH Write '1' to enable interrupt for event CH1LIMITH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
J RW CH1LIMITL Write '1' to enable interrupt for event CH1LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
K RW CH2LIMITH Write '1' to enable interrupt for event CH2LIMITH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW CH2LIMITL Write '1' to enable interrupt for event CH2LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
M RW CH3LIMITH Write '1' to enable interrupt for event CH3LIMITH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
N RW CH3LIMITL Write '1' to enable interrupt for event CH3LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
O RW CH4LIMITH Write '1' to enable interrupt for event CH4LIMITH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
P RW CH4LIMITL Write '1' to enable interrupt for event CH4LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Q RW CH5LIMITH Write '1' to enable interrupt for event CH5LIMITH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
R RW CH5LIMITL Write '1' to enable interrupt for event CH5LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
S RW CH6LIMITH Write '1' to enable interrupt for event CH6LIMITH
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
T RW CH6LIMITL Write '1' to enable interrupt for event CH6LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
U RW CH7LIMITH Write '1' to enable interrupt for event CH7LIMITH
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
V RW CH7LIMITL Write '1' to enable interrupt for event CH7LIMITL
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.29.11.25 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STARTED Write '1' to disable interrupt for event STARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW END Write '1' to disable interrupt for event END
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW DONE Write '1' to disable interrupt for event DONE
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW RESULTDONE Write '1' to disable interrupt for event RESULTDONE
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW CALIBRATEDONE Write '1' to disable interrupt for event CALIBRATEDONE
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
G RW CH0LIMITH Write '1' to disable interrupt for event CH0LIMITH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW CH0LIMITL Write '1' to disable interrupt for event CH0LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW CH1LIMITH Write '1' to disable interrupt for event CH1LIMITH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
J RW CH1LIMITL Write '1' to disable interrupt for event CH1LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
K RW CH2LIMITH Write '1' to disable interrupt for event CH2LIMITH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW CH2LIMITL Write '1' to disable interrupt for event CH2LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
M RW CH3LIMITH Write '1' to disable interrupt for event CH3LIMITH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
N RW CH3LIMITL Write '1' to disable interrupt for event CH3LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
O RW CH4LIMITH Write '1' to disable interrupt for event CH4LIMITH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
P RW CH4LIMITL Write '1' to disable interrupt for event CH4LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Q RW CH5LIMITH Write '1' to disable interrupt for event CH5LIMITH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
R RW CH5LIMITL Write '1' to disable interrupt for event CH5LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
S RW CH6LIMITH Write '1' to disable interrupt for event CH6LIMITH
Clear 1 Disable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
T RW CH6LIMITL Write '1' to disable interrupt for event CH6LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
U RW CH7LIMITH Write '1' to disable interrupt for event CH7LIMITH
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
V RW CH7LIMITL Write '1' to disable interrupt for event CH7LIMITL
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.29.11.26 STATUS
Address offset: 0x400
Status
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R STATUS Status
Ready 0 ADC is ready. No ongoing conversion.
Busy 1 ADC is busy. Single conversion in progress.
7.29.11.27 ENABLE
Address offset: 0x500
Enable or disable ADC
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable ADC
Disabled 0 Disable ADC
Enabled 1 Enable ADC
When enabled, the ADC will acquire access to the analog input pins
specified in the CH[n].PSELP and CH[n].PSELN registers.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PSELP Analog positive input channel
NC 0 Not connected
AnalogInput0 1 AIN0
AnalogInput1 2 AIN1
AnalogInput2 3 AIN2
AnalogInput3 4 AIN3
AnalogInput4 5 AIN4
AnalogInput5 6 AIN5
AnalogInput6 7 AIN6
AnalogInput7 8 AIN7
VDD 9 VDD
VDDHDIV5 0xD VDDH/5
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PSELN Analog negative input, enables differential channel
NC 0 Not connected
AnalogInput0 1 AIN0
AnalogInput1 2 AIN1
AnalogInput2 3 AIN2
AnalogInput3 4 AIN3
AnalogInput4 5 AIN4
AnalogInput5 6 AIN5
AnalogInput6 7 AIN6
AnalogInput7 8 AIN7
VDD 9 VDD
VDDHDIV5 0xD VDDH/5
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID G F E E E D C C C B B A A
Reset 0x00020000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RESP Positive channel resistor control
Bypass 0 Bypass resistor ladder
Pulldown 1 Pull-down to GND
Pullup 2 Pull-up to VDD
VDD1_2 3 Set input at VDD/2
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID G F E E E D C C C B B A A
Reset 0x00020000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
B RW RESN Negative channel resistor control
Bypass 0 Bypass resistor ladder
Pulldown 1 Pull-down to GND
Pullup 2 Pull-up to VDD
VDD1_2 3 Set input at VDD/2
C RW GAIN Gain control
Gain1_6 0 1/6
Gain1_5 1 1/5
Gain1_4 2 1/4
Gain1_3 3 1/3
Gain1_2 4 1/2
Gain1 5 1
Gain2 6 2
Gain4 7 4
D- RW REFSEL Reference control
Internal 0 Internal reference (0.6 V)
VDD1_4 1 VDD/4 as reference
E RW TACQ Acquisition time, the time the ADC uses to sample the input voltage
3us 0 3 µs
5us 1 5 µs
10us 2 10 µs
15us 3 15 µs
20us 4 20 µs
40us 5 40 µs
F RW MODE Enable differential mode
SE 0 Single-ended, PSELN will be ignored, negative input to ADC shorted to GND
Diff 1 Differential
G RW BURST Enable burst mode
Disabled 0 Burst mode is disabled (normal operation)
Enabled 1 Burst mode is enabled. SAADC takes 2^OVERSAMPLE number of samples as
fast as it can, and sends the average to Data RAM.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A
Reset 0x7FFF8000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LOW [-32768 to +32767] Low level limit
B RW HIGH [-32768 to +32767] High level limit
7.29.11.32 RESOLUTION
Address offset: 0x5F0
Resolution configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW VAL Set the resolution
8bit 0 8 bit
10bit 1 10 bit
12bit 2 12 bit
14bit 3 14 bit
7.29.11.33 OVERSAMPLE
Address offset: 0x5F4
Oversampling configuration. OVERSAMPLE should not be combined with SCAN. The RESOLUTION is
applied before averaging, thus for high OVERSAMPLE a higher RESOLUTION should be used.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OVERSAMPLE Oversample control
Bypass 0 Bypass oversampling
Over2x 1 Oversample 2x
Over4x 2 Oversample 4x
Over8x 3 Oversample 8x
Over16x 4 Oversample 16x
Over32x 5 Oversample 32x
Over64x 6 Oversample 64x
Over128x 7 Oversample 128x
Over256x 8 Oversample 256x
7.29.11.34 SAMPLERATE
Address offset: 0x5F8
Controls normal or continuous sample rate
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CC [80..2047] Capture and compare value; sample rate is 16 MHz/CC
B RW MODE Select mode for sample rate control
Task 0 Rate is controlled from SAMPLE task
Timers 1 Rate is controlled from local timer (use CC to control the rate)
7.29.11.35 RESULT
RESULT EasyDMA channel
7.29.11.35.1 RESULT.PTR
Address offset: 0x62C
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the Memory chapter for details about which memories are available for
EasyDMA.
7.29.11.35.2 RESULT.MAXCNT
Address offset: 0x630
Maximum number of buffer words to transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT Maximum number of buffer words to transfer
7.29.11.35.3 RESULT.AMOUNT
Address offset: 0x634
Number of buffer words transferred since last START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT Number of buffer words transferred since last START. This register can be
read after an END or STOPPED event.
21
Digital output code at zero volt differential input.
EG1/2 22
Error for Gain = 1/2 -3 4 %
EG1 22
Error for Gain = 1 -3 4 %
22
Temperature drift is not included.
23
Maximum gain corresponds to highest capacitance.
TASKS_
START
STOP
SUSPEND
RESUME
GPIO SPIM RAM
PSEL.MOSI TXD.PTR
buffer[0]
buffer[1]
TXD
MOSI Pin EasyDMA
buffer
SCK Pin PSEL.SCK buffer[TXD.MAXCNT-1]
EVENTS_
STOPPED
ENDRX
END
ENDTX
STARTED
SCK
CSN
ENDRX
END
ENDTX
START
The ENDTX is generated when all bytes in buffer TXD.PTR on page 630 are transmitted. The number
of bytes in the transmit buffer is specified in register TXD.MAXCNT on page 630. The ENDRX event will
be generated when buffer RXD.PTR on page 629 is full, that is when the number of bytes specified in
register RXD.MAXCNT on page 629 have been received. The transaction stops automatically after all
bytes have been transmitted/received. When the maximum number of bytes in receive buffer is larger
than the number of bytes in the transmit buffer, the contents of register ORC on page 633 will be
transmitted after the last byte in the transmit buffer has been transmitted.
The END event will be generated after both the ENDRX and ENDTX events have been generated.
The SPI master can be stopped by triggering the STOP task. A STOPPED event is generated when the SPI
master has stopped. If the STOP task is triggered in the middle of a transaction, SPIM will complete the
transmission/reception of the current byte before stopping. The STOPPED event is generated even if the
STOP task is triggered while there is no ongoing transaction.
If the ENDTX event has not already been generated when the SPI master has come to a stop, the ENDTX
event will be generated even if all bytes in the buffer TXD.PTR on page 630 have not been transmitted.
If the ENDRX event has not already been generated when the SPI master has come to a stop, the ENDRX
event will be generated even if the buffer RXD.PTR on page 629 is not full.
A transaction can be suspended and resumed using the SUSPEND and RESUME tasks, receptively. When
the SUSPEND task is triggered, the SPI master will complete transmitting and receiving the current ongoing
byte before it is suspended.
Some SPIM instances do not support automatic control of CSN, and for those the available GPIO pins need
to be used to control CSN directly. See Instances on page 619 for information about what features are
supported in the various SPIM instances.
The SPIM supports SPI modes 0 through 3. The clock polarity (CPOL) and the clock phase (CPHA) are
configured in register CONFIG on page 631.
CPOL CPHA
SPI_MODE0 0 (Active High) 0 (Leading)
SPI_MODE1 0 (Active High) 1 (Trailing)
SPI_MODE2 1 (Active Low) 0 (Leading)
SPI_MODE3 1 (Active Low) 1 (Trailing)
7.30.5 EasyDMA
SPIM implements EasyDMA for accessing RAM without CPU involvement.
SPIM implements the following EasyDMA channels.
For detailed information regarding the use of EasyDMA, see EasyDMA on page 153.
The .PTR and .MAXCNT registers are double-buffered. They can be updated and prepared for the next
transmission immediately after having received the STARTED event.
The SPI master will automatically stop transmitting after TXD.MAXCNT bytes have been transmitted
and RXD.MAXCNT bytes have been received. If RXD.MAXCNT is larger than TXD.MAXCNT, the remaining
transmitted bytes will contain the value defined in the ORC register. If TXD.MAXCNT is larger than
RXD.MAXCNT, the additional received bytes will be discarded.
The ENDRX/ENDTX events indicate that EasyDMA has finished accessing respectively the RX/TX buffer in
RAM. The END event gets generated when both RX and TX are finished accessing the buffers in RAM.
If several AHB bus masters try to access the same AHB slave at the same time, AHB bus congestion might
occur, and the behavior of the EasyDMA channel will depend on the SPIM instance. Refer to Instances on
page 619 for information about what behavior is supported in the various instances.
7.30.7 Registers
Instances
SPIM0 : S 0x50008000
APPLICATION US S SA No SPI master 0
SPIM0 : NS 0x40008000
SPIM1 : S 0x50009000
APPLICATION US S SA No SPI master 1
SPIM1 : NS 0x40009000
SPIM4 : S 0x5000A000
APPLICATION US S SA No SPI master 4 (high-speed)
SPIM4 : NS 0x4000A000
SPIM2 : S 0x5000B000
APPLICATION US S SA No SPI master 2
SPIM2 : NS 0x4000B000
SPIM3 : S 0x5000C000
APPLICATION US S SA No SPI master 3
SPIM3 : NS 0x4000C000
SPIM0 NETWORK 0x41013000 HF NS NA No SPI master 0
Configuration
Register overview
7.30.7.1 TASKS_START
Address offset: 0x010
Start SPI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start SPI transaction
Trigger 1 Trigger task
7.30.7.2 TASKS_STOP
Address offset: 0x014
Stop SPI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop SPI transaction
Trigger 1 Trigger task
7.30.7.3 TASKS_SUSPEND
Address offset: 0x01C
Suspend SPI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SUSPEND Suspend SPI transaction
Trigger 1 Trigger task
7.30.7.4 TASKS_RESUME
Address offset: 0x020
Resume SPI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RESUME Resume SPI transaction
Trigger 1 Trigger task
7.30.7.5 SUBSCRIBE_START
Address offset: 0x090
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.30.7.6 SUBSCRIBE_STOP
Address offset: 0x094
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.30.7.7 SUBSCRIBE_SUSPEND
Address offset: 0x09C
Subscribe configuration for task SUSPEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SUSPEND will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.30.7.8 SUBSCRIBE_RESUME
Address offset: 0x0A0
Subscribe configuration for task RESUME
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RESUME will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.30.7.9 EVENTS_STOPPED
Address offset: 0x104
SPI transaction has stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED SPI transaction has stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.30.7.10 EVENTS_ENDRX
Address offset: 0x110
End of RXD buffer reached
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDRX End of RXD buffer reached
NotGenerated 0 Event not generated
Generated 1 Event generated
7.30.7.11 EVENTS_END
Address offset: 0x118
End of RXD buffer and TXD buffer reached
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_END End of RXD buffer and TXD buffer reached
NotGenerated 0 Event not generated
Generated 1 Event generated
7.30.7.12 EVENTS_ENDTX
Address offset: 0x120
End of TXD buffer reached
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDTX End of TXD buffer reached
NotGenerated 0 Event not generated
Generated 1 Event generated
7.30.7.13 EVENTS_STARTED
Address offset: 0x14C
Transaction started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STARTED Transaction started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.30.7.14 PUBLISH_STOPPED
Address offset: 0x184
Publish configuration for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.30.7.15 PUBLISH_ENDRX
Address offset: 0x190
Publish configuration for event ENDRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDRX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.30.7.16 PUBLISH_END
Address offset: 0x198
Publish configuration for event END
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event END will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.30.7.17 PUBLISH_ENDTX
Address offset: 0x1A0
Publish configuration for event ENDTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDTX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.30.7.18 PUBLISH_STARTED
Address offset: 0x1CC
Publish configuration for event STARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.30.7.19 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW END_START Shortcut between event END and task START
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.30.7.20 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ENDRX Write '1' to enable interrupt for event ENDRX
Set 1 Enable
Disabled 0 Read: Disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Read: Enabled
C RW END Write '1' to enable interrupt for event END
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW ENDTX Write '1' to enable interrupt for event ENDTX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW STARTED Write '1' to enable interrupt for event STARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.30.7.21 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ENDRX Write '1' to disable interrupt for event ENDRX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW END Write '1' to disable interrupt for event END
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW ENDTX Write '1' to disable interrupt for event ENDTX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW STARTED Write '1' to disable interrupt for event STARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.30.7.22 STALLSTAT
Address offset: 0x400
Stall status for EasyDMA RAM accesses. The fields in this register are set to STALL by hardware whenever a
stall occurres and can be cleared (set to NOSTALL) by the CPU.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TX [1..0] Stall status for EasyDMA RAM reads
NOSTALL 0 No stall
STALL 1 A stall has occurred
B RW RX [1..0] Stall status for EasyDMA RAM writes
NOSTALL 0 No stall
STALL 1 A stall has occurred
7.30.7.23 ENABLE
Address offset: 0x500
Enable SPIM
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable SPIM
Disabled 0 Disable SPIM
Enabled 7 Enable SPIM
7.30.7.24 PSEL.SCK
Address offset: 0x508
Pin select for SCK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.30.7.25 PSEL.MOSI
Address offset: 0x50C
Pin select for MOSI signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.30.7.26 PSEL.MISO
Address offset: 0x510
Pin select for MISO signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.30.7.27 PSEL.CSN
Address offset: 0x514
Pin select for CSN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.30.7.28 FREQUENCY
Address offset: 0x524
SPI frequency. Accuracy depends on the HFCLK source selected.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x04000000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FREQUENCY SPI master data rate
K125 0x02000000 125 kbps
K250 0x04000000 250 kbps
K500 0x08000000 500 kbps
M1 0x10000000 1 Mbps
M2 0x20000000 2 Mbps
M4 0x40000000 4 Mbps
M8 0x80000000 8 Mbps
M16 0x0A000000 16 Mbps
M32 0x14000000 32 Mbps
7.30.7.29 RXD
RXD EasyDMA channel
7.30.7.29.1 RXD.PTR
Address offset: 0x534
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the Memory chapter for details about which memories are available for
EasyDMA.
7.30.7.29.2 RXD.MAXCNT
Address offset: 0x538
Maximum number of bytes in receive buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in receive buffer
7.30.7.29.3 RXD.AMOUNT
Address offset: 0x53C
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last transaction
7.30.7.29.4 RXD.LIST
Address offset: 0x540
EasyDMA list type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
7.30.7.30 TXD
TXD EasyDMA channel
7.30.7.30.1 TXD.PTR
Address offset: 0x544
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the Memory chapter for details about which memories are available for
EasyDMA.
7.30.7.30.2 TXD.MAXCNT
Address offset: 0x548
Number of bytes in transmit buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in transmit buffer
7.30.7.30.3 TXD.AMOUNT
Address offset: 0x54C
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last transaction
7.30.7.30.4 TXD.LIST
Address offset: 0x550
EasyDMA list type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
7.30.7.31 CONFIG
Address offset: 0x554
Configuration register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ORDER Bit order
MsbFirst 0 Most significant bit shifted out first
LsbFirst 1 Least significant bit shifted out first
B RW CPHA Serial clock (SCK) phase
Leading 0 Sample on leading edge of clock, shift serial data on trailing edge
Trailing 1 Sample on trailing edge of clock, shift serial data on leading edge
C RW CPOL Serial clock (SCK) polarity
ActiveHigh 0 Active high
ActiveLow 1 Active low
7.30.7.32 IFTIMING.RXDELAY
Address offset: 0x560
Sample delay for input serial data on MISO
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW RXDELAY [7..0] Sample delay for input serial data on MISO. The value specifies the number
of 64 MHz clock cycles (15.625 ns) delay from the the sampling edge of
SCK (leading edge for CONFIG.CPHA = 0, trailing edge for CONFIG.CPHA =
1) until the input serial data is sampled. As en example, if RXDELAY = 0 and
CONFIG.CPHA = 0, the input serial data is sampled on the rising edge of SCK.
7.30.7.33 IFTIMING.CSNDUR
Address offset: 0x564
Minimum duration between edge of CSN and edge of SCK. When SHORTS.END_START is used, this is also
the minimum duration CSN must stay high between transactions.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW CSNDUR [0xFF..0] Minimum duration between edge of CSN and edge of SCK. When
SHORTS.END_START is used, this is the minimum duration CSN must stay
high between transactions. The value is specified in number of 64 MHz clock
cycles (15.625 ns).
Note that for low values of CSNDUR, the system turnaround time will
dominate the actual time between transactions.
7.30.7.34 CSNPOL
Address offset: 0x568
Polarity of CSN output
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CSNPOL Polarity of CSN output
LOW 0 Active low (idle state high)
HIGH 1 Active high (idle state low)
7.30.7.35 PSELDCX
Address offset: 0x56C
Pin select for DCX signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.30.7.36 DCXCNT
Address offset: 0x570
DCX configuration
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DCXCNT 0x0..0xF This register specifies the number of command bytes preceding the data
bytes. The PSEL.DCX line will be low during transmission of command bytes
and high during transmission of data bytes. Value 0xF indicates that all bytes
are command bytes.
7.30.7.37 ORC
Address offset: 0x5C0
Byte transmitted after TXD.MAXCNT bytes have been transmitted in the case when RXD.MAXCNT is
greater than TXD.MAXCNT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ORC Byte transmitted after TXD.MAXCNT bytes have been transmitted in the
case when RXD.MAXCNT is greater than TXD.MAXCNT.
24
High bit rates may require GPIOs to be set as High Drive, see GPIO chapter for more details.
25
Application core SPIM4 supports 32 Mbps write speed when running at 128 MHz.
26
At 25pF load, including GPIO pin capacitance, see GPIO spec.
tCSCK
CPOL=0
CPHA=0
tWHSCK tRSCK
CPOL=1 tWLSCK tFSCK
SCK (out)
CPHA=0
CPOL=0
CPHA=1
CPOL=1
CPHA=1
CSNPOL=0
CSN (out)
CSNPOL=1
IFTIMING.CSNDUR IFTIMING.CSNDUR
tSUMI tHMI
MISO (in) MSb LSb
tVMO tHMO
MOSI (out) MSb LSb
SPIS
CSN MISO MOSI
ACQUIRE
SPI slave tranceiver
RELEASE
Semaphore
ACQUIRED
END
DEF
ENDRX
RAM
TXD RXD
TXD+1 RXD+1
TXD+2 RXD+2
TXD+n RXD+n
SPIS supports SPI modes 0 through 3. The CONFIG register allows setting CPOL and CPHA appropriately.
7.31.2 EasyDMA
SPIS implements EasyDMA for accessing RAM without CPU involvement.
SPIS implements the EasyDMA channels found in the following table.
For detailed information regarding the use of EasyDMA, see EasyDMA on page 153.
If RXD.MAXCNT is larger than TXD.MAXCNT, the remaining transmitted bytes will contain the value defined
in the ORC register.
The END event indicates that EasyDMA has finished accessing the buffer in RAM.
The CPU releases the semaphore by triggering the RELEASE task, this is illustrated in SPI transaction when
shortcut between END and ACQUIRE is enabled on page 637. Triggering the RELEASE task when the
semaphore is not granted to the CPU will have no effect. See Semaphore operation on page 637 for
more information
If the CPU is not able to reconfigure the TXD.PTR and RXD.PTR between granted transactions, the same
TX data will be clocked out and the RX buffers will be overwritten. To prevent this from happening, the
END_ACQUIRE shortcut can be used. With this shortcut enabled, the semaphore will be handed over to
the CPU automatically after the granted transaction has completed, giving the CPU the ability to update
the TXPTR and RXPTR between every granted transaction.
The ENDRX event is generated when the RX buffer has been filled.
The RXD.MAXCNT register specifies the maximum number of bytes the SPI slave can receive in one
granted transaction. If the SPI slave receives more than RXD.MAXCNT number of bytes, an OVERFLOW will
be indicated in the STATUS register and the incoming bytes will be discarded.
The TXD.MAXCNT parameter specifies the maximum number of bytes the SPI slave can transmit in one
granted transaction. If the SPI slave is forced to transmit more than TXD.MAXCNT number of bytes, an
OVERREAD will be indicated in the STATUS register and the ORC character will be clocked out.
The RXD.AMOUNT and TXD.AMOUNT registers are updated when a granted transaction is completed.
The TXD.AMOUNT register indicates how many bytes were read from the TX buffer in the last transaction,
that is, ORC (over-read) characters are not included in this number. Similarly, the RXD.AMOUNT register
indicates how many bytes were written into the RX buffer in the last transaction.
0 0 1 2 0 1 2
MISO
ACQUIRED
ACQUIRED
ACQUIRED
END
&
Lifeline
1 2 3 4
ACQUIRE
ACQUIRE
ACQUIRE
RELEASE
RELEASE
Figure 207: SPI transaction when shortcut between END and ACQUIRE is enabled
ACQUIRE FREE
CPU FREE
ACQUIRE
STOPPED STARTED
STOPPED ACQUIRE &
CSN = high
ACQUIRE
Note: The semaphore mechanism does not, at any time, prevent the CPU from performing read
or write access to the RXD.PTR register, the TXD.PTR registers, or the RAM that these pointers are
pointing to. The semaphore is only telling when these can be updated by the CPU so that safe
sharing is achieved.
The SPI slave will try to acquire the semaphore when STARTED event is detected, the even also indicates
that CSN is currently low. If the SPI slave does not manage to acquire the semaphore at this point (i.e., it
is under CPU's control), the transaction will be ignored. This means that all incoming data on MOSI will
be discarded, and the DEF (default) character will be clocked out on the MISO line throughout the whole
transaction. This will also be the case even if the semaphore is released by the CPU during the transaction.
In case of a race condition where the CPU and the SPI slave try to acquire the semaphore at the same
time, as illustrated in lifeline item 2 in figure SPI transaction when shortcut between END and ACQUIRE is
enabled on page 637, the semaphore will be granted to the CPU.
If the SPI slave acquires the semaphore, the transaction will be granted. The incoming data on MOSI will
be stored in the RXD buffer and the data in the TXD buffer will be clocked out on MISO.
When a granted transaction is completed and CSN goes high, the SPI slave will automatically release the
semaphore and generate the END event.
As long as the semaphore is available, the SPI slave can be granted multiple transactions one after the
other.
If the CPU tries to acquire the semaphore while it is assigned to the SPI slave, an immediate handover
will not be granted. However, the semaphore will be handed over to the CPU as soon as the SPI slave
has released the semaphore after the granted transaction is completed. If the END_ACQUIRE shortcut
is enabled and the CPU has triggered the ACQUIRE task during a granted transaction, only one ACQUIRE
request will be served following the END event.
and PIN_CNF[n] register. PSEL.CSN, PSEL.SCK, PSEL.MOSI, and PSEL.MISO must only be configured when
the SPI slave is disabled.
To secure correct behavior in the SPI slave, the pins used by the SPI slave must be configured in the GPIO
peripheral as described in GPIO configuration before enabling peripheral on page 639 before enabling
the SPI slave. This is to secure that the pins used by the SPI slave are driven correctly if the SPI slave itself
is temporarily disabled, or if the device temporarily enters System OFF. This configuration must be retained
in the GPIO for the selected I/Os as long as the SPI slave is to be recognized by an external SPI master.
The MISO line is set in high impedance as long as the SPI slave is not selected with CSN.
Only one peripheral can be assigned to drive a particular GPIO pin at a time. Failing to do so may result in
unpredictable behavior.
7.31.6 Registers
Instances
SPIS0 : S 0x50008000
APPLICATION US S SA No SPI slave 0
SPIS0 : NS 0x40008000
SPIS1 : S 0x50009000
APPLICATION US S SA No SPI slave 1
SPIS1 : NS 0x40009000
SPIS2 : S 0x5000B000
APPLICATION US S SA No SPI slave 2
SPIS2 : NS 0x4000B000
SPIS3 : S 0x5000C000
APPLICATION US S SA No SPI slave 3
SPIS3 : NS 0x4000C000
SPIS0 NETWORK 0x41013000 HF NS NA No SPI slave 0
Register overview
7.31.6.1 TASKS_ACQUIRE
Address offset: 0x024
Acquire SPI semaphore
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_ACQUIRE Acquire SPI semaphore
Trigger 1 Trigger task
7.31.6.2 TASKS_RELEASE
Address offset: 0x028
Release SPI semaphore, enabling the SPI slave to acquire it
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RELEASE Release SPI semaphore, enabling the SPI slave to acquire it
Trigger 1 Trigger task
7.31.6.3 SUBSCRIBE_ACQUIRE
Address offset: 0x0A4
Subscribe configuration for task ACQUIRE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task ACQUIRE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.31.6.4 SUBSCRIBE_RELEASE
Address offset: 0x0A8
Subscribe configuration for task RELEASE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RELEASE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.31.6.5 EVENTS_END
Address offset: 0x104
Granted transaction completed
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_END Granted transaction completed
NotGenerated 0 Event not generated
Generated 1 Event generated
7.31.6.6 EVENTS_ENDRX
Address offset: 0x110
End of RXD buffer reached
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDRX End of RXD buffer reached
NotGenerated 0 Event not generated
Generated 1 Event generated
7.31.6.7 EVENTS_ACQUIRED
Address offset: 0x128
Semaphore acquired
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ACQUIRED Semaphore acquired
NotGenerated 0 Event not generated
Generated 1 Event generated
7.31.6.8 PUBLISH_END
Address offset: 0x184
Publish configuration for event END
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event END will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.31.6.9 PUBLISH_ENDRX
Address offset: 0x190
Publish configuration for event ENDRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDRX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.31.6.10 PUBLISH_ACQUIRED
Address offset: 0x1A8
Publish configuration for event ACQUIRED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ACQUIRED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.31.6.11 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW END_ACQUIRE Shortcut between event END and task ACQUIRE
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.31.6.12 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW END Write '1' to enable interrupt for event END
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ENDRX Write '1' to enable interrupt for event ENDRX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW ACQUIRED Write '1' to enable interrupt for event ACQUIRED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.31.6.13 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW END Write '1' to disable interrupt for event END
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ENDRX Write '1' to disable interrupt for event ENDRX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
C RW ACQUIRED Write '1' to disable interrupt for event ACQUIRED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.31.6.14 SEMSTAT
Address offset: 0x400
Semaphore status register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R SEMSTAT Semaphore status
Free 0 Semaphore is free
CPU 1 Semaphore is assigned to CPU
SPIS 2 Semaphore is assigned to SPI slave
CPUPending 3 Semaphore is assigned to SPI but a handover to the CPU is pending
7.31.6.15 STATUS
Address offset: 0x440
Status from last transaction
Note: 1
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OVERREAD TX buffer over-read detected, and prevented
NotPresent 0 Read: error not present
Present 1 Read: error present
Clear 1 Write: clear error on writing '1'
B RW OVERFLOW RX buffer overflow detected, and prevented
NotPresent 0 Read: error not present
Present 1 Read: error present
Clear 1 Write: clear error on writing '1'
7.31.6.16 ENABLE
Address offset: 0x500
Enable SPI slave
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable SPI slave
Disabled 0 Disable SPI slave
Enabled 2 Enable SPI slave
7.31.6.17 PSEL.SCK
Address offset: 0x508
Pin select for SCK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.31.6.18 PSEL.MISO
Address offset: 0x50C
Pin select for MISO signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.31.6.19 PSEL.MOSI
Address offset: 0x510
Pin select for MOSI signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.31.6.20 PSEL.CSN
Address offset: 0x514
Pin select for CSN signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.31.6.21 RXD.PTR
Address offset: 0x534
RXD data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR RXD data pointer
See the Memory chapter for details about which memories are available for
EasyDMA.
7.31.6.22 RXD.MAXCNT
Address offset: 0x538
Maximum number of bytes in receive buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in receive buffer
7.31.6.23 RXD.AMOUNT
Address offset: 0x53C
Number of bytes received in last granted transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes received in the last granted transaction
7.31.6.24 RXD.LIST
Address offset: 0x540
EasyDMA list type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
7.31.6.25 TXD.PTR
Address offset: 0x544
TXD data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR TXD data pointer
See the Memory chapter for details about which memories are available for
EasyDMA.
7.31.6.26 TXD.MAXCNT
Address offset: 0x548
Maximum number of bytes in transmit buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in transmit buffer
7.31.6.27 TXD.AMOUNT
Address offset: 0x54C
Number of bytes transmitted in last granted transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transmitted in last granted transaction
7.31.6.28 TXD.LIST
Address offset: 0x550
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
7.31.6.29 CONFIG
Address offset: 0x554
Configuration register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ORDER Bit order
MsbFirst 0 Most significant bit shifted out first
LsbFirst 1 Least significant bit shifted out first
B RW CPHA Serial clock (SCK) phase
Leading 0 Sample on leading edge of clock, shift serial data on trailing edge
Trailing 1 Sample on trailing edge of clock, shift serial data on leading edge
C RW CPOL Serial clock (SCK) polarity
ActiveHigh 0 Active high
ActiveLow 1 Active low
7.31.6.30 DEF
Address offset: 0x55C
Default character. Character clocked out in case of an ignored transaction.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DEF Default character. Character clocked out in case of an ignored transaction.
7.31.6.31 ORC
Address offset: 0x5C0
Over-read character
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ORC Over-read character. Character clocked out after an over-read of the
transmit buffer.
27
High bit rates may require GPIOs to be set as High Drive, see GPIO chapter for more details.
28
The actual maximum data rate depends on the master's CLK to MISO and MOSI setup and hold
timings.
29
Excluding any start-up delay for the high frequency clock in low power mode.
30
At 25pF load, including GPIO capacitance, see GPIO spec.
CSN (in)
tWHSCKIN tRSCKIN
CPOL=1 tWLSCKIN tFSCKIN
CPHA=0 tASO tDISSO
tASA tVSO tHSO tHSO
MISO (out) MSb LSb
tSUSI tHSI
MOSI (in) MSb LSb
CSN (in)
tWHSCKIN tRSCKIN
CPOL=1 tWLSCKIN tFSCKIN
CPHA=1
tASO tVSO tHSO tDISSO
tASA
MISO (out) MSb LSb
tSUSI tHSI
MOSI (in) MSb LSb
CSN
CPOL=0
CPHA=1
CPOL=1
CPHA=1
tSUMI tHMI tDISSO
tASO tVSO
tHSO tHSO
tASA
MISO MSb LSb
SPU
configuration
registers
RAM
Implementation Internal system logic
Blocks
defined RAM
attribution unit blocks
Cortex-M33 (IDAU)
TrustZone-M
aware
CPU
Secure
Peripherals
control logic
Bus
interconnect
Other Secure
bus control logic
masters
Flash
The protection logic implements a read-as-zero/write-ignore (RAZ/WI) policy where the following are true:
• A blocked read operation will always return a zero value on the bus, preventing information leak.
• A write operation to a forbidden region or peripheral will be ignored.
An error is reported through dedicated error signals. For security state violations from an M33 master
this will be a SecureFault exception, for other violations this will be an SPU event. The SPU event can be
configured to generate an interrupt towards the CPU.
Other resources like pins and DPPI channels are protected by comparing the security attributes of the
protected resource with the security attribute of the peripheral that wants to access it. SPU is the only
place where those security attributes can be configured.
7.32.1.1 Special considerations for Arm TrustZone for Cortex-M enabled system
SPU also controls custom logic for an Arm TrustZone for Cortex-M enabled CPU.
Custom logic is shown as the implementation defined attribution unit (IDAU) in figure Simplified view of
SPU protection on page 651. Full support is provided for the following:
• Arm TrustZone for Cortex-M related instructions, like test target (TT) for reporting the security
attributes of a region
• Non-secure callable (NSC) regions, to implement secure entry points from non-secure code
SPU provides the necessary registers to configure the security attributes for memory regions and
peripherals. However, as a requirement to use SPU, the secure attribution unit (SAU) needs to be disabled
and all memory set as non-secure in the Arm core. This will allow SPU to control the IDAU and set the
security attribution of all addresses as originally intended.
Read
Allows data read access to the region. The code fetch from this region is not controlled by the read
permission but by the execute permission described below.
Write
Allows write or page erase access to the region.
Execute
Allows code fetch from this region, even if data read is disabled.
Secure
Allows only bus accesses with the security attribute set to access the region.
Permissions can be set independently. For example, it is possible to configure a flash region to be
accessible only through secure transfer, being read-only (no write allowed) and non-executable
(no code fetch allowed). For each region, permissions can be set and then locked by using the
FLASHREGION[n].PERM.LOCK bit, to prevent subsequent modifications.
The debugger can step through execute-protected memory regions.
The following figure shows the N=64 flash regions, each of size 16 KiB.
UICR
Always secure
FICR
SPU registers
Region #1
FLASHREGION[0].PERM
Region #0
0
Access error
Data bus 0 1
Address and control signals
(write) Data bus Bus +
(read) error
Error reporting Master identification
SPU registers
FLASHNSC[0].REGION == n
FLASHNSC[0].SIZE == m
m !=0
Region #n+1
Region #n-1
FLASHREGION[0].PERM
Flash address space
Figure 213: Non-secure callable region definition in the flash memory space
The NSC sub-region will only be defined when the following are true:
• FLASHNSC[i].SIZE value is non zero
• FLASHNSC[i].REGION defines a secure region
If FLASHNSC[i].REGION and FLASHNSCj].REGION have the same value, there is only one sub-region defined
as NSC, with the size given by the maximum of FLASHNSC[i].SIZE and FLASHNSC[j].SIZE.
If FLASHNSC[i].REGION defines a non-secure region, then there is no non-secure callable region defined
and the selected region stays non-secure.
For the Arm Cortex-M33 master, the SecureFault exception will take precedence over the BusFault
exception if a security violation occurs simultaneously with another type of violation.
Read
Allows data read access to the region. Code fetch from this region is not controlled by the read
permission but by the execute permission described below.
Write
Allows write access to the region.
Execute
Allows code fetch from this region.
Secure
Allows only bus accesses with the security attribute set to access the region.
Permissions can be set independently. For example, it is possible to configure a RAM region to be
accessible only through secure transfer, being read-only (no write allowed) and non-executable (no
code fetch allowed). For each region, permissions can be set and then locked to prevent subsequent
modifications by using the RAMREGION[n].PERM.LOCK bit.
The following figure shows the RAM memory space divided into N=64 regions, each of 8 KiB.
Region #N-1
Region #N-2
SPU registers
RAMREGION[N-1].PERM
Region Region #n
size
RAMREGION[n].PERM
Access
Entire
control
RAM
Region #1 RAMREGION[0].PERM
Region #0
0
Access error
Data bus 0 1
Address and control signals
(write) Data bus Bus +
(read) error
Error reporting Master identification
SPU registers
RAMNSC[0].REGION == n
RAMNSC[0].SIZE == m
m !=0
Region #n+1
Region #n-1
RAMREGION[0].PERM
RAM address space
Figure 215: Non-secure callable region definition in the RAM memory space
The NSC sub-region will only be defined when the following are true:
• RAMNSC[i].SIZE value is non zero
• RAMNSC[i].REGION defines a secure region
If RAMNSC[i].REGION and RAMNSC[j].REGION have the same value, there is only one sub-region defined
as NSC, with the size given by the maximum of RAMNSC[i].SIZE and RAMNSC[j].SIZE.
If RAMNSC[i].REGION defines a non-secure region, then there is no non-secure callable region defined and
the selected region stays non-secure.
For the Arm Cortex-M33 master, the SecureFault exception will take precedence over the BusFault
exception if a security violation occurs simultaneously with another type of violation.
Always secure
For a peripheral related to system control.
Always non-secure
For some general-purpose peripherals.
Configurable
For general-purpose peripherals that may be configured for secure only access.
The full list of peripherals and their corresponding security attributes can be found in Memory on page
21. For each peripheral with ID n, PERIPHID[n]. PERM will show whether the security attribute for this
peripheral is configurable or not.
If not hardcoded, the security attribute can configured using the PERIPHID[id].PERM.
At reset, all user-selectable and split security peripherals are set to be secure with secure DMA where
present.
Secure code can access both secure peripherals and non-secure peripherals.
Note:
Access to a secure peripheral using the 0x4XXXXXXX address range will result in bus error,
regardless if the CPU is executing secure or non-secure code.
Similarly, a CPU running secure code attempting to access a non-secure peripheral using the
0x5XXXXXXX address range will result in bus error.
Peripherals with a split security mapping are available at an address starting with the following:
• 0x4XXXXXXX for non-secure access and 0x5XXXXXXX for secure access, if the peripheral security
attribute is set to non-secure
• Secure registers in the 0x4XXXXXXX range are not visible for secure or non-secure code, and an
attempt to access such a register will result in write-ignore, read-as-zero behavior
• Secure code can access both non-secure and secure registers in the 0x5XXXXXXX range
• 0x5XXXXXXX, if the peripheral security attribute is set to secure
Any attempt to access the 0x50000000 to 0x5FFFFFFF address range from non-secure code will be ignored
and generate a SecureFault exception.
The following table contains the address mapping for the three peripheral types in each configuration.
Table 72: Peripheral's address mapping in relation to its security-features and configuration
P0.0 Peripherals
Peripherals Security
MCU
control unit PSEL.XXX
selection PSEL.XXX
logic PSEL.YYY
Security PSEL.YYY
PSEL.XXX
control unit
PSEL.YYY
EXTDOMAIN[n]
P0.31 Pin
control GPIO
logic
P1.0
MCUSEL GPIO.PIN_CNF[n]
SPU
SPU.GPIOPORT[0].PERM
P1.n SPU.GPIOPORT[1].PERM
Application MCU
Figure 216: Pin access for domains other than the application domain
If a non-secure peripheral wants to publish an event on a secure DPPI channel, the channel will ignore the
event. If a non-secure peripheral subscribes to a secure DPPI channel, it will not receive any events from
this channel. The following figure illustrates the principle of operation of the security logic for a subscribed
channel:
Event
to peripheral core
Peripheral registers
Security
check
SUBSCRIBE_XXXX
DPPI channel[n]
DPPI channel[0]
No error reporting mechanism is associated with the DPPI access control logic.
• Non-secure write accesses to registers CHEN, CHENSET and CHENCLR will not be able to write to bit i of
those registers
• Non-secure write accesses to registers TASK_CHG[j].EN and TASK_CHG[j].DIS will be ignored if the
channel group j contains at least one channel defined as secure (it can be the channel i itself or any
channel declared as secured)
• Non-secure read accesses to registers CHEN, CHENSET and CHENCLR will always read zero for the bit at
position i
For the channel configuration registers (DPPIC.CHG[n]), access from non-secure code is only possible if the
included channels are all non-secure, whether the channels are enabled or not. If a DPPIC.CHG[g] register
included one or more secure channels, then the group g is considered as secure and only a secure transfer
can read or write DPPIC.CHG[g]. A non-secure write will be ignored and a non-secure read will return zero.
The DPPIC can subscribe to secure or non-secure channels through SUBSCRIBE_CHG[n] registers in order
to trigger task for enabling or disabling groups of channels. But an event from a non-secure channel will be
ignored if the group subscribing to this channel is secure. An event from a secure channel can trigger both
secure and non-secure tasks.
The figure below illustrates how the security control units are used to assign security attributes to
transfers initiated by the external domains:
SPU
SECATTR SPU.EXTDOMAIN[0].PERM
SECATTR SPU.EXTDOMAIN[1].PERM
SECATTR SPU.EXTDOMAIN[n].PERM
RAM
blocks Security
control External domain[0]
unit
Access
Peripherals control
logic
Security
control External domain [1]
Bus unit
interconnect
Flash
Security
control External domain [n]
unit
Other
bus masters
Application MCU
7.32.9 Registers
Instances
Register overview
7.32.9.1 EVENTS_RAMACCERR
Address offset: 0x100
A security violation has been detected for the RAM memory space
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RAMACCERR A security violation has been detected for the RAM memory space
7.32.9.2 EVENTS_FLASHACCERR
Address offset: 0x104
A security violation has been detected for the flash memory space
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_FLASHACCERR A security violation has been detected for the flash memory space
7.32.9.3 EVENTS_PERIPHACCERR
Address offset: 0x108
A security violation has been detected on one or several peripherals
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_PERIPHACCERR A security violation has been detected on one or several peripherals
7.32.9.4 PUBLISH_RAMACCERR
Address offset: 0x180
Publish configuration for event RAMACCERR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RAMACCERR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.32.9.5 PUBLISH_FLASHACCERR
Address offset: 0x184
Publish configuration for event FLASHACCERR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event FLASHACCERR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.32.9.6 PUBLISH_PERIPHACCERR
Address offset: 0x188
Publish configuration for event PERIPHACCERR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event PERIPHACCERR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.32.9.7 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RAMACCERR Enable or disable interrupt for event RAMACCERR
Disabled 0 Disable
Enabled 1 Enable
B RW FLASHACCERR Enable or disable interrupt for event FLASHACCERR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Disable
Enabled 1 Enable
C RW PERIPHACCERR Enable or disable interrupt for event PERIPHACCERR
Disabled 0 Disable
Enabled 1 Enable
7.32.9.8 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RAMACCERR Write '1' to enable interrupt for event RAMACCERR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW FLASHACCERR Write '1' to enable interrupt for event FLASHACCERR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW PERIPHACCERR Write '1' to enable interrupt for event PERIPHACCERR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.32.9.9 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RAMACCERR Write '1' to disable interrupt for event RAMACCERR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW FLASHACCERR Write '1' to disable interrupt for event FLASHACCERR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW PERIPHACCERR Write '1' to disable interrupt for event PERIPHACCERR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.32.9.10 CAP
Address offset: 0x400
Show implemented features for the current device
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R TZM Show Arm TrustZone status
NotAvailable 0 Arm TrustZone support not available
Enabled 1 Arm TrustZone support is available
7.32.9.11 CPULOCK
Address offset: 0x404
Configure bits to lock down CPU features at runtime
Write '1' to any position to set the corresponding lock bit, which will remain set until the next reset
Any '0' writes to this register will be ignored
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LOCKSVTAIRCR Write '1' to prevent updating the secure interrupt configuration until the
W1S next reset
When set to '1', this lock bit prevents changes to the Non-secure interrupt
vector table base address register VTOR_NS
Locked 1 The address of the non-secure vector table is locked
Unlocked 0 The address of the non-secure vector table can be updated
C RW LOCKSMPU Write '1' to prevent updating the secure MPU regions until the next reset
W1S
When set to '1', this lock bit prevents changes to programmed Secure MPU
memory regions and all writes to the registers are ignored
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Locked 1 Disables writes to the MPU_CTRL, MPU_RNR, MPU_RBAR, MPU_RLAR,
MPU_RBAR_An and MPU_RLAR_An from software or from a debug agent
connected to the processor in Secure state
Unlocked 0 These registers can be updated
D RW LOCKNSMPU Write '1' to prevent updating the Non-secure MPU regions until the next
W1S reset
When set to '1', this lock bit prevents changes to programmed Non-secure
MPU memory regions already programmed. All writes to the registers are
ignored.
Locked 1 Disables writes to the MPU_CTRL_NS, MPU_RNR_NS, MPU_RBAR_NS,
MPU_RLAR_NS, MPU_RBAR_A_NSn and MPU_RLAR_A_NSn from software
or from a debug agent connected to the processor
Unlocked 0 These registers can be updated
E RW LOCKSAU Write '1' to prevent updating the secure SAU regions until the next reset
W1S
When set to '1', this lock bit prevents changes to Secure SAU memory
regions already programmed. All writes to the registers are ignored.
Locked 1 Disables writes to the SAU_CTRL, SAU_RNR, SAU_RBAR and SAU_RLAR
registers from software or from a debug agent connected to the processor
Unlocked 0 These registers can be updated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A
Reset 0x00000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ID R/W Field Value ID Value Description
A R SECUREMAPPING Define configuration capabilities for TrustZone Cortex-M secure attribute
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-f RW CHANNEL[i] (i=0..31) Select secure attribute
Secure 1 Channel i has its secure attribute set
NonSecure 0 Channel i has its non-secure attribute set
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LOCK
Locked 1 DPPI[n].PERM register can't be changed until next reset
Unlocked 0 DPPI[n].PERM register content can be changed
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-f RW PIN[i] (i=0..31) Select secure attribute attribute for PIN i.
Secure 1 Pin i has its secure attribute set
NonSecure 0 Pin i has its non-secure attribute set
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LOCK
Locked 1 GPIOPORT[n].PERM register can't be changed until next reset
Unlocked 0 GPIOPORT[n].PERM register content can be changed
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW REGION Region number
B RW LOCK
Unlocked 0 This register can be updated
Locked 1 The content of this register can't be changed until the next reset
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SIZE Size of the non-secure callable (NSC) region n
Disabled 0 The region n is not defined as a non-secure callable region. Normal security
attributes (secure or non-secure) are enforced.
32 1 The region n is defined as non-secure callable with size 32 bytes
64 2 The region n is defined as non-secure callable with size 64 bytes
128 3 The region n is defined as non-secure callable with size 128 bytes
256 4 The region n is defined as non-secure callable with size 256 bytes
512 5 The region n is defined as non-secure callable with size 512 bytes
1024 6 The region n is defined as non-secure callable with size 1024 bytes
2048 7 The region n is defined as non-secure callable with size 2048 bytes
4096 8 The region n is defined as non-secure callable with size 4096 bytes
B RW LOCK
Unlocked 0 This register can be updated
Locked 1 The content of this register can't be changed until the next reset
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW REGION Region number
B RW LOCK
Unlocked 0 This register can be updated
Locked 1 The content of this register can't be changed until the next reset
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SIZE Size of the non-secure callable (NSC) region n
Disabled 0 The region n is not defined as a non-secure callable region. Normal security
attributes (secure or non-secure) are enforced.
32 1 The region n is defined as non-secure callable with size 32 bytes
64 2 The region n is defined as non-secure callable with size 64 bytes
128 3 The region n is defined as non-secure callable with size 128 bytes
256 4 The region n is defined as non-secure callable with size 256 bytes
512 5 The region n is defined as non-secure callable with size 512 bytes
1024 6 The region n is defined as non-secure callable with size 1024 bytes
2048 7 The region n is defined as non-secure callable with size 2048 bytes
4096 8 The region n is defined as non-secure callable with size 4096 bytes
B RW LOCK
Unlocked 0 This register can be updated
Locked 1 The content of this register can't be changed until the next reset
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1
ID R/W Field Value ID Value Description
A RW EXECUTE Configure instruction fetch permissions from flash region n
Enable 1 Allow instruction fetches from flash region n
Disable 0 Block instruction fetches from flash region n
B RW WRITE Configure write permission for flash region n
Enable 1 Allow write operation to region n
Disable 0 Block write operation to region n
C RW READ Configure read permissions for flash region n
Enable 1 Allow read operation from flash region n
Disable 0 Block read operation from flash region n
D RW SECATTR Security attribute for flash region n
Non_Secure 0 Flash region n security attribute is non-secure
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1
ID R/W Field Value ID Value Description
Secure 1 Flash region n security attribute is secure
E RW LOCK
Unlocked 0 This register can be updated
Locked 1 The content of this register can't be changed until the next reset
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1
ID R/W Field Value ID Value Description
A RW EXECUTE Configure instruction fetch permissions from RAM region n
Enable 1 Allow instruction fetches from RAM region n
Disable 0 Block instruction fetches from RAM region n
B RW WRITE Configure write permission for RAM region n
Enable 1 Allow write operation to RAM region n
Disable 0 Block write operation to RAM region n
C RW READ Configure read permissions for RAM region n
Enable 1 Allow read operation from RAM region n
Disable 0 Block read operation from RAM region n
D RW SECATTR Security attribute for RAM region n
Non_Secure 0 RAM region n security attribute is non-secure
Secure 1 RAM region n security attribute is secure
E RW LOCK
Unlocked 0 This register can be updated
Locked 1 The content of this register can't be changed until the next reset
Note: Reset values are unique per peripheral instantation. Please refer to the peripheral
instantiation table. Entries not listed in the instantiation table are undefined.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B B A A
Reset 0x00000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
ID R/W Field Value ID Value Description
A R SECUREMAPPING Define configuration capabilities for Arm TrustZone Cortex-M secure
attribute
NonSecure 0 This peripheral is always accessible as a non-secure peripheral
Secure 1 This peripheral is always accessible as a secure peripheral
UserSelectable 2 Non-secure or secure attribute for this peripheral is defined by the
PERIPHID[n].PERM register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F E D C B B A A
Reset 0x00000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
ID R/W Field Value ID Value Description
Split 3 This peripheral implements the split security mechanism. Non-secure or
secure attribute for this peripheral is defined by the PERIPHID[n].PERM
register.
B R DMA Indicates if the peripheral has DMA capabilities and if DMA transfer can be
assigned to a different security attribute than the peripheral itself
NoDMA 0 Peripheral has no DMA capability
NoSeparateAttribute 1 Peripheral has DMA and DMA transfers always have the same security
attribute as assigned to the peripheral
SeparateAttribute 2 Peripheral has DMA and DMA transfers can have a different security
attribute than the one assigned to the peripheral
C RW SECATTR Peripheral security mapping
7.33.1 Registers
Instances
7.34.1 Registers
Instances
Register overview
7.34.1.1 TASKS_START
Address offset: 0x000
Start temperature measurement
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start temperature measurement
Trigger 1 Trigger task
7.34.1.2 TASKS_STOP
Address offset: 0x004
Stop temperature measurement
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop temperature measurement
Trigger 1 Trigger task
7.34.1.3 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.34.1.4 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.34.1.5 EVENTS_DATARDY
Address offset: 0x100
Temperature measurement complete, data ready
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_DATARDY Temperature measurement complete, data ready
NotGenerated 0 Event not generated
Generated 1 Event generated
7.34.1.6 PUBLISH_DATARDY
Address offset: 0x180
Publish configuration for event DATARDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event DATARDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.34.1.7 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DATARDY Write '1' to enable interrupt for event DATARDY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.34.1.8 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW DATARDY Write '1' to disable interrupt for event DATARDY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.34.1.9 TEMP
Address offset: 0x508
Temperature in °C (0.25° steps)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R TEMP Temperature in °C (0.25° steps)
7.34.1.10 A0
Address offset: 0x520
Slope of first piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x000002D9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1
ID R/W Field Value ID Value Description
A RW A0 Slope of first piecewise linear function
7.34.1.11 A1
Address offset: 0x524
Slope of second piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x00000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0
ID R/W Field Value ID Value Description
A RW A1 Slope of second piecewise linear function
7.34.1.12 A2
Address offset: 0x528
Slope of third piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x00000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1
ID R/W Field Value ID Value Description
A RW A2 Slope of third piecewise linear function
7.34.1.13 A3
Address offset: 0x52C
Slope of fourth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x000003DF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW A3 Slope of fourth piecewise linear function
7.34.1.14 A4
Address offset: 0x530
Slope of fifth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x0000044E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0
ID R/W Field Value ID Value Description
A RW A4 Slope of fifth piecewise linear function
7.34.1.15 A5
Address offset: 0x534
Slope of sixth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x000004B7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1
ID R/W Field Value ID Value Description
A RW A5 Slope of sixth piecewise linear function
7.34.1.16 B0
Address offset: 0x540
y-intercept of first piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x00000FC7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1
ID R/W Field Value ID Value Description
A RW B0 y-intercept of first piecewise linear function
7.34.1.17 B1
Address offset: 0x544
y-intercept of second piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x00000F71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1
ID R/W Field Value ID Value Description
A RW B1 y-intercept of second piecewise linear function
7.34.1.18 B2
Address offset: 0x548
y-intercept of third piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x00000F6C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0
ID R/W Field Value ID Value Description
A RW B2 y-intercept of third piecewise linear function
7.34.1.19 B3
Address offset: 0x54C
y-intercept of fourth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x00000FCB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1
ID R/W Field Value ID Value Description
A RW B3 y-intercept of fourth piecewise linear function
7.34.1.20 B4
Address offset: 0x550
y-intercept of fifth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x0000004B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1
ID R/W Field Value ID Value Description
A RW B4 y-intercept of fifth piecewise linear function
7.34.1.21 B5
Address offset: 0x554
y-intercept of sixth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A
Reset 0x000000F6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0
ID R/W Field Value ID Value Description
A RW B5 y-intercept of sixth piecewise linear function
7.34.1.22 T0
Address offset: 0x560
Endpoint of first piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x000000E1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW T0 Endpoint of first piecewise linear function
7.34.1.23 T1
Address offset: 0x564
Endpoint of second piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x000000F9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1
ID R/W Field Value ID Value Description
A RW T1 Endpoint of second piecewise linear function
7.34.1.24 T2
Address offset: 0x568
Endpoint of third piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
ID R/W Field Value ID Value Description
A RW T2 Endpoint of third piecewise linear function
7.34.1.25 T3
Address offset: 0x56C
Endpoint of fourth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0
ID R/W Field Value ID Value Description
A RW T3 Endpoint of fourth piecewise linear function
7.34.1.26 T4
Address offset: 0x570
Endpoint of fifth piecewise linear function
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x0000003F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW T4 Endpoint of fifth piecewise linear function
CAPTURE[0..n]
COUNT
START
CLEAR
STOP
TIMER
TIMER Core
Increment BITMODE
PCLK1M Counter
Prescaler
PCLK16M fTIMER
CC[0..n]
PRESCALER MODE
COMPARE[0..n]
Figure 219: Block schematic for timer/counter
TIMER runs on the high-frequency clock source (HFCLK) and includes a four-bit (1/2X) prescaler that
can divide the timer input clock from the HFCLK controller. Clock source selection between PCLK16M
and PCLK1M is automatic according to the TIMER base frequency set by the prescaler. The TIMER base
frequency is always given as 16 MHz divided by the prescaler value.
The PPI system allows a TIMER event to trigger a task on another system peripheral on the device. The PPI
system also enables the TIMER task/event feature to generate periodic output and PWM signals to any
GPIO. The number of GPIO inputs or outputs used at the same time is limited by the number of GPIOTE
channels.
TIMER can operate in two modes: Timer mode and Counter mode. In both modes, TIMER is started by
triggering the START task, and stopped by triggering the STOP task. After TIMER stops, it can resume
timing/counting by triggering the START task again. When timing/counting resumes, TIMER continues
from the value it was on prior to stopping.
In Timer mode, TIMER's internal Counter register is incremented by one for every tick of the timer
frequency fTIMER, as illustrated in Block schematic for timer/counter on page 683. The timer frequency
is derived from PCLK16M as shown in the following example, using the values specified in the PRESCALER
register.
When fTIMER ≤ 1 MHz, TIMER uses PCLK1M instead of PCLK16M for reduced power consumption.
In Counter mode, the TIMER's internal Counter register is incremented by one each time the COUNT task
is triggered, meaning the timer frequency and the prescaler are not utilized in Counter mode. Similarly,
the COUNT task has no effect in Timer mode.
TIMER's maximum value is configured by changing the bit-width of the timer in register BITMODE on page
691.
PRESCALER on page 691 and BITMODE on page 691 must only be updated when TIMER is stopped. If
these registers are updated while TIMER is started, unpredictable behavior may occur.
When TIMER is incremented beyond its maximum value, the Counter register will overflow and TIMER will
automatically start over from zero.
The Counter register can be cleared by triggering the CLEAR task. This will explicitly set the internal value
to zero.
TIMER implements multiple capture/compare registers.
Independent of prescaler settings, the accuracy of TIMER is equivalent to one tick of the timer frequency
fTIMER as illustrated in Block schematic for timer/counter on page 683.
7.35.1 Capture
TIMER implements one capture task for every available capture/compare register.
Every time the CAPTURE[n] task is triggered, the counter value is copied to the CC[n] register.
7.35.2 Compare
TIMER implements one COMPARE event for every available capture/compare register.
When the counter value becomes equal to the value specified in a capture compare register CC[n], the
corresponding compare event COMPARE[n] is generated.
BITMODE on page 691 specifies how many Counter and capture/compare register bits are used when
the comparison is performed. Other bits are ignored.
The COMPARE event can be configured to operate in one-shot mode by configuring the corresponding
ONESHOTEN[n] register. After writing CC[n], a COMPARE[n] event is generated the first time the Counter
matches CC[n].
7.35.5 Registers
Instances
TIMER0 : S 0x5000F000
APPLICATION US S NA No Timer 0
TIMER0 : NS 0x4000F000
TIMER1 : S 0x50010000
APPLICATION US S NA No Timer 1
TIMER1 : NS 0x40010000
TIMER2 : S 0x50011000
APPLICATION US S NA No Timer 2
TIMER2 : NS 0x40011000
TIMER0 NETWORK 0x4100C000 HF NS NA No Timer 0
TIMER1 NETWORK 0x41018000 HF NS NA No Timer 1
TIMER2 NETWORK 0x41019000 HF NS NA No Timer 2
Configuration
Register overview
7.35.5.1 TASKS_START
Address offset: 0x000
Start Timer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start Timer
Trigger 1 Trigger task
7.35.5.2 TASKS_STOP
Address offset: 0x004
Stop Timer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop Timer
Trigger 1 Trigger task
7.35.5.3 TASKS_COUNT
Address offset: 0x008
Increment Timer (Counter mode only)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_COUNT Increment Timer (Counter mode only)
Trigger 1 Trigger task
7.35.5.4 TASKS_CLEAR
Address offset: 0x00C
Clear time
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CLEAR Clear time
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SHUTDOWN Shut down timer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_CAPTURE Capture Timer value to CC[n] register
Trigger 1 Trigger task
7.35.5.7 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.35.5.8 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.35.5.9 SUBSCRIBE_COUNT
Address offset: 0x088
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task COUNT will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.35.5.10 SUBSCRIBE_CLEAR
Address offset: 0x08C
Subscribe configuration for task CLEAR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CLEAR will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SHUTDOWN will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task CAPTURE[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_COMPARE Compare event on CC[n] match
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event COMPARE[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.35.5.15 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW COMPARE[i]_CLEAR (i=0..7) Shortcut between event COMPARE[i] and task CLEAR
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
I-P RW COMPARE[i]_STOP (i=0..7) Shortcut between event COMPARE[i] and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.35.5.16 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW COMPARE[i] (i=0..7) Enable or disable interrupt for event COMPARE[i]
Disabled 0 Disable
Enabled 1 Enable
7.35.5.17 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW COMPARE[i] (i=0..7) Write '1' to enable interrupt for event COMPARE[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.35.5.18 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H RW COMPARE[i] (i=0..7) Write '1' to disable interrupt for event COMPARE[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.35.5.19 MODE
Address offset: 0x504
Timer mode selection
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MODE Timer mode
Timer 0 Select Timer mode
Counter 1 Select Counter mode
7.35.5.20 BITMODE
Address offset: 0x508
Configure the number of bits used by the TIMER
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BITMODE Timer bit width
16Bit 0 16 bit timer bit width
08Bit 1 8 bit timer bit width
24Bit 2 24 bit timer bit width
32Bit 3 32 bit timer bit width
7.35.5.21 PRESCALER
Address offset: 0x510
Timer prescaler register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
ID R/W Field Value ID Value Description
A RW PRESCALER [0..9] Prescaler value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CC Capture/Compare value
Only the number of bits indicated by BITMODE will be used by the TIMER.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ONESHOTEN Enable one-shot operation
Compare event is generated the first time the Counter matches CC[n] after
CC[n] has been written
SUSPEND
RESUME
STARTRX
STARTTX
STOP
TWIM
GPIO RAM
PSEL.SDA TXD.PTR
buffer[0]
buffer[1] TXD buffer
TXD+1 EasyDMA buffer[TXD.MAXCNT-1]
SDA Pin
SUSPENDED
RXSTARTED
TXSTARTED
ERROR
LASTRX
LASTTX
STOPPED
A typical TWI setup consists of one master and one or more slaves, as illustrated in the following figure.
TWIM is only able to operate as a single master on the TWI bus. Multi-master bus configuration is not
supported.
VDD VDD
TWI slave TWI slave TWI slave
TWI master (EEPROM) (Sensor)
(TWIM)
Address = b1011001 Address = b1011000 Address = b1011011
R R
SDA SCL SCL SDA SCL SDA SCL SDA
Figure 221: A typical TWI setup comprising one master and three slaves
TWIM supports clock stretching performed by the slaves. The SCK pulse following a stretched clock cycle
may be shorter than specified by the I2C specification.
TWIM is started by triggering the STARTTX or STARTRX tasks, and stopped by triggering the STOP task.
After a STOP task, TWIM generates a STOPPED event when it has stopped.
After TWIM has been started, the STARTTX or STARTRX tasks should not be triggered again until TWIM has
issued a LASTRX, LASTTX, or STOPPED event.
TWIM can be suspended using the SUSPEND task, such as when using the TWI master in a low priority
interrupt context. When TWIM enters suspend state, it will automatically issue a SUSPENDED event while
performing a continuous clock stretching until it is instructed to resume operation via a RESUME task.
TWIM cannot be stopped while it is suspended, thus the STOP task has to be issued after the TWI master
has been resumed.
Note: Any ongoing byte transfer will be allowed to complete before the suspend is enforced. A
SUSPEND task has no effect unless TWIM is actively involved in a transfer.
7.36.2 EasyDMA
TWIM implements EasyDMA for accessing RAM without CPU involvement.
TWIM implements the EasyDMA channels found in the following table.
For detailed information regarding the use of EasyDMA, see EasyDMA on page 153.
The RXD.PTR, TXD.PTR, RXD.MAXCNT, and TXD.MAXCNT registers are double-buffered. They can
be updated and prepared for the next RX or TX transmission immediately after having received the
RXSTARTED or TXSTARTED event.
The STOPPED event indicates that EasyDMA has finished accessing the buffer in RAM.
Stretch
WRITE
START
STOP
ACK
ACK
ACK
ACK
ACK
ACK
TWI
ADDR 0 1 2 N-1 N
SUSPENDED
STOPPED
LASTTX
CPU Lifeline
1 2 3 4
TXD.MAXCNT = N+1
STARTTX
RESUME
SUSPEND
STOP
Figure 222: TWIM writing data to a slave
TWIM is stopped by triggering the STOP task. This task should be triggered during the transmission of
the last byte to secure that TWIM will stop as fast as possible after sending the last byte. The shortcut
between LASTTX and STOP can alternatively be used to accomplish this.
Note: TWIM does not stop by itself when the entire RAM buffer has been sent, or when an error
occurs. The STOP task must be issued, through the use of a local or PPI shortcut, or in software as
part of the error handler.
Stretch
START
NACK
READ
STOP
ACK
ACK
ACK
ACK
ACK
TWI
ADDR 0 1 2 M-1 M
SUSPENDED
STOPPED
LASTRX
CPU Lifeline
1 2 3 4
RXD.MAXCNT = M+1
STARTRX
RESUME
SUSPEND
STOP
Figure 223: TWIM reading data from a slave
RESTART
WRITE
START
NACK
READ
STOP
ACK
ACK
ACK
ACK
ACK
ACK
ACK
ADDR 0 1 ADDR 0 1 2 3
STOPPED
LASTTX
LASTRX
CPU Lifeline
1 2
TXD.MAXCNT = 2
RXD.MAXCNT = 4
STARTTX
STOP
STARTRX
If a more complex repeated start sequence is needed, and the TWI firmware drive is serviced in a low
priority interrupt, it may be necessary to use the SUSPEND task and SUSPENDED event to guarantee that
the correct tasks are generated at the correct time. A double repeated start sequence using the SUSPEND
task to secure safe operation in low priority interrupts is shown in the following figure.
RESTART
RESTART
WRITE
WRITE
START
Stretch
NACK
READ
STOP
TWI
ACK
ACK
ACK
ACK
ACK
ACK
ADDR 0 ADDR 0 ADDR 0 1
LASTTX
STOPPED
SUSPENDED
LASTRX
LASTTX
CPU Lifeline
1 2 3 4 5
TXD.MAXCNT = 1
RXD.MAXCNT = 1
TXD.MAXCNT = 2
STARTTX
SUSPEND
STOP
RESUME
STARTRX
STARTTX
Figure 225: Double repeated start sequence
TWI master signal TWI master pin Direction Output value Drive strength
31
Special pin and drive strength considerations applies when using the 1000 kbps baud rate. For pin
recommendations, see Pin assignments on page 851.
7.36.8 Registers
Instances
TWIM0 : S 0x50008000
APPLICATION US S SA No Two-wire interface master 0
TWIM0 : NS 0x40008000
TWIM1 : S 0x50009000
APPLICATION US S SA No Two-wire interface master 1
TWIM1 : NS 0x40009000
TWIM2 : S 0x5000B000
APPLICATION US S SA No Two-wire interface master 2
TWIM2 : NS 0x4000B000
TWIM3 : S 0x5000C000
APPLICATION US S SA No Two-wire interface master 3
TWIM3 : NS 0x4000C000
TWIM0 NETWORK 0x41013000 HF NS NA No Two-wire interface master 0
Register overview
7.36.8.1 TASKS_STARTRX
Address offset: 0x000
Start TWI receive sequence
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTRX Start TWI receive sequence
Trigger 1 Trigger task
7.36.8.2 TASKS_STARTTX
Address offset: 0x008
Start TWI transmit sequence
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTTX Start TWI transmit sequence
Trigger 1 Trigger task
7.36.8.3 TASKS_STOP
Address offset: 0x014
Stop TWI transaction. Must be issued while the TWI master is not suspended.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop TWI transaction. Must be issued while the TWI master is not
suspended.
Trigger 1 Trigger task
7.36.8.4 TASKS_SUSPEND
Address offset: 0x01C
Suspend TWI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SUSPEND Suspend TWI transaction
Trigger 1 Trigger task
7.36.8.5 TASKS_RESUME
Address offset: 0x020
Resume TWI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RESUME Resume TWI transaction
Trigger 1 Trigger task
7.36.8.6 SUBSCRIBE_STARTRX
Address offset: 0x080
Subscribe configuration for task STARTRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTRX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.36.8.7 SUBSCRIBE_STARTTX
Address offset: 0x088
Subscribe configuration for task STARTTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTTX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.36.8.8 SUBSCRIBE_STOP
Address offset: 0x094
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.36.8.9 SUBSCRIBE_SUSPEND
Address offset: 0x09C
Subscribe configuration for task SUSPEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SUSPEND will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.36.8.10 SUBSCRIBE_RESUME
Address offset: 0x0A0
Subscribe configuration for task RESUME
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RESUME will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.36.8.11 EVENTS_STOPPED
Address offset: 0x104
TWI stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED TWI stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.36.8.12 EVENTS_ERROR
Address offset: 0x124
TWI error
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ERROR TWI error
NotGenerated 0 Event not generated
Generated 1 Event generated
7.36.8.13 EVENTS_SUSPENDED
Address offset: 0x148
SUSPEND task has been issued, TWI traffic is now suspended.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SUSPENDED SUSPEND task has been issued, TWI traffic is now suspended.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.36.8.14 EVENTS_RXSTARTED
Address offset: 0x14C
Receive sequence started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXSTARTED Receive sequence started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.36.8.15 EVENTS_TXSTARTED
Address offset: 0x150
Transmit sequence started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXSTARTED Transmit sequence started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.36.8.16 EVENTS_LASTRX
Address offset: 0x15C
Byte boundary, starting to receive the last byte
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_LASTRX Byte boundary, starting to receive the last byte
NotGenerated 0 Event not generated
Generated 1 Event generated
7.36.8.17 EVENTS_LASTTX
Address offset: 0x160
Byte boundary, starting to transmit the last byte
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_LASTTX Byte boundary, starting to transmit the last byte
NotGenerated 0 Event not generated
Generated 1 Event generated
7.36.8.18 PUBLISH_STOPPED
Address offset: 0x184
Publish configuration for event STOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.36.8.19 PUBLISH_ERROR
Address offset: 0x1A4
Publish configuration for event ERROR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ERROR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.36.8.20 PUBLISH_SUSPENDED
Address offset: 0x1C8
Publish configuration for event SUSPENDED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SUSPENDED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.36.8.21 PUBLISH_RXSTARTED
Address offset: 0x1CC
Publish configuration for event RXSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.36.8.22 PUBLISH_TXSTARTED
Address offset: 0x1D0
Publish configuration for event TXSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.36.8.23 PUBLISH_LASTRX
Address offset: 0x1DC
Publish configuration for event LASTRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event LASTRX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.36.8.24 PUBLISH_LASTTX
Address offset: 0x1E0
Publish configuration for event LASTTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event LASTTX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.36.8.25 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID F D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LASTTX_STARTRX Shortcut between event LASTTX and task STARTRX
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW LASTTX_SUSPEND Shortcut between event LASTTX and task SUSPEND
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
C RW LASTTX_STOP Shortcut between event LASTTX and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW LASTRX_STARTTX Shortcut between event LASTRX and task STARTTX
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
F RW LASTRX_STOP Shortcut between event LASTRX and task STOP
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.36.8.26 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID J I H G F D A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Enable or disable interrupt for event STOPPED
Disabled 0 Disable
Enabled 1 Enable
D RW ERROR Enable or disable interrupt for event ERROR
Disabled 0 Disable
Enabled 1 Enable
F RW SUSPENDED Enable or disable interrupt for event SUSPENDED
Disabled 0 Disable
Enabled 1 Enable
G RW RXSTARTED Enable or disable interrupt for event RXSTARTED
Disabled 0 Disable
Enabled 1 Enable
H RW TXSTARTED Enable or disable interrupt for event TXSTARTED
Disabled 0 Disable
Enabled 1 Enable
I RW LASTRX Enable or disable interrupt for event LASTRX
Disabled 0 Disable
Enabled 1 Enable
J RW LASTTX Enable or disable interrupt for event LASTTX
Disabled 0 Disable
Enabled 1 Enable
7.36.8.27 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID J I H G F D A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW ERROR Write '1' to enable interrupt for event ERROR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW SUSPENDED Write '1' to enable interrupt for event SUSPENDED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW RXSTARTED Write '1' to enable interrupt for event RXSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID J I H G F D A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW TXSTARTED Write '1' to enable interrupt for event TXSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW LASTRX Write '1' to enable interrupt for event LASTRX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
J RW LASTTX Write '1' to enable interrupt for event LASTTX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.36.8.28 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID J I H G F D A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW ERROR Write '1' to disable interrupt for event ERROR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW SUSPENDED Write '1' to disable interrupt for event SUSPENDED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW RXSTARTED Write '1' to disable interrupt for event RXSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW TXSTARTED Write '1' to disable interrupt for event TXSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW LASTRX Write '1' to disable interrupt for event LASTRX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID J I H G F D A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
J RW LASTTX Write '1' to disable interrupt for event LASTTX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.36.8.29 ERRORSRC
Address offset: 0x4C4
Error source
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OVERRUN Overrun error
W1C
A new byte was received before previous byte got transferred into RXD
buffer. (Previous data is lost)
NotReceived 0 Error did not occur
Received 1 Error occurred
B RW ANACK NACK received after sending the address (write '1' to clear)
W1C
NotReceived 0 Error did not occur
Received 1 Error occurred
C RW DNACK NACK received after sending a data byte (write '1' to clear)
W1C
NotReceived 0 Error did not occur
Received 1 Error occurred
7.36.8.30 ENABLE
Address offset: 0x500
Enable TWIM
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable TWIM
Disabled 0 Disable TWIM
Enabled 6 Enable TWIM
7.36.8.31 PSEL.SCL
Address offset: 0x508
Pin select for SCL signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.36.8.32 PSEL.SDA
Address offset: 0x50C
Pin select for SDA signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.36.8.33 FREQUENCY
Address offset: 0x524
TWI frequency. Accuracy depends on the HFCLK source selected.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x04000000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW FREQUENCY TWI master clock frequency
K100 0x01980000 100 kbps
K250 0x04000000 250 kbps
K400 0x06400000 400 kbps
K1000 0x0FF00000 1000 kbps
7.36.8.34 RXD
RXD EasyDMA channel
7.36.8.34.1 RXD.PTR
Address offset: 0x534
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
7.36.8.34.2 RXD.MAXCNT
Address offset: 0x538
Maximum number of bytes in receive buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in receive buffer
7.36.8.34.3 RXD.AMOUNT
Address offset: 0x53C
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last transaction. In case of NACK error,
includes the NACK'ed byte.
7.36.8.34.4 RXD.LIST
Address offset: 0x540
EasyDMA list type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
7.36.8.35 TXD
TXD EasyDMA channel
7.36.8.35.1 TXD.PTR
Address offset: 0x544
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
7.36.8.35.2 TXD.MAXCNT
Address offset: 0x548
Maximum number of bytes in transmit buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in transmit buffer
7.36.8.35.3 TXD.AMOUNT
Address offset: 0x54C
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last transaction. In case of NACK error,
includes the NACK'ed byte.
7.36.8.35.4 TXD.LIST
Address offset: 0x550
EasyDMA list type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
7.36.8.36 ADDRESS
Address offset: 0x588
Address used in the TWI transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ADDRESS Address used in the TWI transfer
SCL
tSU_DAT 1/fSCL tSU_STO
tHD_STA tHD_DAT tBUF
SDA
32
High bit rates or stronger pull-ups may require GPIOs to be set as High Drive, see GPIO — General
purpose input/output on page 293 for more details.
25 100 kbps
400 kbps
20 1 Mbps
15
10
0
0 100 200 300 400 500
cap [pF]
PREPARETX
PREPARERX RXD TXD STOPPED
(signal) (signal)
SUSPEND WRITE
RESUME RXD.PTR EasyDMA EasyDMA TXD.PTR READ
RAM
RXD TXD
RXD+1 TXD+1
RXD+2 TXD+2
RXD+n TXD+n
A typical TWI setup consists of one master and one or more slaves. For an example, see the following
figure. TWIS is only able to operate with a single master on the TWI bus.
VDD VDD
TWI slave TWI slave TWI slave
(EEPROM) (Sensor) (TWIS)
TWI master
Address = b1011001 Address = b1011000 Address = b1011011
R R
SDA SCL SCL SDA SCL SDA SCL SDA
Figure 229: A typical TWI setup comprising one master and three slaves
/ STOPPED
Unprepare TX,
Unprepare RX
IDLE
STOP
[ READ && (TX prepared) ] [ WRITE && (RX prepared) ]
Restart sequence
TX RX
The following table contains descriptions of the symbols used in the state machine.
TWIS can perform clock stretching, with the premise that the master is able to support it.
It operates in a low power mode while waiting for a TWI master to initiate a transfer. As long as TWIS is not
addressed, it will remain in this low power mode.
To secure correct behavior of the TWI slave, PSEL.SCL, PSEL.SDA, CONFIG, and the ADDRESS[n] registers
must be configured prior to enabling the TWI slave through the ENABLE register. Similarly, changing these
settings must be performed while the TWI slave is disabled. Failing to do so may result in unpredictable
behavior.
7.37.2 EasyDMA
TWIS implements EasyDMA for accessing RAM without CPU involvement.
The following table shows the Easy DMA channels that TWIS implements.
For detailed information regarding the use of EasyDMA, see EasyDMA on page 153.
The STOPPED event indicates that EasyDMA has finished accessing the buffer in RAM.
Stretch
START
NACK
READ
STOP
ACK
ACK
ACK
ACK
ACK
TWI
ADDR 0 1 2 N-1 N
STOPPED
TXSTARTED
READ
CPU Lifeline
1 2 3 4
TXD.PTR = 0x20000000
TXD.MAXCNT >= N+1
PREPARETX
RESUME
SUSPEND
Figure 231: TWIS responding to a read command
TWIS will generate an ACK after every byte received from the master. The RXD.AMOUNT register can be
queried after a transaction to see how many bytes were received.
A typical TWIS write command response is illustrated in the following figure, including clock stretching
following a SUSPEND task.
Stretch
WRITE
START
STOP
ACK
ACK
ACK
ACK
ACK
ACK
TWI
ADDR 0 1 2 M-1 M
STOPPED
RXSTARTED
WRITE
CPU Lifeline
1 2 3 4
RXD.MAXCNT >= M+1
PREPARERX
RXD.PTR = 0x20000000
RESUME
SUSPEND
NACK
READ
STOP
TWI
ACK
ACK
ACK
ACK
ACK
ACK
ACK
ADDR 0 1 ADDR 0 1 2 3
TXSTARTED
STOPPED
RXSTARTED
READ
WRITE
CPU Lifeline
1 2 3
RXD.PTR = 0x20000000
TXD.PTR = 0x20000010
RXD.MAXCNT = 2
TXD.MAXCNT = 4
PREPARERX
PREPARETX
SUSPEND
RESUME
This can be achieved by triggering the STOP task. In this situation, a STOPPED event will be generated
when the TWI has stopped independent of whether or not a STOP condition has been generated on the
TWI bus. The TWI slave will release the bus when it has stopped and go back to its IDLE state.
TWI slave signal TWI slave pin Direction Output value Drive strength
7.37.9 Registers
Instances
TWIS0 : S 0x50008000
APPLICATION US S SA No Two-wire interface slave 0
TWIS0 : NS 0x40008000
TWIS1 : S 0x50009000
APPLICATION US S SA No Two-wire interface slave 1
TWIS1 : NS 0x40009000
TWIS2 : S 0x5000B000
APPLICATION US S SA No Two-wire interface slave 2
TWIS2 : NS 0x4000B000
TWIS3 : S 0x5000C000
APPLICATION US S SA No Two-wire interface slave 3
TWIS3 : NS 0x4000C000
TWIS0 NETWORK 0x41013000 HF NS NA No Two-wire interface slave 0
Register overview
7.37.9.1 TASKS_STOP
Address offset: 0x014
Stop TWI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop TWI transaction
Trigger 1 Trigger task
7.37.9.2 TASKS_SUSPEND
Address offset: 0x01C
Suspend TWI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_SUSPEND Suspend TWI transaction
Trigger 1 Trigger task
7.37.9.3 TASKS_RESUME
Address offset: 0x020
Resume TWI transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_RESUME Resume TWI transaction
Trigger 1 Trigger task
7.37.9.4 TASKS_PREPARERX
Address offset: 0x030
Prepare the TWI slave to respond to a write command
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_PREPARERX Prepare the TWI slave to respond to a write command
Trigger 1 Trigger task
7.37.9.5 TASKS_PREPARETX
Address offset: 0x034
Prepare the TWI slave to respond to a read command
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_PREPARETX Prepare the TWI slave to respond to a read command
Trigger 1 Trigger task
7.37.9.6 SUBSCRIBE_STOP
Address offset: 0x094
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.37.9.7 SUBSCRIBE_SUSPEND
Address offset: 0x09C
Subscribe configuration for task SUSPEND
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task SUSPEND will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.37.9.8 SUBSCRIBE_RESUME
Address offset: 0x0A0
Subscribe configuration for task RESUME
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task RESUME will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.37.9.9 SUBSCRIBE_PREPARERX
Address offset: 0x0B0
Subscribe configuration for task PREPARERX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task PREPARERX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.37.9.10 SUBSCRIBE_PREPARETX
Address offset: 0x0B4
Subscribe configuration for task PREPARETX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task PREPARETX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.37.9.11 EVENTS_STOPPED
Address offset: 0x104
TWI stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED TWI stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.37.9.12 EVENTS_ERROR
Address offset: 0x124
TWI error
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ERROR TWI error
NotGenerated 0 Event not generated
Generated 1 Event generated
7.37.9.13 EVENTS_RXSTARTED
Address offset: 0x14C
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXSTARTED Receive sequence started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.37.9.14 EVENTS_TXSTARTED
Address offset: 0x150
Transmit sequence started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXSTARTED Transmit sequence started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.37.9.15 EVENTS_WRITE
Address offset: 0x164
Write command received
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_WRITE Write command received
NotGenerated 0 Event not generated
Generated 1 Event generated
7.37.9.16 EVENTS_READ
Address offset: 0x168
Read command received
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_READ Read command received
NotGenerated 0 Event not generated
Generated 1 Event generated
7.37.9.17 PUBLISH_STOPPED
Address offset: 0x184
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.37.9.18 PUBLISH_ERROR
Address offset: 0x1A4
Publish configuration for event ERROR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ERROR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.37.9.19 PUBLISH_RXSTARTED
Address offset: 0x1CC
Publish configuration for event RXSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.37.9.20 PUBLISH_TXSTARTED
Address offset: 0x1D0
Publish configuration for event TXSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.37.9.21 PUBLISH_WRITE
Address offset: 0x1E4
Publish configuration for event WRITE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event WRITE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.37.9.22 PUBLISH_READ
Address offset: 0x1E8
Publish configuration for event READ
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event READ will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.37.9.23 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW WRITE_SUSPEND Shortcut between event WRITE and task SUSPEND
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW READ_SUSPEND Shortcut between event READ and task SUSPEND
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.37.9.24 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Enable or disable interrupt for event STOPPED
Disabled 0 Disable
Enabled 1 Enable
B RW ERROR Enable or disable interrupt for event ERROR
Disabled 0 Disable
Enabled 1 Enable
E RW RXSTARTED Enable or disable interrupt for event RXSTARTED
Disabled 0 Disable
Enabled 1 Enable
F RW TXSTARTED Enable or disable interrupt for event TXSTARTED
Disabled 0 Disable
Enabled 1 Enable
G RW WRITE Enable or disable interrupt for event WRITE
Disabled 0 Disable
Enabled 1 Enable
H RW READ Enable or disable interrupt for event READ
Disabled 0 Disable
Enabled 1 Enable
7.37.9.25 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ERROR Write '1' to enable interrupt for event ERROR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW RXSTARTED Write '1' to enable interrupt for event RXSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW TXSTARTED Write '1' to enable interrupt for event TXSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
G RW WRITE Write '1' to enable interrupt for event WRITE
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW READ Write '1' to enable interrupt for event READ
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.37.9.26 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW ERROR Write '1' to disable interrupt for event ERROR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW RXSTARTED Write '1' to disable interrupt for event RXSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW TXSTARTED Write '1' to disable interrupt for event TXSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW WRITE Write '1' to disable interrupt for event WRITE
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW READ Write '1' to disable interrupt for event READ
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.37.9.27 ERRORSRC
Address offset: 0x4D0
Error source
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OVERFLOW RX buffer overflow detected, and prevented
W1C
NotDetected 0 Error did not occur
Detected 1 Error occurred
B RW DNACK NACK sent after receiving a data byte
W1C
NotReceived 0 Error did not occur
Received 1 Error occurred
C RW OVERREAD TX buffer over-read detected, and prevented
W1C
NotDetected 0 Error did not occur
Detected 1 Error occurred
7.37.9.28 MATCH
Address offset: 0x4D4
Status register indicating which address had a match
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R MATCH [0..1] Indication of which address in ADDRESS that matched the incoming address
7.37.9.29 ENABLE
Address offset: 0x500
Enable TWIS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable TWIS
Disabled 0 Disable TWIS
Enabled 9 Enable TWIS
7.37.9.30 PSEL.SCL
Address offset: 0x508
Pin select for SCL signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.37.9.31 PSEL.SDA
Address offset: 0x50C
Pin select for SDA signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.37.9.32 RXD
RXD EasyDMA channel
7.37.9.32.1 RXD.PTR
Address offset: 0x534
RXD Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR RXD Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
7.37.9.32.2 RXD.MAXCNT
Address offset: 0x538
Maximum number of bytes in RXD buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in RXD buffer
7.37.9.32.3 RXD.AMOUNT
Address offset: 0x53C
Number of bytes transferred in the last RXD transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last RXD transaction
7.37.9.32.4 RXD.LIST
Address offset: 0x540
EasyDMA list type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
7.37.9.33 TXD
TXD EasyDMA channel
7.37.9.33.1 TXD.PTR
Address offset: 0x544
TXD Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR TXD Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
7.37.9.33.2 TXD.MAXCNT
Address offset: 0x548
Maximum number of bytes in TXD buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in TXD buffer
7.37.9.33.3 TXD.AMOUNT
Address offset: 0x54C
Number of bytes transferred in the last TXD transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last TXD transaction
7.37.9.33.4 TXD.LIST
Address offset: 0x550
EasyDMA list type
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LIST List type
Disabled 0 Disable EasyDMA list
ArrayList 1 Use array list
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ADDRESS TWI slave address
7.37.9.35 CONFIG
Address offset: 0x594
Configuration register for the address match mechanism
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A-B RW ADDRESS[i] (i=0..1) Enable or disable address matching on ADDRESS[i]
Disabled 0 Disabled
Enabled 1 Enabled
7.37.9.36 ORC
Address offset: 0x5C0
Over-read character. Character sent out in case of an over-read of the transmit buffer.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ORC Over-read character. Character sent out in case of an over-read of the
transmit buffer.
SCL
tSU_DAT 1/fSCL tSU_STO
tHD_STA tHD_DAT tBUF
SDA
33
High bit rates or stronger pull-ups may require GPIOs to be set as High Drive, see GPIO chapter for
more details.
RESUME
ENDTX
RX
RXTO EasyDMA EasyDMA
FIFO CTS
ENDRX NCTS
RAM
RXD TXD
RXD+1 TXD+1
RXD+2 TXD+2
RXD+n TXD+n
The GPIOs used for each UART interface can be chosen from any GPIO on the device and are
independently configurable. This enables device pinout flexibility and efficient use of board space and
signal routing.
Note: The external crystal oscillator must be enabled to obtain sufficient clock accuracy for stable
communication. See CLOCK — Clock control on page 72 for more information.
7.38.1 EasyDMA
UARTE implements EasyDMA for reading and writing to and from the RAM.
If the TXD.PTR and the RXD.PTR are not pointing to the Data RAM region, an EasyDMA transfer may result
in a HardFault or RAM corruption. See Memory on page 21 for more information about the different
memory regions.
The RXD.PTR, TXD.PTR, RXD.MAXCNT, and TXD.MAXCNT registers are double-buffered. They can be
updated and prepared for the next reception or transmission immediately after having received the
RXSTARTED or TXSTARTED event.
The ENDRX and ENDTX events indicate that the EasyDMA is finished accessing the RX or TX buffer in RAM.
7.38.2 Transmission
The first step of a DMA transmission is storing bytes in the transmit buffer and configuring EasyDMA. This
is achieved by writing the initial address pointer to TXD.PTR, and the number of bytes to transmit from the
RAM buffer to TXD.MAXCNT. The UARTE transmission is started by triggering the STARTTX task.
After each byte has been sent over the TXD line, a TXDRDY event will be generated.
When all bytes have been transmitted, the transmission will automatically end and the ENDTX event will
be generated.
A UARTE transmission sequence is stopped by triggering the STOPTX task. A TXSTOPPED event will be
generated when the UARTE transmitter has stopped.
If the ENDTX event has not already been generated when the UARTE transmitter has come to a stop,
UARTE will generate the ENDTX event explicitly even though all bytes specified in the TXD.MAXCNT
register have not been transmitted.
If flow control is enabled through the HWFC field in the CONFIG register, a transmission will be
automatically suspended when CTS is deactivated and resumed when CTS is activated again, as shown in
the following figure. A byte that is in transmission when CTS is deactivated will be fully transmitted before
the transmission is suspended.
CTS
1 2 N-2 N-1 N
TXD
0
TXSTARTED
TXDRDY
TXDRDY
TXDRDY
TXDRDY
TXDRDY
TXDRDY
Lifeline
1 2
TXD.MAXCNT = N+1
ENDTX
STARTTX
The UARTE transmitter is in its lowest activity level consuming the least amount of energy when it
is stopped. That is, before it is started via STARTTX or after it has been stopped via STOPTX and the
TXSTOPPED event has been generated. See POWER — Power control on page 46 for more information
about power modes.
7.38.3 Reception
The UARTE receiver is started by triggering the STARTRX task. The UARTE receiver uses EasyDMA to store
incoming data in an RX buffer in RAM.
The RX buffer is located at the address specified in the RXD.PTR register. The RXD.PTR register is double-
buffered and it can be updated and prepared for the next STARTRX task immediately after the RXSTARTED
event is generated. The size of the RX buffer is specified in the RXD.MAXCNT register. UARTE generates an
ENDRX event when it has filled up the RX buffer, as seen in the following figure.
For each byte received over the RXD line, an RXDRDY event is generated. This event is likely to occur
before the corresponding data has been transferred to Data RAM.
The RXD.AMOUNT register can be queried following an ENDRX event to see how many new bytes have
been transferred to the RX buffer in RAM since the previous ENDRX event.
Data RAM
0x20000000
1
0x20000001
2
0x20000002
3
0x20000003
4
0x20000004
5
0x20000010
6
0x20000011
7
0x20000012
8
0x20000013
9
0x20000014
10
0x20000020
11
0x20000021
12
0x20000022
-
0x20000023
-
0x20000024
-
EasyDMA
1 2 3 4 5 6 7 8 9 10 11 12
RXD
1 2 3 4 5 6 7 8 9 10 11 12
RXSTARTED
RXSTARTED
RXSTARTED
ENDRX
ENDRX
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
RXDRDY
Lifeline
1 2 3 4
STARTRX
STARTRX
RXD.PTR = 0x20000000
RXD.PTR = 0x20000010
RXD.PTR = 0x20000020
RXD.PTR = 0x20000030
RXD.MAXCNT = 5
STARTRX
ENDRX_STARTRX = 1
The UARTE receiver is stopped by triggering the STOPRX task. An RXTO event is generated when the UARTE
has stopped. UARTE makes sure that an impending ENDRX event is generated before the RXTO event is
generated. This means that UARTE guarantees that no ENDRX event is generated after RXTO, unless UARTE
is restarted or a FLUSHRX command is issued after the RXTO event is generated.
Note: If the ENDRX event has not been generated when the UARTE receiver stops, indicating that
all pending content in the RX FIFO has been moved to the RX buffer, UARTE generates the ENDRX
event explicitly even though the RX buffer is not full. In this scenario the ENDRX event is generated
before the RXTO event is generated.
To determine the amount of bytes the RX buffer has received, the CPU can read the RXD.AMOUNT register
following the ENDRX event or the RXTO event.
UARTE can receive up to four bytes after the STOPRX task has been triggered, if these are sent in
succession immediately after the RTS signal is deactivated.
After the RXTO event is generated, the internal RX FIFO may still contain data. To move this data to RAM,
the FLUSHRX task must be triggered. The RX buffer should be emptied, or the RXD.PTR register should be
updated before the FLUSHRX task is triggered. This ensures the data in the RX buffer is not overwritten.
To make sure that all data in the RX FIFO is moved to the RX buffer, the RXD.MAXCNT register must be
set to RXD.MAXCNT > 4, as seen in the following figure. The UARTE will generate the ENDRX event after
completing the FLUSHRX task even if the RX FIFO was empty or if the RX buffer does not fill up. After the
ENDRX event, the RXD.AMOUNT register holds the actual amount of bytes transferred to the RX buffer.
EasyDMA
1 2 3 4 5 6 7 8 9 10 11, 12, 13, 14
RXD 1 2 3 4 5 6 7 8 9 10 11 12 13 14
ENDRX
ENDRX
ENDRX
RXSTARTED
RXSTARTED
RXTO
Lifeline
1 2 3 3 4 5
Timeout
STARTRX
STOPRX
ENDRX_STARTRX = 0
FLUSHRX
RXD.PTR = B
RXD.PTR = C
RXD.MAXCNT = 5
RXD.PTR = A
STARTRX
ENDRX_STARTRX = 1
If hardware flow control is enabled through the HWFC field in the CONFIG register, the RTS signal will be
deactivated when the receiver is stopped via the STOPRX task or when the UARTE is only able to receive
four more bytes in its internal RX FIFO.
With flow control disabled, the UARTE will function in the same way as when the flow control is enabled
except that the RTS line will not be used. This means that no signal will be generated when the UARTE has
reached the point where it is only able to receive four more bytes in its internal RX FIFO. Data received
when the internal RX FIFO is filled up, will be lost.
The UARTE receiver will be in its lowest activity level, and consume the least amount of energy, when it is
stopped, i.e. before it is started via STARTRX or after it has been stopped via STOPRX and the RXTO event
has been generated. See POWER — Power control on page 46 for more information about power modes.
7.38.9 Registers
Instances
Register overview
7.38.9.1 TASKS_STARTRX
Address offset: 0x000
Start UART receiver
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTRX Start UART receiver
Trigger 1 Trigger task
7.38.9.2 TASKS_STOPRX
Address offset: 0x004
Stop UART receiver
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOPRX Stop UART receiver
Trigger 1 Trigger task
7.38.9.3 TASKS_STARTTX
Address offset: 0x008
Start UART transmitter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTTX Start UART transmitter
Trigger 1 Trigger task
7.38.9.4 TASKS_STOPTX
Address offset: 0x00C
Stop UART transmitter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOPTX Stop UART transmitter
Trigger 1 Trigger task
7.38.9.5 TASKS_FLUSHRX
Address offset: 0x02C
Flush RX FIFO into RX buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_FLUSHRX Flush RX FIFO into RX buffer
Trigger 1 Trigger task
7.38.9.6 SUBSCRIBE_STARTRX
Address offset: 0x080
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTRX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.38.9.7 SUBSCRIBE_STOPRX
Address offset: 0x084
Subscribe configuration for task STOPRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOPRX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.38.9.8 SUBSCRIBE_STARTTX
Address offset: 0x088
Subscribe configuration for task STARTTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTTX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.38.9.9 SUBSCRIBE_STOPTX
Address offset: 0x08C
Subscribe configuration for task STOPTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOPTX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.38.9.10 SUBSCRIBE_FLUSHRX
Address offset: 0x0AC
Subscribe configuration for task FLUSHRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task FLUSHRX will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.38.9.11 EVENTS_CTS
Address offset: 0x100
CTS is activated (set low). Clear To Send.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_CTS CTS is activated (set low). Clear To Send.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.12 EVENTS_NCTS
Address offset: 0x104
CTS is deactivated (set high). Not Clear To Send.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_NCTS CTS is deactivated (set high). Not Clear To Send.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.13 EVENTS_RXDRDY
Address offset: 0x108
Data received in RXD (but potentially not yet transferred to Data RAM)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXDRDY Data received in RXD (but potentially not yet transferred to Data RAM)
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.14 EVENTS_ENDRX
Address offset: 0x110
Receive buffer is filled up
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDRX Receive buffer is filled up
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.15 EVENTS_TXDRDY
Address offset: 0x11C
Data sent from TXD
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXDRDY Data sent from TXD
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.16 EVENTS_ENDTX
Address offset: 0x120
Last TX byte transmitted
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDTX Last TX byte transmitted
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.17 EVENTS_ERROR
Address offset: 0x124
Error detected
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ERROR Error detected
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.18 EVENTS_RXTO
Address offset: 0x144
Receiver timeout
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXTO Receiver timeout
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.19 EVENTS_RXSTARTED
Address offset: 0x14C
UART receiver has started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_RXSTARTED UART receiver has started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.20 EVENTS_TXSTARTED
Address offset: 0x150
UART transmitter has started
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXSTARTED UART transmitter has started
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.21 EVENTS_TXSTOPPED
Address offset: 0x158
Transmitter stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TXSTOPPED Transmitter stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.38.9.22 PUBLISH_CTS
Address offset: 0x180
Publish configuration for event CTS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event CTS will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.23 PUBLISH_NCTS
Address offset: 0x184
Publish configuration for event NCTS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event NCTS will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.24 PUBLISH_RXDRDY
Address offset: 0x188
Publish configuration for event RXDRDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXDRDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.25 PUBLISH_ENDRX
Address offset: 0x190
Publish configuration for event ENDRX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDRX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.26 PUBLISH_TXDRDY
Address offset: 0x19C
Publish configuration for event TXDRDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXDRDY will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.27 PUBLISH_ENDTX
Address offset: 0x1A0
Publish configuration for event ENDTX
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDTX will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.28 PUBLISH_ERROR
Address offset: 0x1A4
Publish configuration for event ERROR
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ERROR will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.29 PUBLISH_RXTO
Address offset: 0x1C4
Publish configuration for event RXTO
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXTO will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.30 PUBLISH_RXSTARTED
Address offset: 0x1CC
Publish configuration for event RXSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event RXSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.31 PUBLISH_TXSTARTED
Address offset: 0x1D0
Publish configuration for event TXSTARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXSTARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.32 PUBLISH_TXSTOPPED
Address offset: 0x1D8
Publish configuration for event TXSTOPPED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TXSTOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.38.9.33 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
C RW ENDRX_STARTRX Shortcut between event ENDRX and task STARTRX
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW ENDRX_STOPRX Shortcut between event ENDRX and task STOPRX
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.38.9.34 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID L J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CTS Enable or disable interrupt for event CTS
Disabled 0 Disable
Enabled 1 Enable
B RW NCTS Enable or disable interrupt for event NCTS
Disabled 0 Disable
Enabled 1 Enable
C RW RXDRDY Enable or disable interrupt for event RXDRDY
Disabled 0 Disable
Enabled 1 Enable
D RW ENDRX Enable or disable interrupt for event ENDRX
Disabled 0 Disable
Enabled 1 Enable
E RW TXDRDY Enable or disable interrupt for event TXDRDY
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID L J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Disable
Enabled 1 Enable
F RW ENDTX Enable or disable interrupt for event ENDTX
Disabled 0 Disable
Enabled 1 Enable
G RW ERROR Enable or disable interrupt for event ERROR
Disabled 0 Disable
Enabled 1 Enable
H RW RXTO Enable or disable interrupt for event RXTO
Disabled 0 Disable
Enabled 1 Enable
I RW RXSTARTED Enable or disable interrupt for event RXSTARTED
Disabled 0 Disable
Enabled 1 Enable
J RW TXSTARTED Enable or disable interrupt for event TXSTARTED
Disabled 0 Disable
Enabled 1 Enable
L RW TXSTOPPED Enable or disable interrupt for event TXSTOPPED
Disabled 0 Disable
Enabled 1 Enable
7.38.9.35 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID L J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CTS Write '1' to enable interrupt for event CTS
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW NCTS Write '1' to enable interrupt for event NCTS
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW RXDRDY Write '1' to enable interrupt for event RXDRDY
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW ENDRX Write '1' to enable interrupt for event ENDRX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW TXDRDY Write '1' to enable interrupt for event TXDRDY
Set 1 Enable
Disabled 0 Read: Disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID L J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Read: Enabled
F RW ENDTX Write '1' to enable interrupt for event ENDTX
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW ERROR Write '1' to enable interrupt for event ERROR
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW RXTO Write '1' to enable interrupt for event RXTO
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW RXSTARTED Write '1' to enable interrupt for event RXSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
J RW TXSTARTED Write '1' to enable interrupt for event TXSTARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW TXSTOPPED Write '1' to enable interrupt for event TXSTOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.38.9.36 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID L J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CTS Write '1' to disable interrupt for event CTS
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW NCTS Write '1' to disable interrupt for event NCTS
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C RW RXDRDY Write '1' to disable interrupt for event RXDRDY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
D RW ENDRX Write '1' to disable interrupt for event ENDRX
Clear 1 Disable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID L J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
E RW TXDRDY Write '1' to disable interrupt for event TXDRDY
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
F RW ENDTX Write '1' to disable interrupt for event ENDTX
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
G RW ERROR Write '1' to disable interrupt for event ERROR
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
H RW RXTO Write '1' to disable interrupt for event RXTO
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
I RW RXSTARTED Write '1' to disable interrupt for event RXSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
J RW TXSTARTED Write '1' to disable interrupt for event TXSTARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW TXSTOPPED Write '1' to disable interrupt for event TXSTOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.38.9.37 ERRORSRC
Address offset: 0x480
Error source
This register is read/write one to clear.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW OVERRUN Overrun error
W1C
A start bit is received while the previous data still lies in RXD. (Previous data
is lost.)
NotPresent 0 Read: error not present
Present 1 Read: error present
B RW PARITY Parity error
W1C
A character with bad parity is received, if HW parity check is enabled.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
NotPresent 0 Read: error not present
Present 1 Read: error present
C RW FRAMING Framing error occurred
W1C
A valid stop bit is not detected on the serial data input after all bits in a
character have been received.
NotPresent 0 Read: error not present
Present 1 Read: error present
D RW BREAK Break condition
W1C
The serial data input is '0' for longer than the length of a data frame. (The
data frame length is 10 bits without parity bit and 11 bits with parity bit.)
NotPresent 0 Read: error not present
Present 1 Read: error present
7.38.9.38 ENABLE
Address offset: 0x500
Enable UART
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable or disable UARTE
Disabled 0 Disable UARTE
Enabled 8 Enable UARTE
7.38.9.39 PSEL.RTS
Address offset: 0x508
Pin select for RTS signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.38.9.40 PSEL.TXD
Address offset: 0x50C
Pin select for TXD signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.38.9.41 PSEL.CTS
Address offset: 0x510
Pin select for CTS signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.38.9.42 PSEL.RXD
Address offset: 0x514
Pin select for RXD signal
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN [0..31] Pin number
B RW PORT [0..1] Port number
C RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
7.38.9.43 BAUDRATE
Address offset: 0x524
Baud rate. Accuracy depends on the HFCLK source selected.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x04000000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW BAUDRATE Baud rate
Baud1200 0x0004F000 1200 baud (actual rate: 1205)
Baud2400 0x0009D000 2400 baud (actual rate: 2396)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x04000000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Baud4800 0x0013B000 4800 baud (actual rate: 4808)
Baud9600 0x00275000 9600 baud (actual rate: 9598)
Baud14400 0x003AF000 14400 baud (actual rate: 14401)
Baud19200 0x004EA000 19200 baud (actual rate: 19208)
Baud28800 0x0075C000 28800 baud (actual rate: 28777)
Baud31250 0x00800000 31250 baud
Baud38400 0x009D0000 38400 baud (actual rate: 38369)
Baud56000 0x00E50000 56000 baud (actual rate: 55944)
Baud57600 0x00EB0000 57600 baud (actual rate: 57554)
Baud76800 0x013A9000 76800 baud (actual rate: 76923)
Baud115200 0x01D60000 115200 baud (actual rate: 115108)
Baud230400 0x03B00000 230400 baud (actual rate: 231884)
Baud250000 0x04000000 250000 baud
Baud460800 0x07400000 460800 baud (actual rate: 457143)
Baud921600 0x0F000000 921600 baud (actual rate: 941176)
Baud1M 0x10000000 1 megabaud
7.38.9.44 RXD
RXD EasyDMA channel
7.38.9.44.1 RXD.PTR
Address offset: 0x534
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the Memory chapter for details about which memories are available for
EasyDMA.
7.38.9.44.2 RXD.MAXCNT
Address offset: 0x538
Maximum number of bytes in receive buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in receive buffer
7.38.9.44.3 RXD.AMOUNT
Address offset: 0x53C
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last transaction
7.38.9.45 TXD
TXD EasyDMA channel
7.38.9.45.1 TXD.PTR
Address offset: 0x544
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the Memory chapter for details about which memories are available for
EasyDMA.
7.38.9.45.2 TXD.MAXCNT
Address offset: 0x548
Maximum number of bytes in transmit buffer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW MAXCNT [1..0xFFFF] Maximum number of bytes in transmit buffer
7.38.9.45.3 TXD.AMOUNT
Address offset: 0x54C
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R AMOUNT [1..0xFFFF] Number of bytes transferred in the last transaction
7.38.9.46 CONFIG
Address offset: 0x56C
Configuration of parity and hardware flow control
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B B B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW HWFC Hardware flow control
Disabled 0 Disabled
Enabled 1 Enabled
B RW PARITY Parity
Excluded 0x0 Exclude parity bit
Included 0x7 Include even parity bit
C RW STOP Stop bits
One 0 One stop bit
Two 1 Two stop bits
D RW PARITYTYPE Even or odd parity type
Even 0 Even parity
Odd 1 Odd parity
LDO VBUS
Tasks DECUSB
Events
Registers
USBD
MAC
APB
Serial Physcial
HFXO PLL D+
interface
AHB
Flash engine
layer (PHY)/
(SIE) transceiver D-
EasyDMA
for each
Data
endpoint
RAM Local
buffers
34
High baud rates may require GPIOs to be set as High Drive, see GPIO chapter for more details.
Attached
Bus inactive
Powered Suspended
Bus activity
Momentary power
interruption USB reset
Bus inactive
Default Suspended
Bus activity
USB reset
Address assigned
Bus inactive
Address Suspended
Bus activity
Device Device
deconfigured configured
Bus inactive
Configured Suspended
Bus activity
The USB device must change state according to host-initiated traffic and USB bus states. It is up to the
software to implement a state machine that matches the above definition.To detect the presence or
absence of USB supply (VBUS), two events USBDETECTED and USBREMOVED can be used to implement
the state machine. For more details on these events, see USBREG — USB regulator control on page 58.
When implementing the software, the USB host behavior shall never be assumed to be predictable. In
particular the sequence of commands received during an enumeration. The software shall always react to
the current bus conditions or commands sent by the USB host.
USBDETECTED
ENABLE=Enabled
HFCLKSTART
HFCLK crystal
oscillator now starting
USBEVENT
EVENTCAUSE=READY
USBPWRRDY
HFCLKSTARTED
USBPULLUP=Enabled
Enumeration starts
Upon detecting VBUS removal, it is recommended to wait for ongoing EasyDMA transfers to finish before
disabling USBD (relevant ENDEPIN[n], ENDISOIN, ENDEPOUT[n], or ENDISOOUT events, see EasyDMA on
page 762). The USBREMOVED event, described in USBREG — USB regulator control on page 58, signals
when the VBUS is removed. Reading the ENABLE register will return Enabled until USBD is completely
disabled.
Register USBPULLUP enables software to connect or disconnect the pull-up on D+. This allows the
software to control when USB enumeration takes place. It also allows to emulate a physical disconnect
from the USB bus, for instance when re-enumeration is required. USBPULLUP has to be enabled to allow
USBD to handle USB traffic and generate appropriate events. External pull-ups are not allowed.
Note that disconnecting the pull-up through register USBPULLUP while connected to a host, will result
in both D+ and D- lines to be pulled low by the USB host's pull-down resistors. However, as mentioned
above, this will also inhibit the generation of the USBRESET event. The pull-up is disabled by default after
nRF5340 reset.
The pull-up shall only get connected after USBD has been enabled through register ENABLE. The USB
pull-up value is automatically changed depending on the bus activity, as specified in Resistor ECN which
amends the original USB 2.0 Specification. The user does not have access to this function as it is handled in
hardware.
While they should never be used in normal traffic activity, lines D+ and D- may at any time be forced into
state specified in register DPDMVALUE by the task DPDMDRIVE. The DPDMNODRIVE task stops driving
them, and the PHY returns to normal operation.
When no activity has been detected for longer than tUSB,SUSPEND, USBD generates the USBEVENT event
with SUSPEND bit set in register EVENTCAUSE. The software shall ensure that the current drawn from
the USB supply line VBUS is within the specified limits before T2SUSP, as defined in chapter 7 of the USB
specification. In order to reduce idle current of USBD, the software must explicitly place USBD in Low-
power mode by writing LowPower to register LOWPOWER.
In order to save power, and provided that no other peripheral needs it, the crystal oscillator (HFXO) in
CLOCK may be disabled by software during the USB suspend, while the USB pull-up is disconnected,
or when VBUS is not present. Software must explicitly enable it at any other time. USBD is not able to
respond to USB traffic unless HFXO is enabled and stable.
7.39.8 EasyDMA
USBD implements EasyDMA for accessing memory without CPU involvement.
Each endpoint has an associated set of registers, tasks, and events. EasyDMA and traffic on the USB bus
are closely related. Several events provide insight on USB bus activity, with a number of tasks allowing an
automated response to the traffic.
Note: Endpoint 0 (IN and OUT) are implemented as control endpoint. For more information, see
Control transfers on page 764.
Registers
Enabling endpoints is controlled through the EPINEN and EPOUTEN registers.
The following registers define the memory address of the buffer for a specific IN or OUT endpoint:
• EPIN[n].PTR, (n=0..7)
• EPOUT[n].PTR, (n=0..7)
• ISOIN.PTR
• ISOOUT.PTR
The following registers define the amount of bytes to be sent on the USB bus for next transaction:
• EPIN[n].MAXCNT, (n=0..7)
• ISOIN.MAXCNT
The following registers define the length of the buffer (in bytes) for next transfer of incoming data:
• EPOUT[n].MAXCNT, (n=1..7)
• ISOOUT.MAXCNT
Since the USB host decides how many bytes are sent over the USB bus, the MAXCNT value can be copied
from register SIZE.EPOUT[n] (n=1..7) or register SIZE.ISOOUT.
Register EPOUT[0].MAXCNT defines the length of the OUT buffer (in bytes) for the control endpoint 0.
Register SIZE.EPOUT[0] shall indicate the same value as MaxPacketSize from the USB device descriptor
or wLength from the SETUP command, whichever is the least.
The .AMOUNT registers indicate how many bytes actually have been transferred over EasyDMA during the
last transfer.
Stalling bulk/interrupt endpoints is controlled through the EPSTALL register.
Note: Due to USB specification requirements, the effect of the stalling control endpoint 0 may be
overridden by hardware, in particular when a new SETUP token is received.
EasyDMA will not copy the SETUP data to memory (it will only transfer data from the Data stage). The
following are separate registers in USBD that have setup data.
• BMREQUESTTYPE
• BREQUEST
• WVALUEL
• WVALUEH
• WINDEXL
• WINDEXH
• WLENGTHL
• WLENGTHH
The EVENTCAUSE register provides details on what caused a given USBEVENT event, for instance if a CRC
error is detected during a transaction, or if bus activity stops or resumes.
Tasks
Tasks STARTEPIN[n], STARTEPOUT[n] (n=0..7), STARTISOIN, and STARTISOOUT capture the values for .PTR
and .MAXCNT registers. For IN endpoints, a transaction over the USB bus is automatically triggered when
the EasyDMA transfer is complete. For OUT endpoints, it is up to software to allow the next transaction
over the USB bus. See the examples in Control transfers on page 764, Bulk and interrupt transactions on
page 768, and Isochronous transactions on page 771.
For the control endpoint 0, OUT transactions are allowed through the EP0RCVOUT task. The EP0STATUS
task allows a Status stage to be initiated, and the EP0STALL task allows stalling further traffic (Data or
Status stage) on the control endpoint.
Events
The STARTED event confirms that the values of the .PTR and .MAXCNT registers of the endpoints flagged in
register EPSTATUS have been captured. Those can then be modified by software for the next transfer.
Events ENDEPIN[n], ENDEPOUT[n] (n=0..7), ENDISOIN, and ENDISOOUT events indicate that the entire
buffer has been consumed. The buffer can be accessed safely by the software.
Only a single EasyDMA transfer can take place in USBD at any time. Software must ensure that tasks
STARTEPIN[n] (n=0..7), STARTISOIN , STARTEPOUT[n] (n=0..7), or STARTISOOUT are not triggered before
events ENDEPIN[n] (n=0..7), ENDISOIN, ENDEPOUT[n] (n=0..7), or ENDISOOUT are received from an on-
going transfer.
The EPDATA event indicates that a successful (acknowledged) data transaction has occurred on the data
endpoint(s) flagged in register EPDATASTATUS. A successful (acknowledged) data transaction on endpoint
0 is signalled by the EP0DATADONE event.
At any time a USBEVENT event may be sent, with details provided in EVENTCAUSE register.
The EP0SETUP event indicates that a SETUP token has been received on the control endpoint 0, and that
the setup data is available in the setup data registers.
EP0SETUP
EP0STALL
Events & tasks
Software
Decode setup
See the USB 2.0 Specification and relevant class specifications for rules on stalling commands.
Note: The USBD peripheral handles the SetAddress transfer by itself. As a consequence, the
software shall not process this command other than updating its state machine (see Device state
diagram), nor initiate a status stage. If necessary, the address assigned by the USB host can be read
out from the USBADDR register after the command has been processed.
An ENDEPIN[0] event will be generated when the data has been transferred from memory to the USBD
peripheral.
Finally, an EP0DATADONE event will be generated when the data has been transmitted over the USB bus
and acknowledged by the USB host.
The software can then either prepare and transmit the next data transaction by repeating the above
sequence, or initiate the Status stage through the EP0STATUS task.
DATA
USB host SETUP 8 bytes IN IN IN ACK IN IN IN ACK OUT
(0)
DATA DATA
USB device ACK STARTEPIN[0] NAK NAK
(n)
NAK NAK
(n+1)
ACK
STARTED
ENDEPIN[0]
EP0DATADONE
STARTEPIN[0]
STARTED
ENDEPIN[0]
EP0DATADONE
EP0STATUS
EP0SETUP
Software
Decode setup
EPIN[0].PTR=0xnnnnnnnn
EPIN[0].MAXCNT = MaxPacketSize
STARTEPIN[0]=1
(EPIN[0].PTR=0xnnnnnnnn+64)
EPIN[0].MAXCNT = <MaxPacketSize
STARTEPIN[0]=1
(enable EP0DATADONE to EP0STATUS)
It is possible to enable a shortcut from the EP0DATADONE event to the EP0STATUS task, typically if the
Data stage is expected to take a single transfer. If there is no data stage, the software can initiate the
Status stage through the EP0STATUS task right away, as as shown in the following figure.
USB host SETUP 8 bytes OUT DATA (0) OUT DATA (0)
EP0SETUP
EP0STATUS
Events & tasks
Software
Decode setup
EP0SETUP
EP0RCVOUT
EP0DATADONE
STARTEPOUT[0]
STARTED
ENDEPOUT[0]
EP0RCVOUT
EP0DATADONE
STARTEPOUT[0]
STARTED
ENDEPOUT[0]
EP0STATUS
Events & tasks
Software
Decode setup
EP0RCVOUT=1
EPOUT[0].PTR=0xnnnnnnnn
EPOUT[0].MAXCNT = MaxPacketSize
(enable EP0DATADONE to STARTEP0OUT)
(enable ENDEPOUT[0] to EP0RCVOUT)
STARTEPOUT[0]=1
(EP0RCVOUT=1)
(EP0STATUS=1)
Figure 245: Control write transfer
EP0STATUS
Software
Decode setup
EP0STATUS=1
A bulk/interrupt transaction consists of a single Data stage. Two consecutive, successful transactions are
distinguished through alternating leading process ID (PID): DATA0 follows DATA1, DATA1 follows DATA0,
etc. A repeated transaction is detected by re-using the same PID as previous transaction, i.e DATA0 follows
DATA0, or DATA1 follows DATA1.
The USBD controller automatically toggles DATA0/DATA1 PIDs for every bulk/interrupt transaction.
If incoming data is corrupted (CRC does not match), USBD automatically prevents DATA0/DATA1 from
toggling, to request the USB host to resend the data.
In some specific cases, the software may want to force a data toggle (usually reset) on a specific IN
endpoint, or force the expected toggle on an OUT endpoint, for instance as a consequence of the USB host
issuing ClearFeature, SetInterface, or selecting an alternate setting. Controlling the data toggle
of data IN or OUT endpoint n (n=1..7) is done through register DTOGGLE.
The bulk/interrupt transaction in USB full-speed can be of any size up to 64 bytes. It must be a multiple of
four bytes and 32-bit aligned in memory.
When the USB transaction has completed, an EPDATA event is generated. Until new data has been
transferred by EasyDMA from memory to USBD (signalled by the ENDEPIN[n] event), the hardware
will automatically respond with NAK to all incoming IN tokens. Software has to configure and start the
EasyDMA transfer once it is ready to send more data.
Each IN or OUT data endpoint has to be explicitly enabled by software through register EPINEN or
EPOUTEN, according to the configuration declared by the USB device and selected by the USB host
through the SetConfig command.
A disabled data endpoint will not respond to any traffic from the USB host. An enabled data endpoint
will normally respond NAK or ACK (depending on the readiness of the buffers), or STALL (if configured in
register EPSTALL), in which case the endpoint is asked to halt. The Halted or NotHalted state of a
given endpoint can be read back from register HALTED.EPIN[n] or HALTED.EPOUT[n]. The format of the
returned 16-bit value can be copied as is, as a response to a GetStatusEndpoint request from the
USB host.
Enabling or disabling an endpoint will not change its Halted state. However, a USB reset will disable and
clear the Halted state of all data endpoints.
The control endpoint 0 IN and OUT can also be enabled and/or halted using the same mechanisms, but
due to USB specification, receiving a SETUP will override its state.
STARTEPIN[1]
STARTED
ENDEPIN[1]
EPDATA
Events & tasks
Software
Prepare outgoing data
(EPIN[1].PTR=0xnnnnnnnn
EPIN[1].MAXCNT = <MaxPacketSize
STARTEPIN[1]=1
It is possible (and in some situations it is required) to respond to an IN token with a zero-length data
packet.
Note: On many USB hosts, not responding (DATA+ACK or NAK) to three IN tokens on an interrupt
endpoint would have the USB host disable that endpoint as a consequence. Re-enumerating the
USB device (unplug-replug) may be required to restore functionality. Make sure that the relevant
data endpoints are enabled for normal operation as soon as the USB device gets configured
through a SetConfig request.
USB host OUT DATA (n) OUT DATA (n) OUT DATA (n+1) OUT DATA (n+1)
STARTEPOUT[1]
ENDEPOUT[1]
EPDATA
STARTED
EPDATA
Events & tasks
Software SIZE.EPOUT[1]=0
Process data
EPDATASTATUS.EPOUT1 set (Started)
EPOUT[1].PTR=0xnnnnnnnn
EPOUT[1].MAXCNT=SIZE.EPOUT[1]
Figure 248: Bulk/interrupt OUT transaction STARTEPOUT[1]=1
An isochronous transaction consists of a single, non-acknowledged Data stage. The host sends out a start
of frame at a regular interval (1 ms), and data follows IN or OUT tokens within each frame.
EasyDMA allows transferring ISO data directly from and to memory. EasyDMA transfers must be initiated
by the software, which can synchronize with the SOF (start of frame) events.
Because the timing of the start of frame is very accurate, the SOF event can be used for jobs such as
synchronizing a local timer through the SOF event and PPI. The SOF event gets synchronized to the 16 MHz
clock prior to being made available to the PPI.
Every start of frame increments a free-running counter, which can be read by software through the
FRAMECNTR register.
Each IN or OUT ISO data endpoint has to be explicitly enabled by software through register EPINEN
or EPOUTEN, according to the configuration declared by the USB device and selected by the USB host
through the SetConfig command. A disabled ISO IN data endpoint will not respond to any traffic from
the USB host. A disabled ISO OUT data endpoint will ignore any incoming traffic from the host.
The USBD peripheral has an internal 1 kB buffer associated with ISO endpoints. The user can either
allocate the full amount to the IN or the OUT endpoint, or split the buffer allocation between the two
using register ISOSPLIT.
The internal buffer also sets the maximum size of the ISO OUT and ISO IN transfers: 1023 bytes when the
full buffer is dedicated to either ISO OUT or ISO IN, and half when the buffer is split between the two.
DATA(0) DATA n
USB device
SOF
STARTISOIN
STARTED
ENDISOIN
SOF
STARTISOIN
Events & tasks
Software
Prepare outgoing ISO data n
ISOIN.PTR=0xnnnnnnnn
ISOIN.MAXCNT=yy
STARTISOIN=1
ISOIN.PTR=0xnnnnnnnn
ISOIN.MAXCNT=yy
STARTISOIN=1
When EasyDMA is prepared and started, triggering a STARTISOOUT task initiates an EasyDMA transfer to
memory. Software shall synchronize ISO OUT transfers with the SOF events. EasyDMA uses the address in
ISOOUT.PTR and size in ISOOUT.MAXCNT for every new transfer.
If the EasyDMA transfer on the isochronous endpoint is not completed before the next SOF event, the
result of the transfer is undefined.
The maximum size of an isochronous OUT transfer in USB full-speed is 1023 bytes. The data buffer has to
be a multiple of 4 bytes and 32-bit aligned in Data RAM. However, the amount of bytes transferred on the
USB data endpoint can be of any size (up to 1023 bytes if not shared with an IN ISO endpoint).
If the last received ISO data packet is corrupted (wrong CRC), the USB controller generates an USBEVENT
event (at the same time as SOF) and indicates a CRC error on ISOOUTCRC in register EVENTCAUSE.
EasyDMA will transfer the data anyway if it has been set up properly.
Start of frame Start of frame Start of frame
USB host OUT DATA n OUT DATA n+1 OUT DATA n+2
USB device
STARTISOOUT
STARTISOOUT
SOF
ENDISOOUT
SOF
STARTED
SOF
Software
Prepare for receiving ISO data n
(ISOOUT.MAXCNT=SIZE.ISOOUT)
ISOOUT.PTR=0xnnnnnnnn
ISOOUT.MAXCNT=SIZE.ISOOUT
(STARTISOOUT=1)
ISOOUT.PTR=0xnnnnnnnn + size
ISOOUT.MAXCNT=SIZE.ISOOUT
Process data
Triggering any tasks, including the tasks triggered through the PPI, is affected by this behavior. In addition,
the following registers are affected:
• HALTED.EPIN[0..7]
• HALTED.EPOUT[0..7]
• USBADDR
• BMREQUESTTYPE
• BREQUEST
• WVALUEL
• WVALUEH
• WINDEXL
• WINDEXH
• WLENGTHL
• WLENGTHH
• SIZE.EPOUT[0..7]
• SIZE.ISOOUT
• USBPULLUP
• DTOGGLE
• EPINEN
• EPOUTEN
• EPSTALL
• ISOSPLIT
• FRAMECNTR
7.39.13 Registers
Instances
USBD : S 0x50036000
APPLICATION US S SA No Universal serial bus device
USBD : NS 0x40036000
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTEPIN Captures the EPIN[n].PTR and EPIN[n].MAXCNT registers values, and enables
endpoint IN n to respond to traffic from host
Trigger 1 Trigger task
7.39.13.2 TASKS_STARTISOIN
Address offset: 0x024
Captures the ISOIN.PTR and ISOIN.MAXCNT registers values, and enables sending data on ISO endpoint
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTISOIN Captures the ISOIN.PTR and ISOIN.MAXCNT registers values, and enables
sending data on ISO endpoint
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTEPOUT Captures the EPOUT[n].PTR and EPOUT[n].MAXCNT registers values, and
enables endpoint n to respond to traffic from host
Trigger 1 Trigger task
7.39.13.4 TASKS_STARTISOOUT
Address offset: 0x048
Captures the ISOOUT.PTR and ISOOUT.MAXCNT registers values, and enables receiving of data on ISO
endpoint
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STARTISOOUT Captures the ISOOUT.PTR and ISOOUT.MAXCNT registers values, and
enables receiving of data on ISO endpoint
Trigger 1 Trigger task
7.39.13.5 TASKS_EP0RCVOUT
Address offset: 0x04C
Allows OUT data stage on control endpoint 0
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_EP0RCVOUT Allows OUT data stage on control endpoint 0
Trigger 1 Trigger task
7.39.13.6 TASKS_EP0STATUS
Address offset: 0x050
Allows status stage on control endpoint 0
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_EP0STATUS Allows status stage on control endpoint 0
Trigger 1 Trigger task
7.39.13.7 TASKS_EP0STALL
Address offset: 0x054
Stalls data and status stage on control endpoint 0
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_EP0STALL Stalls data and status stage on control endpoint 0
Trigger 1 Trigger task
7.39.13.8 TASKS_DPDMDRIVE
Address offset: 0x058
Forces D+ and D- lines into the state defined in the DPDMVALUE register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_DPDMDRIVE Forces D+ and D- lines into the state defined in the DPDMVALUE register
Trigger 1 Trigger task
7.39.13.9 TASKS_DPDMNODRIVE
Address offset: 0x05C
Stops forcing D+ and D- lines into any state (USB engine takes control)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_DPDMNODRIVE Stops forcing D+ and D- lines into any state (USB engine takes control)
Trigger 1 Trigger task
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTEPIN[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.11 SUBSCRIBE_STARTISOIN
Address offset: 0x0A4
Subscribe configuration for task STARTISOIN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTISOIN will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTEPOUT[n] will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.13 SUBSCRIBE_STARTISOOUT
Address offset: 0x0C8
Subscribe configuration for task STARTISOOUT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STARTISOOUT will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.14 SUBSCRIBE_EP0RCVOUT
Address offset: 0x0CC
Subscribe configuration for task EP0RCVOUT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task EP0RCVOUT will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.15 SUBSCRIBE_EP0STATUS
Address offset: 0x0D0
Subscribe configuration for task EP0STATUS
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task EP0STATUS will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.16 SUBSCRIBE_EP0STALL
Address offset: 0x0D4
Subscribe configuration for task EP0STALL
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task EP0STALL will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.17 SUBSCRIBE_DPDMDRIVE
Address offset: 0x0D8
Subscribe configuration for task DPDMDRIVE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task DPDMDRIVE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.18 SUBSCRIBE_DPDMNODRIVE
Address offset: 0x0DC
Subscribe configuration for task DPDMNODRIVE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task DPDMNODRIVE will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.39.13.19 EVENTS_USBRESET
Address offset: 0x100
Signals that a USB reset condition has been detected on USB lines
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_USBRESET Signals that a USB reset condition has been detected on USB lines
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.20 EVENTS_STARTED
Address offset: 0x104
Confirms that the EPIN[n].PTR and EPIN[n].MAXCNT, or EPOUT[n].PTR and EPOUT[n].MAXCNT registers
have been captured on all endpoints reported in the EPSTATUS register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STARTED Confirms that the EPIN[n].PTR and EPIN[n].MAXCNT, or EPOUT[n].PTR and
EPOUT[n].MAXCNT registers have been captured on all endpoints reported
in the EPSTATUS register
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDEPIN The whole EPIN[n] buffer has been consumed. The buffer can be accessed
safely by software.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.22 EVENTS_EP0DATADONE
Address offset: 0x128
An acknowledged data transfer has taken place on the control endpoint
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_EP0DATADONE An acknowledged data transfer has taken place on the control endpoint
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.23 EVENTS_ENDISOIN
Address offset: 0x12C
The whole ISOIN buffer has been consumed. The buffer can be accessed safely by software.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDISOIN The whole ISOIN buffer has been consumed. The buffer can be accessed
safely by software.
NotGenerated 0 Event not generated
Generated 1 Event generated
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDEPOUT The whole EPOUT[n] buffer has been consumed. The buffer can be accessed
safely by software.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.25 EVENTS_ENDISOOUT
Address offset: 0x150
The whole ISOOUT buffer has been consumed. The buffer can be accessed safely by software.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_ENDISOOUT The whole ISOOUT buffer has been consumed. The buffer can be accessed
safely by software.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.26 EVENTS_SOF
Address offset: 0x154
Signals that a SOF (start of frame) condition has been detected on USB lines
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_SOF Signals that a SOF (start of frame) condition has been detected on USB lines
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.27 EVENTS_USBEVENT
Address offset: 0x158
An event or an error not covered by specific events has occurred. Check EVENTCAUSE register to find the
cause.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_USBEVENT An event or an error not covered by specific events has occurred. Check
EVENTCAUSE register to find the cause.
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.28 EVENTS_EP0SETUP
Address offset: 0x15C
A valid SETUP token has been received (and acknowledged) on the control endpoint
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_EP0SETUP A valid SETUP token has been received (and acknowledged) on the control
endpoint
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.29 EVENTS_EPDATA
Address offset: 0x160
A data transfer has occurred on a data endpoint, indicated by the EPDATASTATUS register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_EPDATA A data transfer has occurred on a data endpoint, indicated by the
EPDATASTATUS register
NotGenerated 0 Event not generated
Generated 1 Event generated
7.39.13.30 PUBLISH_USBRESET
Address offset: 0x180
Publish configuration for event USBRESET
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event USBRESET will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.31 PUBLISH_STARTED
Address offset: 0x184
Publish configuration for event STARTED
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STARTED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDEPIN[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.33 PUBLISH_EP0DATADONE
Address offset: 0x1A8
Publish configuration for event EP0DATADONE
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event EP0DATADONE will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.34 PUBLISH_ENDISOIN
Address offset: 0x1AC
Publish configuration for event ENDISOIN
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDISOIN will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDEPOUT[n] will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.36 PUBLISH_ENDISOOUT
Address offset: 0x1D0
Publish configuration for event ENDISOOUT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event ENDISOOUT will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.37 PUBLISH_SOF
Address offset: 0x1D4
Publish configuration for event SOF
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event SOF will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.38 PUBLISH_USBEVENT
Address offset: 0x1D8
Publish configuration for event USBEVENT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event USBEVENT will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.39 PUBLISH_EP0SETUP
Address offset: 0x1DC
Publish configuration for event EP0SETUP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event EP0SETUP will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.40 PUBLISH_EPDATA
Address offset: 0x1E0
Publish configuration for event EPDATA
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event EPDATA will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.39.13.41 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EP0DATADONE_STARTEPIN0 Shortcut between event EP0DATADONE and task STARTEPIN[0]
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
B RW EP0DATADONE_STARTEPOUT0 Shortcut between event EP0DATADONE and task STARTEPOUT[0]
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
C RW EP0DATADONE_EP0STATUS Shortcut between event EP0DATADONE and task EP0STATUS
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
D RW ENDEPOUT0_EP0STATUS Shortcut between event ENDEPOUT[0] and task EP0STATUS
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
E RW ENDEPOUT0_EP0RCVOUT Shortcut between event ENDEPOUT[0] and task EP0RCVOUT
Disabled 0 Disable shortcut
Enabled 1 Enable shortcut
7.39.13.42 INTEN
Address offset: 0x300
Enable or disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW USBRESET Enable or disable interrupt for event USBRESET
Disabled 0 Disable
Enabled 1 Enable
B RW STARTED Enable or disable interrupt for event STARTED
Disabled 0 Disable
Enabled 1 Enable
C-J RW ENDEPIN[i] (i=0..7) Enable or disable interrupt for event ENDEPIN[i]
Disabled 0 Disable
Enabled 1 Enable
K RW EP0DATADONE Enable or disable interrupt for event EP0DATADONE
Disabled 0 Disable
Enabled 1 Enable
L RW ENDISOIN Enable or disable interrupt for event ENDISOIN
Disabled 0 Disable
Enabled 1 Enable
M-T RW ENDEPOUT[i] (i=0..7) Enable or disable interrupt for event ENDEPOUT[i]
Disabled 0 Disable
Enabled 1 Enable
U RW ENDISOOUT Enable or disable interrupt for event ENDISOOUT
Disabled 0 Disable
Enabled 1 Enable
V RW SOF Enable or disable interrupt for event SOF
Disabled 0 Disable
Enabled 1 Enable
W RW USBEVENT Enable or disable interrupt for event USBEVENT
Disabled 0 Disable
Enabled 1 Enable
X RW EP0SETUP Enable or disable interrupt for event EP0SETUP
Disabled 0 Disable
Enabled 1 Enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Y RW EPDATA Enable or disable interrupt for event EPDATA
Disabled 0 Disable
Enabled 1 Enable
7.39.13.43 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW USBRESET Write '1' to enable interrupt for event USBRESET
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STARTED Write '1' to enable interrupt for event STARTED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C-J RW ENDEPIN[i] (i=0..7) Write '1' to enable interrupt for event ENDEPIN[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
K RW EP0DATADONE Write '1' to enable interrupt for event EP0DATADONE
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW ENDISOIN Write '1' to enable interrupt for event ENDISOIN
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
M-T RW ENDEPOUT[i] (i=0..7) Write '1' to enable interrupt for event ENDEPOUT[i]
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
U RW ENDISOOUT Write '1' to enable interrupt for event ENDISOOUT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
V RW SOF Write '1' to enable interrupt for event SOF
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
W RW USBEVENT Write '1' to enable interrupt for event USBEVENT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
X RW EP0SETUP Write '1' to enable interrupt for event EP0SETUP
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Y RW EPDATA Write '1' to enable interrupt for event EPDATA
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.39.13.44 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW USBRESET Write '1' to disable interrupt for event USBRESET
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STARTED Write '1' to disable interrupt for event STARTED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
C-J RW ENDEPIN[i] (i=0..7) Write '1' to disable interrupt for event ENDEPIN[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
K RW EP0DATADONE Write '1' to disable interrupt for event EP0DATADONE
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
L RW ENDISOIN Write '1' to disable interrupt for event ENDISOIN
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
M-T RW ENDEPOUT[i] (i=0..7) Write '1' to disable interrupt for event ENDEPOUT[i]
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
U RW ENDISOOUT Write '1' to disable interrupt for event ENDISOOUT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
V RW SOF Write '1' to disable interrupt for event SOF
Clear 1 Disable
Disabled 0 Read: Disabled
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
Enabled 1 Read: Enabled
W RW USBEVENT Write '1' to disable interrupt for event USBEVENT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
X RW EP0SETUP Write '1' to disable interrupt for event EP0SETUP
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
Y RW EPDATA Write '1' to disable interrupt for event EPDATA
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.39.13.45 EVENTCAUSE
Address offset: 0x400
Details on what caused the USBEVENT event
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ISOOUTCRC CRC error was detected on isochronous OUT endpoint 8. Write '1' to clear.
W1C
NotDetected 0 No error detected
Detected 1 Error detected
B RW SUSPEND Signals that USB lines have been idle long enough for the device to enter
W1C suspend. Write '1' to clear.
NotDetected 0 Suspend not detected
Detected 1 Suspend detected
C RW RESUME Signals that a RESUME condition (K state or activity restart) has been
W1C detected on USB lines. Write '1' to clear.
NotDetected 0 Resume not detected
Detected 1 Resume detected
D RW USBWUALLOWED USB MAC has been woken up and operational. Write '1' to clear.
W1C
NotAllowed 0 Wake up not allowed
Allowed 1 Wake up allowed
E RW READY USB device is ready for normal operation. Write '1' to clear.
W1C
NotDetected 0 USBEVENT was not issued due to USBD peripheral ready
Ready 1 USBD peripheral is ready
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R GETSTATUS IN endpoint halted status. Can be used as is as response to a GetStatus()
request to endpoint.
NotHalted 0 Endpoint is not halted
Halted 1 Endpoint is halted
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R GETSTATUS OUT endpoint halted status. Can be used as is as response to a GetStatus()
request to endpoint.
NotHalted 0 Endpoint is not halted
Halted 1 Endpoint is halted
7.39.13.48 EPSTATUS
Address offset: 0x468
Provides information on which endpoint's EasyDMA registers have been captured
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID R Q P O N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-I RW EPIN[i] (i=0..8) Captured state of endpoint's EasyDMA registers. Write '1' to clear.
W1C
NoData 0 EasyDMA registers have not been captured for this endpoint
DataDone 1 EasyDMA registers have been captured for this endpoint
J-R RW EPOUT[i] (i=0..8) Captured state of endpoint's EasyDMA registers. Write '1' to clear.
W1C
NoData 0 EasyDMA registers have not been captured for this endpoint
DataDone 1 EasyDMA registers have been captured for this endpoint
7.39.13.49 EPDATASTATUS
Address offset: 0x46C
Provides information on which endpoint(s) an acknowledged data transfer has occurred (EPDATA event)
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID N M L K J I H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
-F RW EPIN[i] (i=1..7) Acknowledged data transfer on this IN endpoint. Write '1' to clear.
W1C
NotDone 0 No acknowledged data transfer on this endpoint
DataDone 1 Acknowledged data transfer on this endpoint has occurred
-M RW EPOUT[i] (i=1..7) Acknowledged data transfer on this OUT endpoint. Write '1' to clear.
W1C
NotStarted 0 No acknowledged data transfer on this endpoint
Started 1 Acknowledged data transfer on this endpoint has occurred
7.39.13.50 USBADDR
Address offset: 0x470
Device USB address
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ADDR Device USB address
7.39.13.51 BMREQUESTTYPE
Address offset: 0x480
SETUP data, byte 0, bmRequestType
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B B A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RECIPIENT Data transfer type
Device 0 Device
Interface 1 Interface
Endpoint 2 Endpoint
Other 3 Other
B R TYPE Data transfer type
Standard 0 Standard
Class 1 Class
Vendor 2 Vendor
C R DIRECTION Data transfer direction
HostToDevice 0 Host-to-device
DeviceToHost 1 Device-to-host
7.39.13.52 BREQUEST
Address offset: 0x484
SETUP data, byte 1, bRequest
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R BREQUEST SETUP data, byte 1, bRequest. Values provided for standard requests only,
user must implement class and vendor values.
STD_GET_STATUS 0 Standard request GET_STATUS
STD_CLEAR_FEATURE1 Standard request CLEAR_FEATURE
STD_SET_FEATURE 3 Standard request SET_FEATURE
STD_SET_ADDRESS 5 Standard request SET_ADDRESS
STD_GET_DESCRIPTOR
6 Standard request GET_DESCRIPTOR
STD_SET_DESCRIPTOR7 Standard request SET_DESCRIPTOR
STD_GET_CONFIGURATION
8 Standard request GET_CONFIGURATION
STD_SET_CONFIGURATION
9 Standard request SET_CONFIGURATION
STD_GET_INTERFACE 10 Standard request GET_INTERFACE
STD_SET_INTERFACE 11 Standard request SET_INTERFACE
STD_SYNCH_FRAME 12 Standard request SYNCH_FRAME
7.39.13.53 WVALUEL
Address offset: 0x488
SETUP data, byte 2, LSB of wValue
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R WVALUEL SETUP data, byte 2, LSB of wValue
7.39.13.54 WVALUEH
Address offset: 0x48C
SETUP data, byte 3, MSB of wValue
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R WVALUEH SETUP data, byte 3, MSB of wValue
7.39.13.55 WINDEXL
Address offset: 0x490
SETUP data, byte 4, LSB of wIndex
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R WINDEXL SETUP data, byte 4, LSB of wIndex
7.39.13.56 WINDEXH
Address offset: 0x494
SETUP data, byte 5, MSB of wIndex
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R WINDEXH SETUP data, byte 5, MSB of wIndex
7.39.13.57 WLENGTHL
Address offset: 0x498
SETUP data, byte 6, LSB of wLength
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R WLENGTHL SETUP data, byte 6, LSB of wLength
7.39.13.58 WLENGTHH
Address offset: 0x49C
SETUP data, byte 7, MSB of wLength
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R WLENGTHH SETUP data, byte 7, MSB of wLength
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SIZE Number of bytes received last in the data stage of this OUT endpoint
W0C
7.39.13.60 SIZE.ISOOUT
Address offset: 0x4C0
Number of bytes received last on this ISO OUT data endpoint
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A A A
Reset 0x00010000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R SIZE Number of bytes received last on this ISO OUT data endpoint
B R ZERO Zero-length data packet received
Normal 0 No zero-length data received, use value in SIZE
ZeroData 1 Zero-length data received, ignore value in SIZE
7.39.13.61 ENABLE
Address offset: 0x500
Enable USB
After writing Disabled to this register, reading the register will return Enabled until USBD is completely
disabled.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE Enable USB
Disabled 0 USB peripheral is disabled
Enabled 1 USB peripheral is enabled
7.39.13.62 USBPULLUP
Address offset: 0x504
Control of the USB pull-up
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CONNECT Control of the USB pull-up on the D+ line
Disabled 0 Pull-up is disconnected
Enabled 1 Pull-up is connected to D+
7.39.13.63 DPDMVALUE
Address offset: 0x508
State D+ and D- lines will be forced into by the DPDMDRIVE task. The DPDMNODRIVE task reverts the
control of the lines to MAC IP (no forcing).
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW STATE State D+ and D- lines will be forced into by the DPDMDRIVE task
Resume 1 D+ forced low, D- forced high (K state) for a timing preset in hardware (50 μs
or 5 ms, depending on bus state)
J 2 D+ forced high, D- forced low (J state)
K 4 D+ forced low, D- forced high (K state)
7.39.13.64 DTOGGLE
Address offset: 0x50C
Data toggle control and status
First write this register with VALUE=Nop to select the endpoint, then either read it to get the status from
VALUE, or write it again with VALUE=Data0 or Data1
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C B A A A
Reset 0x00000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EP Select bulk endpoint number
B RW IO Selects IN or OUT endpoint
Out 0 Selects OUT endpoint
In 1 Selects IN endpoint
C RW VALUE Data toggle value
Nop 0 No action on data toggle when writing the register with this value
Data0 1 Data toggle is DATA0 on endpoint set by EP and IO
Data1 2 Data toggle is DATA1 on endpoint set by EP and IO
7.39.13.65 EPINEN
Address offset: 0x510
Endpoint IN enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID I H G F E D C B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A-H RW IN[i] (i=0..7) Enable IN endpoint i
Disable 0 Disable endpoint IN i (no response to IN tokens)
Enable 1 Enable endpoint IN i (response to IN tokens)
I RW ISOIN Enable ISO IN endpoint
Disable 0 Disable ISO IN endpoint 8
Enable 1 Enable ISO IN endpoint 8
7.39.13.66 EPOUTEN
Address offset: 0x514
Endpoint OUT enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID I H G F E D C B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A-H RW OUT[i] (i=0..7) Enable OUT endpoint i
Disable 0 Disable endpoint OUT i (no response to OUT tokens)
Enable 1 Enable endpoint OUT i (response to OUT tokens)
I RW ISOOUT Enable ISO OUT endpoint 8
Disable 0 Disable ISO OUT endpoint 8
Enable 1 Enable ISO OUT endpoint 8
7.39.13.67 EPSTALL
Address offset: 0x518
STALL endpoints
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W EP Select endpoint number
RME
B W IO Selects IN or OUT endpoint
RME
Out 0 Selects OUT endpoint
In 1 Selects IN endpoint
C W STALL Stall selected endpoint
RME
UnStall 0 Don't stall selected endpoint
Stall 1 Stall selected endpoint
7.39.13.68 ISOSPLIT
Address offset: 0x51C
Controls the split of ISO buffers
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW SPLIT Controls the split of ISO buffers
OneDir 0x0000 Full buffer dedicated to either ISO IN or OUT
HalfIN 0x0080 Lower half for IN, upper half for OUT
7.39.13.69 FRAMECNTR
Address offset: 0x520
Returns the current value of the start of frame counter
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R FRAMECNTR Returns the current value of the start of frame counter
7.39.13.70 LOWPOWER
Address offset: 0x52C
Controls USBD peripheral Low-power mode during USB suspend
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW LOWPOWER Controls USBD peripheral Low-power mode during USB suspend
ForceNormal 0 Software must write this value to exit Low-power mode and before
performing a remote wake-up
LowPower 1 Software must write this value to enter Low-power mode after DMA and
software have finished interacting with the USB peripheral
7.39.13.71 ISOINCONFIG
Address offset: 0x530
Controls the response of the ISO IN endpoint to an IN token when no data is ready to be sent
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RESPONSE Controls the response of the ISO IN endpoint to an IN token when no data is
ready to be sent
NoResp 0 Endpoint does not respond in that case
ZeroData 1 Endpoint responds with a zero-length data packet in that case
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- RW MAXCNT [64..0] Maximum number of bytes to transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- R AMOUNT Number of bytes transferred in the last transaction
7.39.13.75 ISOIN.PTR
Address offset: 0x6A0
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
7.39.13.76 ISOIN.MAXCNT
Address offset: 0x6A4
Maximum number of bytes to transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- RW MAXCNT [1023..1] Maximum number of bytes to transfer
7.39.13.77 ISOIN.AMOUNT
Address offset: 0x6A8
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- R AMOUNT Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- RW MAXCNT [64..0] Maximum number of bytes to transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- R AMOUNT Number of bytes transferred in the last transaction
7.39.13.81 ISOOUT.PTR
Address offset: 0x7A0
Data pointer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW PTR Data pointer
See the memory chapter for details about which memories are available for
EasyDMA.
7.39.13.82 ISOOUT.MAXCNT
Address offset: 0x7A4
Maximum number of bytes to transfer
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- RW MAXCNT Maximum number of bytes to transfer
7.39.13.83 ISOOUT.AMOUNT
Address offset: 0x7A8
Number of bytes transferred in the last transaction
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A- R AMOUNT Number of bytes transferred in the last transaction
35
The local clock can be stopped during USB suspend
Each RAM block, which may contain multiple RAM sections, can power up or power down independently
in System ON and System OFF mode using RAM[n] registers. See the Memory chapter for more
information about RAM blocks and sections.
The advantage of not retaining RAM contents is that the overall current consumption is reduced.
See chapter Memory on page 21 for more information on RAM sections.
7.40.2 Registers
Instances
VMC : S 0x50081000
APPLICATION US S NA No Volatile memory controller
VMC : NS 0x40081000
VMC NETWORK 0x41081000 HF NS NA No Volatile memory controller
Configuration
36
RAM section power off gives negligible reduction in current consumption when retention is on.
Register overview
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x0000FFFF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-P RW S[i]POWER (i=0..15) Keep RAM section Si of RAM[n] on or off in System ON mode
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x0000FFFF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-P RW S[i]POWER (i=0..15) Keep RAM section Si of RAM[n] on or off in System ON mode
On 1 On
Q-f RW S[i]RETENTION (i=0..15) Keep retention on RAM section Si of RAM[n] when RAM section is switched
off
On 1 On
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID f e d c b a Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Reset 0x0000FFFF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A-P RW S[i]POWER (i=0..15) Keep RAM section Si of RAM[n] on or off in System ON mode
Off 1 Off
Q-f RW S[i]RETENTION (i=0..15) Keep retention on RAM section Si of RAM[n] when RAM section is switched
off
Off 1 Off
When started, WDT will make the 32.768 kHz RC oscillator start if no other 32.768 kHz clock source is
running and generating the 32.768 kHz system clock, see chapter CLOCK — Clock control on page 72.
If the watchdog is configured to generate an interrupt on the TIMEOUT event, the watchdog reset is
postponed by two 32.768 kHz clock cycles after the TIMEOUT event is generated. Once the TIMEOUT
event is generated, and unless the watchdog is stopped, the impending watchdog reset will occur.
The watchdog can be reset from several reset sources, see Application core reset behavior on page 67.
After a reset, the watchdog configuration registers are available for configuration.
See RESET — Reset control on page 65 for more information about reset sources.
Note: It is recommended to write zeros to TSEN on page 812 after the watchdog has stopped, to
avoid runaway code triggering the STOP task.
7.41.5 Registers
Instances
WDT0 : S 0x50018000
APPLICATION US S NA No Watchdog timer 0
WDT0 : NS 0x40018000
WDT1 : S 0x50019000
APPLICATION US S NA No Watchdog timer 1
WDT1 : NS 0x40019000
WDT NETWORK 0x4100B000 HF NS NA No Watchdog timer
Register overview
7.41.5.1 TASKS_START
Address offset: 0x000
Start WDT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_START Start WDT
Trigger 1 Trigger task
7.41.5.2 TASKS_STOP
Address offset: 0x004
Stop WDT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TASKS_STOP Stop WDT
Trigger 1 Trigger task
7.41.5.3 SUBSCRIBE_START
Address offset: 0x080
Subscribe configuration for task START
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task START will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.41.5.4 SUBSCRIBE_STOP
Address offset: 0x084
Subscribe configuration for task STOP
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that task STOP will subscribe to
B RW EN
Disabled 0 Disable subscription
Enabled 1 Enable subscription
7.41.5.5 EVENTS_TIMEOUT
Address offset: 0x100
Watchdog timeout
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_TIMEOUT Watchdog timeout
NotGenerated 0 Event not generated
Generated 1 Event generated
7.41.5.6 EVENTS_STOPPED
Address offset: 0x104
Watchdog stopped
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW EVENTS_STOPPED Watchdog stopped
NotGenerated 0 Event not generated
Generated 1 Event generated
7.41.5.7 PUBLISH_TIMEOUT
Address offset: 0x180
Publish configuration for event TIMEOUT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event TIMEOUT will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.41.5.8 PUBLISH_STOPPED
Address offset: 0x184
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW CHIDX [0..255] DPPI channel that event STOPPED will publish to
B RW EN
Disabled 0 Disable publishing
Enabled 1 Enable publishing
7.41.5.9 INTENSET
Address offset: 0x304
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TIMEOUT Write '1' to enable interrupt for event TIMEOUT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.41.5.10 INTENCLR
Address offset: 0x308
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TIMEOUT Write '1' to disable interrupt for event TIMEOUT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.41.5.11 NMIENSET
Address offset: 0x324
Enable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TIMEOUT Write '1' to enable interrupt for event TIMEOUT
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STOPPED Write '1' to enable interrupt for event STOPPED
Set 1 Enable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.41.5.12 NMIENCLR
Address offset: 0x328
Disable interrupt
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TIMEOUT Write '1' to disable interrupt for event TIMEOUT
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
B RW STOPPED Write '1' to disable interrupt for event STOPPED
Clear 1 Disable
Disabled 0 Read: Disabled
Enabled 1 Read: Enabled
7.41.5.13 RUNSTATUS
Address offset: 0x400
Run status
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RUNSTATUSWDT Indicates whether or not WDT is running
NotRunning 0 Watchdog is not running
Running 1 Watchdog is running
7.41.5.14 REQSTATUS
Address offset: 0x404
Request status
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A-H R RR[i] (i=0..7) Request status for RR[i] register
DisabledOrRequested0 RR[i] register is not enabled, or are already requesting reload
EnabledAndUnrequested
1 RR[i] register is enabled, and are not yet requesting reload
7.41.5.15 CRV
Address offset: 0x504
Counter reload value
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW CRV [0xF..0xFFFFFFFF] Counter reload value in number of cycles of the 32.768 kHz clock
7.41.5.16 RREN
Address offset: 0x508
Enable register for reload request registers
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A-H RW RR[i] (i=0..7) Enable or disable RR[i] register
Disabled 0 Disable RR[i] register
Enabled 1 Enable RR[i] register
7.41.5.17 CONFIG
Address offset: 0x50C
Configuration register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A RW SLEEP Configure WDT to either be paused, or kept running, while the CPU is
sleeping
Pause 0 Pause WDT while the CPU is sleeping
Run 1 Keep WDT running while the CPU is sleeping
B RW HALT Configure WDT to either be paused, or kept running, while the CPU is halted
by the debugger
Pause 0 Pause WDT while the CPU is halted by the debugger
Run 1 Keep WDT running while the CPU is halted by the debugger
C RW STOPEN Allow stopping WDT
Disable 0 Do not allow stopping WDT
Enable 1 Allow stopping WDT
7.41.5.18 TSEN
Address offset: 0x520
Task stop enable
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W TSEN Allow stopping WDT
Enable 0x6E524635 Value to allow stopping WDT
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W RR Reload request register
Reload 0x6E524635 Value to request a reload of the watchdog timer
UICR.ERASEPROTECT
UICR.APPROTECT
CTRL-AP APPROTECT &
DISABLEERASE
APPROTECT
&
APB
DBGEN
NVMC
AHB-AP
CPU
APB/AHB
Arm® Cortex®-M33 Peripherals
DAP bus
inter-
connect Network core
UICR.ERASEPROTECT
SWDCLK UICR.APPROTECT
External DAP bus APPROTECT
SW-DP UICR.SECUREAPPROTECT CTRL-AP &
debugger SWDIO
DISABLEERASE
APPROTECT/
SECURE-APPROTECT
& &
DBGEN SPIDEN
APB
NVMC
AHB-AP
CxxxPWRUPREQ
CxxxPWRUPRACK POWER
CPU
Arm® Cortex®-M33 APB/AHB
TRACECLK Peripherals
TRACEDATA[0] / SWO ETM trace
ETM
TRACEDATA[1]
TPIU ITM trace
TRACEDATA[2] ITM
TRACEDATA[3]
Application core
Note:
• The SWDIO line has an internal pull-up resistor.
• The SWDCLK line has an internal pull-down resistor.
There are several access ports that connect to different parts of the system. See the following table for
more information.
AP ID Type Description
0 AHB-AP Application subsystem access port
1 AHB-AP Network subsystem access port
2 CTRL-AP Application subsystem control access port
3 CTRL-AP Network subsystem control access port
The AHB-AP and APB-AP access ports are standard Arm components documented in the Arm CoreSight
SoC-400 Technical Reference Manual, Revision r3p2. The CTRL-AP access port is proprietary (see CTRL-AP -
Control access port on page 826).
8.1.1 Registers
Register overview
The TARGETID register is accessed by a read of DP register 0x4 when the DPBANKSEL bit in
the SELECT register is set to 0x2.
DLPIDR 0x043 The DLPIDR register provides information about the serial wire debug protocol version.
Accessed by a read of DP register 0x4 when the DPBANKSEL bit in the SELECT register is set to
0x3.
8.1.1.1 TARGETID
Address offset: 0x042
The TARGETID register provides information about the target when the host is connected to a single
device.
The TARGETID register is accessed by a read of DP register 0x4 when the DPBANKSEL bit in the SELECT
register is set to 0x2.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C B B B B B B B B B B B B A A A A A A A A A A A
Reset 0x30070289 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1
ID R/W Field Value ID Value Description
A R TDESIGNER An 11-bit code JEDEC JEP106 continuation code and identity code. The ID
identifies the designer of the part.
NordicSemi 0x144 Nordic Semiconductor ASA.
B R TPARTNO Part number.
nRF53 7 nRF53 Series.
C R TREVISION Target revision.
8.1.1.2 DLPIDR
Address offset: 0x043
The DLPIDR register provides information about the serial wire debug protocol version.
Accessed by a read of DP register 0x4 when the DPBANKSEL bit in the SELECT register is set to 0x3.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B A A A A
Reset 0x00000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A R PROTVSN Protocol version.
SWDPv2 1 SW protocol version 2.
B R TINSTANCE Target instance.
Registers Description
UICR.APPROTECT and CTRL- These registers control the generation of the application core AHB-
AP.APPROTECT.DISABLE AP DBGEN signal, which controls all non-secure access through
the application core AHB-AP. This can be used to provide readback
protection of the flash contents. See also Application core access port
protection for non-secure debug access on page 817. For more
information about the DBGEN signal, see the Arm CoreSight SoC-400
Technical Reference Manual, Revision r3p2.
UICR.SECUREAPPROTECT These registers control the generation of the application core AHB-AP
and CTRL- SPIDEN signal, which blocks all secure access through the application
AP.SECUREAPPROTECT.DISABLE core AHB-AP. This means that only the non-secure code can be
debugged and accessed.
To enable access to the secure access port, APPROTECT must be
unprotected. See also Application core access port protection for
secure debug access on page 817.
For more information about the SPIDEN signal, see the Arm CoreSight
SoC-400 Technical Reference Manual, Revision r3p2.
UICR.ERASEPROTECT and CTRL- Disables the application core CTRL-AP.ERASEALL and NVMC ERASEALL
AP.ERASEPROTECT.DISABLE functionality. This can be used together with APPROTECT to provide
read-back and re-purposing protection.
Registers Description
UICR.APPROTECT and CTRL- These registers control the generation of the network core AHB-AP
AP.APPROTECT.DISABLE DBGEN signal, which blocks all access through the network core AHB-
AP. See also Network core access port protection for debug access on
page 817.
For the network core that does not feature TrustZone, only DBGEN
can be controlled and SPIDEN is not used.
For both cores, UICR and CTRL-AP are combined to enable or disable the access port protection. The
access port is normally protected, and is opened when the following conditions are met:
1. UICR.APPROTECT must be Unprotected.
2. CTRL-AP.APPROTECT.DISABLE on both CPU and debugger side must match. However, after reset the
debugger side register value is known and CPU can open the port by writing Unprotected to the
register.
The following tables lists the available APPROTECT combinations.
Table 88: Application core access port protection for non-secure debug access
Application core CPU and debugger side SPIDEN Secure debug access to
UICR.SECUREAPPROTECT CTRL-AP.SECUREAP- application core AHB-AP
PROTECT.DISABLE registers
are equal
Protected No 0 Not permitted
Protected Yes 0 Not permitted
Unprotected No 0 Not permitted
Unprotected Yes 1 Permitted
Table 89: Application core access port protection for secure debug access
Network core UICR.AP- CPU and debugger side CTRL- DBGEN Debug access to AHB-AP
PROTECT AP.APPROTECT registers are
equal
Protected No 0 Not permitted
Protected Yes 0 Not permitted
Unprotected No 0 Not permitted
Unprotected Yes 1 Permitted
Table 90: Network core access port protection for debug access
The access port is also open after the completion of the CTRL-AP.ERASEALL operation. After completing
the erase operation, CTRL-AP will temporarily unprotect AHB-AP. AHB-AP will be protected when one of
the following conditions are met:
• Power-on reset
• Brown-out reset
• Watchdog timer reset
• Pin reset
The following figure is an example on how nRF5340 with access port protection enabled can be erased,
programmed, and configured to allow debugging. Operations sent from debugger as well as registers
written by firmware will affect the access port state. The operation named Reset* is one of the conditions
listed above.
Debugger
W PRO tec
AP pr
rit TE te
Pr mw
C T A SE
e
og ar
Un
ER
Re
RL AL
fir
UI CT d
ra e
se
-A L
CR =
m
t*
P
o
Closed Open Closed Open Access port state
Write CTRL-
AP.APPROTECT.DISABLE
Firmware
The debugger can read the access port protection status in the core's AHB-AP, using the Arm AHB-AP
Control/Status Word register (CSW), defined in the Arm CoreSight SoC-400 Technical Reference Manual,
Revision r3p2. The DbgStatus field indicates that the AHB-AP can perform AHB transfers, while the
SPIStatus field indicates if secure AHB transfers are permitted. For a list of all debug access ports, see DAP
— Debug access port on page 814.
For more details on CTRLAP.ERASEALL, CTRLAP.SECUREAPPROTECT, and CTRLAP.APPROTECT, see CTRL-AP -
Control access port on page 826.
Note: Using SPU — System protection unit on page 651, the application core can be configured to
grant the network core access to its resources. This grant also applies to the network core AHB-AP.
continue to service the high-priority interrupts of an external controller or sensor without failure or loss of
state synchronization while stepping through code in a low-priority thread.
CTI
0xE00FF018
ETM
0xE00FF014
N/A
0xE00FF010
ITM
0xE00FF00C
BPU
Coresight IDs 0xE00FEFE0 0xE00FF008
TPIU DWT
0xE00FE004 0xE00FF004
CTI
0xE00FF018
N/A
0xE00FF014
N/A
0xE00FF010
N/A
0xE00FF00C
BPU
0xE00FF008
DWT
Coresight IDs 0xE00FEFE0 0xE00FF004
Out
Out
Cortex-M33 Cortex-M33
In
In
ETM
CTI CTI
Cross-trigger matrix
Both the application and network cores have a cross-trigger interface (CTI) peripheral that can trigger
events or be triggered by signals in the processor or debug blocks. The CTI can be configured to route
trigger in-signals to trigger out-signals within the CTI or the cross-trigger matrix. The cross-trigger matrix
has four channels in total that can be used to communicate trigger signals between cores.
You can stop the network core when the application core is stopped (due to a breakpoint or a stopped
debug session), by doing the following:
1. Configure the application core CTI to generate an event on channel 0 for CTITRIGIN[0] (processor
halted) using CTIINEN[0].
2. Configure the network core CTI to trigger CTITRIGOUT[0] (processor debug request) on channel 0 using
CTIOUTEN[0].
#define CTI_TRIGIN_CPUHALTED 0
#define CTI_TRIGOUT_DEBUGREQ 0
#define CTI_TRIGOUT_CPURESTART 1
...
// Enable global CTI routing
NRF_CTI_S->CTICONTROL = CTI_CTICONTROL_GLBEN_Enabled;
// Connect the CPU halted trigger of this domain to debug request of the other domain
NRF_CTI_S->CTIINEN[CTI_TRIGIN_CPUHALTED] = CTI_CTIINEN_TRIGINEN_0_Msk;
NRF_CTI_S->CTIOUTEN[CTI_TRIGOUT_DEBUGREQ] = CTI_CTIOUTEN_TRIGOUTEN_1_Msk;
NRF_CTI_S->CTIOUTEN[CTI_TRIGOUT_CPURESTART] = CTI_CTIOUTEN_TRIGOUTEN_2_Msk;
#define CTI_TRIGIN_CPUHALTED 0
#define CTI_TRIGOUT_DEBUGREQ 0
#define CTI_TRIGOUT_CPURESTART 1
...
// Enable global CTI routing
NRF_CTI_NS->CTICONTROL = CTI_CTICONTROL_GLBEN_Enabled;
// Connect the CPU halted trigger of this domain to debug request of the other domain
NRF_CTI_NS->CTIINEN[CTI_TRIGIN_CPUHALTED] = CTI_CTIINEN_TRIGINEN_1_Msk;
NRF_CTI_NS->CTIOUTEN[CTI_TRIGOUT_DEBUGREQ] = CTI_CTIOUTEN_TRIGOUTEN_0_Msk;
NRF_CTI_NS->CTIOUTEN[CTI_TRIGOUT_CPURESTART] = CTI_CTIOUTEN_TRIGOUTEN_2_Msk;
See the following tables for more information about trigger connections to and from the CTI.
Signal Description
CTITRIGIN[0] Processor halted
CTITRIGIN[1] DWT comparator output 0
CTITRIGIN[2] DWT comparator output 1
CTITRIGIN[3] DWT comparator output 2
CTITRIGIN[4] ETM event output 0
CTITRIGIN[5] ETM event output 1
Signal Description
CTITRIGOUT[0] Processor debug request
CTITRIGOUT[1] Processor restart
CTITRIGOUT[2] N/A
CTITRIGOUT[3] N/A
CTITRIGOUT[4] ETM event input 0
CTITRIGOUT[5] ETM event input 1
CTITRIGOUT[6] ETM event input 2
CTITRIGOUT[7] ETM event input 3
Signal Description
CTITRIGIN[0] Processor halted
CTITRIGIN[1] DWT comparator output 0
CTITRIGIN[2] DWT comparator output 1
CTITRIGIN[3] DWT comparator output 2
Signal Description
CTITRIGOUT[0] Processor debug request
CTITRIGOUT[1] Processor restart
8.8 Trace
The device supports ETM and ITM trace.
Trace data from the ETM and the ITM is sent to an external debugger via a 4-bit wide parallel trace port
(TPIU) on pins TRACEDATA0 through TRACEDATA3 and TRACECLK.
In addition to parallel trace, the TPIU supports serial trace via the serial wire output (SWO) trace protocol.
Parallel and serial trace cannot be used at the same time. ETM trace is supported in Parallel trace mode
only, while both parallel and Serial trace modes support the ITM trace. For details on how to use the trace
capabilities, see the debug documentation of your IDE.
TPIU's dedicated trace pins are multiplexed with GPIOs. SWO and TRACEDATA0 use the same GPIO. Trace
is limited to dedicated pins. See Pin assignments on page 851 for more information.
Trace speed is configured in the register TRACEPORTSPEED (Retained) on page 850. The speed of the
trace pins depends on the drive setting of the GPIOs that the trace pins are multiplexed with. The drive
setting is configured using the DRIVE field of the GPIO register PIN_CNF[n] (n=0..31) (Retained) on page
302.
Only drive settings S0S1, H0H1, and E0E1 should be used for debugging. S0S1 is the default drive at reset.
If parallel or serial trace port signals are not fast enough in the debugging conditions, all GPIOs in use for
tracing should be set to high drive (H0H1), or extra high drive (E0E1) for the fastest trace port speeds.
Ensure that the drive setting of the GPIOs are not overwritten by software during the debugging session.
In addition to DRIVE, the GPIO pin must be assigned to trace and debug (TND), using the MCUSEL field
of the the PIN_CNF register. When pins are assigned to TND, these GPIOs are output-only, and other
functionality of the pins is disabled.
NRF_TAD_S->ENABLE = TAD_ENABLE_ENABLE_Msk;
NRF_TAD_S->CLOCKSTART = TAD_CLOCKSTART_START_Msk;
NRF_TAD_S->PSEL.TRACECLK = TAD_PSEL_TRACECLK_PIN_Traceclk;
NRF_TAD_S->PSEL.TRACEDATA0 = TAD_PSEL_TRACEDATA0_PIN_Tracedata0;
NRF_TAD_S->PSEL.TRACEDATA1 = TAD_PSEL_TRACEDATA1_PIN_Tracedata1;
NRF_TAD_S->PSEL.TRACEDATA2 = TAD_PSEL_TRACEDATA2_PIN_Tracedata2;
NRF_TAD_S->PSEL.TRACEDATA3 = TAD_PSEL_TRACEDATA3_PIN_Tracedata3;
4. Configure the GPIO pins so that the trace and debug system can control them. Set high drive strength
to ensure sufficiently fast operation. Do this for all trace pins that should be used.
// Clear the bitfields before configuring to make sure the correct value is written
NRF_P0_S->PIN_CNF[TAD_PSEL_TRACECLK_PIN_Traceclk]
&= ~(GPIO_PIN_CNF_MCUSEL_Msk | GPIO_PIN_CNF_DRIVE_Msk);
NRF_P0_S->PIN_CNF[TAD_PSEL_TRACECLK_PIN_Traceclk]
|= (GPIO_PIN_CNF_MCUSEL_TND << GPIO_PIN_CNF_MCUSEL_Pos)
| (GPIO_PIN_CNF_DRIVE_E0E1 << GPIO_PIN_CNF_DRIVE_Pos);
NRF_TAD_S->TRACEPORTSPEED = TAD_TRACEPORTSPEED_TRACEPORTSPEED_64MHz;
Note: Although possible, it is not recommended to run the trace port at less than half the CPU
frequency, as it risks dropping some trace packets.
6. Configure Arm CoreSight components (see Arm CoreSight documentation for more information).
CTRL-AP AHB-AP
APPROTECT
SECUREAPPROTECT
ERASEALL MAILBOX
APPROTECT
SECUREAPPROTECT
NVMC
CPU
UICR
APPROTECT
SECUREAPPROTECT
CORE
Access port protection (APPROTECT) blocks the debugger access to the AHB-AP, and prevents read and
write access to all CPU registers and memory-mapped addresses. To enable port protection access for
both secure and non-secure modes, use the registers UICR.SECUREAPPROTECT and UICR.APPROTECT , as
well as CTRLAP.APPROTECT.DISABLE and CTRLAP.SECUREAPPROTECT.DISABLE. The debugger can use the
register to read the status of secure and non-secure access port protection.
Erase protection (ERASEPROTECT) protects the flash and UICR parts of the non-volatile memory from
being erased. Erase protection can be temporarily disabled from the control access port.
CTRL-AP has the following features:
• Soft reset
• Erase all
• Mailbox interface
• Debug of protected devices
Note: Setting the UICR.ERASEPROTECT register only affects the erase all operation and not the
debugger access.
The register ERASEPROTECT.STATUS on page 831 holds the status for erase protection.
DAP-SIDE CPU-SIDE
RXDATA TXDATA
RXSTATUS TXSTATUS
DAP CPU
TXDATA RXDATA
TXSTATUS RXSTATUS
The write-once register APPROTECT.LOCK on page 836 should be set to Locked as early as possible in
the start-up sequence. Once written, it will not be possible to remove the non-secure mode access port
protection until next reset.
Note: If secure mode debug is enabled, an ERASEALL sequence can also be initiated by writing the
same 32-bit KEY value into the respective ERASEPROTECT.DISABLE registers
Register overview
8.10.6.1.1 RESET
Address offset: 0x000
System reset request.
This register is automatically deactivated during an ERASEALL operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW RESET System reset request and status
NoReset 0 Write to release reset
8.10.6.1.2 ERASEALL
Address offset: 0x004
Perform a secure erase of the device, where flash, SRAM, and UICR will be erased in sequence. The device
will be returned to factory default settings upon next reset.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W ERASEALL Return device to factory default settings
NoOperation 0 No operation
Erase 1 Erase flash, SRAM, and UICR in sequence
8.10.6.1.3 ERASEALLSTATUS
Address offset: 0x008
This is the status register for the ERASEALL operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R ERASEALLSTATUS Status bit for the ERASEALL operation
Ready 0 ERASEALL is ready
Busy 1 ERASEALL is busy (on-going)
8.10.6.1.4 APPROTECT.DISABLE
Address offset: 0x010
This register disables APPROTECT and enables debug access to non-secure mode.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x50FA50FA 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0
ID R/W Field Value ID Value Description
A RW KEY Disable APPROTECT and enable debug access to non-secure mode until the
next pin reset if KEY fields match.
8.10.6.1.5 SECUREAPPROTECT.DISABLE
Address offset: 0x014
This register disables SECUREAPPROTECT and enables debug access to secure mode.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x50FA50FA 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0
ID R/W Field Value ID Value Description
A RW KEY Disable SECUREAPPROTECT and enable debug of secure mode until the next
pin reset if KEY fields match.
8.10.6.1.6 ERASEPROTECT.STATUS
Address offset: 0x018
This is the status register for the UICR ERASEPROTECT configuration.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R PALL Status bit for erase protection
8.10.6.1.7 ERASEPROTECT.DISABLE
Address offset: 0x01C
This register disables ERASEPROTECT and performs ERASEALL.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 KEY The ERASEALL sequence will be initiated if value of the KEY fields are non-
zero and the KEY fields match on both the CPU and debugger sides.
8.10.6.1.8 MAILBOX.TXDATA
Address offset: 0x020
Data sent from the debugger to the CPU.
Writing to this register will automatically set a DataPending value in the TXSTATUS register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW Data Data sent from debugger
8.10.6.1.9 MAILBOX.TXSTATUS
Address offset: 0x024
This register shows a status that indicates if data sent from the debugger to the CPU has been read.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R Status Status of register DATA
NoDataPending 0 No data pending in register TXDATA
DataPending 1 Data pending in register TXDATA
8.10.6.1.10 MAILBOX.RXDATA
Address offset: 0x028
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R Data Data sent from CPU
8.10.6.1.11 MAILBOX.RXSTATUS
Address offset: 0x02C
This register shows a status that indicates if data sent from the CPU to the debugger has been read.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R Status Status of register DATA
NoDataPending 0 No data pending in register RXDATA
DataPending 1 Data pending in register RXDATA
8.10.6.1.12 IDR
Address offset: 0x0FC
CTRL-AP Identification Register, IDR.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID E E E E D D D D C C C C C C C B B B B A A A A A A A A
Reset 0x12880000 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R APID AP Identification
B R CLASS Access Port (AP) class
NotDefined 0x0 No defined class
MEMAP 0x8 Memory Access Port
C R JEP106ID JEDEC JEP106 identity code
D R JEP106CONT JEDEC JEP106 continuation code
E R REVISION Revision
8.10.7 Registers
Instances
CTRLAP : S 0x50006000
APPLICATION US S NSA No Control access port CPU side
CTRLAP : NS 0x40006000
CTRLAP NETWORK 0x41006000 HF NS NA No Control access port CPU side
Configuration
Register overview
8.10.7.1 MAILBOX.RXDATA
Address offset: 0x400
Data sent from the debugger to the CPU.
Reading from this register will automatically set a NoDataPending value in the RXSTATUS register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RXDATA Data received from debugger
8.10.7.2 MAILBOX.RXSTATUS
Address offset: 0x404
This register shows a status that indicates if data sent from the debugger to the CPU has been read.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R RXSTATUS Status of data in register RXDATA
NoDataPending 0 No data pending in register RXDATA
DataPending 1 Data pending in register RXDATA
8.10.7.3 MAILBOX.TXDATA
Address offset: 0x480
Data sent from the CPU to the debugger.
Writing to this register will automatically set a DataPending value in the TXSTATUS register.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TXDATA Data sent to debugger
8.10.7.4 MAILBOX.TXSTATUS
Address offset: 0x484
This register shows a status that indicates if the data sent from the CPU to the debugger has been read.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R TXSTATUS Status of data in register TXDATA
NoDataPending 0 No data pending in register TXDATA
DataPending 1 Data pending in register TXDATA
8.10.7.5 ERASEPROTECT.LOCK
Address offset: 0x500
This register locks the ERASEPROTECT.DISABLE register from being written until next reset.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 LOCK Lock ERASEPROTECT.DISABLE register from being written until next reset
Unlocked 0 Register ERASEPROTECT.DISABLE is writeable
Locked 1 Register ERASEPROTECT.DISABLE is read-only
8.10.7.6 ERASEPROTECT.DISABLE
Address offset: 0x504
This register disables the ERASEPROTECT register and performs an ERASEALL operation.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 KEY The ERASEALL sequence is initiated if the value of the KEY fields are non-
zero and the KEY fields match on both the CPU and debugger sides.
8.10.7.7 APPROTECT.LOCK
Address offset: 0x540
This register locks the APPROTECT.DISABLE register from being written to until next reset.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 LOCK Lock the APPROTECT.DISABLE register from being written to until next reset
Unlocked 0 Register APPROTECT.DISABLE is writeable
Locked 1 Register APPROTECT.DISABLE is read-only
8.10.7.8 APPROTECT.DISABLE
Address offset: 0x544
This register disables the APPROTECT register and enables debug access to non-secure mode.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW KEY If the value of the KEY field is non-zero, and the KEY fields match on both
the CPU and debugger sides, disable APPROTECT and enable debug access
to non-secure mode until the next pin reset, brown-out reset, power-on
reset, or watchog timer reset.
After reset the debugger side register has a fixed KEY value.
8.10.7.9 SECUREAPPROTECT.LOCK
Address offset: 0x548
This register locks the SECUREAPPROTECT.DISABLE register from being written until next reset.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW1 LOCK Lock register SECUREAPPROTECT.DISABLE from being written until next reset
Unlocked 0 Register SECUREAPPROTECT.DISABLE is writeable
Locked 1 Register SECUREAPPROTECT.DISABLE is read-only
8.10.7.10 SECUREAPPROTECT.DISABLE
Address offset: 0x54C
This register disables the SECUREAPPROTECT register and enables debug access to secure mode.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW KEY If the value of the KEY field is non-zero, and the KEY fields match on both
the CPU and debugger sides, disable SECUREAPPROTECT and enable debug
access to secure mode until the next pin reset, brown-out reset, power-on
reset, or watchog timer reset.
After reset the debugger side register has a fixed KEY value.
8.10.7.11 STATUS
Address offset: 0x600
Status bits for CTRL-AP peripheral.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R UICRAPPROTECT Status bit for UICR part of access port protection at last reset.
The reset value is automatically read from the APPROTECT register in UICR.
Enabled 0 APPROTECT was enabled in UICR
Disabled 1 APPROTECT wasdisabled in UICR
B R UICRSECUREAPPROTECT Status bit for UICR part of secure access port protection at last reset.
8.11.1 Registers
Instances
Configuration
Register overview
8.11.1.1 CTICONTROL
Address offset: 0x000
CTI Control register
The CTICONTROL register enables the CTI.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW GLBEN Enables or disables the CTI.
Disabled 0 All cross-triggering mapping logic functionality is disabled.
Enabled 1 Cross-triggering mapping logic functionality is enabled.
8.11.1.2 CTIINTACK
Address offset: 0x010
CTI Interrupt Acknowledge register
The CTIINTACK register is a software acknowledge for a trigger output. This register is used when ctitrigout
is used as a sticky output. That is, no hardware acknowledge is available and a software acknowledge is
required.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H W INTACK[i] (i=0..7) Acknowledges the ctitrigout i output.
Acknowledge 1 Clears the ctitrigout.
8.11.1.3 CTIAPPSET
Address offset: 0x014
CTI Application Trigger Set register
Writing to the CTIAPPSET register causes a channel event to be raised, corresponding to the bit written to.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D RW APPSET[i] (i=0..3) Application trigger event for channel i.
Inactive 0 Application trigger i is inactive.
Active 1 Application trigger i is active.
Activate 1 Generate channel event for channel i.
8.11.1.4 CTIAPPCLEAR
Address offset: 0x018
CTI Application Trigger Clear register
Writing to a bit in the CTIAPPCLEAR register clears the corresponding channel event.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D W APPCLEAR[i] (i=0..3) Sets the corresponding bits in the CTIAPPSET to 0. There is one bit of the
register for each channel.
Clear 1 Clears the event for channel i.
8.11.1.5 CTIAPPPULSE
Address offset: 0x01C
CTI Application Pulse register
A write to this register causes a channel event pulse of one cticlk period to be generated. This corresponds
to the bit that was written to. The pulse external to the CTI can be extended to multi-cycle by the
handshaking interface circuits. This register clears itself immediately, so it can be repeatedly written to
without software having to clear it.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D W APPULSE[i] (i=0..3) Setting a bit HIGH generates a channel event pulse for the selected channel.
There is one bit of the register for each channel.
Generate 1 Generates an event pulse on channel i.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D RW TRIGINEN[i] (i=0..3) Enables a cross trigger event to channel i when a ctitrigin input is activated.
Disabled 0 Input trigger n events are ignored by channel i.
Enabled 1 When an event is received on input trigger n (ctitrigin[n]), generate an event
on channel i.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D RW TRIGOUTEN[i] (i=0..3) Enables a cross trigger event to ctitrigout when channel i is activated.
Disabled 0 Channel i is ignored by output trigger n.
Enabled 1 When an event occurs on channel i, generate an event on output event n
(ctitrigout[n]).
8.11.1.8 CTITRIGINSTATUS
Address offset: 0x130
CTI Trigger In Status register
The CTITRIGINSTATUS register provides the status of the ctitrigin inputs.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H R TRIGINSTATUS[i] (i=0..7) Shows the status of ctitrigini input.
Active 1 Ctitrigin i is active.
Inactive 0 Ctitrigin i is inactive.
8.11.1.9 CTITRIGOUTSTATUS
Address offset: 0x134
CTI Trigger Out Status register
The CTITRIGOUTSTATUS register provides the status of the ctitrigout outputs.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID H G F E D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-H R TRIGOUTSTATUS[i] (i=0..7) Shows the status of ctitrigouti output.
Active 1 Ctitrigout i is active.
Inactive 0 Ctitrigout i is inactive.
8.11.1.10 CTICHINSTATUS
Address offset: 0x138
CTI Channel In Status register
The CTICHINSTATUS register provides the status of the ctichin inputs.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A-D R CTICHINSTATUS[i] (i=0..3) Shows the status of the ctitrigin i input.
Active 1 Ctichin i is active.
Inactive 0 Ctichin i is inactive.
8.11.1.11 CTIGATE
Address offset: 0x140
Enable CTI Channel Gate register
The CTIGATE register prevents the channels from propagating through the CTM to other CTIs. This enables
local cross-triggering (e.g. causing an interrupt when the ETM trigger occurs). It can be used effectively
with CTIAPPSET, CTIAPPCLEAR, and CTIAPPPULSE for asserting trigger outputs by asserting channels,
without affecting the rest of the system. On reset, this register is 0xF and channel propagation is enabled.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID D C B A
Reset 0x0000000F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
ID R/W Field Value ID Value Description
A-D RW CTIGATEEN[i] (i=0..3) Enable ctichouti.
Enabled 1 Enable ctichout channel i propagation.
Disabled 0 Disable ctichout channel i propagation.
8.11.1.12 DEVARCH
Address offset: 0xFBC
Device Architecture register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x47701A14 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0
ID R/W Field Value ID Value Description
A R Architecture Contains the CTI device architecture.
8.11.1.13 DEVID
Address offset: 0xFC8
Device Configuration register
The DEVID register indicates the capabilities of the component.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C B B B B B B B B A A A A A
Reset 0x00040800 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R EXTMUXNUM Indicates the number of multiplexers available on Trigger Inputs and Trigger
Outputs that are using asicctl. The default value of 0b00000 indicates that
no multiplexing is present.
B R NUMTRIG Number of ECT triggers available.
C R NUMCH Number of ECT channels available.
8.11.1.14 DEVTYPE
Address offset: 0xFCC
Device Type Identifier register
The DEVTYPE register provides a debugger with information about the component when the Part Number
field is not recognized. The debugger can then report this information.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B A A A A
Reset 0x00000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
ID R/W Field Value ID Value Description
A R MAJOR Major classification of the type of the debug component as specified in the
Arm Architecture Specification for this debug and trace component.
Controller 4 Indicates that this component allows a debugger to control other
components in an Arm CoreSight SoC-400 system.
B R SUB Sub-classification of the type of the debug component as specified in the
Arm Architecture Specification within the major classification as specified in
the MAJOR field.
Crosstrigger 1 Indicates that this component is a sub-triggering component.
8.11.1.15 PIDR4
Address offset: 0xFD0
Peripheral ID4 Register
The PIDR4 register is part of the set of peripheral identification registers. It contains part of the designer
identity and the memory size.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B A A A A
Reset 0x00000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
ID R/W Field Value ID Value Description
A R DES_2 Together, PIDR1.DES_0, PIDR2.DES_1, and PIDR4.DES_2 identify the
designer of the component.
Code 4 JEDEC continuation code.
B R SIZE Always 0b0000. Indicates that the device only occupies 4KB of memory.
8.11.1.16 PIDR5
Address offset: 0xFD4
Peripheral ID5 register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
8.11.1.17 PIDR6
Address offset: 0xFD8
Peripheral ID6 register
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
8.11.1.18 PIDR7
Address offset: 0xFDC
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
8.11.1.19 PIDR0
Address offset: 0xFE0
Peripheral ID0 Register
The PIDR0 register is part of the set of peripheral identification registers. It contains part of the designer-
specific part number.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1
ID R/W Field Value ID Value Description
A R PART_0 Bits[7:0] of the 12-bit part number of the component. The designer of the
component assigns this part number.
PartnumberL 0x21 Indicates bits[7:0] of the part number of the component.
8.11.1.20 PIDR1
Address offset: 0xFE4
Peripheral ID1 Register
The PIDR1 register is part of the set of peripheral identification registers. It contains part of the designer-
specific part number and part of the designer identity.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B A A A A
Reset 0x000000BD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1
ID R/W Field Value ID Value Description
A R PART_1 Bits[11:8] of the 12-bit part number of the component. The designer of the
component assigns this part number.
PartnumberH 13 Indicates bits[11:8] of the part number of the component.
B R DES_0 Together, PIDR1.DES_0, PIDR2.DES_1, and PIDR4.DES_2 identify the
designer of the component.
Arm 11 Arm. Bits[3:0] of the JEDEC JEP106 Identity Code
8.11.1.21 PIDR2
Address offset: 0xFE8
Peripheral ID2 Register
The PIDR2 register is part of the set of peripheral identification registers. It contains part of the designer
identity and the product revision.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID C C C C B A A A
Reset 0x0000000B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1
ID R/W Field Value ID Value Description
A R DES_1 Together, PIDR1.DES_0, PIDR2.DES_1, and PIDR4.DES_2 identify the
designer of the component.
Arm 3 Arm. Bits[6:4] of the JEDEC JEP106 Identity Code
B R JEDEC Always 1. Indicates that the JEDEC-assigned designer ID is used.
C R REVISION Peripheral revision
Rev0p0 0 This device is at r0p0
8.11.1.22 PIDR3
Address offset: 0xFEC
Peripheral ID3 Register
The PIDR3 register is part of the set of peripheral identification registers. It contains the REVAND and
CMOD fields.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B A A A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A R CMOD Customer Modified. Indicates whether the customer has modified the
behavior of the component. In most cases, this field is 0b0000. Customers
change this value when they make authorized modifications to this
component.
Unmodified 0 Indicates that the customer has not modified this component.
B R REVAND Indicates minor errata fixes specific to the revision of the component being
used, for example metal fixes after implementation. In most cases, this field
is 0b0000. Arm recommends that the component designers ensure that a
metal fix can change this field if required, for example, by driving it from
registers that reset to 0b0000.
NoErrata 0 Indicates that there are no errata fixes to this component.
8.11.1.23 CIDR0
Address offset: 0xFF0
Component ID0 Register
The CIDR0 register is a component identification register that indicates the presence of identification
registers.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x0000000D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
ID R/W Field Value ID Value Description
A R PRMBL_0 Preamble[0]. Contains bits[7:0] of the component identification code.
Value 0x0D Bits[7:0] of the identification code.
8.11.1.24 CIDR1
Address offset: 0xFF4
Component ID1 Register
The CIDR1 register is a component identification register that indicates the presence of identification
registers. This register also indicates the component class.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B B B B A A A A
Reset 0x00000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0
ID R/W Field Value ID Value Description
A R PRMBL_1 Preamble[1]. Contains bits[11:8] of the component identification code.
Value 0 Bits[11:8] of the identification code.
B R CLASS Class of the component, for example, whether the component is a ROM
table or a generic CoreSight component. Contains bits[15:12] of the
component identification code
Coresight 9 Indicates that the component is a CoreSight component.
8.11.1.25 CIDR2
Address offset: 0xFF8
Component ID2 Register
The CIDR2 register is a component identification register that indicates the presence of identification
registers.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
ID R/W Field Value ID Value Description
A R PRMBL_2 Preamble[2]. Contains bits[23:16] of the component identification code.
Value 0x05 Bits[23:16] of the identification code.
8.11.1.26 CIDR3
Address offset: 0xFFC
Component ID3 Register
The CIDR3 register is a component identification register that indicates the presence of identification
registers.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x000000B1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1
ID R/W Field Value ID Value Description
A R PRMBL_3 Preamble[3]. Contains bits[31:24] of the component identification code.
Value 0xB1 Bits[31:24] of the identification code.
Note: Although there are PSEL registers for the trace port, each function can only be mapped to
a single pin due to pin speed requirements. Setting the PIN field to anything else will not have any
effect. See Pin assignment chapter for more information
8.12.1 Registers
Instances
Register overview
8.12.1.1 CLOCKSTART
Address offset: 0x004
Start all trace and debug clocks.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W START
Start 1 Start all trace and debug clocks.
8.12.1.2 CLOCKSTOP
Address offset: 0x008
Stop all trace and debug clocks.
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A W STOP
Stop 1 Stop all trace and debug clocks.
8.12.1.3 ENABLE
Address offset: 0x500
Enable debug domain and aquire selected GPIOs
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW ENABLE
DISABLED 0 Disable debug domain and release selected GPIOs
ENABLED 1 Enable debug domain and aquire selected GPIOs
8.12.1.4 PSEL.TRACECLK
Address offset: 0x504
Pin configuration for TRACECLK
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN Pin number
Traceclk 12 TRACECLK pin
B RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
8.12.1.5 PSEL.TRACEDATA0
Address offset: 0x508
Pin configuration for TRACEDATA[0]
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN Pin number
Tracedata0 11 TRACEDATA0 pin
B RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
8.12.1.6 PSEL.TRACEDATA1
Address offset: 0x50C
Pin configuration for TRACEDATA[1]
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN Pin number
Tracedata1 10 TRACEDATA1 pin
B RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
8.12.1.7 PSEL.TRACEDATA2
Address offset: 0x510
Pin configuration for TRACEDATA[2]
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN Pin number
Tracedata2 9 TRACEDATA2 pin
B RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
8.12.1.8 PSEL.TRACEDATA3
Address offset: 0x514
Pin configuration for TRACEDATA[3]
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID B A A A A A
Reset 0xFFFFFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ID R/W Field Value ID Value Description
A RW PIN Pin number
Tracedata3 8 TRACEDATA3 pin
B RW CONNECT Connection
Disconnected 1 Disconnect
Connected 0 Connect
Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID A A
Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A RW TRACEPORTSPEED Speed of Trace Port clock. Note that the TRACECLK pin output will be divided
again by two from the Trace Port clock.
64MHz 0 Trace Port clock is:
64MHz
32MHz 1 Trace Port clock is:
32MHz
16MHz 2 Trace Port clock is:
16MHz
8MHz 3 Trace Port clock is:
8MHz
Note: The extra high drive E0E1 drive configuration has limited availability. It is only available
for the dedicated TRACE pins on P0.08 through P0.12. For the dedicated, high-speed TWIM pins
on P1.02 and P1.03, the E0E1 drive configuration activates a powerful 20 mA open-drain driver
specifically designed for high-speed TWI.
For all high-speed signals, the printed circuit board (PCB) layout must ensure that connections are
made using short PCB traces. Refer to the manufacturer's PCB design recommendations for additional
information.
Figure 258: aQFN pin assignments, top view. Corner and die pad is not illustrated.
A A1 A2 A3 b b1 D, E e e1 e2 f J K
Min. 0.02 0.15 5.3 4.9
Nom. 0.05 0.675 0.13 0.20 0.4 7.00 0.4 2.8 0.447 0.2 5.4 5.0
Max. 0.85 0.08 0.25 5.5 5.1
A A1 A3 b D E D2 E2 e K L
Min. 0.361 0.095 0.266 0.12
Nom. 0.404 0.294 4.390 3.994 3.85 3.5 0.35 1.683 1.9907
Max. 0.447 0.125 0.322 0.18
VBUS
R1 A5
VBUS
2R2 B6
DECUSB
A23
DECN
A13
DECA
C17 C18 C6 C7 nRF5340-QKAA
4.7µF 4.7µF 100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 N1 P1.00 M2
P0.00/XL1 P1.00
P0.01/XL2 R1 P1.01 P2
P0.01/XL2 P1.01
P0.02/NFC1 W1 P1.02/I2C AE1
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 AA1 P1.03/I2C AF2
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 V2 P1.04 AL19
P0.04/AIN0 P1.04
P0.05/AIN1 Y2 P1.05 AK22
P0.05/AIN1 P1.05
P0.06/AIN2 AB2 P1.06 AL21
P0.06/AIN2 P1.06
P0.07/AIN3 AD2 P1.07 AK24
P0.07/AIN3 P1.07
P0.08/TRACEDATA3 AH2 P1.08 AL23
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 AJ1 P1.09 AK26
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 AK2 P1.10 R31
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 AK4 P1.11 B20
P0.11/TRACEDATA[0] P1.11
P0.12/TRACECLK AK6 P1.12 B18
P0.12/TRACECLK P1.12
P0.13/QSPI0 AL5 P1.13 A17
P0.13/QSPI[0] P1.13
P0.14/QSPI1 AK8 P1.14 B16
P0.14/QSPI[1] P1.14
P0.15/QSPI2 AK10 P1.15 B14
P0.15/QSPI[2] P1.15
P0.16/QSPI3 AL9
P0.16/QSPI[3]
P0.17/QSPI_CLK AK12 nRF5340-QKAA
P0.17/QSPI_CLK
P0.18/QSPI_CS AK14
P0.18/QSPI_CS
P0.19 AL13
P0.19
P0.20 AK16
P0.20
P0.21 AL15
P0.21
P0.22 AK18
P0.22
P0.23 AK20 U1D
P0.23
P0.24 AL27 A25 D2
P0.24 N.C. N.C.
P0.25/AIN4 AK28 B12 F2
P0.25/AIN4 N.C. N.C.
P0.26/AIN5 AL29 B26 T2
P0.26/AIN5 N.C. N.C.
P0.27/AIN6 AK30 G1 AG31
P0.27/AIN6 N.C. N.C.
P0.28/AIN7 AE31 H2 A1
P0.28/AIN7 N.C. N.C.
P0.29 U31 J31 A31
P0.29 N.C. N.C.
P0.30 B24 104 AL1
P0.30 VSS_PAD N.C.
P0.31 B22 AL31
P0.31 N.C.
nRF5340-QKAA nRF5340-QKAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
VBUS
R1 A5
VBUS
2R2 B6
DECUSB
A23
DECN
A13
DECA
C17 C18 C6 C7 nRF5340-QKAA
4.7µF 4.7µF 100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 N1 P1.00 M2
P0.00/XL1 P1.00
P0.01/XL2 R1 P1.01 P2
P0.01/XL2 P1.01
P0.02/NFC1 W1 P1.02/I2C AE1
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 AA1 P1.03/I2C AF2
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 V2 P1.04 AL19
P0.04/AIN0 P1.04
P0.05/AIN1 Y2 P1.05 AK22
P0.05/AIN1 P1.05
P0.06/AIN2 AB2 P1.06 AL21
P0.06/AIN2 P1.06
P0.07/AIN3 AD2 P1.07 AK24
P0.07/AIN3 P1.07
CT4 CT3 P0.08/TRACEDATA3 AH2 P1.08 AL23
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 AJ1 P1.09 AK26
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 AK2 P1.10 R31
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 AK4 P1.11 B20
P0.11/TRACEDATA[0] P1.11
CT2 CT1 P0.12/TRACECLK AK6 P1.12 B18
P0.12/TRACECLK P1.12
P0.13/QSPI0 AL5 P1.13 A17
P0.13/QSPI[0] P1.13
P0.14/QSPI1 AK8 P1.14 B16
P0.14/QSPI[1] P1.14
P0.15/QSPI2 AK10 P1.15 B14
P0.15/QSPI[2] P1.15
Note: P0.16/QSPI3 AL9
P0.16/QSPI[3]
The value of CT1, CT2, CT3 and CT4 must be tuned P0.17/QSPI_CLK AK12 nRF5340-QKAA
P0.17/QSPI_CLK
to match the selected NFC antenna. P0.18/QSPI_CS AK14
P0.18/QSPI_CS
P0.19 AL13
P0.19
P0.20 AK16
P0.20
P0.21 AL15
P0.21
P0.22 AK18
P0.22
P0.23 AK20 U1D
P0.23
P0.24 AL27 A25 D2
P0.24 N.C. N.C.
P0.25/AIN4 AK28 B12 F2
P0.25/AIN4 N.C. N.C.
P0.26/AIN5 AL29 B26 T2
P0.26/AIN5 N.C. N.C.
P0.27/AIN6 AK30 G1 AG31
P0.27/AIN6 N.C. N.C.
P0.28/AIN7 AE31 H2 A1
P0.28/AIN7 N.C. N.C.
P0.29 U31 J31 A31
P0.29 N.C. N.C.
P0.30 B24 104 AL1
P0.30 VSS_PAD N.C.
P0.31 B22 AL31
P0.31 N.C.
nRF5340-QKAA nRF5340-QKAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
A5
VBUS
B6
DECUSB
A23
DECN
A13
DECA
C6 C7 nRF5340-QKAA
100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 N1 P1.00 M2
P0.00/XL1 P1.00
P0.01/XL2 R1 P1.01 P2
P0.01/XL2 P1.01
P0.02/NFC1 W1 P1.02/I2C AE1
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 AA1 P1.03/I2C AF2
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 V2 P1.04 AL19
P0.04/AIN0 P1.04
P0.05/AIN1 Y2 P1.05 AK22
P0.05/AIN1 P1.05
P0.06/AIN2 AB2 P1.06 AL21
P0.06/AIN2 P1.06
P0.07/AIN3 AD2 P1.07 AK24
P0.07/AIN3 P1.07
P0.08/TRACEDATA3 AH2 P1.08 AL23
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 AJ1 P1.09 AK26
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 AK2 P1.10 R31
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 AK4 P1.11 B20
P0.11/TRACEDATA[0] P1.11
P0.12/TRACECLK AK6 P1.12 B18
P0.12/TRACECLK P1.12
P0.13/QSPI0 AL5 P1.13 A17
P0.13/QSPI[0] P1.13
P0.14/QSPI1 AK8 P1.14 B16
P0.14/QSPI[1] P1.14
P0.15/QSPI2 AK10 P1.15 B14
P0.15/QSPI[2] P1.15
P0.16/QSPI3 AL9
P0.16/QSPI[3]
P0.17/QSPI_CLK AK12 nRF5340-QKAA
P0.17/QSPI_CLK
P0.18/QSPI_CS AK14
P0.18/QSPI_CS
P0.19 AL13
P0.19
P0.20 AK16
P0.20
P0.21 AL15
P0.21
P0.22 AK18
P0.22
P0.23 AK20 U1D
P0.23
P0.24 AL27 A25 D2
P0.24 N.C. N.C.
P0.25/AIN4 AK28 B12 F2
P0.25/AIN4 N.C. N.C.
P0.26/AIN5 AL29 B26 T2
P0.26/AIN5 N.C. N.C.
P0.27/AIN6 AK30 G1 AG31
P0.27/AIN6 N.C. N.C.
P0.28/AIN7 AE31 H2 A1
P0.28/AIN7 N.C. N.C.
P0.29 U31 J31 A31
P0.29 N.C. N.C.
P0.30 B24 104 AL1
P0.30 VSS_PAD N.C.
P0.31 B22 AL31
P0.31 N.C.
nRF5340-QKAA nRF5340-QKAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
VBUS
R1 A5
VBUS
2R2 B6
DECUSB
A23
DECN
A13
DECA
C17 C18 C6 C7 nRF5340-QKAA
4.7µF 4.7µF 100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 N1 P1.00 M2
P0.00/XL1 P1.00
P0.01/XL2 R1 P1.01 P2
P0.01/XL2 P1.01
P0.02/NFC1 W1 P1.02/I2C AE1
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 AA1 P1.03/I2C AF2
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 V2 P1.04 AL19
P0.04/AIN0 P1.04
P0.05/AIN1 Y2 P1.05 AK22
P0.05/AIN1 P1.05
P0.06/AIN2 AB2 P1.06 AL21
P0.06/AIN2 P1.06
P0.07/AIN3 AD2 P1.07 AK24
P0.07/AIN3 P1.07
P0.08/TRACEDATA3 AH2 P1.08 AL23
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 AJ1 P1.09 AK26
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 AK2 P1.10 R31
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 AK4 P1.11 B20
P0.11/TRACEDATA[0] P1.11
P0.12/TRACECLK AK6 P1.12 B18
P0.12/TRACECLK P1.12
P0.13/QSPI0 AL5 P1.13 A17
P0.13/QSPI[0] P1.13
P0.14/QSPI1 AK8 P1.14 B16
P0.14/QSPI[1] P1.14
P0.15/QSPI2 AK10 P1.15 B14
P0.15/QSPI[2] P1.15
P0.16/QSPI3 AL9
P0.16/QSPI[3]
P0.17/QSPI_CLK AK12 nRF5340-QKAA
P0.17/QSPI_CLK
P0.18/QSPI_CS AK14
P0.18/QSPI_CS
P0.19 AL13
P0.19
P0.20 AK16
P0.20
P0.21 AL15
P0.21
P0.22 AK18
P0.22
P0.23 AK20 U1D
P0.23
P0.24 AL27 A25 D2
P0.24 N.C. N.C.
P0.25/AIN4 AK28 B12 F2
P0.25/AIN4 N.C. N.C.
P0.26/AIN5 AL29 B26 T2
P0.26/AIN5 N.C. N.C.
P0.27/AIN6 AK30 G1 AG31
P0.27/AIN6 N.C. N.C.
P0.28/AIN7 AE31 H2 A1
P0.28/AIN7 N.C. N.C.
P0.29 U31 J31 A31
P0.29 N.C. N.C.
P0.30 B24 104 AL1
P0.30 VSS_PAD N.C.
P0.31 B22 AL31
P0.31 N.C.
nRF5340-QKAA nRF5340-QKAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
VBUS
R1 B11
VBUS
2R2 C11
DECUSB
B5
DECN
B8
DECA
C15 C16 C6 C7 nRF5340-CLAA
4.7µF 4.7µF 100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 F11 P1.00 D10
P0.00/XL1 P1.00
P0.01/XL2 F12 P1.01 E10
P0.01/XL2 P1.01
P0.02/NFC1 G11 P1.02/I2C J11
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 H12 P1.03/I2C K12
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 G10 P1.04 K3
P0.04/AIN0 P1.04
P0.05/AIN1 F10 P1.05 L3
P0.05/AIN1 P1.05
P0.06/AIN2 H10 P1.06 J3
P0.06/AIN2 P1.06
P0.07/AIN3 J10 P1.07 G3
P0.07/AIN3 P1.07
P0.08/TRACEDATA3 L12 P1.08 F3
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 J9 P1.09 H2
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 J8 P1.10 E4
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 J7 P1.11 C6
P0.11/TRACEDATA[0] P1.11
P0.12/TRACECLK J6 P1.12 C7
P0.12/TRACECLK P1.12
P0.13/QSPI0 K10 P1.13 C8
P0.13/QSPI[0] P1.13
P0.14/QSPI1 K9 P1.14 C9
P0.14/QSPI[1] P1.14
P0.15/QSPI2 L9 P1.15 C10
P0.15/QSPI[2] P1.15
P0.16/QSPI3 K8
P0.16/QSPI[3]
P0.17/QSPI_CLK L7 nRF5340-CLAA
P0.17/QSPI_CLK
P0.18/QSPI_CS K7
P0.18/QSPI_CS
P0.19 J5
P0.19
P0.20 K5
P0.20
P0.21 J4 U1D
P0.21
P0.22 K4 A5 F5
P0.22 VSS VSS
P0.23 H3 B2 F6
P0.23 VSS VSS
P0.24 K2 B9 F7
P0.24 VSS VSS
P0.25/AIN4 L1 C2 F8
P0.25/AIN4 VSS VSS
P0.26/AIN5 J2 D12 G5
P0.26/AIN5 VSS VSS
P0.27/AIN6 H1 E5 G6
P0.27/AIN6 VSS VSS
P0.28/AIN7 E3 E6 G7
P0.28/AIN7 VSS VSS
P0.29 E2 E7 G8
P0.29 VSS VSS
P0.30 C4 E8 K6
P0.30 VSS VSS
P0.31 C5 K11
P0.31 VSS
nRF5340-CLAA nRF5340-CLAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
VBUS
R1 B11
VBUS
2R2 C11
DECUSB
B5
DECN
B8
DECA
C15 C16 C6 C7 nRF5340-CLAA
4.7µF 4.7µF 100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 F11 P1.00 D10
P0.00/XL1 P1.00
P0.01/XL2 F12 P1.01 E10
P0.01/XL2 P1.01
P0.02/NFC1 G11 P1.02/I2C J11
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 H12 P1.03/I2C K12
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 G10 P1.04 K3
P0.04/AIN0 P1.04
P0.05/AIN1 F10 P1.05 L3
P0.05/AIN1 P1.05
P0.06/AIN2 H10 P1.06 J3
P0.06/AIN2 P1.06
P0.07/AIN3 J10 P1.07 G3
P0.07/AIN3 P1.07
CT4 CT3 P0.08/TRACEDATA3 L12 P1.08 F3
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 J9 P1.09 H2
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 J8 P1.10 E4
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 J7 P1.11 C6
P0.11/TRACEDATA[0] P1.11
CT2 CT1 P0.12/TRACECLK J6 P1.12 C7
P0.12/TRACECLK P1.12
P0.13/QSPI0 K10 P1.13 C8
P0.13/QSPI[0] P1.13
P0.14/QSPI1 K9 P1.14 C9
P0.14/QSPI[1] P1.14
P0.15/QSPI2 L9 P1.15 C10
P0.15/QSPI[2] P1.15
Note: P0.16/QSPI3 K8
P0.16/QSPI[3]
The value of CT1, CT2, CT3 and CT4 must be P0.17/QSPI_CLK L7 nRF5340-CLAA
P0.17/QSPI_CLK
tuned to match the selected NFC antenna. P0.18/QSPI_CS K7
P0.18/QSPI_CS
P0.19 J5
P0.19
P0.20 K5
P0.20
P0.21 J4 U1D
P0.21
P0.22 K4 A5 F5
P0.22 VSS VSS
P0.23 H3 B2 F6
P0.23 VSS VSS
P0.24 K2 B9 F7
P0.24 VSS VSS
P0.25/AIN4 L1 C2 F8
P0.25/AIN4 VSS VSS
P0.26/AIN5 J2 D12 G5
P0.26/AIN5 VSS VSS
P0.27/AIN6 H1 E5 G6
P0.27/AIN6 VSS VSS
P0.28/AIN7 E3 E6 G7
P0.28/AIN7 VSS VSS
P0.29 E2 E7 G8
P0.29 VSS VSS
P0.30 C4 E8 K6
P0.30 VSS VSS
P0.31 C5 K11
P0.31 VSS
nRF5340-CLAA nRF5340-CLAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
B11
VBUS
C11
DECUSB
B5
DECN
B8
DECA
C6 C7 nRF5340-CLAA
100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 F11 P1.00 D10
P0.00/XL1 P1.00
P0.01/XL2 F12 P1.01 E10
P0.01/XL2 P1.01
P0.02/NFC1 G11 P1.02/I2C J11
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 H12 P1.03/I2C K12
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 G10 P1.04 K3
P0.04/AIN0 P1.04
P0.05/AIN1 F10 P1.05 L3
P0.05/AIN1 P1.05
P0.06/AIN2 H10 P1.06 J3
P0.06/AIN2 P1.06
P0.07/AIN3 J10 P1.07 G3
P0.07/AIN3 P1.07
P0.08/TRACEDATA3 L12 P1.08 F3
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 J9 P1.09 H2
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 J8 P1.10 E4
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 J7 P1.11 C6
P0.11/TRACEDATA[0] P1.11
P0.12/TRACECLK J6 P1.12 C7
P0.12/TRACECLK P1.12
P0.13/QSPI0 K10 P1.13 C8
P0.13/QSPI[0] P1.13
P0.14/QSPI1 K9 P1.14 C9
P0.14/QSPI[1] P1.14
P0.15/QSPI2 L9 P1.15 C10
P0.15/QSPI[2] P1.15
P0.16/QSPI3 K8
P0.16/QSPI[3]
P0.17/QSPI_CLK L7 nRF5340-CLAA
P0.17/QSPI_CLK
P0.18/QSPI_CS K7
P0.18/QSPI_CS
P0.19 J5
P0.19
P0.20 K5
P0.20
P0.21 J4 U1D
P0.21
P0.22 K4 A5 F5
P0.22 VSS VSS
P0.23 H3 B2 F6
P0.23 VSS VSS
P0.24 K2 B9 F7
P0.24 VSS VSS
P0.25/AIN4 L1 C2 F8
P0.25/AIN4 VSS VSS
P0.26/AIN5 J2 D12 G5
P0.26/AIN5 VSS VSS
P0.27/AIN6 H1 E5 G6
P0.27/AIN6 VSS VSS
P0.28/AIN7 E3 E6 G7
P0.28/AIN7 VSS VSS
P0.29 E2 E7 G8
P0.29 VSS VSS
P0.30 C4 E8 K6
P0.30 VSS VSS
P0.31 C5 K11
P0.31 VSS
nRF5340-CLAA nRF5340-CLAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
VBUS
R1 B11
VBUS
2R2 C11
DECUSB
B5
DECN
B8
DECA
C15 C16 C6 C7 nRF5340-CLAA
4.7µF 4.7µF 100nF 1.0µF
Optional
X2 U1B U1C
32.768kHz P0.00/XL1 F11 P1.00 D10
P0.00/XL1 P1.00
P0.01/XL2 F12 P1.01 E10
P0.01/XL2 P1.01
P0.02/NFC1 G11 P1.02/I2C J11
P0.02/NFC1 P1.02/I2C
P0.03/NFC2 H12 P1.03/I2C K12
P0.03/NFC2 P1.03/I2C
P0.04/AIN0 G10 P1.04 K3
P0.04/AIN0 P1.04
P0.05/AIN1 F10 P1.05 L3
P0.05/AIN1 P1.05
P0.06/AIN2 H10 P1.06 J3
P0.06/AIN2 P1.06
P0.07/AIN3 J10 P1.07 G3
P0.07/AIN3 P1.07
P0.08/TRACEDATA3 L12 P1.08 F3
P0.08/TRACEDATA[3] P1.08
P0.09/TRACEDATA2 J9 P1.09 H2
P0.09/TRACEDATA[2] P1.09
P0.10/TRACEDATA1 J8 P1.10 E4
P0.10/TRACEDATA[1] P1.10
P0.11/TRACEDATA0 J7 P1.11 C6
P0.11/TRACEDATA[0] P1.11
P0.12/TRACECLK J6 P1.12 C7
P0.12/TRACECLK P1.12
P0.13/QSPI0 K10 P1.13 C8
P0.13/QSPI[0] P1.13
P0.14/QSPI1 K9 P1.14 C9
P0.14/QSPI[1] P1.14
P0.15/QSPI2 L9 P1.15 C10
P0.15/QSPI[2] P1.15
P0.16/QSPI3 K8
P0.16/QSPI[3]
P0.17/QSPI_CLK L7 nRF5340-CLAA
P0.17/QSPI_CLK
P0.18/QSPI_CS K7
P0.18/QSPI_CS
P0.19 J5
P0.19
P0.20 K5
P0.20
P0.21 J4 U1D
P0.21
P0.22 K4 A5 F5
P0.22 VSS VSS
P0.23 H3 B2 F6
P0.23 VSS VSS
P0.24 K2 B9 F7
P0.24 VSS VSS
P0.25/AIN4 L1 C2 F8
P0.25/AIN4 VSS VSS
P0.26/AIN5 J2 D12 G5
P0.26/AIN5 VSS VSS
P0.27/AIN6 H1 E5 G6
P0.27/AIN6 VSS VSS
P0.28/AIN7 E3 E6 G7
P0.28/AIN7 VSS VSS
P0.29 E2 E7 G8
P0.29 VSS VSS
P0.30 C4 E8 K6
P0.30 VSS VSS
P0.31 C5 K11
P0.31 VSS
nRF5340-CLAA nRF5340-CLAA
Note: For PCB reference layouts, see the product page for the nRF5340 on www.nordicsemi.com.
Note: Pay attention to how the capacitor C1 is grounded. It is not directly connected to the ground
plane, but grounded via pin J31 and to the VSS die pad. This is done to create additional filtering of
harmonic components.
For all available reference layouts, see the product page for nRF5340 on www.nordicsemi.com.
Values obtained by simulation following the EIA/JESD51-2 for still air condition using JEDEC PCB.
VDDH VDDH supply voltage, independent of DCDC enable 2.5 3.7 5.5 V
VBUS VBUS USB supply voltage 4.35 5.0 5.5 V
TA Operating temperature -40 25 105 °C
37
See Recommended operating conditions on page 57 for details on VDD supply voltage needed
during power-on reset.
2 kV
ESD Human Body Model
(HBM) Pins DECR and DECN are 1.4
N 5 3 4 0
<P P> <V V> <H> <P>
FROM: TO:
SALES ORDER NO: (14K) <Nordic Sales Order+Sales order line no.+
Delivery line no.>
COUNTRY OF ORIGIN.: 4L
CARTON NO:
<2- character code of COO>
x/n
<H> Description
[A . . Z] Hardware version/revision identifier (incremental)
<P> Description
[0 . . 9] Production device identifier (incremental)
[A . . Z] Engineering device identifier (incremental)
<F> Description
[A . . N, P . . Z] Version of preprogrammed firmware
[0] Delivered without preprogrammed firmware
<YY> Description
[16 . . 99] Production year: 2016 to 2099
<WW> Description
[1 . . 52] Week of production
<LL> Description
[AA . . ZZ] Wafer production lot identifier
<CC> Description
R7 7" Reel
R 13" Reel
Liability disclaimer
Nordic Semiconductor ASA reserves the right to make changes without further notice to the product to
improve reliability, function, or design. Nordic Semiconductor ASA does not assume any liability arising out
of the application or use of any product or circuits described herein.
Nordic Semiconductor ASA does not give any representations or warranties, expressed or implied, as to
the accuracy or completeness of such information and shall have no liability for the consequences of use
of such information. If there are any discrepancies, ambiguities or conflicts in Nordic Semiconductor’s
documentation, the Product Specification prevails.
Nordic Semiconductor ASA reserves the right to make corrections, enhancements, and other changes to
this document without notice.
Customer represents that, with respect to its applications, it has all the necessary expertise to create
and implement safeguards that anticipate dangerous consequences of failures, monitor failures and
their consequences, and lessen the likelihood of failures that might cause harm, and to take appropriate
remedial actions.
Nordic Semiconductor ASA assumes no liability for applications assistance or the design of customers’
products. Customers are solely responsible for the design, validation, and testing of its applications as well
as for compliance with all legal, regulatory, and safety-related requirements concerning its applications.
Nordic Semiconductor ASA’s products are not designed for use in life-critical medical equipment,
support appliances, devices, or systems where malfunction of Nordic Semiconductor ASA’s products can
reasonably be expected to result in personal injury. Customer may not use any Nordic Semiconductor
ASA’s products in life-critical medical equipment unless adequate design and operating safeguards by
customer’s authorized officers have been made. Customer agrees that prior to using or distributing
any life-critical medical equipment that include Nordic Semiconductor ASA’s products, customer will
thoroughly test such systems and the functionality of such products as used in such systems.
Customer will fully indemnify Nordic Semiconductor ASA and its representatives against any damages,
costs, losses, and/or liabilities arising out of customer’s non-compliance with this section.
Trademarks
All trademarks, service marks, trade names, product names, and logos appearing in this documentation
are the property of their respective owners.
Copyright notice
© 2024 Nordic Semiconductor ASA. All rights are reserved. Reproduction in whole or in part is prohibited
without the prior written permission of the copyright holder.