NRF54L
Wireless System-on-Chip (SoC)The NRF54L is a wireless system-on-chip (soc) from Nordic Semiconductor ASA. View the full NRF54L datasheet below including electrical characteristics.
Manufacturer
Nordic Semiconductor ASA
Category
RF / WirelessOverview
Part: nRF54L15, nRF54L10, nRF54L05 — Nordic Semiconductor Type: Wireless System-on-Chip (SoC) Description: Ultra-low power multiprotocol 2.4 GHz wireless SoC integrating a 128 MHz Arm Cortex-M33 processor, a RISC-V coprocessor, comprehensive peripherals, and scalable memory up to 1524 KB NVM and 256 KB RAM.
Operating Conditions:
- Supply voltage: 1.7 V to 3.6 V
- Operating temperature: -40°C to 105°C
- CPU clock speed: 128 MHz
Absolute Maximum Ratings:
Key Specs:
- CPU: 128 MHz Arm Cortex-M33 with TrustZone
- NVM (nRF54L15): 1524 KB RRAM
- RAM (nRF54L15): 256 KB
- Bluetooth LE TX current (1 Mbps, 0 dBm): 4.8 mA @3.0 V
- Bluetooth LE RX current (1 Mbps): 3.4 mA @3.0 V
- System OFF current: 0.6 μA @3.0 V
- Bluetooth LE sensitivity (1 Mbps): -96 dBm (0.1% BER)
- Bluetooth LE sensitivity (125 kbps long range): -104 dBm (0.1% BER)
- Output power: Up to +8 dBm (1 dB step size from -8 dBm to +8 dBm)
- ADC resolution/sample rate: 14-bit at 31.25 ksps, 12-bit at 250 ksps, up to 10-bit at 2 Msps
Features:
- Multiprotocol 2.4 GHz radio (Bluetooth 6.0, 802.15.4-2020, proprietary 2.4 GHz up to 4 Mbps)
- 128 MHz RISC-V coprocessor
- Advanced security (TrustZone isolation, tamper detection, cryptographic engine side-channel leakage protection)
- Global RTC available in System OFF
- 14-bit ADC
- High-speed serial interfaces (SPI up to 32 MHz, UARTE up to 4 Mbps, I2C up to 400 kHz)
- Single-precision floating-point unit (FPU)
- Memory protection unit (MPU)
- NFC interface
Applications:
Package:
- QFN48 (6.0x6.0 mm, 31 GPIO pins)
- CSP47 (2.4x2.2 mm, 300 μm pitch, 32 GPIO pins)
Features
- ■ 128 MHz Arm® Cortex®-M33 processor
- ■ Scalable memory configurations up to 1524 KB NVM and up to 256 KB RAM
- ■ Multiprotocol 2.4 GHz radio supporting Bluetooth Low Energy, 802.15.4-2020, and 2.4 GHz proprietary modes (up to 4 Mbps)
- ■ Comprehensive set of peripherals including new Global RTC available in System OFF, 14-bit ADC, and high-speed serial interfaces
- ■ 128 MHz RISC-V coprocessor
- ■ Advanced security including TrustZone® isolation, tamper detection, and cryptographic engine side-channel leakage protection
- ■ Ultra-compact WL CSP (2.4x2.2 mm) and QFN (6.0x6.0 mm) packages
Pin Configuration
The GPIO port peripheral implements up to 32 pins, PIN[n] (n = 0..31), that can be individually configured in the PIN_CNF[n] registers (n=0..31).
The following parameters can be enabled or configured in these registers:
- Direction
- Drive strength
- Pull-up and pull-down resistors
- Pin sensing
- Input buffer disconnect
- Analog input (for selected pins)
All write-capable registers are retained registers. See POWER - Power control on page 92 for more information.
When not used as an input, disconnect the input buffer of the GPIO pin to save power. An input must be connected to get a valid value in the IN register and for the sense mechanism to have access to the pin.
Other peripherals in the system can connect to GPIO pins to override their output value, override their configuration, or read their analog or digital input value.
Selected pins also support analog input signals (ANAIN). The assignment of the analog pins can be found in Pin assignments on page 837.
GPIO drive strength is configured using the DRIVE0 and DRIVE1 fields of register PIN_CNF[n] (n=0..31) (Retained) on page 281. Some pins may not support every drive configuration, see Pin assignments on page 837 for more information.
When a pin is configured as digital input, it is important to minimize increased current consumption when the input voltage is between VIL and VIH. It is a good practice to ensure that the external circuitry does not drive the pin to levels between VIL and VIH for a long period of time.
For more information on pin assignment and the corresponding effect of read and write operations of GPIO registers, see Peripheral and subsystem assignment on page 275.
Note: NFCT uses two pins to connect to the antenna, which are shared with GPIOs. NFC pins are enabled from reset. To use them as GPIO pins, NFC use must be disabled using register PADCONFIG on page 392. For more details, see NFCT - Near field communication tag on page 354.
Electrical Characteristics
For scaling between hardware value and dBm, see Clear channel assessment (CCA) on page 472.
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 engaged by writing the EDCNT field of the EDCTRL 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 the EDSTART task and the 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 and EDPERIOD fields of the EDCTRL register.
Figure 125: Energy detection measurement for a single iteration (EDCNT = 0)

Figure 126: Energy detection measurement example with multiple iterations

The scan is stopped by writing the EDSTOP task. It is followed by the EDSTOPPED event when the module has terminated.
## 8.17.12.4 Clear channel assessment (CCA)
IEEE 802.15.4 implements a listen-before-talk channel access method to avoid collisions when transmitting. This is known as carrier sense multiple access with collision avoidance (CSMA-CA). The key part of this method is measuring if the wireless medium is busy or not.
The following clear channel assessment modes are supported:
- CCA Mode 1 (energy above threshold) - The medium is reported busy upon detecting any energy above the ED threshold.

- CCA Mode 2 (carrier sense only) - The medium is reported busy upon detection of a signal compliant with IEEE 802.15.4 with the same modulation and spreading characteristics.
- CCA Mode 3 (carrier sense with energy above threshold) - The medium is reported busy using a logical combination (AND/OR) between the results from CCA Mode 1 and CCA Mode 2.
The clear channel assessment should survey a period equal to 8 symbols or 128 μs.
RADIO must be in RX mode and be able to receive correct packets when performing the CCA. The shortcut between READY and START must be disabled if baseband processing is not to be performed while the measurement is running.
Register EDSAMPLE on page 514 is updated at the end of the clear channel assessment and can be used to read the energy level measured during the procedure. For CCACTRL.CCAMODE = EdModeEdModeTest1, EDSAMPLE holds the first ED measurement. For the other CCA modes, EDSAMPLE holds the average ED value.
## 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 the field 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. If 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 an SFD is reported during the scan period, it will terminate immediately 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 and performing the required logical combination of the result from CCA Mode 1 and CCA Mode 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 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 hardwarereported values, while CCAEDTHRES is set by software. Constants ED\_RSSISCALE and ED\_RSSIOFFS are from the electrical specifications.
PRF[dBm] = ED_RSSIOFFS + VALHARDWARE
The ED\_RSSISCALE constant is used to calculate power in 802.15.4 units (0-255), using the following formula:
PRF[802.15.4 units] = MIN( ED_RSSISCALE x VALHARDWARE, 255 )
## 8.17.12.5 Cyclic redundancy check (CRC)
IEEE 802.15.4 uses a 16-bit ITU-T cyclic redundancy check (CRC) calculated over the MAC header (MHR) and MAC service data unit (MSDU).
The standard defines the following generator polynomial:
<!-- formula-not-decoded -->
In RX mode, RADIO will trigger the CRC module when the first octet after the frame length (PHR) is received. The CRC will then update on each consecutive octet received. When a complete frame is received, the CRCSTATUS register will be updated accordingly and the CRCOK or CRCERROR events will be generated. When the CRC module is enabled, it will not write the two last octets (CRC) to the frame RAM. When transmitting, the CRC will be computed on the fly, starting with the first octet after PHR, and inserted as the two last octets in the frame. The EasyDMA will fetch the frame length minus 2 octets from RAM and insert the CRC octets at their correct positions in the frame.
The following code shows how to configure the CRC module for correct operation when in IEEE 802.15.4 mode. The CRCCNF is written to 16-bit CRC and the CRCPOLY is written to 0x11021 . The start value used by IEEE 802.15.4 is 0 and CRCINIT is configured to reflect this.
/* 16-bit CRC with ITU-T polynomial with 0 as start condition*/ NRF_RADIO->CRCCNF = ((RADIO_CRCCNF_SKIPADDR_Ieee802154 << RADIO_CRCCNF_SKIPADDR_Pos) | (RADIO_CRCCNF_LEN_Two << RADIO_CRCCNF_LEN_Pos)); NRF_RADIO->CRCPOLY = 0x11021; NRF_RADIO->CRCINIT = 0;
The ENDIANESS subregister must be set to little-endian since the FCS field is transmitted from the left bit to the right bit.
## 8.17.12.6 Transmit sequence
The transmission is started by first putting RADIO in RX mode and triggering the RXEN task .
An outline of the IEEE 802.15.4 transmission is illustrated in the following figure.

Figure 127: 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 (register CCACTRL.CCAMODE) will be performed and signal the CCAIDLE event or CCABUSY event 128 μs later. If the event CCABUSY 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 event CCAIDLE is generated, a write to the task register TXEN enters RADIO in TXRU state. The READY event will be generated when RADIO is in the 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 (register SFD). The first byte read from 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 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, when a clear channel is detected, RADIO can immediately enter TX mode.
## 8.17.12.7 Receive sequence
RADIO must be in RX mode before the receive sequence can begin. After writing to the RXEN task, RADIO will start ramping up and enter the RXRU state.
When the READY event is generated, RADIO enters the RXIDLE mode. For the baseband processing to be enabled, the START task must be written. An outline of the IEEE 802.15.4 receive sequence can be found in the following figure.

Figure 128: IEEE 802.15.4 receive sequence

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 is zero after running the full frame, 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 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 472. 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 with the middle value 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
Figure 129: IEEE 802.15.4 frame in data memory

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.
## 8.17.12.8 Interframe spacing (IFS)
IEEE 802.15.4 defines a specific time that is allotted for the MAC sublayer to process received data. The interframe spacing (IFS) is used to prevent two frames from being transmitted too close together. If the transmission is requesting an acknowledgement, the space before the second frame must be at least one IFS period.
## IFS is determined to be one of the following:
- IFS = macMinSIFSPeriod (12 symbols) if MPDU ≤ aMaxSIFSFrameSize (18 octets) octets
- IFS = macMinLIFSPeriod (40 symbols) if MPDU > aMaxSIFSFrameSize
Using the efficient assisted modes in RADIO, the TIFS will be programmed with the correct value based on the frame being transmitted. If the assisted modes are not in use, the TIFS register must be updated manually. The following figure shows what IFS period is valid in both acknowledged and unacknowledged transmissions.

## Acknowledged transmission
Figure 130: Interframe spacing examples

## 8.17.13 EasyDMA
RADIO uses EasyDMA to read and write packets to RAM without CPU involvement.
As illustrated in RADIO block diagram on page 459, the RADIO peripheral'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 the DISABLE task is done.
The structure of a packet is described in detail in Packet configuration on page 459. 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 listed fields in the frame is configurable (see Packet configuration on page 459), 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 field PCNF0.S0LEN
- LENGTH is configured through the field PCNF0.LFLEN
- S1 is configured through the field PCNF0.S1LEN
- Payload size is configured through the value in RAM corresponding to the LENGTH field
- Static add-on size is configured through the field PCNF1.STATLEN
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 exceeds 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 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 RAM region, an EasyDMA transfer may result in a HardFault or RAM corruption. See Memory on page 14 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 the DISABLE task is done.
## 8.17.14 Registers
| Instance | Domain | Base address | TrustZone | TrustZone | TrustZone | Split | Description |
| ---------------------- | ---------- | ----------------------- | ------------- | ------------- | ------------- | --------- | ------------------------------ |
| | | | Map | Att | DMA | access | |
| RADIO : S RADIO : NS | GLOBAL | 0x5008A000 0x4008A000 | US | S | SA | No | See pinout for GPIO options for DFE antenna switch control |
| Instance | Domain | Configuration |
| ------------ | ---------- | ------------------------------ |
| RADIO : S | GLOBAL | For the PSEL registers, use only dedicated pins on port P1 |
| RADIO : NS | | No internal instantiation of DmaChannelPeripheral |
| Register | Offset | TZ | Description |
| ----------------- | ---------- | ------ | ------------------------------ |
| TASKS_TXEN | 0x000 | | Enable RADIO in TX mode |
| TASKS_RXEN | 0x004 | | Enable RADIO in RX mode |
| TASKS_START | 0x008 | | Start RADIO |
| TASKS_STOP | 0x00C | | Stop RADIO |
| TASKS_DISABLE | 0x010 | | Disable RADIO |
| TASKS_RSSISTART | 0x014 | | Start the RSSI and take one single sample of the receive signal strength |
| TASKS_BCSTART | 0x018 | | Start the bit counter |
| TASKS_BCSTOP | 0x01C | | Stop the bit counter |
| TASKS_EDSTART | 0x020 | | Start the energy detect measurement used in IEEE 802.15.4 mode |
| TASKS_EDSTOP | 0x024 | | Stop the energy detect measurement |
| TASKS_CCASTART | 0x028 | | Start the clear channel assessment used in IEEE 802.15.4 mode |
| TASKS_CCASTOP | 0x02C | | Stop the clear channel assessment |
| Register | Offset | TZ | Description |
| TASKS_SOFTRESET | 0x0A4 | | Reset all public registers, but with these exceptions: DMA registers and EVENT/INTEN/ SUBSCRIBE/PUBLISH registers. Only to be used in DISABLED state. |
| SUBSCRIBE_TXEN | 0x100 | | Subscribe configuration for task TXEN |
| SUBSCRIBE_RXEN | 0x104 | | Subscribe configuration for task RXEN |
| SUBSCRIBE_START | 0x108 | | Subscribe configuration for task START |
| SUBSCRIBE_STOP | 0x10C | | Subscribe configuration for task STOP |
| SUBSCRIBE_DISABLE | 0x110 | | Subscribe configuration for task DISABLE |
| SUBSCRIBE_RSSISTART | 0x114 | | Subscribe configuration for task RSSISTART |
| SUBSCRIBE_BCSTART | 0x118 | | Subscribe configuration for task BCSTART |
| SUBSCRIBE_BCSTOP | 0x11C | | Subscribe configuration for task BCSTOP |
| SUBSCRIBE_EDSTART | 0x120 | | Subscribe configuration for task EDSTART |
| SUBSCRIBE_EDSTOP | 0x124 | | Subscribe configuration for task EDSTOP |
| SUBSCRIBE_CCASTART | 0x128 | | Subscribe configuration for task CCASTART |
| SUBSCRIBE_CCASTOP | 0x12C | | Subscribe configuration for task CCASTOP |
| SUBSCRIBE_SOFTRESET | 0x1A4 | | Subscribe configuration for task SOFTRESET |
| EVENTS_READY | 0x200 | | RADIO has ramped up and is ready to be started |
| EVENTS_TXREADY | 0x204 | | RADIO has ramped up and is ready to be started TX path |
| EVENTS_RXREADY | 0x208 | | RADIO has ramped up and is ready to be started RX path |
| EVENTS_ADDRESS | 0x20C | | Address sent or received |
| EVENTS_FRAMESTART | 0x210 | | IEEE 802.15.4 length field received |
| EVENTS_PAYLOAD | 0x214 | | Packet payload sent or received |
| EVENTS_END | 0x218 | | Memory access for packet data has been completed |
| EVENTS_PHYEND | 0x21C | | The last bit is sent on air or last bit is received |
| EVENTS_DISABLED | 0x220 | | RADIO has been disabled |
| EVENTS_DEVMATCH | 0x224 | | A device address match occurred on the last received packet |
| EVENTS_DEVMISS | 0x228 | | No device address match occurred on the last received packet |
| EVENTS_CRCOK | 0x22C | | Packet received with CRC ok |
| EVENTS_CRCERROR | 0x230 | | Packet received with CRC error |
| EVENTS_BCMATCH | 0x238 | | Bit counter reached bit count value |
| EVENTS_EDEND | 0x23C | | Sampling of energy detection complete (a new ED sample is ready for readout from the |
| EVENTS_EDSTOPPED | 0x240 | | The sampling of energy detection has stopped |
| EVENTS_CCAIDLE | 0x244 | | Wireless medium in idle - clear to send |
| EVENTS_CCABUSY | 0x248 | | Wireless medium busy - do not send |
| EVENTS_CCASTOPPED | 0x24C | | The CCA has stopped |
| EVENTS_RATEBOOST | 0x250 | | Ble_LR CI field received, receive mode is changed from Ble_LR125Kbit to Ble_LR500Kbit |
| EVENTS_MHRMATCH | 0x254 | | MAC header match found |
| EVENTS_SYNC | 0x258 | | Initial sync detected |
| EVENTS_CTEPRESENT | 0x25C | | CTEInfo byte is received |
| PUBLISH_READY | 0x300 | | Publish configuration for event READY |
| PUBLISH_TXREADY | 0x304 | | Publish configuration for event TXREADY |
| PUBLISH_RXREADY | 0x308 | | Publish configuration for event RXREADY |
| PUBLISH_ADDRESS | 0x30C | | Publish configuration for event ADDRESS |
| PUBLISH_FRAMESTART | 0x310 | | Publish configuration for event FRAMESTART |
| PUBLISH_PAYLOAD | 0x314 | | Publish configuration for event PAYLOAD |
| PUBLISH_END | 0x318 | | Publish configuration for event END |
| PUBLISH_PHYEND | 0x31C | | Publish configuration for event PHYEND |
| PUBLISH_DISABLED | 0x320 | | Publish configuration for event DISABLED |
| PUBLISH_DEVMATCH | 0x324 | | Publish configuration for event DEVMATCH |
| PUBLISH_DEVMISS | 0x328 | | Publish configuration for event DEVMISS |
| PUBLISH_CRCOK | 0x32C 0x330 | | Publish configuration for event CRCOK Publish configuration for event CRCERROR |
| PUBLISH_CRCERROR | | | |
| PUBLISH_BCMATCH | 0x338 | | Publish configuration for event BCMATCH |
| Register | Offset | TZ | Description |
| PUBLISH_EDEND | 0x33C | | Publish configuration for event EDEND |
| PUBLISH_EDSTOPPED | 0x340 | | Publish configuration for event EDSTOPPED |
| PUBLISH_CCAIDLE | 0x344 | | Publish configuration for event CCAIDLE |
| PUBLISH_CCABUSY | 0x348 | | Publish configuration for event CCABUSY |
| PUBLISH_CCASTOPPED | 0x34C | | Publish configuration for event CCASTOPPED |
| PUBLISH_RATEBOOST | 0x350 | | Publish configuration for event RATEBOOST |
| PUBLISH_MHRMATCH | 0x354 | | Publish configuration for event MHRMATCH |
| PUBLISH_SYNC | 0x358 | | Publish configuration for event SYNC |
| PUBLISH_CTEPRESENT | 0x35C | | Publish configuration for event CTEPRESENT |
| SHORTS | 0x400 | | Shortcuts between local events and tasks |
| INTENSET00 | 0x488 | | Enable interrupt |
| INTENCLR00 | 0x490 | | Disable interrupt |
| INTENSET10 | 0x4A8 | | Enable interrupt |
| INTENCLR10 | 0x4B0 | | Disable interrupt |
| MODE | 0x500 | | Data rate and modulation |
| STATE | 0x520 | | Current radio state |
| EDCTRL | 0x530 | | IEEE 802.15.4 energy detect control |
| EDSAMPLE | 0x534 | | IEEE 802.15.4 energy detect level |
| CCACTRL | 0x538 | | IEEE 802.15.4 clear channel assessment control |
| DATAWHITE | 0x540 | | Data whitening configuration |
| TIMING | 0x704 | | Timing |
| FREQUENCY | 0x708 | | Frequency |
| TXPOWER | 0x710 | | Output power |
| TIFS | 0x714 | | Interframe spacing in μs |
| RSSISAMPLE | 0x718 | | RSSI sample |
| FREQFINETUNE | 0x0804 | | Fine tuning of the RF frequency |
| FECONFIG | 0x908 | | Config register |
| DFEMODE | 0xD00 | | Whether to use Angle-of-Arrival (AOA) or Angle-of-Departure |
| DFESTATUS | 0xD04 | | DFE status information |
| DFECTRL1 | 0xD10 | | Various configuration for Direction finding Start offset for Direction finding |
| DFECTRL2 SWITCHPATTERN | 0xD14 0xD28 | | GPIO patterns to be used for each antenna |
| CLEARPATTERN | 0xD2C | | Clear the GPIO pattern array for antenna control |
| PSEL.DFEGPIO[n] | 0xD30 | | Pin select for DFE pin n |
| DFEPACKET.PTR | 0xD50 | | Data pointer |
| DFEPACKET.MAXCNT | | | Maximum number of bytes to transfer |
| | 0xD54 | | transaction |
| DFEPACKET.AMOUNT | 0xD58 | | Number of bytes transferred in the last |
| CRCSTATUS | 0xE0C | | CRC status |
| RXMATCH | 0xE10 | | Received address |
| RXCRC | 0xE14 | | CRC field of previously received packet |
| DAI | 0xE18 | | Device address match index |
| PDUSTAT | 0xE1C | | Payload status |
| PCNF0 | 0xE20 | | Packet configuration register 0 |
| PCNF1 | 0xE28 | | Packet configuration register 1 |
| BASE0 | 0xE2C | | Base address 0 |
| BASE1 | 0xE30 | | Base address 1 |
| PREFIX0 | 0xE34 | | Prefixes bytes for logical addresses 0-3 |
| PREFIX1 | 0xE38 | | Prefixes bytes for logical addresses 4-7 |
| TXADDRESS | 0xE3C | | Transmit address select |
| CRCCNF | 0xE44 | | CRC configuration |
| CRCPOLY | 0xE48 | | CRC polynomial |
| Register | Offset | TZ | Description |
| CRCINIT | 0xE4C | | CRC initial value |
| DAB[n] | 0xE50 | | Device address base segment n |
| DAP[n] | 0xE70 | | Device address prefix n |
| DACNF | 0xE90 | | Device address match configuration |
| BCC | 0xE94 | | Bit counter compare |
| CTESTATUS | 0xEA4 | | CTEInfo parsed from received packet |
| MHRMATCHCONF | 0xEB4 | | Search pattern configuration |
| MHRMATCHMASK | 0xEB8 | | Pattern mask |
| SFD | 0xEBC | | IEEE 802.15.4 start of frame delimiter |
| CTEINLINECONF | 0xEC0 | | Configuration for CTE inline mode |
| PACKETPTR | 0xED0 | | Packet pointer |
| CSTONES.MODE | 0x1000 | | Selects the mode(s) that are activated on the start signal |
| CSTONES.NUMSAMPLES | 0x1004 | | Number of input samples at 2MHz sample rate |
| CSTONES.NEXTFREQUENCY | 0x1008 | | The value of FREQUENCY that will be used in the next step |
| CSTONES.FFOIN | 0x100C | | Override value of FFO (Fractional Frequency Offset) if not to be based on the frequency estimate derived from CnAcc (autocorrelation of the scaled input signal) value |
| CSTONES.FFOSOURCE | 0x1010 | | Source of FFO |
| CSTONES.FAEPEER | 0x1014 | | FAEPEER (Frequency Actuation Error) of peer if known. Used during Mode 0 steps. |
| CSTONES.PHASESHIFT | 0x1018 | | Parameter used in TPM, provided by software |
| CSTONES.NUMSAMPLESCOEFF | 0x101C | | Parameter used in TPM, provided by software |
| CSTONES.PCT16 | 0x1020 | | Mean magnitude and mean phase converted to IQ |
| CSTONES.MAGPHASEMEAN | 0x1024 | | Mean magnitude and phase of the signal before it is converted to PCT16 |
| CSTONES.IQRAWMEAN | 0x1028 | | Mean of IQ values |
| CSTONES.MAGSTD | 0x102C | | Magnitude standard deviation approximation |
| CSTONES.CNACC | 0x1030 | | Output of the autocorrelation of the accumulated IQ signal |
| CSTONES.FFOEST | 0x1034 | | FFO estimate |
| CSTONES.DOWNSAMPLE | 0x1038 | | Turn on/off down sample of input IQ-signals |
| CSTONES.FINETUNENEXT | 0x103C | | Number of full ADPLL finetune steps |
| CSTONES.CFOPHASE | 0x1040 | | Cordic output of CnAcc |
| CSTONES.FREQOFFSET | 0x1044 | | Frequency offset estimate |
| CSTONES.PCT11 | 0x1048 | | Mean magnitude and mean phase converted to IQ. IQ values limited to [-1024,1023]. |
| CSTONES.LFAENEXT | 0x104C | | Quantization error between ADPLL frequency and the desired value of FFO * RF Frequency. Values limited to [-64,63] with units 7.6294 Hz. |
| RTT.CONFIG | 0x1050 | | RTT Config. |
| RTT.SEGMENT01 | 0x1054 | | RTT segments 0 and 1 |
| RTT.SEGMENT23 | 0x1058 | | RTT segments 2 and 3 |
| RTT.SEGMENT45 | 0x105C | | RTT segments 4 and 5 |
| RTT.SEGMENT67 | 0x1060 | | RTT segments 6 and 7 |
## 8.17.14.1 TASKS\_TXEN
Address offset: 0x000
Enable RADIO in TX mode

| Bit number | Bit 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 | ID | ID | A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.17.14.2 TASKS\_RXEN
Address offset: 0x004
Enable RADIO in RX mode

## 8.17.14.3 TASKS\_START
Address offset: 0x008
Start RADIO

## 8.17.14.4 TASKS\_STOP
Address offset: 0x00C
Stop RADIO

## 8.17.14.5 TASKS\_DISABLE
Address offset: 0x010
Disable RADIO

## 8.17.14.6 TASKS\_RSSISTART
Address offset: 0x014

Start the RSSI and take one single sample of the receive signal strength

## 8.17.14.7 TASKS\_BCSTART
Address offset: 0x018
Start the bit counter

## 8.17.14.8 TASKS\_BCSTOP
Address offset: 0x01C
Stop the bit counter

## 8.17.14.9 TASKS\_EDSTART
Address offset: 0x020
Start the energy detect measurement used in IEEE 802.15.4 mode

## 8.17.14.10 TASKS\_EDSTOP
Address offset: 0x024
Stop the energy detect measurement


## 8.17.14.11 TASKS\_CCASTART
Address offset: 0x028
Start the clear channel assessment used in IEEE 802.15.4 mode

## 8.17.14.12 TASKS\_CCASTOP
Address offset: 0x02C
Stop the clear channel assessment

## 8.17.14.13 TASKS\_SOFTRESET
## Address offset: 0x0A4
Reset all public registers, but with these exceptions: DMA registers and EVENT/INTEN/SUBSCRIBE/PUBLISH registers. Only to be used in DISABLED state.

## 8.17.14.14 SUBSCRIBE\_TXEN
Address offset: 0x100
Subscribe configuration for task TXEN


## 8.17.14.15 SUBSCRIBE\_RXEN
Address offset: 0x104
Subscribe configuration for task RXEN

## 8.17.14.16 SUBSCRIBE\_START
Address offset: 0x108
Subscribe configuration for task START

| Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 |
| ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | B A A A A A A A A | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.17.14.17 SUBSCRIBE\_STOP
Address offset: 0x10C
Subscribe configuration for task STOP

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.17.14.18 SUBSCRIBE\_DISABLE
Address offset: 0x110
Subscribe configuration for task DISABLE

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.17.14.19 SUBSCRIBE\_RSSISTART
Address offset: 0x114
Subscribe configuration for task RSSISTART

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.17.14.20 SUBSCRIBE\_BCSTART
Address offset: 0x118
Subscribe configuration for task BCSTART

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.17.14.21 SUBSCRIBE\_BCSTOP
Address offset: 0x11C
Subscribe configuration for task BCSTOP


## 8.17.14.22 SUBSCRIBE\_EDSTART
Address offset: 0x120
Subscribe configuration for task EDSTART

## 8.17.14.23 SUBSCRIBE\_EDSTOP
Address offset: 0x124
Subscribe configuration for task EDSTOP

## 8.17.14.24 SUBSCRIBE\_CCASTART
Address offset: 0x128
Subscribe configuration for task CCASTART

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.17.14.25 SUBSCRIBE\_CCASTOP
Address offset: 0x12C
Subscribe configuration for task CCASTOP

## 8.17.14.26 SUBSCRIBE\_SOFTRESET
Address offset: 0x1A4
Subscribe configuration for task SOFTRESET

## 8.17.14.27 EVENTS\_READY
Address offset: 0x200
RADIO has ramped up and is ready to be started

## 8.17.14.28 EVENTS\_TXREADY
Address offset: 0x204
RADIO has ramped up and is ready to be started TX path


## 8.17.14.29 EVENTS\_RXREADY
Address offset: 0x208
RADIO has ramped up and is ready to be started RX path

## 8.17.14.30 EVENTS\_ADDRESS
Address offset: 0x20C
Address sent or received

## 8.17.14.31 EVENTS\_FRAMESTART
Address offset: 0x210
IEEE 802.15.4 length field received

## 8.17.14.32 EVENTS\_PAYLOAD
Address offset: 0x214
Packet payload sent or received


## 8.17.14.33 EVENTS\_END
Address offset: 0x218
Memory access for packet data has been completed
In TX: Last byte to be transmitted has been fetched from RAM
In RX: Last byte received on air has been stored to RAM

## 8.17.14.34 EVENTS\_PHYEND
Address offset: 0x21C
The last bit is sent on air or last bit is received

## 8.17.14.35 EVENTS\_DISABLED
Address offset: 0x220
RADIO has been disabled


## 8.17.14.36 EVENTS\_DEVMATCH
Address offset: 0x224
A device address match occurred on the last received packet

## 8.17.14.37 EVENTS\_DEVMISS
Address offset: 0x228
No device address match occurred on the last received packet

## 8.17.14.38 EVENTS\_CRCOK
Address offset: 0x22C
Packet received with CRC ok

## 8.17.14.39 EVENTS\_CRCERROR
Address offset: 0x230
Packet received with CRC error


## 8.17.14.40 EVENTS\_BCMATCH
## Address offset: 0x238
Bit counter reached bit count value
Bit counter value is specified in the RADIO.BCC register

## 8.17.14.41 EVENTS\_EDEND
## Address offset: 0x23C
Sampling of energy detection complete (a new ED sample is ready for readout from the RADIO.EDSAMPLE register)

## 8.17.14.42 EVENTS\_EDSTOPPED
Address offset: 0x240
The sampling of energy detection has stopped

## 8.17.14.43 EVENTS\_CCAIDLE
Address offset: 0x244
Wireless medium in idle - clear to send


## 8.17.14.44 EVENTS\_CCABUSY
Address offset: 0x248
Wireless medium busy - do not send

## 8.17.14.45 EVENTS\_CCASTOPPED
Address offset: 0x24C
The CCA has stopped

## 8.17.14.46 EVENTS\_RATEBOOST
Address offset: 0x250
Ble\_LR CI field received, receive mode is changed from Ble\_LR125Kbit to Ble\_LR500Kbit

## 8.17.14.47 EVENTS\_MHRMATCH
Address offset: 0x254
MAC header match found


## 8.17.14.48 EVENTS\_SYNC
Address offset: 0x258
Initial sync detected
MODE=Ble\_LR125Kbit, Ble\_LR500Kbit, or Ieee802154\_250Kbit: A possible preamble has been received. However, due to the sporadic reception of noise, this event can be falsely triggered.
For MODE=Nrf\_1Mbit, Nrf\_2Mbit, Ble\_1Mbit, or Ble\_2Mbit: A possible preamble and the first two bytes of the address field has been received. The event can be generated falsely also in this mode.
It is also possible that the event is not generated, or not generated before the ADDRESS event.

## 8.17.14.49 EVENTS\_CTEPRESENT
Address offset: 0x25C
CTEInfo byte is received

## 8.17.14.50 PUBLISH\_READY
Address offset: 0x300

## Publish configuration for event READY

## 8.17.14.51 PUBLISH\_TXREADY
Address offset: 0x304
Publish configuration for event TXREADY

## 8.17.14.52 PUBLISH\_RXREADY
Address offset: 0x308
Publish configuration for event RXREADY

## 8.17.14.53 PUBLISH\_ADDRESS
Address offset: 0x30C
Publish configuration for event ADDRESS


## 8.17.14.54 PUBLISH\_FRAMESTART
Address offset: 0x310
Publish configuration for event FRAMESTART

## 8.17.14.55 PUBLISH\_PAYLOAD
Address offset: 0x314
Publish configuration for event PAYLOAD

## 8.17.14.56 PUBLISH\_END
Address offset: 0x318
Publish configuration for event END
In TX: Last byte to be transmitted has been fetched from RAM
In RX: Last byte received on air has been stored to RAM


## 8.17.14.57 PUBLISH\_PHYEND
Address offset: 0x31C
Publish configuration for event PHYEND

## 8.17.14.58 PUBLISH\_DISABLED
Address offset: 0x320
Publish configuration for event DISABLED

## 8.17.14.59 PUBLISH\_DEVMATCH
Address offset: 0x324
Publish configuration for event DEVMATCH

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.17.14.60 PUBLISH\_DEVMISS
Address offset: 0x328
Publish configuration for event DEVMISS

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable publishing<br>1 Enable publishing |
## 8.17.14.61 PUBLISH\_CRCOK
Address offset: 0x32C
Publish configuration for event CRCOK

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.17.14.62 PUBLISH\_CRCERROR
Address offset: 0x330
Publish configuration for event CRCERROR

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.17.14.63 PUBLISH\_BCMATCH
Address offset: 0x338
Publish configuration for event BCMATCH
Bit counter value is specified in the RADIO.BCC register


## 8.17.14.64 PUBLISH\_EDEND
Address offset: 0x33C
Publish configuration for event EDEND

## 8.17.14.65 PUBLISH\_EDSTOPPED
Address offset: 0x340
Publish configuration for event EDSTOPPED

## 8.17.14.66 PUBLISH\_CCAIDLE
Address offset: 0x344
Publish configuration for event CCAIDLE

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.17.14.67 PUBLISH\_CCABUSY
Address offset: 0x348
Publish configuration for event CCABUSY

| Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 |
| ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | B A A A A A A A A | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled 1 | Disable publishing<br>Enable publishing |
## 8.17.14.68 PUBLISH\_CCASTOPPED
Address offset: 0x34C
Publish configuration for event CCASTOPPED

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.17.14.69 PUBLISH\_RATEBOOST
Address offset: 0x350
Publish configuration for event RATEBOOST

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.17.14.70 PUBLISH\_MHRMATCH
Address offset: 0x354
Publish configuration for event MHRMATCH


## 8.17.14.71 PUBLISH\_SYNC
Address offset: 0x358
Publish configuration for event SYNC
MODE=Ble\_LR125Kbit, Ble\_LR500Kbit, or Ieee802154\_250Kbit: A possible preamble has been received. However, due to the sporadic reception of noise, this event can be falsely triggered.
For MODE=Nrf\_1Mbit, Nrf\_2Mbit, Ble\_1Mbit, or Ble\_2Mbit: A possible preamble and the first two bytes of the address field has been received. The event can be generated falsely also in this mode.
It is also possible that the event is not generated, or not generated before the ADDRESS event.

## 8.17.14.72 PUBLISH\_CTEPRESENT
Address offset: 0x35C
Publish configuration for event CTEPRESENT

## 8.17.14.73 SHORTS
Address offset: 0x400
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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 |
| ------------------ | ----------------------- | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
| ID | | | | Q P O N M L K J I | C B A | C B A | C B A | C B A | C B A | C B A | C B A | C B A | C B A | C B A | C B A | | |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID | R/W Field | Value ID | Value | Description | between event | between event | between event | between event | between event | between event | between event | between event | between event | between event | between event | | |
| A RW | READY_START | Disabled | 0 | Disable | READY shortcut | READY shortcut | READY shortcut | READY shortcut | READY shortcut | READY shortcut | READY shortcut | READY shortcut | READY shortcut | READY shortcut | READY shortcut | | |
| | | Enabled | 1 | | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | | |
| B | RW DISABLED_TXEN | Disabled | 0 | | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | between event DISABLED shortcut | | |
| | DISABLED_RXEN | Enabled Disabled | 1 | Enable Shortcut | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | shortcut between event DISABLED | | |
| C | RW | Enabled | 1 | | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | | |
| D | RW ADDRESS_RSSISTART | Disabled Enabled Disabled | 0 0 | | shortcut Shortcut between event ADDRESS shortcut | Disable Enable Shortcut Disable | shortcut between shortcut | shortcut Shortcut between event ADDRESS shortcut | shortcut Shortcut between event ADDRESS shortcut | shortcut Shortcut between event ADDRESS shortcut | shortcut Shortcut between event ADDRESS shortcut | shortcut Shortcut between event ADDRESS shortcut | shortcut Shortcut between event ADDRESS shortcut | shortcut Shortcut between event ADDRESS shortcut | shortcut Shortcut between event ADDRESS shortcut | | |
| E | END_START | Enabled Disabled | 0 1 0 1 | | event END and task START event ADDRESS and task BCSTART | Enable | shortcut | event END and task START event ADDRESS and task BCSTART | event END and task START event ADDRESS and task BCSTART | event END and task START event ADDRESS and task BCSTART | event END and task START event ADDRESS and task BCSTART | event END and task START event ADDRESS and task BCSTART | event END and task START event ADDRESS and task BCSTART | event END and task START event ADDRESS and task BCSTART | event END and task START event ADDRESS and task BCSTART | | |
| F | RW RW ADDRESS_BCSTART | Enabled RXREADY_CCASTART Disabled Enabled | 1 0 1 0 1 | Enable shortcut Shortcut between Disable shortcut Enable shortcut Shortcut between Disable shortcut Enable shortcut Shortcut between Disable shortcut | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | RXREADY and task CCASTART | | |
| G | RW RW CCAIDLE_TXEN | Disabled Enabled Disabled | 0 | | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | CCAIDLE and task DISABLE | | |
| H | | CCABUSY_DISABLE | 1 | | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | Disable shortcut shortcut between event FRAMESTART and task | | |
| I | RW | Enabled | | | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | Shortcut between event CCABUSY | | |
| | | | | | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | Enable Shortcut Disable | | |
| | | Disabled | 1 | | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | event READY and task EDSTART | | |
| J | RW | FRAMESTART_BCSTART Enabled | 0 | | BCSTART shortcut shortcut | Enable | BCSTART shortcut shortcut | BCSTART shortcut shortcut | BCSTART shortcut shortcut | BCSTART shortcut shortcut | BCSTART shortcut shortcut | BCSTART shortcut shortcut | BCSTART shortcut shortcut | BCSTART shortcut shortcut | BCSTART shortcut shortcut | | |
| K | RW READY_EDSTART<br>EDEND_DISABLE | Disabled<br>Enabled | 0 1<br>0 | | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | Shortcut between Disable shortcut Enable shortcut | | |
| L | RW CCAIDLE_STOP | Disabled Enabled Disabled | 1 0 1 | | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Disable Enable | shortcut shortcut | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | Shortcut between event EDEND and task DISABLE Disable shortcut Enable shortcut Shortcut between event CCAIDLE and task STOP | | |
| M RW | RW TXREADY_START | Enabled Disabled Enabled | 0 1 | | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | event TXREADY and task START event RXREADY and task START | | |
| N | RW RXREADY_START | Enabled | 0 1 | | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | event PHYEND and task DISABLE | | |
| O | PHYEND_DISABLE | Disabled | 0 | | | | | | | | | | | | | | |
| P | | | | | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | | |
| | | | 1 | | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | | |
| | RW | Enabled | | | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | between event PHYEND and task START | | |
| | | | | | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | Enable shortcut | | |
| | | Disabled | | | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | Shortcut between Disable shortcut | | |
| Q | | Disabled | | | Shortcut | Shortcut | Shortcut | Shortcut | Shortcut | Shortcut | Shortcut | Shortcut | Shortcut | Shortcut | Shortcut | | |
| | RW<br>PHYEND_START | | 0 | Disable | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | shortcut | | |

## 8.17.14.74 INTENSET00
Address offset: 0x488
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 | | | | 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 | Reset 0x00000000 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID | R/W Field | Value ID | Value | Description |
| A | READY | | | Write '1' to enable interrupt for event READY |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| B | TXREADY | | | Write '1' to enable interrupt for event TXREADY |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| C | RXREADY | | | Write '1' to enable interrupt for event RXREADY |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| D | ADDRESS | | | Write '1' to enable interrupt for event ADDRESS |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| E | FRAMESTART | | | Write '1' to enable interrupt for event FRAMESTART |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| F | PAYLOAD | | | Write '1' to enable interrupt for event PAYLOAD |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| G | END | | | Write '1' to enable interrupt for event END<br>In TX: Last byte to be transmitted has been fetched from RAM<br>In RX: Last byte received on air has been stored to RAM |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| H | PHYEND | | | Write '1' to enable interrupt for event PHYEND |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| I | DISABLED | | | Write '1' to enable interrupt for event DISABLED |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| Bit number | Bit 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 | ID | ID | W V U T S R Q P O N M L K J I H G F E D C B A<br>0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | W V U T S R Q P O N M L K J I H G F E D C B A<br>0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 DEVMATCH | | | Write '1' to enable interrupt for event DEVMATCH |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| K | RW DEVMISS | | | Write '1' to enable interrupt for event DEVMISS |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| L | RW CRCOK | | | Write '1' to enable interrupt for event CRCOK |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| M | RW CRCERROR | | | Write '1' to enable interrupt for event CRCERROR |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| N | RW BCMATCH | | | Write '1' to enable interrupt for event BCMATCH<br>Bit counter value is specified in the RADIO.BCC register |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| O | RW EDEND | | | Write '1' to enable interrupt for event EDEND |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| P | RW EDSTOPPED | Enabled<br>Set<br>Disabled | 1 | Read: Enabled Write '1' to enable interrupt for event EDSTOPPED |
| | | Enabled | 0 1 | Read: Disabled Read: Enabled |
| | CCAIDLE | | 1 | Enable |
| Q | RW | | | Write '1' to enable interrupt for event CCAIDLE |
| | | Enabled | 1 | Read: Disabled |
| R | CCABUSY | | | Read: Enabled |
| | RW | Set<br>Disabled | 1<br>0 | Enable<br>event CCABUSY<br>Write '1' to enable interrupt for |
| | | 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 MHRMATCH | | | Write '1' to enable interrupt for event MHRMATCH |
| | | Set | 1 | Enable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |


| Bit number |
| -------------- |
## 8.17.14.75 INTENCLR00
Address offset: 0x490
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 | 0 |
| ------------------ | ------------------ | ---------- | ------------------------------ | ------- | ------- | --------- | ---------------- | --------------- | ------------------ | ---------- | ---------- | ---------- | ---------- | ---------- |
| ID | | | | | | W | V U T S R Q | P O N | M L K | F | J I H G | E D C | B A | B A |
| Reset 0x00000000 | Reset 0x00000000 | | 0 0 | 0 0 0 | 0 0 0 | 0 | 0 0 0 0 | 0 0 0 0 0 | 0 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<br>Disabled | 1<br>0 | | | | Disable | Disable | Disable | Disable | Disable | Disable | Disable | Disable |
| | | Enabled | 1 | | | Read:<br>Read: | Disabled<br>Enabled | Disabled | Disabled | Disabled | Disabled | Disabled | Disabled | Disabled |
| B | RW TXREADY | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write<br>Disable<br>Read:<br>Read: | '1' to disable<br>Disabled<br>Enabled | interrupt for | event TXREADY | | | | | |
| C | RW RXREADY | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write<br>Disable<br>Read:<br>Read: | '1' to disable<br>Disabled<br>Enabled | interrupt for | event RXREADY | | | | | |
| D | RW ADDRESS | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write<br>Disable<br>Read:<br>Read: | '1' to disable<br>Disabled<br>Enabled | interrupt for | event ADDRESS | | | | | |
| E | RW FRAMESTART | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write<br>Disable<br>Read:<br>Read: | '1' to disable<br>Disabled<br>Enabled | interrupt for | event FRAMESTART | | | | | |
| F | RW | PAYLOAD<br>Clear | 1 | | | Write<br>Disable | '1' to disable | interrupt for | event PAYLOAD | | | | | |
| Bit number | | | 31 | 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 | 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 |
| -------------- | ---------------------- | ------------------------------ | ------------------- | ------------------------------ | ------------------------------ |
| ID | | | | W V U T S R Q P O N M L K J I H G F E D C B | W V U T S R Q P O N M L K J I H G F E D C B |
| ID | R/W Field | Value ID | Value | Description | Description |
| | | Disabled | 0 | Read: Disabled | Read: Disabled |
| | | Enabled | 1 | Read: Enabled | Read: Enabled |
| G | RW END | | | Write '1' to disable interrupt for event END In TX: Last byte to be transmitted has been fetched from RAM | Write '1' to disable interrupt for event END In TX: Last byte to be transmitted has been fetched from RAM |
| H | RW PHYEND | Disabled Enabled Clear | 0 1 | In RX: Last byte received on air has been stored to RAM Disable Read: Disabled Read: Enabled Write '1' to disable interrupt for event PHYEND | Disable |
| I J RW | RW DISABLED DEVMATCH | Disabled Enabled Clear Disabled Enabled Clear Disabled Enabled | 1 0 1 1 0 1 1 0 | Read: Read: Write Read: Read: Write '1' to disable interrupt for event DEVMATCH Disable Read: Disabled Read: Enabled Write '1' to disable interrupt for event DEVMISS Disable Read: Disabled Read: Enabled Write '1' to disable interrupt for event CRCOK Disable Read: Disabled | Disabled Enabled '1' to disable interrupt for Disable Disabled Enabled |
| K | RW DEVMISS | Clear Disabled Enabled Clear | 1 1 0 1 1 0 1 1 0 | Write '1' to disable interrupt for event CRCERROR Disable Read: Disabled Read: Enabled Write '1' to disable interrupt for event BCMATCH | Write '1' to disable interrupt for event CRCERROR Disable Read: Disabled Read: Enabled Write '1' to disable interrupt for event BCMATCH |
| | CRCOK | Disabled Enabled | 1 0 1 | | |
| L | RW | | | Read: Enabled | Read: Enabled |
| M | RW CRCERROR | Clear Disabled | | Bit counter value is specified in the RADIO.BCC Disable | Bit counter value is specified in the RADIO.BCC Disable |
| N | BCMATCH | Enabled | 1 | Read: Disabled Read: Enabled Write '1' to disable interrupt for event EDEND Disable | Read: Disabled Read: Enabled Write '1' to disable interrupt for event EDEND Disable |
| | RW | Clear Disabled<br>Enabled | 1 0 1 1 0 | register | register |
| O | RW | Enabled Clear Disabled | 1 0 | Disable | Disable |
| P | EDEND | Clear Disabled | | Read: Disabled | Read: Disabled |
| | RW EDSTOPPED | | | Write '1' to disable interrupt for | Write '1' to disable interrupt for |
| Q | RW | Disabled Enabled | | | |
| | | Clear | | event<br>CCAIDLE | event<br>CCAIDLE |
| | | Enabled | 1 | Read: Disabled Read: Enabled<br>Read: Disabled Read: Enabled Write '1' to disable interrupt for event<br>Disable<br>EDSTOPPED | Read: Disabled Read: Enabled<br>Read: Disabled Read: Enabled Write '1' to disable interrupt for event<br>Disable<br>EDSTOPPED |
| | CCAIDLE | | 1 | Read: Enabled | Read: Enabled |
| Bit ID | | | number | 31 30 29 28 27 26 25 24 23 | 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 W V U T S R Q P O N M L K J I H G F E D | 2 1 C B |
| ------------------ | ------------------ | ------------ | ------------------ | ------------------------------ | ------------------------------ | ------------------ |
| Reset 0x00000000 | Reset 0x00000000 | | | 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 |
| ID | R/W Field | Value ID | | Value | Description | |
| R RW | CCABUSY | | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | Write '1' to disable interrupt for event CCABUSY<br>Disable<br>Read: Disabled<br>Read: Enabled | |
| S | RW | CCASTOPPED | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | Write '1' to disable interrupt for event CCASTOPPED<br>Disable<br>Read: Disabled<br>Read: Enabled | |
| T | RW | RATEBOOST | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | Write '1' to disable interrupt for event RATEBOOST<br>Disable<br>Read: Disabled<br>Read: Enabled | |
| U | RW | MHRMATCH | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | Write '1' to disable interrupt for event MHRMATCH<br>Disable<br>Read: Disabled<br>Read: Enabled | |
| V | RW | SYNC | Clear<br>Disabled Enabled | 1<br>0 1 | Write '1' to disable interrupt for event SYNC<br>MODE=Ble_LR125Kbit, Ble_LR500Kbit, or Ieee802154_250Kbit: A possible preamble has been received. However, due to the sporadic reception of noise, this event can be falsely triggered.<br>For MODE=Nrf_1Mbit, Nrf_2Mbit, Ble_1Mbit, or<br>Ble_2Mbit: A possible preamble and the first two bytes of the address field has been received. The in this mode.<br>event can be generated falsely also<br>the event<br>It is also possible that is not generated, or not the ADDRESS event.<br>Disable Read: Disabled<br>Read: Enabled | generated before |
| W | RW | CTEPRESENT | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | Write '1' to disable interrupt for event CTEPRESENT<br>Disable<br>Read: Disabled<br>Read: Enabled | |
## 8.17.14.76 INTENSET10
Address offset: 0x4A8
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 | | 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 READY | | Write '1' to enable interrupt for event READY |
| | Set | 1 Enable |
| | Disabled | 0 Read: Disabled |
| | Enabled | 1 Read: Enabled |
| B RW TXREADY | | Write '1' to enable interrupt for event TXREADY |
| | 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 | | | 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 | Reset 0x00000000 | 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 | RXREADY | | Write '1' to enable interrupt for event RXREADY |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| D RW | ADDRESS | | Write '1' to enable interrupt for event ADDRESS |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| E RW | FRAMESTART | | Write '1' to enable interrupt for event FRAMESTART |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| F RW | PAYLOAD | | Write '1' to enable interrupt for event PAYLOAD |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| G RW | END | | Write '1' to enable interrupt for event END<br>In TX: Last byte to be transmitted has been fetched from RAM<br>In RX: Last byte received on air has been stored to RAM |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| H RW | PHYEND | | Write '1' to enable interrupt for event PHYEND |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled | 1 Read: Enabled |
| I RW | DISABLED | | Write '1' to enable interrupt for event DISABLED |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| J RW | DEVMATCH | | Write '1' to enable interrupt for event DEVMATCH |
| | | Set 1 | Enable |
| | | Disabled | 0 Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| K RW | DEVMISS | | Write '1' to enable interrupt for event DEVMISS |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled 1 | Read: Enabled |
| L RW | CRCOK | | Write '1' to enable interrupt for event CRCOK |
| | | Set 1 | Enable |
| | | Disabled 0 | Read: Disabled |
| | | Enabled | Read: Enabled |
| M | | | Write '1' to enable interrupt for event CRCERROR<br>1<br>1 |
| RW | CRCERROR | | |
| | | Set | 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 | 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 |
| ------------------- | ---------------------------- | ------------------------------ | --------------- | ------------------------------ | ------------------------------ |
| ID | | | | W V U T S R Q P O N M L K J I H G F E D C B A | W V U T S R Q P O N M L K J I H G F E D C B A |
| Reset 0 0 0 0 ID | 0x00000000 R/W Field | Value ID | Value | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Description | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Description |
| N | RW BCMATCH | | | Write '1' Bit counter value is specified in the RADIO.BCC register Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event EDEND | to enable interrupt for event BCMATCH |
| 0 1 O | EDEND | Set Disabled Enabled Set | 1 | | |
| 0 | RW | Disabled Enabled Set | 1 1 | Enable Read: Read: Write '1' Write '1' to enable interrupt for event RATEBOOST Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event MHRMATCH Enable Read: Disabled | Disabled Enabled to enable interrupt for event EDSTOPPED |
| P Q 1 0 1 R 1 0 1 | RW EDSTOPPED RW CCASTOPPED | Disabled Enabled Set Set Disabled Enabled Set Disabled Enabled Set Disabled Enabled | 1 0 1 | Enable Read: Read: Write '1' Read: Enabled Write '1' to enable interrupt for event SYNC MODE=Ble_LR125Kbit, Ble_LR500Kbit, or Ieee802154_250Kbit: A | Disabled Enabled to enable interrupt for event CCASTOPPED |
| 1 0 1 1 0 1 T 1 | RW CCAIDLE RW CCABUSY | Disabled Enabled | | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CCAIDLE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CCABUSY Enable Read: Read: | Disabled Enabled |
| S 0 1 U | RW RATEBOOST RW MHRMATCH | | | preamble has been received. However, due to the sporadic reception of noise, this event can be falsely triggered. For MODE=Nrf_1Mbit, Nrf_2Mbit, Ble_1Mbit, or Ble_2Mbit: A possible preamble and the first two bytes of the address field has been received. event can be generated falsely also in this mode. | preamble has been received. However, due to the sporadic reception of noise, this event can be falsely triggered. For MODE=Nrf_1Mbit, Nrf_2Mbit, Ble_1Mbit, or Ble_2Mbit: A possible preamble and the first two bytes of the address field has been received. event can be generated falsely also in this mode. |
| V | | Set Disabled Enabled | | possible It is also possible that the event is not generated, or not generated before<br>The | possible It is also possible that the event is not generated, or not generated before<br>The |
| 1 | | Set Disabled Enabled | 0 | the ADDRESS event. Enable | the ADDRESS event. Enable |
| | RW<br>SYNC | | | Read: Disabled | Read: Disabled |
| | RW | | 1 | Read: Enabled<br>Write '1' to enable interrupt for event CTEPRESENT | Read: Enabled<br>Write '1' to enable interrupt for event CTEPRESENT |
| W | CTEPRESENT | Set<br>Disabled | 1<br>0 | Enable | Enable |
| | | Enabled | 1 | Read: Disabled<br>Read: Enabled | Read: Disabled<br>Read: Enabled |

## 8.17.14.77 INTENCLR10
Address offset: 0x4B0
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 |
| -------------- | --------------- | ---------- | ------------ | ------------------------------ |
| Reset | 0x00000000 | | 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 TXREADY | | | Write '1' to disable interrupt for event TXREADY |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| C | RW RXREADY | | | Write '1' to disable interrupt for event RXREADY |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| D | RW ADDRESS | | | Write '1' to disable interrupt for event ADDRESS |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| E | RW FRAMESTART | | | Write '1' to disable interrupt for event FRAMESTART |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| F | RW PAYLOAD | | | Write '1' to disable interrupt for event PAYLOAD |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| G | RW END | | | Write '1' to disable interrupt for event END<br>In TX: Last byte to be transmitted has been fetched from RAM<br>In RX: Last byte received on air has been stored to RAM |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| H | RW PHYEND | | | Write '1' to disable interrupt for event PHYEND |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| I | RW DISABLED | | | Write '1' to disable interrupt for event DISABLED |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| J | RW DEVMATCH | Disabled<br>Clear | 1<br>1 | Write '1' to disable interrupt for event DEVMATCH<br>Disable<br>Read: Disabled |
| | | Enabled | 0 | Read: Enabled |
| K | RW DEVMISS | | | Write '1' to disable interrupt for event DEVMISS |

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 | | | | 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 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
| L RW | CRCOK | | | Write '1' to disable interrupt for event CRCOK |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| M RW | CRCERROR | | | Write '1' to disable interrupt for event CRCERROR |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| N RW | BCMATCH | | | Write '1' to disable interrupt for event BCMATCH<br>Bit counter value is specified in the RADIO.BCC register |
| | | 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 | MHRMATCH | | | Write '1' to disable interrupt for event MHRMATCH |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |


| Bit number | | 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 |
| ------------------ | ------------------ | ------------------------------ |
| ID | | 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 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID R/W Field | Value ID | Description |
| V RW SYNC | | Write '1' to disable interrupt for event SYNC MODE=Ble_LR125Kbit, Ble_LR500Kbit, or Ieee802154_250Kbit: A possible preamble has been received. However, due to the sporadic reception of noise, this event can be falsely triggered. For MODE=Nrf_1Mbit, Nrf_2Mbit, Ble_1Mbit, or Ble_2Mbit: A possible preamble and the first two bytes of the address field has been received. The event can be generated falsely also in this mode. It is also possible that the event is not generated, or not generated before the ADDRESS event. |
| W RW | | Write '1' to |
| | Disabled | Read: Disabled |
| | Enabled | Read: Enabled |
| | CTEPRESENT | disable interrupt for event CTEPRESENT |
| | Clear | Disable |
| | Enabled | Read: Enabled |
## 8.17.14.78 MODE
Address offset: 0x500
Data rate and modulation

| Bit number |
| -------------- |
## 8.17.14.79 STATE
Address offset: 0x520
Current radio state


| Bit number | Bit 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 |
| ------------------ | ------------------ | ------------------ | ------------------------------ |
| ID A A A A | ID A A A A | ID A A A A | ID A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 | A R STATE | 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 RXDISABLE 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 TXDISABLE state |
## 8.17.14.80 EDCTRL
Address offset: 0x530
IEEE 802.15.4 energy detect 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 | B B B B B B 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 Description |
| A RW EDCNT | 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. |
| B RW EDPERIOD | IEEE 802.15.4 energy detect period, 4us resolution, no averaging except the IEEE 802.15.4 ED range 128us (32) EDPERIOD value other than Default is not supported. |
## 8.17.14.81 EDSAMPLE
Address offset: 0x534
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 Description |
| A R EDLVL | [0..127] IEEE 802.15.4 energy detect level |
Register value must be converted to IEEE 802.15.4 range by an 8-bit saturating multiplication by factor ED\_RSSISCALE, as shown in the code example for ED sampling

## 8.17.14.82 CCACTRL
Address offset: 0x538
IEEE 802.15.4 clear channel assessment control

| Bit number | Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | 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 | Reset 0x052D0000 | Reset 0x052D0000 | 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 | EdMode | 0 | | | | CCA mode of operation<br>Energy above threshold<br>Will report busy whenever energy detected above CCAEDTHRES | Will report busy whenever energy detected above CCAEDTHRES | Will report busy whenever energy detected above CCAEDTHRES | is<br>Will report busy whenever energy detected above CCAEDTHRES | Will report busy whenever energy detected above CCAEDTHRES | Will report busy whenever energy detected above CCAEDTHRES | Will report busy whenever energy detected above CCAEDTHRES | Will report busy whenever energy detected above CCAEDTHRES | | | |
| | | | CarrierMode<br>CarrierAndEdMode<br>CarrierOrEdMode<br>EdModeTest1 | 1<br>2<br>3<br>4 | | | | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen<br>Energy above threshold AND carrier<br>Energy above threshold OR carrier<br>Energy above threshold test mode that will abort when first ED measurement over threshold is seen. No averaging. | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen<br>seen<br>seen | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen | Carrier seen<br>Will report busy whenever compliant IEEE 802.15.4 signal is seen | | | |
| B | RW | CCAEDTHRES | | | | | | CCA energy busy threshold. Used in all the CCA modes except CarrierMode.<br>Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | Must be converted from IEEE 802.15.4 range by dividing by factor<br>ED_RSSISCALE - similar to EDSAMPLE register | | | |
| C | RW | CCACORRTHRES | | | | | | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | CCA correlator busy threshold. Only relevant to CarrierMode,<br>CarrierAndEdMode, and CarrierOrEdMode. | | | |
| D | RW | CCACORRCNT | | | | | | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | Limit for occurances above CCACORRTHRES. When not equal to zero the<br>corrolator based signal detect is enabled. | | | |
## 8.17.14.83 DATAWHITE
Address offset: 0x540
Data whitening 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 B B B B B B B B A A A A A A A A A |
| Reset 0x00890040 | 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
| ID R/W Field | Value Description |
| A RW IV | Whitening initial value Data whitening initial value. |
| B RW POLY | Whitening polynomial |
## 8.17.14.84 TIMING
Address offset: 0x704
Timing

| Bit number | Bit 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 | ID A | ID A | ID A |
| Reset 0x00000001 | Reset 0x00000001 | 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 | Field | Value ID | Value Description |
| A | RU | | Ramp-up time |
| | | Legacy | 0 Legacy ramp-up time |
| | | Fast | 1 Fast ramp-up (default) |
## 8.17.14.85 FREQUENCY
Address offset: 0x708

## Frequency

## 8.17.14.86 TXPOWER
Address offset: 0x710
Output power


## 8.17.14.87 TIFS
## Address offset: 0x714
Interframe spacing in μs

## 8.17.14.88 RSSISAMPLE
Address offset: 0x718
RSSI sample

## 8.17.14.89 FREQFINETUNE
Address offset: 0x0804
Fine tuning of the RF frequency
Receiver sensitivity may be degraded when operating on 2414, 2415, 2430, 2431, 2446, 2447, 2462, 2463, 2478 or 2479 MHz with a small but non-zero FSFREQFINETUNE value
This register will not be reset by the SOFTRESET task

## 8.17.14.90 FECONFIG
Address offset: 0x908
Config register
This register will not be reset by the SOFTRESET task


## 8.17.14.91 DFEMODE
Address offset: 0xD00
Whether to use Angle-of-Arrival (AOA) or Angle-of-Departure (AOD)

## 8.17.14.92 DFESTATUS
Address offset: 0xD04
DFE status information

## 8.17.14.93 DFECTRL1
Address offset: 0xD10
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 5 4 | 7 3 | | | 6 | | | 0 | 2 1 |
| ------- | ------------ | ------------------- | ----------- | ------------------------------ | ----------- | ------------------------------ | ---------------------------- | ------------ | ----------------- | ------- | ------------------- | ------------------------------ | ----- | ---- | ----- | ------- |
| ID | | | | | H H H | F E D | H G G G | 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 | 1 1 0 | 0 0 | 0 0 | 1 0 | 1 0 | | | 1 0 |
| ID | R/W | Field | Value ID | Value | | | 0 Description | | | | | 0 | | | | |
| A | RW | NUMBEROF8US | | | | AoA/AoD procedure<br>but in RX | Length of the<br>Always used in TX | in<br>mode, mode | 8 us units<br>CTEINLINECTRLEN | is 0 | | number of<br>only when | | | | |
| B | RW | DFEINEXTENSION | CRC<br>Payload | 1<br>0 | Add CTE | and do antenna triggered at end | extension AoA/AoD<br>Antenna switching/sampling | of CRC<br>is done in | in this<br>payload | | extension | switching/sampling<br>the packet | | | | |
| C | RW | TSWITCHSPACING | 4us 2us | 1 2 | | every time the antenna | Interval between 4us<br>2us 1us | | in the | state | SWITCHING | is changed | | | | |
| D | RW | TSAMPLESPACINGREF | 1us<br>1us 500ns<br>250ns | 3<br>3 4<br>5 | | samples in the REFERENCE | Interval between<br>1us 0.5us 0.25us<br>0.125us | | period | | | | | | | |
| E | RW | SAMPLETYPE | IQ | | | I/Q or magnitude/phase and | Whether Complex samples | Q | | | | | | | | |
| F | RW | TSAMPLESPACING | 4us<br>2us<br>1us<br>500ns<br>250ns | 1<br>2 3<br>4<br>5 | | when CTEINLINERXMODE1US or | Note:<br>4us<br>2us<br>1us<br>0.5us<br>0.25us | | are | | Then either used. | CTEINLINECTRLEN is set. CTEINLINERXMODE2US | | | | |
## 8.17.14.94 DFECTRL2
Address offset: 0xD14
Start offset for Direction finding


## 8.17.14.95 SWITCHPATTERN
## Address offset: 0xD28
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 the total number of antenna slots is bigger than the number of patterns, we loop back to the pattern used after the reference pattern.

## 8.17.14.96 CLEARPATTERN
Address offset: 0xD2C
Clear the GPIO pattern array for antenna control

Behaves as a task register, but does not have PPI nor IRQ
## 8.17.14.97 PSEL.DFEGPIO[n] (n=0..7)
Address offset: 0xD30 + (n × 0x4)
Pin select for DFE pin n
Note:
Must be set before enabling the radio


| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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 | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.17.14.98 DFEPACKET
DFE packet EasyDMA channel
## 8.17.14.98.1 DFEPACKET.PTR
Address offset: 0xD50
Data pointer

See the memory chapter for details about which memories are available for EasyDMA.
## 8.17.14.98.2 DFEPACKET.MAXCNT
Address offset: 0xD54
Maximum number of bytes to transfer

## 8.17.14.98.3 DFEPACKET.AMOUNT
Address offset: 0xD58
Number of bytes transferred in the last transaction

## 8.17.14.98.4 DFEPACKET.CURRENTAMOUNT
Address offset: 0xD5C

## Number of bytes transferred in the current transaction

## 8.17.14.99 CRCSTATUS
Address offset: 0xE0C
CRC status

## 8.17.14.100 RXMATCH
Address offset: 0xE10
Received address

Logical address of which previous packet was received
## 8.17.14.101 RXCRC
Address offset: 0xE14
CRC field of previously received packet

CRC field of previously received packet
## 8.17.14.102 DAI
Address offset: 0xE18
Device address match index


## 8.17.14.103 PDUSTAT
Address offset: 0xE1C
Payload status

| Bit number | Bit 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 B B A | ID B B A | ID B B A | ID B B A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.17.14.104 PCNF0
Address offset: 0xE20
Packet configuration register 0
| Bit number | Bit number | Bit number | Bit number | Bit number |
| -------------- | -------------- | -------------- | -------------- | -------------- |
## 8.17.14.105 PCNF1
Address offset: 0xE28

## Packet configuration register 1
| Bit number | | | | 31 30 29 28 27 | 26 | 25 24 | 22 21 20 19 18 | 17 16 15 14 | 13 12 11 10 9 | 2 1 0 | 2 1 0 |
| -------------- | ------- | ------------- | ----------- | ------------------ | ------ | --------- | ------------------------------ | ------------------------------ | ------------------------------ | --------- | --------- |
| ID | | | | | | F E | | C C C B | B B B B B B | A A | A A |
| Reset | Reset | 0x00000000 | | 0 0 0 | 0 0 | 0 0 | 0 0 | 0 0 0 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 MAXLEN, the | length of packet radio will | payload. If the packet truncate the payload | | |
| B | RW | STATLEN | | [0..255] | | | Static length The static sending and will receive | in number of length parameter receiving send N bytes | bytes is added to the packets, e.g. if the more than what | | |
| C | RW | BALEN | | [2..4] | | | Base address The address address prefix, | length in number field is composed e.g. set | of bytes of the base BALEN=2 to get a | | |
| D | RW | ENDIAN | | | | | On-air endianness PAYLOAD fields. | of packet, | this applies to the S0, | | |
| E | RW | WHITEEN | Disabled | 1 | | | Most significant Enable or Including<br>the packets. Disable Enable | bit on disable packet address field<br>to S0 | whitening<br>CRC check is not supported | | |
| F | RW | WHITEOFFSET | Include 0 | | | | whitening<br>included | is enabled can<br>in whitening | be configured to be | | |
## 8.17.14.106 BASE0
Address offset: 0xE2C
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 Description |
## 8.17.14.107 BASE1
Address offset: 0xE30
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 Description |
| A RW BASE1 | Base address 1 |

## 8.17.14.108 PREFIX0
Address offset: 0xE34
Prefixes bytes for logical addresses 0-3

## 8.17.14.109 PREFIX1
Address offset: 0xE38
Prefixes bytes for logical addresses 4-7

## 8.17.14.110 TXADDRESS
Address offset: 0xE3C
Transmit address select

Logical address to be used when transmitting a packet
## 8.17.14.111 RXADDRESSES
Address offset: 0xE40
Receive address select

## 8.17.14.112 CRCCNF
Address offset: 0xE44 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 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 | | CRC length in number of bytes. |
| | Disabled 0 One 1 | CRC length is zero and CRC calculation is disabled CRC length is one byte and CRC calculation is enabled |
| | Two 2 | CRC length is two bytes and CRC calculation is enabled |
| | Three 3 | CRC length is three bytes and CRC calculation is enabled |
| B RW SKIPADDR | Include 0 | Control whether CRC calculation skips the address field. Other fields can also be skipped. CRC calculation includes address field |
| | Skip 1 | CRC calculation starting at first byte after address field. |
| | Ieee802154 2 | CRC calculation starting at first byte after length field (as per 802.15.4 standard). |
| SkipS0 | 3 | CRC calculation starting at first byte after S0 field. |
| | 4 | CRC calculation starting at first byte after S1 field. |
| SkipS1 | | |
## 8.17.14.113 CRCPOLY
## Address offset: 0xE48
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 .
## 8.17.14.114 CRCINIT
## Address offset: 0xE4C
CRC initial value

Initial value for CRC calculation
## 8.17.14.115 DAB[n] (n=0..7)
Address offset: 0xE50 + (n × 0x4)

## Device address base segment n

## 8.17.14.116 DAP[n] (n=0..7)
Address offset: 0xE70 + (n × 0x4)
Device address prefix n

## 8.17.14.117 DACNF
Address offset: 0xE90
Device address match configuration

## 8.17.14.118 BCC
Address offset: 0xE94
Bit counter compare

Bit counter compare register
## 8.17.14.119 CTESTATUS
Address offset: 0xEA4
CTEInfo parsed from received packet


## 8.17.14.120 MHRMATCHCONF
Address offset: 0xEB4
Search pattern configuration

## 8.17.14.121 MHRMATCHMASK
Address offset: 0xEB8
Pattern mask

A
RW
MHRMATCHMASK
## 8.17.14.122 SFD
Address offset: 0xEBC
IEEE 802.15.4 start of frame delimiter

## 8.17.14.123 CTEINLINECONF
Address offset: 0xEC0
Configuration for CTE inline mode
Pattern mask
IEEE 802.15.4 start of frame delimiter. Note: the least significant 4 bits of the SFD cannot all be zeros.

| Bit | number | | | 31 30 29 28 27 26 25 24 23 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 G G G | H G G G G G F F | A |
| Reset ID | 0x00002800 R/W | Field | Value ID | 0 0 0 0 0 0 0 0 Value | 0 0 0 0 0 0 0 0 0 0 Description | 0 0 0 |
| A | RW | CTEINLINECTRLEN | | | Enable parsing of CTEInfo from | received packet in BLE modes |
| B | RW | CTEINFOINS1 | Enabled Disabled InS1 | 1 0 | Parsing of CTEInfo is enabled Parsing of CTEInfo is disabled | PDU) |
| | | | NotInS1 | not 1 (data CTEInfo is NOT in S1 byte | CTEInfo is S1 byte or CTEInfo is in S1 byte | (advertising PDU) |
| C | RW | CTEERRORHANDLING CTETIMEVALIDRANGE | Yes No | 0 | Max range of CTETime Note: Valid range is 2-20 in BLE core spec. If larger be an indication of an error in the received 20 in 8us unit (default) Set to 20 if parsed CTETime is larger han 20 31 in 8us unit in | Sampling/switching if CRC is not OK Sampling and antenna switching also when CRC is not OK sampling and antenna switching when CRC is not OK |
| D | RW | | | 1 0 | No | |
| E | RW | | 20 31 63 CTEINLINERXMODE1US 4us<br>2us 1us 500ns | 0 1 2 the device is in 1 us". When in AoA 1<br>2 3 4 0.5us 5 0.25us 0.125us | 63 When AoD "AoD 4us 2us 1us<br>mode, this is mode, this is | 8us unit<br>packet. Spacing between samples for the samples in the SWITCHING period when CTEINLINEMODE is set |
| F | RW | | 250ns 125ns<br>250ns | "AoD 2 us". 1 2<br>3 4 5 | for the mode, this mode, this is | samples samples in the SWITCHING period when is set is in AoD is used when the received CTEType When in AoA used when TSWITCHSPACING is 4 |
| G | | S0CONF | | 4us 2us | to match significant bit always<br>to set which bit to match | bit pattern<br>corresponds to the first bit of S0 received |
| H | RW<br>RW | S0MASK<br>CTEINLINERXMODE2US | 4us 2us 1us 500ns<br>125ns | 6<br>6 | The least S0 bit mask<br>The<br>1us 0.5us 0.25us 0.125us<br>Spacing between CTEINLINEMODE<br>When the device<br>S0 | least<br>significant bit always corresponds to the first bit of S0 received<br>is us. |
## 8.17.14.124 PACKETPTR
Address offset: 0xED0
Packet pointer


## 8.17.14.125 CSTONES.MODE
Address offset: 0x1000
Selects the mode(s) that are activated on the start signal

## 8.17.14.126 CSTONES.NUMSAMPLES
Address offset: 0x1004
Number of input samples at 2MHz sample rate

## 8.17.14.127 CSTONES.NEXTFREQUENCY
Address offset: 0x1008
The value of FREQUENCY that will be used in the next step

A
RW
NEXTFREQUENCY
## 8.17.14.128 CSTONES.FFOIN
Address offset: 0x100C
Override value of FFO (Fractional Frequency Offset) if not to be based on the frequency estimate derived from CnAcc (autocorrelation of the scaled input signal) value
Frequency = 2400 + FREQUENCY (MHz)


## 8.17.14.129 CSTONES.FFOSOURCE
Address offset: 0x1010
Source of FFO

## 8.17.14.130 CSTONES.FAEPEER
Address offset: 0x1014
FAEPEER (Frequency Actuation Error) of peer if known. Used during Mode 0 steps.

## 8.17.14.131 CSTONES.PHASESHIFT
Address offset: 0x1018
Parameter used in TPM, provided by software

## 8.17.14.132 CSTONES.NUMSAMPLESCOEFF
## Address offset: 0x101C
Parameter used in TPM, provided by software


## 8.17.14.133 CSTONES.PCT16
Address offset: 0x1020
Mean magnitude and mean phase converted to IQ

## 8.17.14.134 CSTONES.MAGPHASEMEAN
Address offset: 0x1024
Mean magnitude and phase of the signal before it is converted to PCT16

## 8.17.14.135 CSTONES.IQRAWMEAN
Address offset: 0x1028
Mean of IQ values

## 8.17.14.136 CSTONES.MAGSTD
Address offset: 0x102C
Magnitude standard deviation approximation


A
R
MAGSTD
## 8.17.14.137 CSTONES.CNACC
Address offset: 0x1030
Output of the autocorrelation of the accumulated IQ signal

## 8.17.14.138 CSTONES.FFOEST
Address offset: 0x1034
FFO estimate

A
R
FFOEST
## 8.17.14.139 CSTONES.DOWNSAMPLE
Address offset: 0x1038
Turn on/off down sample of input IQ-signals

## 8.17.14.140 CSTONES.FINETUNENEXT
Address offset: 0x103C
Number of full ADPLL finetune steps
Magnitude standard deviation approximation
Units 62.5 ppb. Max range +/-100 ppm plus margin.


## 8.17.14.141 CSTONES.CFOPHASE
Address offset: 0x1040
Cordic output of CnAcc

## 8.17.14.142 CSTONES.FREQOFFSET
## Address offset: 0x1044
Frequency offset estimate

## 8.17.14.143 CSTONES.PCT11
## Address offset: 0x1048
Mean magnitude and mean phase converted to IQ. IQ values limited to [-1024,1023].

## 8.17.14.144 CSTONES.LFAENEXT
## Address offset: 0x104C
Quantization error between ADPLL frequency and the desired value of FFO * RF Frequency. Values limited to [-64,63] with units 7.6294 Hz.


## 8.17.14.145 RTT.CONFIG
Address offset: 0x1050
RTT Config.

| Bit number |
| -------------- |
## 8.17.14.146 RTT.SEGMENT01
Address offset: 0x1054
RTT segments 0 and 1

## 8.17.14.147 RTT.SEGMENT23
Address offset: 0x1058
RTT segments 2 and 3

## 8.17.14.148 RTT.SEGMENT45
Address offset: 0x105C
RTT segments 4 and 5
Data Bits 63 - 32


## 8.17.14.149 RTT.SEGMENT67
Address offset: 0x1060
RTT segments 6 and 7

## 8.18 SAADC - Successive approximation analog-todigital converter
The SAADC peripheral is a differential successive approximation register (SAR) analog-to-digital converter.
The main features of SAADC are the following:
- Four accuracy modes
- 10-bit mode with a maximum sample rate of 2 Msps
- 12-bit mode with a sample rate of 250 ksps
- 14-bit mode with a sample rate of 31.25 ksps
- Oversampling mode with configurable sample rate
- 10-bit resolution in single-ended mode, 11-bit resolution in differential mode, and 12/14-bit resolution with oversampling
- Multiple analog inputs
- GPIO pins with analog function (input range 0 to VDD)
- VDD (divided down to a valid range)
- Up to eight input channels
- One input per single-ended channel, and two inputs per differential channel
- Scan mode can be configured with both single-ended inputs and differential inputs
- Each channel can be configured to select any of the above analog inputs
- Sampling triggered by a task from software or a DPPI channel for full flexibility on sample frequency source from low-power 32.768 kHz RTC or more accurate 1/16 MHz timers
- One-shot conversion mode to sample a single channel
- Scan mode to sample a series of channels in sequence with configurable sample delay
- Support for direct sample transfer to RAM using EasyDMA
- Interrupts on single sample and full buffer events
- Samples stored as 16-bit two's complement values for differential and single-ended sampling
- Continuous sampling without the need of an external timer
- On-the-fly limit checking

## 8.18.1 Shared resources
The ADC can coexist with COMP and other peripherals using one of AIN0-AIN7 , provided these are assigned to different pins.
It is not recommended to select the same analog input pin for both modules.
## 8.18.2 Overview
The ADC supports up to eight external analog inputs. 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:
- GPIO pins with analog input function, see Pin assignments on page 837, also marked with name AIN . Input range is 0 to VDD.
- VDD (divided down to a valid range)
- DVDD
- AVDD
Channels can be sampled individually in one-shot or continuous sampling modes, or, using scan mode, multiple channels can be sampled in sequence. To improve noise performance, channels can be oversampled.
Oversampling can be done with either noise shaping or by accumulation and averaging.
Figure 131: Simplified ADC block diagram

Internally, the ADC is always a differential analog-to-digital converter, but by default it is configured with single-ended input in the MODE field of the CH[n].CONFIG register. In single-ended mode, the negative input will be shorted to ground internally.
The assumption in single-ended mode 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 in single-ended mode. If this is a concern we recommend using differential measurement.

## 8.18.3 Digital output
The output result of the ADC depends on the settings in the CH[n].CONFIG and RESOLUTION registers as follows:
RESULT = [V(P) - V(N) ] * GAIN/REFERENCE * 2 (RESOLUTION - m)
where
V(P)
is the voltage at input P
V(N)
is the voltage at input N
GAIN
is the selected gain setting
m
is the mode setting. Use m=0 if CONFIG.MODE=SE, or m=1 if CONFIG.MODE=Diff
## REFERENCE
is the selected reference voltage
The result generated by the ADC will deviate from the expected due to 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.9 V differentially, and the input must be scaled accordingly with proper gain setting.
The ADC has a temperature dependent offset. If the ADC is to operate over a large temperature range, we recommend running CALIBRATEOFFSET at regular intervals. The CALIBRATEDONE event will be generated when the calibration has been completed. Note that the DONE and RESULTDONE events will also be generated.
## 8.18.4 Analog inputs and channels
Up to eight analog input channels, CH[n](n=0..7), can be configured.
See Shared resources on page 537 for shared input with comparators.
Any one of the available channels can be enabled for the ADC to operate in one-shot mode. If more than one CH[n] is configured, the ADC enters scan mode.
An analog input is selected as a positive converter input if CH[n].PSELP is set, setting CH[n].PSELP also enables the particular channel.
An analog input is selected as a negative converter input if CH[n].PSELN is set. The CH[n].PSELN register will have no effect unless differential mode is enabled and CH[n].PSELP is set, see MODE field in CH[n].CONFIG register.
Important: It is not recommended to use the same analog input pin for multiple analog peripheral functions. See also Shared resources on page 537.

## 8.18.5 Operation modes
The ADC input configuration supports several modes of sampling.
- One-shot, one channel
- One-shot, scan (one sample for each channel)
- Continuous, one channel
- Continuous, scan
Note: Scan mode and oversampling should not be combined without burst.
1. The ADC must be enabled and started via the ENABLE register and START task.
2. At least one channel must be enabled (via the CH[n].CONFIG registers).
3. Now the ADC can be sampled, by triggering the SAMPLE task.
The ADC indicates a single ongoing conversion via the register STATUS. During scan mode, oversampling, noise shaping, or continuous modes, more than a single conversion takes place in the ADC. As consequence, the value reflected in STATUS register will toggle at the end of each single conversion.
## 8.18.5.1 One-shot mode
One-shot operation is configured by enabling only one of the available channels defined by CH[n].PSELP, CH[n].PSELN, and CH[n].CONFIG registers.
Upon a SAMPLE task, the ADC powers up and starts to sample the input voltage. The CH[n].CONFIG.TACQ controls the acquisition time.
The time it takes to perform the first sample is tPWRUP + tACQ + tCONV, where tACQ is the acquisition time, t CONV is the conversion time, and t PWRUP is the time it takes to power up the ADC.
If multiple samples are taken, some combinations of tACQ and tCONV will allow SAADC to pipeline sampling and conversion, at which point the actual sampling time is just tCONV.
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. Note that both events may occur before the actual value has been transferred into RAM by EasyDMA. For more information, see EasyDMA on page 541.
## 8.18.5.2 Continuous mode
Continuous sampling can be achieved by using the internal timer in the ADC, or triggering the SAMPLE task from one of the general purpose timers through the PPI system.
Care shall be taken to ensure that the sample rate fulfils the following criteria, depending on how many channels are active:
tSAMPLE > tACQ + tCONV
If tACQ=0 and tCONV=0, SAADC will use pipelining to increase sampling speed. In this case, the time for the first sample to arrive is
tSAMPLE = tPWRUP + tACQ + tCONV
and for subsequent samples
fSAMPLE = 1/(tCONV)
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.

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. Note that both events may occur before the actual value has been transferred into RAM by EasyDMA.
## 8.18.5.3 Improving sampling accuracy
SAADC offers multiple techniques to improve accuracy. Noise shaping modes provide the highest performance by enabling a delta-sigma configuration with analog filtering, oversampling, and digital filtering. Pure oversampling is also supported.
## Oversampling
Oversampling can improve the signal-to-noise ratio (SNR) by approximately 10log(OSR), where OSR is the oversampling ratio. Each oversampled result is obtained by acquiring 2 OVERSAMPLE samples and combining them in an accumulate-and-average filter.
Oversampling and scanning can only be combined with BURST mode enabled. Without BURST mode, oversampling and scanning will average across multiple input channels.
The OVERSAMPLE register controls the accumulator. 2 OVERSAMPLE samples must be taken before the result is written to RAM. This can be achieved by either of the following:
- Use the built-in SAADC local timer and the SAMPLERATE register to perform sampling.
- Use the TIMER peripheral and DPPI to trigger the SAADC SAMPLE task, to sample 2 OVERSAMPLE times at a fixed rate.
- Trigger the SAMPLE task 2 OVERSAMPLE times from software.
- Enable BURST mode and trigger the SAMPLE task once.
BURST mode can be enabled to avoid manually triggering the SAMPLE task 2 OVERSAMPLE times. When BURST is enabled, the ADC automatically samples the input 2 OVERSAMPLE times consecutively, with an approximate timing of (tACQ + tCONV) × 2 OVERSAMPLE . Apart from extending the conversion time, it otherwise behaves like one-shot mode.
A DONE event indicates that a single sample has been acquired, while a RESULTDONE event indicates that enough samples have been gathered to transfer an oversampled result to RAM.
## Noise shaping
Noise shaping is implemented using the successive approximation ADC within a first-order delta-sigma loop. The output is decimated and subsequently filtered with FIR filters. In the noisehaping modes, the sampling rate is 1 MS/s, and high-resolution settings (RESOLUTION ≥ 12) are recommended. Enable noise shaping by configuring the NOISESHAPE register. Depending on the selected mode, the input signal must be bandwidth limited. See Electrical specification parameters fBW,NS for details.
The noise shaping are configured using the NOISESHAPE register.
- 0: Disabled: Disable noise shaping.
- NS1: Noise shaping and decimation by 8, giving a samplerate of 125 kS/s.
- NS2: Noise shaping and decimation by 32, giving a samplerate of 31.25 kS/s. Recommended resolution setting is 14 bits.
## 8.18.5.4 Scan mode
A channel is considered enabled if CH[n].PSELP is set. If more than one channel, CH[n], is enabled, the ADC enters scan mode.

In scan mode, one SAMPLE task will trigger one conversion per enabled channel. The time it takes to sample all channels is:
Total time < Sum(CH[x].tACQ+tCONV), x=0..enabled channels
A DONE event signals that one channel has been sampled.
In this mode, the RESULTDONE event comes after each sample, that is, once for each channel.
## 8.18.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 (in bytes) 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 541. 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.
Figure 132: ADC

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 14 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 bytes 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.For more information about the scan mode, see Scan mode on page 540.
Note: Ensure the Result buffer can hold at least one result for each enabled channel by setting RESULT.MAXCNT ≥ 2 × (number of enabled channels). Each sample requires two bytes. Insufficient space leads to undefined behavior.
## 8.18.7 Reference
The ADC can use different reference voltages VREF, controlled in the REFSEL field of the CH[n].CONFIG register.
These are:
- Internal reference, VREF = 0.9 V
- External reference, VREF provided by the EXTREF pin
Note: The external reference voltage should be close the internal reference voltage. Preferably no more than 5% deviation from the internal reference voltage, VREF. Using a reference voltage >1.2V will lead to increased leakage, and can lead to undefined behaviour.
The SAADC is preceded by a gain stage which has a programmable gain. The voltage range seen at the input of the gain stage is:
VRangeDifferential = ± VREF/GAIN
VRangeSingleEnded = ± 0.5*VREF/GAIN
The AIN0-AIN7 inputs cannot exceed VDD, or be lower than VSS. The input ranges are also limited by the REFERENCE and GAIN used. The condition
[V(P) - V(N) ] * GAIN/REFERENCE <= 1
must always hold true for valid measurements, otherwise the ADC will saturate and report the max value determined by the RESOLUTION.
## 8.18.8 Acquisition time
To sample the input voltage, the ADC connects a capacitor to the input.
For illustration, see the following figure. The acquisition time indicates how long the capacitor is connected, see TACQ field in CH[n].CONFIG register. The required acquisition time depends on the source (Rsource ) resistance. For high source resistance the acquisition time should be increased, see Acquisition time on page 543.

Figure 133: Simplified ADC sample network

Table 56: Acquisition time
| TACQ [μs] | Maximum source resistance [kOhm] |
| ------------- | ------------------------------ |
| ≤1 | <1 |
| 3 | 10 |
| 5 | 40 |
| 10 | 100 |
| 15 | 200 |
| 20 | 400 |
| 40 | 800 |
## 8.18.9 Limits event monitoring
A channel can be event monitored by configuring limit register CH[n].LIMIT.
If the conversion result is higher than the defined high limit, or lower than the defined low limit, the appropriate event will be generated.

Figure 134: Example of limits monitoring on channel 'n'

Note that when setting the limits, 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 fire 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.
## 8.18.10 Performance factors
Clock jitter, affecting sample timing accuracy, and circuit noise can affect ADC performance.
Jitter can be between START tasks or from START task to acquisition. START timer accuracy and startup times of regulators and references will contribute to variability. Sources of circuit noise may include CPU activity and the DC/DC regulator. Best ADC performance is achieved using START timing based on the TIMER module, HFXO clock source, and Constant Latency mode.

## 8.18.11 Registers
| Instance | Domain | Base address | TrustZone | TrustZone | TrustZone | Split | Description |
| ------------ | ---------- | ---------------- | ------------- | ------------- | ------------- | --------- | ------------------------------ |
| | | | Map | Att | DMA | access | |
| SAADC : S | GLOBAL | 0x500D5000 | US | S | SA | No | Successive approximation analog- to-digital converter SAADC |
| SAADC : NS | | 0x400D5000 | | | | | |
| Instance | Domain | Configuration | | | | | |
| ------------ | ---------- | -------------------------------------- | | | | | |
| SAADC : S | GLOBAL | CURRENTAMOUNT register not included. | | | | | |
| Register | Offset | TZ | Description |
| --------------------------- | ---------- | ------ | ------------------------------ |
| TASKS_START | 0x000 | | Start the ADC and prepare the result buffer in RAM |
| TASKS_SAMPLE | 0x004 | | Take one ADC sample, if scan is enabled all channels are sampled. This task requires that SAADC has started, i.e. EVENTS_STARTED was set and EVENTS_STOPPED was not. |
| TASKS_STOP | 0x008 | | Stop the ADC and terminate any on-going conversion |
| TASKS_CALIBRATEOFFSET | 0x00C | | Starts offset auto-calibration |
| SUBSCRIBE_START | 0x080 | | Subscribe configuration for task START |
| SUBSCRIBE_SAMPLE | 0x084 | | Subscribe configuration for task SAMPLE |
| SUBSCRIBE_STOP | 0x088 | | Subscribe configuration for task STOP |
| SUBSCRIBE_CALIBRATEOFFSET | 0x08C | | Subscribe configuration for task CALIBRATEOFFSET |
| EVENTS_STARTED | 0x100 | | The ADC DMA has started |
| EVENTS_END | 0x104 | | The ADC has filled up the Result buffer |
| EVENTS_DONE | 0x108 | | A conversion task has been completed. Depending on the mode, multiple conversions might be needed for a result to be transferred to RAM. |
| EVENTS_RESULTDONE | 0x10C | | A result is ready to get transferred to RAM. |
| EVENTS_CALIBRATEDONE | 0x110 | | Calibration is complete |
| EVENTS_STOPPED | 0x114 | | The ADC DMA has stopped |
| EVENTS_CH[n].LIMITH | 0x118 | | Last results is above CH[n].LIMIT.HIGH |
| EVENTS_CH[n].LIMITL | 0x11C | | Last results is below CH[n].LIMIT.LOW |
| PUBLISH_STARTED | 0x180 | | Publish configuration for event STARTED |
| PUBLISH_END | 0x184 | | Publish configuration for event END |
| PUBLISH_DONE | 0x188 | | Publish configuration for event DONE |
| PUBLISH_RESULTDONE | 0x18C | | Publish configuration for event RESULTDONE |
| PUBLISH_CALIBRATEDONE | 0x190 | | Publish configuration for event CALIBRATEDONE |
| PUBLISH_STOPPED | 0x194 | | Publish configuration for event STOPPED |
| PUBLISH_CH[n].LIMITH | 0x198 | | Publish configuration for event CH[n].LIMITH |
| PUBLISH_CH[n].LIMITL | 0x19C | | Publish configuration for event CH[n].LIMITL |
| SHORTS | 0x200 | | Shortcuts between local events and tasks |
| INTEN | 0x300 | | Enable or disable interrupt |
| INTENSET | 0x304 | | Enable interrupt |
| INTENCLR | 0x308 | | Disable interrupt |
| STATUS | 0x400 | | Status |
| TRIM.LINCALCOEFF[n] | 0x440 | | Linearity calibration coefficient |
| ENABLE | 0x500 | | Enable or disable ADC |
| Register | Offset | TZ | Description |
| CH[n].PSELP | 0x510 | | Input positive pin selection for CH[n] |
| CH[n].PSELN | 0x514 | | Input negative pin selection for CH[n] |
| CH[n].CONFIG | 0x518 | | Input configuration for CH[n] |
| CH[n].LIMIT | 0x51C | | High/low limits for event monitoring a channel |
| RESOLUTION | 0x5F0 | | Resolution configuration |
| OVERSAMPLE | 0x5F4 | | Oversampling configuration. OVERSAMPLE should not be combined with SCAN unless burst is enabled. The RESOLUTION is applied before averaging, thus for high OVERSAMPLE a higher RESOLUTION should be used. |
| SAMPLERATE | 0x5F8 | | Configures the sampling rate for either task-triggered or continuous operation using a local timer |
| RESULT.PTR | 0x62C | | Data pointer |
| RESULT.MAXCNT | 0x630 | | Maximum number of buffer bytes to transfer. Note that one sample is two bytes. |
| RESULT.AMOUNT | 0x634 | | Number of buffer bytes transferred since last START, updated after the END or STOPPED events |
| RESULT.CURRENTAMOUNT | 0x638 | | Number of buffer bytes transferred since last START, continuously updated |
| NOISESHAPE | 0x654 | | SAADC provides two operational noise shaping modes (one that prioritizes higher bandwith, while the other prioritizes higher accuracy) that allow trade-offs between ADC resolution, power consumption, and signal bandwidth. |
## 8.18.11.1 TASKS\_START
Address offset: 0x000
Start the ADC and prepare the result buffer in RAM

## 8.18.11.2 TASKS\_SAMPLE
## Address offset: 0x004
Take one ADC sample, if scan is enabled all channels are sampled. This task requires that SAADC has started, i.e. EVENTS\_STARTED was set and EVENTS\_STOPPED was not.

## 8.18.11.3 TASKS\_STOP
Address offset: 0x008
Stop the ADC and terminate any on-going conversion


## 8.18.11.4 TASKS\_CALIBRATEOFFSET
Address offset: 0x00C
Starts offset auto-calibration

## 8.18.11.5 SUBSCRIBE\_START
Address offset: 0x080
Subscribe configuration for task START

## 8.18.11.6 SUBSCRIBE\_SAMPLE
Address offset: 0x084
Subscribe configuration for task SAMPLE

## 8.18.11.7 SUBSCRIBE\_STOP
Address offset: 0x088
Subscribe configuration for task STOP


## 8.18.11.8 SUBSCRIBE\_CALIBRATEOFFSET
Address offset: 0x08C
Subscribe configuration for task CALIBRATEOFFSET

## 8.18.11.9 EVENTS\_STARTED
Address offset: 0x100
The ADC DMA has started

## 8.18.11.10 EVENTS\_END
Address offset: 0x104
The ADC has filled up the Result buffer

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

## 8.18.11.12 EVENTS\_RESULTDONE
Address offset: 0x10C
A result is ready to get transferred to RAM.

## 8.18.11.13 EVENTS\_CALIBRATEDONE
Address offset: 0x110
Calibration is complete

## 8.18.11.14 EVENTS\_STOPPED
Address offset: 0x114
The ADC DMA has stopped


## 8.18.11.15 EVENTS\_CH[n] (n=0..7)
Peripheral events.
## 8.18.11.15.1 EVENTS\_CH[n].LIMITH (n=0..7)
Address offset: 0x118 + (n × 0x8)
Last results is above CH[n].LIMIT.HIGH

## 8.18.11.15.2 EVENTS\_CH[n].LIMITL (n=0..7)
Address offset: 0x11C + (n × 0x8)
Last results is below CH[n].LIMIT.LOW

## 8.18.11.16 PUBLISH\_STARTED
Address offset: 0x180
Publish configuration for event STARTED

## 8.18.11.17 PUBLISH\_END
Address offset: 0x184
Publish configuration for event END


## 8.18.11.18 PUBLISH\_DONE
Address offset: 0x188
Publish configuration for event DONE

## 8.18.11.19 PUBLISH\_RESULTDONE
Address offset: 0x18C
Publish configuration for event RESULTDONE

## 8.18.11.20 PUBLISH\_CALIBRATEDONE
Address offset: 0x190
Publish configuration for event CALIBRATEDONE

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.18.11.21 PUBLISH\_STOPPED
Address offset: 0x194
Publish configuration for event STOPPED

## 8.18.11.22 PUBLISH\_CH[n] (n=0..7)
Publish configuration for events
## 8.18.11.22.1 PUBLISH\_CH[n].LIMITH (n=0..7)
Address offset: 0x198 + (n × 0x8)
Publish configuration for event CH[n].LIMITH

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.18.11.22.2 PUBLISH\_CH[n].LIMITL (n=0..7)
Address offset: 0x19C + (n × 0x8)
Publish configuration for event CH[n].LIMITL

## 8.18.11.23 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks


| Bit number | Bit 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 B A | ID B A | ID B A | ID B A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID | R/W Field | Value ID Value | Description |
| A | RW DONE_SAMPLE | | Shortcut between event DONE and task SAMPLE |
| | | Disabled 0 | Disable shortcut |
| | | Enabled 1 | Enable shortcut |
| B | RW END_START | | Shortcut between event END and task START |
| | | Disabled 0 | Disable shortcut |
| | | Enabled 1 | Enable shortcut |
## 8.18.11.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 | | | | | | | | 0 | 1 |
| ------------------ | ----- | --------------- | ------------------------------ | ----- | --------- | ---------------- | ------------------- | --------- | --------------------- | ----------- | --------- | ------- |
| ID | | | U T | | | V | S R Q P | O E D C | N M L I H G F | K J 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 | Disabled<br>Enabled | 0<br>1 | | Enable<br>or<br>Disable<br>Enable | disable interrupt | for | event STARTED | | | |
| B | RW | END | disable<br>Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | interrupt | for | event END | | | |
| C | RW | DONE | Disabled | 0 | Enable | Enable or<br>Disable | disable interrupt | for | event DONE | | | |
| D | RW | RESULTDONE | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable Enable | disable interrupt | for | event RESULTDONE | | | |
| E | RW | CALIBRATEDONE | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable interrupt | for | event CALIBRATEDONE | | | |
| F | RW | STOPPED | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable interrupt | for | event STOPPED | | | |
| G | RW | CH0LIMITH | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable interrupt | for | event | CH0LIMITH | | |
| H | RW | CH0LIMITL | Disabled | 0 | | Enable or<br>Disable | disable interrupt | for | event | CH0LIMITL | | |
| I | RW | CH1LIMITH | Disabled<br>1<br>Enabled | 0 | | Enable<br>Enable or<br>Disable<br>Enable | disable interrupt<br>disable | for | event | CH1LIMITH | | |
| J | RW | CH1LIMITL | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | interrupt | for | event | CH1LIMITL | | |
| K | RW | CH2LIMITH | disable<br>Disabled | 0 | | Enable or<br>Disable | interrupt | for | event | CH2LIMITH | | |
| Bit number | | | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 | 1 |
| ------------------ | ------------------ | ---------- | ------------------------------ | ------------------------------ |
| ID | | | | V U T S R Q P O N M L K J I H G F E D C B |
| Reset 0x00000000 | Reset 0x00000000 | | 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID R/W | Field | Value ID | Value | Description |
| 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 |
| | | 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 |
## 8.18.11.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 | | 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 |

| Bit number | | | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 |
| ------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
| ID | | | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A | V U T S R Q P O N M L K J I H G F E D C B A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID | R/W Field | Value ID | Value | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description | Description |
| | | Disabled | 0 | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled |
| | | Enabled | 1 | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled |
| C | RW DONE | | | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event | Write '1' to enable interrupt for event |
| | | Set Disabled | 1 | Enable Read: Disabled | 0 | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled | Enable Read: Disabled |
| | RW RESULTDONE | Enabled | 1 | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable | Read: Enabled Write '1' to enable |
| D F | Set RW CALIBRATEDONE RW STOPPED | Disabled Enabled Set Disabled Enabled | 1 0 | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | 1 1 0 1 | '1' | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable | interrupt for event RESULTDONE Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CALIBRATEDONE Enable Read: Disabled Read: Enabled Write to enable |
| E G H I | Set RW CH0LIMITH Set RW CH0LIMITL Set RW RW CH1LIMITL RW CH2LIMITH | Disabled Enabled Disabled Enabled Set Disabled Enabled Set | 1 0 | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled | Read: Disabled Read: Enabled Write to enable Read: Disabled Read: Enabled Write to enable Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH2LIMITH Enable Read: Disabled |
| K | CH1LIMITH<br>Disabled | Enabled | 1 | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled |
| | RW CH2LIMITL | Enabled Set Disabled | 1 | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL | Write '1' to enable interrupt for event CH2LIMITL |
| J | | | 1 0 1 | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable |
| | | | 0<br>1 | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled | Read: Disabled Read: Enabled |
| L | | Disabled<br>Enabled | | | | | | | | | | | | | | | | | | | |
| | Set | Disabled Enabled | 1 1 0 1 | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable | Enable Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITH Enable |
| | CH3LIMITH | Set Disabled Enabled | | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for | Read: Disabled Read: Enabled Write '1' to enable interrupt for |
| M | RW CH3LIMITL | | | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL | Read: Disabled Read: Enabled Write '1' to enable interrupt for event CH1LIMITL |
| | RW | | | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable | Enable |
| | | | | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for | Write '1' to enable interrupt for |
| | | | | event | event | event | event | event | event | event | event | event | event | event | event | event | event | event | event | event | event |
| | | | 1<br>0<br>1 | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable | CH3LIMITH Enable |
| N | | Set | 1 | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL | event CH3LIMITL |
| | | Disabled | 0 | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled | Read: Disabled |
| | | Enabled | 1 | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled | Read: Enabled |
| Bit number ID | | | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 | 0 V U T S R Q P O N M L K J I |
| ----------------- | -------------- | ---------- | ------------------------------ | ------------------------------ |
| | | | 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID R/W | Field | Value ID | Value | Description |
| 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 |
| | | 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 |
## 8.18.11.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 | | 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 |

| Bit number | | | | 31 30 29 28 27 26 25 24 23 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 | | | V U T S R Q P O N M L K J I H G F E D C B A 0 0 0 0 0 0 0 0 0 0 0 0 0 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 DONE | Clear | | Write '1' to disable interrupt for event DONE Disable |
| D | RW RW | Clear | 1 | interrupt for event RESULTDONE Read: Enabled Write '1' to disable interrupt for event Disable Read: Disabled Read: Enabled Write '1' to disable interrupt for event STOPPED |
| | RESULTDONE | Disabled Enabled | | Disable Read: Disabled Read: Enabled Write '1' to disable interrupt for event Disable |
| E | CALIBRATEDONE | Clear Disabled Enabled | 0 1 | CALIBRATEDONE CH0LIMITH Read: Disabled |
| F | RW STOPPED RW CH0LIMITH | Clear Disabled Enabled Clear Disabled | 1 | Read: Disabled |
| G | RW CH0LIMITL | Enabled Enabled Clear Disabled | 1 0 1 | interrupt for event CH0LIMITL Disable Read: Disabled Read: Enabled |
| H | | Clear Disabled Enabled | | Write '1' to disable interrupt for event |
| | RW<br>RW CH1LIMITH RW | Enabled<br>Clear Disabled | 1 0 | CH2LIMITL Disable Read: Disabled |
| | CH1LIMITL | Clear Disabled | 1 | Read: Enabled Write '1' to disable interrupt for event CH3LIMITH Disable |
| M | CH2LIMITH CH2LIMITL | Enabled Clear<br>Disabled Enabled | 0 1 | Read: Disabled<br>Read: Enabled |
| N | CH3LIMITL | Clear | 1 | Write '1' to disable interrupt for event CH3LIMITL Disable |
| | RW<br>RW | Disabled Enabled | 0<br>1 | Read: Disabled<br>Disable Read: Disabled Read: Enabled |
| | | Clear Disabled Enabled | 1 0<br>1 | Disable Read: Disabled event CH2LIMITH<br>Read: Enabled |
| I | | | 1 0<br>1 | Write '1' to disable interrupt for event CH1LIMITH<br>for |
| J | | | 1 | Write '1' to disable interrupt event CH1LIMITL |
| | | | 0 1 | Disable |
| K | CH3LIMITH | | | Read: Enabled Write '1' to disable interrupt for |
| L | RW<br>CH4LIMITH | | 1 | Read: Enabled<br>interrupt for event CH4LIMITH |
| O | RW | | | disable<br>Write '1' 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 | | | | V U T S R Q P O N M L K J I H G F E D C B A |
| Reset 0x00000000 | Reset 0x00000000 | | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 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 |
| 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 |
| | | 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 |
## 8.18.11.27 STATUS
Address offset: 0x400
Status

## 8.18.11.28 TRIM.LINCALCOEFF[n] (n=0..5)
Address offset: 0x440 + (n × 0x4)
Linearity calibration coefficient


## 8.18.11.29 ENABLE
Address offset: 0x500
Enable or disable ADC

When enabled, the ADC will acquire access to the GPIO pins specified in the CH[n].PSELP and CH[n].PSELN registers.
## 8.18.11.30 CH[n].PSELP (n=0..7)
Address offset: 0x510 + (n × 0x10)
Input positive pin selection for CH[n]

| Bit number | Bit number | Bit number | Bit number | Bit number |
| -------------- | -------------- | -------------- | -------------- | -------------- |
## 8.18.11.31 CH[n].PSELN (n=0..7)
Address offset: 0x514 + (n × 0x10)
Input negative pin selection for CH[n]


## 8.18.11.32 CH[n].CONFIG (n=0..7)
Address offset: 0x518 + (n × 0x10)
Input configuration for CH[n]
| Bit number | | | 31 30 29 28 27 26 25 24 | | | | 23 22 21 20 19 18 | 17 16 15 14 13 | 6 5 4 3 | 2 1 0 |
| ------------------ | ------------------ | ---------- | --------------------------- | ----- | ---- | ----- | ------------------------- | --------------------------- | ------------------ | ---------------- |
| ID | | | | F F | | | E E E E E E E | E D | | |
| Reset 0x00020000 | Reset 0x00020000 | | 0 | 0 0 | 0 | 0 0 | 0 0 0 0 0 0 0 | 0 0 0 | 0 0 | 0 0 0 0 |
| ID | R/W Field | ID | Value | | | | Description | | | 0 |
| A | RW GAIN | Value<br>Gain2<br>Gain1<br>Gain2_3<br>Gain2_4<br>Gain2_5<br>Gain2_6<br>Gain2_8 | 0<br>1<br>2<br>3<br>4<br>5<br>7 | | | | Gain control<br>2<br>1<br>2/3<br>2/4<br>2/5<br>2/6<br>2/8 | | | |
| B RW | BURST | Disabled | 0 | | | | Enable burst mode<br>Burst mode is disabled | (normal operation) | | |
| | | Enabled | 1 | | | | Burst mode is enabled.<br>fast as it can, | SAADC takes<br>sends the average | number | of samples as |
| C- RW | | REFSEL<br>Internal<br>External | 0<br>1 | | | | Reference control<br>Internal reference (0.9<br>External reference | V)<br>given at PADC_EXT_REF_1V2 | | |
| D | RW | MODE | | | | | Enable differential | mode | | |
| | | SE<br>Diff | 0 | | | | Single ended, PSELN<br>Differential | will be ignored, | to ADC | shorted to GND |
| E | RW | TACQ | [1..319] | | | | Acquisition time, the<br>Resulting acquistion | time the ADC is<br>time ((TACQ+1) | the input | voltage. |
| F | RW | TCONV | [1..7] | | | | Conversion time. | Resulting conversion | ((TCONV+1) x 250 | ns) |
## 8.18.11.33 CH[n].LIMIT (n=0..7)
Address offset: 0x51C + (n × 0x10)
High/low limits for event monitoring a channel


## 8.18.11.34 RESOLUTION
Address offset: 0x5F0
Resolution configuration

## 8.18.11.35 OVERSAMPLE
Address offset: 0x5F4
Oversampling configuration. OVERSAMPLE should not be combined with SCAN unless burst is enabled. The RESOLUTION is applied before averaging, thus for high OVERSAMPLE a higher RESOLUTION should be used.

## 8.18.11.36 SAMPLERATE
Address offset: 0x5F8
Configures the sampling rate for either task-triggered or continuous operation using a local timer


## 8.18.11.37 RESULT
RESULT EasyDMA channel
## 8.18.11.37.1 RESULT.PTR
Address offset: 0x62C
Data pointer

## 8.18.11.37.2 RESULT.MAXCNT
Address offset: 0x630
Maximum number of buffer bytes to transfer. Note that one sample is two bytes.

## 8.18.11.37.3 RESULT.AMOUNT
Address offset: 0x634
Number of buffer bytes transferred since last START, updated after the END or STOPPED events


## 8.18.11.37.4 RESULT.CURRENTAMOUNT
## Address offset: 0x638
Number of buffer bytes transferred since last START, continuously updated

A
R
AMOUNT
## 8.18.11.38 NOISESHAPE
## Address offset: 0x654
SAADC provides two operational noise shaping modes (one that prioritizes higher bandwith, while the other prioritizes higher accuracy) that allow trade-offs between ADC resolution, power consumption, and signal bandwidth.
Note: When using noise shaping, the first RESULTREADY event will take longer to arrive as the filters need to be filled with valid 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 | Bit number | Bit number |
| -------------- | ------------------------------ | -------------- | -------------- |
## 8.19 SPIM - Serial peripheral interface controller with EasyDMA
The SPI controller peripheral (SPIM) with EasyDMA provides a full duplex, 4-wire synchronous serial communication interface.
The main features of SPIM are the following:
- EasyDMA direct transfer to and from RAM
- SPI mode [0..3]
- Individual selection of I/O pins
- Optional D/CX output line for distinguishing between command and data bytes
Number of buffer bytes transferred since last START, continuously updated.

## · Optional hardware controlled chip select (CSN)
Figure 135: SPIM with EasyDMA

## 8.19.1 SPIM transaction sequence
An SPIM transaction is started by triggering the START task. This initiates a number of bytes to be transmitted/received on SDO/SDI.
The following figure illustrates an SPIM transaction.

Figure 136: SPIM transaction

The ENDTX event is generated when all bytes in buffer DMA.TX.PTR on page 589 are transmitted. The number of bytes in the transmit buffer is specified in register DMA.TX.MAXCNT on page 590. The ENDRX event is generated when buffer DMA.RX.PTR on page 587 is full; that is when the number of bytes specified in register DMA.RX.MAXCNT on page 587 have been received. The transaction stops automatically after all bytes are transmitted or received. When the maximum number of bytes in the receive buffer is larger than the number of bytes in the transmit buffer, the contents of register ORC on page 585 will be transmitted after the last byte in the transmit buffer has been transmitted.
The END event is generated after both the ENDRX and ENDTX events have been generated.
SPIM is stopped by triggering the STOP task. A STOPPED event is generated when the SPIM has stopped. If the STOP task is triggered in the middle of a transaction, SPIM completes the process for 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 been generated when the SPIM peripheral stops, the ENDTX event will be generated, even if all bytes in the buffer have not been transmitted.
If the ENDRX event has not been generated when the SPIM stops, the ENDRX event will be generated even if the buffer DMA.RX.PTR on page 587 is not full.
A transaction can be suspended and resumed using the SUSPEND and RESUME tasks, respectively. When the SUSPEND task is triggered, SPIM completes transmitting and receiving the current byte before it is suspended.
## 8.19.2 D/CX functionality
Some SPI targets, such as display drivers, require an additional signal from the SPIM to distinguish between command and data bytes. This line is called D/CX.
SPIM supports additional signals such as a D/CX output line. The D/CX line is set low for transmitting command bytes and high for transmitting data bytes.
The D/CX pin number is selected using . The number of command bytes that precede the data bytes is configured using DCXCNT on page 585. Writing to DCXCNT on page 585 during an ongoing transmission is not allowed.
The following figure shows D/CX in use, where SPIM.DCXCNT= 1 .

Figure 137: D/CX example

## 8.19.3 Chip select hardware control
To use CSN hardware control, set register PSEL.CSN on page 587 according to the Pin configuration on page 567.
When enabled, CSN is asserted automatically after TASKS\_START on page 571 is triggered, and deasserted after EVENTS\_END on page 575. The value in register IFTIMING.CSNDUR on page 584 sets the time between the falling edge of CSN and the first SCK edge. The same delay is used between the last SCK edge and the rising edge of CSN at the end of a transfer. It is also used between two transfers as the minimum CSN inactive time when the END\_START short is enabled. The IFTIMING.CSNDUR is expressed in number of SPIM core clock periods.
The following figure shows a timing diagram with two SPI transmissions where the delay is controlled by IFTIMING.CSNDUR and is represented by tCSNDUR.
Figure 138: CSNDUR example

The following figure shows the timing delay for the combinations of polarity and phase settings. The register CSNPOL on page 585 determines the active polarity of the signal.
**Figure 138: CSNDUR example**

Figure 139: Polarity settings timing delay

## 8.19.4 Pin configuration
To configure pins for SPIM use, see the corresponding PSEL.n registers.
The contents of registers PSEL.SCK, PSEL.CSN, PSEL.DCX, PSEL.MOSI, and PSEL.MISO are only used when SPIM is enabled, and retained while the device is in System ON mode. The PSEL.n registers can be configured only when SPIM is disabled in register ENABLE on page 583.
To ensure correct behavior, the pins used by SPIM must be configured in the GPIO peripheral as described in GPIO configuration on page 567 before SPIM is enabled.
Only one peripheral can be assigned to drive a GPIO pin at a time. If more than one peripheral is assigned to a GPIO pin, it could result in unpredictable behavior.
Table 57: GPIO configuration
| SPIM signal | SPIM pin | Direction | Output value |
| --------------- | ------------------------------ | ------------- | --------------------- |
| SCK | As specified in PSEL.SCK on page 586 | Output | Same as CONFIG.CPOL |
| CSN | As specified in PSEL.CSN on page 587 | Output | Same as CONFIG.CPOL |
| DCX | As specified in PSEL.DCX on page 586 | Output | 1 |
| SDO | As specified in PSEL.MOSI on page 586 | Output | 0 |
| SDI | As specified in PSEL.MISO on page 586 | Input | Not applicable |
SPIM supports SPI modes [0..3]. The clock polarity (CPOL) and the clock phase (CPHA) are configured in register CONFIG on page 584.
**Table 57: GPIO configuration**

Table 58: SPI modes
| Mode | Clock polarity (CPOL) | Clock phase (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) |
## 8.19.5 Shared resources
The SPIM peripheral shares registers and other resources with peripherals that have the same ID as SPIM. Before SPIM can be configured and used, all peripherals that have the same ID as SPIM must be disabled.
Disabling a peripheral with the same ID as SPIM will not reset any shared SPIM registers. Configure all SPIM registers to ensure they operate correctly.
See the Instantiation table in Instantiation on page 214 for details on peripherals and their IDs.
## 8.19.6 EasyDMA
SPIM uses EasyDMA to fetch data to transmit from RAM or store received data in RAM.
SPIM implements the following EasyDMA channels.
Table 59: SPIM EasyDMA channels
| Channel | Type | Register Cluster |
| ----------- | -------- | ------------------------ |
| TXD | READER | DMA.TX.PTR on page 589 |
| RXD | WRITER | DMA.RX.PTR on page 587 |
The .PTR and .MAXCNT registers are double-buffered. After receiving the STARTED event, the registers can be written to before the next transmission.
SPIM automatically stops 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 RX.END and TX.END events indicate that EasyDMA has finished accessing buffers in RAM. Both RX and TX must be finished before the END event is generated.
If several AHB bus masters try to access the same AHB slave at the same time, AHB bus congestion can occur. In this case, the EasyDMA channel behavior will depend on the SPIM instance. Refer to Instances on page 569 for information about what behavior is expected in each instance.
See EasyDMA for more detailed information.
## 8.19.7 Low power
When the peripheral is not needed, stop and disable SPIM to ensure lowest possible power consumption.
When the STOP task is sent, the software must wait until the STOPPED event is received before disabling the peripheral through the ENABLE register. If the peripheral is already stopped, the STOP task is not needed to ensure data is not lost.

## 8.19.8 Registers
| Instance | Domain | Base address | TrustZone | TrustZone | TrustZone | Split | Description |
| ------------------------ | ---------- | ----------------------- | ------------- | ------------- | ------------- | --------- | ----------------------- |
| | | | Map | Att | DMA | access | |
| SPIM00 : S SPIM00 : NS | GLOBAL | 0x5004A000 0x4004A000 | US | S | SA | No | SPI controller SPIM00 |
| SPIM20 : S SPIM20 : NS | GLOBAL | 0x500C6000 0x400C6000 | US | S | SA | No | SPI controller SPIM20 |
| SPIM21 : S SPIM21 : NS | GLOBAL | 0x500C7000 0x400C7000 | US | S | SA | No | SPI controller SPIM21 |
| SPIM22 : S SPIM22 : NS | GLOBAL | 0x500C8000 0x400C8000 | US | S | SA | No | SPI controller SPIM22 |
| SPIM30 : S SPIM30 : NS | GLOBAL | 0x50104000 0x40104000 | US | S | SA | No | SPI controller SPIM30 |
| Instance | Domain | Configuration |
| ------------------------ | ---------- | ------------------------------ |
| SPIM00 : S SPIM00 : NS | GLOBAL | Use dedicated pins on GPIO port P2 CSN functionality is supported. DCX functionality is supported. Peripheral core frequency is 128 MHz. Prescaler divisor range is 4..126 |
| SPIM20 : S SPIM20 : NS | GLOBAL | DCX functionality is supported. Peripheral core frequency is 16 MHz. |
| SPIM21 : S SPIM21 : NS | GLOBAL | DCX functionality is supported. Peripheral core frequency is 16 MHz. Prescaler divisor range is 2..126 |
| SPIM22 : S SPIM22 : NS | GLOBAL | Use GPIO port P1 CSN functionality is supported. DCX functionality is supported. |
| SPIM30 : S | GLOBAL | Prescaler divisor range is 2..126 Use GPIO port P0 CSN functionality is supported. DCX functionality is supported. |
| SPIM30 : NS | | Peripheral core frequency is 16 MHz. |

| Register | Offset | TZ | Description |
| ------------------------------ | ------------- | ------ | ------------------------------ |
| TASKS_START | 0x000 | | Start SPI transaction |
| TASKS_STOP | 0x004 | | Stop SPI transaction |
| TASKS_SUSPEND | 0x00C | | Suspend SPI transaction |
| TASKS_RESUME | 0x010 | | Resume SPI transaction |
| TASKS_DMA.RX.ENABLEMATCH[n] | 0x030 | | Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register. |
| TASKS_DMA.RX.DISABLEMATCH[n] | 0x040 | | Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register. |
| SUBSCRIBE_START | 0x080 | | Subscribe configuration for task START |
| SUBSCRIBE_STOP | 0x084 | | Subscribe configuration for task STOP |
| SUBSCRIBE_SUSPEND | 0x08C | | Subscribe configuration for task SUSPEND |
| SUBSCRIBE_RESUME | 0x090 | | Subscribe configuration for task RESUME |
| SUBSCRIBE_DMA.RX.ENABLEMATCH[n] | 0x0B0 | | Subscribe configuration for task ENABLEMATCH[n] |
| SUBSCRIBE_DMA.RX.DISABLEMATCH[n] | 0x0C0 | | Subscribe configuration for task DISABLEMATCH[n] |
| EVENTS_STARTED | 0x100 | | SPI transaction has started |
| EVENTS_STOPPED | 0x104 | | SPI transaction has stopped |
| EVENTS_END | 0x108 | | End of RXD buffer and TXD buffer reached |
| EVENTS_DMA.RX.END | 0x14C | | Generated after all MAXCNT bytes have been transferred |
| EVENTS_DMA.RX.READY | 0x150 | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.RX.BUSERROR | 0x154 | | An error occured during the bus transfer. |
| EVENTS_DMA.RX.MATCH[n] | 0x158 | | Pattern match is detected on the DMA data bus. |
| EVENTS_DMA.TX.END | 0x168 | | Generated after all MAXCNT bytes have been transferred |
| EVENTS_DMA.TX.READY | 0x16C | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.TX.BUSERROR | 0x170 | | An error occured during the bus transfer. |
| PUBLISH_STARTED | 0x180 | | Publish configuration for event STARTED |
| PUBLISH_STOPPED | 0x184 | | Publish configuration for event STOPPED |
| PUBLISH_END | 0x188 | | Publish configuration for event END |
| PUBLISH_DMA.RX.END | 0x1CC | | Publish configuration for event END |
| PUBLISH_DMA.RX.READY | 0x1D0 | | Publish configuration for event READY |
| PUBLISH_DMA.RX.BUSERROR | 0x1D4 | | Publish configuration for event BUSERROR |
| PUBLISH_DMA.RX.MATCH[n] | 0x1D8 | | Publish configuration for event MATCH[n] |
| PUBLISH_DMA.TX.END | 0x1E8 | | Publish configuration for event END |
| PUBLISH_DMA.TX.READY | 0x1EC | | Publish configuration for event READY |
| PUBLISH_DMA.TX.BUSERROR | 0x1F0 | | Publish configuration for event BUSERROR |
| SHORTS | 0x200 | | Shortcuts between local events and tasks |
| INTENSET | 0x304 | | Enable interrupt |
| INTENCLR | 0x308 | | Disable interrupt |
| ENABLE | 0x500 | | Enable SPIM |
| PRESCALER | 0x52C | | The prescaler is used to set the SPI frequency. |
| CONFIG | 0x554 | | Configuration register |
| IFTIMING.RXDELAY | 0x5AC | | Sample delay for input serial data on SDI |
| IFTIMING.CSNDUR | 0x5B0 | | 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. |
| DCXCNT | 0x5B4 | | DCX configuration |
| CSNPOL | 0x5B8 | | Polarity of CSN output |
| ORC | 0x5C0 | | Byte transmitted after TXD.MAXCNT bytes have been transmitted in the case when RXD.MAXCNT is greater than TXD.MAXCNT |
| PSEL.SCK | 0x600 | | Pin select for SCK |
| PSEL.MOSI | 0x604 | | Pin select for SDO signal |
| PSEL.MISO PSEL.DCX | 0x608 0x60C | | Pin select for SDI signal Pin select for DCX signal |
| Register | Offset | TZ | Description |
| PSEL.CSN | 0x610 | | Pin select for CSN |
| DMA.RX.PTR | 0x704 | | RAM buffer start address |
| DMA.RX.MAXCNT | 0x708 | | Maximum number of bytes in channel buffer |
| DMA.RX.AMOUNT | 0x70C | | Number of bytes transferred in the last transaction, updated after the END event.<br>Also updated after each MATCH event. |
| DMA.RX.LIST | 0x714 | | EasyDMA list type |
| DMA.RX.TERMINATEONBUSERROR | 0x71C | | Terminate the transaction if a BUSERROR event is detected. |
| DMA.RX.BUSERRORADDRESS | 0x720 | | Address of transaction that generated the last BUSERROR event. |
| DMA.RX.MATCH.CONFIG | 0x724 | | Configure individual match events |
| DMA.RX.MATCH.CANDIDATE[n] | 0x728 | | The data to look for - any match will trigger the MATCH[n] event, if enabled. |
| DMA.TX.PTR | 0x73C | | RAM buffer start address |
| DMA.TX.MAXCNT | 0x740 | | Maximum number of bytes in channel buffer |
| DMA.TX.AMOUNT | 0x744 | | Number of bytes transferred in the last transaction, updated after the END event.<br>Also updated after each MATCH event. |
| DMA.TX.LIST | 0x74C | | EasyDMA list type |
| DMA.TX.TERMINATEONBUSERROR | 0x754 | | Terminate the transaction if a BUSERROR event is detected. |
| DMA.TX.BUSERRORADDRESS | 0x758 | | Address of transaction that generated the last BUSERROR event. |
## 8.19.8.1 TASKS\_START
Address offset: 0x000
Start SPI transaction

## 8.19.8.2 TASKS\_STOP
Address offset: 0x004
Stop SPI transaction

## 8.19.8.3 TASKS\_SUSPEND
Address offset: 0x00C
Suspend SPI transaction


## 8.19.8.4 TASKS\_RESUME
Address offset: 0x010
Resume SPI transaction

## 8.19.8.5 TASKS\_DMA
Peripheral tasks.
## 8.19.8.5.1 TASKS\_DMA.RX
Peripheral tasks.
## 8.19.8.5.1.1 TASKS\_DMA.RX.ENABLEMATCH[n] (n=0..3)
Address offset: 0x030 + (n × 0x4)
Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register.

## 8.19.8.5.1.2 TASKS\_DMA.RX.DISABLEMATCH[n] (n=0..3)
Address offset: 0x040 + (n × 0x4)
Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register.


## 8.19.8.6 SUBSCRIBE\_START
Address offset: 0x080
Subscribe configuration for task START

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.19.8.7 SUBSCRIBE\_STOP
Address offset: 0x084
Subscribe configuration for task STOP

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.19.8.8 SUBSCRIBE\_SUSPEND
Address offset: 0x08C
Subscribe configuration for task SUSPEND

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.19.8.9 SUBSCRIBE\_RESUME
Address offset: 0x090
Subscribe configuration for task RESUME


## 8.19.8.10 SUBSCRIBE\_DMA
Subscribe configuration for tasks
## 8.19.8.10.1 SUBSCRIBE\_DMA.RX
Subscribe configuration for tasks
## 8.19.8.10.1.1 SUBSCRIBE\_DMA.RX.ENABLEMATCH[n] (n=0..3)
Address offset: 0x0B0 + (n × 0x4)
Subscribe configuration for task ENABLEMATCH[n]

## 8.19.8.10.1.2 SUBSCRIBE\_DMA.RX.DISABLEMATCH[n] (n=0..3)
Address offset: 0x0C0 + (n × 0x4)
Subscribe configuration for task DISABLEMATCH[n]

## 8.19.8.11 EVENTS\_STARTED
Address offset: 0x100
SPI transaction has started


## 8.19.8.12 EVENTS\_STOPPED
Address offset: 0x104
SPI transaction has stopped

## 8.19.8.13 EVENTS\_END
Address offset: 0x108
End of RXD buffer and TXD buffer reached

## 8.19.8.14 EVENTS\_DMA
Peripheral events.
## 8.19.8.14.1 EVENTS\_DMA.RX
Peripheral events.
## 8.19.8.14.1.1 EVENTS\_DMA.RX.END
Address offset: 0x14C
Generated after all MAXCNT bytes have been transferred


## 8.19.8.14.1.2 EVENTS\_DMA.RX.READY
Address offset: 0x150
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

## 8.19.8.14.1.3 EVENTS\_DMA.RX.BUSERROR
Address offset: 0x154
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.19.8.14.1.4 EVENTS\_DMA.RX.MATCH[n] (n=0..3)
Address offset: 0x158 + (n × 0x4)
Pattern match is detected on the DMA data bus.


## 8.19.8.14.2 EVENTS\_DMA.TX
Peripheral events.
## 8.19.8.14.2.1 EVENTS\_DMA.TX.END
Address offset: 0x168
Generated after all MAXCNT bytes have been transferred

## 8.19.8.14.2.2 EVENTS\_DMA.TX.READY
Address offset: 0x16C
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

## 8.19.8.14.2.3 EVENTS\_DMA.TX.BUSERROR
Address offset: 0x170
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.19.8.15 PUBLISH\_STARTED
Address offset: 0x180
Publish configuration for event STARTED


## 8.19.8.16 PUBLISH\_STOPPED
Address offset: 0x184
Publish configuration for event STOPPED

## 8.19.8.17 PUBLISH\_END
Address offset: 0x188
Publish configuration for event END

## 8.19.8.18 PUBLISH\_DMA
Publish configuration for events
## 8.19.8.18.1 PUBLISH\_DMA.RX
Publish configuration for events
## 8.19.8.18.1.1 PUBLISH\_DMA.RX.END
Address offset: 0x1CC
Publish configuration for event END


## 8.19.8.18.1.2 PUBLISH\_DMA.RX.READY
Address offset: 0x1D0
Publish configuration for event READY

## 8.19.8.18.1.3 PUBLISH\_DMA.RX.BUSERROR
Address offset: 0x1D4
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.19.8.18.1.4 PUBLISH\_DMA.RX.MATCH[n] (n=0..3)
Address offset: 0x1D8 + (n × 0x4)
Publish configuration for event MATCH[n]

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 MATCH[n] will publish to |
| B | RW | EN | Disabled<br>Enabled | 0 Disable publishing<br>1 Enable publishing |

## 8.19.8.18.2 PUBLISH\_DMA.TX
Publish configuration for events
## 8.19.8.18.2.1 PUBLISH\_DMA.TX.END
Address offset: 0x1E8
Publish configuration for event END

## 8.19.8.18.2.2 PUBLISH\_DMA.TX.READY
Address offset: 0x1EC
Publish configuration for event READY

## 8.19.8.18.2.3 PUBLISH\_DMA.TX.BUSERROR
Address offset: 0x1F0
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.19.8.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 | Bit number | Bit number |
| -------------- | ------------------------------ | -------------- | -------------- |
## 8.19.8.20 INTENSET
Enable interrupt
| Bit number | | | | 31 30 | 29 28 | 22 21 | 23 20 | 3 2 1 | 0 |
| ------------------ | ----- | --------------- | ---------- | --------- | --------- | --------------- | ---------------------- | --------- | ----- |
| ID | | | | | M | G | H | | |
| Reset 0x00000000 | | | | 0 0 0 | 0 | 0 0 | 0 0 | 0 0 0 | 0 |
| ID | R/W | Field | Value ID | Value | | | Description | | |
| A | RW | STARTED | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | '1' | Write to<br>Enable<br>Read: Disabled<br>Read: Enabled | | |
| B | RW | STOPPED | Set<br>Disabled | 1<br>0 | | Disabled | Write '1' to<br>Enable<br>Read: | | |
| C | RW | END | Set<br>Enabled | 1<br>1 | | Write<br>Read: Enabled | Read: Enabled '1' to<br>Enable<br>Read: Disabled | | |
| D | RW | DMARXEND | Set<br>Disabled | 1<br>0 | | | Write '1' to<br>Enable<br>Read: Disabled | | |
| E | RW | DMARXREADY | Set<br>Disabled<br>Enabled | 1 | | | Read:<br>Write '1' to<br>Enable<br>Read: Disabled | | |
| | | DMARXBUSERROR | | 0 | | '1' | Write | | |
G-J
RW
DMARXMATCH[i] (i=0..3)
Write '1' to enable interrupt for event DMARXMATCH[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 | Bit number |
| -------------- | ------------------------------ | -------------- |
## 8.19.8.21 INTENCLR
Address offset: 0x308
Disable interrupt
| Bit number | Bit number | Bit number | Bit number |
| -------------- | -------------- | -------------- | -------------- |
| Bit number | 31 30 29 28 | Bit number | Bit number |
## 8.19.8.22 ENABLE
Address offset: 0x500
Enable SPIM

## 8.19.8.23 PRESCALER
Address offset: 0x52C
The prescaler is used to set the SPI frequency.
The prescaler divides the core clock by the divisor to make the SPI clock. The resulting frequency is given by 'core clock' / DIVISOR. Different instances of the SPIM might have different core clocks. The SPIM core clock and divisor limits is given in the instance table in Instances on page 569.
Note that a low prescaler setting may require changing the default RXDELAY value to ensure correct sampling.

Only even numbers is allowed for the divisor.

## 8.19.8.24 CONFIG
Address offset: 0x554
Configuration register

| Bit number | Bit 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 C B A | ID C B A | ID C B A | ID C B A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID | Field | Value ID Value | Description |
| A | ORDER | | Bit order |
| | | MsbFirst 0 | Most significant bit shifted out first |
| | | LsbFirst 1 | Least significant bit shifted out first |
| B | 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 | CPOL | | Serial clock (SCK) polarity |
| | | ActiveHigh | 0 Active high |
| | | ActiveLow | 1 Active low |
## 8.19.8.25 IFTIMING.RXDELAY
Address offset: 0x5AC
Sample delay for input serial data on SDI
If the value is written larger than the maximum value, the maximum value will be used.

## 8.19.8.26 IFTIMING.CSNDUR
## Address offset: 0x5B0
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.


## 8.19.8.27 DCXCNT
Address offset: 0x5B4
DCX configuration

## 8.19.8.28 CSNPOL
Address offset: 0x5B8
Polarity of CSN output

## 8.19.8.29 ORC
Address offset: 0x5C0
Byte transmitted after TXD.MAXCNT bytes have been transmitted in the case when RXD.MAXCNT is greater than TXD.MAXCNT


## 8.19.8.30 PSEL.SCK
Address offset: 0x600
Pin select for SCK

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.19.8.31 PSEL.MOSI
Address offset: 0x604
Pin select for SDO signal

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.19.8.32 PSEL.MISO
Address offset: 0x608
Pin select for SDI signal

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.19.8.33 PSEL.DCX
Address offset: 0x60C
Pin select for DCX signal


| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.19.8.34 PSEL.CSN
Address offset: 0x610
Pin select for CSN

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.19.8.35 DMA.RX.PTR
Address offset: 0x704
RAM buffer start address

RAM buffer start address for this EasyDMA channel. This address is a word aligned Data RAM address.
Note: See the memory chapter for details about which memories are available for EasyDMA.
## 8.19.8.36 DMA.RX.MAXCNT
Address offset: 0x708
Maximum number of bytes in channel buffer


## 8.19.8.37 DMA.RX.AMOUNT
Address offset: 0x70C
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.

## 8.19.8.38 DMA.RX.LIST
Address offset: 0x714
EasyDMA list type

## 8.19.8.39 DMA.RX.TERMINATEONBUSERROR
Address offset: 0x71C
Terminate the transaction if a BUSERROR event is detected.

## 8.19.8.40 DMA.RX.BUSERRORADDRESS
Address offset: 0x720
Address of transaction that generated the last BUSERROR event.


## 8.19.8.41 DMA.RX.MATCH
Registers to control the behavior of the pattern matcher engine
## 8.19.8.41.1 DMA.RX.MATCH.CONFIG
Address offset: 0x724
Configure individual match events

## 8.19.8.41.2 DMA.RX.MATCH.CANDIDATE[n] (n=0..3)
Address offset: 0x728 + (n × 0x4)
The data to look for - any match will trigger the MATCH[n] event, if enabled.
Note: This register can be updated while a transfer is in progress, but the new value will not take effect until a match has been found or the transfer is done. That makes it possible to write a new set of match words which will be searched for immediately after the event triggers.

## 8.19.8.42 DMA.TX.PTR
Address offset: 0x73C
RAM buffer start address


## 8.19.8.43 DMA.TX.MAXCNT
Address offset: 0x740
Maximum number of bytes in channel buffer

## 8.19.8.44 DMA.TX.AMOUNT
Address offset: 0x744
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.

## 8.19.8.45 DMA.TX.LIST
Address offset: 0x74C
EasyDMA list type

## 8.19.8.46 DMA.TX.TERMINATEONBUSERROR
Address offset: 0x754
Terminate the transaction if a BUSERROR event is detected.


## 8.19.8.47 DMA.TX.BUSERRORADDRESS
Address offset: 0x758
Address of transaction that generated the last BUSERROR event.

## 8.20 SPIS - Serial peripheral interface target with EasyDMA
The SPI target peripheral (SPIS) with EasyDMA provides a full duplex, 4-wire synchronous serial communication interface.
The main features of SPIS are the following:
- EasyDMA direct transfer to and from RAM
- SPI mode [0..3]
- Individual selection of I/O pins
- Hardware-based semaphore mechanisms for synchronizing access to data buffers by SPIS and CPU

Figure 140: SPIS

## 8.20.1 SPI modes
SPIS supports SPI modes [0..3]. Modes CPOL and CPHA are set in the CONFIG register.
Table 60: SPI modes
| Mode | Clock polarity (CPOL) | Clock phase (CPHA) |
| ----------- | ------------------------- | ------------------------ |
| SPI_MODE0 | 0 (Active High ) | 0 (Sample on Leading) |
| SPI_MODE1 | 0 (Active High ) | 1 (Sample on Trailing) |
| SPI_MODE2 | 1 (Active Low ) | 0 (Sample on Leading) |
| SPI_MODE3 | 1 (Active Low ) | 1 (Sample on Trailing) |
## 8.20.2 Shared resources
The SPIS peripheral shares registers and other resources with peripherals that have the same ID as SPIS. Before SPIS can be configured and used, all peripherals that have the same ID as SPIS must be disabled.

Disabling a peripheral with the same ID as SPIS will not reset any shared SPIS registers. Configure all SPIS registers to ensure they operate correctly.
See the Instantiation table in Instantiation on page 214 for details on peripherals and their IDs.
## 8.20.3 EasyDMA
SPIS implements EasyDMA for accessing RAM without CPU involvement. SPIS implements the EasyDMA channels found in the following table.
Table 61: SPIS EasyDMA Channels
| Channel | Type | Register Cluster |
| ----------- | -------- | -------------------- |
| TXD | READER | TXD |
| RXD | WRITER | RXD |
For detailed information regarding the use of EasyDMA, see EasyDMA on page 28.
If RXD.MAXCNT is greater than TXD.MAXCNT, the remaining transmitted bytes will contain the value defined in the ORC register.
The END event indicates that EasyDMA is finished accessing the RAM buffer.
## 8.20.4 SPIS operation
SPIS uses two memory pointers. RXD.PTR points to the RXD buffer (receive buffer) and TXD.PTR points to the TXD buffer (transmit buffer). Because these buffers are located in RAM, which can be accessed by both SPIS and the CPU, a hardware based semaphore mechanism is implemented to enable safe sharing.
The CPU must acquire the SPI semaphore before it can safely update the RXD.PTR and TXD.PTR pointers. The ACQUIRE task must be triggered for the CPU to receive the ACQUIRED event and have access to the semaphore. When the CPU has updated the RXD.PTR and TXD.PTR pointers, the CPU must release the semaphore before SPIS can acquire it.
The CPU releases the semaphore by triggering the RELEASE task, as illustrated in the following figure. Triggering the RELEASE task when the CPU does not have access to the semaphore will have no effect. See Semaphore operation on page 595 for more information.

Figure 141: SPI transaction when shortcut between END and ACQUIRE is enabled

If the CPU is not able to reconfigure 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. This enables the CPU 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 SPIS can receive in one granted transaction. If SPIS 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 SPIS can transmit in one granted transaction. If SPIS 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 complete. The TXD.AMOUNT register indicates how many bytes were read from the TX buffer in the last transaction. 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.

## 8.20.5 Semaphore operation
The semaphore is a mechanism implemented inside the SPIS peripheral that prevents SPIS and CPU from accessing data buffers simultaneously.
By default, the semaphore is assigned to the CPU after the SPIS peripheral is enabled. An ACQUIRED event will not be generated for this initial semaphore handover. If the ACQUIRE task is triggered while the semaphore is assigned to the CPU, an ACQUIRED event will be generated immediately. The following figure illustrates the transitions between states in the semaphore based on the relevant tasks and events.
Figure 142: SPI semaphore FSM

Note: The semaphore mechanism does not prevent the CPU from performing read or write access to the RXD.PTR register, TXD.PTR registers, or 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.
SPIS will try to acquire the semaphore when the STARTED event is detected. If SPIS does not obtain the semaphore, the transaction will be ignored and the semaphore is retained by the CPU. All incoming data on SDI will be discarded and the DEF (default) character will be clocked out on the SDO line throughout the transaction. This is also true if the semaphore is released by the CPU during the transaction. If a race condition occurs where the CPU and SPIS 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 594, the CPU is given the semaphore.
If SPIS acquires the semaphore, the transaction will be granted. The incoming data on SDI will be stored in the RXD buffer and the data in the TXD buffer will be clocked out on SDO.
When a transaction is complete and CSN goes HIGH , SPIS will automatically release the semaphore and generate the END event.
SPIS can be granted multiple transactions in a row as long as the semaphore is available.

If the CPU tries to acquire the semaphore while it is assigned to SPIS, an immediate handover will not be granted. After the granted transaction is complete, SPIS releases the semaphore to the CPU. 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.
## 8.20.6 Pin configuration
The CSN, SCK, SDI, and SDO signals associated with SPIS are mapped to physical pins according to the configuration specified in the PSEL.CSN, PSEL.SCK, PSEL.MOSI, and PSEL.MISO registers, respectively. If the CONNECT field is set to Disconnected , the associated SPIS signal will not be connected to any physical pins.
These registers and their configurations are only used when SPIS is enabled, and retained as long as the device is in System ON mode. See POWER - Power control on page 92 for more information about power modes. When the peripheral is disabled, the pins behave as regular GPIOs, and use the configuration in their respective OUT bit field and PIN\_CNF[n] register. Only configure PSEL.CSN, PSEL.SCK, PSEL.MOSI, and PSEL.MISO when SPIS is disabled.
Before enabling SPIS, the pins used by SPIS must be configured in the GPIO peripheral as described in GPIO configuration before enabling peripheral on page 596. This ensures that the pins are driven correctly if SPIS becomes temporarily disabled, or if the device enters System OFF mode. This configuration must be retained in the GPIO for the selected pins to be recognized by an external SPI controller.
The SDO line is set HIGH as long as SPIS 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.
| SPI signal | SPI pin | Direction | Output value | Comment |
| -------------- | --------------------------- | ------------- | ---------------- | ------------------------------ |
| CSN | As specified in PSEL.CSN | Input | Not applicable | |
| SCK | As specified in PSEL.SCK | Input | Not applicable | |
| SDI | As specified in PSEL.MOSI | Input | Not applicable | |
| SDO | As specified in PSEL.MISO | Input | Not applicable | Emulates that SPIS is not selected. |
Table 62: GPIO configuration before enabling peripheral

## 8.20.7 Registers
| Instance | Domain | Base address | TrustZone | TrustZone | TrustZone | Split | Description |
| ------------------------ | ---------- | ----------------------- | ------------- | ------------- | ------------- | --------- | ----------------------- |
| | | | Map | Att | DMA | access | |
| SPIS00 : S SPIS00 : NS | GLOBAL | 0x5004A000 0x4004A000 | US | S | SA | No | SPI peripheral SPIS00 |
| SPIS20 : S SPIS20 : NS | GLOBAL | 0x500C6000 0x400C6000 | US | S | SA | No | SPI peripheral SPIS20 |
| SPIS21 : S SPIS21 : NS | GLOBAL | 0x500C7000 0x400C7000 | US | S | SA | No | SPI peripheral SPIS21 |
| SPIS22 : S SPIS22 : NS | GLOBAL | 0x500C8000 0x400C8000 | US | S | SA | No | SPI peripheral SPIS22 |
| SPIS30 : S SPIS30 : NS | GLOBAL | 0x50104000 0x40104000 | US | S | SA | No | SPI peripheral SPIS30 |
| Instance | Domain | Configuration |
| ------------------------ | ---------- | ------------------------------ |
| SPIS00 : S SPIS00 : NS | GLOBAL | Use dedicated pins on GPIO port P2 |
| SPIS20 : S SPIS20 : NS | GLOBAL | Use GPIO port P1, or dedicated pins on P2 |
| SPIS21 : S SPIS21 : NS | GLOBAL | Use GPIO port P1, or dedicated pins on P2 |
| SPIS22 : S SPIS22 : NS | GLOBAL | Use GPIO port P1 |
| SPIS30 : S SPIS30 : NS | GLOBAL | Use GPIO port P0 |
| Register | Offset | TZ | Description |
| ------------------------------ | ---------- | ------ | ------------------------------ |
| TASKS_ACQUIRE | 0x014 | | Acquire SPI semaphore |
| TASKS_RELEASE | 0x018 | | Release SPI semaphore, enabling the SPI slave to acquire it |
| TASKS_DMA.RX.ENABLEMATCH[n] | 0x030 | | Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register. |
| TASKS_DMA.RX.DISABLEMATCH[n] | 0x040 | | Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register. |
| SUBSCRIBE_ACQUIRE | 0x094 | | Subscribe configuration for task ACQUIRE |
| SUBSCRIBE_RELEASE | 0x098 | | Subscribe configuration for task RELEASE |
| SUBSCRIBE_DMA.RX.ENABLEMATCH[n] | 0x0B0 | | Subscribe configuration for task ENABLEMATCH[n] |
| SUBSCRIBE_DMA.RX.DISABLEMATCH[n] | 0x0C0 | | Subscribe configuration for task DISABLEMATCH[n] |
| EVENTS_END | 0x104 | | Granted transaction completed |
| EVENTS_ACQUIRED | 0x118 | | Semaphore acquired |
| EVENTS_DMA.RX.END | 0x14C | | Generated after all MAXCNT bytes have been transferred |
| EVENTS_DMA.RX.READY | 0x150 | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.RX.BUSERROR | 0x154 | | An error occured during the bus transfer. |
| EVENTS_DMA.RX.MATCH[n] | 0x158 | | Pattern match is detected on the DMA data bus. |
| EVENTS_DMA.TX.END | 0x168 | | Generated after all MAXCNT bytes have been transferred |
| Register | Offset | TZ | Description |
| EVENTS_DMA.TX.READY | 0x16C | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.TX.BUSERROR | 0x170 | | An error occured during the bus transfer. |
| PUBLISH_END | 0x184 | | Publish configuration for event END |
| PUBLISH_ACQUIRED | 0x198 | | Publish configuration for event ACQUIRED |
| PUBLISH_DMA.RX.END | 0x1CC | | Publish configuration for event END |
| PUBLISH_DMA.RX.READY | 0x1D0 | | Publish configuration for event READY |
| PUBLISH_DMA.RX.BUSERROR | 0x1D4 | | Publish configuration for event BUSERROR |
| PUBLISH_DMA.RX.MATCH[n] | 0x1D8 | | Publish configuration for event MATCH[n] |
| PUBLISH_DMA.TX.END | 0x1E8 | | Publish configuration for event END |
| PUBLISH_DMA.TX.READY | 0x1EC | | Publish configuration for event READY |
| PUBLISH_DMA.TX.BUSERROR | 0x1F0 | | Publish configuration for event BUSERROR |
| SHORTS | 0x200 | | Shortcuts between local events and tasks |
| INTENSET | 0x304 | | Enable interrupt |
| INTENCLR | 0x308 | | Disable interrupt |
| SEMSTAT | 0x400 | | Semaphore status register |
| STATUS | 0x440 | | Status from last transaction |
| ENABLE | 0x500 | | Enable SPI slave |
| CONFIG | 0x554 | | Configuration register |
| DEF | 0x55C | | Default character. Character clocked out in case of an ignored transaction. |
| ORC | 0x5C0 | | Over-read character |
| PSEL.SCK | 0x600 | | Pin select for SCK |
| PSEL.MISO | 0x604 | | Pin select for SDO signal |
| PSEL.MOSI | 0x608 | | Pin select for SDI signal |
| PSEL.CSN | 0x610 | | Pin select for CSN signal |
| DMA.RX.PTR | 0x704 | | RAM buffer start address |
| DMA.RX.MAXCNT | 0x708 | | Maximum number of bytes in channel buffer |
| DMA.RX.AMOUNT | 0x70C | | Number of bytes transferred in the last transaction, updated after the END event.<br>Also updated after each MATCH event. |
| DMA.RX.TERMINATEONBUSERROR | 0x71C | | Terminate the transaction if a BUSERROR event is detected. |
| DMA.RX.BUSERRORADDRESS | 0x720 | | Address of transaction that generated the last BUSERROR event. |
| DMA.RX.MATCH.CONFIG | 0x724 | | Configure individual match events |
| DMA.RX.MATCH.CANDIDATE[n] | 0x728 | | The data to look for - any match will trigger the MATCH[n] event, if enabled. |
| DMA.TX.PTR | 0x73C | | RAM buffer start address |
| DMA.TX.MAXCNT | 0x740 | | Maximum number of bytes in channel buffer |
| DMA.TX.AMOUNT | 0x744 | | Number of bytes transferred in the last transaction, updated after the END event.<br>Also updated after each MATCH event. |
| DMA.TX.TERMINATEONBUSERROR | 0x754 | | Terminate the transaction if a BUSERROR event is detected. |
| DMA.TX.BUSERRORADDRESS | 0x758 | | Address of transaction that generated the last BUSERROR event. |
## 8.20.7.1 TASKS\_ACQUIRE
Address offset: 0x014
Acquire SPI semaphore

| Bit number | Bit 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 | ID | ID | A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.20.7.2 TASKS\_RELEASE
Address offset: 0x018
Release SPI semaphore, enabling the SPI slave to acquire it

## 8.20.7.3 TASKS\_DMA
Peripheral tasks.
## 8.20.7.3.1 TASKS\_DMA.RX
Peripheral tasks.
## 8.20.7.3.1.1 TASKS\_DMA.RX.ENABLEMATCH[n] (n=0..3)
Address offset: 0x030 + (n × 0x4)
Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register.

## 8.20.7.3.1.2 TASKS\_DMA.RX.DISABLEMATCH[n] (n=0..3)
Address offset: 0x040 + (n × 0x4)
Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register.

## 8.20.7.4 SUBSCRIBE\_ACQUIRE
Address offset: 0x094
Subscribe configuration for task ACQUIRE


| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID | R/W Field | R/W Field | Value ID | Value Description |
| A | RW | CHIDX | | [0..255] DPPI channel that task ACQUIRE will subscribe to |
| B | RW | EN | Disabled<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.20.7.5 SUBSCRIBE\_RELEASE
Address offset: 0x098
Subscribe configuration for task RELEASE

## 8.20.7.6 SUBSCRIBE\_DMA
Subscribe configuration for tasks
## 8.20.7.6.1 SUBSCRIBE\_DMA.RX
Subscribe configuration for tasks
## 8.20.7.6.1.1 SUBSCRIBE\_DMA.RX.ENABLEMATCH[n] (n=0..3)
Address offset: 0x0B0 + (n × 0x4)
Subscribe configuration for task ENABLEMATCH[n]

## 8.20.7.6.1.2 SUBSCRIBE\_DMA.RX.DISABLEMATCH[n] (n=0..3)
Address offset: 0x0C0 + (n × 0x4)
Subscribe configuration for task DISABLEMATCH[n]


## 8.20.7.7 EVENTS\_END
Address offset: 0x104
Granted transaction completed

## 8.20.7.8 EVENTS\_ACQUIRED
Address offset: 0x118
Semaphore acquired

## 8.20.7.9 EVENTS\_DMA
Peripheral events.
## 8.20.7.9.1 EVENTS\_DMA.RX
Peripheral events.
## 8.20.7.9.1.1 EVENTS\_DMA.RX.END
Address offset: 0x14C
Generated after all MAXCNT bytes have been transferred


## 8.20.7.9.1.2 EVENTS\_DMA.RX.READY
Address offset: 0x150
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

## 8.20.7.9.1.3 EVENTS\_DMA.RX.BUSERROR
Address offset: 0x154
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.20.7.9.1.4 EVENTS\_DMA.RX.MATCH[n] (n=0..3)
Address offset: 0x158 + (n × 0x4)
Pattern match is detected on the DMA data bus.


## 8.20.7.9.2 EVENTS\_DMA.TX
Peripheral events.
## 8.20.7.9.2.1 EVENTS\_DMA.TX.END
Address offset: 0x168
Generated after all MAXCNT bytes have been transferred

## 8.20.7.9.2.2 EVENTS\_DMA.TX.READY
Address offset: 0x16C
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

## 8.20.7.9.2.3 EVENTS\_DMA.TX.BUSERROR
Address offset: 0x170
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.20.7.10 PUBLISH\_END
Address offset: 0x184
Publish configuration for event END


## 8.20.7.11 PUBLISH\_ACQUIRED
Address offset: 0x198
Publish configuration for event ACQUIRED

## 8.20.7.12 PUBLISH\_DMA
Publish configuration for events
## 8.20.7.12.1 PUBLISH\_DMA.RX
Publish configuration for events
## 8.20.7.12.1.1 PUBLISH\_DMA.RX.END
Address offset: 0x1CC
Publish configuration for event END

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.20.7.12.1.2 PUBLISH\_DMA.RX.READY
Address offset: 0x1D0
Publish configuration for event READY


## 8.20.7.12.1.3 PUBLISH\_DMA.RX.BUSERROR
Address offset: 0x1D4
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.20.7.12.1.4 PUBLISH\_DMA.RX.MATCH[n] (n=0..3)
Address offset: 0x1D8 + (n × 0x4)
Publish configuration for event MATCH[n]

## 8.20.7.12.2 PUBLISH\_DMA.TX
Publish configuration for events
## 8.20.7.12.2.1 PUBLISH\_DMA.TX.END
Address offset: 0x1E8
Publish configuration for event END


## 8.20.7.12.2.2 PUBLISH\_DMA.TX.READY
Address offset: 0x1EC
Publish configuration for event READY

## 8.20.7.12.2.3 PUBLISH\_DMA.TX.BUSERROR
Address offset: 0x1F0
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.20.7.13 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 | Bit number | Bit number |
| -------------- | ------------------------------ | -------------- | -------------- |
## 8.20.7.14 INTENSET
Enable interrupt
| Bit number | | | | 31 30 | 29 28 | 23 22 21 20 | 4 3 2 | 1 | 0 |
| -------------- | ------------ | --------------- | ---------- | --------- | --------- | ------------------------------ | --------- | ----- | ----- |
| ID Reset | 0x00000000 | | | 0 0 | | G F E 0 0 0 0 | 0 | A | 0 |
| ID | R/W | Field | Value ID | Value | | Description | | | |
| A | RW | END | Set<br>Enabled | 1<br>1 | | Write '1' to<br>Enable<br>Read: Enabled | | | |
| B | RW | ACQUIRED | Set<br>Enabled | 1<br>1 | | Write '1' to<br>Enable<br>Read: Enabled | | | |
| C | RW | DMARXEND | Set | 1 | | Write '1' to<br>Enable | | | |
| D | RW | DMARXREADY | Set | 1 | | Write '1' to enable<br>Enable | | | |
| E | RW | DMARXBUSERROR | Disabled<br>Enabled | 0 1 | | Write '1' to<br>Read: Disabled Read: Enabled | | | |
J
RW
DMATXEND
Write '1' to enable interrupt for event DMATXEND

| Bit number | | 31 30 29 28 27 26 25 24 23 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 H | | K | J I | G F E | D C | | | B | | A |
| Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 | 0 | 0 0 0 | 0 0 0 | 0 0 0 | 0 0 | 0 | 0 0 | 0 0 0 0 |
| ID | R/W Field | Value ID<br>Set<br>Disabled<br>Enabled | Value<br>1<br>0<br>1 | | | Description<br>Enable<br>Read: Disabled<br>Read: Enabled | | | | | | |
| K RW | DMATXREADY | enable event<br>Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write '1'<br>Enable<br>Read: Disabled<br>Read: Enabled | to | interrupt for DMATXREADY | | | | |
| L RW | DMATXBUSERROR | enable event | | | | Write '1' | to | interrupt for DMATXBUSERROR | | | | |
| | | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | can | | When this event read from the<br>Enable<br>Read:<br>Read: Enabled | caused<br>Disabled | address which register. | error | the | be | |
## 8.20.7.15 INTENCLR
Address offset: 0x308
Disable interrupt

| Bit number | | | 31 | 30 29 28 27 | | 26 | 25 24 23 | 22 21 20 19 | 4 3 2 | 1 | | 6 5 | 0 |
| -------------- | ----- | --------------- | ---------- | --------------- | ----- | ------ | ------------ | ------------------------------ | --------- | ------- | ----- | --------------- | ----- |
| ID | | | | | L | K J | I | 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 |
| ID | R/W | Field | Value ID | Value | | | | Description | | | | | |
| A | RW | END | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | | Write '1' to disable interrupt for event<br>Disable<br>Read: Disabled<br>Read: Enabled | | | | | |
| B | RW | ACQUIRED | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | | Write '1' to disable<br>Disable<br>Read: Disabled<br>Read: Enabled | | | | | |
| C | RW | DMARXEND | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | | Write '1' to disable<br>Disable<br>Read: Disabled<br>Read: Enabled | | | | | |
| D | RW | DMARXREADY | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | | Write '1' to disable<br>Disable<br>Read: Disabled<br>Read: Enabled | | | | | |
| E | RW | DMARXBUSERROR | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | | Write '1' to disable<br>When<br>read from<br>Disable<br>Read: Disabled<br>Read: Enabled | error | | can | DMARXBUSERROR | be |
| F-I | RW | DMARXMATCH[i] | (i=0..3)<br>Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | | | Write '1' to disable<br>Disable<br>Read: Disabled<br>Read: Enabled | | | | DMARXMATCH[i] | |

| Bit number | Bit number | Bit 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 |
| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ------------------------------ |
| ID L K | ID L K | ID L K | ID L K | J I H G F E D C B A |
| Reset 0x00000000 0 0 | Reset 0x00000000 0 0 | Reset 0x00000000 0 0 | Reset 0x00000000 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 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 | DMATXEND | | | Write '1' to disable interrupt for event DMATXEND |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| K RW | DMATXREADY | | | Write '1' to disable interrupt for event DMATXREADY |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
| L RW | DMATXBUSERROR | | | Write '1' to disable interrupt for event DMATXBUSERROR<br>When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register. |
| | | Clear | 1 | Disable |
| | | Disabled | 0 | Read: Disabled |
| | | Enabled | 1 | Read: Enabled |
## 8.20.7.16 SEMSTAT
Address offset: 0x400
Semaphore status register

## 8.20.7.17 STATUS
Address offset: 0x440
Status from last transaction
Individual bits are cleared by writing a '1' to the bits that shall be cleared.

| Bit 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 B A | ID B A | ID B A |
| Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID R/W | Value ID | Value Description |
| A RW | OVERREAD TX buffer over-read detected, and prevented | 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 | 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' |
## 8.20.7.18 ENABLE
Address offset: 0x500
Enable SPI slave

## 8.20.7.19 CONFIG
Address offset: 0x554
Configuration register

## 8.20.7.20 DEF
Address offset: 0x55C
Default character. Character clocked out in case of an ignored transaction.

## 8.20.7.21 ORC
Address offset: 0x5C0
Over-read character


## 8.20.7.22 PSEL.SCK
Address offset: 0x600
Pin select for SCK

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.20.7.23 PSEL.MISO
Address offset: 0x604
Pin select for SDO signal

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.20.7.24 PSEL.MOSI
Address offset: 0x608
Pin select for SDI signal

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |

## 8.20.7.25 PSEL.CSN
Address offset: 0x610
Pin select for CSN signal

## 8.20.7.26 DMA.RX.PTR
Address offset: 0x704
RAM buffer start address

RAM buffer start address for this EasyDMA channel. This address is a word aligned Data RAM address.
Note: See the memory chapter for details about which memories are available for EasyDMA.
## 8.20.7.27 DMA.RX.MAXCNT
Address offset: 0x708
Maximum number of bytes in channel buffer

## 8.20.7.28 DMA.RX.AMOUNT
Address offset: 0x70C
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.


## 8.20.7.29 DMA.RX.TERMINATEONBUSERROR
Address offset: 0x71C
Terminate the transaction if a BUSERROR event is detected.

## 8.20.7.30 DMA.RX.BUSERRORADDRESS
Address offset: 0x720
Address of transaction that generated the last BUSERROR event.

## 8.20.7.31 DMA.RX.MATCH
Registers to control the behavior of the pattern matcher engine
## 8.20.7.31.1 DMA.RX.MATCH.CONFIG
Address offset: 0x724
Configure individual match events


## 8.20.7.31.2 DMA.RX.MATCH.CANDIDATE[n] (n=0..3)
Address offset: 0x728 + (n × 0x4)
The data to look for - any match will trigger the MATCH[n] event, if enabled.
Note: This register can be updated while a transfer is in progress, but the new value will not take effect until a match has been found or the transfer is done. That makes it possible to write a new set of match words which will be searched for immediately after the event triggers.

## 8.20.7.32 DMA.TX.PTR
Address offset: 0x73C
RAM buffer start address

## 8.20.7.33 DMA.TX.MAXCNT
Address offset: 0x740
Maximum number of bytes in channel buffer


## 8.20.7.34 DMA.TX.AMOUNT
Address offset: 0x744
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.

## 8.20.7.35 DMA.TX.TERMINATEONBUSERROR
Address offset: 0x754
Terminate the transaction if a BUSERROR event is detected.

## 8.20.7.36 DMA.TX.BUSERRORADDRESS
Address offset: 0x758
Address of transaction that generated the last BUSERROR event.

## 8.21 TEMP - Temperature sensor
The temperature sensor (TEMP) measures die temperature over the temperature range of the device. Linearity compensation can be implemented if required by the application.
The main features of TEMP are:
- Temperature range is greater than or equal to operating temperature of the device

- Resolution is 0.25 degrees
- TEMP analog electronics power down after temperature measurement is completed
TEMP is started by triggering the START task.
When the temperature measurement is completed, a DATARDY event will be generated and the result of the measurement can be read from the TEMP register.
To achieve the measurement accuracy stated in the electrical specification, the crystal oscillator must be selected as the HFCLK source, see CLOCK - Clock control on page 71 for more information.
When the temperature measurement is completed, TEMP analog electronics power down to save power.
TEMP only supports one-shot operation, meaning that every TEMP measurement has to be explicitly started using the START task.
## 8.21.1 Registers
| Instance | Domain | Base address | TrustZone | | | Split | Description |
| -------------------- | ---------- | ----------------------- | ------------- | ----- | ----- | --------- | ------------------------- |
| | | | Map | Att | DMA | access | |
| TEMP : S TEMP : NS | GLOBAL | 0x500D7000 0x400D7000 | US | S | NA | No | Temperature sensor TEMP |
| Register | Offset | TZ | Description |
| ----------------- | ---------- | ------ | ------------------------------ |
| TASKS_START | 0x000 | | Start temperature measurement |
| TASKS_STOP | 0x004 | | Stop temperature measurement |
| SUBSCRIBE_START | 0x080 | | Subscribe configuration for task START |
| SUBSCRIBE_STOP | 0x084 | | Subscribe configuration for task STOP |
| EVENTS_DATARDY | 0x100 | | Temperature measurement complete, data ready |
| PUBLISH_DATARDY | 0x180 | | Publish configuration for event DATARDY |
| INTENSET | 0x304 | | Enable interrupt |
| INTENCLR | 0x308 | | Disable interrupt |
| TEMP | 0x508 | | Temperature in °C (0.25° steps) |
| A0 | 0x520 | | Slope of 1st piece wise linear function |
| A1 | 0x524 | | Slope of 2nd piece wise linear function |
| A2 | 0x528 | | Slope of 3rd piece wise linear function |
| A3 | 0x52C | | Slope of 4th piece wise linear function |
| A4 | 0x530 | | Slope of 5th piece wise linear function |
| A5 | 0x534 | | Slope of 6th piece wise linear function |
| A6 | 0x538 | | Slope of 7th piece wise linear function |
| B0 | 0x540 | | y-intercept of 1st piece wise linear function |
| B1 | 0x544 | | y-intercept of 2nd piece wise linear function |
| B2 | 0x548 | | y-intercept of 3rd piece wise linear function |
| B3 | 0x54C | | y-intercept of 4th piece wise linear function |
| B4 | 0x550 | | y-intercept of 5th piece wise linear function |
| B5 | 0x554 | | y-intercept of 6th piece wise linear function |
| B6 | 0x558 | | y-intercept of 7th piece wise linear function |
| T0 | 0x560 | | End point of 1st piece wise linear function |
| T1 | 0x564 | | End point of 2nd piece wise linear function |
| T2 | 0x568 | | End point of 3rd piece wise linear function |
| Register | Offset | TZ | Description |
| T3 | 0x56C | | End point of 4th piece wise linear function |
| T4 | 0x570 | | End point of 5th piece wise linear function |
| T5 | 0x574 | | End point of 6th piece wise linear function |
## 8.21.1.1 TASKS\_START
Address offset: 0x000
Start temperature measurement

## 8.21.1.2 TASKS\_STOP
Address offset: 0x004
Stop temperature measurement

## 8.21.1.3 SUBSCRIBE\_START
Address offset: 0x080
Subscribe configuration for task START

## 8.21.1.4 SUBSCRIBE\_STOP
Address offset: 0x084
Subscribe configuration for task STOP


## 8.21.1.5 EVENTS\_DATARDY
Address offset: 0x100
Temperature measurement complete, data ready

## 8.21.1.6 PUBLISH\_DATARDY
Address offset: 0x180
Publish configuration for event DATARDY

## 8.21.1.7 INTENSET
Address offset: 0x304
Enable interrupt


## 8.21.1.8 INTENCLR
Address offset: 0x308
Disable interrupt

## 8.21.1.9 TEMP
Address offset: 0x508
Temperature in °C (0.25° steps)

## 8.21.1.10 A0
Address offset: 0x520
Slope of 1st piece wise linear function

A
RW
A0
## 8.21.1.11 A1
Address offset: 0x524
Slope of 2nd piece wise linear function


Decision point: DATARDY
Slope of 1st piece wise linear function
## 8.21.1.12 A2
Address offset: 0x528
Slope of 3rd piece wise linear function

A
RW
A2
## 8.21.1.13 A3
Address offset: 0x52C
Slope of 4th piece wise linear function

A
RW
A3
## 8.21.1.14 A4
Address offset: 0x530
Slope of 5th piece wise linear function

A
RW
A4
## 8.21.1.15 A5
Address offset: 0x534
Slope of 6th piece wise linear function

A
RW
A5
## 8.21.1.16 A6
Address offset: 0x538
Slope of 7th piece wise linear function
Slope of 6th piece wise linear function
Slope of 3rd piece wise linear function
Slope of 4th piece wise linear function
Slope of 5th piece wise linear function


A
RW
A6
## 8.21.1.17 B0
Address offset: 0x540
y-intercept of 1st piece wise linear function

A
RW
B0
## 8.21.1.18 B1
Address offset: 0x544
y-intercept of 2nd piece wise linear function

## 8.21.1.19 B2
Address offset: 0x548
y-intercept of 3rd piece wise linear function

A
RW
B2
## 8.21.1.20 B3
Address offset: 0x54C
y-intercept of 4th piece wise linear function
Slope of 7th piece wise linear function


y-intercept of 1st piece wise linear function
y-intercept of 3rd piece wise linear function
## 8.21.1.21 B4
Address offset: 0x550
y-intercept of 5th piece wise linear function

A
RW
B4
## 8.21.1.22 B5
Address offset: 0x554
y-intercept of 6th piece wise linear function

A
RW
B5
## 8.21.1.23 B6
Address offset: 0x558
y-intercept of 7th piece wise linear function

A
RW
B6
## 8.21.1.24 T0
Address offset: 0x560
End point of 1st piece wise linear function

A
RW
T0
## 8.21.1.25 T1
Address offset: 0x564
End point of 2nd piece wise linear function
End point of 1st piece wise linear function
y-intercept of 5th piece wise linear function
y-intercept of 6th piece wise linear function
y-intercept of 7th piece wise linear function


A
RW
T1
## 8.21.1.26 T2
Address offset: 0x568
End point of 3rd piece wise linear function

A
RW
T2
## 8.21.1.27 T3
Address offset: 0x56C
End point of 4th piece wise linear function

## 8.21.1.28 T4
Address offset: 0x570
End point of 5th piece wise linear function

A
RW
T4
## 8.21.1.29 T5
Address offset: 0x574
End point of 6th piece wise linear function
End point of 2nd piece wise linear function


End point of 3rd piece wise linear function
End point of 5th piece wise linear function
## 8.22 TIMER - Timer/counter
The TIMER peripheral is a general purpose timer allowing time intervals to be defined by user input.
The main features of TIMER are:
- Two modes of operation: Timer mode and Counter mode
- Multiple capture/compare registers
- Compare event for every capture/compare registers
- 4-bit (1/2X) prescaler
- Configurable number of bits used by the TIMER: 8, 16, 24 or 32 bits
- TIMER runs on the high-frequency clock source (HFCLK)
Figure 143: 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 (PCLK) from the HFCLK controller. The TIMER base frequency is always given as PCLK 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 624. The timer frequency is derived from PCLK as shown in the following example, using the values specified in the PRESCALER register.
fTIMER = PCLK / (2 PRESCALER )
For timers using PCLK16M as PCLK, when fTIMER ≤ 1 MHz, TIMER uses PCLK1M instead of PCLK for reduced power consumption. Clock source selection between PCLK and PCLK1M is automatic according to the TIMER base frequency set by the prescaler.
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 632.
PRESCALER on page 632 and BITMODE on page 632 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 624.
## 8.22.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.
## 8.22.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 632 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].
## 8.22.3 Task delays
After TIMER is started, the CLEAR, COUNT, and STOP tasks are guaranteed to take effect within one clock cycle of the PCLK.
## 8.22.4 Task priority

If the START task and the STOP task are triggered at the same time, meaning within the same period of PCLK, the STOP task is prioritized.
If one or more of the CAPTURE tasks and the CLEAR task are triggered at the same time, that is, within the same period of PCLK, the CAPTURE tasks are prioritized. This means that the CC registers will capture the counter value before the CLEAR tasks are triggered.
## 8.22.5 Registers
| Instance | Domain | Base address | TrustZone | TrustZone | TrustZone | Split | Description |
| -------------------------- | ---------- | ----------------------- | ------------- | ------------- | ------------- | --------- | --------------- |
| | | | Map | Att | DMA | access | |
| TIMER00 : S TIMER00 : NS | GLOBAL | 0x50055000 0x40055000 | US | S | NA | No | Timer TIMER00 |
| TIMER10 : S TIMER10 : NS | GLOBAL | 0x50085000 0x40085000 | US | S | NA | No | Timer TIMER10 |
| TIMER20 : S TIMER20 : NS | GLOBAL | 0x500CA000 0x400CA000 | US | S | NA | No | Timer TIMER20 |
| TIMER21 : S TIMER21 : NS | GLOBAL | 0x500CB000 0x400CB000 | US | S | NA | No | Timer TIMER21 |
| TIMER22 : S TIMER22 : NS | GLOBAL | 0x500CC000 0x400CC000 | US | S | NA | No | Timer TIMER22 |
| TIMER23 : S TIMER23 : NS | GLOBAL | 0x500CD000 0x400CD000 | US | S | NA | No | Timer TIMER23 |
| TIMER24 : S TIMER24 : NS | GLOBAL | 0x500CE000 0x400CE000 | US | S | NA | No | Timer TIMER24 |
| Instance | Domain | Configuration |
| -------------------------- | ---------- | ------------------------------ |
| TIMER00 : S TIMER00 : NS | GLOBAL | Peripheral clock frequency (PCLK) is 128 MHz The system is able to configure the TIMER peripheral input clock frequency (PCLK) before it reaches TIMER, and calculations of PRESCALER value must take the actual PCLK frequency into account |
| TIMER10 : S TIMER10 : NS | GLOBAL | Peripheral clock frequency (PCLK) is 32 MHz 8 capture compare channels implemented |
| TIMER20 : S TIMER20 : NS | GLOBAL | Peripheral clock frequency (PCLK) is 16 MHz 6 capture compare channels implemented |
| TIMER21 : S TIMER21 : NS | GLOBAL | Peripheral clock frequency (PCLK) is 16 MHz 6 capture compare channels implemented |
| TIMER22 : S TIMER22 : NS | GLOBAL | Peripheral clock frequency (PCLK) is 16 MHz 6 capture compare channels implemented |
| TIMER23 : S TIMER23 : NS | GLOBAL | Peripheral clock frequency (PCLK) is 16 MHz 6 capture compare channels implemented |
| TIMER24 : S TIMER24 : NS | GLOBAL | Peripheral clock frequency (PCLK) is 16 MHz 6 capture compare channels implemented |

| Register | Offset | TZ | Description |
| ---------------------- | ---------- | ------ | ------------------------------ |
| TASKS_START | 0x000 | | Start Timer |
| TASKS_STOP | 0x004 | | Stop Timer |
| TASKS_COUNT | 0x008 | | Increment Timer (Counter mode only) |
| TASKS_CLEAR | 0x00C | | Clear time |
| TASKS_CAPTURE[n] | 0x040 | | Capture Timer value to CC[n] register |
| SUBSCRIBE_START | 0x080 | | Subscribe configuration for task START |
| SUBSCRIBE_STOP | 0x084 | | Subscribe configuration for task STOP |
| SUBSCRIBE_COUNT | 0x088 | | Subscribe configuration for task COUNT |
| SUBSCRIBE_CLEAR | 0x08C | | Subscribe configuration for task CLEAR |
| SUBSCRIBE_CAPTURE[n] | 0x0C0 | | Subscribe configuration for task CAPTURE[n] |
| EVENTS_COMPARE[n] | 0x140 | | Compare event on CC[n] match |
| PUBLISH_COMPARE[n] | 0x1C0 | | Publish configuration for event COMPARE[n] |
| SHORTS | 0x200 | | Shortcuts between local events and tasks |
| INTEN | 0x300 | | Enable or disable interrupt |
| INTENSET | 0x304 | | Enable interrupt |
| INTENCLR | 0x308 | | Disable interrupt |
| MODE | 0x504 | | Timer mode selection |
| BITMODE | 0x508 | | Configure the number of bits used by the TIMER |
| PRESCALER | 0x510 | | Timer prescaler register |
| CC[n] | 0x540 | | Capture/Compare register n |
| ONESHOTEN[n] | 0x580 | | Enable one-shot operation for Capture/Compare channel |
## 8.22.5.1 TASKS\_START
Address offset: 0x000
## Start Timer

## 8.22.5.2 TASKS\_STOP
Address offset: 0x004
## Stop Timer

## 8.22.5.3 TASKS\_COUNT
Address offset: 0x008

## Increment Timer (Counter mode only)

## 8.22.5.4 TASKS\_CLEAR
Address offset: 0x00C
Clear time

## 8.22.5.5 TASKS\_CAPTURE[n] (n=0..7)
Address offset: 0x040 + (n × 0x4)
Capture Timer value to CC[n] register

## 8.22.5.6 SUBSCRIBE\_START
Address offset: 0x080
Subscribe configuration for task START

## 8.22.5.7 SUBSCRIBE\_STOP
Address offset: 0x084
Subscribe configuration for task STOP


## 8.22.5.8 SUBSCRIBE\_COUNT
Address offset: 0x088
Subscribe configuration for task COUNT

## 8.22.5.9 SUBSCRIBE\_CLEAR
Address offset: 0x08C
Subscribe configuration for task CLEAR

## 8.22.5.10 SUBSCRIBE\_CAPTURE[n] (n=0..7)
Address offset: 0x0C0 + (n × 0x4)
Subscribe configuration for task CAPTURE[n]

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.22.5.11 EVENTS\_COMPARE[n] (n=0..7)
Address offset: 0x140 + (n × 0x4)
Compare event on CC[n] match

## 8.22.5.12 PUBLISH\_COMPARE[n] (n=0..7)
Address offset: 0x1C0 + (n × 0x4)
Publish configuration for event COMPARE[n]

## 8.22.5.13 SHORTS
Address offset: 0x200
Shortcuts between local events and tasks

## 8.22.5.14 INTEN
Address offset: 0x300
Enable or disable interrupt


## 8.22.5.15 INTENSET
Address offset: 0x304
Enable interrupt

## 8.22.5.16 INTENCLR
Address offset: 0x308
Disable interrupt

## 8.22.5.17 MODE
Address offset: 0x504
Timer mode selection


## 8.22.5.18 BITMODE
Address offset: 0x508
Configure the number of bits used by the TIMER

## 8.22.5.19 PRESCALER
Address offset: 0x510
Timer prescaler register

## 8.22.5.20 CC[n] (n=0..7)
Address offset: 0x540 + (n × 0x4)
Capture/Compare register n

Only the number of bits indicated by BITMODE will be used by the TIMER.
## 8.22.5.21 ONESHOTEN[n] (n=0..7)
Address offset: 0x580 + (n × 0x4)
Enable one-shot operation for Capture/Compare channel 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 |
| Reset 0x00000000 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Configures the corresponding compare-channel for one-shot operation |
| | Disable | 0 Disable one-shot operation<br>Compare event is generated every time the Counter matches CC[n] |
| | Enable | 1 Enable one-shot operation<br>Compare event is generated the first time the Counter matches CC[n] after<br>CC[n] has been written |
## 8.23 TWIM - I 2 C compatible two-wire interface controller with EasyDMA
The TWI controller peripheral (TWIM) with EasyDMA provides a half duplex, two-wire synchronous serial communication interface which supports multiple targets in the same bus.
## The main features of TWIM are the following:
- I 2 C compatible for 100 kbps and 400 kbps
- 1000 kbps bit rate support for selected pull-up resistor/bus capacitance combinations
- Supported baud rates:
- 100 kbps
- 400 kbps
- 1000 kbps
- EasyDMA direct transfer to and from RAM
- Individual selection of I/O pins
- Support for clock stretching
- Transmissions can be suspended and resumed
The two-wire interface can communicate with a bidirectional wired-AND bus with two lines (SCL, SDA). The interface enables interconnecting up to 127 individually addressable devices. TWIM is not compatible with CBUS.
Selecting GPIO pins individually ensures flexibility in device pinout and efficient use of board space and signal routing.

Figure 144: TWIM with EasyDMA

A typical TWIM setup consists of one controller and one or more targets, as illustrated in the following figure. TWIM can only operate as a single controller on the TWI bus. A bus configuration with multiple controllers is not supported.
Figure 145: A typical TWIM setup with one controller and three targets
**Figure 144: TWIM with EasyDMA**

TWIM supports clock stretching performed by the targets.
## 8.23.1 TWIM operation
TWIM is started by triggering the DMA.TX.START or DMA.RX.START tasks, and stopped by triggering the STOP task. After a STOP task, TWIM generates a STOPPED event when it has stopped.
After TWIM starts, the DMA.TX.START and DMA.RX.START tasks must not be triggered again until TWIM has issued a LASTRX, LASTTX, or STOPPED event.

TWIM can be suspended using the SUSPEND task, which is useful when using TWIM in a low priority interrupt context. When TWIM enters the SUSPEND state, it will automatically issue a SUSPENDED event while performing a continuous clock stretching. This continues until a RESUME task is received. TWIM cannot be stopped while it is suspended. The STOP task must be issued after TWIM resumes operation.
Note: Any ongoing byte transfer is allowed to complete before suspend is enforced. A SUSPEND task has no effect unless TWIM is actively involved in a transfer.
If a NACK is clocked in from the target, TWIM generates an ERROR event.
## 8.23.2 Shared resources
The TWIM peripheral shares registers and other resources with peripherals that have the same ID as TWIM. Therefore, all peripherals that have the same ID as TWIM must be disabled before TWIM can be configured and used.
Disabling shared peripherals will not reset any of the registers that are shared with TWIM. Configure all relevant TWIM registers to ensure they operate correctly.
See the Instantiation table in Instantiation on page 214 for details on peripherals and their IDs.
## 8.23.3 EasyDMA
EasyDMA is implemented by TWIM in order to access RAM without the CPU.
TWIM implements the following EasyDMA channels.
Table 63: TWIM EasyDMA channels
| Channel | Type | Register Cluster |
| ----------- | -------- | -------------------- |
| TXD | READER | TXD |
| RXD | WRITER | RXD |
The RXD.PTR, TXD.PTR, RXD.MAXCNT, and TXD.MAXCNT registers are double-buffered. They are ready for the next transmission immediately after receiving the EVENTS\_DMA.RX.READY or EVENTS\_DMA.TX.READY event.
The STOPPED event indicates that EasyDMA is finished accessing the buffer in RAM.
See EasyDMA on page 28 for more detailed information.
## 8.23.4 TWIM write sequence
A TWIM write sequence is started by triggering the DMA.TX.START task. After the DMA.TX.START task has been triggered, TWIM generates a start condition on the TWI bus. This is followed by clocking out the address and the READ/WRITE bit set to 0 (WRITE = 0 , READ = 1 ).
The target device address the controller wants to write to must match the clocked address. The READ/ WRITE bit is followed by an ACK/NACK bit (ACK = 0 or NACK = 1 ) generated by the target.
After receiving the ACK bit, TWIM clocks out the data bytes found in the transmit buffer located in RAM at the address specified in the TXD.PTR register. Each byte clocked out from TWIM is followed by an ACK/ NACK bit clocked in from the target.
A typical TWIM write sequence including clock stretching performed by TWIM following a SUSPEND task is shown in the following figure.

Figure 146: TWIM writing data to a target

A SUSPENDED event indicates that the SUSPEND task has taken effect.
TWIM will generate a LASTTX event when it starts to transmit the last byte.
TWIM is stopped by triggering the STOP task. To stop TWIM as fast as possible, trigger the task during the transmission of the last byte. The shortcut between LASTTX and STOP can also be used to accomplish this.
TWIM does not stop on its own when the entire RAM buffer has been sent or when an error occurs. The STOP task must be issued, either through the local or PPI shortcut, or in software as part of the error handler.
## 8.23.5 TWIM read sequence
A TWIM read sequence is started by triggering the DMA.RX.START task. After the DMA.RX.START task has been triggered, TWIM generates a start condition on the TWI bus. This is followed by clocking out the address and the READ/WRITE bit set to 1 (WRITE = 0 , READ = 1 ). The address must match the address of the target device that the controller wants to read from. The READ/WRITE bit is followed by an ACK/NACK bit (ACK = 0 or NACK = 1) generated by the target.
After sending the ACK bit, the TWI target sends data to the controller using the clock generated by TWIM.
Data received will be stored in RAM at the address specified in the RXD.PTR register. TWIM will generate an ACK before the last byte is received from the target. TWIM generates a NACK after the last byte received to indicate that the read sequence will stop.
A typical TWIM read sequence is illustrated in the following figure, including clock stretching performed by TWIM following a SUSPEND task.

Figure 147: TWIM reading data from a target

A SUSPENDED event indicates that the SUSPEND task has taken effect. This event can be used to synchronize the software.
TWIM generates a LASTRX event when it is ready to receive the last byte. If RXD.MAXCNT > 1, the LASTRX event is generated after sending the ACK of the previously received byte. If RXD.MAXCNT = 1, the LASTRX event is generated after receiving the ACK following the address and READ bit.
TWIM is stopped by triggering the STOP task. This task must be triggered before the NACK bit begins transmission. The STOP task can be triggered at any time during the reception of the last byte. It is recommended to use the shortcut between LASTRX and STOP.
TWIM does not stop on its own when the RAM buffer is full or when an error occurs. The STOP task must be issued, either through a local or PPI shortcut, or in software as part of the error handler.
TWIM cannot be stopped while suspended. The STOP task must be issued after TWIM has been resumed.
## 8.23.6 TWIM repeated start sequence
A typical repeated start sequence is when TWIM writes two bytes to the target followed by reading four bytes from the target. This example uses shortcuts to perform a simple repeated start sequence, with one write followed by one read. The same approach can be used to perform a repeated start sequence where the sequence is read followed by a write.
The following figure shows an example of a repeated start sequence where TWIM writes two bytes followed by reading four bytes from the target.

Figure 148: Controller repeated start sequence

If a more complex repeated start sequence is needed, and the TWI firmware drive is serviced in a low priority interrupt, use the SUSPEND task and SUSPENDED event to ensure 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.
Figure 149: Double repeated start sequence
**Figure 148: Controller repeated start sequence**

## 8.23.7 Low power
When the peripheral is not needed, stop and disable TWIM for lowest possible power consumption.
When the STOP task is sent, the software must wait until the STOPPED event is received before disabling the peripheral through the ENABLE register. If the peripheral is already stopped, the STOP task is not needed.
## 8.23.8 TWIM pin configuration
The SCL and SDA signals are mapped to physical pins using the PSEL.SCL and PSEL.SDA registers.

These registers and their configurations are only used when TWIM is enabled, and retained while the device is in System ON mode. When the peripheral is disabled, the pins behave as regular GPIOs and are configured according to their respective OUT bit field and PIN\_CNF[n] register. Configure registers PSEL.SCL and PSEL.SDA when TWIM is disabled.
Only one peripheral can be assigned to drive a GPIO pin at a time. If more than one peripheral is assigned to a GPIO pin, it could result in unpredictable behavior.
When TWIM is in System OFF mode or disabled, the pins using TWIM must be configured by the GPIO peripheral according to the following table to ensure correct pin behavior.
Table 64: GPIO configuration before enabling peripheral
| TWIM signal | TWIM pin | Drive strength | Direction | Output value |
| --------------- | -------------------------- | ------------------ | ------------- | ---------------- |
| SCL | As specified in PSEL.SCL | S0D1 | Input | Not applicable |
| SDA | As specified in PSEL.SDA | S0D1 | Input | Not applicable |
## 8.23.9 Pull-up resistor
1000 kbps bit rate is supported when using H0D1 drive strength, 1 kΩ pull-up resistor, and maximum 50 pF bus capacitance. For other bit rates, see the following figure.
**Figure 150: Recommended TWIM pull-up value vs. line capacitance**

Figure 150: Recommended TWIM pull-up value vs. line capacitance

- The I 2 C bus specification allows a maximum line capacitance of 400 pF.
- The value of internal pull-up resistor (RPU) for nRF54L15/10/05 can be found in GPIO - General purpose input/output on page 272.
## 8.23.10 Registers
| Instance | Domain | Base address | TrustZone | TrustZone | TrustZone | Split | Description |
| ------------------------ | ---------- | ----------------------- | ------------- | ------------- | ------------- | --------- | ------------------------------ |
| | | | Map | Att | DMA | access | |
| TWIM20 : S TWIM20 : NS | GLOBAL | 0x500C6000 0x400C6000 | US | S | SA | No | Two-wire interface controller TWIM20 |
| TWIM21 : S TWIM21 : NS | GLOBAL | 0x500C7000 0x400C7000 | US | S | SA | No | Two-wire interface controller TWIM21 |
| TWIM22 : S TWIM22 : NS | GLOBAL | 0x500C8000 0x400C8000 | US | S | SA | No | Two-wire interface controller TWIM22 |
| TWIM30 : S TWIM30 : NS | GLOBAL | 0x50104000 0x40104000 | US | S | SA | No | Two-wire interface controller TWIM30 |
| Instance | Domain | Configuration |
| ------------------------ | ---------- | ------------------ |
| TWIM20 : S TWIM20 : NS | GLOBAL | Use GPIO port P1 |
| TWIM21 : S TWIM21 : NS | GLOBAL | Use GPIO port P1 |
| TWIM22 : S TWIM22 : NS | GLOBAL | Use GPIO port P1 |
| TWIM30 : S TWIM30 : NS | GLOBAL | Use GPIO port P0 |
| Register | Offset | TZ | Description |
| ------------------------------ | ---------- | ------ | ------------------------------ |
| TASKS_STOP | 0x004 | | Stop TWI transaction. Must be issued while the TWI master is not suspended. |
| TASKS_SUSPEND | 0x00C | | Suspend TWI transaction |
| TASKS_RESUME | 0x010 | | Resume TWI transaction |
| TASKS_DMA.RX.START | 0x028 | | Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA. |
| TASKS_DMA.RX.STOP | 0x02C | | Stops operation using easyDMA. This does not trigger an END event. |
| TASKS_DMA.RX.ENABLEMATCH[n] | 0x030 | | Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register. |
| TASKS_DMA.RX.DISABLEMATCH[n] | 0x040 | | Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register. |
| TASKS_DMA.TX.START | 0x050 | | Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA. |
| TASKS_DMA.TX.STOP | 0x054 | | Stops operation using easyDMA. This does not trigger an END event. |
| SUBSCRIBE_STOP | 0x084 | | Subscribe configuration for task STOP |
| SUBSCRIBE_SUSPEND | 0x08C | | Subscribe configuration for task SUSPEND |
| SUBSCRIBE_RESUME | 0x090 | | Subscribe configuration for task RESUME |
| SUBSCRIBE_DMA.RX.START | 0x0A8 | | Subscribe configuration for task START |
| SUBSCRIBE_DMA.RX.STOP | 0x0AC | | Subscribe configuration for task STOP |
| SUBSCRIBE_DMA.RX.ENABLEMATCH[n] | 0x0B0 | | Subscribe configuration for task ENABLEMATCH[n] |
| Register | Offset | TZ | Description |
| SUBSCRIBE_DMA.RX.DISABLEMATCH[n] | 0x0C0 | | Subscribe configuration for task DISABLEMATCH[n] |
| SUBSCRIBE_DMA.TX.START | 0x0D0 | | Subscribe configuration for task START |
| SUBSCRIBE_DMA.TX.STOP | 0x0D4 | | Subscribe configuration for task STOP |
| EVENTS_STOPPED | 0x104 | | TWI stopped |
| EVENTS_ERROR | 0x114 | | TWI error |
| EVENTS_SUSPENDED | 0x128 | | SUSPEND task has been issued, TWI traffic is now suspended. |
| EVENTS_LASTRX | 0x134 | | Byte boundary, starting to receive the last byte |
| EVENTS_LASTTX | 0x138 | | Byte boundary, starting to transmit the last byte |
| EVENTS_DMA.RX.END | 0x14C | | Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed. |
| EVENTS_DMA.RX.READY | 0x150 | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.RX.BUSERROR | 0x154 | | An error occured during the bus transfer. |
| EVENTS_DMA.RX.MATCH[n] | 0x158 | | Pattern match is detected on the DMA data bus. |
| EVENTS_DMA.TX.END | 0x168 | | Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed. |
| EVENTS_DMA.TX.READY | 0x16C | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.TX.BUSERROR | 0x170 | | An error occured during the bus transfer. |
| PUBLISH_STOPPED | 0x184 | | Publish configuration for event STOPPED |
| PUBLISH_ERROR | 0x194 | | Publish configuration for event ERROR |
| PUBLISH_SUSPENDED | 0x1A8 | | Publish configuration for event SUSPENDED |
| PUBLISH_LASTRX | 0x1B4 | | Publish configuration for event LASTRX |
| PUBLISH_LASTTX | 0x1B8 | | Publish configuration for event LASTTX |
| PUBLISH_DMA.RX.END | 0x1CC | | Publish configuration for event END |
| PUBLISH_DMA.RX.READY | 0x1D0 | | Publish configuration for event READY |
| PUBLISH_DMA.RX.BUSERROR | 0x1D4 | | Publish configuration for event BUSERROR |
| PUBLISH_DMA.RX.MATCH[n] | 0x1D8 | | Publish configuration for event MATCH[n] |
| PUBLISH_DMA.TX.END | 0x1E8 | | Publish configuration for event END |
| PUBLISH_DMA.TX.READY | 0x1EC | | Publish configuration for event READY |
| PUBLISH_DMA.TX.BUSERROR | 0x1F0 | | Publish configuration for event BUSERROR |
| SHORTS | 0x200 | | Shortcuts between local events and tasks |
| INTEN | 0x300 | | Enable or disable interrupt |
| INTENSET | 0x304 | | Enable interrupt |
| INTENCLR | 0x308 | | Disable interrupt |
| ERRORSRC | 0x4C4 | | Error source |
| ENABLE | 0x500 | | Enable TWIM |
| FREQUENCY | 0x524 | | TWI frequency. Accuracy depends on the HFCLK source selected. |
| ADDRESS | 0x588 | | Address used in the TWI transfer |
| PSEL.SCL | 0x600 | | Pin select for SCL signal |
| PSEL.SDA | 0x604 | | Pin select for SDA signal |
| DMA.RX.PTR | 0x704 | | RAM buffer start address |
| DMA.RX.MAXCNT | 0x708 | | Maximum number of bytes in channel buffer |
| | 0x70C | | Number of bytes transferred in the last transaction, updated after the END event. |
| DMA.RX.AMOUNT | | | |
| Also updated DMA.RX.TERMINATEONBUSERROR | 0x71C | | after each MATCH event. Terminate the transaction if a BUSERROR event is detected. |
| DMA.RX.MATCH.CONFIG | 0x724 | | Configure individual match events |
| DMA.RX.MATCH.CANDIDATE[n] | 0x728 | | The data to look for - any match will trigger the MATCH[n] event, if enabled. |
| DMA.TX.PTR RAM buffer | 0x73C | | start address |
| Maximum | 0x740 0x744 | | number of bytes in channel buffer Number of bytes transferred in the last transaction, updated after the END |
| DMA.TX.MAXCNT DMA.TX.AMOUNT | | | |
| Also updated after each MATCH | | | event. |
| event. | event. | event. | event. |
| Register | Offset | TZ | Description |
| DMA.TX.TERMINATEONBUSERROR | 0x754 | | Terminate the transaction if a BUSERROR event is detected. |
| DMA.TX.BUSERRORADDRESS | 0x758 | | Address of transaction that generated the last BUSERROR event. |
## 8.23.10.1 TASKS\_STOP
Address offset: 0x004
Stop TWI transaction. Must be issued while the TWI master is not suspended.

## 8.23.10.2 TASKS\_SUSPEND
Address offset: 0x00C
Suspend TWI transaction

## 8.23.10.3 TASKS\_RESUME
Address offset: 0x010
Resume TWI transaction

## 8.23.10.4 TASKS\_DMA
Peripheral tasks.
## 8.23.10.4.1 TASKS\_DMA.RX
Peripheral tasks.
## 8.23.10.4.1.1 TASKS\_DMA.RX.START
Address offset: 0x028

Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

## 8.23.10.4.1.2 TASKS\_DMA.RX.STOP
Address offset: 0x02C
Stops operation using easyDMA. This does not trigger an END event.

## 8.23.10.4.1.3 TASKS\_DMA.RX.ENABLEMATCH[n] (n=0..3)
Address offset: 0x030 + (n × 0x4)
Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register.

## 8.23.10.4.1.4 TASKS\_DMA.RX.DISABLEMATCH[n] (n=0..3)
Address offset: 0x040 + (n × 0x4)
Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register.

## 8.23.10.4.2 TASKS\_DMA.TX
Peripheral tasks.

## 8.23.10.4.2.1 TASKS\_DMA.TX.START
Address offset: 0x050
Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

## 8.23.10.4.2.2 TASKS\_DMA.TX.STOP
Address offset: 0x054
Stops operation using easyDMA. This does not trigger an END event.

## 8.23.10.5 SUBSCRIBE\_STOP
Address offset: 0x084
Subscribe configuration for task STOP

## 8.23.10.6 SUBSCRIBE\_SUSPEND
Address offset: 0x08C
Subscribe configuration for task SUSPEND


| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.23.10.7 SUBSCRIBE\_RESUME
Address offset: 0x090
Subscribe configuration for task RESUME

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.23.10.8 SUBSCRIBE\_DMA
Subscribe configuration for tasks
## 8.23.10.8.1 SUBSCRIBE\_DMA.RX
Subscribe configuration for tasks
## 8.23.10.8.1.1 SUBSCRIBE\_DMA.RX.START
Address offset: 0x0A8
Subscribe configuration for task START

| Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 |
| ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | B A A A A A A A A | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.23.10.8.1.2 SUBSCRIBE\_DMA.RX.STOP
Address offset: 0x0AC
Subscribe configuration for task STOP

8.23.10.8.1.3 SUBSCRIBE\_DMA.RX.ENABLEMATCH[n] (n=0..3)
**8.23.10.8.1.3 SUBSCRIBE_DMA.RX.ENABLEMATCH[n] (n=0..3)**

Address offset: 0x0B0 + (n × 0x4)
Subscribe configuration for task ENABLEMATCH[n]
8.23.10.8.1.4 SUBSCRIBE\_DMA.RX.DISABLEMATCH[n] (n=0..3)
**8.23.10.8.1.4 SUBSCRIBE_DMA.RX.DISABLEMATCH[n] (n=0..3)**

Address offset: 0x0C0 + (n × 0x4)
Subscribe configuration for task DISABLEMATCH[n]

## 8.23.10.8.2 SUBSCRIBE\_DMA.TX
Subscribe configuration for tasks
## 8.23.10.8.2.1 SUBSCRIBE\_DMA.TX.START
Address offset: 0x0D0
Subscribe configuration for task START


## 8.23.10.8.2.2 SUBSCRIBE\_DMA.TX.STOP
Address offset: 0x0D4
Subscribe configuration for task STOP

## 8.23.10.9 EVENTS\_STOPPED
Address offset: 0x104
TWI stopped

## 8.23.10.10 EVENTS\_ERROR
Address offset: 0x114
TWI error

## 8.23.10.11 EVENTS\_SUSPENDED
Address offset: 0x128

SUSPEND task has been issued, TWI traffic is now suspended.

## 8.23.10.12 EVENTS\_LASTRX
Address offset: 0x134
Byte boundary, starting to receive the last byte

## 8.23.10.13 EVENTS\_LASTTX
Address offset: 0x138
Byte boundary, starting to transmit the last byte

## 8.23.10.14 EVENTS\_DMA
Peripheral events.
## 8.23.10.14.1 EVENTS\_DMA.RX
Peripheral events.
## 8.23.10.14.1.1 EVENTS\_DMA.RX.END
Address offset: 0x14C
Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.


## 8.23.10.14.1.2 EVENTS\_DMA.RX.READY
Address offset: 0x150
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

## 8.23.10.14.1.3 EVENTS\_DMA.RX.BUSERROR
Address offset: 0x154
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.23.10.14.1.4 EVENTS\_DMA.RX.MATCH[n] (n=0..3)
Address offset: 0x158 + (n × 0x4)
Pattern match is detected on the DMA data bus.


## 8.23.10.14.2 EVENTS\_DMA.TX
Peripheral events.
## 8.23.10.14.2.1 EVENTS\_DMA.TX.END
Address offset: 0x168
Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.

## 8.23.10.14.2.2 EVENTS\_DMA.TX.READY
Address offset: 0x16C
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

## 8.23.10.14.2.3 EVENTS\_DMA.TX.BUSERROR
Address offset: 0x170
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.


## 8.23.10.15 PUBLISH\_STOPPED
Address offset: 0x184
Publish configuration for event STOPPED

## 8.23.10.16 PUBLISH\_ERROR
Address offset: 0x194
Publish configuration for event ERROR

## 8.23.10.17 PUBLISH\_SUSPENDED
Address offset: 0x1A8
Publish configuration for event SUSPENDED

| Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 |
| ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | B A A A A A A A A | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |

## 8.23.10.18 PUBLISH\_LASTRX
Address offset: 0x1B4
Publish configuration for event LASTRX

| Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 |
| ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | B A A A A A A A A | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled 1 | Disable publishing<br>Enable publishing |
## 8.23.10.19 PUBLISH\_LASTTX
Address offset: 0x1B8
Publish configuration for event LASTTX

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.23.10.20 PUBLISH\_DMA
Publish configuration for events
## 8.23.10.20.1 PUBLISH\_DMA.RX
Publish configuration for events
## 8.23.10.20.1.1 PUBLISH\_DMA.RX.END
Address offset: 0x1CC
Publish configuration for event END

| Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 |
| ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | B A A A A A A A A | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled 1 | Disable publishing<br>Enable publishing |
## 8.23.10.20.1.2 PUBLISH\_DMA.RX.READY
Address offset: 0x1D0
Publish configuration for event READY


## 8.23.10.20.1.3 PUBLISH\_DMA.RX.BUSERROR
Address offset: 0x1D4
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.23.10.20.1.4 PUBLISH\_DMA.RX.MATCH[n] (n=0..3)
Address offset: 0x1D8 + (n × 0x4)
Publish configuration for event MATCH[n]

## 8.23.10.20.2 PUBLISH\_DMA.TX
Publish configuration for events
## 8.23.10.20.2.1 PUBLISH\_DMA.TX.END
Address offset: 0x1E8
Publish configuration for event END

8.23.10.20.2.2 PUBLISH\_DMA.TX.READY
**8.23.10.20.2.2 PUBLISH_DMA.TX.READY**

Address offset: 0x1EC
Publish configuration for event READY

## 8.23.10.20.2.3 PUBLISH\_DMA.TX.BUSERROR
Address offset: 0x1F0
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.23.10.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 | 8 7 | 4 3 2 | | 9 | | 6 5 1 0 | | | 19 18 17 16 |
| ------------------ | ----- | ------------------------------ | ------------------------------ | ------- | ---- | ----- | ------------------------ | -------------- | --------- | ----- | ------ | ---- | ----------- | ----- | ---------- | --------------- |
| ID | | | | | | M L | I H G | B A | | | C | | | | F | |
| Reset 0x00000000 | | | | 0 0 | 0 | 0 0 | 0 0 | 0 | 0 | 0 0 | 0 | 0 | 0 0 | 0 0 | 0 0 | 0 0 0 0 |
| ID | R/W | Field | Value ID<br>Disabled | Value<br>0 | | | Description<br>Disable | | | | | | | | shortcut | |
| C | RW | LASTTX_STOP | Disabled | 0 | | | Shortcut<br>Disable | | | | STOP | | | | between | event |
| D | RW | LASTRX_DMA_TX_START | Enabled | 1 | | | Shortcut<br>Enable | DMA.TX.START | | | | | | | between | event |
| E | RW | LASTRX_STOP | Disabled | 0 | | | Shortcut<br>Disable | | | | STOP | | | | | |
| F-I | | | Enabled<br>Disabled<br>Enabled | 1<br>1 | | | Enable<br>daisy-chaining<br>Allows<br>Disable<br>Enable | | | | | | | | shortcut | |
| J-M | RW | DMA_RX_MATCH[i]_DMA_RX_DISABLEMATCH[i]<br>(i=0..3) | Disabled | 0 | | | DMA.RX.DISABLEMATCH[n]<br>Disable | | | | | | | | shortcut | between event |
## 8.23.10.22 INTEN
Address offset: 0x300
Enable or disable interrupt
| Bit number | Bit number | Bit number |
| -------------- | -------------- | -------------- |


| Bit number | | | | 31 30 29 28 27 26 | | | 25 24 | 23 22 21 20 | 15 14 | 13 | 12 11 | 10 9 8 7 6 5 4 3 | 2 1 | | 0 |
| ------------------ | ------------------ | ------------------------ | ---------- | --------------------- | ----- | ---- | --------- | ------------------- | --------------------- | ------------------------------ | --------------------- | -------------------- | ------- | ----------- | ------- |
| ID | | | | | O | M | L K | J I H | E | D | | C B | | | A |
| Reset 0x00000000 | Reset 0x00000000 | | | 0 0 | 0 0 | 0 | 0 0 | 0 0 0 | 0 0 | | 0 0 | 0 0 0 0 | 0 0 0 | 0 0 | 0 0 0 |
| ID | R/W Field | Value<br>Disabled<br>Enabled | ID<br>1 | Value<br>0 | | | | Description<br>Disable<br>Enable | | | | | | | |
| H | RW | DMARXBUSERROR<br>Disabled<br>Enabled | 0<br>1 | | | | | Enable or<br>When<br>this<br>read from<br>the<br>Disable<br>Enable | interrupt for<br>generated,<br>BUSERRORADDRESS | event<br>the | DMARXBUSERROR<br>address register. | the error | be | can | |
| I-L | RW | DMARXMATCH[i] (i=0..3) | Disabled<br>Enabled | 0<br>1 | | | | Enable or<br>Disable<br>Enable | interrupt for | | event DMARXMATCH[i] | | | | |
| M | RW | DMATXEND | Disabled<br>Enabled | 0<br>1 | | | | Enable or disable<br>Disable<br>Enable | interrupt for | event | DMATXEND | | | | |
| N | RW | DMATXREADY<br>DMATXBUSERROR<br>Disabled | Disabled<br>Enabled<br>Enabled | 0<br>1<br>1 | | | | Enable or Disable<br>Enable<br>Enable or<br>Enable | interrupt for event<br>interrupt for event | generated, the address BUSERRORADDRESS | DMATXREADY<br>register. | | be | error can | |
## 8.23.10.23 INTENSET
Address offset: 0x304
Enable interrupt
| Bit number |
| -------------- |

Set
1
Enable
| Bit number ID | | | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 O N M L K J I H G F E C | | | D | B | 1 0 A |
| ------------------ | ------------------ | --------------------------- | ------------------------------ | ------- | ------------------ | ------------------------- | ------------------ | --------- |
| Reset 0x00000000 | Reset 0x00000000 | | 0 | | | | | |
| ID R/W | Field | Value ID<br>Disabled<br>Enabled | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Description<br>Read: Disabled<br>Read: Enabled | Value<br>0<br>1 | 0 0 0 | 0 0 | 0 0 0 | 0 |
| F RW | DMARXEND | Set<br>Disabled<br>Enabled | Write '1' to<br>1 Enable<br>Read: Disabled<br>1 Read: Enabled | 0 | enable interrupt | for event DMARXEND | | |
| G | RW | DMARXREADY<br>Set<br>Disabled<br>Enabled | Write '1' to<br>1 Enable<br>0 Read: Disabled<br>1 Read: Enabled | | enable interrupt | for event DMARXREADY | | |
| H | RW | | Write '1' to | | enable interrupt | for event DMARXBUSERROR | | |
| | DMARXBUSERROR | | | | is generated,<br>BUSERRORADDRESS | the address<br>register. | caused the error | can be |
| I-L | RW DMARXMATCH[i] | Disabled Enabled (i=0..3)<br>Set<br>Disabled<br>Enabled | 0 Read: Disabled Read: Enabled Write '1' to<br>1 Enable<br>0 Read: Disabled<br>1 Read: Enabled | 1 | enable interrupt | for event DMARXMATCH[i] | | |
| M | RW DMATXEND | Set<br>Disabled<br>Enabled | Write '1' to<br>1 Enable<br>0 Read: Disabled<br>1 Read: Enabled | | enable interrupt<br>enable interrupt | for event DMATXEND | | |
| N | RW DMATXREADY | | Write '1' to for DMATXREADY | | | event | | |
## 8.23.10.24 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 | | 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 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 |

| Bit | number | | 31 30 29 | 28 27 26 25 24 23 16 15 14 13 12 11 10 9 8 7 6 5 | | 22 21 20 19 18 17 | | | 4 | 3 | 2 1 0 | 2 1 0 |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------------------ | ------------- | ------------------------------ | ----------------- | ----------------------- | ------- | -------- | --------- | --------- |
| ID | | | | F | O N M L K J | I H G | E | D C | | B | A | A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000<br>Clear<br>Disabled | 0<br>1<br>0 | 0 0 0 0 0 0 | 0 0 0<br>Disable<br>Read: Disabled | 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 | 0 0 | 0 0 | 0 0 |
| C | RW | SUSPENDED<br>LASTRX | Enabled<br>Clear<br>Disabled<br>Enabled<br>Disabled | 1<br>1<br>0<br>1<br>1 | Read:<br>Read: | Enabled Write '1' to disable<br>Disable<br>Read: Disabled<br>Enabled Write '1' to disable<br>Disable | interrupt for<br>interrupt<br>for | event SUSPENDED<br>LASTRX | | | | |
| D | RW | | Clear Disabled | 1 0<br>1 | | Read: Disabled<br>Read: Enabled | | event | | | | |
| E | RW | LASTTX | Enabled<br>Clear | disable 1<br>0 | | Write '1' to<br>Disable<br>Read: Disabled | interrupt for | event LASTTX | | | | |
| F | RW | DMARXEND | Enabled<br>Clear<br>Disabled | 1<br>0 | | Read: Enabled<br>Write '1' to disable Disable<br>Read: Disabled Read:<br>Write '1' | interrupt for | event DMARXEND<br>event | | | | |
| G | RW | DMARXREADY | Enabled<br>Disabled<br>Clear<br>Enabled | disable<br>1<br>0<br>1<br>1 | Read: | Enabled<br>to Disabled<br>Disable<br>Read: Enabled | interrupt<br>for | DMARXREADY | | | | |
| H | RW | DMARXBUSERROR | Clear<br>Disabled | 1<br>0 | | Write '1' to<br>When<br>disable<br>this event<br>Disable<br>Read: Disabled | interrupt<br>BUSERRORADDRESS<br>for<br>generated, | event DMARXBUSERROR<br>register.<br>the address | error | can<br>be | | |
| I-L | RW | DMARXMATCH[i] | (i=0..3)<br>Clear<br>Disabled | 1<br>0 | | Write '1' to disable<br>Disable<br>Read: Disabled | interrupt for | event DMARXMATCH[i] | | | | |
| M | RW | DMATXEND | Clear<br>Disabled | 1<br>0 | | Write '1' to disable Disable<br>Read: Disabled | interrupt for | event DMATXEND | | | | |
| N | RW | DMATXREADY | Clear<br>Disabled | disable<br>1<br>0 | | Read: Enabled<br>Write '1'<br>to<br>Disable<br>Read: Disabled | interrupt for | event DMATXREADY | | | | |
| O | RW | DMATXBUSERROR | Clear<br>Disabled<br>Enabled | disable<br>1<br>0<br>1 | | When this<br>read<br>Write '1' to<br>from<br>Disable<br>Read: Disabled<br>Read: Enabled | BUSERRORADDRESS<br>interrupt for<br>generated, | address register.<br>event DMATXBUSERROR | error | can be | | |
## 8.23.10.25 ERRORSRC
Address offset: 0x4C4
Error source

| Bit number | 31 30 29 | Bit number | Bit number |
| -------------- | ------------ | -------------- | -------------- |
## 8.23.10.26 ENABLE
Address offset: 0x500
## Enable TWIM

## 8.23.10.27 FREQUENCY
Address offset: 0x524
TWI frequency. Accuracy depends on the HFCLK source selected.


## 8.23.10.28 ADDRESS
Address offset: 0x588
Address used in the TWI transfer

## 8.23.10.29 PSEL.SCL
Address offset: 0x600
Pin select for SCL signal

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] Port number |
| C | RW | CONNECT | Disconnected<br>Connected | Connection<br>1 Disconnect<br>0 Connect |
## 8.23.10.30 PSEL.SDA
Address offset: 0x604
Pin select for SDA signal

| Bit number | Bit number | Bit 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 | ID | ID | ID | C B B B A A A A A |
| Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | Reset 0xFFFFFFFF | 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..7] | Port number |
| C | RW | CONNECT | | Connection |
| | | Disconnected | 1 | Disconnect |
| | | Connected | 0 | Connect |
## 8.23.10.31 DMA.RX.PTR
Address offset: 0x704
RAM buffer start address


## 8.23.10.32 DMA.RX.MAXCNT
Address offset: 0x708
Maximum number of bytes in channel buffer

## 8.23.10.33 DMA.RX.AMOUNT
Address offset: 0x70C
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.

## 8.23.10.34 DMA.RX.TERMINATEONBUSERROR
Address offset: 0x71C
Terminate the transaction if a BUSERROR event is detected.

## 8.23.10.35 DMA.RX.BUSERRORADDRESS
Address offset: 0x720
Address of transaction that generated the last BUSERROR event.


## 8.23.10.36 DMA.RX.MATCH
Registers to control the behavior of the pattern matcher engine
## 8.23.10.36.1 DMA.RX.MATCH.CONFIG
Address offset: 0x724
Configure individual match events

## 8.23.10.36.2 DMA.RX.MATCH.CANDIDATE[n] (n=0..3)
Address offset: 0x728 + (n × 0x4)
The data to look for - any match will trigger the MATCH[n] event, if enabled.
Note: This register can be updated while a transfer is in progress, but the new value will not take effect until either the DMA is restarted or the match event is generated. That makes it possible to write a new set of match words which will be searched for immediately after the event triggers.

## 8.23.10.37 DMA.TX.PTR
Address offset: 0x73C
RAM buffer start address


## 8.23.10.38 DMA.TX.MAXCNT
Address offset: 0x740
Maximum number of bytes in channel buffer

## 8.23.10.39 DMA.TX.AMOUNT
Address offset: 0x744
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.

## 8.23.10.40 DMA.TX.TERMINATEONBUSERROR
Address offset: 0x754
Terminate the transaction if a BUSERROR event is detected.

## 8.23.10.41 DMA.TX.BUSERRORADDRESS
Address offset: 0x758
Address of transaction that generated the last BUSERROR event.


## 8.24 TWIS - I 2 C compatible two-wire interface target with EasyDMA
The TWI target peripheral (TWIS) with EasyDMA provides a half duplex, two-wire synchronous serial communication interface.
The main features of TWIS are the following:
- I 2 C compatible
- Supports 100 kbps and 400 kbps bit rate
- EasyDMA direct transfer to and from RAM
- Individual selection of I/O pins
- Support for clock stretching
Figure 151: TWIS with EasyDMA

A typical TWI setup consists of one controller and one or more targets, as seen in the following figure. Only a single controller can be used on the TWI bus.
Figure 152: Typical TWI setup with one controller and three targets
**Figure 151: TWIS with EasyDMA**

## 8.24.1 State machine

The following figure shows the TWIS state machine.
Figure 153: TWIS state machine

The following table contains descriptions of the symbols used in the state machine.

Table 65: TWI slave state machine symbols
| Symbol | Type | Description |
| ------------------- | -------------- | ------------------------------ |
| ENABLE | Register | TWIS enabled via the ENABLE register. |
| PREPARETX | Task | The TASKS_PREPARETX task was triggered. |
| STOP | Task | The TASKS_STOP task was triggered. |
| PREPARERX | Task | The TASKS_PREPARERX task was triggered. |
| STOPPED | Event | The EVENTS_STOPPED event was generated. |
| DMA.RX.READY | Event | The EVENTS_DMA.RX.READY event was generated. |
| DMA.TX.READY | Event | The EVENTS_DMA.TX.READY event was generated. |
| TX prepared | Internal | Internal flag indicating that a TASKS_PREPARETX task was triggered. |
| RX prepared | Internal | Internal flag indicating that a TASKS_PREPARERX task was triggered. |
| Unprepare TX | Internal | Clears the TX prepared flag until the next TASKS_PREPARETX task. |
| Unprepare RX | Internal | Clears the RX prepared flag until the next TASKS_PREPARERX task. |
| Stop condition | TWI protocol | A TWI stop condition was detected. |
| Restart condition | TWI protocol | A TWI restart condition was detected. |
TWIS supports clock stretching. In order to use this feature, the controller must also support clock stretching for the feature to execute properly. TWIS operates in a low-power mode while waiting for the TWI controller to initiate a transfer. As long as TWIS is not addressed, it will remain in this mode.
For TWIS to run correctly, PSEL.SCL, PSEL.SDA, CONFIG, and the ADDRESS[n] registers must be configured, the SCL and SDA lines must both be high, before enabling TWIS through the ENABLE register. Similarly, changing these settings must be performed while TWIS is disabled. Failing to do so may result in unpredictable behavior.
## 8.24.2 Shared resources
The TWIS peripheral shares registers and other resources with peripherals that have the same ID as TWIS. Before TWIS can be configured and used, all peripherals that have the same ID as TWIS must be disabled.
Disabling a peripheral with the same ID as TWIS will not reset any shared TWIS registers. Configure all TWIS registers to ensure they operate correctly.
See the Instantiation table in Instantiation on page 214 for details on peripherals and their IDs.
## 8.24.3 EasyDMA
TWIS implements EasyDMA for accessing RAM without CPU involvement.
TWIS implements the EasyDMA channels found in the following table.
| Channel | Type | Register Cluster |
| ----------- | -------- | -------------------- |
| TXD | READER | TXD |
| RXD | WRITER | RXD |
Table 66: TWIS EasyDMA Channels

For detailed information regarding the use of EasyDMA, see EasyDMA on page 28.
The STOPPED event indicates that EasyDMA is finished accessing the buffer in RAM.
## 8.24.4 Read command response
Before TWIS can respond to a read command, it must be configured and enabled in the ENABLE register. When enabled, TWIS is in the IDLE state.
A read command is started when TWIM generates a start condition on the TWI bus. This is followed by clocking out the address and setting the READ/WRITE bit to 1 (READ=1, WRITE=0). The READ/WRITE bit is followed by an ACK/NACK bit (ACK = 0, NACK = 1) response from the TWIS.
TWIS can listen for two addresses at a time. This is configured in the ADDRESS registers and the CONFIG register.
TWIS only acknowledges (ACK) the read command if the address presented by the controller matches one of the addresses the target is configured to listen for. TWIS will generate a READ event when it acknowledges the read command.
TWIS only detects a read command from the IDLE state.
TWIS will set an internal TX prepared flag when the PREPARETX task is triggered.
When the read command is received, TWIS will enter the TX state if the internal TX prepared flag is set.
If the internal TX prepared flag is not set when the read command is received, TWIS will stretch the controller's clock until the PREPARETX task is triggered and the internal TX prepared flag is set.
TWIS will generate the EVENTS\_DMA.TX.READY event and clear the TX prepared flag when it enters the TX state. In this state, TWIS will send the data bytes found in the transmit buffer to the controller using the controller's clock.
TWIS returns to the IDLE state if the TWIS receives a restart command when it is in the TX state.
TWIS is stopped when it receives the stop condition from TWIM. A STOPPED event will be generated when the transaction has stopped. TWIS will clear the TX prepared flag and go back to the IDLE state when it has stopped.
The transmit buffer is located in RAM at the address specified in the TXD.PTR register. TWIS will only be able to send TXD.MAXCNT bytes from the transmit buffer for each transaction. If TWIM forces TWIS to send more than TXD.MAXCNT bytes, the target will send the byte specified in the ORC register to the controller instead. If this happens, an ERROR event will be generated.
The EasyDMA configuration registers RXD.PTR, TXD.PTR, RXD.AMOUNT, and TXD.AMOUNT, are latched when the EVENTS\_DMA.TX.READY event is generated.
TWIS can be forced to stop by triggering the STOP task. A STOPPED event will be generated when TWIS has stopped. TWIS will clear the TX prepared flag and return to the IDLE state when it has stopped, see Terminate an ongoing TWI transaction on page 670.
Each byte sent from TWIS will be followed by an ACK/NACK bit sent from the controller. TWIM will generate a NACK following the last byte that it wants to receive to tell the target to release the bus allowing TWIM to generate the stop condition. The TXD.AMOUNT register can be queried after a transaction to see how many bytes were sent.
A typical TWIS read command response is illustrated in the following figure, including clock stretching following a SUSPEND task.

Figure 154: TWIS responding to a read command

## 8.24.5 Write command response
Before TWIS can respond to a write command, TWIS must be configured and enabled in the ENABLE register. When enabled, TWIS is in the IDLE state.
A write command is started when TWIM generates a start condition on the TWI bus. This is followed by clocking out the address and setting the READ/WRITE bit to 0 (READ = 1, WRITE = 0). The READ/WRITE bit is followed by an ACK/NACK bit (ACK = 0, NACK = 1) response from the TWIS.
TWIS can listen for two addresses at a time. This is configured in the ADDRESS registers and the CONFIG register.
TWIS only acknowledges (ACK) the write command if the address presented by the controller matches one of the addresses the target is configured to listen for. TWIS will generate a WRITE event when it acknowledges the write command.
TWIS only detects a write command from the IDLE state.
TWIS will set an internal RX prepared flag when the PREPARERX task is triggered.
When the write command is received, TWIS will enter the RX state if the internal RX prepared flag is set.
If the internal RX prepared flag is not set when the write command is received, TWIS will start stretching the master's clock after the first data byte, not allowing the master to send the stop condition. Clock is stretched until the PREPARERX task is triggered and the internal RX prepared flag is set.
TWIS will generate the EVENTS\_DMA.RX.READY event and clear the internal RX prepared flag when it enters the RX state. In this state, TWIS will be able to receive the bytes sent by the TWIM.
TWIS returns to the IDLE state if TWIS receives a restart command when it is in the RX state.
TWIS is stopped when it receives the stop condition from TWIM. A STOPPED event will be generated when the transaction has stopped. TWIS will clear the internal RX prepared flag and go back to the IDLE state when it has stopped.
The receive buffer is located in RAM at the address specified in the RXD.PTR register. TWIS can only receive as many bytes as specified in the RXD.MAXCNT register. If TWIM tries to send more bytes to TWIS than it

can receive, the extra bytes are discarded and NACKed by the target. If this happens, an ERROR event will be generated.
The EasyDMA configuration registers, RXD.PTR, TXD.PTR, RXD.AMOUNT, and TXD.AMOUNT, are latched when the EVENTS\_DMA.RX.READY event is generated.
TWIS can be forced to stop by triggering the STOP task. A STOPPED event will be generated when TWIS has stopped. TWIS will clear the internal RX prepared flag and return to the IDLE state when it has stopped, see Terminate an ongoing TWI transaction on page 670.
TWIS will generate an ACK after every byte received from the controller. 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.
Figure 155: TWIS responding to a write command

## 8.24.6 TWI controller repeated start sequence
A repeated start sequence is where the TWI controller writes two bytes to TWIS, followed by reading four bytes from the target. This is shown in the following figure.

Figure 156: Repeated start sequence

In this example, the receiver does not know in advance what the controller wants to read. This information is in the first two received bytes of the write in the repeated start sequence. For the CPU to process the received data before TWIS replies to the read command, the SUSPEND task is triggered. This is enabled through a shortcut from the READ event generated when the read command is received. When the CPU has processed the incoming data and prepared the correct data response, the CPU will resume the transaction by triggering the RESUME task.
## 8.24.7 Terminate an ongoing TWI transaction
In some situations, an ongoing transaction must be terminated. This can happen when the external TWI controller is not responding correctly, for example.
To stop an ongoing transaction, trigger the STOP task. A STOPPED event will be generated when TWIS stops. It is not dependent on the STOP condition being generated on the TWI bus. TWIS will release the bus when it has stopped and returns to its IDLE state.
## 8.24.8 Low power
When the peripheral is not needed, stop and disable TWIS for lowest possible power consumption.
When the STOP task is sent, the software must wait until the STOPPED event is received before disabling the peripheral through the ENABLE register. If the peripheral is already stopped, the STOP task is not needed.
## 8.24.9 Target mode pin configuration
The SCL and SDA signals are mapped to physical pins using the PSEL.SCL and PSEL.SDA registers.
The PSEL.SCL and PSEL.SDA registers and their configurations are only used when TWIS is enabled, and retained while the device is in System ON mode. When the peripheral is disabled, the pins function as regular GPIOs, and use the configuration in their respective OUT bit field and PIN\_CNF[n] register. Only configure PSEL.SCL and PSEL.SDA when TWIS is disabled.
When in System OFF mode or when TWIS is disabled, the TWIS pins must be configured in the GPIO peripheral as described in the following table to secure correct signal levels.

Only one peripheral can be assigned to drive a GPIO pin at a time. Failing to do so may result in unpredictable behavior.
Table 67: GPIO configuration before enabling peripheral
| TWIS signal | TWIS pin | Direction | Output value | Drive strength |
| --------------- | -------------------------- | ------------- | ---------------- | ------------------ |
| SCL | As specified in PSEL.SCL | Input | Not applicable | S0D1 |
| SDA | As specified in PSEL.SDA | Input | Not applicable | S0D1 |
## 8.24.10 Registers
| Instance | Domain | Base address | TrustZone | TrustZone | TrustZone | Split | Description |
| ------------------------ | ---------- | ----------------------- | ------------- | ------------- | ------------- | --------- | ------------------------------ |
| | | | Map | Att | DMA | access | |
| TWIS20 : S TWIS20 : NS | GLOBAL | 0x500C6000 0x400C6000 | US | S | SA | No | Two-wire interface target TWIS20 |
| TWIS21 : S TWIS21 : NS | GLOBAL | 0x500C7000 0x400C7000 | US | S | SA | No | Two-wire interface target TWIS21 |
| TWIS22 : S TWIS22 : NS | GLOBAL | 0x500C8000 0x400C8000 | US | S | SA | No | Two-wire interface target TWIS22 |
| TWIS30 : S TWIS30 : NS | GLOBAL | 0x50104000 0x40104000 | US | S | SA | No | Two-wire interface target TWIS30 |
| Instance | Domain | Configuration |
| ------------------------ | ---------- | ------------------ |
| TWIS20 : S TWIS20 : NS | GLOBAL | Use GPIO port P1 |
| TWIS21 : S TWIS21 : NS | GLOBAL | Use GPIO port P1 |
| TWIS22 : S TWIS22 : NS | GLOBAL | Use GPIO port P1 |
| TWIS30 : S TWIS30 : NS | GLOBAL | Use GPIO port P0 |
| Register | Offset | TZ | Description |
| ------------------------------ | ---------- | ------ | ------------------------------ |
| TASKS_STOP | 0x004 | | Stop TWI transaction |
| TASKS_SUSPEND | 0x00C | | Suspend TWI transaction |
| TASKS_RESUME | 0x010 | | Resume TWI transaction |
| TASKS_PREPARERX | 0x020 | | Prepare the TWI slave to respond to a write command |
| TASKS_PREPARETX | 0x024 | | Prepare the TWI slave to respond to a read command |
| TASKS_DMA.RX.ENABLEMATCH[n] | 0x030 | | Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register. |
| TASKS_DMA.RX.DISABLEMATCH[n] | 0x040 | | Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register. |
| SUBSCRIBE_STOP | 0x084 | | Subscribe configuration for task STOP |
| Register | Offset | TZ | Description |
| SUBSCRIBE_SUSPEND | 0x08C | | Subscribe configuration for task SUSPEND |
| SUBSCRIBE_RESUME | 0x090 | | Subscribe configuration for task RESUME |
| SUBSCRIBE_PREPARERX | 0x0A0 | | Subscribe configuration for task PREPARERX |
| SUBSCRIBE_PREPARETX | 0x0A4 | | Subscribe configuration for task PREPARETX |
| SUBSCRIBE_DMA.RX.ENABLEMATCH[n] | 0x0B0 | | Subscribe configuration for task ENABLEMATCH[n] |
| SUBSCRIBE_DMA.RX.DISABLEMATCH[n] | 0x0C0 | | Subscribe configuration for task DISABLEMATCH[n] |
| EVENTS_STOPPED | 0x104 | | TWI stopped |
| EVENTS_ERROR | 0x114 | | TWI error |
| EVENTS_WRITE | 0x13C | | Write command received |
| EVENTS_READ | 0x140 | | Read command received |
| EVENTS_DMA.RX.END | 0x14C | | Generated after all MAXCNT bytes have been transferred |
| EVENTS_DMA.RX.READY | 0x150 | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.RX.BUSERROR | 0x154 | | An error occured during the bus transfer. |
| EVENTS_DMA.RX.MATCH[n] | 0x158 | | Pattern match is detected on the DMA data bus. |
| EVENTS_DMA.TX.END | 0x168 | | Generated after all MAXCNT bytes have been transferred |
| EVENTS_DMA.TX.READY | 0x16C | | Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
| EVENTS_DMA.TX.BUSERROR | 0x170 | | An error occured during the bus transfer. |
| PUBLISH_STOPPED | 0x184 | | Publish configuration for event STOPPED |
| PUBLISH_ERROR | 0x194 | | Publish configuration for event ERROR |
| PUBLISH_WRITE | 0x1BC | | Publish configuration for event WRITE |
| PUBLISH_READ | 0x1C0 | | Publish configuration for event READ |
| PUBLISH_DMA.RX.END | 0x1CC | | Publish configuration for event END |
| PUBLISH_DMA.RX.READY | 0x1D0 | | Publish configuration for event READY |
| PUBLISH_DMA.RX.BUSERROR | 0x1D4 | | Publish configuration for event BUSERROR |
| PUBLISH_DMA.RX.MATCH[n] | 0x1D8 | | Publish configuration for event MATCH[n] |
| PUBLISH_DMA.TX.END | 0x1E8 | | Publish configuration for event END |
| PUBLISH_DMA.TX.READY | 0x1EC | | Publish configuration for event READY |
| PUBLISH_DMA.TX.BUSERROR | 0x1F0 | | Publish configuration for event BUSERROR |
| SHORTS | 0x200 | | Shortcuts between local events and tasks |
| INTEN | 0x300 | | Enable or disable interrupt |
| INTENSET | 0x304 | | Enable interrupt |
| INTENCLR | 0x308 | | Disable interrupt |
| ERRORSRC | 0x4D0 | | Error source |
| MATCH | 0x4D4 | | Status register indicating which address had a match |
| ENABLE | 0x500 | | Enable TWIS |
| ADDRESS[n] | 0x588 | | TWI slave address n |
| CONFIG | 0x594 | | Configuration register for the address match mechanism |
| ORC | 0x5C0 | | Over-read character. Character sent out in case of an over-read of the transmit buffer. |
| PSEL.SCL | 0x600 | | Pin select for SCL signal |
| PSEL.SDA | 0x604 | | Pin select for SDA signal |
| DMA.RX.PTR | 0x704 | | RAM buffer start address |
| DMA.RX.MAXCNT | 0x708 | | Maximum number of bytes in channel buffer |
| DMA.RX.AMOUNT | 0x70C | | Number of bytes transferred in the last transaction, updated after the END event.<br>Also updated after each MATCH event. |
| DMA.RX.TERMINATEONBUSERROR | 0x71C | | Terminate the transaction if a BUSERROR event is detected. |
| DMA.RX.BUSERRORADDRESS | 0x720 | | Address of transaction that generated the last BUSERROR event. |
| DMA.RX.MATCH.CONFIG | 0x724 | | Configure individual match events |
| DMA.RX.MATCH.CANDIDATE[n] | 0x728 | | The data to look for - any match will trigger the MATCH[n] event, if enabled. |
| DMA.TX.PTR | 0x73C | | RAM buffer start address |
| DMA.TX.MAXCNT | 0x740 | | Maximum number of bytes in channel buffer |


## 8.24.10.1 TASKS\_STOP
Address offset: 0x004
Stop TWI transaction

## 8.24.10.2 TASKS\_SUSPEND
Address offset: 0x00C
Suspend TWI transaction

## 8.24.10.3 TASKS\_RESUME
Address offset: 0x010
Resume TWI transaction

## 8.24.10.4 TASKS\_PREPARERX
Address offset: 0x020
Prepare the TWI slave to respond to a write command


## 8.24.10.5 TASKS\_PREPARETX
Address offset: 0x024
Prepare the TWI slave to respond to a read command

## 8.24.10.6 TASKS\_DMA
Peripheral tasks.
## 8.24.10.6.1 TASKS\_DMA.RX
Peripheral tasks.
## 8.24.10.6.1.1 TASKS\_DMA.RX.ENABLEMATCH[n] (n=0..3)
Address offset: 0x030 + (n × 0x4)
Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register.

## 8.24.10.6.1.2 TASKS\_DMA.RX.DISABLEMATCH[n] (n=0..3)
Address offset: 0x040 + (n × 0x4)
Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register.


## 8.24.10.7 SUBSCRIBE\_STOP
Address offset: 0x084
Subscribe configuration for task STOP

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.24.10.8 SUBSCRIBE\_SUSPEND
Address offset: 0x08C
Subscribe configuration for task SUSPEND

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.24.10.9 SUBSCRIBE\_RESUME
Address offset: 0x090
Subscribe configuration for task RESUME

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.24.10.10 SUBSCRIBE\_PREPARERX
Address offset: 0x0A0
Subscribe configuration for task PREPARERX


| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| ID | R/W Field | R/W Field | Value ID | Value Description |
| A | RW | CHIDX | | [0..255] DPPI channel that task PREPARERX will subscribe to |
| B | RW | EN | Disabled<br>Enabled | 0 Disable subscription<br>1 Enable subscription |
## 8.24.10.11 SUBSCRIBE\_PREPARETX
Address offset: 0x0A4
Subscribe configuration for task PREPARETX

## 8.24.10.12 SUBSCRIBE\_DMA
Subscribe configuration for tasks
## 8.24.10.12.1 SUBSCRIBE\_DMA.RX
Subscribe configuration for tasks
## 8.24.10.12.1.1 SUBSCRIBE\_DMA.RX.ENABLEMATCH[n] (n=0..3)
Address offset: 0x0B0 + (n × 0x4)
Subscribe configuration for task ENABLEMATCH[n]

| Bit number | Bit 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 | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 ENABLEMATCH[n] will subscribe to |
| B | RW EN | | |
| | | Disabled | 0 Disable subscription |
| | | Enabled | 1 Enable subscription |
## 8.24.10.12.1.2 SUBSCRIBE\_DMA.RX.DISABLEMATCH[n] (n=0..3)
Address offset: 0x0C0 + (n × 0x4)
Subscribe configuration for task DISABLEMATCH[n]


## 8.24.10.13 EVENTS\_STOPPED
Address offset: 0x104
## TWI stopped

## 8.24.10.14 EVENTS\_ERROR
Address offset: 0x114
TWI error

## 8.24.10.15 EVENTS\_WRITE
Address offset: 0x13C
Write command received

## 8.24.10.16 EVENTS\_READ
Address offset: 0x140
Read command received


## 8.24.10.17 EVENTS\_DMA
Peripheral events.
## 8.24.10.17.1 EVENTS\_DMA.RX
Peripheral events.
## 8.24.10.17.1.1 EVENTS\_DMA.RX.END
Address offset: 0x14C
Generated after all MAXCNT bytes have been transferred

## 8.24.10.17.1.2 EVENTS\_DMA.RX.READY
Address offset: 0x150
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

## 8.24.10.17.1.3 EVENTS\_DMA.RX.BUSERROR
Address offset: 0x154
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.


## 8.24.10.17.1.4 EVENTS\_DMA.RX.MATCH[n] (n=0..3)
Address offset: 0x158 + (n × 0x4)
Pattern match is detected on the DMA data bus.

## 8.24.10.17.2 EVENTS\_DMA.TX
Peripheral events.
## 8.24.10.17.2.1 EVENTS\_DMA.TX.END
Address offset: 0x168
Generated after all MAXCNT bytes have been transferred

## 8.24.10.17.2.2 EVENTS\_DMA.TX.READY
Address offset: 0x16C
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.


## 8.24.10.17.2.3 EVENTS\_DMA.TX.BUSERROR
Address offset: 0x170
An error occured during the bus transfer.
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.24.10.18 PUBLISH\_STOPPED
Address offset: 0x184
Publish configuration for event STOPPED

## 8.24.10.19 PUBLISH\_ERROR
Address offset: 0x194
Publish configuration for event ERROR


| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable publishing<br>1 Enable publishing |
## 8.24.10.20 PUBLISH\_WRITE
Address offset: 0x1BC
Publish configuration for event WRITE

| Bit number | Bit number | Bit 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 | ID | ID | ID | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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<br>Enabled | 0 Disable publishing<br>1 Enable publishing |
## 8.24.10.21 PUBLISH\_READ
Address offset: 0x1C0
Publish configuration for event READ

| Bit number | Bit 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 | 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 |
| ------------------ | ------------------ | ------------------ | ------------------------------ | ------------------------------ |
| ID | ID | ID | B A A A A A A A A | B A A A A A A A A |
| Reset 0x00000000 | Reset 0x00000000 | Reset 0x00000000 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 |
## 8.24.10.22 PUBLISH\_DMA
Publish configuration for events
## 8.24.10.22.1 PUBLISH\_DMA.RX
Publish configuration for events
## 8.24.10.22.1.1 PUBLISH\_DMA.RX.END
Address offset: 0x1CC
Publish configuration for event END

8.24.10.22.1.2 PUBLISH\_DMA.RX.READY
**8.24.10.22.1.2 PUBLISH_DMA.RX.READY**

Address offset: 0x1D0
Publish configuration for event READY
8.24.10.22.1.3 PUBLISH\_DMA.RX.BUSERROR
**8.24.10.22.1.3 PUBLISH_DMA.RX.BUSERROR**

Address offset: 0x1D4
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.
8.24.10.22.1.4 PUBLISH\_DMA.RX.MATCH[n] (n=0..3)
**8.24.10.22.1.4 PUBLISH_DMA.RX.MATCH[n] (n=0..3)**

Address offset: 0x1D8 + (n × 0x4)
Publish configuration for event MATCH[n]


## 8.24.10.22.2 PUBLISH\_DMA.TX
Publish configuration for events
## 8.24.10.22.2.1 PUBLISH\_DMA.TX.END
Address offset: 0x1E8
Publish configuration for event END

## 8.24.10.22.2.2 PUBLISH\_DMA.TX.READY
Address offset: 0x1EC
Publish configuration for event READY

## 8.24.10.22.2.3 PUBLISH\_DMA.TX.BUSERROR
Address offset: 0x1F0
Publish configuration for event BUSERROR
When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

## 8.24.10.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 | Bit number | Bit number |
| -------------- | ------------------------------ | -------------- | -------------- |
## 8.24.10.24 INTEN
Address offset: 0x300
Enable or disable interrupt
| Bit | | | number | 31 30 29 | 28 27 26 | 23 22 21 20 19 18 17 | | 16 15 14 | 4 3 2 1 | 11 10 9 | 7 6 5 | 0 |
| ------- | ------- | --------------- | ---------- | ------------ | ------------ | ------------------------ | ------------ | ------------------------------ | ----------- | --------------- | --------- | ----- |
| ID | | | | | N M | I H G | F E | D C | | | B | A |
| Reset | Reset | 0x00000000 | | 0 0 | 0 0 | 0 0 | 0 0 0 | 0 0 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 | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable | interrupt for event | | STOPPED | | |
| B | RW | ERROR | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable | interrupt for event | | ERROR | | |
| C | RW | WRITE | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable | interrupt for event | | WRITE | | |
| D | RW | READ | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable | interrupt for event | | READ | | |
| E | RW | DMARXEND | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable | interrupt for event | | DMARXEND | | |
| F | RW | DMARXREADY | Disabled<br>Enabled | 0<br>1 | | Enable or<br>Disable<br>Enable | disable | interrupt for event | | DMARXREADY | | |
| G | RW | DMARXBUSERROR | Disabled<br>Enabled | 0<br>1 | | Enable<br>When this<br>read from<br>Disable<br>Enable | or disable<br>event<br>the | interrupt for event<br>is generated, BUSERRORADDRESS | error can | DMARXBUSERROR<br>be | the | |
| H-K | RW | DMARXMATCH[i] | (i=0..3) | | | Enable | or disable | interrupt for event | | DMARXMATCH[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 | Bit number | Bit number |
| -------------- | ------------------------------ | -------------- | -------------- |
## 8.24.10.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 | | | | 4 3 2 | 7 6 1 | | 8 | 5 | 0 |
| ------------------ | ------------------ | ------------------------------ | ------- | ----- | ----------------------- | ------------------------------ | --------- | ----- | ------- | ------- | ----- |
| ID | | | | N M | I H G F | E D C | B | A | | | |
| Reset 0x00000000 | Reset 0x00000000 | | 0 0 | 0 0 | 0 0 0 0 | 0 0 0 0 0 0 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 | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | Write '1' to<br>Enable<br>Read: Disabled<br>Read: Enabled | enable interrupt for event STOPPED | | | | | |
| B RW | ERROR | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | Write '1' to<br>Enable<br>Read: Disabled<br>Read: Enabled | enable interrupt for event ERROR | | | | | |
| C RW | WRITE | Set<br>Disabled | 1<br>0 | | Write '1' to<br>Enable Read: Disabled<br>Read: Enabled | enable interrupt for event WRITE | | | | | |
| D RW | READ | Enabled<br>Set<br>Disabled<br>Enabled | 1<br>1<br>0<br>1 | | Write '1' to<br>Enable<br>Read: Disabled<br>Read: Enabled | enable interrupt for event READ | | | | | |
| E RW | DMARXEND | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | Write '1' to<br>Enable<br>Read: Disabled<br>Read: Enabled | enable interrupt for event DMARXEND | | | | | |
| F RW | DMARXREADY | Set<br>Disabled | 1<br>0 | | Write '1' to<br>Enable<br>Read: Disabled | enable interrupt for event DMARXREADY | | | | | |

| Bit number | | | 31 30 29 28 27 26 25 24 23 | 22 | | | 21 20 19 18 | 16 15 14 | 13 12 | 11 10 9 | 8 7 6 5 4 3 2 | | 1 | 0 |
| ------------------ | ------------------ | ------------------------ | ------------------------------ | ------- | ---- | ----- | ------------------------------ | ---------------------------- | ----------------------- | --------------- | ----------------- | ----------- | -------- | ----- |
| ID | | | | | M | L K | J I H G F | D C | | | B | | A | |
| Reset 0x00000000 | Reset 0x00000000 | | 0 | 0 | 0 | 0 0 | 0 0 0 0 0 | 0 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 | DMARXBUSERROR | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write '1' to<br>When this event read from the<br>Enable<br>Read: Disabled<br>Read: Enabled | interrupt for<br>generated, BUSERRORADDRESS | event<br>the address register. | DMARXBUSERROR<br>which | the | error can | be | |
| H-K | RW | DMARXMATCH[i] (i=0..3) | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write '1' to<br>Enable<br>Read: Disabled<br>Read: Enabled | interrupt for | event | DMARXMATCH[i] | | | | |
| L | RW | DMATXEND | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write '1' to<br>Enable<br>Read: Disabled<br>Read: Enabled | interrupt for | event | DMATXEND | | | | |
| M | RW | DMATXREADY | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write '1' to<br>Enable<br>Read: Disabled<br>Read: Enabled | interrupt | for event | DMATXREADY | | | | |
| N | RW | DMATXBUSERROR | Set<br>Disabled<br>Enabled | 1<br>0<br>1 | | | Write '1' to<br>When this<br>read from the<br>Enable<br>Read: Disabled<br>Read: Enabled | interrupt<br>generated,<br>BUSERRORADDRESS | for event<br>the address | DMATXBUSERROR<br>which<br>register. | the | error | can be | |
## 8.24.10.26 INTENCLR
Address offset: 0x308
Disable interrupt

| Bit number |
| -------------- |

| Bit ID | | | number | 31 30 29 28 N | 24 23 22 21 | 20 19 18 17 16 15 14 13 C | 5 4 B | 2 1 A | 0 |
| ---------- | ------------------ | ---------- | ---------- | ----------------- | --------------- | ------------------------------ | ----------- | --------- | ----- |
| | | | | 0 0 | J I | H G F E D | | | |
| ID | R/W Field | Enabled | Value ID<br>1 | Value | Description<br>Read: | Enabled | | | |
| E | RW DMARXEND | Clear<br>Disabled<br>Enabled | 1<br>1 | 0 | Write<br>Disable<br>Read:<br>Read: | '1' to disable interrupt for event<br>Disabled<br>Enabled | | | |
| F | RW DMARXREADY | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | Write<br>Disable<br>Read:<br>Read: | '1' to disable interrupt for event<br>Disabled<br>Enabled | | | |
| G | RW DMARXBUSERROR | Clear<br>Disabled | 1 | 0 | Write<br>When<br>read<br>Disable<br>Read: | '1' to disable interrupt for event<br>generated, the<br>BUSERRORADDRESS<br>Disabled | the error | can be | |
| H-K | RW DMARXMATCH[i] | (i=0..3)<br>Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | Write<br>Disable<br>Read:<br>Read: | '1' to disable interrupt for event<br>Disabled<br>Enabled | | | |
| L | RW DMATXEND | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | Write<br>Disable<br>Read:<br>Read: | '1' to disable interrupt for event<br>Disabled<br>Enabled | | | |
| M | RW DMATXREADY | Clear<br>Disabled<br>Enabled | 1<br>0<br>1 | | Write<br>Disable<br>Read:<br>Read: | '1' to disable interrupt for event<br>Disabled<br>Enabled | | | |
| N | RW DMATXBUSERROR | Clear<br>Disabled<br>Enabled | 1<br>1 | 0 | Write<br>When read<br>Disable<br>Read:<br>Read: | '1' to disable interrupt for event<br>generated,<br>the BUSERRORADDRESS<br>Disabled<br>Enabled | the error | can be | |
## 8.24.10.27 ERRORSRC
Address offset: 0x4D0
Error source


## 8.24.10.28 MATCH
Address offset: 0x4D4
Status register indicating which address had a match

## 8.24.10.29 ENABLE
Address offset: 0x500
Enable TWIS

## 8.24.10.30 ADDRESS[n] (n=0..1)
Address offset: 0x588 + (n × 0x4)
TWI slave address n


## 8.24.10.31 CONFIG
Address offset: 0x594
Configuration register for the address match mechanism

## 8.24.10.32 ORC
Address offset: 0x5C0
Over-read character. Character sent out in case of an over-read of the transmit buffer.

## 8.24.10.33 PSEL.SCL
Address offset: 0x600
Pin select for SCL signal

## 8.24.10.34 PSEL.SDA
Address offset: 0x604
Pin select for SDA signal


## 8.24.10.35 DMA.RX.PTR
Address offset: 0x704
RAM buffer start address

## 8.24.10.36 DMA.RX.MAXCNT
Address offset: 0x708
Maximum number of bytes in channel buffer

## 8.24.10.37 DMA.RX.AMOUNT
Address offset: 0x70C
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.


## 8.24.10.38 DMA.RX.TERMINATEONBUSERROR
Address offset: 0x71C
Terminate the transaction if a BUSERROR event is detected.

## 8.24.10.39 DMA.RX.BUSERRORADDRESS
Address offset: 0x720
Address of transaction that generated the last BUSERROR event.

## 8.24.10.40 DMA.RX.MATCH
Registers to control the behavior of the pattern matcher engine
## 8.24.10.40.1 DMA.RX.MATCH.CONFIG
Address offset: 0x724
Configure individual match events


## 8.24.10.40.2 DMA.RX.MATCH.CANDIDATE[n] (n=0..3)
Address offset: 0x728 + (n × 0x4)
The data to look for - any match will trigger the MATCH[n] event, if enabled.
Note: This register can be updated while a transfer is in progress, but the new value will not take effect until a match has been found or the transfer is done. That makes it possible to write a new set of match words which will be searched for immediately after the event triggers.

## 8.24.10.41 DMA.TX.PTR
Address offset: 0x73C
RAM buffer start address

## 8.24.10.42 DMA.TX.MAXCNT
Address offset: 0x740
Maximum number of bytes in channel buffer

## 8.24.10.43 DMA.TX.AMOUNT
Address offset: 0x744
Number of bytes transferred in the last transaction, updated after the END event.
Also updated after each MATCH event.


## 8.24.10.44 DMA.TX.TERMINATEONBUSERROR
Address offset: 0x754
Terminate the transaction if a BUSERROR event is detected.

## 8.24.10.45 DMA.TX.BUSERRORADDRESS
Address offset: 0x758
Address of transaction that generated the last BUSERROR event.

## 8.25 UARTE - Universal asynchronous receiver/ transmitter with EasyDMA
The Universal asynchronous receiver/transmitter with EasyDMA peripheral (UARTE) provides a full-duplex, asynchronous serial communication interface with hardware flow control.
The main features of UARTE are the following:
- Full-duplex operation
- EasyDMA direct transfer to and from RAM
- Individual selection of I/O pins
- Slow instances with up to 1 Mbps baud rate
- Optional even and odd parity bit checking and generation
- One or two stop bits
- Configurable data frame size: 4 bit to 9 bit
- 9-bit mode support with address matching in RX
- Automatic hardware flow control
- Supports return to the IDLE state between transactions (when using HW flow control)
- Interrupt generation after programmable timeout

- Compare match filter for generating events or interrupts
Figure 157: UARTE configuration

Note: The external crystal oscillator must be enabled to obtain sufficient clock accuracy for stable communication. See CLOCK - Clock control on page 71 for more information.
## 8.25.1 Baudrate
The UART baudrate defines the speed at which data is transmitted over the UART interface, measured in bits per second (bps).
The BAUDRATE register lists a set of precalculated values for the most common baudrates and 16 MHz PCLK. For the high speed instances (PCLK > 16 MHz), the baudrate is calculated as follows:
Figure 158: UARTE baudrate
- BAUDRATE is the value to be used in the UARTE BAUDRATE register.
- f\_PCLK is the peripheral clock frequency for the UARTE instance, as defined in Instances on page 701.
- desired\_baudrate is the desired baudrate in bits per second, such as 9600 or 115200.
## 8.25.2 EasyDMA
UARTE implements EasyDMA for reading and writing to and from RAM.
If the DMA.TX.PTR and the DMA.RX.PTR are not pointing to the RAM region, an EasyDMA transfer may result in a HardFault or RAM corruption. See Memory on page 14 for more information about each memory region.
The DMA.RX.PTR, DMA.TX.PTR, DMA.RX.MAXCNT, and DMA.TX.MAXCNT registers are double-buffered. They can be updated and prepared for the next reception or transmission immediately after having received the DMA.RX.READY or DMA.TX.READY events.
The DMA.RX.END and DMA.TX.END events indicate that the EasyDMA is finished accessing the RX or TX buffer in RAM.
For detailed information regarding the use of EasyDMA, see EasyDMA on page 28.

## 8.25.3 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 DMA.TX.PTR, and the number of bytes to transmit from the RAM buffer to DMA.TX.MAXCNT. The UARTE transmission is started by triggering the DMA.TX.START task.
After each byte has been sent over the TXD line, a TXDRDY event is generated.
When then bytes have been transmitted, the DMA.TX.END event is generated.
A UARTE transmission sequence is stopped by triggering the DMA.TX.STOP task. A TXSTOPPED event will be generated when the UARTE transmitter has stopped.
If the DMA.TX.END event has not been generated when the UARTE transmitter stops, UARTE will generate the DMA.TX.END event explicitly even though all bytes specified in the DMA.TX.MAXCNT register have not been transmitted.
If flow control is enabled in 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 finish transmitting before the transmission is suspended.
Figure 159: UARTE transmission

The UARTE transmitter is least active when it is stopped, consuming the least amount of energy. This is before it is started via DMA.TX.START, or after it has been stopped via DMA.TX.STOP and the TXSTOPPED event has been generated. See POWER - Power control on page 92 for more information about power modes.
## 8.25.4 Reception
The UARTE receiver is started by triggering the DMA.RX.START 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 DMA.RX.PTR register. The DMA.RX.PTR register is double-buffered and can be updated and prepared for the next DMA.RX.START task immediately after the EVENTS\_DMA.RX.READY event is generated. The size of the RX buffer is specified in the DMA.RX.MAXCNT register. UARTE generates an DMA.RX.END 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 RAM.
The DMA.RX.AMOUNT register can be queried following an DMA.RX.END event to see how many new bytes have been transferred to the RX buffer in RAM since the previous DMA.RX.END event.
Figure 160: UARTE reception

The UARTE receiver is stopped by triggering the DMA.RX.STOP task. An RXTO event is generated when UARTE has stopped. UARTE makes sure that an impending DMA.RX.END event is generated before the RXTO event is generated. This means that UARTE guarantees that no DMA.RX.END event is generated after RXTO, unless UARTE is restarted or a FLUSHRX command is issued after the RXTO event is generated.
**Figure 160: UARTE reception**

Note: If the DMA.RX.END 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 DMA.RX.END event explicitly even though the RX buffer is not full. In this scenario, the DMA.RX.END 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 DMA.RX.AMOUNT register following the DMA.RX.END event or the RXTO event.
If sent in succession immediately after the RTS signal is deactivated, UARTE can receive up to four bytes after the DMA.RX.STOP task has been triggered.
After the RXTO event is generated, the internal RX FIFO can still contain data. To move this data to RAM, the FLUSHRX task must be triggered. The RX buffer must be emptied, or the DMA.RX.PTR register must 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 DMA.RX.MAXCNT register must be set to DMA.RX.MAXCNT > 4, as seen in the following figure. The UARTE will generate the EVENTS\_DMA.RX.END event after completing the FLUSHRX task even if the RX FIFO was empty or if the RX buffer does not fill up. After the DMA.RX.END event, the DMA.RX.AMOUNT register holds the actual amount of bytes transferred to the RX buffer.
Figure 161: UARTE reception with forced stop through DMA.RX.STOP

If hardware flow control is enabled in the HWFC field in the CONFIG register, the RTS signal will be deactivated when the receiver is stopped via the DMA.RX.STOP task, or when UARTE can only 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 UARTE is only able to receive four additional bytes in its internal RX FIFO. Data received when the internal RX FIFO is full, will be lost.
The UARTE receiver is least active when it is stopped, consuming the least amount of energy. This is before it is started via DMA.RX.START, or after it has been stopped via DMA.RX.STOP and the RXTO event has been generated. See POWER - Power control on page 92 for more information about power modes.

## 8.25.5 Data frame size
UARTE implements a configurable data frame size of 4 bits to 9 bits and is set in the register CONFIG on page 723. If a value greater than 9 or less than 4 is written to this register, the frame size will be set to 8 bits and the register will read back a value of 8.
When UARTE is used with the 9 bit frame size, a 9th bit is added after the MSB of the 8 bit data frame, and before the parity and stop bits, as shown in the following figure. This bit indicates if the 8 bit data is an address or data. If the 9th bit is 1 , the 8 bit data is interpreted as an address. If the 9th bit is 0 , the 8 bit data is interpreted as data.
Figure 162: UARTE frame

| 1 start bit | Data frame: 4 to 8 data bits | 0 to 1 address bits | 0 to 1 parity bits | 1 to 2 stop bits |
| --------------- | ------------------------------ | ----------------------- | ---------------------- | -------------------- |
When UART is in RX configured with a 9 bit frame size, all frames are ignored until a frame with the address bit set is received, and the 8 remaining bits of the data frame matches the address set in the register ADDRESS on page 723. The frames following the matching address are received as an 8 bit data frame until the next frame where the address bit set is received, the address bit is not stored. If the address does not match ADDRESS, the following frames are ignored.
If the parity bit is enabled, the address bit is not included in the parity calculation.
When UART TX is started, the first byte in the buffer read by EasyDMA is treated as an address, and transmitted with the address bit set to 1 . The next bits in the buffer are treated as data and transmitted with the address bit set to 0 .
When UARTE uses a data frame size less than an 8 bits, the data is trimmed from an 8 bit frame size in the RAM buffer for TX, and padded before being stored in the RAM buffer for RX. The ENDIAN field in the register CONFIG defines if the data is trimmed from MSB or LSB of the 8 bit buffer frame.
## 8.25.6 Frame timeout interrupt
UARTE can generate an event after a programmable timeout.
If enabled with the FRAMETIMEOUT field in register CONFIG on page 723, a counter starts when the event EVENTS\_RXDRDY on page 708 is generated, and counts the number of periods given in register FRAMETIMEOUT on page 723. The period time of the counter is equal to the period of one bit on the UART TX line given by the baud rate set in BAUDRATE on page 722 If the task TASKS\_DMA.RX.STOP on page 704 is not triggered before the timeout expires, then the event EVENTS\_FRAMETIMEOUT is generated. The counter is reset when the event EVENTS\_RXDRDY on page 708 is generated. UARTE reception can be stopped on timeout by setting the short from the FRAMETIMEOUT event to the DMA.RX.STOP task in SHORTS on page 716.
This feature can be used to support variable length UART transmission with no end of transmission tag. After the last UART frames are received within the configured timeout, an interrupt is generated and the data can be processed.
The following figure shows an example where the UART receives a transmission with size of two frames, and the FRAMETIMEOUT register is set to 16.

Figure 163: UARTE reception frame timeout

The minimum value of the FRAMETIMEOUT register must be set to a value larger than the configured UART frame length.
## 8.25.7 Error conditions
An ERROR event, in the form of a framing error, will be generated if a valid stop bit is not detected in a frame. Another ERROR event, in the form of a break condition, will be generated if the RXD line is held active low for longer than the length of a data frame. A framing error is always generated before a break condition occurs.
An ERROR event will not stop reception. If the error was a parity error, the received byte is still transferred into RAM along with any following bytes. If a framing error occurs (wrong stop bit), that byte will not be stored in RAM but the next incoming bytes will.
## 8.25.8 Using the UARTE without flow control
If flow control is not enabled, the interface will behave as if the CTS and RTS lines are held active.
## 8.25.9 Parity and stop bit configuration
Automatic even parity generation for both transmission and reception can be configured using the register CONFIG on page 723. If odd parity is required, it can be configured using the register CONFIG on page 723. See the register description for details.
The amount of stop bits can be configured in the register CONFIG on page 723.
## 8.25.10 Compare match filter
UARTE has a compare match filter that can watch for a specific sequence of data. This feature is implemented in EasyDMA on the RX channel.
UARTE can generate events or interrupts when the specific data sequence is received. The event EVENTS\_DMA.RX.MATCH[n] (n=0..3) on page 710 is generated when there is a match in the data stream being received. The number of MATCH can be different for each instance. See Registers on page 701 for how many MATCH events are implemented per instance.

Register DMA.RX.MATCH.CANDIDATE[n] (n=0..3) on page 727 configures the pattern for comparison. The filter is enabled with the corresponding ENABLE bit in register DMA.RX.MATCH.CONFIG on page 726. The DMA.RX.ENABLEMATCH task can be used to set that bit, and the DMA.RX.DISABLEMATCH task will clear that bit. If the ONESHOT[i] field in the CONFIG register is set, the corresponding ENABLE[i] bit will be cleared on a successful match.
For detailed information regarding the use of pattern matching in the EasyDMA engine, see EasyDMA on page 28.
## 8.25.11 Low power
To ensure lowest possible power consumption when the peripheral is not needed, stop and disable UARTE.
The DMA.TX.STOP and DMA.RX.STOP tasks are not always needed (the peripheral might already be stopped). If DMA.TX.STOP or DMA.RX.STOP is sent, software waits until the TXSTOPPED or RXTO event is received before disabling the peripheral through the ENABLE register.
## 8.25.12 Pin configuration
The RXD, CTS (Clear To Send, active low), RTS (Request To Send, active low), and TXD signals associated with UARTE are mapped to physical pins according to the configuration specified in the PSEL.n registers.
These registers and their configurations are only used when UARTE is enabled, and retained while the device is in System ON mode. The PSEL.n registers can be configured only when UARTE is disabled.
To ensure correct behavior when in System OFF mode, the pins must be configured in the GPIO peripheral as described in the following table.
Only one peripheral can be assigned to drive a particular GPIO pin at a time. Failing to do so may result in unpredictable behavior.
| UARTE signal | UARTE pin | Direction | Output value |
| ---------------- | -------------------------- | ------------- | ---------------- |
| RXD | As specified in PSEL.RXD | Input | Not applicable |
| CTS | As specified in PSEL.CTS | Input | Not applicable |
| RTS | As specified in PSEL.RTS | Output | 1 |
| TXD | As specified in PSEL.TXD | Output | 1 |
Table 68: GPIO configuration before enabling peripheral

Related Variants
The following components are covered by the same datasheet.
| Part Number | Manufacturer | Package |
|---|---|---|
| NRF54L05 | Nordic Semiconductor ASA | — |
| NRF54L10 | Nordic Semiconductor ASA | — |
| NRF54L10-QFAA-R | Nordic Semiconductor ASA | QFN48 (6.0x6.0 mm) |
| NRF54L15 | Nordic Semiconductor ASA | — |
| nRF54L15-QFAA | Nordic Semiconductor | QFN48 (6.0x6.0 mm) |
| NRF54L15/10/05 | Nordic Semiconductor ASA | — |
Get structured datasheet data via API
Get started free