amiro-lld / drivers / DW1000 / v1 / alld_DW1000_regs.h @ 9466e34d
History | View | Annotate | Download (79.928 KB)
| 1 | 69a601a5 | Cung Sang | /*! ------------------------------------------------------------------------------------------------------------------
|
|---|---|---|---|
| 2 | * @file deca_regs.h
|
||
| 3 | * @brief DW1000 Register Definitions
|
||
| 4 | * This file supports assembler and C development for DW1000 enabled devices
|
||
| 5 | *
|
||
| 6 | * @attention
|
||
| 7 | *
|
||
| 8 | * Copyright 2013 (c) Decawave Ltd, Dublin, Ireland.
|
||
| 9 | *
|
||
| 10 | * All rights reserved.
|
||
| 11 | *
|
||
| 12 | */
|
||
| 13 | |||
| 14 | 9466e34d | Thomas Schöpping | #ifndef DECA_REGS_H
|
| 15 | #define DECA_REGS_H
|
||
| 16 | 69a601a5 | Cung Sang | |
| 17 | #ifdef __cplusplus
|
||
| 18 | extern "C" { |
||
| 19 | #endif
|
||
| 20 | |||
| 21 | #include <amiro-lld.h> |
||
| 22 | |||
| 23 | /****************************************************************************//** |
||
| 24 | * @brief Bit definitions for register DEV_ID
|
||
| 25 | **/
|
||
| 26 | #define DEV_ID_ID 0x00 /* Device ID register, includes revision info (0xDECA0130) */ |
||
| 27 | #define DEV_ID_LEN (4) |
||
| 28 | /* mask and shift */
|
||
| 29 | #define DEV_ID_REV_MASK 0x0000000FUL /* Revision */ |
||
| 30 | #define DEV_ID_VER_MASK 0x000000F0UL /* Version */ |
||
| 31 | #define DEV_ID_MODEL_MASK 0x0000FF00UL /* The MODEL identifies the device. The DW1000 is device type 0x01 */ |
||
| 32 | #define DEV_ID_RIDTAG_MASK 0xFFFF0000UL /* Register Identification Tag 0XDECA */ |
||
| 33 | |||
| 34 | /****************************************************************************//** |
||
| 35 | * @brief Bit definitions for register EUI_64
|
||
| 36 | **/
|
||
| 37 | #define EUI_64_ID 0x01 /* IEEE Extended Unique Identifier (63:0) */ |
||
| 38 | #define EUI_64_OFFSET 0x00 |
||
| 39 | #define EUI_64_LEN (8) |
||
| 40 | |||
| 41 | /****************************************************************************//** |
||
| 42 | * @brief Bit definitions for register PANADR
|
||
| 43 | **/
|
||
| 44 | #define PANADR_ID 0x03 /* PAN ID (31:16) and Short Address (15:0) */ |
||
| 45 | #define PANADR_LEN (4) |
||
| 46 | /*mask and shift */
|
||
| 47 | #define PANADR_SHORT_ADDR_OFFSET 0 /* In bytes */ |
||
| 48 | #define PANADR_SHORT_ADDR_MASK 0x0000FFFFUL /* Short Address */ |
||
| 49 | #define PANADR_PAN_ID_OFFSET 2 /* In bytes */ |
||
| 50 | #define PANADR_PAN_ID_MASK 0xFFFF00F0UL /* PAN Identifier */ |
||
| 51 | |||
| 52 | /****************************************************************************//** |
||
| 53 | * @brief Bit definitions for register 0x05
|
||
| 54 | **/
|
||
| 55 | #define REG_05_ID_RESERVED 0x05 |
||
| 56 | |||
| 57 | /****************************************************************************//** |
||
| 58 | * @brief Bit definitions for register SYS_CFG
|
||
| 59 | **/
|
||
| 60 | #define SYS_CFG_ID 0x04 /* System Configuration (31:0) */ |
||
| 61 | #define SYS_CFG_LEN (4) |
||
| 62 | /*mask and shift */
|
||
| 63 | #define SYS_CFG_MASK 0xF047FFFFUL /* access mask to SYS_CFG_ID */ |
||
| 64 | #define SYS_CFG_FF_ALL_EN 0x000001FEUL /* Frame filtering options all frames allowed */ |
||
| 65 | /*offset 0 */
|
||
| 66 | #define SYS_CFG_FFE 0x00000001UL /* Frame Filtering Enable. This bit enables the frame filtering functionality */ |
||
| 67 | #define SYS_CFG_FFBC 0x00000002UL /* Frame Filtering Behave as a Co-ordinator */ |
||
| 68 | #define SYS_CFG_FFAB 0x00000004UL /* Frame Filtering Allow Beacon frame reception */ |
||
| 69 | #define SYS_CFG_FFAD 0x00000008UL /* Frame Filtering Allow Data frame reception */ |
||
| 70 | #define SYS_CFG_FFAA 0x00000010UL /* Frame Filtering Allow Acknowledgment frame reception */ |
||
| 71 | #define SYS_CFG_FFAM 0x00000020UL /* Frame Filtering Allow MAC command frame reception */ |
||
| 72 | #define SYS_CFG_FFAR 0x00000040UL /* Frame Filtering Allow Reserved frame types */ |
||
| 73 | #define SYS_CFG_FFA4 0x00000080UL /* Frame Filtering Allow frames with frame type field of 4, (binary 100) */ |
||
| 74 | /*offset 8 */
|
||
| 75 | #define SYS_CFG_FFA5 0x00000100UL /* Frame Filtering Allow frames with frame type field of 5, (binary 101) */ |
||
| 76 | #define SYS_CFG_HIRQ_POL 0x00000200UL /* Host interrupt polarity */ |
||
| 77 | #define SYS_CFG_SPI_EDGE 0x00000400UL /* SPI data launch edge */ |
||
| 78 | #define SYS_CFG_DIS_FCE 0x00000800UL /* Disable frame check error handling */ |
||
| 79 | #define SYS_CFG_DIS_DRXB 0x00001000UL /* Disable Double RX Buffer */ |
||
| 80 | #define SYS_CFG_DIS_PHE 0x00002000UL /* Disable receiver abort on PHR error */ |
||
| 81 | #define SYS_CFG_DIS_RSDE 0x00004000UL /* Disable Receiver Abort on RSD error */ |
||
| 82 | #define SYS_CFG_FCS_INIT2F 0x00008000UL /* initial seed value for the FCS generation and checking function */ |
||
| 83 | /*offset 16 */
|
||
| 84 | #define SYS_CFG_PHR_MODE_SHFT 16 |
||
| 85 | #define SYS_CFG_PHR_MODE_00 0x00000000UL /* Standard Frame mode */ |
||
| 86 | #define SYS_CFG_PHR_MODE_11 0x00030000UL /* Long Frames mode */ |
||
| 87 | #define SYS_CFG_DIS_STXP 0x00040000UL /* Disable Smart TX Power control */ |
||
| 88 | #define SYS_CFG_RXM110K 0x00400000UL /* Receiver Mode 110 kbps data rate */ |
||
| 89 | /*offset 24 */
|
||
| 90 | #define SYS_CFG_RXWTOE 0x10000000UL /* Receive Wait Timeout Enable. */ |
||
| 91 | #define SYS_CFG_RXAUTR 0x20000000UL /* Receiver Auto-Re-enable. This bit is used to cause the receiver to re-enable automatically */ |
||
| 92 | #define SYS_CFG_AUTOACK 0x40000000UL /* Automatic Acknowledgement Enable */ |
||
| 93 | #define SYS_CFG_AACKPEND 0x80000000UL /* Automatic Acknowledgement Pending bit control */ |
||
| 94 | |||
| 95 | |||
| 96 | /****************************************************************************//** |
||
| 97 | * @brief Bit definitions for register SYS_TIME
|
||
| 98 | **/
|
||
| 99 | #define SYS_TIME_ID 0x06 /* System Time Counter (40-bit) */ |
||
| 100 | #define SYS_TIME_OFFSET 0x00 |
||
| 101 | #define SYS_TIME_LEN (5) /* Note 40 bit register */ |
||
| 102 | |||
| 103 | |||
| 104 | /****************************************************************************//** |
||
| 105 | * @brief Bit definitions for register 0x07
|
||
| 106 | **/
|
||
| 107 | #define REG_07_ID_RESERVED 0x07 |
||
| 108 | |||
| 109 | /****************************************************************************//** |
||
| 110 | * @brief Bit definitions for register TX_FCTRL
|
||
| 111 | **/
|
||
| 112 | #define TX_FCTRL_ID 0x08 /* Transmit Frame Control */ |
||
| 113 | #define TX_FCTRL_LEN (5) /* Note 40 bit register */ |
||
| 114 | /*masks (low 32 bit) */
|
||
| 115 | #define TX_FCTRL_TFLEN_MASK 0x0000007FUL /* bit mask to access Transmit Frame Length */ |
||
| 116 | #define TX_FCTRL_TFLE_MASK 0x00000380UL /* bit mask to access Transmit Frame Length Extension */ |
||
| 117 | #define TX_FCTRL_FLE_MASK 0x000003FFUL /* bit mask to access Frame Length field */ |
||
| 118 | #define TX_FCTRL_TXBR_MASK 0x00006000UL /* bit mask to access Transmit Bit Rate */ |
||
| 119 | #define TX_FCTRL_TXPRF_MASK 0x00030000UL /* bit mask to access Transmit Pulse Repetition Frequency */ |
||
| 120 | #define TX_FCTRL_TXPSR_MASK 0x000C0000UL /* bit mask to access Transmit Preamble Symbol Repetitions (PSR). */ |
||
| 121 | #define TX_FCTRL_PE_MASK 0x00300000UL /* bit mask to access Preamble Extension */ |
||
| 122 | #define TX_FCTRL_TXPSR_PE_MASK 0x003C0000UL /* bit mask to access Transmit Preamble Symbol Repetitions (PSR). */ |
||
| 123 | #define TX_FCTRL_SAFE_MASK_32 0xFFFFE3FFUL /* FSCTRL has fields which should always be writen zero */ |
||
| 124 | /*offset 0 */
|
||
| 125 | /*offset 8 */
|
||
| 126 | #define TX_FCTRL_TXBR_110k 0x00000000UL /* Transmit Bit Rate = 110k */ |
||
| 127 | #define TX_FCTRL_TXBR_850k 0x00002000UL /* Transmit Bit Rate = 850k */ |
||
| 128 | #define TX_FCTRL_TXBR_6M 0x00004000UL /* Transmit Bit Rate = 6.8M */ |
||
| 129 | #define TX_FCTRL_TXBR_SHFT (13) /* shift to access Data Rate field */ |
||
| 130 | #define TX_FCTRL_TR 0x00008000UL /* Transmit Ranging enable */ |
||
| 131 | #define TX_FCTRL_TR_SHFT (15) /* shift to access Ranging bit */ |
||
| 132 | /*offset 16 */
|
||
| 133 | #define TX_FCTRL_TXPRF_SHFT (16) /* shift to access Pulse Repetition Frequency field */ |
||
| 134 | #define TX_FCTRL_TXPRF_4M 0x00000000UL /* Transmit Pulse Repetition Frequency = 4 Mhz */ |
||
| 135 | #define TX_FCTRL_TXPRF_16M 0x00010000UL /* Transmit Pulse Repetition Frequency = 16 Mhz */ |
||
| 136 | #define TX_FCTRL_TXPRF_64M 0x00020000UL /* Transmit Pulse Repetition Frequency = 64 Mhz */ |
||
| 137 | #define TX_FCTRL_TXPSR_SHFT (18) /* shift to access Preamble Symbol Repetitions field */ |
||
| 138 | #define TX_FCTRL_PE_SHFT (20) /* shift to access Preamble length Extension to allow specification of non-standard values */ |
||
| 139 | #define TX_FCTRL_TXPSR_PE_16 0x00000000UL /* bit mask to access Preamble Extension = 16 */ |
||
| 140 | #define TX_FCTRL_TXPSR_PE_64 0x00040000UL /* bit mask to access Preamble Extension = 64 */ |
||
| 141 | #define TX_FCTRL_TXPSR_PE_128 0x00140000UL /* bit mask to access Preamble Extension = 128 */ |
||
| 142 | #define TX_FCTRL_TXPSR_PE_256 0x00240000UL /* bit mask to access Preamble Extension = 256 */ |
||
| 143 | #define TX_FCTRL_TXPSR_PE_512 0x00340000UL /* bit mask to access Preamble Extension = 512 */ |
||
| 144 | #define TX_FCTRL_TXPSR_PE_1024 0x00080000UL /* bit mask to access Preamble Extension = 1024 */ |
||
| 145 | #define TX_FCTRL_TXPSR_PE_1536 0x00180000UL /* bit mask to access Preamble Extension = 1536 */ |
||
| 146 | #define TX_FCTRL_TXPSR_PE_2048 0x00280000UL /* bit mask to access Preamble Extension = 2048 */ |
||
| 147 | #define TX_FCTRL_TXPSR_PE_4096 0x000C0000UL /* bit mask to access Preamble Extension = 4096 */ |
||
| 148 | /*offset 22 */
|
||
| 149 | #define TX_FCTRL_TXBOFFS_SHFT (22) /* Shift to access transmit buffer index offset */ |
||
| 150 | #define TX_FCTRL_TXBOFFS_MASK 0xFFC00000UL /* bit mask to access Transmit buffer index offset 10-bit field */ |
||
| 151 | /*offset 32 */
|
||
| 152 | #define TX_FCTRL_IFSDELAY_MASK 0xFF00000000ULL /* bit mask to access Inter-Frame Spacing field */ |
||
| 153 | |||
| 154 | /****************************************************************************//** |
||
| 155 | * @brief Bit definitions for register TX_BUFFER
|
||
| 156 | **/
|
||
| 157 | #define TX_BUFFER_ID 0x09 /* Transmit Data Buffer */ |
||
| 158 | #define TX_BUFFER_LEN (1024) |
||
| 159 | |||
| 160 | /****************************************************************************//** |
||
| 161 | * @brief Bit definitions for register DX_TIME
|
||
| 162 | **/
|
||
| 163 | #define DX_TIME_ID 0x0A /* Delayed Send or Receive Time (40-bit) */ |
||
| 164 | #define DX_TIME_LEN (5) |
||
| 165 | |||
| 166 | /****************************************************************************//** |
||
| 167 | * @brief Bit definitions for register 0x08
|
||
| 168 | **/
|
||
| 169 | #define REG_0B_ID_RESERVED 0x0B |
||
| 170 | |||
| 171 | /****************************************************************************//** |
||
| 172 | * @brief Bit definitions for register RX_FWTO
|
||
| 173 | **/
|
||
| 174 | #define RX_FWTO_ID 0x0C /* Receive Frame Wait Timeout Period */ |
||
| 175 | #define RX_FWTO_OFFSET 0x00 |
||
| 176 | #define RX_FWTO_LEN (2) /* doc bug*/ |
||
| 177 | /*mask and shift */
|
||
| 178 | #define RX_FWTO_MASK 0xFFFF |
||
| 179 | |||
| 180 | /****************************************************************************//** |
||
| 181 | * @brief Bit definitions for register SYS_CTRL
|
||
| 182 | **/
|
||
| 183 | #define SYS_CTRL_ID 0x0D /* System Control Register */ |
||
| 184 | #define SYS_CTRL_OFFSET 0x00 |
||
| 185 | #define SYS_CTRL_LEN (4) |
||
| 186 | /*masks */
|
||
| 187 | #define SYS_CTRL_MASK_32 0x010003CFUL /* System Control Register access mask (all unused fields should always be writen as zero) */ |
||
| 188 | /*offset 0 */
|
||
| 189 | #define SYS_CTRL_SFCST 0x00000001UL /* Suppress Auto-FCS Transmission (on this frame) */ |
||
| 190 | #define SYS_CTRL_TXSTRT 0x00000002UL /* Start Transmitting Now */ |
||
| 191 | #define SYS_CTRL_TXDLYS 0x00000004UL /* Transmitter Delayed Sending (initiates sending when SYS_TIME == TXD_TIME */ |
||
| 192 | #define SYS_CTRL_CANSFCS 0x00000008UL /* Cancel Suppression of auto-FCS transmission (on the current frame) */ |
||
| 193 | #define SYS_CTRL_TRXOFF 0x00000040UL /* Transceiver Off. Force Transciever OFF abort TX or RX immediately */ |
||
| 194 | #define SYS_CTRL_WAIT4RESP 0x00000080UL /* Wait for Response */ |
||
| 195 | /*offset 8 */
|
||
| 196 | #define SYS_CTRL_RXENAB 0x00000100UL /* Enable Receiver Now */ |
||
| 197 | #define SYS_CTRL_RXDLYE 0x00000200UL /* Receiver Delayed Enable (Enables Receiver when SY_TIME[0x??] == RXD_TIME[0x??] CHECK comment*/ |
||
| 198 | /*offset 16 */
|
||
| 199 | /*offset 24 */
|
||
| 200 | #define SYS_CTRL_HSRBTOGGLE 0x01000000UL /* Host side receiver buffer pointer toggle - toggles 0/1 host side data set pointer */ |
||
| 201 | #define SYS_CTRL_HRBT (SYS_CTRL_HSRBTOGGLE)
|
||
| 202 | #define SYS_CTRL_HRBT_OFFSET (3) |
||
| 203 | |||
| 204 | /****************************************************************************//** |
||
| 205 | * @brief Bit definitions for register SYS_MASK
|
||
| 206 | **/
|
||
| 207 | #define SYS_MASK_ID 0x0E /* System Event Mask Register */ |
||
| 208 | #define SYS_MASK_LEN (4) |
||
| 209 | /*masks */
|
||
| 210 | #define SYS_MASK_MASK_32 0x3FF7FFFEUL /* System Event Mask Register access mask (a |