amiro-lld / drivers / DW1000 / v2 / decadriver / deca_regs.h @ 22401187
History | View | Annotate | Download (80.742 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 "deca_version.h" |
22 |
|
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 0xFFFF0000UL /* 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) |
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 */ |