16 typedef uint8_t rfm_reg_t;
19 typedef enum rfm_status_t { RFM_OK, RFM_FAIL, RFM_TIMEOUT } rfm_status_t;
22 #define RFM69_SPI_WRITE_MASK 0x80 33 #define RFM69_MAX_MESSAGE_LEN 64 36 #define RFM69_FIFO_SIZE 64 38 #define RFM69_MODE_SLEEP 0x00 39 #define RFM69_MODE_STDBY 0x04 40 #define RFM69_MODE_RX 0x10 41 #define RFM69_MODE_TX 0x0c 47 #define RF22_TXFFAEM_THRESHOLD 4 48 #define RF22_RXFFAFULL_THRESHOLD 55 51 #define RFM69_REG_00_FIFO 0x00 52 #define RFM69_REG_01_OPMODE 0x01 53 #define RFM69_REG_02_DATA_MODUL 0x02 54 #define RFM69_REG_03_BITRATE_MSB 0x03 55 #define RFM69_REG_04_BITRATE_LSB 0x04 56 #define RFM69_REG_05_FDEV_MSB 0x05 57 #define RFM69_REG_06_FDEV_LSB 0x06 58 #define RFM69_REG_07_FRF_MSB 0x07 59 #define RFM69_REG_08_FRF_MID 0x08 60 #define RFM69_REG_09_FRF_LSB 0x09 61 #define RFM69_REG_0A_OSC1 0x0A 62 #define RFM69_REG_0B_AFC_CTRL 0x0B 63 #define RFM69_REG_0D_LISTEN1 0x0D 64 #define RFM69_REG_0E_LISTEN2 0x0E 65 #define RFM69_REG_0F_LISTEN3 0x0F 66 #define RFM69_REG_10_VERSION 0x10 67 #define RFM69_REG_11_PA_LEVEL 0x11 68 #define RFM69_REG_12_PA_RAMP 0x12 69 #define RFM69_REG_13_OCP 0x13 70 #define RFM69_REG_18_LNA 0x18 71 #define RFM69_REG_19_RX_BW 0x19 72 #define RFM69_REG_1A_AFC_BW 0x1A 73 #define RFM69_REG_1B_OOK_PEAK 0x1B 74 #define RFM69_REG_1C_OOK_AVG 0x1C 75 #define RFM69_REG_1D_OOF_FIX 0x1D 76 #define RFM69_REG_1E_AFC_FEI 0x1E 77 #define RFM69_REG_1F_AFC_MSB 0x1F 78 #define RFM69_REG_20_AFC_LSB 0x20 79 #define RFM69_REG_21_FEI_MSB 0x21 80 #define RFM69_REG_22_FEI_LSB 0x22 81 #define RFM69_REG_23_RSSI_CONFIG 0x23 82 #define RFM69_REG_24_RSSI_VALUE 0x24 83 #define RFM69_REG_25_DIO_MAPPING1 0x25 84 #define RFM69_REG_26_DIO_MAPPING2 0x26 85 #define RFM69_REG_27_IRQ_FLAGS1 0x27 86 #define RFM69_REG_28_IRQ_FLAGS2 0x28 87 #define RFM69_REG_29_RSSI_THRESHOLD 0x29 88 #define RFM69_REG_2A_RX_TIMEOUT1 0x2A 89 #define RFM69_REG_2B_RX_TIMEOUT2 0x2B 90 #define RFM69_REG_2C_PREAMBLE_MSB 0x2C 91 #define RFM69_REG_2D_PREAMBLE_LSB 0x2D 92 #define RFM69_REG_2E_SYNC_CONFIG 0x2E 93 #define RFM69_REG_2F_SYNCVALUE1 0x2F 94 #define RFM69_REG_30_SYNCVALUE2 0x30 96 #define RFM69_REG_37_PACKET_CONFIG1 0x37 97 #define RFM69_REG_38_PAYLOAD_LENGTH 0x38 99 #define RFM69_REG_3B_AUTOMODES 0x3B 100 #define RFM69_REG_3C_FIFO_THRESHOLD 0x3C 101 #define RFM69_REG_3D_PACKET_CONFIG2 0x3D 103 #define RFM69_REG_4E_TEMP1 0x4E 104 #define RFM69_REG_4F_TEMP2 0x4F 105 #define RFM69_REG_58_TEST_LNA 0x58 106 #define RFM69_REG_5A_TEST_PA1 0x5A 107 #define RFM69_REG_5C_TEST_PA2 0x5C 108 #define RFM69_REG_6F_TEST_DAGC 0x6F 109 #define RFM69_REG_71_TEST_AFC 0x71 116 #define RF_OPMODE_SEQUENCER_OFF 0x80 117 #define RF_OPMODE_SEQUENCER_ON 0x00 119 #define RF_OPMODE_LISTEN_ON 0x40 120 #define RF_OPMODE_LISTEN_OFF 0x00 122 #define RF_OPMODE_LISTENABORT 0x20 124 #define RF_OPMODE_SLEEP 0x00 125 #define RF_OPMODE_STANDBY 0x04 126 #define RF_OPMODE_SYNTHESIZER 0x08 127 #define RF_OPMODE_TRANSMITTER 0x0C 128 #define RF_OPMODE_RECEIVER 0x10 131 #define RF_DATAMODUL_DATAMODE_PACKET 0x00 132 #define RF_DATAMODUL_DATAMODE_CONTINUOUS 0x40 133 #define RF_DATAMODUL_DATAMODE_CONTINUOUSNOBSYNC 0x60 135 #define RF_DATAMODUL_MODULATIONTYPE_FSK 0x00 136 #define RF_DATAMODUL_MODULATIONTYPE_OOK 0x08 138 #define RF_DATAMODUL_MODULATIONSHAPING_00 0x00 139 #define RF_DATAMODUL_MODULATIONSHAPING_01 0x01 140 #define RF_DATAMODUL_MODULATIONSHAPING_10 0x02 141 #define RF_DATAMODUL_MODULATIONSHAPING_11 0x03 144 #define RF_OSC1_RCCAL_START 0x80 145 #define RF_OSC1_RCCAL_DONE 0x40 148 #define RF_AFCLOWBETA_ON 0x20 149 #define RF_AFCLOWBETA_OFF 0x00 152 #define RF_LOWBAT_MONITOR 0x10 153 #define RF_LOWBAT_ON 0x08 154 #define RF_LOWBAT_OFF 0x00 156 #define RF_LOWBAT_TRIM_1695 0x00 157 #define RF_LOWBAT_TRIM_1764 0x01 158 #define RF_LOWBAT_TRIM_1835 0x02 159 #define RF_LOWBAT_TRIM_1905 0x03 160 #define RF_LOWBAT_TRIM_1976 0x04 161 #define RF_LOWBAT_TRIM_2045 0x05 162 #define RF_LOWBAT_TRIM_2116 0x06 163 #define RF_LOWBAT_TRIM_2185 0x07 166 #define RF_LISTEN1_RESOL_64 0x50 167 #define RF_LISTEN1_RESOL_4100 0xA0 168 #define RF_LISTEN1_RESOL_262000 0xF0 170 #define RF_LISTEN1_CRITERIA_RSSI 0x00 171 #define RF_LISTEN1_CRITERIA_RSSIANDSYNC 0x08 173 #define RF_LISTEN1_END_00 0x00 174 #define RF_LISTEN1_END_01 0x02 175 #define RF_LISTEN1_END_10 0x04 178 #define RF_LISTEN2_COEFIDLE_VALUE 0xF5 181 #define RF_LISTEN3_COEFRX_VALUE 0x20 184 #define RF_PALEVEL_PA0_ON 0x80 185 #define RF_PALEVEL_PA0_OFF 0x00 186 #define RF_PALEVEL_PA1_ON 0x40 187 #define RF_PALEVEL_PA1_OFF 0x00 188 #define RF_PALEVEL_PA2_ON 0x20 189 #define RF_PALEVEL_PA2_OFF 0x00 192 #define RF_PARAMP_3400 0x00 193 #define RF_PARAMP_2000 0x01 194 #define RF_PARAMP_1000 0x02 195 #define RF_PARAMP_500 0x03 196 #define RF_PARAMP_250 0x04 197 #define RF_PARAMP_125 0x05 198 #define RF_PARAMP_100 0x06 199 #define RF_PARAMP_62 0x07 200 #define RF_PARAMP_50 0x08 201 #define RF_PARAMP_40 0x09 202 #define RF_PARAMP_31 0x0A 203 #define RF_PARAMP_25 0x0B 204 #define RF_PARAMP_20 0x0C 205 #define RF_PARAMP_15 0x0D 206 #define RF_PARAMP_12 0x0E 207 #define RF_PARAMP_10 0x0F 210 #define RF_OCP_OFF 0x0F 211 #define RF_OCP_ON 0x1A 213 #define RF_OCP_TRIM_45 0x00 214 #define RF_OCP_TRIM_50 0x01 215 #define RF_OCP_TRIM_55 0x02 216 #define RF_OCP_TRIM_60 0x03 217 #define RF_OCP_TRIM_65 0x04 218 #define RF_OCP_TRIM_70 0x05 219 #define RF_OCP_TRIM_75 0x06 220 #define RF_OCP_TRIM_80 0x07 221 #define RF_OCP_TRIM_85 0x08 222 #define RF_OCP_TRIM_90 0x09 223 #define RF_OCP_TRIM_95 0x0A 224 #define RF_OCP_TRIM_100 0x0B 225 #define RF_OCP_TRIM_105 0x0C 226 #define RF_OCP_TRIM_110 0x0D 227 #define RF_OCP_TRIM_115 0x0E 228 #define RF_OCP_TRIM_120 0x0F 231 #define RF_AGCREF_AUTO_ON 0x40 232 #define RF_AGCREF_AUTO_OFF 0x00 234 #define RF_AGCREF_LEVEL_MINUS80 0x00 235 #define RF_AGCREF_LEVEL_MINUS81 0x01 236 #define RF_AGCREF_LEVEL_MINUS82 0x02 237 #define RF_AGCREF_LEVEL_MINUS83 0x03 238 #define RF_AGCREF_LEVEL_MINUS84 0x04 239 #define RF_AGCREF_LEVEL_MINUS85 0x05 240 #define RF_AGCREF_LEVEL_MINUS86 0x06 241 #define RF_AGCREF_LEVEL_MINUS87 0x07 242 #define RF_AGCREF_LEVEL_MINUS88 0x08 243 #define RF_AGCREF_LEVEL_MINUS89 0x09 244 #define RF_AGCREF_LEVEL_MINUS90 0x0A 245 #define RF_AGCREF_LEVEL_MINUS91 0x0B 246 #define RF_AGCREF_LEVEL_MINUS92 0x0C 247 #define RF_AGCREF_LEVEL_MINUS93 0x0D 248 #define RF_AGCREF_LEVEL_MINUS94 0x0E 249 #define RF_AGCREF_LEVEL_MINUS95 0x0F 250 #define RF_AGCREF_LEVEL_MINUS96 0x10 251 #define RF_AGCREF_LEVEL_MINUS97 0x11 252 #define RF_AGCREF_LEVEL_MINUS98 0x12 253 #define RF_AGCREF_LEVEL_MINUS99 0x13 254 #define RF_AGCREF_LEVEL_MINUS100 0x14 255 #define RF_AGCREF_LEVEL_MINUS101 0x15 256 #define RF_AGCREF_LEVEL_MINUS102 0x16 257 #define RF_AGCREF_LEVEL_MINUS103 0x17 258 #define RF_AGCREF_LEVEL_MINUS104 0x18 259 #define RF_AGCREF_LEVEL_MINUS105 0x19 260 #define RF_AGCREF_LEVEL_MINUS106 0x1A 261 #define RF_AGCREF_LEVEL_MINUS107 0x1B 262 #define RF_AGCREF_LEVEL_MINUS108 0x1C 263 #define RF_AGCREF_LEVEL_MINUS109 0x1D 264 #define RF_AGCREF_LEVEL_MINUS110 0x1E 265 #define RF_AGCREF_LEVEL_MINUS111 0x1F 266 #define RF_AGCREF_LEVEL_MINUS112 0x20 267 #define RF_AGCREF_LEVEL_MINUS113 0x21 268 #define RF_AGCREF_LEVEL_MINUS114 0x22 269 #define RF_AGCREF_LEVEL_MINUS115 0x23 270 #define RF_AGCREF_LEVEL_MINUS116 0x24 271 #define RF_AGCREF_LEVEL_MINUS117 0x25 272 #define RF_AGCREF_LEVEL_MINUS118 0x26 273 #define RF_AGCREF_LEVEL_MINUS119 0x27 274 #define RF_AGCREF_LEVEL_MINUS120 0x28 275 #define RF_AGCREF_LEVEL_MINUS121 0x29 276 #define RF_AGCREF_LEVEL_MINUS122 0x2A 277 #define RF_AGCREF_LEVEL_MINUS123 0x2B 278 #define RF_AGCREF_LEVEL_MINUS124 0x2C 279 #define RF_AGCREF_LEVEL_MINUS125 0x2D 280 #define RF_AGCREF_LEVEL_MINUS126 0x2E 281 #define RF_AGCREF_LEVEL_MINUS127 0x2F 282 #define RF_AGCREF_LEVEL_MINUS128 0x30 283 #define RF_AGCREF_LEVEL_MINUS129 0x31 284 #define RF_AGCREF_LEVEL_MINUS130 0x32 285 #define RF_AGCREF_LEVEL_MINUS131 0x33 286 #define RF_AGCREF_LEVEL_MINUS132 0x34 287 #define RF_AGCREF_LEVEL_MINUS133 0x35 288 #define RF_AGCREF_LEVEL_MINUS134 0x36 289 #define RF_AGCREF_LEVEL_MINUS135 0x37 290 #define RF_AGCREF_LEVEL_MINUS136 0x38 291 #define RF_AGCREF_LEVEL_MINUS137 0x39 292 #define RF_AGCREF_LEVEL_MINUS138 0x3A 293 #define RF_AGCREF_LEVEL_MINUS139 0x3B 294 #define RF_AGCREF_LEVEL_MINUS140 0x3C 295 #define RF_AGCREF_LEVEL_MINUS141 0x3D 296 #define RF_AGCREF_LEVEL_MINUS142 0x3E 297 #define RF_AGCREF_LEVEL_MINUS143 0x3F 300 #define RF_AGCTHRESH1_SNRMARGIN_000 0x00 301 #define RF_AGCTHRESH1_SNRMARGIN_001 0x20 302 #define RF_AGCTHRESH1_SNRMARGIN_010 0x40 303 #define RF_AGCTHRESH1_SNRMARGIN_011 0x60 304 #define RF_AGCTHRESH1_SNRMARGIN_100 0x80 305 #define RF_AGCTHRESH1_SNRMARGIN_101 0xA0 306 #define RF_AGCTHRESH1_SNRMARGIN_110 0xC0 307 #define RF_AGCTHRESH1_SNRMARGIN_111 0xE0 309 #define RF_AGCTHRESH1_STEP1_0 0x00 310 #define RF_AGCTHRESH1_STEP1_1 0x01 311 #define RF_AGCTHRESH1_STEP1_2 0x02 312 #define RF_AGCTHRESH1_STEP1_3 0x03 313 #define RF_AGCTHRESH1_STEP1_4 0x04 314 #define RF_AGCTHRESH1_STEP1_5 0x05 315 #define RF_AGCTHRESH1_STEP1_6 0x06 316 #define RF_AGCTHRESH1_STEP1_7 0x07 317 #define RF_AGCTHRESH1_STEP1_8 0x08 318 #define RF_AGCTHRESH1_STEP1_9 0x09 319 #define RF_AGCTHRESH1_STEP1_10 0x0A 320 #define RF_AGCTHRESH1_STEP1_11 0x0B 321 #define RF_AGCTHRESH1_STEP1_12 0x0C 322 #define RF_AGCTHRESH1_STEP1_13 0x0D 323 #define RF_AGCTHRESH1_STEP1_14 0x0E 324 #define RF_AGCTHRESH1_STEP1_15 0x0F 325 #define RF_AGCTHRESH1_STEP1_16 0x10 326 #define RF_AGCTHRESH1_STEP1_17 0x11 327 #define RF_AGCTHRESH1_STEP1_18 0x12 328 #define RF_AGCTHRESH1_STEP1_19 0x13 329 #define RF_AGCTHRESH1_STEP1_20 0x14 330 #define RF_AGCTHRESH1_STEP1_21 0x15 331 #define RF_AGCTHRESH1_STEP1_22 0x16 332 #define RF_AGCTHRESH1_STEP1_23 0x17 333 #define RF_AGCTHRESH1_STEP1_24 0x18 334 #define RF_AGCTHRESH1_STEP1_25 0x19 335 #define RF_AGCTHRESH1_STEP1_26 0x1A 336 #define RF_AGCTHRESH1_STEP1_27 0x1B 337 #define RF_AGCTHRESH1_STEP1_28 0x1C 338 #define RF_AGCTHRESH1_STEP1_29 0x1D 339 #define RF_AGCTHRESH1_STEP1_30 0x1E 340 #define RF_AGCTHRESH1_STEP1_31 0x1F 343 #define RF_AGCTHRESH2_STEP2_0 0x00 344 #define RF_AGCTHRESH2_STEP2_1 0x10 345 #define RF_AGCTHRESH2_STEP2_2 0x20 346 #define RF_AGCTHRESH2_STEP2_3 0x30 347 #define RF_AGCTHRESH2_STEP2_4 0x40 348 #define RF_AGCTHRESH2_STEP2_5 0x50 349 #define RF_AGCTHRESH2_STEP2_6 0x60 350 #define RF_AGCTHRESH2_STEP2_7 0x70 351 #define RF_AGCTHRESH2_STEP2_8 0x80 352 #define RF_AGCTHRESH2_STEP2_9 0x90 353 #define RF_AGCTHRESH2_STEP2_10 0xA0 354 #define RF_AGCTHRESH2_STEP2_11 0xB0 355 #define RF_AGCTHRESH2_STEP2_12 0xC0 356 #define RF_AGCTHRESH2_STEP2_13 0xD0 357 #define RF_AGCTHRESH2_STEP2_14 0xE0 358 #define RF_AGCTHRESH2_STEP2_15 0xF0 360 #define RF_AGCTHRESH2_STEP3_0 0x00 361 #define RF_AGCTHRESH2_STEP3_1 0x01 362 #define RF_AGCTHRESH2_STEP3_2 0x02 363 #define RF_AGCTHRESH2_STEP3_3 0x03 364 #define RF_AGCTHRESH2_STEP3_4 0x04 365 #define RF_AGCTHRESH2_STEP3_5 0x05 366 #define RF_AGCTHRESH2_STEP3_6 0x06 367 #define RF_AGCTHRESH2_STEP3_7 0x07 368 #define RF_AGCTHRESH2_STEP3_8 0x08 369 #define RF_AGCTHRESH2_STEP3_9 0x09 370 #define RF_AGCTHRESH2_STEP3_10 0x0A 371 #define RF_AGCTHRESH2_STEP3_11 0x0B 372 #define RF_AGCTHRESH2_STEP3_12 0x0C 373 #define RF_AGCTHRESH2_STEP3_13 0x0D 374 #define RF_AGCTHRESH2_STEP3_14 0x0E 375 #define RF_AGCTHRESH2_STEP3_15 0x0F 378 #define RF_AGCTHRESH3_STEP4_0 0x00 379 #define RF_AGCTHRESH3_STEP4_1 0x10 380 #define RF_AGCTHRESH3_STEP4_2 0x20 381 #define RF_AGCTHRESH3_STEP4_3 0x30 382 #define RF_AGCTHRESH3_STEP4_4 0x40 383 #define RF_AGCTHRESH3_STEP4_5 0x50 384 #define RF_AGCTHRESH3_STEP4_6 0x60 385 #define RF_AGCTHRESH3_STEP4_7 0x70 386 #define RF_AGCTHRESH3_STEP4_8 0x80 387 #define RF_AGCTHRESH3_STEP4_9 0x90 388 #define RF_AGCTHRESH3_STEP4_10 0xA0 389 #define RF_AGCTHRESH3_STEP4_11 0xB0 390 #define RF_AGCTHRESH3_STEP4_12 0xC0 391 #define RF_AGCTHRESH3_STEP4_13 0xD0 392 #define RF_AGCTHRESH3_STEP4_14 0xE0 393 #define RF_AGCTHRESH3_STEP4_15 0xF0 395 #define RF_AGCTHRESH3_STEP5_0 0x00 396 #define RF_AGCTHRESH3_STEP5_1 0x01 397 #define RF_AGCTHRESH3_STEP5_2 0x02 398 #define RF_AGCTHRESH3_STEP5_3 0x03 399 #define RF_AGCTHRESH3_STEP5_4 0x04 400 #define RF_AGCTHRESH3_STEP5_5 0x05 401 #define RF_AGCTHRESH3_STEP5_6 0x06 402 #define RF_AGCTHRESH3_STEP5_7 0x07 403 #define RF_AGCTHRES33_STEP5_8 0x08 404 #define RF_AGCTHRESH3_STEP5_9 0x09 405 #define RF_AGCTHRESH3_STEP5_10 0x0A 406 #define RF_AGCTHRESH3_STEP5_11 0x0B 407 #define RF_AGCTHRESH3_STEP5_12 0x0C 408 #define RF_AGCTHRESH3_STEP5_13 0x0D 409 #define RF_AGCTHRESH3_STEP5_14 0x0E 410 #define RF_AGCTHRESH3_STEP5_15 0x0F 413 #define RF_LNA_ZIN_50 0x00 414 #define RF_LNA_ZIN_200 0x80 416 #define RF_LNA_LOWPOWER_OFF 0x00 417 #define RF_LNA_LOWPOWER_ON 0x40 419 #define RF_LNA_CURRENTGAIN 0x38 421 #define RF_LNA_GAINSELECT_AUTO 0x00 422 #define RF_LNA_GAINSELECT_MAX 0x01 423 #define RF_LNA_GAINSELECT_MAXMINUS6 0x02 424 #define RF_LNA_GAINSELECT_MAXMINUS12 0x03 425 #define RF_LNA_GAINSELECT_MAXMINUS24 0x04 426 #define RF_LNA_GAINSELECT_MAXMINUS36 0x05 427 #define RF_LNA_GAINSELECT_MAXMINUS48 0x06 430 #define RF_RXBW_DCCFREQ_000 0x00 431 #define RF_RXBW_DCCFREQ_001 0x20 432 #define RF_RXBW_DCCFREQ_010 0x40 433 #define RF_RXBW_DCCFREQ_011 0x60 434 #define RF_RXBW_DCCFREQ_100 0x80 435 #define RF_RXBW_DCCFREQ_101 0xA0 436 #define RF_RXBW_DCCFREQ_110 0xC0 437 #define RF_RXBW_DCCFREQ_111 0xE0 439 #define RF_RXBW_MANT_16 0x00 440 #define RF_RXBW_MANT_20 0x08 441 #define RF_RXBW_MANT_24 0x10 443 #define RF_RXBW_EXP_0 0x00 444 #define RF_RXBW_EXP_1 0x01 445 #define RF_RXBW_EXP_2 0x02 446 #define RF_RXBW_EXP_3 0x03 447 #define RF_RXBW_EXP_4 0x04 448 #define RF_RXBW_EXP_5 0x05 449 #define RF_RXBW_EXP_6 0x06 450 #define RF_RXBW_EXP_7 0x07 453 #define RF_AFCBW_DCCFREQAFC_000 0x00 454 #define RF_AFCBW_DCCFREQAFC_001 0x20 455 #define RF_AFCBW_DCCFREQAFC_010 0x40 456 #define RF_AFCBW_DCCFREQAFC_011 0x60 457 #define RF_AFCBW_DCCFREQAFC_100 0x80 458 #define RF_AFCBW_DCCFREQAFC_101 0xA0 459 #define RF_AFCBW_DCCFREQAFC_110 0xC0 460 #define RF_AFCBW_DCCFREQAFC_111 0xE0 462 #define RF_AFCBW_MANTAFC_16 0x00 463 #define RF_AFCBW_MANTAFC_20 0x08 464 #define RF_AFCBW_MANTAFC_24 0x10 466 #define RF_AFCBW_EXPAFC_0 0x00 467 #define RF_AFCBW_EXPAFC_1 0x01 468 #define RF_AFCBW_EXPAFC_2 0x02 469 #define RF_AFCBW_EXPAFC_3 0x03 470 #define RF_AFCBW_EXPAFC_4 0x04 471 #define RF_AFCBW_EXPAFC_5 0x05 472 #define RF_AFCBW_EXPAFC_6 0x06 473 #define RF_AFCBW_EXPAFC_7 0x07 476 #define RF_OOKPEAK_THRESHTYPE_FIXED 0x00 477 #define RF_OOKPEAK_THRESHTYPE_PEAK 0x40 478 #define RF_OOKPEAK_THRESHTYPE_AVERAGE 0x80 480 #define RF_OOKPEAK_PEAKTHRESHSTEP_000 0x00 481 #define RF_OOKPEAK_PEAKTHRESHSTEP_001 0x08 482 #define RF_OOKPEAK_PEAKTHRESHSTEP_010 0x10 483 #define RF_OOKPEAK_PEAKTHRESHSTEP_011 0x18 484 #define RF_OOKPEAK_PEAKTHRESHSTEP_100 0x20 485 #define RF_OOKPEAK_PEAKTHRESHSTEP_101 0x28 486 #define RF_OOKPEAK_PEAKTHRESHSTEP_110 0x30 487 #define RF_OOKPEAK_PEAKTHRESHSTEP_111 0x38 489 #define RF_OOKPEAK_PEAKTHRESHDEC_000 0x00 490 #define RF_OOKPEAK_PEAKTHRESHDEC_001 0x01 491 #define RF_OOKPEAK_PEAKTHRESHDEC_010 0x02 492 #define RF_OOKPEAK_PEAKTHRESHDEC_011 0x03 493 #define RF_OOKPEAK_PEAKTHRESHDEC_100 0x04 494 #define RF_OOKPEAK_PEAKTHRESHDEC_101 0x05 495 #define RF_OOKPEAK_PEAKTHRESHDEC_110 0x06 496 #define RF_OOKPEAK_PEAKTHRESHDEC_111 0x07 499 #define RF_OOKAVG_AVERAGETHRESHFILT_00 0x00 500 #define RF_OOKAVG_AVERAGETHRESHFILT_01 0x40 501 #define RF_OOKAVG_AVERAGETHRESHFILT_10 0x80 502 #define RF_OOKAVG_AVERAGETHRESHFILT_11 0xC0 505 #define RF_OOKFIX_FIXEDTHRESH_VALUE 0x06 508 #define RF_AFCFEI_FEI_DONE 0x40 509 #define RF_AFCFEI_FEI_START 0x20 510 #define RF_AFCFEI_AFC_DONE 0x10 511 #define RF_AFCFEI_AFCAUTOCLEAR_ON 0x08 512 #define RF_AFCFEI_AFCAUTOCLEAR_OFF 0x00 514 #define RF_AFCFEI_AFCAUTO_ON 0x04 515 #define RF_AFCFEI_AFCAUTO_OFF 0x00 517 #define RF_AFCFEI_AFC_CLEAR 0x02 518 #define RF_AFCFEI_AFC_START 0x01 521 #define RF_RSSI_FASTRX_ON 0x08 522 #define RF_RSSI_FASTRX_OFF 0x00 523 #define RF_RSSI_DONE 0x02 524 #define RF_RSSI_START 0x01 527 #define RF_DIOMAPPING1_DIO0_00 0x00 528 #define RF_DIOMAPPING1_DIO0_01 0x40 529 #define RF_DIOMAPPING1_DIO0_10 0x80 530 #define RF_DIOMAPPING1_DIO0_11 0xC0 532 #define RF_DIOMAPPING1_DIO1_00 0x00 533 #define RF_DIOMAPPING1_DIO1_01 0x10 534 #define RF_DIOMAPPING1_DIO1_10 0x20 535 #define RF_DIOMAPPING1_DIO1_11 0x30 537 #define RF_DIOMAPPING1_DIO2_00 0x00 538 #define RF_DIOMAPPING1_DIO2_01 0x04 539 #define RF_DIOMAPPING1_DIO2_10 0x08 540 #define RF_DIOMAPPING1_DIO2_11 0x0C 542 #define RF_DIOMAPPING1_DIO3_00 0x00 543 #define RF_DIOMAPPING1_DIO3_01 0x01 544 #define RF_DIOMAPPING1_DIO3_10 0x02 545 #define RF_DIOMAPPING1_DIO3_11 0x03 548 #define RF_DIOMAPPING2_DIO4_00 0x00 549 #define RF_DIOMAPPING2_DIO4_01 0x40 550 #define RF_DIOMAPPING2_DIO4_10 0x80 551 #define RF_DIOMAPPING2_DIO4_11 0xC0 553 #define RF_DIOMAPPING2_DIO5_00 0x00 554 #define RF_DIOMAPPING2_DIO5_01 0x10 555 #define RF_DIOMAPPING2_DIO5_10 0x20 556 #define RF_DIOMAPPING2_DIO5_11 0x30 558 #define RF_DIOMAPPING2_CLKOUT_32 0x00 559 #define RF_DIOMAPPING2_CLKOUT_16 0x01 560 #define RF_DIOMAPPING2_CLKOUT_8 0x02 561 #define RF_DIOMAPPING2_CLKOUT_4 0x03 562 #define RF_DIOMAPPING2_CLKOUT_2 0x04 563 #define RF_DIOMAPPING2_CLKOUT_1 0x05 564 #define RF_DIOMAPPING2_CLKOUT_RC 0x06 565 #define RF_DIOMAPPING2_CLKOUT_OFF 0x07 568 #define RF_IRQFLAGS1_MODEREADY 0x80 569 #define RF_IRQFLAGS1_RXREADY 0x40 570 #define RF_IRQFLAGS1_TXREADY 0x20 571 #define RF_IRQFLAGS1_PLLLOCK 0x10 572 #define RF_IRQFLAGS1_RSSI 0x08 573 #define RF_IRQFLAGS1_TIMEOUT 0x04 574 #define RF_IRQFLAGS1_AUTOMODE 0x02 575 #define RF_IRQFLAGS1_SYNCADDRESSMATCH 0x01 578 #define RF_IRQFLAGS2_FIFOFULL 0x80 579 #define RF_IRQFLAGS2_FIFONOTEMPTY 0x40 580 #define RF_IRQFLAGS2_FIFOLEVEL 0x20 581 #define RF_IRQFLAGS2_FIFOOVERRUN 0x10 582 #define RF_IRQFLAGS2_PACKETSENT 0x08 583 #define RF_IRQFLAGS2_PAYLOADREADY 0x04 584 #define RF_IRQFLAGS2_CRCOK 0x02 585 #define RF_IRQFLAGS2_LOWBAT 0x01 588 #define RF_RSSITHRESH_VALUE 0xE4 591 #define RF_RXTIMEOUT1_RXSTART_VALUE 0x00 594 #define RF_RXTIMEOUT2_RSSITHRESH_VALUE 0x00 597 #define RF_PREAMBLESIZE_MSB_VALUE 0x00 598 #define RF_PREAMBLESIZE_LSB_VALUE 0x03 601 #define RF_SYNC_ON 0x80 602 #define RF_SYNC_OFF 0x00 604 #define RF_SYNC_FIFOFILL_AUTO 0x00 605 #define RF_SYNC_FIFOFILL_MANUAL 0x40 607 #define RF_SYNC_SIZE_1 0x00 608 #define RF_SYNC_SIZE_2 0x08 609 #define RF_SYNC_SIZE_3 0x10 610 #define RF_SYNC_SIZE_4 0x18 611 #define RF_SYNC_SIZE_5 0x20 612 #define RF_SYNC_SIZE_6 0x28 613 #define RF_SYNC_SIZE_7 0x30 614 #define RF_SYNC_SIZE_8 0x38 616 #define RF_SYNC_TOL_0 0x00 617 #define RF_SYNC_TOL_1 0x01 618 #define RF_SYNC_TOL_2 0x02 619 #define RF_SYNC_TOL_3 0x03 620 #define RF_SYNC_TOL_4 0x04 621 #define RF_SYNC_TOL_5 0x05 622 #define RF_SYNC_TOL_6 0x06 623 #define RF_SYNC_TOL_7 0x07 626 #define RF_SYNC_BYTE1_VALUE 0x00 627 #define RF_SYNC_BYTE2_VALUE 0x00 628 #define RF_SYNC_BYTE3_VALUE 0x00 629 #define RF_SYNC_BYTE4_VALUE 0x00 630 #define RF_SYNC_BYTE5_VALUE 0x00 631 #define RF_SYNC_BYTE6_VALUE 0x00 632 #define RF_SYNC_BYTE7_VALUE 0x00 633 #define RF_SYNC_BYTE8_VALUE 0x00 636 #define RF_PACKET1_FORMAT_FIXED 0x00 637 #define RF_PACKET1_FORMAT_VARIABLE 0x80 639 #define RF_PACKET1_DCFREE_OFF 0x00 640 #define RF_PACKET1_DCFREE_MANCHESTER 0x20 641 #define RF_PACKET1_DCFREE_WHITENING 0x40 643 #define RF_PACKET1_CRC_ON 0x10 644 #define RF_PACKET1_CRC_OFF 0x00 646 #define RF_PACKET1_CRCAUTOCLEAR_ON 0x00 647 #define RF_PACKET1_CRCAUTOCLEAR_OFF 0x08 649 #define RF_PACKET1_ADRSFILTERING_OFF 0x00 650 #define RF_PACKET1_ADRSFILTERING_NODE 0x02 651 #define RF_PACKET1_ADRSFILTERING_NODEBROADCAST 0x04 654 #define RF_PAYLOADLENGTH_VALUE 0x40 657 #define RF_BROADCASTADDRESS_VALUE 0x00 660 #define RF_AUTOMODES_ENTER_OFF 0x00 661 #define RF_AUTOMODES_ENTER_FIFONOTEMPTY 0x20 662 #define RF_AUTOMODES_ENTER_FIFOLEVEL 0x40 663 #define RF_AUTOMODES_ENTER_CRCOK 0x60 664 #define RF_AUTOMODES_ENTER_PAYLOADREADY 0x80 665 #define RF_AUTOMODES_ENTER_SYNCADRSMATCH 0xA0 666 #define RF_AUTOMODES_ENTER_PACKETSENT 0xC0 667 #define RF_AUTOMODES_ENTER_FIFOEMPTY 0xE0 669 #define RF_AUTOMODES_EXIT_OFF 0x00 670 #define RF_AUTOMODES_EXIT_FIFOEMPTY 0x04 671 #define RF_AUTOMODES_EXIT_FIFOLEVEL 0x08 672 #define RF_AUTOMODES_EXIT_CRCOK 0x0C 673 #define RF_AUTOMODES_EXIT_PAYLOADREADY 0x10 674 #define RF_AUTOMODES_EXIT_SYNCADRSMATCH 0x14 675 #define RF_AUTOMODES_EXIT_PACKETSENT 0x18 676 #define RF_AUTOMODES_EXIT_RXTIMEOUT 0x1C 678 #define RF_AUTOMODES_INTERMEDIATE_SLEEP 0x00 679 #define RF_AUTOMODES_INTERMEDIATE_STANDBY 0x01 680 #define RF_AUTOMODES_INTERMEDIATE_RECEIVER 0x02 681 #define RF_AUTOMODES_INTERMEDIATE_TRANSMITTER 0x03 684 #define RF_FIFOTHRESH_TXSTART_FIFOTHRESH 0x00 685 #define RF_FIFOTHRESH_TXSTART_FIFONOTEMPTY 0x80 687 #define RF_FIFOTHRESH_VALUE 0x0F 690 #define RF_PACKET2_RXRESTARTDELAY_1BIT 0x00 691 #define RF_PACKET2_RXRESTARTDELAY_2BITS 0x10 692 #define RF_PACKET2_RXRESTARTDELAY_4BITS 0x20 693 #define RF_PACKET2_RXRESTARTDELAY_8BITS 0x30 694 #define RF_PACKET2_RXRESTARTDELAY_16BITS 0x40 695 #define RF_PACKET2_RXRESTARTDELAY_32BITS 0x50 696 #define RF_PACKET2_RXRESTARTDELAY_64BITS 0x60 697 #define RF_PACKET2_RXRESTARTDELAY_128BITS 0x70 698 #define RF_PACKET2_RXRESTARTDELAY_256BITS 0x80 699 #define RF_PACKET2_RXRESTARTDELAY_512BITS 0x90 700 #define RF_PACKET2_RXRESTARTDELAY_1024BITS 0xA0 701 #define RF_PACKET2_RXRESTARTDELAY_2048BITS 0xB0 702 #define RF_PACKET2_RXRESTARTDELAY_NONE 0xC0 703 #define RF_PACKET2_RXRESTART 0x04 705 #define RF_PACKET2_AUTORXRESTART_ON 0x02 706 #define RF_PACKET2_AUTORXRESTART_OFF 0x00 708 #define RF_PACKET2_AES_ON 0x01 709 #define RF_PACKET2_AES_OFF 0x00 712 #define RF_AESKEY1_VALUE 0x00 713 #define RF_AESKEY2_VALUE 0x00 714 #define RF_AESKEY3_VALUE 0x00 715 #define RF_AESKEY4_VALUE 0x00 716 #define RF_AESKEY5_VALUE 0x00 717 #define RF_AESKEY6_VALUE 0x00 718 #define RF_AESKEY7_VALUE 0x00 719 #define RF_AESKEY8_VALUE 0x00 720 #define RF_AESKEY9_VALUE 0x00 721 #define RF_AESKEY10_VALUE 0x00 722 #define RF_AESKEY11_VALUE 0x00 723 #define RF_AESKEY12_VALUE 0x00 724 #define RF_AESKEY13_VALUE 0x00 725 #define RF_AESKEY14_VALUE 0x00 726 #define RF_AESKEY15_VALUE 0x00 727 #define RF_AESKEY16_VALUE 0x00 730 #define RF_TEMP1_MEAS_START 0x08 731 #define RF_TEMP1_MEAS_RUNNING 0x04 732 #define RF_TEMP1_ADCLOWPOWER_ON 0x01 733 #define RF_TEMP1_ADCLOWPOWER_OFF 0x00 736 #define RF_DAGC_NORMAL 0x00 737 #define RF_DAGC_IMPROVED_LOWBETA1 0x20 738 #define RF_DAGC_IMPROVED_LOWBETA0 0x30 741 #define RF_TESTLNA_NORMAL 0x1B 742 #define RF_TESTLNA_SENSITIVE 0x2D 747 rfm_status_t
rf69_receive(rfm_reg_t* buf, rfm_reg_t* len, int16_t* lastrssi,
748 bool* rfm_packet_waiting);
749 rfm_status_t
rf69_send(
const rfm_reg_t* data, uint8_t len,
750 const uint8_t power);
754 rfm_status_t
_rf69_read(
const rfm_reg_t reg, rfm_reg_t* result);
755 rfm_status_t
_rf69_write(
const rfm_reg_t reg,
const rfm_reg_t val);
770 rfm_status_t spi_exchange_single(
const rfm_reg_t out, rfm_reg_t* in);
771 rfm_status_t spi_ss_assert(
void);
772 rfm_status_t spi_ss_deassert(
void);
rfm_status_t _rf69_fifo_write(const rfm_reg_t *src, uint8_t len)
Definition: ukhasnet-rfm69.c:174
rfm_status_t rf69_init(void)
Definition: ukhasnet-rfm69.c:41
rfm_status_t rf69_send(const rfm_reg_t *data, uint8_t len, const uint8_t power)
Definition: ukhasnet-rfm69.c:258
rfm_status_t _rf69_write(const rfm_reg_t reg, const rfm_reg_t val)
Definition: ukhasnet-rfm69.c:98
rfm_status_t _rf69_sample_rssi(int16_t *rssi)
Definition: ukhasnet-rfm69.c:411
rfm_status_t _rf69_read(const rfm_reg_t reg, rfm_reg_t *result)
Definition: ukhasnet-rfm69.c:73
rfm_status_t _rf69_burst_read(const rfm_reg_t reg, rfm_reg_t *dest, uint8_t len)
Definition: ukhasnet-rfm69.c:123
rfm_status_t spi_init(void)
rfm_status_t _rf69_burst_write(rfm_reg_t reg, const rfm_reg_t *src, uint8_t len)
Definition: ukhasnet-rfm69.c:150
rfm_status_t rf69_receive(rfm_reg_t *buf, rfm_reg_t *len, int16_t *lastrssi, bool *rfm_packet_waiting)
Definition: ukhasnet-rfm69.c:221
rfm_status_t rf69_set_mode(const rfm_reg_t newMode)
Definition: ukhasnet-rfm69.c:202
rfm_status_t rf69_read_temp(int8_t *temperature)
Definition: ukhasnet-rfm69.c:352
rfm_status_t _rf69_clear_fifo(void)
Definition: ukhasnet-rfm69.c:336