1 /* 2 Copyright (c) 2010 - 2023, Nordic Semiconductor ASA All rights reserved. 3 4 SPDX-License-Identifier: BSD-3-Clause 5 6 Redistribution and use in source and binary forms, with or without 7 modification, are permitted provided that the following conditions are met: 8 9 1. Redistributions of source code must retain the above copyright notice, this 10 list of conditions and the following disclaimer. 11 12 2. Redistributions in binary form must reproduce the above copyright 13 notice, this list of conditions and the following disclaimer in the 14 documentation and/or other materials provided with the distribution. 15 16 3. Neither the name of Nordic Semiconductor ASA nor the names of its 17 contributors may be used to endorse or promote products derived from this 18 software without specific prior written permission. 19 20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE 23 ARE DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE 24 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 POSSIBILITY OF SUCH DAMAGE. 31 * 32 * @file nrf5340_network.h 33 * @brief CMSIS HeaderFile 34 * @version 1 35 * @date 04. April 2023 36 * @note Generated by SVDConv V3.3.35 on Tuesday, 04.04.2023 11:58:49 37 * from File 'nrf5340_network.svd', 38 * last modified on Tuesday, 04.04.2023 09:57:14 39 */ 40 41 42 43 /** @addtogroup Nordic Semiconductor 44 * @{ 45 */ 46 47 48 /** @addtogroup nrf5340_network 49 * @{ 50 */ 51 52 53 #ifndef NRF5340_NETWORK_H 54 #define NRF5340_NETWORK_H 55 56 #ifdef __cplusplus 57 extern "C" { 58 #endif 59 60 61 /** @addtogroup Configuration_of_CMSIS 62 * @{ 63 */ 64 65 66 67 /* =========================================================================================================================== */ 68 /* ================ Interrupt Number Definition ================ */ 69 /* =========================================================================================================================== */ 70 71 typedef enum { 72 /* ======================================= ARM Cortex-M33 Specific Interrupt Numbers ======================================= */ 73 Reset_IRQn = -15, /*!< -15 Reset Vector, invoked on Power up and warm reset */ 74 NonMaskableInt_IRQn = -14, /*!< -14 Non maskable Interrupt, cannot be stopped or preempted */ 75 HardFault_IRQn = -13, /*!< -13 Hard Fault, all classes of Fault */ 76 MemoryManagement_IRQn = -12, /*!< -12 Memory Management, MPU mismatch, including Access Violation 77 and No Match */ 78 BusFault_IRQn = -11, /*!< -11 Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory 79 related Fault */ 80 UsageFault_IRQn = -10, /*!< -10 Usage Fault, i.e. Undef Instruction, Illegal State Transition */ 81 SecureFault_IRQn = -9, /*!< -9 Secure Fault Handler */ 82 SVCall_IRQn = -5, /*!< -5 System Service Call via SVC instruction */ 83 DebugMonitor_IRQn = -4, /*!< -4 Debug Monitor */ 84 PendSV_IRQn = -2, /*!< -2 Pendable request for system service */ 85 SysTick_IRQn = -1, /*!< -1 System Tick Timer */ 86 /* ====================================== nrf5340_network Specific Interrupt Numbers ======================================= */ 87 CLOCK_POWER_IRQn = 5, /*!< 5 CLOCK_POWER */ 88 RADIO_IRQn = 8, /*!< 8 RADIO */ 89 RNG_IRQn = 9, /*!< 9 RNG */ 90 GPIOTE_IRQn = 10, /*!< 10 GPIOTE */ 91 WDT_IRQn = 11, /*!< 11 WDT */ 92 TIMER0_IRQn = 12, /*!< 12 TIMER0 */ 93 ECB_IRQn = 13, /*!< 13 ECB */ 94 AAR_CCM_IRQn = 14, /*!< 14 AAR_CCM */ 95 TEMP_IRQn = 16, /*!< 16 TEMP */ 96 RTC0_IRQn = 17, /*!< 17 RTC0 */ 97 IPC_IRQn = 18, /*!< 18 IPC */ 98 SERIAL0_IRQn = 19, /*!< 19 SERIAL0 */ 99 EGU0_IRQn = 20, /*!< 20 EGU0 */ 100 RTC1_IRQn = 22, /*!< 22 RTC1 */ 101 TIMER1_IRQn = 24, /*!< 24 TIMER1 */ 102 TIMER2_IRQn = 25, /*!< 25 TIMER2 */ 103 SWI0_IRQn = 26, /*!< 26 SWI0 */ 104 SWI1_IRQn = 27, /*!< 27 SWI1 */ 105 SWI2_IRQn = 28, /*!< 28 SWI2 */ 106 SWI3_IRQn = 29 /*!< 29 SWI3 */ 107 } IRQn_Type; 108 109 110 111 /* =========================================================================================================================== */ 112 /* ================ Processor and Core Peripheral Section ================ */ 113 /* =========================================================================================================================== */ 114 115 /* ========================== Configuration of the ARM Cortex-M33 Processor and Core Peripherals =========================== */ 116 #define __CM33_REV 0x0004U /*!< CM33 Core Revision */ 117 #define __INTERRUPTS_MAX 129 /*!< Top interrupt number */ 118 #define __DSP_PRESENT 0 /*!< DSP present or not */ 119 #define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */ 120 #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ 121 #define __VTOR_PRESENT 1 /*!< Set to 1 if CPU supports Vector Table Offset Register */ 122 #define __MPU_PRESENT 1 /*!< MPU present */ 123 #define __FPU_PRESENT 0 /*!< FPU present */ 124 #define __FPU_DP 0 /*!< unused, Device has no FPU */ 125 #define __SAUREGION_PRESENT 0 /*!< SAU region present */ 126 127 128 /** @} */ /* End of group Configuration_of_CMSIS */ 129 130 #include "core_cm33.h" /*!< ARM Cortex-M33 processor and core peripherals */ 131 #include "system_nrf5340_network.h" /*!< nrf5340_network System */ 132 133 #ifndef __IM /*!< Fallback for older CMSIS versions */ 134 #define __IM __I 135 #endif 136 #ifndef __OM /*!< Fallback for older CMSIS versions */ 137 #define __OM __O 138 #endif 139 #ifndef __IOM /*!< Fallback for older CMSIS versions */ 140 #define __IOM __IO 141 #endif 142 143 144 /* =========================================================================================================================== */ 145 /* ================ Device Specific Cluster Section ================ */ 146 /* =========================================================================================================================== */ 147 148 149 /** @addtogroup Device_Peripheral_clusters 150 * @{ 151 */ 152 153 154 /** 155 * @brief FICR_INFO [INFO] (Device info) 156 */ 157 typedef struct { 158 __IM uint32_t CONFIGID; /*!< (@ 0x00000000) Configuration identifier */ 159 __IM uint32_t DEVICEID[2]; /*!< (@ 0x00000004) Description collection: Device identifier */ 160 __IM uint32_t PART; /*!< (@ 0x0000000C) Part code */ 161 __IM uint32_t VARIANT; /*!< (@ 0x00000010) Part Variant, Hardware version and Production 162 configuration */ 163 __IM uint32_t PACKAGE; /*!< (@ 0x00000014) Package option */ 164 __IM uint32_t RAM; /*!< (@ 0x00000018) RAM variant */ 165 __IM uint32_t FLASH; /*!< (@ 0x0000001C) Flash variant */ 166 __IM uint32_t CODEPAGESIZE; /*!< (@ 0x00000020) Code memory page size in bytes */ 167 __IM uint32_t CODESIZE; /*!< (@ 0x00000024) Code memory size */ 168 __IM uint32_t DEVICETYPE; /*!< (@ 0x00000028) Device type */ 169 } FICR_INFO_Type; /*!< Size = 44 (0x2c) */ 170 171 172 /** 173 * @brief FICR_TRIMCNF [TRIMCNF] (Unspecified) 174 */ 175 typedef struct { 176 __IM uint32_t ADDR; /*!< (@ 0x00000000) Description cluster: Address */ 177 __IM uint32_t DATA; /*!< (@ 0x00000004) Description cluster: Data */ 178 } FICR_TRIMCNF_Type; /*!< Size = 8 (0x8) */ 179 180 181 /** 182 * @brief VREQCTRL_VREGRADIO [VREGRADIO] (Unspecified) 183 */ 184 typedef struct { 185 __IOM uint32_t VREQH; /*!< (@ 0x00000000) Request high voltage on RADIO After requesting 186 high voltage, the user must wait until VREQHREADY 187 is set to Ready */ 188 __IM uint32_t RESERVED; 189 __IM uint32_t VREQHREADY; /*!< (@ 0x00000008) High voltage on RADIO is ready */ 190 } VREQCTRL_VREGRADIO_Type; /*!< Size = 12 (0xc) */ 191 192 193 /** 194 * @brief CTRLAPPERI_MAILBOX [MAILBOX] (Unspecified) 195 */ 196 typedef struct { 197 __IM uint32_t RXDATA; /*!< (@ 0x00000000) Data sent from the debugger to the CPU. */ 198 __IM uint32_t RXSTATUS; /*!< (@ 0x00000004) This register shows a status that indicates if 199 data sent from the debugger to the CPU has 200 been read. */ 201 __IM uint32_t RESERVED[30]; 202 __IOM uint32_t TXDATA; /*!< (@ 0x00000080) Data sent from the CPU to the debugger. */ 203 __IM uint32_t TXSTATUS; /*!< (@ 0x00000084) This register shows a status that indicates if 204 the data sent from the CPU to the debugger 205 has been read. */ 206 } CTRLAPPERI_MAILBOX_Type; /*!< Size = 136 (0x88) */ 207 208 209 /** 210 * @brief CTRLAPPERI_ERASEPROTECT [ERASEPROTECT] (Unspecified) 211 */ 212 typedef struct { 213 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the ERASEPROTECT.DISABLE 214 register from being written until next reset. */ 215 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the ERASEPROTECT register 216 and performs an ERASEALL operation. */ 217 } CTRLAPPERI_ERASEPROTECT_Type; /*!< Size = 8 (0x8) */ 218 219 220 /** 221 * @brief CTRLAPPERI_APPROTECT [APPROTECT] (Unspecified) 222 */ 223 typedef struct { 224 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the APPROTECT.DISABLE register 225 from being written to until next reset. */ 226 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the APPROTECT register 227 and enables debug access to non-secure mode. */ 228 } CTRLAPPERI_APPROTECT_Type; /*!< Size = 8 (0x8) */ 229 230 231 /** 232 * @brief RADIO_PSEL [PSEL] (Unspecified) 233 */ 234 typedef struct { 235 __IOM uint32_t DFEGPIO[8]; /*!< (@ 0x00000000) Description collection: Pin select for DFE pin 236 n */ 237 } RADIO_PSEL_Type; /*!< Size = 32 (0x20) */ 238 239 240 /** 241 * @brief RADIO_DFEPACKET [DFEPACKET] (DFE packet EasyDMA channel) 242 */ 243 typedef struct { 244 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 245 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of buffer words to transfer */ 246 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of samples transferred in the last transaction */ 247 } RADIO_DFEPACKET_Type; /*!< Size = 12 (0xc) */ 248 249 250 /** 251 * @brief DPPIC_TASKS_CHG [TASKS_CHG] (Channel group tasks) 252 */ 253 typedef struct { 254 __OM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Enable channel group n */ 255 __OM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Disable channel group n */ 256 } DPPIC_TASKS_CHG_Type; /*!< Size = 8 (0x8) */ 257 258 259 /** 260 * @brief DPPIC_SUBSCRIBE_CHG [SUBSCRIBE_CHG] (Subscribe configuration for tasks) 261 */ 262 typedef struct { 263 __IOM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Subscribe configuration 264 for task CHG[n].EN */ 265 __IOM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Subscribe configuration 266 for task CHG[n].DIS */ 267 } DPPIC_SUBSCRIBE_CHG_Type; /*!< Size = 8 (0x8) */ 268 269 270 /** 271 * @brief SPIM_PSEL [PSEL] (Unspecified) 272 */ 273 typedef struct { 274 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 275 __IOM uint32_t MOSI; /*!< (@ 0x00000004) Pin select for MOSI signal */ 276 __IOM uint32_t MISO; /*!< (@ 0x00000008) Pin select for MISO signal */ 277 __IOM uint32_t CSN; /*!< (@ 0x0000000C) Pin select for CSN */ 278 } SPIM_PSEL_Type; /*!< Size = 16 (0x10) */ 279 280 281 /** 282 * @brief SPIM_RXD [RXD] (RXD EasyDMA channel) 283 */ 284 typedef struct { 285 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 286 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 287 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 288 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 289 } SPIM_RXD_Type; /*!< Size = 16 (0x10) */ 290 291 292 /** 293 * @brief SPIM_TXD [TXD] (TXD EasyDMA channel) 294 */ 295 typedef struct { 296 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 297 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Number of bytes in transmit buffer */ 298 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 299 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 300 } SPIM_TXD_Type; /*!< Size = 16 (0x10) */ 301 302 303 /** 304 * @brief SPIM_IFTIMING [IFTIMING] (Unspecified) 305 */ 306 typedef struct { 307 __IOM uint32_t RXDELAY; /*!< (@ 0x00000000) Sample delay for input serial data on MISO */ 308 __IOM uint32_t CSNDUR; /*!< (@ 0x00000004) Minimum duration between edge of CSN and edge 309 of SCK. When SHORTS.END_START is used, this 310 is also the minimum duration CSN must stay 311 high between transactions. */ 312 } SPIM_IFTIMING_Type; /*!< Size = 8 (0x8) */ 313 314 315 /** 316 * @brief SPIS_PSEL [PSEL] (Unspecified) 317 */ 318 typedef struct { 319 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 320 __IOM uint32_t MISO; /*!< (@ 0x00000004) Pin select for MISO signal */ 321 __IOM uint32_t MOSI; /*!< (@ 0x00000008) Pin select for MOSI signal */ 322 __IOM uint32_t CSN; /*!< (@ 0x0000000C) Pin select for CSN signal */ 323 } SPIS_PSEL_Type; /*!< Size = 16 (0x10) */ 324 325 326 /** 327 * @brief SPIS_RXD [RXD] (Unspecified) 328 */ 329 typedef struct { 330 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD data pointer */ 331 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 332 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes received in last granted transaction */ 333 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 334 } SPIS_RXD_Type; /*!< Size = 16 (0x10) */ 335 336 337 /** 338 * @brief SPIS_TXD [TXD] (Unspecified) 339 */ 340 typedef struct { 341 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD data pointer */ 342 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 343 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transmitted in last granted transaction */ 344 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 345 } SPIS_TXD_Type; /*!< Size = 16 (0x10) */ 346 347 348 /** 349 * @brief TWIM_PSEL [PSEL] (Unspecified) 350 */ 351 typedef struct { 352 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 353 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 354 } TWIM_PSEL_Type; /*!< Size = 8 (0x8) */ 355 356 357 /** 358 * @brief TWIM_RXD [RXD] (RXD EasyDMA channel) 359 */ 360 typedef struct { 361 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 362 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 363 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 364 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 365 } TWIM_RXD_Type; /*!< Size = 16 (0x10) */ 366 367 368 /** 369 * @brief TWIM_TXD [TXD] (TXD EasyDMA channel) 370 */ 371 typedef struct { 372 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 373 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 374 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 375 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 376 } TWIM_TXD_Type; /*!< Size = 16 (0x10) */ 377 378 379 /** 380 * @brief TWIS_PSEL [PSEL] (Unspecified) 381 */ 382 typedef struct { 383 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 384 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 385 } TWIS_PSEL_Type; /*!< Size = 8 (0x8) */ 386 387 388 /** 389 * @brief TWIS_RXD [RXD] (RXD EasyDMA channel) 390 */ 391 typedef struct { 392 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD Data pointer */ 393 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in RXD buffer */ 394 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last RXD transaction */ 395 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 396 } TWIS_RXD_Type; /*!< Size = 16 (0x10) */ 397 398 399 /** 400 * @brief TWIS_TXD [TXD] (TXD EasyDMA channel) 401 */ 402 typedef struct { 403 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD Data pointer */ 404 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in TXD buffer */ 405 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last TXD transaction */ 406 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 407 } TWIS_TXD_Type; /*!< Size = 16 (0x10) */ 408 409 410 /** 411 * @brief UARTE_PSEL [PSEL] (Unspecified) 412 */ 413 typedef struct { 414 __IOM uint32_t RTS; /*!< (@ 0x00000000) Pin select for RTS signal */ 415 __IOM uint32_t TXD; /*!< (@ 0x00000004) Pin select for TXD signal */ 416 __IOM uint32_t CTS; /*!< (@ 0x00000008) Pin select for CTS signal */ 417 __IOM uint32_t RXD; /*!< (@ 0x0000000C) Pin select for RXD signal */ 418 } UARTE_PSEL_Type; /*!< Size = 16 (0x10) */ 419 420 421 /** 422 * @brief UARTE_RXD [RXD] (RXD EasyDMA channel) 423 */ 424 typedef struct { 425 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 426 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 427 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 428 } UARTE_RXD_Type; /*!< Size = 12 (0xc) */ 429 430 431 /** 432 * @brief UARTE_TXD [TXD] (TXD EasyDMA channel) 433 */ 434 typedef struct { 435 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 436 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 437 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 438 } UARTE_TXD_Type; /*!< Size = 12 (0xc) */ 439 440 441 /** 442 * @brief ACL_ACL [ACL] (Unspecified) 443 */ 444 typedef struct { 445 __IOM uint32_t ADDR; /*!< (@ 0x00000000) Description cluster: Start address of region 446 to protect. The start address must be word-aligned. */ 447 __IOM uint32_t SIZE; /*!< (@ 0x00000004) Description cluster: Size of region to protect 448 counting from address ACL[n].ADDR. Writing 449 a '0' has no effect. */ 450 __IOM uint32_t PERM; /*!< (@ 0x00000008) Description cluster: Access permissions for region 451 n as defined by start address ACL[n].ADDR 452 and size ACL[n].SIZE */ 453 __IM uint32_t RESERVED; 454 } ACL_ACL_Type; /*!< Size = 16 (0x10) */ 455 456 457 /** 458 * @brief VMC_RAM [RAM] (Unspecified) 459 */ 460 typedef struct { 461 __IOM uint32_t POWER; /*!< (@ 0x00000000) Description cluster: RAM[n] power control register */ 462 __IOM uint32_t POWERSET; /*!< (@ 0x00000004) Description cluster: RAM[n] power control set 463 register */ 464 __IOM uint32_t POWERCLR; /*!< (@ 0x00000008) Description cluster: RAM[n] power control clear 465 register */ 466 __IM uint32_t RESERVED; 467 } VMC_RAM_Type; /*!< Size = 16 (0x10) */ 468 469 470 /** @} */ /* End of group Device_Peripheral_clusters */ 471 472 473 /* =========================================================================================================================== */ 474 /* ================ Device Specific Peripheral Section ================ */ 475 /* =========================================================================================================================== */ 476 477 478 /** @addtogroup Device_Peripheral_peripherals 479 * @{ 480 */ 481 482 483 484 /* =========================================================================================================================== */ 485 /* ================ FICR_NS ================ */ 486 /* =========================================================================================================================== */ 487 488 489 /** 490 * @brief Factory Information Configuration Registers (FICR_NS) 491 */ 492 493 typedef struct { /*!< (@ 0x01FF0000) FICR_NS Structure */ 494 __IM uint32_t RESERVED[128]; 495 __IOM FICR_INFO_Type INFO; /*!< (@ 0x00000200) Device info */ 496 __IM uint32_t RESERVED1[21]; 497 __IM uint32_t ER[4]; /*!< (@ 0x00000280) Description collection: Encryption Root, word 498 n */ 499 __IM uint32_t IR[4]; /*!< (@ 0x00000290) Description collection: Identity Root, word n */ 500 __IM uint32_t DEVICEADDRTYPE; /*!< (@ 0x000002A0) Device address type */ 501 __IM uint32_t DEVICEADDR[2]; /*!< (@ 0x000002A4) Description collection: Device address n */ 502 __IM uint32_t RESERVED2[21]; 503 __IOM FICR_TRIMCNF_Type TRIMCNF[32]; /*!< (@ 0x00000300) Unspecified */ 504 } NRF_FICR_Type; /*!< Size = 1024 (0x400) */ 505 506 507 508 /* =========================================================================================================================== */ 509 /* ================ UICR_NS ================ */ 510 /* =========================================================================================================================== */ 511 512 513 /** 514 * @brief User Information Configuration Registers (UICR_NS) 515 */ 516 517 typedef struct { /*!< (@ 0x01FF8000) UICR_NS Structure */ 518 __IOM uint32_t APPROTECT; /*!< (@ 0x00000000) Access port protection */ 519 __IOM uint32_t ERASEPROTECT; /*!< (@ 0x00000004) Erase protection */ 520 __IM uint32_t RESERVED[126]; 521 __IOM uint32_t NRFFW[32]; /*!< (@ 0x00000200) Description collection: Reserved for Nordic firmware 522 design */ 523 __IM uint32_t RESERVED1[32]; 524 __IOM uint32_t CUSTOMER[32]; /*!< (@ 0x00000300) Description collection: Reserved for customer */ 525 } NRF_UICR_Type; /*!< Size = 896 (0x380) */ 526 527 528 529 /* =========================================================================================================================== */ 530 /* ================ CTI_NS ================ */ 531 /* =========================================================================================================================== */ 532 533 534 /** 535 * @brief Cross-Trigger Interface control. NOTE: this is not a separate peripheral, but describes CM33 functionality. (CTI_NS) 536 */ 537 538 typedef struct { /*!< (@ 0xE0042000) CTI_NS Structure */ 539 __IOM uint32_t CTICONTROL; /*!< (@ 0x00000000) CTI Control register */ 540 __IM uint32_t RESERVED[3]; 541 __OM uint32_t CTIINTACK; /*!< (@ 0x00000010) CTI Interrupt Acknowledge register */ 542 __IOM uint32_t CTIAPPSET; /*!< (@ 0x00000014) CTI Application Trigger Set register */ 543 __OM uint32_t CTIAPPCLEAR; /*!< (@ 0x00000018) CTI Application Trigger Clear register */ 544 __OM uint32_t CTIAPPPULSE; /*!< (@ 0x0000001C) CTI Application Pulse register */ 545 __IOM uint32_t CTIINEN[8]; /*!< (@ 0x00000020) Description collection: CTI Trigger input */ 546 __IM uint32_t RESERVED1[24]; 547 __IOM uint32_t CTIOUTEN[8]; /*!< (@ 0x000000A0) Description collection: CTI Trigger output */ 548 __IM uint32_t RESERVED2[28]; 549 __IM uint32_t CTITRIGINSTATUS; /*!< (@ 0x00000130) CTI Trigger In Status register */ 550 __IM uint32_t CTITRIGOUTSTATUS; /*!< (@ 0x00000134) CTI Trigger Out Status register */ 551 __IM uint32_t CTICHINSTATUS; /*!< (@ 0x00000138) CTI Channel In Status register */ 552 __IM uint32_t RESERVED3; 553 __IOM uint32_t CTIGATE; /*!< (@ 0x00000140) Enable CTI Channel Gate register */ 554 __IM uint32_t RESERVED4[926]; 555 __IM uint32_t DEVARCH; /*!< (@ 0x00000FBC) Device Architecture register */ 556 __IM uint32_t RESERVED5[2]; 557 __IM uint32_t DEVID; /*!< (@ 0x00000FC8) Device Configuration register */ 558 __IM uint32_t DEVTYPE; /*!< (@ 0x00000FCC) Device Type Identifier register */ 559 __IM uint32_t PIDR4; /*!< (@ 0x00000FD0) Peripheral ID4 Register */ 560 __IM uint32_t PIDR5; /*!< (@ 0x00000FD4) Peripheral ID5 register */ 561 __IM uint32_t PIDR6; /*!< (@ 0x00000FD8) Peripheral ID6 register */ 562 __IM uint32_t PIDR7; /*!< (@ 0x00000FDC) Peripheral ID7 register */ 563 __IM uint32_t PIDR0; /*!< (@ 0x00000FE0) Peripheral ID0 Register */ 564 __IM uint32_t PIDR1; /*!< (@ 0x00000FE4) Peripheral ID1 Register */ 565 __IM uint32_t PIDR2; /*!< (@ 0x00000FE8) Peripheral ID2 Register */ 566 __IM uint32_t PIDR3; /*!< (@ 0x00000FEC) Peripheral ID3 Register */ 567 __IM uint32_t CIDR0; /*!< (@ 0x00000FF0) Component ID0 Register */ 568 __IM uint32_t CIDR1; /*!< (@ 0x00000FF4) Component ID1 Register */ 569 __IM uint32_t CIDR2; /*!< (@ 0x00000FF8) Component ID2 Register */ 570 __IM uint32_t CIDR3; /*!< (@ 0x00000FFC) Component ID3 Register */ 571 } NRF_CTI_Type; /*!< Size = 4096 (0x1000) */ 572 573 574 575 /* =========================================================================================================================== */ 576 /* ================ DCNF_NS ================ */ 577 /* =========================================================================================================================== */ 578 579 580 /** 581 * @brief Domain configuration management (DCNF_NS) 582 */ 583 584 typedef struct { /*!< (@ 0x41000000) DCNF_NS Structure */ 585 __IM uint32_t RESERVED[264]; 586 __IM uint32_t CPUID; /*!< (@ 0x00000420) CPU ID of this subsystem */ 587 } NRF_DCNF_Type; /*!< Size = 1060 (0x424) */ 588 589 590 591 /* =========================================================================================================================== */ 592 /* ================ VREQCTRL_NS ================ */ 593 /* =========================================================================================================================== */ 594 595 596 /** 597 * @brief Voltage request control (VREQCTRL_NS) 598 */ 599 600 typedef struct { /*!< (@ 0x41004000) VREQCTRL_NS Structure */ 601 __IM uint32_t RESERVED[320]; 602 __IOM VREQCTRL_VREGRADIO_Type VREGRADIO; /*!< (@ 0x00000500) Unspecified */ 603 } NRF_VREQCTRL_Type; /*!< Size = 1292 (0x50c) */ 604 605 606 607 /* =========================================================================================================================== */ 608 /* ================ CLOCK_NS ================ */ 609 /* =========================================================================================================================== */ 610 611 612 /** 613 * @brief Clock management (CLOCK_NS) 614 */ 615 616 typedef struct { /*!< (@ 0x41005000) CLOCK_NS Structure */ 617 __OM uint32_t TASKS_HFCLKSTART; /*!< (@ 0x00000000) Start HFCLK128M/HFCLK64M source as selected in 618 HFCLKSRC */ 619 __OM uint32_t TASKS_HFCLKSTOP; /*!< (@ 0x00000004) Stop HFCLK128M/HFCLK64M source */ 620 __OM uint32_t TASKS_LFCLKSTART; /*!< (@ 0x00000008) Start LFCLK source as selected in LFCLKSRC */ 621 __OM uint32_t TASKS_LFCLKSTOP; /*!< (@ 0x0000000C) Stop LFCLK source */ 622 __OM uint32_t TASKS_CAL; /*!< (@ 0x00000010) Start calibration of LFRC oscillator */ 623 __IM uint32_t RESERVED[27]; 624 __IOM uint32_t SUBSCRIBE_HFCLKSTART; /*!< (@ 0x00000080) Subscribe configuration for task HFCLKSTART */ 625 __IOM uint32_t SUBSCRIBE_HFCLKSTOP; /*!< (@ 0x00000084) Subscribe configuration for task HFCLKSTOP */ 626 __IOM uint32_t SUBSCRIBE_LFCLKSTART; /*!< (@ 0x00000088) Subscribe configuration for task LFCLKSTART */ 627 __IOM uint32_t SUBSCRIBE_LFCLKSTOP; /*!< (@ 0x0000008C) Subscribe configuration for task LFCLKSTOP */ 628 __IOM uint32_t SUBSCRIBE_CAL; /*!< (@ 0x00000090) Subscribe configuration for task CAL */ 629 __IM uint32_t RESERVED1[27]; 630 __IOM uint32_t EVENTS_HFCLKSTARTED; /*!< (@ 0x00000100) HFCLK128M/HFCLK64M source started */ 631 __IOM uint32_t EVENTS_LFCLKSTARTED; /*!< (@ 0x00000104) LFCLK source started */ 632 __IM uint32_t RESERVED2[5]; 633 __IOM uint32_t EVENTS_DONE; /*!< (@ 0x0000011C) Calibration of LFRC oscillator complete event */ 634 __IM uint32_t RESERVED3[24]; 635 __IOM uint32_t PUBLISH_HFCLKSTARTED; /*!< (@ 0x00000180) Publish configuration for event HFCLKSTARTED */ 636 __IOM uint32_t PUBLISH_LFCLKSTARTED; /*!< (@ 0x00000184) Publish configuration for event LFCLKSTARTED */ 637 __IM uint32_t RESERVED4[5]; 638 __IOM uint32_t PUBLISH_DONE; /*!< (@ 0x0000019C) Publish configuration for event DONE */ 639 __IM uint32_t RESERVED5[88]; 640 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 641 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 642 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 643 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 644 __IM uint32_t RESERVED6[62]; 645 __IM uint32_t HFCLKRUN; /*!< (@ 0x00000408) Status indicating that HFCLKSTART task has been 646 triggered */ 647 __IM uint32_t HFCLKSTAT; /*!< (@ 0x0000040C) Status indicating which HFCLK128M/HFCLK64M source 648 is running This register value in any CLOCK 649 instance reflects status only due to configurations/action 650 in that CLOCK instance. */ 651 __IM uint32_t RESERVED7; 652 __IM uint32_t LFCLKRUN; /*!< (@ 0x00000414) Status indicating that LFCLKSTART task has been 653 triggered */ 654 __IM uint32_t LFCLKSTAT; /*!< (@ 0x00000418) Status indicating which LFCLK source is running 655 This register value in any CLOCK instance 656 reflects status only due to configurations/actions 657 in that CLOCK instance. */ 658 __IM uint32_t LFCLKSRCCOPY; /*!< (@ 0x0000041C) Copy of LFCLKSRC register, set when LFCLKSTART 659 task was triggered */ 660 __IM uint32_t RESERVED8[61]; 661 __IOM uint32_t HFCLKSRC; /*!< (@ 0x00000514) Clock source for HFCLK128M/HFCLK64M */ 662 __IOM uint32_t LFCLKSRC; /*!< (@ 0x00000518) Clock source for LFCLK */ 663 __IM uint32_t RESERVED9[15]; 664 __IOM uint32_t HFCLKCTRL; /*!< (@ 0x00000558) HFCLK128M frequency configuration */ 665 __IM uint32_t RESERVED10[5]; 666 __IOM uint32_t HFCLKALWAYSRUN; /*!< (@ 0x00000570) Automatic or manual control of HFCLK128M/HFCLK64M */ 667 __IOM uint32_t LFCLKALWAYSRUN; /*!< (@ 0x00000574) Automatic or manual control of LFCLK */ 668 } NRF_CLOCK_Type; /*!< Size = 1400 (0x578) */ 669 670 671 672 /* =========================================================================================================================== */ 673 /* ================ POWER_NS ================ */ 674 /* =========================================================================================================================== */ 675 676 677 /** 678 * @brief Power control (POWER_NS) 679 */ 680 681 typedef struct { /*!< (@ 0x41005000) POWER_NS Structure */ 682 __IM uint32_t RESERVED[30]; 683 __OM uint32_t TASKS_CONSTLAT; /*!< (@ 0x00000078) Enable Constant Latency mode */ 684 __OM uint32_t TASKS_LOWPWR; /*!< (@ 0x0000007C) Enable Low-Power mode (variable latency) */ 685 __IM uint32_t RESERVED1[30]; 686 __IOM uint32_t SUBSCRIBE_CONSTLAT; /*!< (@ 0x000000F8) Subscribe configuration for task CONSTLAT */ 687 __IOM uint32_t SUBSCRIBE_LOWPWR; /*!< (@ 0x000000FC) Subscribe configuration for task LOWPWR */ 688 __IM uint32_t RESERVED2[2]; 689 __IOM uint32_t EVENTS_POFWARN; /*!< (@ 0x00000108) Power failure warning */ 690 __IM uint32_t RESERVED3[2]; 691 __IOM uint32_t EVENTS_SLEEPENTER; /*!< (@ 0x00000114) CPU entered WFI/WFE sleep */ 692 __IOM uint32_t EVENTS_SLEEPEXIT; /*!< (@ 0x00000118) CPU exited WFI/WFE sleep */ 693 __IM uint32_t RESERVED4[27]; 694 __IOM uint32_t PUBLISH_POFWARN; /*!< (@ 0x00000188) Publish configuration for event POFWARN */ 695 __IM uint32_t RESERVED5[2]; 696 __IOM uint32_t PUBLISH_SLEEPENTER; /*!< (@ 0x00000194) Publish configuration for event SLEEPENTER */ 697 __IOM uint32_t PUBLISH_SLEEPEXIT; /*!< (@ 0x00000198) Publish configuration for event SLEEPEXIT */ 698 __IM uint32_t RESERVED6[89]; 699 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 700 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 701 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 702 __IM uint32_t RESERVED7[132]; 703 __IOM uint32_t GPREGRET[2]; /*!< (@ 0x0000051C) Description collection: General purpose retention 704 register */ 705 } NRF_POWER_Type; /*!< Size = 1316 (0x524) */ 706 707 708 709 /* =========================================================================================================================== */ 710 /* ================ RESET_NS ================ */ 711 /* =========================================================================================================================== */ 712 713 714 /** 715 * @brief Reset control (RESET_NS) 716 */ 717 718 typedef struct { /*!< (@ 0x41005000) RESET_NS Structure */ 719 __IM uint32_t RESERVED[256]; 720 __IOM uint32_t RESETREAS; /*!< (@ 0x00000400) Reset reason */ 721 } NRF_RESET_Type; /*!< Size = 1028 (0x404) */ 722 723 724 725 /* =========================================================================================================================== */ 726 /* ================ CTRLAP_NS ================ */ 727 /* =========================================================================================================================== */ 728 729 730 /** 731 * @brief Control access port (CTRLAP_NS) 732 */ 733 734 typedef struct { /*!< (@ 0x41006000) CTRLAP_NS Structure */ 735 __IM uint32_t RESERVED[256]; 736 __IOM CTRLAPPERI_MAILBOX_Type MAILBOX; /*!< (@ 0x00000400) Unspecified */ 737 __IM uint32_t RESERVED1[30]; 738 __IOM CTRLAPPERI_ERASEPROTECT_Type ERASEPROTECT;/*!< (@ 0x00000500) Unspecified */ 739 __IM uint32_t RESERVED2[14]; 740 __IOM CTRLAPPERI_APPROTECT_Type APPROTECT; /*!< (@ 0x00000540) Unspecified */ 741 __IM uint32_t RESERVED3[46]; 742 __IM uint32_t STATUS; /*!< (@ 0x00000600) Status bits for CTRL-AP peripheral. */ 743 } NRF_CTRLAPPERI_Type; /*!< Size = 1540 (0x604) */ 744 745 746 747 /* =========================================================================================================================== */ 748 /* ================ RADIO_NS ================ */ 749 /* =========================================================================================================================== */ 750 751 752 /** 753 * @brief 2.4 GHz radio (RADIO_NS) 754 */ 755 756 typedef struct { /*!< (@ 0x41008000) RADIO_NS Structure */ 757 __OM uint32_t TASKS_TXEN; /*!< (@ 0x00000000) Enable RADIO in TX mode */ 758 __OM uint32_t TASKS_RXEN; /*!< (@ 0x00000004) Enable RADIO in RX mode */ 759 __OM uint32_t TASKS_START; /*!< (@ 0x00000008) Start RADIO */ 760 __OM uint32_t TASKS_STOP; /*!< (@ 0x0000000C) Stop RADIO */ 761 __OM uint32_t TASKS_DISABLE; /*!< (@ 0x00000010) Disable RADIO */ 762 __OM uint32_t TASKS_RSSISTART; /*!< (@ 0x00000014) Start the RSSI and take one single sample of 763 the receive signal strength */ 764 __OM uint32_t TASKS_RSSISTOP; /*!< (@ 0x00000018) Stop the RSSI measurement */ 765 __OM uint32_t TASKS_BCSTART; /*!< (@ 0x0000001C) Start the bit counter */ 766 __OM uint32_t TASKS_BCSTOP; /*!< (@ 0x00000020) Stop the bit counter */ 767 __OM uint32_t TASKS_EDSTART; /*!< (@ 0x00000024) Start the energy detect measurement used in IEEE 768 802.15.4 mode */ 769 __OM uint32_t TASKS_EDSTOP; /*!< (@ 0x00000028) Stop the energy detect measurement */ 770 __OM uint32_t TASKS_CCASTART; /*!< (@ 0x0000002C) Start the clear channel assessment used in IEEE 771 802.15.4 mode */ 772 __OM uint32_t TASKS_CCASTOP; /*!< (@ 0x00000030) Stop the clear channel assessment */ 773 __IM uint32_t RESERVED[19]; 774 __IOM uint32_t SUBSCRIBE_TXEN; /*!< (@ 0x00000080) Subscribe configuration for task TXEN */ 775 __IOM uint32_t SUBSCRIBE_RXEN; /*!< (@ 0x00000084) Subscribe configuration for task RXEN */ 776 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000088) Subscribe configuration for task START */ 777 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x0000008C) Subscribe configuration for task STOP */ 778 __IOM uint32_t SUBSCRIBE_DISABLE; /*!< (@ 0x00000090) Subscribe configuration for task DISABLE */ 779 __IOM uint32_t SUBSCRIBE_RSSISTART; /*!< (@ 0x00000094) Subscribe configuration for task RSSISTART */ 780 __IOM uint32_t SUBSCRIBE_RSSISTOP; /*!< (@ 0x00000098) Subscribe configuration for task RSSISTOP */ 781 __IOM uint32_t SUBSCRIBE_BCSTART; /*!< (@ 0x0000009C) Subscribe configuration for task BCSTART */ 782 __IOM uint32_t SUBSCRIBE_BCSTOP; /*!< (@ 0x000000A0) Subscribe configuration for task BCSTOP */ 783 __IOM uint32_t SUBSCRIBE_EDSTART; /*!< (@ 0x000000A4) Subscribe configuration for task EDSTART */ 784 __IOM uint32_t SUBSCRIBE_EDSTOP; /*!< (@ 0x000000A8) Subscribe configuration for task EDSTOP */ 785 __IOM uint32_t SUBSCRIBE_CCASTART; /*!< (@ 0x000000AC) Subscribe configuration for task CCASTART */ 786 __IOM uint32_t SUBSCRIBE_CCASTOP; /*!< (@ 0x000000B0) Subscribe configuration for task CCASTOP */ 787 __IM uint32_t RESERVED1[19]; 788 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) RADIO has ramped up and is ready to be started */ 789 __IOM uint32_t EVENTS_ADDRESS; /*!< (@ 0x00000104) Address sent or received */ 790 __IOM uint32_t EVENTS_PAYLOAD; /*!< (@ 0x00000108) Packet payload sent or received */ 791 __IOM uint32_t EVENTS_END; /*!< (@ 0x0000010C) Packet sent or received */ 792 __IOM uint32_t EVENTS_DISABLED; /*!< (@ 0x00000110) RADIO has been disabled */ 793 __IOM uint32_t EVENTS_DEVMATCH; /*!< (@ 0x00000114) A device address match occurred on the last received 794 packet */ 795 __IOM uint32_t EVENTS_DEVMISS; /*!< (@ 0x00000118) No device address match occurred on the last 796 received packet */ 797 __IOM uint32_t EVENTS_RSSIEND; /*!< (@ 0x0000011C) Sampling of receive signal strength complete */ 798 __IM uint32_t RESERVED2[2]; 799 __IOM uint32_t EVENTS_BCMATCH; /*!< (@ 0x00000128) Bit counter reached bit count value */ 800 __IM uint32_t RESERVED3; 801 __IOM uint32_t EVENTS_CRCOK; /*!< (@ 0x00000130) Packet received with CRC ok */ 802 __IOM uint32_t EVENTS_CRCERROR; /*!< (@ 0x00000134) Packet received with CRC error */ 803 __IOM uint32_t EVENTS_FRAMESTART; /*!< (@ 0x00000138) IEEE 802.15.4 length field received */ 804 __IOM uint32_t EVENTS_EDEND; /*!< (@ 0x0000013C) Sampling of energy detection complete. A new 805 ED sample is ready for readout from the 806 RADIO.EDSAMPLE register. */ 807 __IOM uint32_t EVENTS_EDSTOPPED; /*!< (@ 0x00000140) The sampling of energy detection has stopped */ 808 __IOM uint32_t EVENTS_CCAIDLE; /*!< (@ 0x00000144) Wireless medium in idle - clear to send */ 809 __IOM uint32_t EVENTS_CCABUSY; /*!< (@ 0x00000148) Wireless medium busy - do not send */ 810 __IOM uint32_t EVENTS_CCASTOPPED; /*!< (@ 0x0000014C) The CCA has stopped */ 811 __IOM uint32_t EVENTS_RATEBOOST; /*!< (@ 0x00000150) Ble_LR CI field received, receive mode is changed 812 from Ble_LR125Kbit to Ble_LR500Kbit. */ 813 __IOM uint32_t EVENTS_TXREADY; /*!< (@ 0x00000154) RADIO has ramped up and is ready to be started 814 TX path */ 815 __IOM uint32_t EVENTS_RXREADY; /*!< (@ 0x00000158) RADIO has ramped up and is ready to be started 816 RX path */ 817 __IOM uint32_t EVENTS_MHRMATCH; /*!< (@ 0x0000015C) MAC header match found */ 818 __IM uint32_t RESERVED4[2]; 819 __IOM uint32_t EVENTS_SYNC; /*!< (@ 0x00000168) Preamble indicator */ 820 __IOM uint32_t EVENTS_PHYEND; /*!< (@ 0x0000016C) Generated when last bit is sent on air, or received 821 from air */ 822 __IOM uint32_t EVENTS_CTEPRESENT; /*!< (@ 0x00000170) CTE is present (early warning right after receiving 823 CTEInfo byte) */ 824 __IM uint32_t RESERVED5[3]; 825 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 826 __IOM uint32_t PUBLISH_ADDRESS; /*!< (@ 0x00000184) Publish configuration for event ADDRESS */ 827 __IOM uint32_t PUBLISH_PAYLOAD; /*!< (@ 0x00000188) Publish configuration for event PAYLOAD */ 828 __IOM uint32_t PUBLISH_END; /*!< (@ 0x0000018C) Publish configuration for event END */ 829 __IOM uint32_t PUBLISH_DISABLED; /*!< (@ 0x00000190) Publish configuration for event DISABLED */ 830 __IOM uint32_t PUBLISH_DEVMATCH; /*!< (@ 0x00000194) Publish configuration for event DEVMATCH */ 831 __IOM uint32_t PUBLISH_DEVMISS; /*!< (@ 0x00000198) Publish configuration for event DEVMISS */ 832 __IOM uint32_t PUBLISH_RSSIEND; /*!< (@ 0x0000019C) Publish configuration for event RSSIEND */ 833 __IM uint32_t RESERVED6[2]; 834 __IOM uint32_t PUBLISH_BCMATCH; /*!< (@ 0x000001A8) Publish configuration for event BCMATCH */ 835 __IM uint32_t RESERVED7; 836 __IOM uint32_t PUBLISH_CRCOK; /*!< (@ 0x000001B0) Publish configuration for event CRCOK */ 837 __IOM uint32_t PUBLISH_CRCERROR; /*!< (@ 0x000001B4) Publish configuration for event CRCERROR */ 838 __IOM uint32_t PUBLISH_FRAMESTART; /*!< (@ 0x000001B8) Publish configuration for event FRAMESTART */ 839 __IOM uint32_t PUBLISH_EDEND; /*!< (@ 0x000001BC) Publish configuration for event EDEND */ 840 __IOM uint32_t PUBLISH_EDSTOPPED; /*!< (@ 0x000001C0) Publish configuration for event EDSTOPPED */ 841 __IOM uint32_t PUBLISH_CCAIDLE; /*!< (@ 0x000001C4) Publish configuration for event CCAIDLE */ 842 __IOM uint32_t PUBLISH_CCABUSY; /*!< (@ 0x000001C8) Publish configuration for event CCABUSY */ 843 __IOM uint32_t PUBLISH_CCASTOPPED; /*!< (@ 0x000001CC) Publish configuration for event CCASTOPPED */ 844 __IOM uint32_t PUBLISH_RATEBOOST; /*!< (@ 0x000001D0) Publish configuration for event RATEBOOST */ 845 __IOM uint32_t PUBLISH_TXREADY; /*!< (@ 0x000001D4) Publish configuration for event TXREADY */ 846 __IOM uint32_t PUBLISH_RXREADY; /*!< (@ 0x000001D8) Publish configuration for event RXREADY */ 847 __IOM uint32_t PUBLISH_MHRMATCH; /*!< (@ 0x000001DC) Publish configuration for event MHRMATCH */ 848 __IM uint32_t RESERVED8[2]; 849 __IOM uint32_t PUBLISH_SYNC; /*!< (@ 0x000001E8) Publish configuration for event SYNC */ 850 __IOM uint32_t PUBLISH_PHYEND; /*!< (@ 0x000001EC) Publish configuration for event PHYEND */ 851 __IOM uint32_t PUBLISH_CTEPRESENT; /*!< (@ 0x000001F0) Publish configuration for event CTEPRESENT */ 852 __IM uint32_t RESERVED9[3]; 853 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 854 __IM uint32_t RESERVED10[64]; 855 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 856 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 857 __IM uint32_t RESERVED11[61]; 858 __IM uint32_t CRCSTATUS; /*!< (@ 0x00000400) CRC status */ 859 __IM uint32_t RESERVED12; 860 __IM uint32_t RXMATCH; /*!< (@ 0x00000408) Received address */ 861 __IM uint32_t RXCRC; /*!< (@ 0x0000040C) CRC field of previously received packet */ 862 __IM uint32_t DAI; /*!< (@ 0x00000410) Device address match index */ 863 __IM uint32_t PDUSTAT; /*!< (@ 0x00000414) Payload status */ 864 __IM uint32_t RESERVED13[13]; 865 __IM uint32_t CTESTATUS; /*!< (@ 0x0000044C) CTEInfo parsed from received packet */ 866 __IM uint32_t RESERVED14[2]; 867 __IM uint32_t DFESTATUS; /*!< (@ 0x00000458) DFE status information */ 868 __IM uint32_t RESERVED15[42]; 869 __IOM uint32_t PACKETPTR; /*!< (@ 0x00000504) Packet pointer */ 870 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000508) Frequency */ 871 __IOM uint32_t TXPOWER; /*!< (@ 0x0000050C) Output power */ 872 __IOM uint32_t MODE; /*!< (@ 0x00000510) Data rate and modulation */ 873 __IOM uint32_t PCNF0; /*!< (@ 0x00000514) Packet configuration register 0 */ 874 __IOM uint32_t PCNF1; /*!< (@ 0x00000518) Packet configuration register 1 */ 875 __IOM uint32_t BASE0; /*!< (@ 0x0000051C) Base address 0 */ 876 __IOM uint32_t BASE1; /*!< (@ 0x00000520) Base address 1 */ 877 __IOM uint32_t PREFIX0; /*!< (@ 0x00000524) Prefixes bytes for logical addresses 0-3 */ 878 __IOM uint32_t PREFIX1; /*!< (@ 0x00000528) Prefixes bytes for logical addresses 4-7 */ 879 __IOM uint32_t TXADDRESS; /*!< (@ 0x0000052C) Transmit address select */ 880 __IOM uint32_t RXADDRESSES; /*!< (@ 0x00000530) Receive address select */ 881 __IOM uint32_t CRCCNF; /*!< (@ 0x00000534) CRC configuration */ 882 __IOM uint32_t CRCPOLY; /*!< (@ 0x00000538) CRC polynomial */ 883 __IOM uint32_t CRCINIT; /*!< (@ 0x0000053C) CRC initial value */ 884 __IM uint32_t RESERVED16; 885 __IOM uint32_t TIFS; /*!< (@ 0x00000544) Interframe spacing in us */ 886 __IM uint32_t RSSISAMPLE; /*!< (@ 0x00000548) RSSI sample */ 887 __IM uint32_t RESERVED17; 888 __IM uint32_t STATE; /*!< (@ 0x00000550) Current radio state */ 889 __IOM uint32_t DATAWHITEIV; /*!< (@ 0x00000554) Data whitening initial value */ 890 __IM uint32_t RESERVED18[2]; 891 __IOM uint32_t BCC; /*!< (@ 0x00000560) Bit counter compare */ 892 __IM uint32_t RESERVED19[39]; 893 __IOM uint32_t DAB[8]; /*!< (@ 0x00000600) Description collection: Device address base segment 894 n */ 895 __IOM uint32_t DAP[8]; /*!< (@ 0x00000620) Description collection: Device address prefix 896 n */ 897 __IOM uint32_t DACNF; /*!< (@ 0x00000640) Device address match configuration */ 898 __IOM uint32_t MHRMATCHCONF; /*!< (@ 0x00000644) Search pattern configuration */ 899 __IOM uint32_t MHRMATCHMAS; /*!< (@ 0x00000648) Pattern mask */ 900 __IM uint32_t RESERVED20; 901 __IOM uint32_t MODECNF0; /*!< (@ 0x00000650) Radio mode configuration register 0 */ 902 __IM uint32_t RESERVED21[3]; 903 __IOM uint32_t SFD; /*!< (@ 0x00000660) IEEE 802.15.4 start of frame delimiter */ 904 __IOM uint32_t EDCNT; /*!< (@ 0x00000664) IEEE 802.15.4 energy detect loop count */ 905 __IM uint32_t EDSAMPLE; /*!< (@ 0x00000668) IEEE 802.15.4 energy detect level */ 906 __IOM uint32_t CCACTRL; /*!< (@ 0x0000066C) IEEE 802.15.4 clear channel assessment control */ 907 __IM uint32_t RESERVED22[164]; 908 __IOM uint32_t DFEMODE; /*!< (@ 0x00000900) Whether to use Angle-of-Arrival (AOA) or Angle-of-Departure 909 (AOD) */ 910 __IOM uint32_t CTEINLINECONF; /*!< (@ 0x00000904) Configuration for CTE inline mode */ 911 __IM uint32_t RESERVED23[2]; 912 __IOM uint32_t DFECTRL1; /*!< (@ 0x00000910) Various configuration for Direction finding */ 913 __IOM uint32_t DFECTRL2; /*!< (@ 0x00000914) Start offset for Direction finding */ 914 __IM uint32_t RESERVED24[4]; 915 __IOM uint32_t SWITCHPATTERN; /*!< (@ 0x00000928) GPIO patterns to be used for each antenna */ 916 __IOM uint32_t CLEARPATTERN; /*!< (@ 0x0000092C) Clear the GPIO pattern array for antenna control */ 917 __IOM RADIO_PSEL_Type PSEL; /*!< (@ 0x00000930) Unspecified */ 918 __IOM RADIO_DFEPACKET_Type DFEPACKET; /*!< (@ 0x00000950) DFE packet EasyDMA channel */ 919 __IM uint32_t RESERVED25[424]; 920 __IOM uint32_t POWER; /*!< (@ 0x00000FFC) Peripheral power control */ 921 } NRF_RADIO_Type; /*!< Size = 4096 (0x1000) */ 922 923 924 925 /* =========================================================================================================================== */ 926 /* ================ RNG_NS ================ */ 927 /* =========================================================================================================================== */ 928 929 930 /** 931 * @brief Random Number Generator (RNG_NS) 932 */ 933 934 typedef struct { /*!< (@ 0x41009000) RNG_NS Structure */ 935 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Task starting the random number generator */ 936 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Task stopping the random number generator */ 937 __IM uint32_t RESERVED[30]; 938 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 939 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 940 __IM uint32_t RESERVED1[30]; 941 __IOM uint32_t EVENTS_VALRDY; /*!< (@ 0x00000100) Event being generated for every new random number 942 written to the VALUE register */ 943 __IM uint32_t RESERVED2[31]; 944 __IOM uint32_t PUBLISH_VALRDY; /*!< (@ 0x00000180) Publish configuration for event VALRDY */ 945 __IM uint32_t RESERVED3[31]; 946 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 947 __IM uint32_t RESERVED4[64]; 948 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 949 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 950 __IM uint32_t RESERVED5[126]; 951 __IOM uint32_t CONFIG; /*!< (@ 0x00000504) Configuration register */ 952 __IM uint32_t VALUE; /*!< (@ 0x00000508) Output random number */ 953 } NRF_RNG_Type; /*!< Size = 1292 (0x50c) */ 954 955 956 957 /* =========================================================================================================================== */ 958 /* ================ GPIOTE_NS ================ */ 959 /* =========================================================================================================================== */ 960 961 962 /** 963 * @brief GPIO Tasks and Events (GPIOTE_NS) 964 */ 965 966 typedef struct { /*!< (@ 0x4100A000) GPIOTE_NS Structure */ 967 __OM uint32_t TASKS_OUT[8]; /*!< (@ 0x00000000) Description collection: Task for writing to pin 968 specified in CONFIG[n].PSEL. Action on pin 969 is configured in CONFIG[n].POLARITY. */ 970 __IM uint32_t RESERVED[4]; 971 __OM uint32_t TASKS_SET[8]; /*!< (@ 0x00000030) Description collection: Task for writing to pin 972 specified in CONFIG[n].PSEL. Action on pin 973 is to set it high. */ 974 __IM uint32_t RESERVED1[4]; 975 __OM uint32_t TASKS_CLR[8]; /*!< (@ 0x00000060) Description collection: Task for writing to pin 976 specified in CONFIG[n].PSEL. Action on pin 977 is to set it low. */ 978 __IOM uint32_t SUBSCRIBE_OUT[8]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 979 for task OUT[n] */ 980 __IM uint32_t RESERVED2[4]; 981 __IOM uint32_t SUBSCRIBE_SET[8]; /*!< (@ 0x000000B0) Description collection: Subscribe configuration 982 for task SET[n] */ 983 __IM uint32_t RESERVED3[4]; 984 __IOM uint32_t SUBSCRIBE_CLR[8]; /*!< (@ 0x000000E0) Description collection: Subscribe configuration 985 for task CLR[n] */ 986 __IOM uint32_t EVENTS_IN[8]; /*!< (@ 0x00000100) Description collection: Event generated from 987 pin specified in CONFIG[n].PSEL */ 988 __IM uint32_t RESERVED4[23]; 989 __IOM uint32_t EVENTS_PORT; /*!< (@ 0x0000017C) Event generated from multiple input GPIO pins 990 with SENSE mechanism enabled */ 991 __IOM uint32_t PUBLISH_IN[8]; /*!< (@ 0x00000180) Description collection: Publish configuration 992 for event IN[n] */ 993 __IM uint32_t RESERVED5[23]; 994 __IOM uint32_t PUBLISH_PORT; /*!< (@ 0x000001FC) Publish configuration for event PORT */ 995 __IM uint32_t RESERVED6[65]; 996 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 997 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 998 __IM uint32_t RESERVED7[126]; 999 __IOM uint32_t LATENCY; /*!< (@ 0x00000504) Latency selection for Event mode (MODE=Event) 1000 with rising or falling edge detection on 1001 the pin. */ 1002 __IM uint32_t RESERVED8[2]; 1003 __IOM uint32_t CONFIG[8]; /*!< (@ 0x00000510) Description collection: Configuration for OUT[n], 1004 SET[n], and CLR[n] tasks and IN[n] event */ 1005 } NRF_GPIOTE_Type; /*!< Size = 1328 (0x530) */ 1006 1007 1008 1009 /* =========================================================================================================================== */ 1010 /* ================ WDT_NS ================ */ 1011 /* =========================================================================================================================== */ 1012 1013 1014 /** 1015 * @brief Watchdog Timer (WDT_NS) 1016 */ 1017 1018 typedef struct { /*!< (@ 0x4100B000) WDT_NS Structure */ 1019 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start WDT */ 1020 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop WDT */ 1021 __IM uint32_t RESERVED[30]; 1022 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1023 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1024 __IM uint32_t RESERVED1[30]; 1025 __IOM uint32_t EVENTS_TIMEOUT; /*!< (@ 0x00000100) Watchdog timeout */ 1026 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) Watchdog stopped */ 1027 __IM uint32_t RESERVED2[30]; 1028 __IOM uint32_t PUBLISH_TIMEOUT; /*!< (@ 0x00000180) Publish configuration for event TIMEOUT */ 1029 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1030 __IM uint32_t RESERVED3[95]; 1031 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1032 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1033 __IM uint32_t RESERVED4[6]; 1034 __IOM uint32_t NMIENSET; /*!< (@ 0x00000324) Enable interrupt */ 1035 __IOM uint32_t NMIENCLR; /*!< (@ 0x00000328) Disable interrupt */ 1036 __IM uint32_t RESERVED5[53]; 1037 __IM uint32_t RUNSTATUS; /*!< (@ 0x00000400) Run status */ 1038 __IM uint32_t REQSTATUS; /*!< (@ 0x00000404) Request status */ 1039 __IM uint32_t RESERVED6[63]; 1040 __IOM uint32_t CRV; /*!< (@ 0x00000504) Counter reload value */ 1041 __IOM uint32_t RREN; /*!< (@ 0x00000508) Enable register for reload request registers */ 1042 __IOM uint32_t CONFIG; /*!< (@ 0x0000050C) Configuration register */ 1043 __IM uint32_t RESERVED7[4]; 1044 __OM uint32_t TSEN; /*!< (@ 0x00000520) Task stop enable */ 1045 __IM uint32_t RESERVED8[55]; 1046 __OM uint32_t RR[8]; /*!< (@ 0x00000600) Description collection: Reload request n */ 1047 } NRF_WDT_Type; /*!< Size = 1568 (0x620) */ 1048 1049 1050 1051 /* =========================================================================================================================== */ 1052 /* ================ TIMER0_NS ================ */ 1053 /* =========================================================================================================================== */ 1054 1055 1056 /** 1057 * @brief Timer/Counter 0 (TIMER0_NS) 1058 */ 1059 1060 typedef struct { /*!< (@ 0x4100C000) TIMER0_NS Structure */ 1061 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start Timer */ 1062 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop Timer */ 1063 __OM uint32_t TASKS_COUNT; /*!< (@ 0x00000008) Increment Timer (Counter mode only) */ 1064 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x0000000C) Clear time */ 1065 __OM uint32_t TASKS_SHUTDOWN; /*!< (@ 0x00000010) Deprecated register - Shut down timer */ 1066 __IM uint32_t RESERVED[11]; 1067 __OM uint32_t TASKS_CAPTURE[8]; /*!< (@ 0x00000040) Description collection: Capture Timer value to 1068 CC[n] register */ 1069 __IM uint32_t RESERVED1[8]; 1070 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1071 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1072 __IOM uint32_t SUBSCRIBE_COUNT; /*!< (@ 0x00000088) Subscribe configuration for task COUNT */ 1073 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x0000008C) Subscribe configuration for task CLEAR */ 1074 __IOM uint32_t SUBSCRIBE_SHUTDOWN; /*!< (@ 0x00000090) Deprecated register - Subscribe configuration 1075 for task SHUTDOWN */ 1076 __IM uint32_t RESERVED2[11]; 1077 __IOM uint32_t SUBSCRIBE_CAPTURE[8]; /*!< (@ 0x000000C0) Description collection: Subscribe configuration 1078 for task CAPTURE[n] */ 1079 __IM uint32_t RESERVED3[24]; 1080 __IOM uint32_t EVENTS_COMPARE[8]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 1081 match */ 1082 __IM uint32_t RESERVED4[24]; 1083 __IOM uint32_t PUBLISH_COMPARE[8]; /*!< (@ 0x000001C0) Description collection: Publish configuration 1084 for event COMPARE[n] */ 1085 __IM uint32_t RESERVED5[8]; 1086 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1087 __IM uint32_t RESERVED6[63]; 1088 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1089 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1090 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1091 __IM uint32_t RESERVED7[126]; 1092 __IOM uint32_t MODE; /*!< (@ 0x00000504) Timer mode selection */ 1093 __IOM uint32_t BITMODE; /*!< (@ 0x00000508) Configure the number of bits used by the TIMER */ 1094 __IM uint32_t RESERVED8; 1095 __IOM uint32_t PRESCALER; /*!< (@ 0x00000510) Timer prescaler register */ 1096 __IM uint32_t RESERVED9[11]; 1097 __IOM uint32_t CC[8]; /*!< (@ 0x00000540) Description collection: Capture/Compare register 1098 n */ 1099 __IM uint32_t RESERVED10[8]; 1100 __IOM uint32_t ONESHOTEN[8]; /*!< (@ 0x00000580) Description collection: Enable one-shot operation 1101 for Capture/Compare channel n */ 1102 } NRF_TIMER_Type; /*!< Size = 1440 (0x5a0) */ 1103 1104 1105 1106 /* =========================================================================================================================== */ 1107 /* ================ ECB_NS ================ */ 1108 /* =========================================================================================================================== */ 1109 1110 1111 /** 1112 * @brief AES ECB Mode Encryption (ECB_NS) 1113 */ 1114 1115 typedef struct { /*!< (@ 0x4100D000) ECB_NS Structure */ 1116 __OM uint32_t TASKS_STARTECB; /*!< (@ 0x00000000) Start ECB block encrypt */ 1117 __OM uint32_t TASKS_STOPECB; /*!< (@ 0x00000004) Abort a possible executing ECB operation */ 1118 __IM uint32_t RESERVED[30]; 1119 __IOM uint32_t SUBSCRIBE_STARTECB; /*!< (@ 0x00000080) Subscribe configuration for task STARTECB */ 1120 __IOM uint32_t SUBSCRIBE_STOPECB; /*!< (@ 0x00000084) Subscribe configuration for task STOPECB */ 1121 __IM uint32_t RESERVED1[30]; 1122 __IOM uint32_t EVENTS_ENDECB; /*!< (@ 0x00000100) ECB block encrypt complete */ 1123 __IOM uint32_t EVENTS_ERRORECB; /*!< (@ 0x00000104) ECB block encrypt aborted because of a STOPECB 1124 task or due to an error */ 1125 __IM uint32_t RESERVED2[30]; 1126 __IOM uint32_t PUBLISH_ENDECB; /*!< (@ 0x00000180) Publish configuration for event ENDECB */ 1127 __IOM uint32_t PUBLISH_ERRORECB; /*!< (@ 0x00000184) Publish configuration for event ERRORECB */ 1128 __IM uint32_t RESERVED3[95]; 1129 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1130 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1131 __IM uint32_t RESERVED4[126]; 1132 __IOM uint32_t ECBDATAPTR; /*!< (@ 0x00000504) ECB block encrypt memory pointers */ 1133 } NRF_ECB_Type; /*!< Size = 1288 (0x508) */ 1134 1135 1136 1137 /* =========================================================================================================================== */ 1138 /* ================ AAR_NS ================ */ 1139 /* =========================================================================================================================== */ 1140 1141 1142 /** 1143 * @brief Accelerated Address Resolver (AAR_NS) 1144 */ 1145 1146 typedef struct { /*!< (@ 0x4100E000) AAR_NS Structure */ 1147 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start resolving addresses based on IRKs specified 1148 in the IRK data structure */ 1149 __IM uint32_t RESERVED; 1150 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000008) Stop resolving addresses */ 1151 __IM uint32_t RESERVED1[29]; 1152 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1153 __IM uint32_t RESERVED2; 1154 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000088) Subscribe configuration for task STOP */ 1155 __IM uint32_t RESERVED3[29]; 1156 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000100) Address resolution procedure complete */ 1157 __IOM uint32_t EVENTS_RESOLVED; /*!< (@ 0x00000104) Address resolved */ 1158 __IOM uint32_t EVENTS_NOTRESOLVED; /*!< (@ 0x00000108) Address not resolved */ 1159 __IM uint32_t RESERVED4[29]; 1160 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000180) Publish configuration for event END */ 1161 __IOM uint32_t PUBLISH_RESOLVED; /*!< (@ 0x00000184) Publish configuration for event RESOLVED */ 1162 __IOM uint32_t PUBLISH_NOTRESOLVED; /*!< (@ 0x00000188) Publish configuration for event NOTRESOLVED */ 1163 __IM uint32_t RESERVED5[94]; 1164 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1165 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1166 __IM uint32_t RESERVED6[61]; 1167 __IM uint32_t STATUS; /*!< (@ 0x00000400) Resolution status */ 1168 __IM uint32_t RESERVED7[63]; 1169 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable AAR */ 1170 __IOM uint32_t NIRK; /*!< (@ 0x00000504) Number of IRKs */ 1171 __IOM uint32_t IRKPTR; /*!< (@ 0x00000508) Pointer to IRK data structure */ 1172 __IM uint32_t RESERVED8; 1173 __IOM uint32_t ADDRPTR; /*!< (@ 0x00000510) Pointer to the resolvable address */ 1174 __IOM uint32_t SCRATCHPTR; /*!< (@ 0x00000514) Pointer to data area used for temporary storage */ 1175 } NRF_AAR_Type; /*!< Size = 1304 (0x518) */ 1176 1177 1178 1179 /* =========================================================================================================================== */ 1180 /* ================ CCM_NS ================ */ 1181 /* =========================================================================================================================== */ 1182 1183 1184 /** 1185 * @brief AES CCM mode encryption (CCM_NS) 1186 */ 1187 1188 typedef struct { /*!< (@ 0x4100E000) CCM_NS Structure */ 1189 __OM uint32_t TASKS_KSGEN; /*!< (@ 0x00000000) Start generation of keystream. This operation 1190 will stop by itself when completed. */ 1191 __OM uint32_t TASKS_CRYPT; /*!< (@ 0x00000004) Start encryption/decryption. This operation will 1192 stop by itself when completed. */ 1193 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000008) Stop encryption/decryption */ 1194 __OM uint32_t TASKS_RATEOVERRIDE; /*!< (@ 0x0000000C) Override DATARATE setting in MODE register with 1195 the contents of the RATEOVERRIDE register 1196 for any ongoing encryption/decryption */ 1197 __IM uint32_t RESERVED[28]; 1198 __IOM uint32_t SUBSCRIBE_KSGEN; /*!< (@ 0x00000080) Subscribe configuration for task KSGEN */ 1199 __IOM uint32_t SUBSCRIBE_CRYPT; /*!< (@ 0x00000084) Subscribe configuration for task CRYPT */ 1200 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000088) Subscribe configuration for task STOP */ 1201 __IOM uint32_t SUBSCRIBE_RATEOVERRIDE; /*!< (@ 0x0000008C) Subscribe configuration for task RATEOVERRIDE */ 1202 __IM uint32_t RESERVED1[28]; 1203 __IOM uint32_t EVENTS_ENDKSGEN; /*!< (@ 0x00000100) Keystream generation complete */ 1204 __IOM uint32_t EVENTS_ENDCRYPT; /*!< (@ 0x00000104) Encrypt/decrypt complete */ 1205 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000108) Deprecated register - CCM error event */ 1206 __IM uint32_t RESERVED2[29]; 1207 __IOM uint32_t PUBLISH_ENDKSGEN; /*!< (@ 0x00000180) Publish configuration for event ENDKSGEN */ 1208 __IOM uint32_t PUBLISH_ENDCRYPT; /*!< (@ 0x00000184) Publish configuration for event ENDCRYPT */ 1209 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x00000188) Deprecated register - Publish configuration for 1210 event ERROR */ 1211 __IM uint32_t RESERVED3[29]; 1212 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1213 __IM uint32_t RESERVED4[64]; 1214 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1215 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1216 __IM uint32_t RESERVED5[61]; 1217 __IM uint32_t MICSTATUS; /*!< (@ 0x00000400) MIC check result */ 1218 __IM uint32_t RESERVED6[63]; 1219 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable */ 1220 __IOM uint32_t MODE; /*!< (@ 0x00000504) Operation mode */ 1221 __IOM uint32_t CNFPTR; /*!< (@ 0x00000508) Pointer to data structure holding the AES key 1222 and the NONCE vector */ 1223 __IOM uint32_t INPTR; /*!< (@ 0x0000050C) Input pointer */ 1224 __IOM uint32_t OUTPTR; /*!< (@ 0x00000510) Output pointer */ 1225 __IOM uint32_t SCRATCHPTR; /*!< (@ 0x00000514) Pointer to data area used for temporary storage */ 1226 __IOM uint32_t MAXPACKETSIZE; /*!< (@ 0x00000518) Length of keystream generated when MODE.LENGTH 1227 = Extended */ 1228 __IOM uint32_t RATEOVERRIDE; /*!< (@ 0x0000051C) Data rate override setting. */ 1229 __IOM uint32_t HEADERMASK; /*!< (@ 0x00000520) Header (S0) mask. */ 1230 } NRF_CCM_Type; /*!< Size = 1316 (0x524) */ 1231 1232 1233 1234 /* =========================================================================================================================== */ 1235 /* ================ DPPIC_NS ================ */ 1236 /* =========================================================================================================================== */ 1237 1238 1239 /** 1240 * @brief Distributed programmable peripheral interconnect controller (DPPIC_NS) 1241 */ 1242 1243 typedef struct { /*!< (@ 0x4100F000) DPPIC_NS Structure */ 1244 __OM DPPIC_TASKS_CHG_Type TASKS_CHG[6]; /*!< (@ 0x00000000) Channel group tasks */ 1245 __IM uint32_t RESERVED[20]; 1246 __IOM DPPIC_SUBSCRIBE_CHG_Type SUBSCRIBE_CHG[6];/*!< (@ 0x00000080) Subscribe configuration for tasks */ 1247 __IM uint32_t RESERVED1[276]; 1248 __IOM uint32_t CHEN; /*!< (@ 0x00000500) Channel enable register */ 1249 __IOM uint32_t CHENSET; /*!< (@ 0x00000504) Channel enable set register */ 1250 __IOM uint32_t CHENCLR; /*!< (@ 0x00000508) Channel enable clear register */ 1251 __IM uint32_t RESERVED2[189]; 1252 __IOM uint32_t CHG[6]; /*!< (@ 0x00000800) Description collection: Channel group n Note: 1253 Writes to this register are ignored if either 1254 SUBSCRIBE_CHG[n].EN or SUBSCRIBE_CHG[n].DIS 1255 is enabled */ 1256 } NRF_DPPIC_Type; /*!< Size = 2072 (0x818) */ 1257 1258 1259 1260 /* =========================================================================================================================== */ 1261 /* ================ TEMP_NS ================ */ 1262 /* =========================================================================================================================== */ 1263 1264 1265 /** 1266 * @brief Temperature Sensor (TEMP_NS) 1267 */ 1268 1269 typedef struct { /*!< (@ 0x41010000) TEMP_NS Structure */ 1270 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start temperature measurement */ 1271 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop temperature measurement */ 1272 __IM uint32_t RESERVED[30]; 1273 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1274 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1275 __IM uint32_t RESERVED1[30]; 1276 __IOM uint32_t EVENTS_DATARDY; /*!< (@ 0x00000100) Temperature measurement complete, data ready */ 1277 __IM uint32_t RESERVED2[31]; 1278 __IOM uint32_t PUBLISH_DATARDY; /*!< (@ 0x00000180) Publish configuration for event DATARDY */ 1279 __IM uint32_t RESERVED3[96]; 1280 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1281 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1282 __IM uint32_t RESERVED4[127]; 1283 __IM int32_t TEMP; /*!< (@ 0x00000508) Temperature in degC (0.25deg steps) */ 1284 __IM uint32_t RESERVED5[5]; 1285 __IOM uint32_t A0; /*!< (@ 0x00000520) Slope of first piecewise linear function */ 1286 __IOM uint32_t A1; /*!< (@ 0x00000524) Slope of second piecewise linear function */ 1287 __IOM uint32_t A2; /*!< (@ 0x00000528) Slope of third piecewise linear function */ 1288 __IOM uint32_t A3; /*!< (@ 0x0000052C) Slope of fourth piecewise linear function */ 1289 __IOM uint32_t A4; /*!< (@ 0x00000530) Slope of fifth piecewise linear function */ 1290 __IOM uint32_t A5; /*!< (@ 0x00000534) Slope of sixth piecewise linear function */ 1291 __IM uint32_t RESERVED6[2]; 1292 __IOM uint32_t B0; /*!< (@ 0x00000540) y-intercept of first piecewise linear function */ 1293 __IOM uint32_t B1; /*!< (@ 0x00000544) y-intercept of second piecewise linear function */ 1294 __IOM uint32_t B2; /*!< (@ 0x00000548) y-intercept of third piecewise linear function */ 1295 __IOM uint32_t B3; /*!< (@ 0x0000054C) y-intercept of fourth piecewise linear function */ 1296 __IOM uint32_t B4; /*!< (@ 0x00000550) y-intercept of fifth piecewise linear function */ 1297 __IOM uint32_t B5; /*!< (@ 0x00000554) y-intercept of sixth piecewise linear function */ 1298 __IM uint32_t RESERVED7[2]; 1299 __IOM uint32_t T0; /*!< (@ 0x00000560) Endpoint of first piecewise linear function */ 1300 __IOM uint32_t T1; /*!< (@ 0x00000564) Endpoint of second piecewise linear function */ 1301 __IOM uint32_t T2; /*!< (@ 0x00000568) Endpoint of third piecewise linear function */ 1302 __IOM uint32_t T3; /*!< (@ 0x0000056C) Endpoint of fourth piecewise linear function */ 1303 __IOM uint32_t T4; /*!< (@ 0x00000570) Endpoint of fifth piecewise linear function */ 1304 } NRF_TEMP_Type; /*!< Size = 1396 (0x574) */ 1305 1306 1307 1308 /* =========================================================================================================================== */ 1309 /* ================ RTC0_NS ================ */ 1310 /* =========================================================================================================================== */ 1311 1312 1313 /** 1314 * @brief Real-time counter 0 (RTC0_NS) 1315 */ 1316 1317 typedef struct { /*!< (@ 0x41011000) RTC0_NS Structure */ 1318 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start RTC counter */ 1319 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop RTC counter */ 1320 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x00000008) Clear RTC counter */ 1321 __OM uint32_t TASKS_TRIGOVRFLW; /*!< (@ 0x0000000C) Set counter to 0xFFFFF0 */ 1322 __IM uint32_t RESERVED[12]; 1323 __OM uint32_t TASKS_CAPTURE[4]; /*!< (@ 0x00000040) Description collection: Capture RTC counter to 1324 CC[n] register */ 1325 __IM uint32_t RESERVED1[12]; 1326 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1327 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1328 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x00000088) Subscribe configuration for task CLEAR */ 1329 __IOM uint32_t SUBSCRIBE_TRIGOVRFLW; /*!< (@ 0x0000008C) Subscribe configuration for task TRIGOVRFLW */ 1330 __IM uint32_t RESERVED2[12]; 1331 __IOM uint32_t SUBSCRIBE_CAPTURE[4]; /*!< (@ 0x000000C0) Description collection: Subscribe configuration 1332 for task CAPTURE[n] */ 1333 __IM uint32_t RESERVED3[12]; 1334 __IOM uint32_t EVENTS_TICK; /*!< (@ 0x00000100) Event on counter increment */ 1335 __IOM uint32_t EVENTS_OVRFLW; /*!< (@ 0x00000104) Event on counter overflow */ 1336 __IM uint32_t RESERVED4[14]; 1337 __IOM uint32_t EVENTS_COMPARE[4]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 1338 match */ 1339 __IM uint32_t RESERVED5[12]; 1340 __IOM uint32_t PUBLISH_TICK; /*!< (@ 0x00000180) Publish configuration for event TICK */ 1341 __IOM uint32_t PUBLISH_OVRFLW; /*!< (@ 0x00000184) Publish configuration for event OVRFLW */ 1342 __IM uint32_t RESERVED6[14]; 1343 __IOM uint32_t PUBLISH_COMPARE[4]; /*!< (@ 0x000001C0) Description collection: Publish configuration 1344 for event COMPARE[n] */ 1345 __IM uint32_t RESERVED7[12]; 1346 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1347 __IM uint32_t RESERVED8[64]; 1348 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1349 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1350 __IM uint32_t RESERVED9[13]; 1351 __IOM uint32_t EVTEN; /*!< (@ 0x00000340) Enable or disable event routing */ 1352 __IOM uint32_t EVTENSET; /*!< (@ 0x00000344) Enable event routing */ 1353 __IOM uint32_t EVTENCLR; /*!< (@ 0x00000348) Disable event routing */ 1354 __IM uint32_t RESERVED10[110]; 1355 __IM uint32_t COUNTER; /*!< (@ 0x00000504) Current counter value */ 1356 __IOM uint32_t PRESCALER; /*!< (@ 0x00000508) 12-bit prescaler for counter frequency (32768 1357 / (PRESCALER + 1)). Must be written when 1358 RTC is stopped. */ 1359 __IM uint32_t RESERVED11[13]; 1360 __IOM uint32_t CC[4]; /*!< (@ 0x00000540) Description collection: Compare register n */ 1361 } NRF_RTC_Type; /*!< Size = 1360 (0x550) */ 1362 1363 1364 1365 /* =========================================================================================================================== */ 1366 /* ================ IPC_NS ================ */ 1367 /* =========================================================================================================================== */ 1368 1369 1370 /** 1371 * @brief Interprocessor communication (IPC_NS) 1372 */ 1373 1374 typedef struct { /*!< (@ 0x41012000) IPC_NS Structure */ 1375 __OM uint32_t TASKS_SEND[16]; /*!< (@ 0x00000000) Description collection: Trigger events on IPC 1376 channel enabled in SEND_CNF[n] */ 1377 __IM uint32_t RESERVED[16]; 1378 __IOM uint32_t SUBSCRIBE_SEND[16]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 1379 for task SEND[n] */ 1380 __IM uint32_t RESERVED1[16]; 1381 __IOM uint32_t EVENTS_RECEIVE[16]; /*!< (@ 0x00000100) Description collection: Event received on one 1382 or more of the enabled IPC channels in RECEIVE_CNF[n] */ 1383 __IM uint32_t RESERVED2[16]; 1384 __IOM uint32_t PUBLISH_RECEIVE[16]; /*!< (@ 0x00000180) Description collection: Publish configuration 1385 for event RECEIVE[n] */ 1386 __IM uint32_t RESERVED3[80]; 1387 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1388 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1389 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1390 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 1391 __IM uint32_t RESERVED4[128]; 1392 __IOM uint32_t SEND_CNF[16]; /*!< (@ 0x00000510) Description collection: Send event configuration 1393 for TASKS_SEND[n] */ 1394 __IM uint32_t RESERVED5[16]; 1395 __IOM uint32_t RECEIVE_CNF[16]; /*!< (@ 0x00000590) Description collection: Receive event configuration 1396 for EVENTS_RECEIVE[n] */ 1397 __IM uint32_t RESERVED6[16]; 1398 __IOM uint32_t GPMEM[2]; /*!< (@ 0x00000610) Description collection: General purpose memory */ 1399 } NRF_IPC_Type; /*!< Size = 1560 (0x618) */ 1400 1401 1402 1403 /* =========================================================================================================================== */ 1404 /* ================ SPIM0_NS ================ */ 1405 /* =========================================================================================================================== */ 1406 1407 1408 /** 1409 * @brief Serial Peripheral Interface Master with EasyDMA (SPIM0_NS) 1410 */ 1411 1412 typedef struct { /*!< (@ 0x41013000) SPIM0_NS Structure */ 1413 __IM uint32_t RESERVED[4]; 1414 __OM uint32_t TASKS_START; /*!< (@ 0x00000010) Start SPI transaction */ 1415 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop SPI transaction */ 1416 __IM uint32_t RESERVED1; 1417 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend SPI transaction */ 1418 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume SPI transaction */ 1419 __IM uint32_t RESERVED2[27]; 1420 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000090) Subscribe configuration for task START */ 1421 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1422 __IM uint32_t RESERVED3; 1423 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1424 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1425 __IM uint32_t RESERVED4[24]; 1426 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) SPI transaction has stopped */ 1427 __IM uint32_t RESERVED5[2]; 1428 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1429 __IM uint32_t RESERVED6; 1430 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000118) End of RXD buffer and TXD buffer reached */ 1431 __IM uint32_t RESERVED7; 1432 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) End of TXD buffer reached */ 1433 __IM uint32_t RESERVED8[10]; 1434 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x0000014C) Transaction started */ 1435 __IM uint32_t RESERVED9[13]; 1436 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1437 __IM uint32_t RESERVED10[2]; 1438 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1439 __IM uint32_t RESERVED11; 1440 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000198) Publish configuration for event END */ 1441 __IM uint32_t RESERVED12; 1442 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1443 __IM uint32_t RESERVED13[10]; 1444 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x000001CC) Publish configuration for event STARTED */ 1445 __IM uint32_t RESERVED14[12]; 1446 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1447 __IM uint32_t RESERVED15[64]; 1448 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1449 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1450 __IM uint32_t RESERVED16[61]; 1451 __IOM uint32_t STALLSTAT; /*!< (@ 0x00000400) Stall status for EasyDMA RAM accesses. The fields 1452 in this register are set to STALL by hardware 1453 whenever a stall occurres and can be cleared 1454 (set to NOSTALL) by the CPU. */ 1455 __IM uint32_t RESERVED17[63]; 1456 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPIM */ 1457 __IM uint32_t RESERVED18; 1458 __IOM SPIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1459 __IM uint32_t RESERVED19[3]; 1460 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) SPI frequency. Accuracy depends on the HFCLK 1461 source selected. */ 1462 __IM uint32_t RESERVED20[3]; 1463 __IOM SPIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1464 __IOM SPIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1465 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1466 __IM uint32_t RESERVED21[2]; 1467 __IOM SPIM_IFTIMING_Type IFTIMING; /*!< (@ 0x00000560) Unspecified */ 1468 __IOM uint32_t CSNPOL; /*!< (@ 0x00000568) Polarity of CSN output */ 1469 __IOM uint32_t PSELDCX; /*!< (@ 0x0000056C) Pin select for DCX signal */ 1470 __IOM uint32_t DCXCNT; /*!< (@ 0x00000570) DCX configuration */ 1471 __IM uint32_t RESERVED22[19]; 1472 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Byte transmitted after TXD.MAXCNT bytes have 1473 been transmitted in the case when RXD.MAXCNT 1474 is greater than TXD.MAXCNT */ 1475 } NRF_SPIM_Type; /*!< Size = 1476 (0x5c4) */ 1476 1477 1478 1479 /* =========================================================================================================================== */ 1480 /* ================ SPIS0_NS ================ */ 1481 /* =========================================================================================================================== */ 1482 1483 1484 /** 1485 * @brief SPI Slave (SPIS0_NS) 1486 */ 1487 1488 typedef struct { /*!< (@ 0x41013000) SPIS0_NS Structure */ 1489 __IM uint32_t RESERVED[9]; 1490 __OM uint32_t TASKS_ACQUIRE; /*!< (@ 0x00000024) Acquire SPI semaphore */ 1491 __OM uint32_t TASKS_RELEASE; /*!< (@ 0x00000028) Release SPI semaphore, enabling the SPI slave 1492 to acquire it */ 1493 __IM uint32_t RESERVED1[30]; 1494 __IOM uint32_t SUBSCRIBE_ACQUIRE; /*!< (@ 0x000000A4) Subscribe configuration for task ACQUIRE */ 1495 __IOM uint32_t SUBSCRIBE_RELEASE; /*!< (@ 0x000000A8) Subscribe configuration for task RELEASE */ 1496 __IM uint32_t RESERVED2[22]; 1497 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000104) Granted transaction completed */ 1498 __IM uint32_t RESERVED3[2]; 1499 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1500 __IM uint32_t RESERVED4[5]; 1501 __IOM uint32_t EVENTS_ACQUIRED; /*!< (@ 0x00000128) Semaphore acquired */ 1502 __IM uint32_t RESERVED5[22]; 1503 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000184) Publish configuration for event END */ 1504 __IM uint32_t RESERVED6[2]; 1505 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1506 __IM uint32_t RESERVED7[5]; 1507 __IOM uint32_t PUBLISH_ACQUIRED; /*!< (@ 0x000001A8) Publish configuration for event ACQUIRED */ 1508 __IM uint32_t RESERVED8[21]; 1509 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1510 __IM uint32_t RESERVED9[64]; 1511 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1512 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1513 __IM uint32_t RESERVED10[61]; 1514 __IM uint32_t SEMSTAT; /*!< (@ 0x00000400) Semaphore status register */ 1515 __IM uint32_t RESERVED11[15]; 1516 __IOM uint32_t STATUS; /*!< (@ 0x00000440) Status from last transaction */ 1517 __IM uint32_t RESERVED12[47]; 1518 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPI slave */ 1519 __IM uint32_t RESERVED13; 1520 __IOM SPIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1521 __IM uint32_t RESERVED14[7]; 1522 __IOM SPIS_RXD_Type RXD; /*!< (@ 0x00000534) Unspecified */ 1523 __IOM SPIS_TXD_Type TXD; /*!< (@ 0x00000544) Unspecified */ 1524 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1525 __IM uint32_t RESERVED15; 1526 __IOM uint32_t DEF; /*!< (@ 0x0000055C) Default character. Character clocked out in case 1527 of an ignored transaction. */ 1528 __IM uint32_t RESERVED16[24]; 1529 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character */ 1530 } NRF_SPIS_Type; /*!< Size = 1476 (0x5c4) */ 1531 1532 1533 1534 /* =========================================================================================================================== */ 1535 /* ================ TWIM0_NS ================ */ 1536 /* =========================================================================================================================== */ 1537 1538 1539 /** 1540 * @brief I2C compatible Two-Wire Master Interface with EasyDMA (TWIM0_NS) 1541 */ 1542 1543 typedef struct { /*!< (@ 0x41013000) TWIM0_NS Structure */ 1544 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start TWI receive sequence */ 1545 __IM uint32_t RESERVED; 1546 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start TWI transmit sequence */ 1547 __IM uint32_t RESERVED1[2]; 1548 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction. Must be issued while the 1549 TWI master is not suspended. */ 1550 __IM uint32_t RESERVED2; 1551 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1552 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1553 __IM uint32_t RESERVED3[23]; 1554 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1555 __IM uint32_t RESERVED4; 1556 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1557 __IM uint32_t RESERVED5[2]; 1558 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1559 __IM uint32_t RESERVED6; 1560 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1561 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1562 __IM uint32_t RESERVED7[24]; 1563 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1564 __IM uint32_t RESERVED8[7]; 1565 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1566 __IM uint32_t RESERVED9[8]; 1567 __IOM uint32_t EVENTS_SUSPENDED; /*!< (@ 0x00000148) SUSPEND task has been issued, TWI traffic is 1568 now suspended. */ 1569 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1570 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1571 __IM uint32_t RESERVED10[2]; 1572 __IOM uint32_t EVENTS_LASTRX; /*!< (@ 0x0000015C) Byte boundary, starting to receive the last byte */ 1573 __IOM uint32_t EVENTS_LASTTX; /*!< (@ 0x00000160) Byte boundary, starting to transmit the last 1574 byte */ 1575 __IM uint32_t RESERVED11[8]; 1576 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1577 __IM uint32_t RESERVED12[7]; 1578 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1579 __IM uint32_t RESERVED13[8]; 1580 __IOM uint32_t PUBLISH_SUSPENDED; /*!< (@ 0x000001C8) Publish configuration for event SUSPENDED */ 1581 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1582 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1583 __IM uint32_t RESERVED14[2]; 1584 __IOM uint32_t PUBLISH_LASTRX; /*!< (@ 0x000001DC) Publish configuration for event LASTRX */ 1585 __IOM uint32_t PUBLISH_LASTTX; /*!< (@ 0x000001E0) Publish configuration for event LASTTX */ 1586 __IM uint32_t RESERVED15[7]; 1587 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1588 __IM uint32_t RESERVED16[63]; 1589 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1590 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1591 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1592 __IM uint32_t RESERVED17[110]; 1593 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004C4) Error source */ 1594 __IM uint32_t RESERVED18[14]; 1595 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIM */ 1596 __IM uint32_t RESERVED19; 1597 __IOM TWIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1598 __IM uint32_t RESERVED20[5]; 1599 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) TWI frequency. Accuracy depends on the HFCLK 1600 source selected. */ 1601 __IM uint32_t RESERVED21[3]; 1602 __IOM TWIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1603 __IOM TWIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1604 __IM uint32_t RESERVED22[13]; 1605 __IOM uint32_t ADDRESS; /*!< (@ 0x00000588) Address used in the TWI transfer */ 1606 } NRF_TWIM_Type; /*!< Size = 1420 (0x58c) */ 1607 1608 1609 1610 /* =========================================================================================================================== */ 1611 /* ================ TWIS0_NS ================ */ 1612 /* =========================================================================================================================== */ 1613 1614 1615 /** 1616 * @brief I2C compatible Two-Wire Slave Interface with EasyDMA (TWIS0_NS) 1617 */ 1618 1619 typedef struct { /*!< (@ 0x41013000) TWIS0_NS Structure */ 1620 __IM uint32_t RESERVED[5]; 1621 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction */ 1622 __IM uint32_t RESERVED1; 1623 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1624 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1625 __IM uint32_t RESERVED2[3]; 1626 __OM uint32_t TASKS_PREPARERX; /*!< (@ 0x00000030) Prepare the TWI slave to respond to a write command */ 1627 __OM uint32_t TASKS_PREPARETX; /*!< (@ 0x00000034) Prepare the TWI slave to respond to a read command */ 1628 __IM uint32_t RESERVED3[23]; 1629 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1630 __IM uint32_t RESERVED4; 1631 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1632 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1633 __IM uint32_t RESERVED5[3]; 1634 __IOM uint32_t SUBSCRIBE_PREPARERX; /*!< (@ 0x000000B0) Subscribe configuration for task PREPARERX */ 1635 __IOM uint32_t SUBSCRIBE_PREPARETX; /*!< (@ 0x000000B4) Subscribe configuration for task PREPARETX */ 1636 __IM uint32_t RESERVED6[19]; 1637 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1638 __IM uint32_t RESERVED7[7]; 1639 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1640 __IM uint32_t RESERVED8[9]; 1641 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1642 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1643 __IM uint32_t RESERVED9[4]; 1644 __IOM uint32_t EVENTS_WRITE; /*!< (@ 0x00000164) Write command received */ 1645 __IOM uint32_t EVENTS_READ; /*!< (@ 0x00000168) Read command received */ 1646 __IM uint32_t RESERVED10[6]; 1647 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1648 __IM uint32_t RESERVED11[7]; 1649 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1650 __IM uint32_t RESERVED12[9]; 1651 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1652 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1653 __IM uint32_t RESERVED13[4]; 1654 __IOM uint32_t PUBLISH_WRITE; /*!< (@ 0x000001E4) Publish configuration for event WRITE */ 1655 __IOM uint32_t PUBLISH_READ; /*!< (@ 0x000001E8) Publish configuration for event READ */ 1656 __IM uint32_t RESERVED14[5]; 1657 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1658 __IM uint32_t RESERVED15[63]; 1659 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1660 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1661 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1662 __IM uint32_t RESERVED16[113]; 1663 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004D0) Error source */ 1664 __IM uint32_t MATCH; /*!< (@ 0x000004D4) Status register indicating which address had 1665 a match */ 1666 __IM uint32_t RESERVED17[10]; 1667 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIS */ 1668 __IM uint32_t RESERVED18; 1669 __IOM TWIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1670 __IM uint32_t RESERVED19[9]; 1671 __IOM TWIS_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1672 __IOM TWIS_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1673 __IM uint32_t RESERVED20[13]; 1674 __IOM uint32_t ADDRESS[2]; /*!< (@ 0x00000588) Description collection: TWI slave address n */ 1675 __IM uint32_t RESERVED21; 1676 __IOM uint32_t CONFIG; /*!< (@ 0x00000594) Configuration register for the address match 1677 mechanism */ 1678 __IM uint32_t RESERVED22[10]; 1679 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character. Character sent out in case 1680 of an over-read of the transmit buffer. */ 1681 } NRF_TWIS_Type; /*!< Size = 1476 (0x5c4) */ 1682 1683 1684 1685 /* =========================================================================================================================== */ 1686 /* ================ UARTE0_NS ================ */ 1687 /* =========================================================================================================================== */ 1688 1689 1690 /** 1691 * @brief UART with EasyDMA (UARTE0_NS) 1692 */ 1693 1694 typedef struct { /*!< (@ 0x41013000) UARTE0_NS Structure */ 1695 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start UART receiver */ 1696 __OM uint32_t TASKS_STOPRX; /*!< (@ 0x00000004) Stop UART receiver */ 1697 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start UART transmitter */ 1698 __OM uint32_t TASKS_STOPTX; /*!< (@ 0x0000000C) Stop UART transmitter */ 1699 __IM uint32_t RESERVED[7]; 1700 __OM uint32_t TASKS_FLUSHRX; /*!< (@ 0x0000002C) Flush RX FIFO into RX buffer */ 1701 __IM uint32_t RESERVED1[20]; 1702 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1703 __IOM uint32_t SUBSCRIBE_STOPRX; /*!< (@ 0x00000084) Subscribe configuration for task STOPRX */ 1704 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1705 __IOM uint32_t SUBSCRIBE_STOPTX; /*!< (@ 0x0000008C) Subscribe configuration for task STOPTX */ 1706 __IM uint32_t RESERVED2[7]; 1707 __IOM uint32_t SUBSCRIBE_FLUSHRX; /*!< (@ 0x000000AC) Subscribe configuration for task FLUSHRX */ 1708 __IM uint32_t RESERVED3[20]; 1709 __IOM uint32_t EVENTS_CTS; /*!< (@ 0x00000100) CTS is activated (set low). Clear To Send. */ 1710 __IOM uint32_t EVENTS_NCTS; /*!< (@ 0x00000104) CTS is deactivated (set high). Not Clear To Send. */ 1711 __IOM uint32_t EVENTS_RXDRDY; /*!< (@ 0x00000108) Data received in RXD (but potentially not yet 1712 transferred to Data RAM) */ 1713 __IM uint32_t RESERVED4; 1714 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) Receive buffer is filled up */ 1715 __IM uint32_t RESERVED5[2]; 1716 __IOM uint32_t EVENTS_TXDRDY; /*!< (@ 0x0000011C) Data sent from TXD */ 1717 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) Last TX byte transmitted */ 1718 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) Error detected */ 1719 __IM uint32_t RESERVED6[7]; 1720 __IOM uint32_t EVENTS_RXTO; /*!< (@ 0x00000144) Receiver timeout */ 1721 __IM uint32_t RESERVED7; 1722 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) UART receiver has started */ 1723 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) UART transmitter has started */ 1724 __IM uint32_t RESERVED8; 1725 __IOM uint32_t EVENTS_TXSTOPPED; /*!< (@ 0x00000158) Transmitter stopped */ 1726 __IM uint32_t RESERVED9[9]; 1727 __IOM uint32_t PUBLISH_CTS; /*!< (@ 0x00000180) Publish configuration for event CTS */ 1728 __IOM uint32_t PUBLISH_NCTS; /*!< (@ 0x00000184) Publish configuration for event NCTS */ 1729 __IOM uint32_t PUBLISH_RXDRDY; /*!< (@ 0x00000188) Publish configuration for event RXDRDY */ 1730 __IM uint32_t RESERVED10; 1731 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1732 __IM uint32_t RESERVED11[2]; 1733 __IOM uint32_t PUBLISH_TXDRDY; /*!< (@ 0x0000019C) Publish configuration for event TXDRDY */ 1734 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1735 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1736 __IM uint32_t RESERVED12[7]; 1737 __IOM uint32_t PUBLISH_RXTO; /*!< (@ 0x000001C4) Publish configuration for event RXTO */ 1738 __IM uint32_t RESERVED13; 1739 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1740 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1741 __IM uint32_t RESERVED14; 1742 __IOM uint32_t PUBLISH_TXSTOPPED; /*!< (@ 0x000001D8) Publish configuration for event TXSTOPPED */ 1743 __IM uint32_t RESERVED15[9]; 1744 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1745 __IM uint32_t RESERVED16[63]; 1746 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1747 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1748 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1749 __IM uint32_t RESERVED17[93]; 1750 __IOM uint32_t ERRORSRC; /*!< (@ 0x00000480) Error source */ 1751 __IM uint32_t RESERVED18[31]; 1752 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable UART */ 1753 __IM uint32_t RESERVED19; 1754 __IOM UARTE_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1755 __IM uint32_t RESERVED20[3]; 1756 __IOM uint32_t BAUDRATE; /*!< (@ 0x00000524) Baud rate. Accuracy depends on the HFCLK source 1757 selected. */ 1758 __IM uint32_t RESERVED21[3]; 1759 __IOM UARTE_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1760 __IM uint32_t RESERVED22; 1761 __IOM UARTE_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1762 __IM uint32_t RESERVED23[7]; 1763 __IOM uint32_t CONFIG; /*!< (@ 0x0000056C) Configuration of parity and hardware flow control */ 1764 } NRF_UARTE_Type; /*!< Size = 1392 (0x570) */ 1765 1766 1767 1768 /* =========================================================================================================================== */ 1769 /* ================ EGU0_NS ================ */ 1770 /* =========================================================================================================================== */ 1771 1772 1773 /** 1774 * @brief Event generator unit (EGU0_NS) 1775 */ 1776 1777 typedef struct { /*!< (@ 0x41014000) EGU0_NS Structure */ 1778 __OM uint32_t TASKS_TRIGGER[16]; /*!< (@ 0x00000000) Description collection: Trigger n for triggering 1779 the corresponding TRIGGERED[n] event */ 1780 __IM uint32_t RESERVED[16]; 1781 __IOM uint32_t SUBSCRIBE_TRIGGER[16]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 1782 for task TRIGGER[n] */ 1783 __IM uint32_t RESERVED1[16]; 1784 __IOM uint32_t EVENTS_TRIGGERED[16]; /*!< (@ 0x00000100) Description collection: Event number n generated 1785 by triggering the corresponding TRIGGER[n] 1786 task */ 1787 __IM uint32_t RESERVED2[16]; 1788 __IOM uint32_t PUBLISH_TRIGGERED[16]; /*!< (@ 0x00000180) Description collection: Publish configuration 1789 for event TRIGGERED[n] */ 1790 __IM uint32_t RESERVED3[80]; 1791 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1792 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1793 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1794 } NRF_EGU_Type; /*!< Size = 780 (0x30c) */ 1795 1796 1797 1798 /* =========================================================================================================================== */ 1799 /* ================ SWI0_NS ================ */ 1800 /* =========================================================================================================================== */ 1801 1802 1803 /** 1804 * @brief Software interrupt 0 (SWI0_NS) 1805 */ 1806 1807 typedef struct { /*!< (@ 0x4101A000) SWI0_NS Structure */ 1808 __IM uint32_t UNUSED; /*!< (@ 0x00000000) Unused. */ 1809 } NRF_SWI_Type; /*!< Size = 4 (0x4) */ 1810 1811 1812 1813 /* =========================================================================================================================== */ 1814 /* ================ APPMUTEX_NS ================ */ 1815 /* =========================================================================================================================== */ 1816 1817 1818 /** 1819 * @brief MUTEX 0 (APPMUTEX_NS) 1820 */ 1821 1822 typedef struct { /*!< (@ 0x40030000) APPMUTEX_NS Structure */ 1823 __IM uint32_t RESERVED[256]; 1824 __IOM uint32_t MUTEX[16]; /*!< (@ 0x00000400) Description collection: Mutex register */ 1825 } NRF_MUTEX_Type; /*!< Size = 1088 (0x440) */ 1826 1827 1828 1829 /* =========================================================================================================================== */ 1830 /* ================ ACL_NS ================ */ 1831 /* =========================================================================================================================== */ 1832 1833 1834 /** 1835 * @brief Access control lists (ACL_NS) 1836 */ 1837 1838 typedef struct { /*!< (@ 0x41080000) ACL_NS Structure */ 1839 __IM uint32_t RESERVED[512]; 1840 __IOM ACL_ACL_Type ACL[8]; /*!< (@ 0x00000800) Unspecified */ 1841 } NRF_ACL_Type; /*!< Size = 2176 (0x880) */ 1842 1843 1844 1845 /* =========================================================================================================================== */ 1846 /* ================ NVMC_NS ================ */ 1847 /* =========================================================================================================================== */ 1848 1849 1850 /** 1851 * @brief Non-volatile memory controller (NVMC_NS) 1852 */ 1853 1854 typedef struct { /*!< (@ 0x41080000) NVMC_NS Structure */ 1855 __IM uint32_t RESERVED[256]; 1856 __IM uint32_t READY; /*!< (@ 0x00000400) Ready flag */ 1857 __IM uint32_t RESERVED1; 1858 __IM uint32_t READYNEXT; /*!< (@ 0x00000408) Ready flag */ 1859 __IM uint32_t RESERVED2[62]; 1860 __IOM uint32_t CONFIG; /*!< (@ 0x00000504) Configuration register */ 1861 __IM uint32_t RESERVED3; 1862 __OM uint32_t ERASEALL; /*!< (@ 0x0000050C) Register for erasing all non-volatile user memory */ 1863 __IM uint32_t RESERVED4[3]; 1864 __IOM uint32_t ERASEPAGEPARTIALCFG; /*!< (@ 0x0000051C) Register for partial erase configuration */ 1865 __IM uint32_t RESERVED5[8]; 1866 __IOM uint32_t ICACHECNF; /*!< (@ 0x00000540) I-code cache configuration register */ 1867 __IM uint32_t RESERVED6; 1868 __IOM uint32_t IHIT; /*!< (@ 0x00000548) I-code cache hit counter */ 1869 __IOM uint32_t IMISS; /*!< (@ 0x0000054C) I-code cache miss counter */ 1870 } NRF_NVMC_Type; /*!< Size = 1360 (0x550) */ 1871 1872 1873 1874 /* =========================================================================================================================== */ 1875 /* ================ VMC_NS ================ */ 1876 /* =========================================================================================================================== */ 1877 1878 1879 /** 1880 * @brief Volatile Memory controller (VMC_NS) 1881 */ 1882 1883 typedef struct { /*!< (@ 0x41081000) VMC_NS Structure */ 1884 __IM uint32_t RESERVED[384]; 1885 __IOM VMC_RAM_Type RAM[4]; /*!< (@ 0x00000600) Unspecified */ 1886 } NRF_VMC_Type; /*!< Size = 1600 (0x640) */ 1887 1888 1889 1890 /* =========================================================================================================================== */ 1891 /* ================ P0_NS ================ */ 1892 /* =========================================================================================================================== */ 1893 1894 1895 /** 1896 * @brief GPIO Port 0 (P0_NS) 1897 */ 1898 1899 typedef struct { /*!< (@ 0x418C0500) P0_NS Structure */ 1900 __IM uint32_t RESERVED; 1901 __IOM uint32_t OUT; /*!< (@ 0x00000004) Write GPIO port */ 1902 __IOM uint32_t OUTSET; /*!< (@ 0x00000008) Set individual bits in GPIO port */ 1903 __IOM uint32_t OUTCLR; /*!< (@ 0x0000000C) Clear individual bits in GPIO port */ 1904 __IM uint32_t IN; /*!< (@ 0x00000010) Read GPIO port */ 1905 __IOM uint32_t DIR; /*!< (@ 0x00000014) Direction of GPIO pins */ 1906 __IOM uint32_t DIRSET; /*!< (@ 0x00000018) DIR set register */ 1907 __IOM uint32_t DIRCLR; /*!< (@ 0x0000001C) DIR clear register */ 1908 __IOM uint32_t LATCH; /*!< (@ 0x00000020) Latch register indicating what GPIO pins that 1909 have met the criteria set in the PIN_CNF[n].SENSE 1910 registers */ 1911 __IOM uint32_t DETECTMODE; /*!< (@ 0x00000024) Select between default DETECT signal behavior 1912 and LDETECT mode (For non-secure pin only) */ 1913 __IOM uint32_t DETECTMODE_SEC; /*!< (@ 0x00000028) Select between default DETECT signal behavior 1914 and LDETECT mode (For secure pin only) */ 1915 __IM uint32_t RESERVED1[117]; 1916 __IOM uint32_t PIN_CNF[32]; /*!< (@ 0x00000200) Description collection: Configuration of GPIO 1917 pins */ 1918 } NRF_GPIO_Type; /*!< Size = 640 (0x280) */ 1919 1920 1921 /** @} */ /* End of group Device_Peripheral_peripherals */ 1922 1923 1924 /* =========================================================================================================================== */ 1925 /* ================ Device Specific Peripheral Address Map ================ */ 1926 /* =========================================================================================================================== */ 1927 1928 1929 /** @addtogroup Device_Peripheral_peripheralAddr 1930 * @{ 1931 */ 1932 1933 #define NRF_FICR_NS_BASE 0x01FF0000UL 1934 #define NRF_UICR_NS_BASE 0x01FF8000UL 1935 #define NRF_CTI_NS_BASE 0xE0042000UL 1936 #define NRF_DCNF_NS_BASE 0x41000000UL 1937 #define NRF_VREQCTRL_NS_BASE 0x41004000UL 1938 #define NRF_CLOCK_NS_BASE 0x41005000UL 1939 #define NRF_POWER_NS_BASE 0x41005000UL 1940 #define NRF_RESET_NS_BASE 0x41005000UL 1941 #define NRF_CTRLAP_NS_BASE 0x41006000UL 1942 #define NRF_RADIO_NS_BASE 0x41008000UL 1943 #define NRF_RNG_NS_BASE 0x41009000UL 1944 #define NRF_GPIOTE_NS_BASE 0x4100A000UL 1945 #define NRF_WDT_NS_BASE 0x4100B000UL 1946 #define NRF_TIMER0_NS_BASE 0x4100C000UL 1947 #define NRF_ECB_NS_BASE 0x4100D000UL 1948 #define NRF_AAR_NS_BASE 0x4100E000UL 1949 #define NRF_CCM_NS_BASE 0x4100E000UL 1950 #define NRF_DPPIC_NS_BASE 0x4100F000UL 1951 #define NRF_TEMP_NS_BASE 0x41010000UL 1952 #define NRF_RTC0_NS_BASE 0x41011000UL 1953 #define NRF_IPC_NS_BASE 0x41012000UL 1954 #define NRF_SPIM0_NS_BASE 0x41013000UL 1955 #define NRF_SPIS0_NS_BASE 0x41013000UL 1956 #define NRF_TWIM0_NS_BASE 0x41013000UL 1957 #define NRF_TWIS0_NS_BASE 0x41013000UL 1958 #define NRF_UARTE0_NS_BASE 0x41013000UL 1959 #define NRF_EGU0_NS_BASE 0x41014000UL 1960 #define NRF_RTC1_NS_BASE 0x41016000UL 1961 #define NRF_TIMER1_NS_BASE 0x41018000UL 1962 #define NRF_TIMER2_NS_BASE 0x41019000UL 1963 #define NRF_SWI0_NS_BASE 0x4101A000UL 1964 #define NRF_SWI1_NS_BASE 0x4101B000UL 1965 #define NRF_SWI2_NS_BASE 0x4101C000UL 1966 #define NRF_SWI3_NS_BASE 0x4101D000UL 1967 #define NRF_APPMUTEX_NS_BASE 0x40030000UL 1968 #define NRF_APPMUTEX_S_BASE 0x50030000UL 1969 #define NRF_ACL_NS_BASE 0x41080000UL 1970 #define NRF_NVMC_NS_BASE 0x41080000UL 1971 #define NRF_VMC_NS_BASE 0x41081000UL 1972 #define NRF_P0_NS_BASE 0x418C0500UL 1973 #define NRF_P1_NS_BASE 0x418C0800UL 1974 1975 /** @} */ /* End of group Device_Peripheral_peripheralAddr */ 1976 1977 1978 /* =========================================================================================================================== */ 1979 /* ================ Peripheral declaration ================ */ 1980 /* =========================================================================================================================== */ 1981 1982 1983 /** @addtogroup Device_Peripheral_declaration 1984 * @{ 1985 */ 1986 1987 #define NRF_FICR_NS ((NRF_FICR_Type*) NRF_FICR_NS_BASE) 1988 #define NRF_UICR_NS ((NRF_UICR_Type*) NRF_UICR_NS_BASE) 1989 #define NRF_CTI_NS ((NRF_CTI_Type*) NRF_CTI_NS_BASE) 1990 #define NRF_DCNF_NS ((NRF_DCNF_Type*) NRF_DCNF_NS_BASE) 1991 #define NRF_VREQCTRL_NS ((NRF_VREQCTRL_Type*) NRF_VREQCTRL_NS_BASE) 1992 #define NRF_CLOCK_NS ((NRF_CLOCK_Type*) NRF_CLOCK_NS_BASE) 1993 #define NRF_POWER_NS ((NRF_POWER_Type*) NRF_POWER_NS_BASE) 1994 #define NRF_RESET_NS ((NRF_RESET_Type*) NRF_RESET_NS_BASE) 1995 #define NRF_CTRLAP_NS ((NRF_CTRLAPPERI_Type*) NRF_CTRLAP_NS_BASE) 1996 #define NRF_RADIO_NS ((NRF_RADIO_Type*) NRF_RADIO_NS_BASE) 1997 #define NRF_RNG_NS ((NRF_RNG_Type*) NRF_RNG_NS_BASE) 1998 #define NRF_GPIOTE_NS ((NRF_GPIOTE_Type*) NRF_GPIOTE_NS_BASE) 1999 #define NRF_WDT_NS ((NRF_WDT_Type*) NRF_WDT_NS_BASE) 2000 #define NRF_TIMER0_NS ((NRF_TIMER_Type*) NRF_TIMER0_NS_BASE) 2001 #define NRF_ECB_NS ((NRF_ECB_Type*) NRF_ECB_NS_BASE) 2002 #define NRF_AAR_NS ((NRF_AAR_Type*) NRF_AAR_NS_BASE) 2003 #define NRF_CCM_NS ((NRF_CCM_Type*) NRF_CCM_NS_BASE) 2004 #define NRF_DPPIC_NS ((NRF_DPPIC_Type*) NRF_DPPIC_NS_BASE) 2005 #define NRF_TEMP_NS ((NRF_TEMP_Type*) NRF_TEMP_NS_BASE) 2006 #define NRF_RTC0_NS ((NRF_RTC_Type*) NRF_RTC0_NS_BASE) 2007 #define NRF_IPC_NS ((NRF_IPC_Type*) NRF_IPC_NS_BASE) 2008 #define NRF_SPIM0_NS ((NRF_SPIM_Type*) NRF_SPIM0_NS_BASE) 2009 #define NRF_SPIS0_NS ((NRF_SPIS_Type*) NRF_SPIS0_NS_BASE) 2010 #define NRF_TWIM0_NS ((NRF_TWIM_Type*) NRF_TWIM0_NS_BASE) 2011 #define NRF_TWIS0_NS ((NRF_TWIS_Type*) NRF_TWIS0_NS_BASE) 2012 #define NRF_UARTE0_NS ((NRF_UARTE_Type*) NRF_UARTE0_NS_BASE) 2013 #define NRF_EGU0_NS ((NRF_EGU_Type*) NRF_EGU0_NS_BASE) 2014 #define NRF_RTC1_NS ((NRF_RTC_Type*) NRF_RTC1_NS_BASE) 2015 #define NRF_TIMER1_NS ((NRF_TIMER_Type*) NRF_TIMER1_NS_BASE) 2016 #define NRF_TIMER2_NS ((NRF_TIMER_Type*) NRF_TIMER2_NS_BASE) 2017 #define NRF_SWI0_NS ((NRF_SWI_Type*) NRF_SWI0_NS_BASE) 2018 #define NRF_SWI1_NS ((NRF_SWI_Type*) NRF_SWI1_NS_BASE) 2019 #define NRF_SWI2_NS ((NRF_SWI_Type*) NRF_SWI2_NS_BASE) 2020 #define NRF_SWI3_NS ((NRF_SWI_Type*) NRF_SWI3_NS_BASE) 2021 #define NRF_APPMUTEX_NS ((NRF_MUTEX_Type*) NRF_APPMUTEX_NS_BASE) 2022 #define NRF_APPMUTEX_S ((NRF_MUTEX_Type*) NRF_APPMUTEX_S_BASE) 2023 #define NRF_ACL_NS ((NRF_ACL_Type*) NRF_ACL_NS_BASE) 2024 #define NRF_NVMC_NS ((NRF_NVMC_Type*) NRF_NVMC_NS_BASE) 2025 #define NRF_VMC_NS ((NRF_VMC_Type*) NRF_VMC_NS_BASE) 2026 #define NRF_P0_NS ((NRF_GPIO_Type*) NRF_P0_NS_BASE) 2027 #define NRF_P1_NS ((NRF_GPIO_Type*) NRF_P1_NS_BASE) 2028 2029 /** @} */ /* End of group Device_Peripheral_declaration */ 2030 2031 2032 #ifdef __cplusplus 2033 } 2034 #endif 2035 2036 #endif /* NRF5340_NETWORK_H */ 2037 2038 2039 /** @} */ /* End of group nrf5340_network */ 2040 2041 /** @} */ /* End of group Nordic Semiconductor */ 2042