added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
144:ef7eb2e8f9f7
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**
<> 144:ef7eb2e8f9f7 2 ******************************************************************************
<> 144:ef7eb2e8f9f7 3 * @file macHw_map.h
<> 144:ef7eb2e8f9f7 4 * @brief MACHW hw module register map
<> 144:ef7eb2e8f9f7 5 * @internal
<> 144:ef7eb2e8f9f7 6 * @author ON Semiconductor
<> 144:ef7eb2e8f9f7 7 * $Rev: 3390 $
<> 144:ef7eb2e8f9f7 8 * $Date: 2015-05-13 17:21:05 +0530 (Wed, 13 May 2015) $
<> 144:ef7eb2e8f9f7 9 ******************************************************************************
<> 144:ef7eb2e8f9f7 10 * @copyright (c) 2012 ON Semiconductor. All rights reserved.
<> 144:ef7eb2e8f9f7 11 * ON Semiconductor is supplying this software for use with ON Semiconductor
<> 144:ef7eb2e8f9f7 12 * processor based microcontrollers only.
<> 144:ef7eb2e8f9f7 13 *
<> 144:ef7eb2e8f9f7 14 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
<> 144:ef7eb2e8f9f7 15 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
<> 144:ef7eb2e8f9f7 16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
<> 144:ef7eb2e8f9f7 17 * ON SEMICONDUCTOR SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL,
<> 144:ef7eb2e8f9f7 18 * INCIDENTAL, OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
<> 144:ef7eb2e8f9f7 19 * @endinternal
<> 144:ef7eb2e8f9f7 20 *
<> 144:ef7eb2e8f9f7 21 * @ingroup macHw
<> 144:ef7eb2e8f9f7 22 *
<> 144:ef7eb2e8f9f7 23 * @details
<> 144:ef7eb2e8f9f7 24 */
<> 144:ef7eb2e8f9f7 25
<> 144:ef7eb2e8f9f7 26 #ifndef MACHW_MAP_H_
<> 144:ef7eb2e8f9f7 27 #define MACHW_MAP_H_
<> 144:ef7eb2e8f9f7 28
<> 144:ef7eb2e8f9f7 29 /*************************************************************************************************
<> 144:ef7eb2e8f9f7 30 * *
<> 144:ef7eb2e8f9f7 31 * Header files *
<> 144:ef7eb2e8f9f7 32 * *
<> 144:ef7eb2e8f9f7 33 *************************************************************************************************/
<> 144:ef7eb2e8f9f7 34
<> 144:ef7eb2e8f9f7 35 #include "architecture.h"
<> 144:ef7eb2e8f9f7 36
<> 144:ef7eb2e8f9f7 37 /**************************************************************************************************
<> 144:ef7eb2e8f9f7 38 * *
<> 144:ef7eb2e8f9f7 39 * Type definitions *
<> 144:ef7eb2e8f9f7 40 * *
<> 144:ef7eb2e8f9f7 41 **************************************************************************************************/
<> 144:ef7eb2e8f9f7 42
<> 144:ef7eb2e8f9f7 43 /** macHw register map (phy, mac and agc parts) */
<> 144:ef7eb2e8f9f7 44 typedef struct {
<> 144:ef7eb2e8f9f7 45 __O uint32_t SEQUENCER; /**< 0x40014000 */
<> 144:ef7eb2e8f9f7 46 union {
<> 144:ef7eb2e8f9f7 47 struct {
<> 144:ef7eb2e8f9f7 48 __IO uint32_t MODE:2;
<> 144:ef7eb2e8f9f7 49 __IO uint32_t NOACK:1;
<> 144:ef7eb2e8f9f7 50 __IO uint32_t FT:1;
<> 144:ef7eb2e8f9f7 51 __IO uint32_t PAD0:3;
<> 144:ef7eb2e8f9f7 52 __IO uint32_t AUTO:1;
<> 144:ef7eb2e8f9f7 53 __IO uint32_t PAD1:1;
<> 144:ef7eb2e8f9f7 54 __IO uint32_t NOW:1;
<> 144:ef7eb2e8f9f7 55 __IO uint32_t PAD2:1;
<> 144:ef7eb2e8f9f7 56 __IO uint32_t PRM:1;
<> 144:ef7eb2e8f9f7 57 __IO uint32_t NFCS:1;
<> 144:ef7eb2e8f9f7 58 __IO uint32_t PAN:1;
<> 144:ef7eb2e8f9f7 59 __IO uint32_t RSTT:1;
<> 144:ef7eb2e8f9f7 60 __IO uint32_t RSTR:1;
<> 144:ef7eb2e8f9f7 61 __IO uint32_t ACK_ENABLE:1;
<> 144:ef7eb2e8f9f7 62 __IO uint32_t BEA_ENABLE:1;
<> 144:ef7eb2e8f9f7 63 __IO uint32_t CMD_ENABLE:1;
<> 144:ef7eb2e8f9f7 64 __IO uint32_t DATA_ENABLE:1;
<> 144:ef7eb2e8f9f7 65 __IO uint32_t RES_ENABLE:1;
<> 144:ef7eb2e8f9f7 66 } BITS;
<> 144:ef7eb2e8f9f7 67 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 68 } SEQ_OPTIONS; /**< 0x40014004 */
<> 144:ef7eb2e8f9f7 69 union {
<> 144:ef7eb2e8f9f7 70 struct {
<> 144:ef7eb2e8f9f7 71 __IO uint32_t SRST:1;
<> 144:ef7eb2e8f9f7 72 __IO uint32_t ON:1;
<> 144:ef7eb2e8f9f7 73 __IO uint32_t CLKDIV:1;
<> 144:ef7eb2e8f9f7 74 } BITS;
<> 144:ef7eb2e8f9f7 75 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 76 } CONTROL; /**< 0x40014008 */
<> 144:ef7eb2e8f9f7 77 __O uint32_t PAD0; /**< 0x4001400C */
<> 144:ef7eb2e8f9f7 78 union {
<> 144:ef7eb2e8f9f7 79 struct {
<> 144:ef7eb2e8f9f7 80 __I uint32_t CODE:4;
<> 144:ef7eb2e8f9f7 81 __I uint32_t PAD0:8;
<> 144:ef7eb2e8f9f7 82 __I uint32_t MSO:1;
<> 144:ef7eb2e8f9f7 83 __I uint32_t CB:1;
<> 144:ef7eb2e8f9f7 84 __I uint32_t PAD1:1;
<> 144:ef7eb2e8f9f7 85 __I uint32_t MST:1;
<> 144:ef7eb2e8f9f7 86 } BITS;
<> 144:ef7eb2e8f9f7 87 __I uint32_t WORD;
<> 144:ef7eb2e8f9f7 88 } STATUS; /**< 0x40014010 */
<> 144:ef7eb2e8f9f7 89 union {
<> 144:ef7eb2e8f9f7 90 struct {
<> 144:ef7eb2e8f9f7 91 __IO uint32_t TFP:1;
<> 144:ef7eb2e8f9f7 92 __IO uint32_t SDC:1;
<> 144:ef7eb2e8f9f7 93 __IO uint32_t IC:1;
<> 144:ef7eb2e8f9f7 94 __IO uint32_t SDB:1;
<> 144:ef7eb2e8f9f7 95 __IO uint32_t SSP:1;
<> 144:ef7eb2e8f9f7 96 __IO uint32_t TFPO:1;
<> 144:ef7eb2e8f9f7 97 } BITS;
<> 144:ef7eb2e8f9f7 98 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 99 } OPTIONS; /**< 0x40014014 */
<> 144:ef7eb2e8f9f7 100 __IO uint32_t PANID; /**< 0x40014018 */
<> 144:ef7eb2e8f9f7 101 __IO uint32_t SHORT_ADDRESS; /**< 0x4001401C */
<> 144:ef7eb2e8f9f7 102 __IO uint32_t LONG_ADDRESS_HIGH; /**< 0x40014020 */
<> 144:ef7eb2e8f9f7 103 __IO uint32_t LONG_ADDRESS_LOW; /**< 0x40014024 */
<> 144:ef7eb2e8f9f7 104 union {
<> 144:ef7eb2e8f9f7 105 struct {
<> 144:ef7eb2e8f9f7 106 __IO uint32_t BIT_CLOCK_DIVIDER:8;
<> 144:ef7eb2e8f9f7 107 __IO uint32_t SYSTEM_CLOCK_DIVIDER:8;
<> 144:ef7eb2e8f9f7 108 __IO uint32_t CHIP_CLOCK_DIVIDER:8;
<> 144:ef7eb2e8f9f7 109 } BITS;
<> 144:ef7eb2e8f9f7 110 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 111 } DIVIDER; /**< 0x40014028 */
<> 144:ef7eb2e8f9f7 112 union {
<> 144:ef7eb2e8f9f7 113 struct {
<> 144:ef7eb2e8f9f7 114 __IO uint32_t RECEIVE_WARMPUP:12;
<> 144:ef7eb2e8f9f7 115 __IO uint32_t PAD0:4;
<> 144:ef7eb2e8f9f7 116 __IO uint32_t TRANSMIT_WARMPUP:12;
<> 144:ef7eb2e8f9f7 117 } BITS;
<> 144:ef7eb2e8f9f7 118 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 119 } RX_TX_WARMPUPS; /**< 0x4001402c */
<> 144:ef7eb2e8f9f7 120 union {
<> 144:ef7eb2e8f9f7 121 struct {
<> 144:ef7eb2e8f9f7 122 __O uint32_t EC:1;
<> 144:ef7eb2e8f9f7 123 __O uint32_t ES:1;
<> 144:ef7eb2e8f9f7 124 __O uint32_t DATA:1;
<> 144:ef7eb2e8f9f7 125 __O uint32_t FS:1;
<> 144:ef7eb2e8f9f7 126 __O uint32_t FP:1;
<> 144:ef7eb2e8f9f7 127 __O uint32_t FMD:1;
<> 144:ef7eb2e8f9f7 128 #ifdef REVD
<> 144:ef7eb2e8f9f7 129 __I uint32_t PC:1;
<> 144:ef7eb2e8f9f7 130 #endif /* REVD */
<> 144:ef7eb2e8f9f7 131 } BITS;
<> 144:ef7eb2e8f9f7 132 __O uint32_t WORD;
<> 144:ef7eb2e8f9f7 133 } CLEAR_IRQ; /**< 0x40014030 */
<> 144:ef7eb2e8f9f7 134 union {
<> 144:ef7eb2e8f9f7 135 struct {
<> 144:ef7eb2e8f9f7 136 __IO uint32_t EC:1;
<> 144:ef7eb2e8f9f7 137 __IO uint32_t ES:1;
<> 144:ef7eb2e8f9f7 138 __IO uint32_t DATA:1;
<> 144:ef7eb2e8f9f7 139 __IO uint32_t FS:1;
<> 144:ef7eb2e8f9f7 140 __IO uint32_t FP:1;
<> 144:ef7eb2e8f9f7 141 __IO uint32_t FM:1;
<> 144:ef7eb2e8f9f7 142 #ifdef REVD
<> 144:ef7eb2e8f9f7 143 __I uint32_t PC:1;
<> 144:ef7eb2e8f9f7 144 #endif /* REVD */
<> 144:ef7eb2e8f9f7 145 } BITS;
<> 144:ef7eb2e8f9f7 146 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 147 } MASK_IRQ; /**< 0x40014034 */
<> 144:ef7eb2e8f9f7 148 union {
<> 144:ef7eb2e8f9f7 149 struct {
<> 144:ef7eb2e8f9f7 150 __I uint32_t EC:1;
<> 144:ef7eb2e8f9f7 151 __I uint32_t ES:1;
<> 144:ef7eb2e8f9f7 152 __I uint32_t DATA:1;
<> 144:ef7eb2e8f9f7 153 __I uint32_t FS:1;
<> 144:ef7eb2e8f9f7 154 __I uint32_t FP:1;
<> 144:ef7eb2e8f9f7 155 __I uint32_t FM:1;
<> 144:ef7eb2e8f9f7 156 #ifdef REVD
<> 144:ef7eb2e8f9f7 157 __I uint32_t PC:1;
<> 144:ef7eb2e8f9f7 158 #endif /* REVD */
<> 144:ef7eb2e8f9f7 159 } BITS;
<> 144:ef7eb2e8f9f7 160 __I uint32_t WORD;
<> 144:ef7eb2e8f9f7 161 } IRQ_STATUS; /**< 0x40014038 */
<> 144:ef7eb2e8f9f7 162 __O uint32_t PAD1; /**< 0x4001403C */
<> 144:ef7eb2e8f9f7 163 union {
<> 144:ef7eb2e8f9f7 164 struct {
<> 144:ef7eb2e8f9f7 165 __IO uint32_t START:1;
<> 144:ef7eb2e8f9f7 166 __IO uint32_t STOP:1;
<> 144:ef7eb2e8f9f7 167 } BITS;
<> 144:ef7eb2e8f9f7 168 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 169 } TIMER_ENABLE; /**< 0x40014040 */
<> 144:ef7eb2e8f9f7 170 union {
<> 144:ef7eb2e8f9f7 171 struct {
<> 144:ef7eb2e8f9f7 172 __IO uint32_t START:1;
<> 144:ef7eb2e8f9f7 173 __IO uint32_t STOP:1;
<> 144:ef7eb2e8f9f7 174 } BITS;
<> 144:ef7eb2e8f9f7 175 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 176 } TIMER_DISABLE; /**< 0x40014044 */
<> 144:ef7eb2e8f9f7 177 __IO uint32_t TIMER; /**< 0x40014048 */
<> 144:ef7eb2e8f9f7 178 __IO uint32_t START_TIME; /**< 0x4001404C */
<> 144:ef7eb2e8f9f7 179 __IO uint32_t STOP_TIME; /**< 0x40014050 */
<> 144:ef7eb2e8f9f7 180 union {
<> 144:ef7eb2e8f9f7 181 struct {
<> 144:ef7eb2e8f9f7 182 __I uint32_t START:1;
<> 144:ef7eb2e8f9f7 183 __I uint32_t STOP:1;
<> 144:ef7eb2e8f9f7 184 } BITS;
<> 144:ef7eb2e8f9f7 185 __I uint32_t WORD;
<> 144:ef7eb2e8f9f7 186 } TIMER_STATUS; /**< 0x40014054 */
<> 144:ef7eb2e8f9f7 187 __I uint32_t PROTOCOL_TIMER; /**< 0x40014058 */
<> 144:ef7eb2e8f9f7 188 __O uint32_t PAD4; /**< 0x4001405C */
<> 144:ef7eb2e8f9f7 189 __I uint32_t FINISH_TIME; /**< 0x40014060 */
<> 144:ef7eb2e8f9f7 190 union {
<> 144:ef7eb2e8f9f7 191 struct {
<> 144:ef7eb2e8f9f7 192 __IO uint32_t TX_SLOT_OFFSET:12;
<> 144:ef7eb2e8f9f7 193 __IO uint32_t PAD0:4;
<> 144:ef7eb2e8f9f7 194 __IO uint32_t RX_SLOT_OFFSET:12;
<> 144:ef7eb2e8f9f7 195 } BITS;
<> 144:ef7eb2e8f9f7 196 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 197 } SLOT_OFFSET; /**< 0x40014064 */
<> 144:ef7eb2e8f9f7 198 __I uint32_t TIME_STAMP; /**< 0x40014068 */
<> 144:ef7eb2e8f9f7 199 #ifdef REVB
<> 144:ef7eb2e8f9f7 200 __O uint32_t PAD5; /**< 0x4001406C */
<> 144:ef7eb2e8f9f7 201 #endif /* REVB */
<> 144:ef7eb2e8f9f7 202 union {
<> 144:ef7eb2e8f9f7 203 struct {
<> 144:ef7eb2e8f9f7 204 __IO uint32_t CRD_SHORT_ADDRESS:16;
<> 144:ef7eb2e8f9f7 205 __IO uint32_t PAD0:13;
<> 144:ef7eb2e8f9f7 206 __IO uint32_t ASSOC_PAN_COORD:1;
<> 144:ef7eb2e8f9f7 207 __IO uint32_t PAN_COORD_ADDR_L:1;
<> 144:ef7eb2e8f9f7 208 __IO uint32_t PAN_COORD_ADDR_S:1;
<> 144:ef7eb2e8f9f7 209 } BITS;
<> 144:ef7eb2e8f9f7 210 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 211 #ifdef REVB
<> 144:ef7eb2e8f9f7 212 } CRD_SHORT_ADDR; /**< 0x40014070 */
<> 144:ef7eb2e8f9f7 213 __IO uint32_t CRD_LONG_ADDR_HI; /**< 0x40014074 */
<> 144:ef7eb2e8f9f7 214 __IO uint32_t CRD_LONG_ADDR_LO; /**< 0x40014078 */
<> 144:ef7eb2e8f9f7 215 #endif /* REVB */
<> 144:ef7eb2e8f9f7 216 #ifdef REVD
<> 144:ef7eb2e8f9f7 217 } CRD_SHORT_ADDR; /**< 0x4001406C */
<> 144:ef7eb2e8f9f7 218 __IO uint32_t CRD_LONG_ADDR_HI; /**< 0x40014070 */
<> 144:ef7eb2e8f9f7 219 __IO uint32_t CRD_LONG_ADDR_LO; /**< 0x40014074 */
<> 144:ef7eb2e8f9f7 220 __O uint32_t PAD5; /**< 0x40014078 */
<> 144:ef7eb2e8f9f7 221 #endif /* REVD */
<> 144:ef7eb2e8f9f7 222 __O uint32_t PAD9; /**< 0x4001407C */
<> 144:ef7eb2e8f9f7 223 __O uint32_t PAD10; /**< 0x40014080 */
<> 144:ef7eb2e8f9f7 224 __O uint32_t PAD11; /**< 0x40014084 */
<> 144:ef7eb2e8f9f7 225 __IO uint32_t RX_LENGTH; /**< 0x40014088 */
<> 144:ef7eb2e8f9f7 226 union {
<> 144:ef7eb2e8f9f7 227 struct {
<> 144:ef7eb2e8f9f7 228 __IO uint32_t TXLENGTH:7;
<> 144:ef7eb2e8f9f7 229 __O uint32_t PAD0:1;
<> 144:ef7eb2e8f9f7 230 __IO uint32_t TX_PRE_CHIPS:4;
<> 144:ef7eb2e8f9f7 231 } BITS;
<> 144:ef7eb2e8f9f7 232 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 233 } TX_LENGTH; /**< 0x4001408C */
<> 144:ef7eb2e8f9f7 234 __IO uint32_t TX_SEQ_NUMBER; /**< 0x40014090 */
<> 144:ef7eb2e8f9f7 235 __IO uint32_t TX_ACK_DELAY; /**< 0x40014094 */
<> 144:ef7eb2e8f9f7 236 union {
<> 144:ef7eb2e8f9f7 237 struct {
<> 144:ef7eb2e8f9f7 238 __IO uint32_t RXACKDELAY:12;
<> 144:ef7eb2e8f9f7 239 __IO uint32_t PAD0:4;
<> 144:ef7eb2e8f9f7 240 __IO uint32_t RXAUTODELAY:12;
<> 144:ef7eb2e8f9f7 241 } BITS;
<> 144:ef7eb2e8f9f7 242 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 243 } RX_ACK_DELAY; /**< 0x40014098 */
<> 144:ef7eb2e8f9f7 244 __IO uint32_t TX_FLUSH; /**< 0x4001409C */
<> 144:ef7eb2e8f9f7 245 union {
<> 144:ef7eb2e8f9f7 246 struct {
<> 144:ef7eb2e8f9f7 247 __IO uint32_t CCA_DELAY:12;
<> 144:ef7eb2e8f9f7 248 __IO uint32_t PAD0:4;
<> 144:ef7eb2e8f9f7 249 __IO uint32_t CCA_LENGTH:12;
<> 144:ef7eb2e8f9f7 250 } BITS;
<> 144:ef7eb2e8f9f7 251 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 252 } CCA; /**< 0x400140A0 */
<> 144:ef7eb2e8f9f7 253 union {
<> 144:ef7eb2e8f9f7 254 struct {
<> 144:ef7eb2e8f9f7 255 __IO uint32_t RXACK_END:12;
<> 144:ef7eb2e8f9f7 256 __IO uint32_t PAD0:4;
<> 144:ef7eb2e8f9f7 257 __IO uint32_t RXSLOTTED_END:12;
<> 144:ef7eb2e8f9f7 258 } BITS;
<> 144:ef7eb2e8f9f7 259 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 260 } ACK_STOP; /**< 0x400140A4 */
<> 144:ef7eb2e8f9f7 261 __IO uint32_t TXCCA; /**< 0x400140A8 */
<> 144:ef7eb2e8f9f7 262 __IO uint32_t ADDR_L_LOC; /**< 0x400140AC */
<> 144:ef7eb2e8f9f7 263 __IO uint32_t ADDR_S_LOC; /**< 0x400140B0 */
<> 144:ef7eb2e8f9f7 264 __IO uint32_t FRAME_MATCH_RESULT; /**< 0x400140B4 */
<> 144:ef7eb2e8f9f7 265 __IO uint32_t FRAME_MATCH_ADDR_L; /**< 0x400140B8 */
<> 144:ef7eb2e8f9f7 266 __IO uint32_t FRAME_MATCH_ADDR_S; /**< 0x400140BC */
<> 144:ef7eb2e8f9f7 267 union {
<> 144:ef7eb2e8f9f7 268 struct {
<> 144:ef7eb2e8f9f7 269 __IO uint32_t AA:1;
<> 144:ef7eb2e8f9f7 270 __IO uint32_t AFA:1;
<> 144:ef7eb2e8f9f7 271 __IO uint32_t PRE:1;
<> 144:ef7eb2e8f9f7 272 __IO uint32_t PAD0:25;
<> 144:ef7eb2e8f9f7 273 __IO uint32_t GAIN_START:4;
<> 144:ef7eb2e8f9f7 274 } BITS;
<> 144:ef7eb2e8f9f7 275 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 276 } AGC_CONTROL; /**< 0x400140C0 */
<> 144:ef7eb2e8f9f7 277 union {
<> 144:ef7eb2e8f9f7 278 struct {
<> 144:ef7eb2e8f9f7 279 __IO uint32_t SETTLE_DELAY:8;
<> 144:ef7eb2e8f9f7 280 __IO uint32_t MEASURE_DELAY:8;
<> 144:ef7eb2e8f9f7 281 __IO uint32_t DIVIDER:8;
<> 144:ef7eb2e8f9f7 282 __IO uint32_t HIGH_THRESHOLD:4;
<> 144:ef7eb2e8f9f7 283 __IO uint32_t LOW_THRESHOLD:4;
<> 144:ef7eb2e8f9f7 284 } BITS;
<> 144:ef7eb2e8f9f7 285 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 286 } AGC_SETTINGS; /**< 0x400140C4 */
<> 144:ef7eb2e8f9f7 287 union {
<> 144:ef7eb2e8f9f7 288 struct {
<> 144:ef7eb2e8f9f7 289 __IO uint32_t GC1:3;
<> 144:ef7eb2e8f9f7 290 __IO uint32_t GC2:3;
<> 144:ef7eb2e8f9f7 291 __IO uint32_t GC3:1;
<> 144:ef7eb2e8f9f7 292 __IO uint32_t PAD:1;
<> 144:ef7eb2e8f9f7 293 __IO uint32_t AGC_STATE:4;
<> 144:ef7eb2e8f9f7 294 } BITS;
<> 144:ef7eb2e8f9f7 295 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 296 } AGC_STATUS; /**< 0x400140C8 */
<> 144:ef7eb2e8f9f7 297 union {
<> 144:ef7eb2e8f9f7 298 struct {
<> 144:ef7eb2e8f9f7 299 __IO uint32_t GAIN3:7;
<> 144:ef7eb2e8f9f7 300 __IO uint32_t PAD0:1;
<> 144:ef7eb2e8f9f7 301 __IO uint32_t GAIN2:7;
<> 144:ef7eb2e8f9f7 302 __IO uint32_t PAD1:1;
<> 144:ef7eb2e8f9f7 303 __IO uint32_t GAIN1:7;
<> 144:ef7eb2e8f9f7 304 __IO uint32_t PAD2:1;
<> 144:ef7eb2e8f9f7 305 __IO uint32_t GAIN0:7;
<> 144:ef7eb2e8f9f7 306 __IO uint32_t PAD3:1;
<> 144:ef7eb2e8f9f7 307 } BITS;
<> 144:ef7eb2e8f9f7 308 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 309 } AGC_GAIN_TABLE0; /**< 0x400140CC */
<> 144:ef7eb2e8f9f7 310 union {
<> 144:ef7eb2e8f9f7 311 struct {
<> 144:ef7eb2e8f9f7 312 __IO uint32_t GAIN7:7;
<> 144:ef7eb2e8f9f7 313 __IO uint32_t PAD0:1;
<> 144:ef7eb2e8f9f7 314 __IO uint32_t GAIN6:7;
<> 144:ef7eb2e8f9f7 315 __IO uint32_t PAD1:1;
<> 144:ef7eb2e8f9f7 316 __IO uint32_t GAIN5:7;
<> 144:ef7eb2e8f9f7 317 __IO uint32_t PAD2:1;
<> 144:ef7eb2e8f9f7 318 __IO uint32_t GAIN4:7;
<> 144:ef7eb2e8f9f7 319 __IO uint32_t PAD3:1;
<> 144:ef7eb2e8f9f7 320 } BITS;
<> 144:ef7eb2e8f9f7 321 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 322 } AGC_GAIN_TABLE1; /**< 0x400140D0 */
<> 144:ef7eb2e8f9f7 323 union {
<> 144:ef7eb2e8f9f7 324 struct {
<> 144:ef7eb2e8f9f7 325 __IO uint32_t GAIN11:7;
<> 144:ef7eb2e8f9f7 326 __IO uint32_t PAD0:1;
<> 144:ef7eb2e8f9f7 327 __IO uint32_t GAIN10:7;
<> 144:ef7eb2e8f9f7 328 __IO uint32_t PAD1:1;
<> 144:ef7eb2e8f9f7 329 __IO uint32_t GAIN9:7;
<> 144:ef7eb2e8f9f7 330 __IO uint32_t PAD2:1;
<> 144:ef7eb2e8f9f7 331 __IO uint32_t GAIN8:7;
<> 144:ef7eb2e8f9f7 332 __IO uint32_t PAD3:1;
<> 144:ef7eb2e8f9f7 333 } BITS;
<> 144:ef7eb2e8f9f7 334 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 335 } AGC_GAIN_TABLE2; /**< 0x400140D4 */
<> 144:ef7eb2e8f9f7 336 union {
<> 144:ef7eb2e8f9f7 337 struct {
<> 144:ef7eb2e8f9f7 338 __IO uint32_t GAIN15:7;
<> 144:ef7eb2e8f9f7 339 __IO uint32_t PAD0:1;
<> 144:ef7eb2e8f9f7 340 __IO uint32_t GAIN14:7;
<> 144:ef7eb2e8f9f7 341 __IO uint32_t PAD1:1;
<> 144:ef7eb2e8f9f7 342 __IO uint32_t GAIN13:7;
<> 144:ef7eb2e8f9f7 343 __IO uint32_t PAD2:1;
<> 144:ef7eb2e8f9f7 344 __IO uint32_t GAIN12:7;
<> 144:ef7eb2e8f9f7 345 __IO uint32_t PAD3:1;
<> 144:ef7eb2e8f9f7 346 } BITS;
<> 144:ef7eb2e8f9f7 347 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 348 } AGC_GAIN_TABLE3; /**< 0x400140D8 */
<> 144:ef7eb2e8f9f7 349 } MacHwReg_t, *MacHwReg_pt;
<> 144:ef7eb2e8f9f7 350
<> 144:ef7eb2e8f9f7 351 /** macHw register map (demodulator part) */
<> 144:ef7eb2e8f9f7 352 typedef struct {
<> 144:ef7eb2e8f9f7 353 union {
<> 144:ef7eb2e8f9f7 354 struct {
<> 144:ef7eb2e8f9f7 355 __IO uint32_t DRC:1; /**< Reserved */
<> 144:ef7eb2e8f9f7 356 __IO uint32_t SWIQ:1; /**< Compensation for quadrature polarity. (set to 1 for RevB) */
<> 144:ef7eb2e8f9f7 357 __IO uint32_t LIF:1; /**< Allows the receiver to use a low-IF frequency of +1.23 MHz (0) or -1.23 MHz (1). */
<> 144:ef7eb2e8f9f7 358 __IO uint32_t PM:1; /**< Preamble Mode: Mode 0 (high sensitivity) – Preamble detection is based on observation of a regular pattern of correlation peaks over a span of 5 consecutive symbol periods. Each symbol period produces a time index and frequency index corresponding to the largest correlation peak. If 4 out of 5 symbol periods produce time/frequency index values that meet a set of similarity criteria, then preamble detection is declared. This mode improves preamble detection rate by tolerating one corrupt correlation result in the span of 5 symbols. However, the relaxed detection rule allows a higher rate of false preamble detection when no signal is present. Mode 1 (low false detection) – Preamble detection is based on a span of 4 consecutive symbol periods. Each symbol period produces a time index and frequency index corresponding to the largest correlation peak. If all four symbol periods produce time/frequency index values that meet a set of similarity criteria, then preamble detection is declared. This mode enforces a more strict detection rule and therefore offers lower rate of false preamble detection at the expense of higher missed detection. */
<> 144:ef7eb2e8f9f7 359 __IO uint32_t ASM:1; /**< This bit determines whether antenna selection is automatic (1) or manual (0). For applications that do not use antenna diversity, this bit should be set to 0. */
<> 144:ef7eb2e8f9f7 360 __IO uint32_t AS:1; /**< If automatic antenna selection mode is used, this bit determines the initial antenna selection. If manual antenna selection mode is used, this bit determines the antenna selection, 0 or 1. */
<> 144:ef7eb2e8f9f7 361 __IO uint32_t DTC:1; /**< Sets the decay time constant used in the RSSI calculation and Digital Gain Control functions. 0: Time constant set to 1 symbol period. This produces a slower response time but more stable RSSI values. Not recommended for use with antenna diversity. 1: Time constant set to 1/4th of a symbol period. This produces a faster response with slightly more variance in the RSSI calculation. Recommended for most cases. */
<> 144:ef7eb2e8f9f7 362 __IO uint32_t PAD1:9;
<> 144:ef7eb2e8f9f7 363 __IO uint32_t DFR:16; /**<Selectively enables individual frequency offsets used during preamble search. Each of the 15 bits in this field corresponds to one of 15 different frequency offsets. A bit value of 0 removes a specific frequency offset from the search, while a bit value of 1 includes the frequency offset in the search. */
<> 144:ef7eb2e8f9f7 364 } BITS;
<> 144:ef7eb2e8f9f7 365 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 366 } DMD_CONTROL0; /**< 0x40014100 */
<> 144:ef7eb2e8f9f7 367 union {
<> 144:ef7eb2e8f9f7 368 struct {
<> 144:ef7eb2e8f9f7 369 __IO uint32_t DST:4; /**< This value specifies the SFD search period in symbols. After preamble detection, the demodulator begins symbol recovery and searches for the start-of-frame delimiter (SFD). If the SFD is not found within the number of symbols specified, the preamble detection flag is cleared and a new preamble search is initiated. The default value of 8 symbols should be sufficient for 802.15.4 compliant applications. Default 8 */
<> 144:ef7eb2e8f9f7 370 __IO uint32_t PAD0:4;
<> 144:ef7eb2e8f9f7 371 __IO uint32_t DPT:6; /**< The similarity criteria used for preamble detection includes a rule that all time index values must occupy a span equal to or less than this value. The default span of 0011 means that the correlation peaks must span a range of 3Ts, where Ts is the sample period = 0.25 µs. This value is recommended for typical multipath conditions. Very long-range applications may benefit from a higher value. Default 3 */
<> 144:ef7eb2e8f9f7 372 __IO uint32_t PAD1:2;
<> 144:ef7eb2e8f9f7 373 __IO uint32_t DPF:4; /**< The similarity criteria used for preamble detection includes a rule that all frequency index values must occupy a span equal to or less than this value. The default span of 0001 means that the difference between largest frequency index and smallest frequency index must be less than or equal to 1. Default 1 */
<> 144:ef7eb2e8f9f7 374 __IO uint32_t PAD2:4;
<> 144:ef7eb2e8f9f7 375 __IO uint32_t DCT:4; /**< In order for preamble detection to be declared, the correlation peaks must exceed a threshold. The threshold is computed dynamically and includes a programmable scale factor: 1 + bit[27]/2 + bit[26]/4 + bit[25]/8 + bit[24]/16 The default value of 1.5 is recommended for manual-antenna selection, while a value of 1.75 is recommended for automatic antenna selection. */
<> 144:ef7eb2e8f9f7 376
<> 144:ef7eb2e8f9f7 377 } BITS;
<> 144:ef7eb2e8f9f7 378 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 379 } DMD_CONTROL1; /**< 0x40014104 */
<> 144:ef7eb2e8f9f7 380 union {
<> 144:ef7eb2e8f9f7 381 struct {
<> 144:ef7eb2e8f9f7 382 __IO uint32_t RSSI_THRESHOLD:8; /**< Threshold value used to determine clear channel assessment (CCA) result. The channel is declared busy if RSSI > threshold. Default 0xFF */
<> 144:ef7eb2e8f9f7 383 __IO uint32_t RSSI_OFFSET:6; /**< Calibration constant added to the RSSI calculation. The 6-bit field is treated as a signed value in two’s complement format with values from -32 to +31 dB. */
<> 144:ef7eb2e8f9f7 384 } BITS;
<> 144:ef7eb2e8f9f7 385 __IO uint32_t WORD;
<> 144:ef7eb2e8f9f7 386 } DMD_CONTROL2; /**< 0x40014108 */
<> 144:ef7eb2e8f9f7 387 union {
<> 144:ef7eb2e8f9f7 388 struct {
<> 144:ef7eb2e8f9f7 389 __I uint32_t RSSI_VALUE:8; /**< The value is captured at the end of packet reception or at the end of ED/CCA measurements and is interpreted in dBm as follows: 00000000 -> 0127dBm (or below) ... 01111111 -> 0dBm (or above) */
<> 144:ef7eb2e8f9f7 390 __I uint32_t FREQUENCY_OFFSET:4; /**< Frequency correction applied to the received packet. The value is captured at the end of packet reception or at the end of ED/CCA measurements. */
<> 144:ef7eb2e8f9f7 391 __I uint32_t ANT:1; /**< Antenna used for reception. The value is captured at the end of packet reception or at the end of ED/CCA measurements. */
<> 144:ef7eb2e8f9f7 392 __I uint32_t PAD0:3;
<> 144:ef7eb2e8f9f7 393 __I uint32_t RSSI_COMPONENT:4; /**< Magnitude of the baseband digital signal (units are dB relative to A/D saturation). The value is updated until AGC is frozen. The value is captured at the end of packet reception or at the end of ED/CCA measurements. */
<> 144:ef7eb2e8f9f7 394 } BITS;
<> 144:ef7eb2e8f9f7 395 __I uint32_t WORD;
<> 144:ef7eb2e8f9f7 396 } DMD_STATUS; /**< 0x4001410C */
<> 144:ef7eb2e8f9f7 397 } DmdReg_t, *DmdReg_pt;
<> 144:ef7eb2e8f9f7 398
<> 144:ef7eb2e8f9f7 399 #endif /* MACHW_MAP_H_ */