amiro-lld / include / alld_dw1000_regs.h @ ef078306
History | View | Annotate | Download (80.022 KB)
| 1 |
/*! ------------------------------------------------------------------------------------------------------------------
|
|---|---|
| 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 |
#ifndef _DECA_REGS_H_
|
| 15 |
#define _DECA_REGS_H_
|
| 16 |
|
| 17 |
#ifdef __cplusplus
|
| 18 |
extern "C" { |
| 19 |
#endif
|
| 20 |
|
| 21 |
#include <amiro-lld.h> |
| 22 |
#if defined(AMIROLLD_CFG_USE_DW1000) || defined(__DOXYGEN__)
|
| 23 |
|
| 24 |
/****************************************************************************//** |
| 25 |
* @brief Bit definitions for register DEV_ID
|
| 26 |
**/
|
| 27 |
#define DEV_ID_ID 0x00 /* Device ID register, includes revision info (0xDECA0130) */ |
| 28 |
#define DEV_ID_LEN (4) |
| 29 |
/* mask and shift */
|
| 30 |
#define DEV_ID_REV_MASK 0x0000000FUL /* Revision */ |
| 31 |
#define DEV_ID_VER_MASK 0x000000F0UL /* Version */ |
| 32 |
#define DEV_ID_MODEL_MASK 0x0000FF00UL /* The MODEL identifies the device. The DW1000 is device type 0x01 */ |
| 33 |
#define DEV_ID_RIDTAG_MASK 0xFFFF0000UL /* Register Identification Tag 0XDECA */ |
| 34 |
|
| 35 |
/****************************************************************************//** |
| 36 |
* @brief Bit definitions for register EUI_64
|
| 37 |
**/
|
| 38 |
#define EUI_64_ID 0x01 /* IEEE Extended Unique Identifier (63:0) */ |
| 39 |
#define EUI_64_OFFSET 0x00 |
| 40 |
#define EUI_64_LEN (8) |
| 41 |
|
| 42 |
/****************************************************************************//** |
| 43 |
* @brief Bit definitions for register PANADR
|
| 44 |
**/
|
| 45 |
#define PANADR_ID 0x03 /* PAN ID (31:16) and Short Address (15:0) */ |
| 46 |
#define PANADR_LEN (4) |
| 47 |
/*mask and shift */
|
| 48 |
#define PANADR_SHORT_ADDR_OFFSET 0 /* In bytes */ |
| 49 |
#define PANADR_SHORT_ADDR_MASK 0x0000FFFFUL /* Short Address */ |
| 50 |
#define PANADR_PAN_ID_OFFSET 2 /* In bytes */ |
| 51 |
#define PANADR_PAN_ID_MASK 0xFFFF00F0UL /* PAN Identifier */ |
| 52 |
|
| 53 |
/****************************************************************************//** |
| 54 |
* @brief Bit definitions for register 0x05
|
| 55 |
**/
|
| 56 |
#define REG_05_ID_RESERVED 0x05 |
| 57 |
|
| 58 |
/****************************************************************************//** |
| 59 |
* @brief Bit definitions for register SYS_CFG
|
| 60 |
**/
|
| 61 |
#define SYS_CFG_ID 0x04 /* System Configuration (31:0) */ |
| 62 |
#define SYS_CFG_LEN (4) |
| 63 |
/*mask and shift */
|
| 64 |
#define SYS_CFG_MASK 0xF047FFFFUL /* access mask to SYS_CFG_ID */ |
| 65 |
#define SYS_CFG_FF_ALL_EN 0x000001FEUL /* Frame filtering options all frames allowed */ |
| 66 |
/*offset 0 */
|
| 67 |
#define SYS_CFG_FFE 0x00000001UL /* Frame Filtering Enable. This bit enables the frame filtering functionality */ |
| 68 |
#define SYS_CFG_FFBC 0x00000002UL /* Frame Filtering Behave as a Co-ordinator */ |
| 69 |
#define SYS_CFG_FFAB 0x00000004UL /* Frame Filtering Allow Beacon frame reception */ |
| 70 |
#define SYS_CFG_FFAD 0x00000008UL /* Frame Filtering Allow Data frame reception */ |
| 71 |
#define SYS_CFG_FFAA 0x00000010UL /* Frame Filtering Allow Acknowledgment frame reception */ |
| 72 |
#define SYS_CFG_FFAM 0x00000020UL /* Frame Filtering Allow MAC command frame reception */ |
| 73 |
#define SYS_CFG_FFAR 0x00000040UL /* Frame Filtering Allow Reserved frame types */ |
| 74 |
#define SYS_CFG_FFA4 0x00000080UL /* Frame Filtering Allow frames with frame type field of 4, (binary 100) */ |
| 75 |
/*offset 8 */
|
| 76 |
#define SYS_CFG_FFA5 0x00000100UL /* Frame Filtering Allow frames with frame type field of 5, (binary 101) */ |
| 77 |
#define SYS_CFG_HIRQ_POL 0x00000200UL /* Host interrupt polarity */ |
| 78 |
#define SYS_CFG_SPI_EDGE 0x00000400UL /* SPI data launch edge */ |
| 79 |
#define SYS_CFG_DIS_FCE 0x00000800UL /* Disable frame check error handling */ |
| 80 |
#define SYS_CFG_DIS_DRXB 0x00001000UL /* Disable Double RX Buffer */ |
| 81 |
#define SYS_CFG_DIS_PHE 0x00002000UL /* Disable receiver abort on PHR error */ |
| 82 |
#define SYS_CFG_DIS_RSDE 0x00004000UL /* Disable Receiver Abort on RSD error */ |
| 83 |
#define SYS_CFG_FCS_INIT2F 0x00008000UL /* initial seed value for the FCS generation and checking function */ |
| 84 |
/*offset 16 */
|
| 85 |
#define SYS_CFG_PHR_MODE_SHFT 16 |
| 86 |
#define SYS_CFG_PHR_MODE_00 0x00000000UL /* Standard Frame mode */ |
| 87 |
#define SYS_CFG_PHR_MODE_11 0x00030000UL /* Long Frames mode */ |
| 88 |
#define SYS_CFG_DIS_STXP 0x00040000UL /* Disable Smart TX Power control */ |
| 89 |
#define SYS_CFG_RXM110K 0x00400000UL /* Receiver Mode 110 kbps data rate */ |
| 90 |
/*offset 24 */
|
| 91 |
#define SYS_CFG_RXWTOE 0x10000000UL /* Receive Wait Timeout Enable. */ |
| 92 |
#define SYS_CFG_RXAUTR 0x20000000UL /* Receiver Auto-Re-enable. This bit is used to cause the receiver to re-enable automatically */ |
| 93 |
#define SYS_CFG_AUTOACK 0x40000000UL /* Automatic Acknowledgement Enable */ |
| 94 |
#define SYS_CFG_AACKPEND 0x80000000UL /* Automatic Acknowledgement Pending bit control */ |
| 95 |
|
| 96 |
|
| 97 |
/****************************************************************************//** |
| 98 |
* @brief Bit definitions for register SYS_TIME
|
| 99 |
**/
|
| 100 |
#define SYS_TIME_ID 0x06 /* System Time Counter (40-bit) */ |
| 101 |
#define SYS_TIME_OFFSET 0x00 |
| 102 |
#define SYS_TIME_LEN (5) /* Note 40 bit register */ |
| 103 |
|
| 104 |
|
| 105 |
/****************************************************************************//** |
| 106 |
* @brief Bit definitions for register 0x07
|
| 107 |
**/
|
| 108 |
#define REG_07_ID_RESERVED 0x07 |
| 109 |
|
| 110 |
/****************************************************************************//** |
| 111 |
* @brief Bit definitions for register TX_FCTRL
|
| 112 |
**/
|
| 113 |
#define TX_FCTRL_ID 0x08 /* Transmit Frame Control */ |
| 114 |
#define TX_FCTRL_LEN (5) /* Note 40 bit register */ |
| 115 |
/*masks (low 32 bit) */
|
| 116 |
#define TX_FCTRL_TFLEN_MASK 0x0000007FUL /* bit mask to access Transmit Frame Length */ |
| 117 |
#define TX_FCTRL_TFLE_MASK 0x00000380UL /* bit mask to access Transmit Frame Length Extension */ |
| 118 |
#define TX_FCTRL_FLE_MASK 0x000003FFUL /* bit mask to access Frame Length field */ |
| 119 |
#define TX_FCTRL_TXBR_MASK 0x00006000UL /* bit mask to access Transmit Bit Rate */ |
| 120 |
#define TX_FCTRL_TXPRF_MASK 0x00030000UL /* bit mask to access Transmit Pulse Repetition Frequency */ |
| 121 |
#define TX_FCTRL_TXPSR_MASK 0x000C0000UL /* bit mask to access Transmit Preamble Symbol Repetitions (PSR). */ |
| 122 |
#define TX_FCTRL_PE_MASK 0x00300000UL /* bit mask to access Preamble Extension */ |
| 123 |
#define TX_FCTRL_TXPSR_PE_MASK 0x003C0000UL /* bit mask to access Transmit Preamble Symbol Repetitions (PSR). */ |
| 124 |
#define TX_FCTRL_SAFE_MASK_32 0xFFFFE3FFUL /* FSCTRL has fields which should always be writen zero */ |
| 125 |
/*offset 0 */
|
| 126 |
/*offset 8 */
|
| 127 |
#define TX_FCTRL_TXBR_110k 0x00000000UL /* Transmit Bit Rate = 110k */ |
| 128 |
#define TX_FCTRL_TXBR_850k 0x00002000UL /* Transmit Bit Rate = 850k */ |
| 129 |
#define TX_FCTRL_TXBR_6M 0x00004000UL /* Transmit Bit Rate = 6.8M */ |
| 130 |
#define TX_FCTRL_TXBR_SHFT (13) /* shift to access Data Rate field */ |
| 131 |
#define TX_FCTRL_TR 0x00008000UL /* Transmit Ranging enable */ |
| 132 |
#define TX_FCTRL_TR_SHFT (15) /* shift to access Ranging bit */ |
| 133 |
/*offset 16 */
|
| 134 |
#define TX_FCTRL_TXPRF_SHFT (16) /* shift to access Pulse Repetition Frequency field */ |
| 135 |
#define TX_FCTRL_TXPRF_4M 0x00000000UL /* Transmit Pulse Repetition Frequency = 4 Mhz */ |
| 136 |
#define TX_FCTRL_TXPRF_16M 0x00010000UL /* Transmit Pulse Repetition Frequency = 16 Mhz */ |
| 137 |
#define TX_FCTRL_TXPRF_64M 0x00020000UL /* Transmit Pulse Repetition Frequency = 64 Mhz */ |
| 138 |
#define TX_FCTRL_TXPSR_SHFT (18) /* shift to access Preamble Symbol Repetitions field */ |
| 139 |
#define TX_FCTRL_PE_SHFT (20) /* shift to access Preamble length Extension to allow specification of non-standard values */ |
| 140 |
#define TX_FCTRL_TXPSR_PE_16 0x00000000UL /* bit mask to access Preamble Extension = 16 */ |
| 141 |
#define TX_FCTRL_TXPSR_PE_64 0x00040000UL /* bit mask to access Preamble Extension = 64 */ |
| 142 |
#define TX_FCTRL_TXPSR_PE_128 0x00140000UL /* bit mask to access Preamble Extension = 128 */ |
| 143 |
#define TX_FCTRL_TXPSR_PE_256 0x00240000UL /* bit mask to access Preamble Extension = 256 */ |
| 144 |
#define TX_FCTRL_TXPSR_PE_512 0x00340000UL /* bit mask to access Preamble Extension = 512 */ |
| 145 |
#define TX_FCTRL_TXPSR_PE_1024 0x00080000UL /* bit mask to access Preamble Extension = 1024 */ |
| 146 |
#define TX_FCTRL_TXPSR_PE_1536 0x00180000UL /* bit mask to access Preamble Extension = 1536 */ |
| 147 |
#define TX_FCTRL_TXPSR_PE_2048 0x00280000UL /* bit mask to access Preamble Extension = 2048 */ |
| 148 |
#define TX_FCTRL_TXPSR_PE_4096 0x000C0000UL /* bit mask to access Preamble Extension = 4096 */ |
| 149 |
/*offset 22 */
|
| 150 |
#define TX_FCTRL_TXBOFFS_SHFT (22) /* Shift to access transmit buffer index offset */ |
| 151 |
#define TX_FCTRL_TXBOFFS_MASK 0xFFC00000UL /* bit mask to access Transmit buffer index offset 10-bit field */ |
| 152 |
/*offset 32 */
|
| 153 |
#define TX_FCTRL_IFSDELAY_MASK 0xFF00000000ULL /* bit mask to access Inter-Frame Spacing field */ |
| 154 |
|
| 155 |
/****************************************************************************//** |
| 156 |
* @brief Bit definitions for register TX_BUFFER
|
| 157 |
**/
|
| 158 |
#define TX_BUFFER_ID 0x09 /* Transmit Data Buffer */ |
| 159 |
#define TX_BUFFER_LEN (1024) |
| 160 |
|
| 161 |
/****************************************************************************//** |
| 162 |
* @brief Bit definitions for register DX_TIME
|
| 163 |
**/
|
| 164 |
#define DX_TIME_ID 0x0A /* Delayed Send or Receive Time (40-bit) */ |
| 165 |
#define DX_TIME_LEN (5) |
| 166 |
|
| 167 |
/****************************************************************************//** |
| 168 |
* @brief Bit definitions for register 0x08
|
| 169 |
**/
|
| 170 |
#define REG_0B_ID_RESERVED 0x0B |
| 171 |
|
| 172 |
/****************************************************************************//** |
| 173 |
* @brief Bit definitions for register RX_FWTO
|
| 174 |
**/
|
| 175 |
#define RX_FWTO_ID 0x0C /* Receive Frame Wait Timeout Period */ |
| 176 |
#define RX_FWTO_OFFSET 0x00 |
| 177 |
#define RX_FWTO_LEN (2) /* doc bug*/ |
| 178 |
/*mask and shift */
|
| 179 |
#define RX_FWTO_MASK 0xFFFF |
| 180 |
|
| 181 |
/****************************************************************************//** |
| 182 |
* @brief Bit definitions for register SYS_CTRL
|
| 183 |
**/
|
| 184 |
#define SYS_CTRL_ID 0x0D /* System Control Register */ |
| 185 |
#define SYS_CTRL_OFFSET 0x00 |
| 186 |
#define SYS_CTRL_LEN (4) |
| 187 |
/*masks */
|
| 188 |
#define SYS_CTRL_MASK_32 0x010003CFUL /* System Control Register access mask (all unused fields should always be writen as zero) */ |
| 189 |
/*offset 0 */
|
| 190 |
#define SYS_CTRL_SFCST 0x00000001UL /* Suppress Auto-FCS Transmission (on this frame) */ |
| 191 |
#define SYS_CTRL_TXSTRT 0x00000002UL /* Start Transmitting Now */ |
| 192 |
#define SYS_CTRL_TXDLYS 0x00000004UL /* Transmitter Delayed Sending (initiates sending when SYS_TIME == TXD_TIME */ |
| 193 |
#define SYS_CTRL_CANSFCS 0x00000008UL /* Cancel Suppression of auto-FCS transmission (on the current frame) */ |
| 194 |
#define SYS_CTRL_TRXOFF 0x00000040UL /* Transceiver Off. Force Transciever OFF abort TX or RX immediately */ |
| 195 |
#define SYS_CTRL_WAIT4RESP 0x00000080UL /* Wait for Response */ |
| 196 |
/*offset 8 */
|
| 197 |
#define SYS_CTRL_RXENAB 0x00000100UL /* Enable Receiver Now */ |
| 198 |
#define SYS_CTRL_RXDLYE 0x00000200UL /* Receiver Delayed Enable (Enables Receiver when SY_TIME[0x??] == RXD_TIME[0x??] CHECK comment*/ |
| 199 |
/*offset 16 */
|
| 200 |
/*offset 24 */
|
| 201 |
#define SYS_CTRL_HSRBTOGGLE 0x01000000UL /* Host side receiver buffer pointer toggle - toggles 0/1 host side data set pointer */ |
| 202 |
#define SYS_CTRL_HRBT (SYS_CTRL_HSRBTOGGLE)
|
| 203 |
#define SYS_CTRL_HRBT_OFFSET (3) |
| 204 |
|
| 205 |
/****************************************************************************//** |
| 206 |
* @brief Bit definitions for register SYS_MASK
|
| 207 |
**/
|
| 208 |
#define SYS_MASK_ID 0x0E /* System Event Mask Register */ |
| 209 |
#define SYS_MASK_LEN (4) |
| 210 |
/*masks */
|
| 211 |
#define SYS_MASK_MASK_32 0x3FF7FFFEUL /* System Event Mask Register access mask (all unused fields should always be writen as zero) */ |
| 212 |
/*offset 0 */
|
| 213 |
#define SYS_MASK_MCPLOCK 0x00000002UL /* Mask clock PLL lock event */ |
| 214 |
#define SYS_MASK_MESYNCR 0x00000004UL /* Mask clock PLL lock event */ |
| 215 |
#define SYS_MASK_MAAT 0x00000008UL /* Mask automatic acknowledge trigger event */ |
| 216 |
#define SYS_MASK_MTXFRB 0x00000010UL /* Mask transmit frame begins event */ |
| 217 |
#define SYS_MASK_MTXPRS 0x00000020UL /* Mask transmit preamble sent event */ |
| 218 |
#define SYS_MASK_MTXPHS 0x00000040UL /* Mask transmit PHY Header Sent event */ |
| 219 |
#define SYS_MASK_MTXFRS 0x00000080UL /* Mask transmit frame sent event */ |
| 220 |
/*offset 8 */
|
| 221 |
#define SYS_MASK_MRXPRD 0x00000100UL /* Mask receiver preamble detected event */ |
| 222 |
#define SYS_MASK_MRXSFDD 0x00000200UL /* Mask receiver SFD detected event */ |
| 223 |
#define SYS_MASK_MLDEDONE 0x00000400UL /* Mask LDE processing done event */ |
| 224 |
#define SYS_MASK_MRXPHD 0x00000800UL /* Mask receiver PHY header detect event */ |
| 225 |
#define SYS_MASK_MRXPHE 0x00001000UL /* Mask receiver PHY header error event */ |
| 226 |
#define SYS_MASK_MRXDFR 0x00002000UL /* Mask receiver data frame ready event */ |
| 227 |
#define SYS_MASK_MRXFCG 0x00004000UL /* Mask receiver FCS good event */ |
| 228 |
#define SYS_MASK_MRXFCE 0x00008000UL /* Mask receiver FCS error event */ |
| 229 |
/*offset 16 */
|
| 230 |
#define SYS_MASK_MRXRFSL 0x00010000UL /* Mask receiver Reed Solomon Frame Sync Loss event */ |
| 231 |
#define SYS_MASK_MRXRFTO 0x00020000UL /* Mask Receive Frame Wait Timeout event */ |
| 232 |
#define SYS_MASK_MLDEERR 0x00040000UL /* Mask leading edge detection processing error event */ |
| 233 |
#define SYS_MASK_MRXOVRR 0x00100000UL /* Mask Receiver Overrun event */ |
| 234 |
#define SYS_MASK_MRXPTO 0x00200000UL /* Mask Preamble detection timeout event */ |
| 235 |
#define SYS_MASK_MGPIOIRQ 0x00400000UL /* Mask GPIO interrupt event */ |
| 236 |
#define SYS_MASK_MSLP2INIT 0x00800000UL /* Mask SLEEP to INIT event */ |
| 237 |
/*offset 24*/
|
| 238 |
#define SYS_MASK_MRFPLLLL 0x01000000UL /* Mask RF PLL Loosing Lock warning event */ |
| 239 |
#define SYS_MASK_MCPLLLL 0x02000000UL /* Mask Clock PLL Loosing Lock warning event */ |
| 240 |
#define SYS_MASK_MRXSFDTO 0x04000000UL /* Mask Receive SFD timeout event */ |
| 241 |
#define SYS_MASK_MHPDWARN 0x08000000UL /* Mask Half Period Delay Warning event */ |
| 242 |
#define SYS_MASK_MTXBERR 0x10000000UL /* Mask Transmit Buffer Error event */ |
| 243 |
#define SYS_MASK_MAFFREJ 0x20000000UL /* Mask Automatic Frame Filtering rejection event */ |
| 244 |
|
| 245 |
/****************************************************************************//** |
| 246 |
* @brief Bit definitions for register SYS_STATUS
|
| 247 |
**/
|
| 248 |
#define SYS_STATUS_ID 0x0F /* System event Status Register */ |
| 249 |
#define SYS_STATUS_OFFSET 0x00 |
| 250 |
#define SYS_STATUS_LEN (5) /* Note 40 bit register */ |
| 251 |
/*masks */
|
| 252 |
#define SYS_STATUS_MASK_32 0xFFF7FFFFUL /* System event Status Register access mask (all unused fields should always be writen as zero) */ |
| 253 |
/*offset 0 */
|
| 254 |
#define SYS_STATUS_IRQS 0x00000001UL /* Interrupt Request Status READ ONLY */ |
| 255 |
#define SYS_STATUS_CPLOCK 0x00000002UL /* Clock PLL Lock */ |
| 256 |
#define SYS_STATUS_ESYNCR 0x00000004UL /* External Sync Clock Reset */ |
| 257 |
#define SYS_STATUS_AAT 0x00000008UL /* Automatic Acknowledge Trigger */ |
| 258 |
#define SYS_STATUS_TXFRB 0x00000010UL /* Transmit Frame Begins */ |
| 259 |
#define SYS_STATUS_TXPRS 0x00000020UL /* Transmit Preamble Sent */ |
| 260 |
#define SYS_STATUS_TXPHS 0x00000040UL /* Transmit PHY Header Sent */ |
| 261 |
#define SYS_STATUS_TXFRS 0x00000080UL /* Transmit Frame Sent: This is set when the transmitter has completed the sending of a frame */ |
| 262 |
/*offset 8 */
|
| 263 |
#define SYS_STATUS_RXPRD 0x00000100UL /* Receiver Preamble Detected status */ |
| 264 |
#define SYS_STATUS_RXSFDD 0x00000200UL /* Receiver Start Frame Delimiter Detected. */ |
| 265 |
#define SYS_STATUS_LDEDONE 0x00000400UL /* LDE processing done */ |
| 266 |
#define SYS_STATUS_RXPHD 0x00000800UL /* Receiver PHY Header Detect */ |
| 267 |
#define SYS_STATUS_RXPHE 0x00001000UL /* Receiver PHY Header Error */ |
| 268 |
#define SYS_STATUS_RXDFR 0x00002000UL /* Receiver Data Frame Ready */ |
| 269 |
#define SYS_STATUS_RXFCG 0x00004000UL /* Receiver FCS Good */ |
| 270 |
#define SYS_STATUS_RXFCE 0x00008000UL /* Receiver FCS Error */ |
| 271 |
/*offset 16 */
|
| 272 |
#define SYS_STATUS_RXRFSL 0x00010000UL /* Receiver Reed Solomon Frame Sync Loss */ |
| 273 |
#define SYS_STATUS_RXRFTO 0x00020000UL /* Receive Frame Wait Timeout */ |
| 274 |
#define SYS_STATUS_LDEERR 0x00040000UL /* Leading edge detection processing error */ |
| 275 |
#define SYS_STATUS_reserved 0x00080000UL /* bit19 reserved */ |
| 276 |
#define SYS_STATUS_RXOVRR 0x00100000UL /* Receiver Overrun */ |
| 277 |
#define SYS_STATUS_RXPTO 0x00200000UL /* Preamble detection timeout */ |
| 278 |
#define SYS_STATUS_GPIOIRQ 0x00400000UL /* GPIO interrupt */ |
| 279 |
#define SYS_STATUS_SLP2INIT 0x00800000UL /* SLEEP to INIT */ |
| 280 |