diff --git a/_c_c1101_8h_source.html b/_c_c1101_8h_source.html
index f7ff13ab..8f471252 100644
--- a/_c_c1101_8h_source.html
+++ b/_c_c1101_8h_source.html
@@ -84,7 +84,7 @@ $(document).ready(function(){initNavTree('_c_c1101_8h_source.html','');});
CC1101.h
-
1 #if !defined(_RADIOLIB_CC1101_H) && !defined(RADIOLIB_EXCLUDE_CC1101) 2 #define _RADIOLIB_CC1101_H 4 #include "../../TypeDef.h" 5 #include "../../Module.h" 7 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 10 #define CC1101_FREQUENCY_STEP_SIZE 396.7285156 11 #define CC1101_MAX_PACKET_LENGTH 63 12 #define CC1101_CRYSTAL_FREQ 26.0 13 #define CC1101_DIV_EXPONENT 16 16 #define CC1101_CMD_READ 0b10000000 17 #define CC1101_CMD_WRITE 0b00000000 18 #define CC1101_CMD_BURST 0b01000000 19 #define CC1101_CMD_ACCESS_STATUS_REG 0b01000000 20 #define CC1101_CMD_FIFO_RX 0b10000000 21 #define CC1101_CMD_FIFO_TX 0b00000000 22 #define CC1101_CMD_RESET 0x30 23 #define CC1101_CMD_FSTXON 0x31 24 #define CC1101_CMD_XOFF 0x32 25 #define CC1101_CMD_CAL 0x33 26 #define CC1101_CMD_RX 0x34 27 #define CC1101_CMD_TX 0x35 28 #define CC1101_CMD_IDLE 0x36 29 #define CC1101_CMD_WOR 0x38 30 #define CC1101_CMD_POWER_DOWN 0x39 31 #define CC1101_CMD_FLUSH_RX 0x3A 32 #define CC1101_CMD_FLUSH_TX 0x3B 33 #define CC1101_CMD_WOR_RESET 0x3C 34 #define CC1101_CMD_NOP 0x3D 37 #define CC1101_REG_IOCFG2 0x00 38 #define CC1101_REG_IOCFG1 0x01 39 #define CC1101_REG_IOCFG0 0x02 40 #define CC1101_REG_FIFOTHR 0x03 41 #define CC1101_REG_SYNC1 0x04 42 #define CC1101_REG_SYNC0 0x05 43 #define CC1101_REG_PKTLEN 0x06 44 #define CC1101_REG_PKTCTRL1 0x07 45 #define CC1101_REG_PKTCTRL0 0x08 46 #define CC1101_REG_ADDR 0x09 47 #define CC1101_REG_CHANNR 0x0A 48 #define CC1101_REG_FSCTRL1 0x0B 49 #define CC1101_REG_FSCTRL0 0x0C 50 #define CC1101_REG_FREQ2 0x0D 51 #define CC1101_REG_FREQ1 0x0E 52 #define CC1101_REG_FREQ0 0x0F 53 #define CC1101_REG_MDMCFG4 0x10 54 #define CC1101_REG_MDMCFG3 0x11 55 #define CC1101_REG_MDMCFG2 0x12 56 #define CC1101_REG_MDMCFG1 0x13 57 #define CC1101_REG_MDMCFG0 0x14 58 #define CC1101_REG_DEVIATN 0x15 59 #define CC1101_REG_MCSM2 0x16 60 #define CC1101_REG_MCSM1 0x17 61 #define CC1101_REG_MCSM0 0x18 62 #define CC1101_REG_FOCCFG 0x19 63 #define CC1101_REG_BSCFG 0x1A 64 #define CC1101_REG_AGCCTRL2 0x1B 65 #define CC1101_REG_AGCCTRL1 0x1C 66 #define CC1101_REG_AGCCTRL0 0x1D 67 #define CC1101_REG_WOREVT1 0x1E 68 #define CC1101_REG_WOREVT0 0x1F 69 #define CC1101_REG_WORCTRL 0x20 70 #define CC1101_REG_FREND1 0x21 71 #define CC1101_REG_FREND0 0x22 72 #define CC1101_REG_FSCAL3 0x23 73 #define CC1101_REG_FSCAL2 0x24 74 #define CC1101_REG_FSCAL1 0x25 75 #define CC1101_REG_FSCAL0 0x26 76 #define CC1101_REG_RCCTRL1 0x27 77 #define CC1101_REG_RCCTRL0 0x28 78 #define CC1101_REG_FSTEST 0x29 79 #define CC1101_REG_PTEST 0x2A 80 #define CC1101_REG_AGCTEST 0x2B 81 #define CC1101_REG_TEST2 0x2C 82 #define CC1101_REG_TEST1 0x2D 83 #define CC1101_REG_TEST0 0x2E 84 #define CC1101_REG_PARTNUM 0x30 85 #define CC1101_REG_VERSION 0x31 86 #define CC1101_REG_FREQEST 0x32 87 #define CC1101_REG_LQI 0x33 88 #define CC1101_REG_RSSI 0x34 89 #define CC1101_REG_MARCSTATE 0x35 90 #define CC1101_REG_WORTIME1 0x36 91 #define CC1101_REG_WORTIME0 0x37 92 #define CC1101_REG_PKTSTATUS 0x38 93 #define CC1101_REG_VCO_VC_DAC 0x39 94 #define CC1101_REG_TXBYTES 0x3A 95 #define CC1101_REG_RXBYTES 0x3B 96 #define CC1101_REG_RCCTRL1_STATUS 0x3C 97 #define CC1101_REG_RCCTRL0_STATUS 0x3D 98 #define CC1101_REG_PATABLE 0x3E 99 #define CC1101_REG_FIFO 0x3F 102 #define CC1101_GDO2_NORM 0b00000000 // 6 6 GDO2 output: active high (default) 103 #define CC1101_GDO2_INV 0b01000000 // 6 6 active low 106 #define CC1101_GDO1_DS_LOW 0b00000000 // 7 7 GDO1 output drive strength: low (default) 107 #define CC1101_GDO1_DS_HIGH 0b10000000 // 7 7 high 108 #define CC1101_GDO1_NORM 0b00000000 // 6 6 GDO1 output: active high (default) 109 #define CC1101_GDO1_INV 0b01000000 // 6 6 active low 112 #define CC1101_GDO0_TEMP_SENSOR_OFF 0b00000000 // 7 7 analog temperature sensor output: disabled (default) 113 #define CC1101_GDO0_TEMP_SENSOR_ON 0b10000000 // 7 0 enabled 114 #define CC1101_GDO0_NORM 0b00000000 // 6 6 GDO0 output: active high (default) 115 #define CC1101_GDO0_INV 0b01000000 // 6 6 active low 118 #define CC1101_GDOX_RX_FIFO_FULL 0x00 // 5 0 Rx FIFO full or above threshold 119 #define CC1101_GDOX_RX_FIFO_FULL_OR_PKT_END 0x01 // 5 0 Rx FIFO full or above threshold or reached packet end 120 #define CC1101_GDOX_TX_FIFO_ABOVE_THR 0x02 // 5 0 Tx FIFO above threshold 121 #define CC1101_GDOX_TX_FIFO_FULL 0x03 // 5 0 Tx FIFO full 122 #define CC1101_GDOX_RX_FIFO_OVERFLOW 0x04 // 5 0 Rx FIFO overflowed 123 #define CC1101_GDOX_TX_FIFO_UNDERFLOW 0x05 // 5 0 Tx FIFO underflowed 124 #define CC1101_GDOX_SYNC_WORD_SENT_OR_RECEIVED 0x06 // 5 0 sync word was sent or received 125 #define CC1101_GDOX_PKT_RECEIVED_CRC_OK 0x07 // 5 0 packet received and CRC check passed 126 #define CC1101_GDOX_PREAMBLE_QUALITY_REACHED 0x08 // 5 0 received preamble quality is above threshold 127 #define CC1101_GDOX_CHANNEL_CLEAR 0x09 // 5 0 RSSI level below threshold (channel is clear) 128 #define CC1101_GDOX_PLL_LOCKED 0x0A // 5 0 PLL is locked 129 #define CC1101_GDOX_SERIAL_CLOCK 0x0B // 5 0 serial data clock 130 #define CC1101_GDOX_SERIAL_DATA_SYNC 0x0C // 5 0 serial data output in: synchronous mode 131 #define CC1101_GDOX_SERIAL_DATA_ASYNC 0x0D // 5 0 asynchronous mode 132 #define CC1101_GDOX_CARRIER_SENSE 0x0E // 5 0 RSSI above threshold 133 #define CC1101_GDOX_CRC_OK 0x0F // 5 0 CRC check passed 134 #define CC1101_GDOX_RX_HARD_DATA1 0x16 // 5 0 direct access to demodulated data 135 #define CC1101_GDOX_RX_HARD_DATA0 0x17 // 5 0 direct access to demodulated data 136 #define CC1101_GDOX_PA_PD 0x1B // 5 0 power amplifier circuit is powered down 137 #define CC1101_GDOX_LNA_PD 0x1C // 5 0 low-noise amplifier circuit is powered down 138 #define CC1101_GDOX_RX_SYMBOL_TICK 0x1D // 5 0 direct access to symbol tick of received data 139 #define CC1101_GDOX_WOR_EVNT0 0x24 // 5 0 wake-on-radio event 0 140 #define CC1101_GDOX_WOR_EVNT1 0x25 // 5 0 wake-on-radio event 1 141 #define CC1101_GDOX_CLK_256 0x26 // 5 0 256 Hz clock 142 #define CC1101_GDOX_CLK_32K 0x27 // 5 0 32 kHz clock 143 #define CC1101_GDOX_CHIP_RDYN 0x29 // 5 0 (default for GDO2) 144 #define CC1101_GDOX_XOSC_STABLE 0x2B // 5 0 145 #define CC1101_GDOX_HIGH_Z 0x2E // 5 0 high impedance state (default for GDO1) 146 #define CC1101_GDOX_HW_TO_0 0x2F // 5 0 147 #define CC1101_GDOX_CLOCK_XOSC_1 0x30 // 5 0 crystal oscillator clock: f = f(XOSC)/1 148 #define CC1101_GDOX_CLOCK_XOSC_1_5 0x31 // 5 0 f = f(XOSC)/1.5 149 #define CC1101_GDOX_CLOCK_XOSC_2 0x32 // 5 0 f = f(XOSC)/2 150 #define CC1101_GDOX_CLOCK_XOSC_3 0x33 // 5 0 f = f(XOSC)/3 151 #define CC1101_GDOX_CLOCK_XOSC_4 0x34 // 5 0 f = f(XOSC)/4 152 #define CC1101_GDOX_CLOCK_XOSC_6 0x35 // 5 0 f = f(XOSC)/6 153 #define CC1101_GDOX_CLOCK_XOSC_8 0x36 // 5 0 f = f(XOSC)/8 154 #define CC1101_GDOX_CLOCK_XOSC_12 0x37 // 5 0 f = f(XOSC)/12 155 #define CC1101_GDOX_CLOCK_XOSC_16 0x38 // 5 0 f = f(XOSC)/16 156 #define CC1101_GDOX_CLOCK_XOSC_24 0x39 // 5 0 f = f(XOSC)/24 157 #define CC1101_GDOX_CLOCK_XOSC_32 0x3A // 5 0 f = f(XOSC)/32 158 #define CC1101_GDOX_CLOCK_XOSC_48 0x3B // 5 0 f = f(XOSC)/48 159 #define CC1101_GDOX_CLOCK_XOSC_64 0x3C // 5 0 f = f(XOSC)/64 160 #define CC1101_GDOX_CLOCK_XOSC_96 0x3D // 5 0 f = f(XOSC)/96 161 #define CC1101_GDOX_CLOCK_XOSC_128 0x3E // 5 0 f = f(XOSC)/128 162 #define CC1101_GDOX_CLOCK_XOSC_192 0x3F // 5 0 f = f(XOSC)/192 (default for GDO0) 165 #define CC1101_ADC_RETENTION_OFF 0b00000000 // 6 6 do not retain ADC settings in sleep mode (default) 166 #define CC1101_ADC_RETENTION_ON 0b01000000 // 6 6 retain ADC settings in sleep mode 167 #define CC1101_RX_ATTEN_0_DB 0b00000000 // 5 4 Rx attenuation: 0 dB (default) 168 #define CC1101_RX_ATTEN_6_DB 0b00010000 // 5 4 6 dB 169 #define CC1101_RX_ATTEN_12_DB 0b00100000 // 5 4 12 dB 170 #define CC1101_RX_ATTEN_18_DB 0b00110000 // 5 4 18 dB 171 #define CC1101_FIFO_THR 0b00000111 // 5 4 Rx FIFO threshold [bytes] = CC1101_FIFO_THR * 4; Tx FIFO threshold [bytes] = 65 - (CC1101_FIFO_THR * 4) 174 #define CC1101_SYNC_WORD_MSB 0xD3 // 7 0 sync word MSB 177 #define CC1101_SYNC_WORD_LSB 0x91 // 7 0 sync word LSB 180 #define CC1101_PACKET_LENGTH 0xFF // 7 0 packet length in bytes 183 #define CC1101_PQT 0x00 // 7 5 preamble quality threshold 184 #define CC1101_CRC_AUTOFLUSH_OFF 0b00000000 // 3 3 automatic Rx FIFO flush on CRC check fail: disabled (default) 185 #define CC1101_CRC_AUTOFLUSH_ON 0b00001000 // 3 3 enabled 186 #define CC1101_APPEND_STATUS_OFF 0b00000000 // 2 2 append 2 status bytes to packet: disabled 187 #define CC1101_APPEND_STATUS_ON 0b00000100 // 2 2 enabled (default) 188 #define CC1101_ADR_CHK_NONE 0b00000000 // 1 0 address check: none (default) 189 #define CC1101_ADR_CHK_NO_BROADCAST 0b00000001 // 1 0 without broadcast 190 #define CC1101_ADR_CHK_SINGLE_BROADCAST 0b00000010 // 1 0 broadcast address 0x00 191 #define CC1101_ADR_CHK_DOUBLE_BROADCAST 0b00000011 // 1 0 broadcast addresses 0x00 and 0xFF 194 #define CC1101_WHITE_DATA_OFF 0b00000000 // 6 6 data whitening: disabled 195 #define CC1101_WHITE_DATA_ON 0b01000000 // 6 6 enabled (default) 196 #define CC1101_PKT_FORMAT_NORMAL 0b00000000 // 5 4 packet format: normal (FIFOs) 197 #define CC1101_PKT_FORMAT_SYNCHRONOUS 0b00010000 // 5 4 synchronous serial 198 #define CC1101_PKT_FORMAT_RANDOM 0b00100000 // 5 4 random transmissions 199 #define CC1101_PKT_FORMAT_ASYNCHRONOUS 0b00110000 // 5 4 asynchronous serial 200 #define CC1101_CRC_OFF 0b00000000 // 2 2 CRC disabled 201 #define CC1101_CRC_ON 0b00000100 // 2 2 CRC enabled (default) 202 #define CC1101_LENGTH_CONFIG_FIXED 0b00000000 // 1 0 packet length: fixed 203 #define CC1101_LENGTH_CONFIG_VARIABLE 0b00000001 // 1 0 variable (default) 204 #define CC1101_LENGTH_CONFIG_INFINITE 0b00000010 // 1 0 infinite 207 #define CC1101_DEVICE_ADDR 0x00 // 7 0 device address 210 #define CC1101_CHAN 0x00 // 7 0 channel number 213 #define CC1101_FREQ_IF 0x0F // 4 0 IF frequency setting; f_IF = (f(XOSC) / 2^10) * CC1101_FREQ_IF 216 #define CC1101_FREQOFF 0x00 // 7 0 base frequency offset (2s-compliment) 219 #define CC1101_FREQ_MSB 0x1E // 5 0 base frequency setting: f_carrier = (f(XOSC) / 2^16) * FREQ 220 #define CC1101_FREQ_MID 0xC4 // 7 0 where f(XOSC) = 26 MHz 221 #define CC1101_FREQ_LSB 0xEC // 7 0 FREQ = 3-byte value of FREQ registers 224 #define CC1101_CHANBW_E 0b10000000 // 7 6 channel bandwidth: BW_channel = f(XOSC) / (8 * (4 + CHANBW_M)*2^CHANBW_E) [Hz] 225 #define CC1101_CHANBW_M 0b00000000 // 5 4 default value for 26 MHz crystal: 203 125 Hz 226 #define CC1101_DRATE_E 0x0C // 3 0 symbol rate: R_data = (((256 + DRATE_M) * 2^DRATE_E) / 2^28) * f(XOSC) [Baud] 229 #define CC1101_DRATE_M 0x22 // 7 0 default value for 26 MHz crystal: 115 051 Baud 232 #define CC1101_DEM_DCFILT_OFF 0b10000000 // 7 7 digital DC filter: disabled 233 #define CC1101_DEM_DCFILT_ON 0b00000000 // 7 7 enabled - only for data rates above 250 kBaud (default) 234 #define CC1101_MOD_FORMAT_2_FSK 0b00000000 // 6 4 modulation format: 2-FSK (default) 235 #define CC1101_MOD_FORMAT_GFSK 0b00010000 // 6 4 GFSK 236 #define CC1101_MOD_FORMAT_ASK_OOK 0b00110000 // 6 4 ASK/OOK 237 #define CC1101_MOD_FORMAT_4_FSK 0b01000000 // 6 4 4-FSK 238 #define CC1101_MOD_FORMAT_MFSK 0b01110000 // 6 4 MFSK - only for data rates above 26 kBaud 239 #define CC1101_MANCHESTER_EN_OFF 0b00000000 // 3 3 Manchester encoding: disabled (default) 240 #define CC1101_MANCHESTER_EN_ON 0b00001000 // 3 3 enabled 241 #define CC1101_SYNC_MODE_NONE 0b00000000 // 2 0 synchronization: no preamble/sync 242 #define CC1101_SYNC_MODE_15_16 0b00000001 // 2 0 15/16 sync word bits 243 #define CC1101_SYNC_MODE_16_16 0b00000010 // 2 0 16/16 sync word bits (default) 244 #define CC1101_SYNC_MODE_30_32 0b00000011 // 2 0 30/32 sync word bits 245 #define CC1101_SYNC_MODE_NONE_THR 0b00000100 // 2 0 no preamble sync, carrier sense above threshold 246 #define CC1101_SYNC_MODE_15_16_THR 0b00000101 // 2 0 15/16 sync word bits, carrier sense above threshold 247 #define CC1101_SYNC_MODE_16_16_THR 0b00000110 // 2 0 16/16 sync word bits, carrier sense above threshold 248 #define CC1101_SYNC_MODE_30_32_THR 0b00000111 // 2 0 30/32 sync word bits, carrier sense above threshold 251 #define CC1101_FEC_OFF 0b00000000 // 7 7 forward error correction: disabled (default) 252 #define CC1101_FEC_ON 0b10000000 // 7 7 enabled - only for fixed packet length 253 #define CC1101_NUM_PREAMBLE_2 0b00000000 // 6 4 number of preamble bytes: 2 254 #define CC1101_NUM_PREAMBLE_3 0b00010000 // 6 4 3 255 #define CC1101_NUM_PREAMBLE_4 0b00100000 // 6 4 4 (default) 256 #define CC1101_NUM_PREAMBLE_6 0b00110000 // 6 4 6 257 #define CC1101_NUM_PREAMBLE_8 0b01000000 // 6 4 8 258 #define CC1101_NUM_PREAMBLE_12 0b01010000 // 6 4 12 259 #define CC1101_NUM_PREAMBLE_16 0b01100000 // 6 4 16 260 #define CC1101_NUM_PREAMBLE_24 0b01110000 // 6 4 24 261 #define CC1101_CHANSPC_E 0x02 // 1 0 channel spacing: df_channel = (f(XOSC) / 2^18) * (256 + CHANSPC_M) * 2^CHANSPC_E [Hz] 264 #define CC1101_CHANSPC_M 0xF8 // 7 0 default value for 26 MHz crystal: 199 951 kHz 267 #define CC1101_DEVIATION_E 0b01000000 // 6 4 frequency deviation: f_dev = (f(XOSC) / 2^17) * (8 + DEVIATION_M) * 2^DEVIATION_E [Hz] 268 #define CC1101_DEVIATION_M 0b00000111 // 2 0 default value for 26 MHz crystal: +- 47 607 Hz 269 #define CC1101_MSK_PHASE_CHANGE_PERIOD 0x07 // 2 0 phase change symbol period fraction: 1 / (MSK_PHASE_CHANGE_PERIOD + 1) 272 #define CC1101_RX_TIMEOUT_RSSI_OFF 0b00000000 // 4 4 Rx timeout based on RSSI value: disabled (default) 273 #define CC1101_RX_TIMEOUT_RSSI_ON 0b00010000 // 4 4 enabled 274 #define CC1101_RX_TIMEOUT_QUAL_OFF 0b00000000 // 3 3 check for sync word on Rx timeout 275 #define CC1101_RX_TIMEOUT_QUAL_ON 0b00001000 // 3 3 check for PQI set on Rx timeout 276 #define CC1101_RX_TIMEOUT_OFF 0b00000111 // 2 0 Rx timeout: disabled (default) 277 #define CC1101_RX_TIMEOUT_MAX 0b00000000 // 2 0 max value (actual value depends on WOR_RES, EVENT0 and f(XOSC)) 280 #define CC1101_CCA_MODE_ALWAYS 0b00000000 // 5 4 clear channel indication: always 281 #define CC1101_CCA_MODE_RSSI_THR 0b00010000 // 5 4 RSSI below threshold 282 #define CC1101_CCA_MODE_RX_PKT 0b00100000 // 5 4 unless receiving packet 283 #define CC1101_CCA_MODE_RSSI_THR_RX_PKT 0b00110000 // 5 4 RSSI below threshold unless receiving packet (default) 284 #define CC1101_RXOFF_IDLE 0b00000000 // 3 2 next mode after packet reception: idle (default) 285 #define CC1101_RXOFF_FSTXON 0b00000100 // 3 2 FSTxOn 286 #define CC1101_RXOFF_TX 0b00001000 // 3 2 Tx 287 #define CC1101_RXOFF_RX 0b00001100 // 3 2 Rx 288 #define CC1101_TXOFF_IDLE 0b00000000 // 1 0 next mode after packet transmission: idle (default) 289 #define CC1101_TXOFF_FSTXON 0b00000001 // 1 0 FSTxOn 290 #define CC1101_TXOFF_TX 0b00000010 // 1 0 Tx 291 #define CC1101_TXOFF_RX 0b00000011 // 1 0 Rx 294 #define CC1101_FS_AUTOCAL_NEVER 0b00000000 // 5 4 automatic calibration: never (default) 295 #define CC1101_FS_AUTOCAL_IDLE_TO_RXTX 0b00010000 // 5 4 every transition from idle to Rx/Tx 296 #define CC1101_FS_AUTOCAL_RXTX_TO_IDLE 0b00100000 // 5 4 every transition from Rx/Tx to idle 297 #define CC1101_FS_AUTOCAL_RXTX_TO_IDLE_4TH 0b00110000 // 5 4 every 4th transition from Rx/Tx to idle 298 #define CC1101_PO_TIMEOUT_COUNT_1 0b00000000 // 3 2 number of counter expirations before CHP_RDYN goes low: 1 (default) 299 #define CC1101_PO_TIMEOUT_COUNT_16 0b00000100 // 3 2 16 300 #define CC1101_PO_TIMEOUT_COUNT_64 0b00001000 // 3 2 64 301 #define CC1101_PO_TIMEOUT_COUNT_256 0b00001100 // 3 2 256 302 #define CC1101_PIN_CTRL_OFF 0b00000000 // 1 1 pin radio control: disabled (default) 303 #define CC1101_PIN_CTRL_ON 0b00000010 // 1 1 enabled 304 #define CC1101_XOSC_FORCE_OFF 0b00000000 // 0 0 do not force XOSC to remain on in sleep (default) 305 #define CC1101_XOSC_FORCE_ON 0b00000001 // 0 0 force XOSC to remain on in sleep 308 #define CC1101_FOC_BS_CS_GATE_OFF 0b00000000 // 5 5 do not freeze frequency compensation until CS goes high 309 #define CC1101_FOC_BS_CS_GATE_ON 0b00100000 // 5 5 freeze frequency compensation until CS goes high (default) 310 #define CC1101_FOC_PRE_K 0b00000000 // 4 3 frequency compensation loop gain before sync word: K 311 #define CC1101_FOC_PRE_2K 0b00001000 // 4 3 2K 312 #define CC1101_FOC_PRE_3K 0b00010000 // 4 3 3K (default) 313 #define CC1101_FOC_PRE_4K 0b00011000 // 4 3 4K 314 #define CC1101_FOC_POST_K 0b00000000 // 2 2 frequency compensation loop gain after sync word: same as FOC_PRE 315 #define CC1101_FOC_POST_K_2 0b00000100 // 2 2 K/2 (default) 316 #define CC1101_FOC_LIMIT_NO_COMPENSATION 0b00000000 // 1 0 frequency compensation saturation point: no compensation - required for ASK/OOK 317 #define CC1101_FOC_LIMIT_BW_CHAN_8 0b00000001 // 1 0 +- BW_chan/8 318 #define CC1101_FOC_LIMIT_BW_CHAN_4 0b00000010 // 1 0 +- BW_chan/4 (default) 319 #define CC1101_FOC_LIMIT_BW_CHAN_2 0b00000011 // 1 0 +- BW_chan/2 322 #define CC1101_BS_PRE_KI 0b00000000 // 7 6 clock recovery integral gain before sync word: Ki 323 #define CC1101_BS_PRE_2KI 0b01000000 // 7 6 2Ki (default) 324 #define CC1101_BS_PRE_3KI 0b10000000 // 7 6 3Ki 325 #define CC1101_BS_PRE_4KI 0b11000000 // 7 6 4Ki 326 #define CC1101_BS_PRE_KP 0b00000000 // 5 4 clock recovery proportional gain before sync word: Kp 327 #define CC1101_BS_PRE_2KP 0b00010000 // 5 4 2Kp 328 #define CC1101_BS_PRE_3KP 0b00100000 // 5 4 3Kp (default) 329 #define CC1101_BS_PRE_4KP 0b00110000 // 5 4 4Kp 330 #define CC1101_BS_POST_KI 0b00000000 // 3 3 clock recovery integral gain after sync word: same as BS_PRE 331 #define CC1101_BS_POST_KI_2 0b00001000 // 3 3 Ki/2 (default) 332 #define CC1101_BS_POST_KP 0b00000000 // 2 2 clock recovery proportional gain after sync word: same as BS_PRE 333 #define CC1101_BS_POST_KP_1 0b00000100 // 2 2 Kp (default) 334 #define CC1101_BS_LIMIT_NO_COMPENSATION 0b00000000 // 1 0 data rate compensation saturation point: no compensation 335 #define CC1101_BS_LIMIT_3_125 0b00000001 // 1 0 +- 3.125 % 336 #define CC1101_BS_LIMIT_6_25 0b00000010 // 1 0 +- 6.25 % 337 #define CC1101_BS_LIMIT_12_5 0b00000011 // 1 0 +- 12.5 % 340 #define CC1101_MAX_DVGA_GAIN_0 0b00000000 // 7 6 reduce maximum available DVGA gain: no reduction (default) 341 #define CC1101_MAX_DVGA_GAIN_1 0b01000000 // 7 6 disable top gain setting 342 #define CC1101_MAX_DVGA_GAIN_2 0b10000000 // 7 6 disable top two gain setting 343 #define CC1101_MAX_DVGA_GAIN_3 0b11000000 // 7 6 disable top three gain setting 344 #define CC1101_LNA_GAIN_REDUCE_0_DB 0b00000000 // 5 3 reduce maximum LNA gain by: 0 dB (default) 345 #define CC1101_LNA_GAIN_REDUCE_2_6_DB 0b00001000 // 5 3 2.6 dB 346 #define CC1101_LNA_GAIN_REDUCE_6_1_DB 0b00010000 // 5 3 6.1 dB 347 #define CC1101_LNA_GAIN_REDUCE_7_4_DB 0b00011000 // 5 3 7.4 dB 348 #define CC1101_LNA_GAIN_REDUCE_9_2_DB 0b00100000 // 5 3 9.2 dB 349 #define CC1101_LNA_GAIN_REDUCE_11_5_DB 0b00101000 // 5 3 11.5 dB 350 #define CC1101_LNA_GAIN_REDUCE_14_6_DB 0b00110000 // 5 3 14.6 dB 351 #define CC1101_LNA_GAIN_REDUCE_17_1_DB 0b00111000 // 5 3 17.1 dB 352 #define CC1101_MAGN_TARGET_24_DB 0b00000000 // 2 0 average amplitude target for filter: 24 dB 353 #define CC1101_MAGN_TARGET_27_DB 0b00000001 // 2 0 27 dB 354 #define CC1101_MAGN_TARGET_30_DB 0b00000010 // 2 0 30 dB 355 #define CC1101_MAGN_TARGET_33_DB 0b00000011 // 2 0 33 dB (default) 356 #define CC1101_MAGN_TARGET_36_DB 0b00000100 // 2 0 36 dB 357 #define CC1101_MAGN_TARGET_38_DB 0b00000101 // 2 0 38 dB 358 #define CC1101_MAGN_TARGET_40_DB 0b00000110 // 2 0 40 dB 359 #define CC1101_MAGN_TARGET_42_DB 0b00000111 // 2 0 42 dB 362 #define CC1101_AGC_LNA_PRIORITY_LNA2 0b00000000 // 6 6 LNA priority setting: LNA2 first 363 #define CC1101_AGC_LNA_PRIORITY_LNA 0b01000000 // 6 6 LNA first (default) 364 #define CC1101_CARRIER_SENSE_REL_THR_OFF 0b00000000 // 5 4 RSSI relative change to assert carrier sense: disabled (default) 365 #define CC1101_CARRIER_SENSE_REL_THR_6_DB 0b00010000 // 5 4 6 dB 366 #define CC1101_CARRIER_SENSE_REL_THR_10_DB 0b00100000 // 5 4 10 dB 367 #define CC1101_CARRIER_SENSE_REL_THR_14_DB 0b00110000 // 5 4 14 dB 368 #define CC1101_CARRIER_SENSE_ABS_THR 0x00 // 3 0 RSSI threshold to assert carrier sense in 2s compliment, Thr = MAGN_TARGET + CARRIER_SENSE_ABS_TH [dB] 371 #define CC1101_HYST_LEVEL_NONE 0b00000000 // 7 6 AGC hysteresis level: none 372 #define CC1101_HYST_LEVEL_LOW 0b01000000 // 7 6 low 373 #define CC1101_HYST_LEVEL_MEDIUM 0b10000000 // 7 6 medium (default) 374 #define CC1101_HYST_LEVEL_HIGH 0b11000000 // 7 6 high 375 #define CC1101_WAIT_TIME_8_SAMPLES 0b00000000 // 5 4 AGC wait time: 8 samples 376 #define CC1101_WAIT_TIME_16_SAMPLES 0b00010000 // 5 4 16 samples (default) 377 #define CC1101_WAIT_TIME_24_SAMPLES 0b00100000 // 5 4 24 samples 378 #define CC1101_WAIT_TIME_32_SAMPLES 0b00110000 // 5 4 32 samples 379 #define CC1101_AGC_FREEZE_NEVER 0b00000000 // 3 2 freeze AGC gain: never (default) 380 #define CC1101_AGC_FREEZE_SYNC_WORD 0b00000100 // 3 2 when sync word is found 381 #define CC1101_AGC_FREEZE_MANUAL_A 0b00001000 // 3 2 manually freeze analog control 382 #define CC1101_AGC_FREEZE_MANUAL_AD 0b00001100 // 3 2 manually freeze analog and digital control 383 #define CC1101_FILTER_LENGTH_8 0b00000000 // 1 0 averaging length for channel filter: 8 samples 384 #define CC1101_FILTER_LENGTH_16 0b00000001 // 1 0 16 samples (default) 385 #define CC1101_FILTER_LENGTH_32 0b00000010 // 1 0 32 samples 386 #define CC1101_FILTER_LENGTH_64 0b00000011 // 1 0 64 samples 387 #define CC1101_ASK_OOK_BOUNDARY_4_DB 0b00000000 // 1 0 ASK/OOK decision boundary: 4 dB 388 #define CC1101_ASK_OOK_BOUNDARY_8_DB 0b00000001 // 1 0 8 dB (default) 389 #define CC1101_ASK_OOK_BOUNDARY_12_DB 0b00000010 // 1 0 12 dB 390 #define CC1101_ASK_OOK_BOUNDARY_16_DB 0b00000011 // 1 0 16 dB 393 #define CC1101_EVENT0_TIMEOUT_MSB 0x87 // 7 0 EVENT0 timeout: t_event0 = (750 / f(XOSC)) * EVENT0_TIMEOUT * 2^(5 * WOR_RES) [s] 394 #define CC1101_EVENT0_TIMEOUT_LSB 0x6B // 7 0 default value for 26 MHz crystal: 1.0 s 397 #define CC1101_RC_POWER_UP 0b00000000 // 7 7 power up RC oscillator 398 #define CC1101_RC_POWER_DOWN 0b10000000 // 7 7 power down RC oscillator 399 #define CC1101_EVENT1_TIMEOUT_4 0b00000000 // 6 4 EVENT1 timeout: 4 RC periods 400 #define CC1101_EVENT1_TIMEOUT_6 0b00010000 // 6 4 6 RC periods 401 #define CC1101_EVENT1_TIMEOUT_8 0b00100000 // 6 4 8 RC periods 402 #define CC1101_EVENT1_TIMEOUT_12 0b00110000 // 6 4 12 RC periods 403 #define CC1101_EVENT1_TIMEOUT_16 0b01000000 // 6 4 16 RC periods 404 #define CC1101_EVENT1_TIMEOUT_24 0b01010000 // 6 4 24 RC periods 405 #define CC1101_EVENT1_TIMEOUT_32 0b01100000 // 6 4 32 RC periods 406 #define CC1101_EVENT1_TIMEOUT_48 0b01110000 // 6 4 48 RC periods (default) 407 #define CC1101_RC_CAL_OFF 0b00000000 // 3 3 disable RC oscillator calibration 408 #define CC1101_RC_CAL_ON 0b00001000 // 3 3 enable RC oscillator calibration (default) 409 #define CC1101_WOR_RES_1 0b00000000 // 1 0 EVENT0 resolution: 1 period (default) 410 #define CC1101_WOR_RES_2_5 0b00000001 // 1 0 2^5 periods 411 #define CC1101_WOR_RES_2_10 0b00000010 // 1 0 2^10 periods 412 #define CC1101_WOR_RES_2_15 0b00000011 // 1 0 2^15 periods 415 #define CC1101_LNA_CURRENT 0x01 // 7 6 front-end LNA PTAT current output adjustment 416 #define CC1101_LNA2MIX_CURRENT 0x01 // 5 4 front-end PTAT output adjustment 417 #define CC1101_LODIV_BUF_CURRENT_RX 0x01 // 3 2 Rx LO buffer current adjustment 418 #define CC1101_MIX_CURRENT 0x02 // 1 0 mixer current adjustment 421 #define CC1101_LODIV_BUF_CURRENT_TX 0x01 // 5 4 Tx LO buffer current adjustment 422 #define CC1101_PA_POWER 0x00 // 2 0 set power amplifier power according to PATABLE 425 #define CC1101_CHP_CURR_CAL_OFF 0b00000000 // 5 4 disable charge pump calibration 426 #define CC1101_CHP_CURR_CAL_ON 0b00100000 // 5 4 enable charge pump calibration (default) 427 #define CC1101_FSCAL3 0x09 // 3 0 charge pump output current: I_out = I_0 * 2^(FSCAL3/4) [A] 430 #define CC1101_VCO_CORE_LOW 0b00000000 // 5 5 VCO: low (default) 431 #define CC1101_VCO_CORE_HIGH 0b00100000 // 5 5 high 432 #define CC1101_FSCAL2 0x0A // 4 0 VCO current result/override 435 #define CC1101_FSCAL1 0x20 // 5 0 capacitor array setting for coarse VCO tuning 438 #define CC1101_FSCAL0 0x0D // 6 0 frequency synthesizer calibration setting 441 #define CC1101_RCCTRL1 0x41 // 6 0 RC oscillator configuration 444 #define CC1101_RCCTRL0 0x00 // 6 0 RC oscillator configuration 447 #define CC1101_TEMP_SENS_IDLE_OFF 0x7F // 7 0 temperature sensor will not be available in idle mode (default) 448 #define CC1101_TEMP_SENS_IDLE_ON 0xBF // 7 0 temperature sensor will be available in idle mode 451 #define CC1101_VCO_SEL_CAL_OFF 0b00000000 // 1 1 disable VCO selection calibration stage 452 #define CC1101_VCO_SEL_CAL_ON 0b00000010 // 1 1 enable VCO selection calibration stage 455 #define CC1101_PARTNUM 0x00 458 #define CC1101_VERSION_CURRENT 0x14 459 #define CC1101_VERSION_LEGACY 0x04 462 #define CC1101_MARC_STATE_SLEEP 0x00 // 4 0 main radio control state: sleep 463 #define CC1101_MARC_STATE_IDLE 0x01 // 4 0 idle 464 #define CC1101_MARC_STATE_XOFF 0x02 // 4 0 XOFF 465 #define CC1101_MARC_STATE_VCOON_MC 0x03 // 4 0 VCOON_MC 466 #define CC1101_MARC_STATE_REGON_MC 0x04 // 4 0 REGON_MC 467 #define CC1101_MARC_STATE_MANCAL 0x05 // 4 0 MANCAL 468 #define CC1101_MARC_STATE_VCOON 0x06 // 4 0 VCOON 469 #define CC1101_MARC_STATE_REGON 0x07 // 4 0 REGON 470 #define CC1101_MARC_STATE_STARTCAL 0x08 // 4 0 STARTCAL 471 #define CC1101_MARC_STATE_BWBOOST 0x09 // 4 0 BWBOOST 472 #define CC1101_MARC_STATE_FS_LOCK 0x0A // 4 0 FS_LOCK 473 #define CC1101_MARC_STATE_IFADCON 0x0B // 4 0 IFADCON 474 #define CC1101_MARC_STATE_ENDCAL 0x0C // 4 0 ENDCAL 475 #define CC1101_MARC_STATE_RX 0x0D // 4 0 RX 476 #define CC1101_MARC_STATE_RX_END 0x0E // 4 0 RX_END 477 #define CC1101_MARC_STATE_RX_RST 0x0F // 4 0 RX_RST 478 #define CC1101_MARC_STATE_TXRX_SWITCH 0x10 // 4 0 TXRX_SWITCH 479 #define CC1101_MARC_STATE_RXFIFO_OVERFLOW 0x11 // 4 0 RXFIFO_OVERFLOW 480 #define CC1101_MARC_STATE_FSTXON 0x12 // 4 0 FSTXON 481 #define CC1101_MARC_STATE_TX 0x13 // 4 0 TX 482 #define CC1101_MARC_STATE_TX_END 0x14 // 4 0 TX_END 483 #define CC1101_MARC_STATE_RXTX_SWITCH 0x15 // 4 0 RXTX_SWITCH 484 #define CC1101_MARC_STATE_TXFIFO_UNDERFLOW 0x16 // 4 0 TXFIFO_UNDERFLOW 487 #define CC1101_WORTIME_MSB 0x00 // 7 0 WOR timer value 488 #define CC1101_WORTIME_LSB 0x00 // 7 0 491 #define CC1101_CRC_OK 0b10000000 // 7 7 CRC check passed 492 #define CC1101_CRC_ERROR 0b00000000 // 7 7 CRC check failed 493 #define CC1101_CS 0b01000000 // 6 6 carrier sense 494 #define CC1101_PQT_REACHED 0b00100000 // 5 5 preamble quality reached 495 #define CC1101_CCA 0b00010000 // 4 4 channel clear 496 #define CC1101_SFD 0b00001000 // 3 3 start of frame delimiter - sync word received 497 #define CC1101_GDO2_ACTIVE 0b00000100 // 2 2 GDO2 is active/asserted 498 #define CC1101_GDO0_ACTIVE 0b00000001 // 0 0 GDO0 is active/asserted 539 int16_t
begin(
float freq = 434.0,
float br = 48.0,
float freqDev = 48.0,
float rxBw = 135.0, int8_t power = 10, uint8_t preambleLength = 16);
553 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
565 int16_t
receive(uint8_t* data,
size_t len)
override;
604 void setGdo0Action(
void (*func)(
void), RADIOLIB_INTERRUPT_STATUS dir = FALLING);
618 void setGdo2Action(
void (*func)(
void), RADIOLIB_INTERRUPT_STATUS dir = FALLING);
637 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
655 int16_t
readData(uint8_t* data,
size_t len)
override;
717 int16_t
setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
732 int16_t
setSyncWord(uint8_t* syncWord, uint8_t len, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
752 int16_t
setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs = 0);
768 int16_t
setOOK(
bool enableOOK);
885 #ifndef RADIOLIB_GODMODE 891 uint8_t _rawRSSI = 0;
893 uint8_t _modulation = CC1101_MOD_FORMAT_2_FSK;
895 size_t _packetLength = 0;
896 bool _packetLengthQueried =
false;
897 uint8_t _packetLengthConfig = CC1101_LENGTH_CONFIG_VARIABLE;
899 bool _promiscuous =
false;
902 uint8_t _syncWordLength = 2;
906 int16_t directMode();
907 static void getExpMant(
float target, uint16_t mantOffset, uint8_t divExp, uint8_t expMax, uint8_t& exp, uint8_t& mant);
908 int16_t setPacketMode(uint8_t mode, uint8_t len);
911 int16_t SPIgetRegValue(uint8_t reg, uint8_t msb = 7, uint8_t lsb = 0);
912 int16_t SPIsetRegValue(uint8_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2);
913 void SPIreadRegisterBurst(uint8_t reg, uint8_t numBytes, uint8_t* inBytes);
914 uint8_t SPIreadRegister(uint8_t reg);
915 void SPIwriteRegisterBurst(uint8_t reg, uint8_t* data,
size_t len);
916 void SPIwriteRegister(uint8_t reg, uint8_t data);
918 void SPIsendCommand(uint8_t cmd);
uint8_t random()
Get one truly random byte from RSSI noise.
Definition: CC1101.cpp:735
+
1 #if !defined(_RADIOLIB_CC1101_H) && !defined(RADIOLIB_EXCLUDE_CC1101) 2 #define _RADIOLIB_CC1101_H 4 #include "../../TypeDef.h" 5 #include "../../Module.h" 7 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 10 #define CC1101_FREQUENCY_STEP_SIZE 396.7285156 11 #define CC1101_MAX_PACKET_LENGTH 63 12 #define CC1101_CRYSTAL_FREQ 26.0 13 #define CC1101_DIV_EXPONENT 16 16 #define CC1101_CMD_READ 0b10000000 17 #define CC1101_CMD_WRITE 0b00000000 18 #define CC1101_CMD_BURST 0b01000000 19 #define CC1101_CMD_ACCESS_STATUS_REG 0b01000000 20 #define CC1101_CMD_FIFO_RX 0b10000000 21 #define CC1101_CMD_FIFO_TX 0b00000000 22 #define CC1101_CMD_RESET 0x30 23 #define CC1101_CMD_FSTXON 0x31 24 #define CC1101_CMD_XOFF 0x32 25 #define CC1101_CMD_CAL 0x33 26 #define CC1101_CMD_RX 0x34 27 #define CC1101_CMD_TX 0x35 28 #define CC1101_CMD_IDLE 0x36 29 #define CC1101_CMD_WOR 0x38 30 #define CC1101_CMD_POWER_DOWN 0x39 31 #define CC1101_CMD_FLUSH_RX 0x3A 32 #define CC1101_CMD_FLUSH_TX 0x3B 33 #define CC1101_CMD_WOR_RESET 0x3C 34 #define CC1101_CMD_NOP 0x3D 37 #define CC1101_REG_IOCFG2 0x00 38 #define CC1101_REG_IOCFG1 0x01 39 #define CC1101_REG_IOCFG0 0x02 40 #define CC1101_REG_FIFOTHR 0x03 41 #define CC1101_REG_SYNC1 0x04 42 #define CC1101_REG_SYNC0 0x05 43 #define CC1101_REG_PKTLEN 0x06 44 #define CC1101_REG_PKTCTRL1 0x07 45 #define CC1101_REG_PKTCTRL0 0x08 46 #define CC1101_REG_ADDR 0x09 47 #define CC1101_REG_CHANNR 0x0A 48 #define CC1101_REG_FSCTRL1 0x0B 49 #define CC1101_REG_FSCTRL0 0x0C 50 #define CC1101_REG_FREQ2 0x0D 51 #define CC1101_REG_FREQ1 0x0E 52 #define CC1101_REG_FREQ0 0x0F 53 #define CC1101_REG_MDMCFG4 0x10 54 #define CC1101_REG_MDMCFG3 0x11 55 #define CC1101_REG_MDMCFG2 0x12 56 #define CC1101_REG_MDMCFG1 0x13 57 #define CC1101_REG_MDMCFG0 0x14 58 #define CC1101_REG_DEVIATN 0x15 59 #define CC1101_REG_MCSM2 0x16 60 #define CC1101_REG_MCSM1 0x17 61 #define CC1101_REG_MCSM0 0x18 62 #define CC1101_REG_FOCCFG 0x19 63 #define CC1101_REG_BSCFG 0x1A 64 #define CC1101_REG_AGCCTRL2 0x1B 65 #define CC1101_REG_AGCCTRL1 0x1C 66 #define CC1101_REG_AGCCTRL0 0x1D 67 #define CC1101_REG_WOREVT1 0x1E 68 #define CC1101_REG_WOREVT0 0x1F 69 #define CC1101_REG_WORCTRL 0x20 70 #define CC1101_REG_FREND1 0x21 71 #define CC1101_REG_FREND0 0x22 72 #define CC1101_REG_FSCAL3 0x23 73 #define CC1101_REG_FSCAL2 0x24 74 #define CC1101_REG_FSCAL1 0x25 75 #define CC1101_REG_FSCAL0 0x26 76 #define CC1101_REG_RCCTRL1 0x27 77 #define CC1101_REG_RCCTRL0 0x28 78 #define CC1101_REG_FSTEST 0x29 79 #define CC1101_REG_PTEST 0x2A 80 #define CC1101_REG_AGCTEST 0x2B 81 #define CC1101_REG_TEST2 0x2C 82 #define CC1101_REG_TEST1 0x2D 83 #define CC1101_REG_TEST0 0x2E 84 #define CC1101_REG_PARTNUM 0x30 85 #define CC1101_REG_VERSION 0x31 86 #define CC1101_REG_FREQEST 0x32 87 #define CC1101_REG_LQI 0x33 88 #define CC1101_REG_RSSI 0x34 89 #define CC1101_REG_MARCSTATE 0x35 90 #define CC1101_REG_WORTIME1 0x36 91 #define CC1101_REG_WORTIME0 0x37 92 #define CC1101_REG_PKTSTATUS 0x38 93 #define CC1101_REG_VCO_VC_DAC 0x39 94 #define CC1101_REG_TXBYTES 0x3A 95 #define CC1101_REG_RXBYTES 0x3B 96 #define CC1101_REG_RCCTRL1_STATUS 0x3C 97 #define CC1101_REG_RCCTRL0_STATUS 0x3D 98 #define CC1101_REG_PATABLE 0x3E 99 #define CC1101_REG_FIFO 0x3F 102 #define CC1101_GDO2_NORM 0b00000000 // 6 6 GDO2 output: active high (default) 103 #define CC1101_GDO2_INV 0b01000000 // 6 6 active low 106 #define CC1101_GDO1_DS_LOW 0b00000000 // 7 7 GDO1 output drive strength: low (default) 107 #define CC1101_GDO1_DS_HIGH 0b10000000 // 7 7 high 108 #define CC1101_GDO1_NORM 0b00000000 // 6 6 GDO1 output: active high (default) 109 #define CC1101_GDO1_INV 0b01000000 // 6 6 active low 112 #define CC1101_GDO0_TEMP_SENSOR_OFF 0b00000000 // 7 7 analog temperature sensor output: disabled (default) 113 #define CC1101_GDO0_TEMP_SENSOR_ON 0b10000000 // 7 0 enabled 114 #define CC1101_GDO0_NORM 0b00000000 // 6 6 GDO0 output: active high (default) 115 #define CC1101_GDO0_INV 0b01000000 // 6 6 active low 118 #define CC1101_GDOX_RX_FIFO_FULL 0x00 // 5 0 Rx FIFO full or above threshold 119 #define CC1101_GDOX_RX_FIFO_FULL_OR_PKT_END 0x01 // 5 0 Rx FIFO full or above threshold or reached packet end 120 #define CC1101_GDOX_TX_FIFO_ABOVE_THR 0x02 // 5 0 Tx FIFO above threshold 121 #define CC1101_GDOX_TX_FIFO_FULL 0x03 // 5 0 Tx FIFO full 122 #define CC1101_GDOX_RX_FIFO_OVERFLOW 0x04 // 5 0 Rx FIFO overflowed 123 #define CC1101_GDOX_TX_FIFO_UNDERFLOW 0x05 // 5 0 Tx FIFO underflowed 124 #define CC1101_GDOX_SYNC_WORD_SENT_OR_RECEIVED 0x06 // 5 0 sync word was sent or received 125 #define CC1101_GDOX_PKT_RECEIVED_CRC_OK 0x07 // 5 0 packet received and CRC check passed 126 #define CC1101_GDOX_PREAMBLE_QUALITY_REACHED 0x08 // 5 0 received preamble quality is above threshold 127 #define CC1101_GDOX_CHANNEL_CLEAR 0x09 // 5 0 RSSI level below threshold (channel is clear) 128 #define CC1101_GDOX_PLL_LOCKED 0x0A // 5 0 PLL is locked 129 #define CC1101_GDOX_SERIAL_CLOCK 0x0B // 5 0 serial data clock 130 #define CC1101_GDOX_SERIAL_DATA_SYNC 0x0C // 5 0 serial data output in: synchronous mode 131 #define CC1101_GDOX_SERIAL_DATA_ASYNC 0x0D // 5 0 asynchronous mode 132 #define CC1101_GDOX_CARRIER_SENSE 0x0E // 5 0 RSSI above threshold 133 #define CC1101_GDOX_CRC_OK 0x0F // 5 0 CRC check passed 134 #define CC1101_GDOX_RX_HARD_DATA1 0x16 // 5 0 direct access to demodulated data 135 #define CC1101_GDOX_RX_HARD_DATA0 0x17 // 5 0 direct access to demodulated data 136 #define CC1101_GDOX_PA_PD 0x1B // 5 0 power amplifier circuit is powered down 137 #define CC1101_GDOX_LNA_PD 0x1C // 5 0 low-noise amplifier circuit is powered down 138 #define CC1101_GDOX_RX_SYMBOL_TICK 0x1D // 5 0 direct access to symbol tick of received data 139 #define CC1101_GDOX_WOR_EVNT0 0x24 // 5 0 wake-on-radio event 0 140 #define CC1101_GDOX_WOR_EVNT1 0x25 // 5 0 wake-on-radio event 1 141 #define CC1101_GDOX_CLK_256 0x26 // 5 0 256 Hz clock 142 #define CC1101_GDOX_CLK_32K 0x27 // 5 0 32 kHz clock 143 #define CC1101_GDOX_CHIP_RDYN 0x29 // 5 0 (default for GDO2) 144 #define CC1101_GDOX_XOSC_STABLE 0x2B // 5 0 145 #define CC1101_GDOX_HIGH_Z 0x2E // 5 0 high impedance state (default for GDO1) 146 #define CC1101_GDOX_HW_TO_0 0x2F // 5 0 147 #define CC1101_GDOX_CLOCK_XOSC_1 0x30 // 5 0 crystal oscillator clock: f = f(XOSC)/1 148 #define CC1101_GDOX_CLOCK_XOSC_1_5 0x31 // 5 0 f = f(XOSC)/1.5 149 #define CC1101_GDOX_CLOCK_XOSC_2 0x32 // 5 0 f = f(XOSC)/2 150 #define CC1101_GDOX_CLOCK_XOSC_3 0x33 // 5 0 f = f(XOSC)/3 151 #define CC1101_GDOX_CLOCK_XOSC_4 0x34 // 5 0 f = f(XOSC)/4 152 #define CC1101_GDOX_CLOCK_XOSC_6 0x35 // 5 0 f = f(XOSC)/6 153 #define CC1101_GDOX_CLOCK_XOSC_8 0x36 // 5 0 f = f(XOSC)/8 154 #define CC1101_GDOX_CLOCK_XOSC_12 0x37 // 5 0 f = f(XOSC)/12 155 #define CC1101_GDOX_CLOCK_XOSC_16 0x38 // 5 0 f = f(XOSC)/16 156 #define CC1101_GDOX_CLOCK_XOSC_24 0x39 // 5 0 f = f(XOSC)/24 157 #define CC1101_GDOX_CLOCK_XOSC_32 0x3A // 5 0 f = f(XOSC)/32 158 #define CC1101_GDOX_CLOCK_XOSC_48 0x3B // 5 0 f = f(XOSC)/48 159 #define CC1101_GDOX_CLOCK_XOSC_64 0x3C // 5 0 f = f(XOSC)/64 160 #define CC1101_GDOX_CLOCK_XOSC_96 0x3D // 5 0 f = f(XOSC)/96 161 #define CC1101_GDOX_CLOCK_XOSC_128 0x3E // 5 0 f = f(XOSC)/128 162 #define CC1101_GDOX_CLOCK_XOSC_192 0x3F // 5 0 f = f(XOSC)/192 (default for GDO0) 165 #define CC1101_ADC_RETENTION_OFF 0b00000000 // 6 6 do not retain ADC settings in sleep mode (default) 166 #define CC1101_ADC_RETENTION_ON 0b01000000 // 6 6 retain ADC settings in sleep mode 167 #define CC1101_RX_ATTEN_0_DB 0b00000000 // 5 4 Rx attenuation: 0 dB (default) 168 #define CC1101_RX_ATTEN_6_DB 0b00010000 // 5 4 6 dB 169 #define CC1101_RX_ATTEN_12_DB 0b00100000 // 5 4 12 dB 170 #define CC1101_RX_ATTEN_18_DB 0b00110000 // 5 4 18 dB 171 #define CC1101_FIFO_THR 0b00000111 // 5 4 Rx FIFO threshold [bytes] = CC1101_FIFO_THR * 4; Tx FIFO threshold [bytes] = 65 - (CC1101_FIFO_THR * 4) 174 #define CC1101_SYNC_WORD_MSB 0xD3 // 7 0 sync word MSB 177 #define CC1101_SYNC_WORD_LSB 0x91 // 7 0 sync word LSB 180 #define CC1101_PACKET_LENGTH 0xFF // 7 0 packet length in bytes 183 #define CC1101_PQT 0x00 // 7 5 preamble quality threshold 184 #define CC1101_CRC_AUTOFLUSH_OFF 0b00000000 // 3 3 automatic Rx FIFO flush on CRC check fail: disabled (default) 185 #define CC1101_CRC_AUTOFLUSH_ON 0b00001000 // 3 3 enabled 186 #define CC1101_APPEND_STATUS_OFF 0b00000000 // 2 2 append 2 status bytes to packet: disabled 187 #define CC1101_APPEND_STATUS_ON 0b00000100 // 2 2 enabled (default) 188 #define CC1101_ADR_CHK_NONE 0b00000000 // 1 0 address check: none (default) 189 #define CC1101_ADR_CHK_NO_BROADCAST 0b00000001 // 1 0 without broadcast 190 #define CC1101_ADR_CHK_SINGLE_BROADCAST 0b00000010 // 1 0 broadcast address 0x00 191 #define CC1101_ADR_CHK_DOUBLE_BROADCAST 0b00000011 // 1 0 broadcast addresses 0x00 and 0xFF 194 #define CC1101_WHITE_DATA_OFF 0b00000000 // 6 6 data whitening: disabled 195 #define CC1101_WHITE_DATA_ON 0b01000000 // 6 6 enabled (default) 196 #define CC1101_PKT_FORMAT_NORMAL 0b00000000 // 5 4 packet format: normal (FIFOs) 197 #define CC1101_PKT_FORMAT_SYNCHRONOUS 0b00010000 // 5 4 synchronous serial 198 #define CC1101_PKT_FORMAT_RANDOM 0b00100000 // 5 4 random transmissions 199 #define CC1101_PKT_FORMAT_ASYNCHRONOUS 0b00110000 // 5 4 asynchronous serial 200 #define CC1101_CRC_OFF 0b00000000 // 2 2 CRC disabled 201 #define CC1101_CRC_ON 0b00000100 // 2 2 CRC enabled (default) 202 #define CC1101_LENGTH_CONFIG_FIXED 0b00000000 // 1 0 packet length: fixed 203 #define CC1101_LENGTH_CONFIG_VARIABLE 0b00000001 // 1 0 variable (default) 204 #define CC1101_LENGTH_CONFIG_INFINITE 0b00000010 // 1 0 infinite 207 #define CC1101_DEVICE_ADDR 0x00 // 7 0 device address 210 #define CC1101_CHAN 0x00 // 7 0 channel number 213 #define CC1101_FREQ_IF 0x0F // 4 0 IF frequency setting; f_IF = (f(XOSC) / 2^10) * CC1101_FREQ_IF 216 #define CC1101_FREQOFF 0x00 // 7 0 base frequency offset (2s-compliment) 219 #define CC1101_FREQ_MSB 0x1E // 5 0 base frequency setting: f_carrier = (f(XOSC) / 2^16) * FREQ 220 #define CC1101_FREQ_MID 0xC4 // 7 0 where f(XOSC) = 26 MHz 221 #define CC1101_FREQ_LSB 0xEC // 7 0 FREQ = 3-byte value of FREQ registers 224 #define CC1101_CHANBW_E 0b10000000 // 7 6 channel bandwidth: BW_channel = f(XOSC) / (8 * (4 + CHANBW_M)*2^CHANBW_E) [Hz] 225 #define CC1101_CHANBW_M 0b00000000 // 5 4 default value for 26 MHz crystal: 203 125 Hz 226 #define CC1101_DRATE_E 0x0C // 3 0 symbol rate: R_data = (((256 + DRATE_M) * 2^DRATE_E) / 2^28) * f(XOSC) [Baud] 229 #define CC1101_DRATE_M 0x22 // 7 0 default value for 26 MHz crystal: 115 051 Baud 232 #define CC1101_DEM_DCFILT_OFF 0b10000000 // 7 7 digital DC filter: disabled 233 #define CC1101_DEM_DCFILT_ON 0b00000000 // 7 7 enabled - only for data rates above 250 kBaud (default) 234 #define CC1101_MOD_FORMAT_2_FSK 0b00000000 // 6 4 modulation format: 2-FSK (default) 235 #define CC1101_MOD_FORMAT_GFSK 0b00010000 // 6 4 GFSK 236 #define CC1101_MOD_FORMAT_ASK_OOK 0b00110000 // 6 4 ASK/OOK 237 #define CC1101_MOD_FORMAT_4_FSK 0b01000000 // 6 4 4-FSK 238 #define CC1101_MOD_FORMAT_MFSK 0b01110000 // 6 4 MFSK - only for data rates above 26 kBaud 239 #define CC1101_MANCHESTER_EN_OFF 0b00000000 // 3 3 Manchester encoding: disabled (default) 240 #define CC1101_MANCHESTER_EN_ON 0b00001000 // 3 3 enabled 241 #define CC1101_SYNC_MODE_NONE 0b00000000 // 2 0 synchronization: no preamble/sync 242 #define CC1101_SYNC_MODE_15_16 0b00000001 // 2 0 15/16 sync word bits 243 #define CC1101_SYNC_MODE_16_16 0b00000010 // 2 0 16/16 sync word bits (default) 244 #define CC1101_SYNC_MODE_30_32 0b00000011 // 2 0 30/32 sync word bits 245 #define CC1101_SYNC_MODE_NONE_THR 0b00000100 // 2 0 no preamble sync, carrier sense above threshold 246 #define CC1101_SYNC_MODE_15_16_THR 0b00000101 // 2 0 15/16 sync word bits, carrier sense above threshold 247 #define CC1101_SYNC_MODE_16_16_THR 0b00000110 // 2 0 16/16 sync word bits, carrier sense above threshold 248 #define CC1101_SYNC_MODE_30_32_THR 0b00000111 // 2 0 30/32 sync word bits, carrier sense above threshold 251 #define CC1101_FEC_OFF 0b00000000 // 7 7 forward error correction: disabled (default) 252 #define CC1101_FEC_ON 0b10000000 // 7 7 enabled - only for fixed packet length 253 #define CC1101_NUM_PREAMBLE_2 0b00000000 // 6 4 number of preamble bytes: 2 254 #define CC1101_NUM_PREAMBLE_3 0b00010000 // 6 4 3 255 #define CC1101_NUM_PREAMBLE_4 0b00100000 // 6 4 4 (default) 256 #define CC1101_NUM_PREAMBLE_6 0b00110000 // 6 4 6 257 #define CC1101_NUM_PREAMBLE_8 0b01000000 // 6 4 8 258 #define CC1101_NUM_PREAMBLE_12 0b01010000 // 6 4 12 259 #define CC1101_NUM_PREAMBLE_16 0b01100000 // 6 4 16 260 #define CC1101_NUM_PREAMBLE_24 0b01110000 // 6 4 24 261 #define CC1101_CHANSPC_E 0x02 // 1 0 channel spacing: df_channel = (f(XOSC) / 2^18) * (256 + CHANSPC_M) * 2^CHANSPC_E [Hz] 264 #define CC1101_CHANSPC_M 0xF8 // 7 0 default value for 26 MHz crystal: 199 951 kHz 267 #define CC1101_DEVIATION_E 0b01000000 // 6 4 frequency deviation: f_dev = (f(XOSC) / 2^17) * (8 + DEVIATION_M) * 2^DEVIATION_E [Hz] 268 #define CC1101_DEVIATION_M 0b00000111 // 2 0 default value for 26 MHz crystal: +- 47 607 Hz 269 #define CC1101_MSK_PHASE_CHANGE_PERIOD 0x07 // 2 0 phase change symbol period fraction: 1 / (MSK_PHASE_CHANGE_PERIOD + 1) 272 #define CC1101_RX_TIMEOUT_RSSI_OFF 0b00000000 // 4 4 Rx timeout based on RSSI value: disabled (default) 273 #define CC1101_RX_TIMEOUT_RSSI_ON 0b00010000 // 4 4 enabled 274 #define CC1101_RX_TIMEOUT_QUAL_OFF 0b00000000 // 3 3 check for sync word on Rx timeout 275 #define CC1101_RX_TIMEOUT_QUAL_ON 0b00001000 // 3 3 check for PQI set on Rx timeout 276 #define CC1101_RX_TIMEOUT_OFF 0b00000111 // 2 0 Rx timeout: disabled (default) 277 #define CC1101_RX_TIMEOUT_MAX 0b00000000 // 2 0 max value (actual value depends on WOR_RES, EVENT0 and f(XOSC)) 280 #define CC1101_CCA_MODE_ALWAYS 0b00000000 // 5 4 clear channel indication: always 281 #define CC1101_CCA_MODE_RSSI_THR 0b00010000 // 5 4 RSSI below threshold 282 #define CC1101_CCA_MODE_RX_PKT 0b00100000 // 5 4 unless receiving packet 283 #define CC1101_CCA_MODE_RSSI_THR_RX_PKT 0b00110000 // 5 4 RSSI below threshold unless receiving packet (default) 284 #define CC1101_RXOFF_IDLE 0b00000000 // 3 2 next mode after packet reception: idle (default) 285 #define CC1101_RXOFF_FSTXON 0b00000100 // 3 2 FSTxOn 286 #define CC1101_RXOFF_TX 0b00001000 // 3 2 Tx 287 #define CC1101_RXOFF_RX 0b00001100 // 3 2 Rx 288 #define CC1101_TXOFF_IDLE 0b00000000 // 1 0 next mode after packet transmission: idle (default) 289 #define CC1101_TXOFF_FSTXON 0b00000001 // 1 0 FSTxOn 290 #define CC1101_TXOFF_TX 0b00000010 // 1 0 Tx 291 #define CC1101_TXOFF_RX 0b00000011 // 1 0 Rx 294 #define CC1101_FS_AUTOCAL_NEVER 0b00000000 // 5 4 automatic calibration: never (default) 295 #define CC1101_FS_AUTOCAL_IDLE_TO_RXTX 0b00010000 // 5 4 every transition from idle to Rx/Tx 296 #define CC1101_FS_AUTOCAL_RXTX_TO_IDLE 0b00100000 // 5 4 every transition from Rx/Tx to idle 297 #define CC1101_FS_AUTOCAL_RXTX_TO_IDLE_4TH 0b00110000 // 5 4 every 4th transition from Rx/Tx to idle 298 #define CC1101_PO_TIMEOUT_COUNT_1 0b00000000 // 3 2 number of counter expirations before CHP_RDYN goes low: 1 (default) 299 #define CC1101_PO_TIMEOUT_COUNT_16 0b00000100 // 3 2 16 300 #define CC1101_PO_TIMEOUT_COUNT_64 0b00001000 // 3 2 64 301 #define CC1101_PO_TIMEOUT_COUNT_256 0b00001100 // 3 2 256 302 #define CC1101_PIN_CTRL_OFF 0b00000000 // 1 1 pin radio control: disabled (default) 303 #define CC1101_PIN_CTRL_ON 0b00000010 // 1 1 enabled 304 #define CC1101_XOSC_FORCE_OFF 0b00000000 // 0 0 do not force XOSC to remain on in sleep (default) 305 #define CC1101_XOSC_FORCE_ON 0b00000001 // 0 0 force XOSC to remain on in sleep 308 #define CC1101_FOC_BS_CS_GATE_OFF 0b00000000 // 5 5 do not freeze frequency compensation until CS goes high 309 #define CC1101_FOC_BS_CS_GATE_ON 0b00100000 // 5 5 freeze frequency compensation until CS goes high (default) 310 #define CC1101_FOC_PRE_K 0b00000000 // 4 3 frequency compensation loop gain before sync word: K 311 #define CC1101_FOC_PRE_2K 0b00001000 // 4 3 2K 312 #define CC1101_FOC_PRE_3K 0b00010000 // 4 3 3K (default) 313 #define CC1101_FOC_PRE_4K 0b00011000 // 4 3 4K 314 #define CC1101_FOC_POST_K 0b00000000 // 2 2 frequency compensation loop gain after sync word: same as FOC_PRE 315 #define CC1101_FOC_POST_K_2 0b00000100 // 2 2 K/2 (default) 316 #define CC1101_FOC_LIMIT_NO_COMPENSATION 0b00000000 // 1 0 frequency compensation saturation point: no compensation - required for ASK/OOK 317 #define CC1101_FOC_LIMIT_BW_CHAN_8 0b00000001 // 1 0 +- BW_chan/8 318 #define CC1101_FOC_LIMIT_BW_CHAN_4 0b00000010 // 1 0 +- BW_chan/4 (default) 319 #define CC1101_FOC_LIMIT_BW_CHAN_2 0b00000011 // 1 0 +- BW_chan/2 322 #define CC1101_BS_PRE_KI 0b00000000 // 7 6 clock recovery integral gain before sync word: Ki 323 #define CC1101_BS_PRE_2KI 0b01000000 // 7 6 2Ki (default) 324 #define CC1101_BS_PRE_3KI 0b10000000 // 7 6 3Ki 325 #define CC1101_BS_PRE_4KI 0b11000000 // 7 6 4Ki 326 #define CC1101_BS_PRE_KP 0b00000000 // 5 4 clock recovery proportional gain before sync word: Kp 327 #define CC1101_BS_PRE_2KP 0b00010000 // 5 4 2Kp 328 #define CC1101_BS_PRE_3KP 0b00100000 // 5 4 3Kp (default) 329 #define CC1101_BS_PRE_4KP 0b00110000 // 5 4 4Kp 330 #define CC1101_BS_POST_KI 0b00000000 // 3 3 clock recovery integral gain after sync word: same as BS_PRE 331 #define CC1101_BS_POST_KI_2 0b00001000 // 3 3 Ki/2 (default) 332 #define CC1101_BS_POST_KP 0b00000000 // 2 2 clock recovery proportional gain after sync word: same as BS_PRE 333 #define CC1101_BS_POST_KP_1 0b00000100 // 2 2 Kp (default) 334 #define CC1101_BS_LIMIT_NO_COMPENSATION 0b00000000 // 1 0 data rate compensation saturation point: no compensation 335 #define CC1101_BS_LIMIT_3_125 0b00000001 // 1 0 +- 3.125 % 336 #define CC1101_BS_LIMIT_6_25 0b00000010 // 1 0 +- 6.25 % 337 #define CC1101_BS_LIMIT_12_5 0b00000011 // 1 0 +- 12.5 % 340 #define CC1101_MAX_DVGA_GAIN_0 0b00000000 // 7 6 reduce maximum available DVGA gain: no reduction (default) 341 #define CC1101_MAX_DVGA_GAIN_1 0b01000000 // 7 6 disable top gain setting 342 #define CC1101_MAX_DVGA_GAIN_2 0b10000000 // 7 6 disable top two gain setting 343 #define CC1101_MAX_DVGA_GAIN_3 0b11000000 // 7 6 disable top three gain setting 344 #define CC1101_LNA_GAIN_REDUCE_0_DB 0b00000000 // 5 3 reduce maximum LNA gain by: 0 dB (default) 345 #define CC1101_LNA_GAIN_REDUCE_2_6_DB 0b00001000 // 5 3 2.6 dB 346 #define CC1101_LNA_GAIN_REDUCE_6_1_DB 0b00010000 // 5 3 6.1 dB 347 #define CC1101_LNA_GAIN_REDUCE_7_4_DB 0b00011000 // 5 3 7.4 dB 348 #define CC1101_LNA_GAIN_REDUCE_9_2_DB 0b00100000 // 5 3 9.2 dB 349 #define CC1101_LNA_GAIN_REDUCE_11_5_DB 0b00101000 // 5 3 11.5 dB 350 #define CC1101_LNA_GAIN_REDUCE_14_6_DB 0b00110000 // 5 3 14.6 dB 351 #define CC1101_LNA_GAIN_REDUCE_17_1_DB 0b00111000 // 5 3 17.1 dB 352 #define CC1101_MAGN_TARGET_24_DB 0b00000000 // 2 0 average amplitude target for filter: 24 dB 353 #define CC1101_MAGN_TARGET_27_DB 0b00000001 // 2 0 27 dB 354 #define CC1101_MAGN_TARGET_30_DB 0b00000010 // 2 0 30 dB 355 #define CC1101_MAGN_TARGET_33_DB 0b00000011 // 2 0 33 dB (default) 356 #define CC1101_MAGN_TARGET_36_DB 0b00000100 // 2 0 36 dB 357 #define CC1101_MAGN_TARGET_38_DB 0b00000101 // 2 0 38 dB 358 #define CC1101_MAGN_TARGET_40_DB 0b00000110 // 2 0 40 dB 359 #define CC1101_MAGN_TARGET_42_DB 0b00000111 // 2 0 42 dB 362 #define CC1101_AGC_LNA_PRIORITY_LNA2 0b00000000 // 6 6 LNA priority setting: LNA2 first 363 #define CC1101_AGC_LNA_PRIORITY_LNA 0b01000000 // 6 6 LNA first (default) 364 #define CC1101_CARRIER_SENSE_REL_THR_OFF 0b00000000 // 5 4 RSSI relative change to assert carrier sense: disabled (default) 365 #define CC1101_CARRIER_SENSE_REL_THR_6_DB 0b00010000 // 5 4 6 dB 366 #define CC1101_CARRIER_SENSE_REL_THR_10_DB 0b00100000 // 5 4 10 dB 367 #define CC1101_CARRIER_SENSE_REL_THR_14_DB 0b00110000 // 5 4 14 dB 368 #define CC1101_CARRIER_SENSE_ABS_THR 0x00 // 3 0 RSSI threshold to assert carrier sense in 2s compliment, Thr = MAGN_TARGET + CARRIER_SENSE_ABS_TH [dB] 371 #define CC1101_HYST_LEVEL_NONE 0b00000000 // 7 6 AGC hysteresis level: none 372 #define CC1101_HYST_LEVEL_LOW 0b01000000 // 7 6 low 373 #define CC1101_HYST_LEVEL_MEDIUM 0b10000000 // 7 6 medium (default) 374 #define CC1101_HYST_LEVEL_HIGH 0b11000000 // 7 6 high 375 #define CC1101_WAIT_TIME_8_SAMPLES 0b00000000 // 5 4 AGC wait time: 8 samples 376 #define CC1101_WAIT_TIME_16_SAMPLES 0b00010000 // 5 4 16 samples (default) 377 #define CC1101_WAIT_TIME_24_SAMPLES 0b00100000 // 5 4 24 samples 378 #define CC1101_WAIT_TIME_32_SAMPLES 0b00110000 // 5 4 32 samples 379 #define CC1101_AGC_FREEZE_NEVER 0b00000000 // 3 2 freeze AGC gain: never (default) 380 #define CC1101_AGC_FREEZE_SYNC_WORD 0b00000100 // 3 2 when sync word is found 381 #define CC1101_AGC_FREEZE_MANUAL_A 0b00001000 // 3 2 manually freeze analog control 382 #define CC1101_AGC_FREEZE_MANUAL_AD 0b00001100 // 3 2 manually freeze analog and digital control 383 #define CC1101_FILTER_LENGTH_8 0b00000000 // 1 0 averaging length for channel filter: 8 samples 384 #define CC1101_FILTER_LENGTH_16 0b00000001 // 1 0 16 samples (default) 385 #define CC1101_FILTER_LENGTH_32 0b00000010 // 1 0 32 samples 386 #define CC1101_FILTER_LENGTH_64 0b00000011 // 1 0 64 samples 387 #define CC1101_ASK_OOK_BOUNDARY_4_DB 0b00000000 // 1 0 ASK/OOK decision boundary: 4 dB 388 #define CC1101_ASK_OOK_BOUNDARY_8_DB 0b00000001 // 1 0 8 dB (default) 389 #define CC1101_ASK_OOK_BOUNDARY_12_DB 0b00000010 // 1 0 12 dB 390 #define CC1101_ASK_OOK_BOUNDARY_16_DB 0b00000011 // 1 0 16 dB 393 #define CC1101_EVENT0_TIMEOUT_MSB 0x87 // 7 0 EVENT0 timeout: t_event0 = (750 / f(XOSC)) * EVENT0_TIMEOUT * 2^(5 * WOR_RES) [s] 394 #define CC1101_EVENT0_TIMEOUT_LSB 0x6B // 7 0 default value for 26 MHz crystal: 1.0 s 397 #define CC1101_RC_POWER_UP 0b00000000 // 7 7 power up RC oscillator 398 #define CC1101_RC_POWER_DOWN 0b10000000 // 7 7 power down RC oscillator 399 #define CC1101_EVENT1_TIMEOUT_4 0b00000000 // 6 4 EVENT1 timeout: 4 RC periods 400 #define CC1101_EVENT1_TIMEOUT_6 0b00010000 // 6 4 6 RC periods 401 #define CC1101_EVENT1_TIMEOUT_8 0b00100000 // 6 4 8 RC periods 402 #define CC1101_EVENT1_TIMEOUT_12 0b00110000 // 6 4 12 RC periods 403 #define CC1101_EVENT1_TIMEOUT_16 0b01000000 // 6 4 16 RC periods 404 #define CC1101_EVENT1_TIMEOUT_24 0b01010000 // 6 4 24 RC periods 405 #define CC1101_EVENT1_TIMEOUT_32 0b01100000 // 6 4 32 RC periods 406 #define CC1101_EVENT1_TIMEOUT_48 0b01110000 // 6 4 48 RC periods (default) 407 #define CC1101_RC_CAL_OFF 0b00000000 // 3 3 disable RC oscillator calibration 408 #define CC1101_RC_CAL_ON 0b00001000 // 3 3 enable RC oscillator calibration (default) 409 #define CC1101_WOR_RES_1 0b00000000 // 1 0 EVENT0 resolution: 1 period (default) 410 #define CC1101_WOR_RES_2_5 0b00000001 // 1 0 2^5 periods 411 #define CC1101_WOR_RES_2_10 0b00000010 // 1 0 2^10 periods 412 #define CC1101_WOR_RES_2_15 0b00000011 // 1 0 2^15 periods 415 #define CC1101_LNA_CURRENT 0x01 // 7 6 front-end LNA PTAT current output adjustment 416 #define CC1101_LNA2MIX_CURRENT 0x01 // 5 4 front-end PTAT output adjustment 417 #define CC1101_LODIV_BUF_CURRENT_RX 0x01 // 3 2 Rx LO buffer current adjustment 418 #define CC1101_MIX_CURRENT 0x02 // 1 0 mixer current adjustment 421 #define CC1101_LODIV_BUF_CURRENT_TX 0x01 // 5 4 Tx LO buffer current adjustment 422 #define CC1101_PA_POWER 0x00 // 2 0 set power amplifier power according to PATABLE 425 #define CC1101_CHP_CURR_CAL_OFF 0b00000000 // 5 4 disable charge pump calibration 426 #define CC1101_CHP_CURR_CAL_ON 0b00100000 // 5 4 enable charge pump calibration (default) 427 #define CC1101_FSCAL3 0x09 // 3 0 charge pump output current: I_out = I_0 * 2^(FSCAL3/4) [A] 430 #define CC1101_VCO_CORE_LOW 0b00000000 // 5 5 VCO: low (default) 431 #define CC1101_VCO_CORE_HIGH 0b00100000 // 5 5 high 432 #define CC1101_FSCAL2 0x0A // 4 0 VCO current result/override 435 #define CC1101_FSCAL1 0x20 // 5 0 capacitor array setting for coarse VCO tuning 438 #define CC1101_FSCAL0 0x0D // 6 0 frequency synthesizer calibration setting 441 #define CC1101_RCCTRL1 0x41 // 6 0 RC oscillator configuration 444 #define CC1101_RCCTRL0 0x00 // 6 0 RC oscillator configuration 447 #define CC1101_TEMP_SENS_IDLE_OFF 0x7F // 7 0 temperature sensor will not be available in idle mode (default) 448 #define CC1101_TEMP_SENS_IDLE_ON 0xBF // 7 0 temperature sensor will be available in idle mode 451 #define CC1101_VCO_SEL_CAL_OFF 0b00000000 // 1 1 disable VCO selection calibration stage 452 #define CC1101_VCO_SEL_CAL_ON 0b00000010 // 1 1 enable VCO selection calibration stage 455 #define CC1101_PARTNUM 0x00 458 #define CC1101_VERSION_CURRENT 0x14 459 #define CC1101_VERSION_LEGACY 0x04 462 #define CC1101_MARC_STATE_SLEEP 0x00 // 4 0 main radio control state: sleep 463 #define CC1101_MARC_STATE_IDLE 0x01 // 4 0 idle 464 #define CC1101_MARC_STATE_XOFF 0x02 // 4 0 XOFF 465 #define CC1101_MARC_STATE_VCOON_MC 0x03 // 4 0 VCOON_MC 466 #define CC1101_MARC_STATE_REGON_MC 0x04 // 4 0 REGON_MC 467 #define CC1101_MARC_STATE_MANCAL 0x05 // 4 0 MANCAL 468 #define CC1101_MARC_STATE_VCOON 0x06 // 4 0 VCOON 469 #define CC1101_MARC_STATE_REGON 0x07 // 4 0 REGON 470 #define CC1101_MARC_STATE_STARTCAL 0x08 // 4 0 STARTCAL 471 #define CC1101_MARC_STATE_BWBOOST 0x09 // 4 0 BWBOOST 472 #define CC1101_MARC_STATE_FS_LOCK 0x0A // 4 0 FS_LOCK 473 #define CC1101_MARC_STATE_IFADCON 0x0B // 4 0 IFADCON 474 #define CC1101_MARC_STATE_ENDCAL 0x0C // 4 0 ENDCAL 475 #define CC1101_MARC_STATE_RX 0x0D // 4 0 RX 476 #define CC1101_MARC_STATE_RX_END 0x0E // 4 0 RX_END 477 #define CC1101_MARC_STATE_RX_RST 0x0F // 4 0 RX_RST 478 #define CC1101_MARC_STATE_TXRX_SWITCH 0x10 // 4 0 TXRX_SWITCH 479 #define CC1101_MARC_STATE_RXFIFO_OVERFLOW 0x11 // 4 0 RXFIFO_OVERFLOW 480 #define CC1101_MARC_STATE_FSTXON 0x12 // 4 0 FSTXON 481 #define CC1101_MARC_STATE_TX 0x13 // 4 0 TX 482 #define CC1101_MARC_STATE_TX_END 0x14 // 4 0 TX_END 483 #define CC1101_MARC_STATE_RXTX_SWITCH 0x15 // 4 0 RXTX_SWITCH 484 #define CC1101_MARC_STATE_TXFIFO_UNDERFLOW 0x16 // 4 0 TXFIFO_UNDERFLOW 487 #define CC1101_WORTIME_MSB 0x00 // 7 0 WOR timer value 488 #define CC1101_WORTIME_LSB 0x00 // 7 0 491 #define CC1101_CRC_OK 0b10000000 // 7 7 CRC check passed 492 #define CC1101_CRC_ERROR 0b00000000 // 7 7 CRC check failed 493 #define CC1101_CS 0b01000000 // 6 6 carrier sense 494 #define CC1101_PQT_REACHED 0b00100000 // 5 5 preamble quality reached 495 #define CC1101_CCA 0b00010000 // 4 4 channel clear 496 #define CC1101_SFD 0b00001000 // 3 3 start of frame delimiter - sync word received 497 #define CC1101_GDO2_ACTIVE 0b00000100 // 2 2 GDO2 is active/asserted 498 #define CC1101_GDO0_ACTIVE 0b00000001 // 0 0 GDO0 is active/asserted 539 int16_t
begin(
float freq = 434.0,
float br = 48.0,
float freqDev = 48.0,
float rxBw = 135.0, int8_t power = 10, uint8_t preambleLength = 16);
553 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
565 int16_t
receive(uint8_t* data,
size_t len)
override;
604 void setGdo0Action(
void (*func)(
void), RADIOLIB_INTERRUPT_STATUS dir = FALLING);
618 void setGdo2Action(
void (*func)(
void), RADIOLIB_INTERRUPT_STATUS dir = FALLING);
637 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
655 int16_t
readData(uint8_t* data,
size_t len)
override;
717 int16_t
setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
732 int16_t
setSyncWord(uint8_t* syncWord, uint8_t len, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
752 int16_t
setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs = 0);
768 int16_t
setOOK(
bool enableOOK);
892 #ifndef RADIOLIB_GODMODE 898 uint8_t _rawRSSI = 0;
900 uint8_t _modulation = CC1101_MOD_FORMAT_2_FSK;
902 size_t _packetLength = 0;
903 bool _packetLengthQueried =
false;
904 uint8_t _packetLengthConfig = CC1101_LENGTH_CONFIG_VARIABLE;
906 bool _promiscuous =
false;
909 uint8_t _syncWordLength = 2;
913 int16_t directMode();
914 static void getExpMant(
float target, uint16_t mantOffset, uint8_t divExp, uint8_t expMax, uint8_t& exp, uint8_t& mant);
915 int16_t setPacketMode(uint8_t mode, uint8_t len);
918 int16_t SPIgetRegValue(uint8_t reg, uint8_t msb = 7, uint8_t lsb = 0);
919 int16_t SPIsetRegValue(uint8_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2);
920 void SPIreadRegisterBurst(uint8_t reg, uint8_t numBytes, uint8_t* inBytes);
921 uint8_t SPIreadRegister(uint8_t reg);
922 void SPIwriteRegisterBurst(uint8_t reg, uint8_t* data,
size_t len);
923 void SPIwriteRegister(uint8_t reg, uint8_t data);
925 void SPIsendCommand(uint8_t cmd);
uint8_t random()
Get one truly random byte from RSSI noise.
Definition: CC1101.cpp:735
int16_t packetMode()
Stops direct mode. It is required to call this method to switch from direct transmissions to packet-b...
Definition: CC1101.cpp:185
int16_t begin(float freq=434.0, float br=48.0, float freqDev=48.0, float rxBw=135.0, int8_t power=10, uint8_t preambleLength=16)
Initialization method.
Definition: CC1101.cpp:8
int16_t startTransmit(String &str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method, this one is non-blocking. Interrupt pin will be activated when transmission finishes.
Definition: PhysicalLayer.cpp:49
@@ -106,6 +106,7 @@ $(document).ready(function(){initNavTree('_c_c1101_8h_source.html','');});
int16_t startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override
Interrupt-driven binary transmit method. Overloads for string-based transmissions are implemented in ...
Definition: CC1101.cpp:215
int16_t standby() override
Sets the module to standby mode.
Definition: CC1101.cpp:141
void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn)
Some modules contain external RF switch controlled by two pins. This function gives RadioLib control ...
Definition: CC1101.cpp:731
+
int16_t getChipVersion()
Read version SPI register. Should return CC1101_VERSION_LEGACY (0x04) or CC1101_VERSION_CURRENT (0x14...
Definition: CC1101.cpp:755
int16_t fixedPacketLengthMode(uint8_t len=CC1101_MAX_PACKET_LENGTH)
Set modem in fixed packet length mode.
Definition: CC1101.cpp:624
Implements all common low-level SPI/UART/I2C methods to control the wireless module. Every module class contains one private instance of this class.
Definition: Module.h:17
int16_t transmit(__FlashStringHelper *fstr, uint8_t addr=0)
Arduino Flash String transmit method.
Definition: PhysicalLayer.cpp:8
diff --git a/_r_f69_8h_source.html b/_r_f69_8h_source.html
index dbe2a67e..bbf26598 100644
--- a/_r_f69_8h_source.html
+++ b/_r_f69_8h_source.html
@@ -84,7 +84,7 @@ $(document).ready(function(){initNavTree('_r_f69_8h_source.html','');});
RF69.h
-
1 #if !defined(_RADIOLIB_RF69_H) 2 #define _RADIOLIB_RF69_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_RF69) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define RF69_FREQUENCY_STEP_SIZE 61.03515625 14 #define RF69_MAX_PACKET_LENGTH 64 15 #define RF69_CRYSTAL_FREQ 32.0 16 #define RF69_DIV_EXPONENT 19 19 #define RF69_REG_FIFO 0x00 20 #define RF69_REG_OP_MODE 0x01 21 #define RF69_REG_DATA_MODUL 0x02 22 #define RF69_REG_BITRATE_MSB 0x03 23 #define RF69_REG_BITRATE_LSB 0x04 24 #define RF69_REG_FDEV_MSB 0x05 25 #define RF69_REG_FDEV_LSB 0x06 26 #define RF69_REG_FRF_MSB 0x07 27 #define RF69_REG_FRF_MID 0x08 28 #define RF69_REG_FRF_LSB 0x09 29 #define RF69_REG_OSC_1 0x0A 30 #define RF69_REG_AFC_CTRL 0x0B 31 #define RF69_REG_LISTEN_1 0x0D 32 #define RF69_REG_LISTEN_2 0x0E 33 #define RF69_REG_LISTEN_3 0x0F 34 #define RF69_REG_VERSION 0x10 35 #define RF69_REG_PA_LEVEL 0x11 36 #define RF69_REG_PA_RAMP 0x12 37 #define RF69_REG_OCP 0x13 38 #define RF69_REG_LNA 0x18 39 #define RF69_REG_RX_BW 0x19 40 #define RF69_REG_AFC_BW 0x1A 41 #define RF69_REG_OOK_PEAK 0x1B 42 #define RF69_REG_OOK_AVG 0x1C 43 #define RF69_REG_OOK_FIX 0x1D 44 #define RF69_REG_AFC_FEI 0x1E 45 #define RF69_REG_AFC_MSB 0x1F 46 #define RF69_REG_AFC_LSB 0x20 47 #define RF69_REG_FEI_MSB 0x21 48 #define RF69_REG_FEI_LSB 0x22 49 #define RF69_REG_RSSI_CONFIG 0x23 50 #define RF69_REG_RSSI_VALUE 0x24 51 #define RF69_REG_DIO_MAPPING_1 0x25 52 #define RF69_REG_DIO_MAPPING_2 0x26 53 #define RF69_REG_IRQ_FLAGS_1 0x27 54 #define RF69_REG_IRQ_FLAGS_2 0x28 55 #define RF69_REG_RSSI_THRESH 0x29 56 #define RF69_REG_RX_TIMEOUT_1 0x2A 57 #define RF69_REG_RX_TIMEOUT_2 0x2B 58 #define RF69_REG_PREAMBLE_MSB 0x2C 59 #define RF69_REG_PREAMBLE_LSB 0x2D 60 #define RF69_REG_SYNC_CONFIG 0x2E 61 #define RF69_REG_SYNC_VALUE_1 0x2F 62 #define RF69_REG_SYNC_VALUE_2 0x30 63 #define RF69_REG_SYNC_VALUE_3 0x31 64 #define RF69_REG_SYNC_VALUE_4 0x32 65 #define RF69_REG_SYNC_VALUE_5 0x33 66 #define RF69_REG_SYNC_VALUE_6 0x34 67 #define RF69_REG_SYNC_VALUE_7 0x35 68 #define RF69_REG_SYNC_VALUE_8 0x36 69 #define RF69_REG_PACKET_CONFIG_1 0x37 70 #define RF69_REG_PAYLOAD_LENGTH 0x38 71 #define RF69_REG_NODE_ADRS 0x39 72 #define RF69_REG_BROADCAST_ADRS 0x3A 73 #define RF69_REG_AUTO_MODES 0x3B 74 #define RF69_REG_FIFO_THRESH 0x3C 75 #define RF69_REG_PACKET_CONFIG_2 0x3D 76 #define RF69_REG_AES_KEY_1 0x3E 77 #define RF69_REG_AES_KEY_2 0x3F 78 #define RF69_REG_AES_KEY_3 0x40 79 #define RF69_REG_AES_KEY_4 0x41 80 #define RF69_REG_AES_KEY_5 0x42 81 #define RF69_REG_AES_KEY_6 0x43 82 #define RF69_REG_AES_KEY_7 0x44 83 #define RF69_REG_AES_KEY_8 0x45 84 #define RF69_REG_AES_KEY_9 0x46 85 #define RF69_REG_AES_KEY_10 0x47 86 #define RF69_REG_AES_KEY_11 0x48 87 #define RF69_REG_AES_KEY_12 0x49 88 #define RF69_REG_AES_KEY_13 0x4A 89 #define RF69_REG_AES_KEY_14 0x4B 90 #define RF69_REG_AES_KEY_15 0x4C 91 #define RF69_REG_AES_KEY_16 0x4D 92 #define RF69_REG_TEMP_1 0x4E 93 #define RF69_REG_TEMP_2 0x4F 94 #define RF69_REG_TEST_PA1 0x5A 95 #define RF69_REG_TEST_PA2 0x5C 96 #define RF69_REG_TEST_DAGC 0x6F 100 #define RF69_SEQUENCER_OFF 0b00000000 // 7 7 disable automatic sequencer 101 #define RF69_SEQUENCER_ON 0b10000000 // 7 7 enable automatic sequencer 102 #define RF69_LISTEN_OFF 0b00000000 // 6 6 disable Listen mode 103 #define RF69_LISTEN_ON 0b01000000 // 6 6 enable Listen mode 104 #define RF69_LISTEN_ABORT 0b00100000 // 5 5 abort Listen mode (has to be set together with RF69_LISTEN_OFF) 105 #define RF69_SLEEP 0b00000000 // 4 2 sleep 106 #define RF69_STANDBY 0b00000100 // 4 2 standby 107 #define RF69_FS 0b00001000 // 4 2 frequency synthesis 108 #define RF69_TX 0b00001100 // 4 2 transmit 109 #define RF69_RX 0b00010000 // 4 2 receive 112 #define RF69_PACKET_MODE 0b00000000 // 6 5 packet mode (default) 113 #define RF69_CONTINUOUS_MODE_WITH_SYNC 0b01000000 // 6 5 continuous mode with bit synchronizer 114 #define RF69_CONTINUOUS_MODE 0b01100000 // 6 5 continuous mode without bit synchronizer 115 #define RF69_FSK 0b00000000 // 4 3 modulation: FSK (default) 116 #define RF69_OOK 0b00001000 // 4 3 OOK 117 #define RF69_NO_SHAPING 0b00000000 // 1 0 modulation shaping: no shaping (default) 118 #define RF69_FSK_GAUSSIAN_1_0 0b00000001 // 1 0 FSK modulation Gaussian filter, BT = 1.0 119 #define RF69_FSK_GAUSSIAN_0_5 0b00000010 // 1 0 FSK modulation Gaussian filter, BT = 0.5 120 #define RF69_FSK_GAUSSIAN_0_3 0b00000011 // 1 0 FSK modulation Gaussian filter, BT = 0.3 121 #define RF69_OOK_FILTER_BR 0b00000001 // 1 0 OOK modulation filter, f_cutoff = BR 122 #define RF69_OOK_FILTER_2BR 0b00000010 // 1 0 OOK modulation filter, f_cutoff = 2*BR 125 #define RF69_BITRATE_MSB 0x1A // 7 0 bit rate setting: rate = F(XOSC) / BITRATE 126 #define RF69_BITRATE_LSB 0x0B // 7 0 default value: 4.8 kbps 0x40 // 7 0 129 #define RF69_FDEV_MSB 0x00 // 5 0 frequency deviation: f_dev = f_step * FDEV 130 #define RF69_FDEV_LSB 0x52 // 7 0 default value: 5 kHz 133 #define RF69_FRF_MSB 0xE4 // 7 0 carrier frequency setting: f_RF = (F(XOSC) * FRF)/2^19 134 #define RF69_FRF_MID 0xC0 // 7 0 where F(XOSC) = 32 MHz 135 #define RF69_FRF_LSB 0x00 // 7 0 default value: 915 MHz 138 #define RF69_RC_CAL_START 0b10000000 // 7 7 force RC oscillator calibration 139 #define RF69_RC_CAL_RUNNING 0b00000000 // 6 6 RC oscillator calibration is still running 140 #define RF69_RC_CAL_DONE 0b00000000 // 5 5 RC oscillator calibration has finished 143 #define RF69_AFC_LOW_BETA_OFF 0b00000000 // 5 5 standard AFC routine 144 #define RF69_AFC_LOW_BETA_ON 0b00100000 // 5 5 improved AFC routine for signals with modulation index less than 2 147 #define RF69_LISTEN_RES_IDLE_64_US 0b01000000 // 7 6 resolution of Listen mode idle time: 64 us 148 #define RF69_LISTEN_RES_IDLE_4_1_MS 0b10000000 // 7 6 4.1 ms (default) 149 #define RF69_LISTEN_RES_IDLE_262_MS 0b11000000 // 7 6 262 ms 150 #define RF69_LISTEN_RES_RX_64_US 0b00010000 // 5 4 resolution of Listen mode rx time: 64 us (default) 151 #define RF69_LISTEN_RES_RX_4_1_MS 0b00100000 // 5 4 4.1 ms 152 #define RF69_LISTEN_RES_RX_262_MS 0b00110000 // 5 4 262 ms 153 #define RF69_LISTEN_ACCEPT_ABOVE_RSSI_THRESH 0b00000000 // 3 3 packet acceptance criteria: RSSI above threshold 154 #define RF69_LISTEN_ACCEPT_MATCH_SYNC_ADDRESS 0b00001000 // 3 3 RSSI above threshold AND sync address matched 155 #define RF69_LISTEN_END_KEEP_RX 0b00000000 // 2 1 action after packet acceptance: stay in Rx mode 156 #define RF69_LISTEN_END_KEEP_RX_TIMEOUT 0b00000010 // 2 1 stay in Rx mode until timeout (default) 157 #define RF69_LISTEN_END_KEEP_RX_TIMEOUT_RESUME 0b00000100 // 2 1 stay in Rx mode until timeout, Listen mode will resume 160 #define RF69_LISTEN_COEF_IDLE 0xF5 // 7 0 duration of idle phase in Listen mode 163 #define RF69_LISTEN_COEF_RX 0x20 // 7 0 duration of Rx phase in Listen mode 166 #define RF69_PA0_OFF 0b00000000 // 7 7 PA0 disabled 167 #define RF69_PA0_ON 0b10000000 // 7 7 PA0 enabled (default) 168 #define RF69_PA1_OFF 0b00000000 // 6 6 PA1 disabled (default) 169 #define RF69_PA1_ON 0b01000000 // 6 6 PA1 enabled 170 #define RF69_PA2_OFF 0b00000000 // 5 5 PA2 disabled (default) 171 #define RF69_PA2_ON 0b00100000 // 5 5 PA2 enabled 172 #define RF69_OUTPUT_POWER 0b00011111 // 4 0 output power: P_out = -18 + OUTPUT_POWER 175 #define RF69_PA_RAMP_3_4_MS 0b00000000 // 3 0 PA ramp rise/fall time: 3.4 ms 176 #define RF69_PA_RAMP_2_MS 0b00000001 // 3 0 2 ms 177 #define RF69_PA_RAMP_1_MS 0b00000010 // 3 0 1 ms 178 #define RF69_PA_RAMP_500_US 0b00000011 // 3 0 500 us 179 #define RF69_PA_RAMP_250_US 0b00000100 // 3 0 250 us 180 #define RF69_PA_RAMP_125_US 0b00000101 // 3 0 125 us 181 #define RF69_PA_RAMP_100_US 0b00000110 // 3 0 100 us 182 #define RF69_PA_RAMP_62_US 0b00000111 // 3 0 62 us 183 #define RF69_PA_RAMP_50_US 0b00001000 // 3 0 50 us 184 #define RF69_PA_RAMP_40_US 0b00001001 // 3 0 40 us (default) 185 #define RF69_PA_RAMP_31_US 0b00001010 // 3 0 31 us 186 #define RF69_PA_RAMP_25_US 0b00001011 // 3 0 25 us 187 #define RF69_PA_RAMP_20_US 0b00001100 // 3 0 20 us 188 #define RF69_PA_RAMP_15_US 0b00001101 // 3 0 15 us 189 #define RF69_PA_RAMP_12_US 0b00001110 // 3 0 12 us 190 #define RF69_PA_RAMP_10_US 0b00001111 // 3 0 10 us 193 #define RF69_OCP_OFF 0b00000000 // 4 4 PA overload current protection disabled 194 #define RF69_OCP_ON 0b00010000 // 4 4 PA overload current protection enabled 195 #define RF69_OCP_TRIM 0b00001010 // 3 0 OCP current: I_max(OCP_TRIM = 0b1010) = 95 mA 198 #define RF69_LNA_Z_IN_50_OHM 0b00000000 // 7 7 LNA input impedance: 50 ohm 199 #define RF69_LNA_Z_IN_200_OHM 0b10000000 // 7 7 200 ohm 200 #define RF69_LNA_CURRENT_GAIN 0b00001000 // 5 3 manually set LNA current gain 201 #define RF69_LNA_GAIN_AUTO 0b00000000 // 2 0 LNA gain setting: set automatically by AGC 202 #define RF69_LNA_GAIN_MAX 0b00000001 // 2 0 max gain 203 #define RF69_LNA_GAIN_MAX_6_DB 0b00000010 // 2 0 max gain - 6 dB 204 #define RF69_LNA_GAIN_MAX_12_DB 0b00000011 // 2 0 max gain - 12 dB 205 #define RF69_LNA_GAIN_MAX_24_DB 0b00000100 // 2 0 max gain - 24 dB 206 #define RF69_LNA_GAIN_MAX_36_DB 0b00000101 // 2 0 max gain - 36 dB 207 #define RF69_LNA_GAIN_MAX_48_DB 0b00000110 // 2 0 max gain - 48 dB 210 #define RF69_DCC_FREQ 0b01000000 // 7 5 DC offset canceller cutoff frequency (4% Rx BW by default) 211 #define RF69_RX_BW_MANT_16 0b00000000 // 4 3 Channel filter bandwidth FSK: RxBw = F(XOSC)/(RxBwMant * 2^(RxBwExp + 2)) 212 #define RF69_RX_BW_MANT_20 0b00001000 // 4 3 OOK: RxBw = F(XOSC)/(RxBwMant * 2^(RxBwExp + 3)) 213 #define RF69_RX_BW_MANT_24 0b00010000 // 4 3 214 #define RF69_RX_BW_EXP 0b00000101 // 2 0 default RxBwExp value = 5 217 #define RF69_DCC_FREQ_AFC 0b10000000 // 7 5 default DccFreq parameter for AFC 218 #define RF69_DCC_RX_BW_MANT_AFC 0b00001000 // 4 3 default RxBwMant parameter for AFC 219 #define RF69_DCC_RX_BW_EXP_AFC 0b00000011 // 2 0 default RxBwExp parameter for AFC 222 #define RF69_OOK_THRESH_FIXED 0b00000000 // 7 6 OOK threshold type: fixed 223 #define RF69_OOK_THRESH_PEAK 0b01000000 // 7 6 peak (default) 224 #define RF69_OOK_THRESH_AVERAGE 0b10000000 // 7 6 average 225 #define RF69_OOK_PEAK_THRESH_STEP_0_5_DB 0b00000000 // 5 3 OOK demodulator step size: 0.5 dB (default) 226 #define RF69_OOK_PEAK_THRESH_STEP_1_0_DB 0b00001000 // 5 3 1.0 dB 227 #define RF69_OOK_PEAK_THRESH_STEP_1_5_DB 0b00010000 // 5 3 1.5 dB 228 #define RF69_OOK_PEAK_THRESH_STEP_2_0_DB 0b00011000 // 5 3 2.0 dB 229 #define RF69_OOK_PEAK_THRESH_STEP_3_0_DB 0b00100000 // 5 3 3.0 dB 230 #define RF69_OOK_PEAK_THRESH_STEP_4_0_DB 0b00101000 // 5 3 4.0 dB 231 #define RF69_OOK_PEAK_THRESH_STEP_5_0_DB 0b00110000 // 5 3 5.0 dB 232 #define RF69_OOK_PEAK_THRESH_STEP_6_0_DB 0b00111000 // 5 3 6.0 dB 233 #define RF69_OOK_PEAK_THRESH_DEC_1_1_CHIP 0b00000000 // 2 0 OOK demodulator step period: once per chip (default) 234 #define RF69_OOK_PEAK_THRESH_DEC_1_2_CHIP 0b00000001 // 2 0 once every 2 chips 235 #define RF69_OOK_PEAK_THRESH_DEC_1_4_CHIP 0b00000010 // 2 0 once every 4 chips 236 #define RF69_OOK_PEAK_THRESH_DEC_1_8_CHIP 0b00000011 // 2 0 once every 8 chips 237 #define RF69_OOK_PEAK_THRESH_DEC_2_1_CHIP 0b00000100 // 2 0 2 times per chip 238 #define RF69_OOK_PEAK_THRESH_DEC_4_1_CHIP 0b00000101 // 2 0 4 times per chip 239 #define RF69_OOK_PEAK_THRESH_DEC_8_1_CHIP 0b00000110 // 2 0 8 times per chip 240 #define RF69_OOK_PEAK_THRESH_DEC_16_1_CHIP 0b00000111 // 2 0 16 times per chip 243 #define RF69_OOK_AVG_THRESH_FILT_32_PI 0b00000000 // 7 6 OOK average filter coefficient: chip rate / 32*pi 244 #define RF69_OOK_AVG_THRESH_FILT_8_PI 0b01000000 // 7 6 chip rate / 8*pi 245 #define RF69_OOK_AVG_THRESH_FILT_4_PI 0b10000000 // 7 6 chip rate / 4*pi (default) 246 #define RF69_OOK_AVG_THRESH_FILT_2_PI 0b11000000 // 7 6 chip rate / 2*pi 249 #define RF69_OOK_FIXED_THRESH 0b00000110 // 7 0 default OOK fixed threshold (6 dB) 252 #define RF69_FEI_RUNNING 0b00000000 // 6 6 FEI status: on-going 253 #define RF69_FEI_DONE 0b01000000 // 6 6 done 254 #define RF69_FEI_START 0b00100000 // 5 5 force new FEI measurement 255 #define RF69_AFC_RUNNING 0b00000000 // 4 4 AFC status: on-going 256 #define RF69_AFC_DONE 0b00010000 // 4 4 done 257 #define RF69_AFC_AUTOCLEAR_OFF 0b00000000 // 3 3 AFC register autoclear disabled 258 #define RF69_AFC_AUTOCLEAR_ON 0b00001000 // 3 3 AFC register autoclear enabled 259 #define RF69_AFC_AUTO_OFF 0b00000000 // 2 2 perform AFC only manually 260 #define RF69_AFC_AUTO_ON 0b00000100 // 2 2 perform AFC each time Rx mode is started 261 #define RF69_AFC_CLEAR 0b00000010 // 1 1 clear AFC register 262 #define RF69_AFC_START 0b00000001 // 0 0 start AFC 265 #define RF69_RSSI_RUNNING 0b00000000 // 1 1 RSSI status: on-going 266 #define RF69_RSSI_DONE 0b00000010 // 1 1 done 267 #define RF69_RSSI_START 0b00000001 // 0 0 start RSSI measurement 270 #define RF69_DIO0_CONT_MODE_READY 0b11000000 // 7 6 271 #define RF69_DIO0_CONT_PLL_LOCK 0b00000000 // 7 6 272 #define RF69_DIO0_CONT_SYNC_ADDRESS 0b00000000 // 7 6 273 #define RF69_DIO0_CONT_TIMEOUT 0b01000000 // 7 6 274 #define RF69_DIO0_CONT_RSSI 0b10000000 // 7 6 275 #define RF69_DIO0_CONT_TX_READY 0b01000000 // 7 6 276 #define RF69_DIO0_PACK_PLL_LOCK 0b11000000 // 7 6 277 #define RF69_DIO0_PACK_CRC_OK 0b00000000 // 7 6 278 #define RF69_DIO0_PACK_PAYLOAD_READY 0b01000000 // 7 6 279 #define RF69_DIO0_PACK_SYNC_ADDRESS 0b10000000 // 7 6 280 #define RF69_DIO0_PACK_RSSI 0b11000000 // 7 6 281 #define RF69_DIO0_PACK_PACKET_SENT 0b00000000 // 7 6 282 #define RF69_DIO0_PACK_TX_READY 0b01000000 // 7 6 283 #define RF69_DIO1_CONT_PLL_LOCK 0b00110000 // 5 4 284 #define RF69_DIO1_CONT_DCLK 0b00000000 // 5 4 285 #define RF69_DIO1_CONT_RX_READY 0b00010000 // 5 4 286 #define RF69_DIO1_CONT_SYNC_ADDRESS 0b00110000 // 5 4 287 #define RF69_DIO1_CONT_TX_READY 0b00010000 // 5 4 288 #define RF69_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4 289 #define RF69_DIO1_PACK_FIFO_FULL 0b00010000 // 5 4 290 #define RF69_DIO1_PACK_FIFO_NOT_EMPTY 0b00100000 // 5 4 291 #define RF69_DIO1_PACK_PLL_LOCK 0b00110000 // 5 4 292 #define RF69_DIO1_PACK_TIMEOUT 0b00110000 // 5 4 293 #define RF69_DIO2_CONT_DATA 0b00000000 // 3 2 296 #define RF69_CLK_OUT_FXOSC 0b00000000 // 2 0 ClkOut frequency: F(XOSC) 297 #define RF69_CLK_OUT_FXOSC_2 0b00000001 // 2 0 F(XOSC) / 2 298 #define RF69_CLK_OUT_FXOSC_4 0b00000010 // 2 0 F(XOSC) / 4 299 #define RF69_CLK_OUT_FXOSC_8 0b00000011 // 2 0 F(XOSC) / 8 300 #define RF69_CLK_OUT_FXOSC_16 0b00000100 // 2 0 F(XOSC) / 16 301 #define RF69_CLK_OUT_FXOSC_32 0b00000101 // 2 0 F(XOSC) / 31 302 #define RF69_CLK_OUT_RC 0b00000110 // 2 0 RC 303 #define RF69_CLK_OUT_OFF 0b00000111 // 2 0 disabled (default) 306 #define RF69_IRQ_MODE_READY 0b10000000 // 7 7 requested mode was set 307 #define RF69_IRQ_RX_READY 0b01000000 // 6 6 Rx mode ready 308 #define RF69_IRQ_TX_READY 0b00100000 // 5 5 Tx mode ready 309 #define RF69_IRQ_PLL_LOCK 0b00010000 // 4 4 PLL is locked 310 #define RF69_IRQ_RSSI 0b00001000 // 3 3 RSSI value exceeded RssiThreshold 311 #define RF69_IRQ_TIMEOUT 0b00000100 // 2 2 timeout occurred 312 #define RF69_IRQ_AUTO_MODE 0b00000010 // 1 1 entered intermediate mode 313 #define RF69_SYNC_ADDRESS_MATCH 0b00000001 // 0 0 sync address detected 316 #define RF69_IRQ_FIFO_FULL 0b10000000 // 7 7 FIFO is full 317 #define RF69_IRQ_FIFO_NOT_EMPTY 0b01000000 // 6 6 FIFO contains at least 1 byte 318 #define RF69_IRQ_FIFO_LEVEL 0b00100000 // 5 5 FIFO contains more than FifoThreshold bytes 319 #define RF69_IRQ_FIFO_OVERRUN 0b00010000 // 4 4 FIFO overrun occurred 320 #define RF69_IRQ_PACKET_SENT 0b00001000 // 3 3 packet was sent 321 #define RF69_IRQ_PAYLOAD_READY 0b00000100 // 2 2 last payload byte received and CRC check passed 322 #define RF69_IRQ_CRC_OK 0b00000010 // 1 1 CRC check passed 325 #define RF69_RSSI_THRESHOLD 0xE4 // 7 0 RSSI threshold level (2 dB by default) 328 #define RF69_TIMEOUT_RX_START_OFF 0x00 // 7 0 RSSI interrupt timeout disabled (default) 329 #define RF69_TIMEOUT_RX_START 0xFF // 7 0 timeout will occur if RSSI interrupt is not received 332 #define RF69_TIMEOUT_RSSI_THRESH_OFF 0x00 // 7 0 PayloadReady interrupt timeout disabled (default) 333 #define RF69_TIMEOUT_RSSI_THRESH 0xFF // 7 0 timeout will occur if PayloadReady interrupt is not received 336 #define RF69_PREAMBLE_MSB 0x00 // 7 0 2-byte preamble size value 337 #define RF69_PREAMBLE_LSB 0x03 // 7 0 340 #define RF69_SYNC_OFF 0b00000000 // 7 7 sync word detection off 341 #define RF69_SYNC_ON 0b10000000 // 7 7 sync word detection on (default) 342 #define RF69_FIFO_FILL_CONDITION_SYNC 0b00000000 // 6 6 FIFO fill condition: on SyncAddress interrupt (default) 343 #define RF69_FIFO_FILL_CONDITION 0b01000000 // 6 6 as long as the bit is set 344 #define RF69_SYNC_SIZE 0b00001000 // 5 3 size of sync word: SyncSize + 1 bytes 345 #define RF69_SYNC_TOL 0b00000000 // 2 0 number of tolerated errors in sync word 348 #define RF69_SYNC_BYTE_1 0x01 // 7 0 sync word: 1st byte (MSB) 349 #define RF69_SYNC_BYTE_2 0x01 // 7 0 2nd byte 350 #define RF69_SYNC_BYTE_3 0x01 // 7 0 3rd byte 351 #define RF69_SYNC_BYTE_4 0x01 // 7 0 4th byte 352 #define RF69_SYNC_BYTE_5 0x01 // 7 0 5th byte 353 #define RF69_SYNC_BYTE_6 0x01 // 7 0 6th byte 354 #define RF69_SYNC_BYTE_7 0x01 // 7 0 7th byte 355 #define RF69_SYNC_BYTE_8 0x01 // 7 0 8th byte (LSB) 358 #define RF69_PACKET_FORMAT_FIXED 0b00000000 // 7 7 fixed packet length (default) 359 #define RF69_PACKET_FORMAT_VARIABLE 0b10000000 // 7 7 variable packet length 360 #define RF69_DC_FREE_NONE 0b00000000 // 6 5 DC-free encoding: none (default) 361 #define RF69_DC_FREE_MANCHESTER 0b00100000 // 6 5 Manchester 362 #define RF69_DC_FREE_WHITENING 0b01000000 // 6 5 Whitening 363 #define RF69_CRC_OFF 0b00000000 // 4 4 CRC disabled 364 #define RF69_CRC_ON 0b00010000 // 4 4 CRC enabled (default) 365 #define RF69_CRC_AUTOCLEAR_ON 0b00000000 // 3 3 discard packet when CRC check fails (default) 366 #define RF69_CRC_AUTOCLEAR_OFF 0b00001000 // 3 3 keep packet when CRC check fails 367 #define RF69_ADDRESS_FILTERING_OFF 0b00000000 // 2 1 address filtering: none (default) 368 #define RF69_ADDRESS_FILTERING_NODE 0b00000010 // 2 1 node 369 #define RF69_ADDRESS_FILTERING_NODE_BROADCAST 0b00000100 // 2 1 node or broadcast 372 #define RF69_PAYLOAD_LENGTH 0xFF // 7 0 payload length 375 #define RF69_ENTER_COND_NONE 0b00000000 // 7 5 condition for entering intermediate mode: none, AutoModes disabled (default) 376 #define RF69_ENTER_COND_FIFO_NOT_EMPTY 0b00100000 // 7 5 FifoNotEmpty rising edge 377 #define RF69_ENTER_COND_FIFO_LEVEL 0b01000000 // 7 5 FifoLevel rising edge 378 #define RF69_ENTER_COND_CRC_OK 0b01100000 // 7 5 CrcOk rising edge 379 #define RF69_ENTER_COND_PAYLOAD_READY 0b10000000 // 7 5 PayloadReady rising edge 380 #define RF69_ENTER_COND_SYNC_ADDRESS 0b10100000 // 7 5 SyncAddress rising edge 381 #define RF69_ENTER_COND_PACKET_SENT 0b11000000 // 7 5 PacketSent rising edge 382 #define RF69_ENTER_COND_FIFO_EMPTY 0b11100000 // 7 5 FifoNotEmpty falling edge 383 #define RF69_EXIT_COND_NONE 0b00000000 // 4 2 condition for exiting intermediate mode: none, AutoModes disabled (default) 384 #define RF69_EXIT_COND_FIFO_EMPTY 0b00100000 // 4 2 FifoNotEmpty falling edge 385 #define RF69_EXIT_COND_FIFO_LEVEL 0b01000000 // 4 2 FifoLevel rising edge 386 #define RF69_EXIT_COND_CRC_OK 0b01100000 // 4 2 CrcOk rising edge 387 #define RF69_EXIT_COND_PAYLOAD_READY 0b10000000 // 4 2 PayloadReady rising edge 388 #define RF69_EXIT_COND_SYNC_ADDRESS 0b10100000 // 4 2 SyncAddress rising edge 389 #define RF69_EXIT_COND_PACKET_SENT 0b11000000 // 4 2 PacketSent rising edge 390 #define RF69_EXIT_COND_TIMEOUT 0b11100000 // 4 2 timeout rising edge 391 #define RF69_INTER_MODE_SLEEP 0b00000000 // 1 0 intermediate mode: sleep (default) 392 #define RF69_INTER_MODE_STANDBY 0b00000001 // 1 0 standby 393 #define RF69_INTER_MODE_RX 0b00000010 // 1 0 Rx 394 #define RF69_INTER_MODE_TX 0b00000011 // 1 0 Tx 397 #define RF69_TX_START_CONDITION_FIFO_LEVEL 0b00000000 // 7 7 packet transmission start condition: FifoLevel 398 #define RF69_TX_START_CONDITION_FIFO_NOT_EMPTY 0b10000000 // 7 7 FifoNotEmpty (default) 399 #define RF69_FIFO_THRESHOLD 0b00001111 // 6 0 default threshold to trigger FifoLevel interrupt 402 #define RF69_INTER_PACKET_RX_DELAY 0b00000000 // 7 4 delay between FIFO empty and start of new RSSI phase 403 #define RF69_RESTART_RX 0b00000100 // 2 2 force receiver into wait mode 404 #define RF69_AUTO_RX_RESTART_OFF 0b00000000 // 1 1 auto Rx restart disabled 405 #define RF69_AUTO_RX_RESTART_ON 0b00000010 // 1 1 auto Rx restart enabled (default) 406 #define RF69_AES_OFF 0b00000000 // 0 0 AES encryption disabled (default) 407 #define RF69_AES_ON 0b00000001 // 0 0 AES encryption enabled, payload size limited to 66 bytes 410 #define RF69_TEMP_MEAS_START 0b00001000 // 3 3 trigger temperature measurement 411 #define RF69_TEMP_MEAS_RUNNING 0b00000100 // 2 2 temperature measurement status: on-going 412 #define RF69_TEMP_MEAS_DONE 0b00000000 // 2 2 done 415 #define RF69_CONTINUOUS_DAGC_NORMAL 0x00 // 7 0 fading margin improvement: normal mode 416 #define RF69_CONTINUOUS_DAGC_LOW_BETA_ON 0x20 // 7 0 improved mode for AfcLowBetaOn 417 #define RF69_CONTINUOUS_DAGC_LOW_BETA_OFF 0x30 // 7 0 improved mode for AfcLowBetaOff (default) 420 #define RF69_PA1_NORMAL 0x55 // 7 0 PA_BOOST: none 421 #define RF69_PA1_20_DBM 0x5D // 7 0 +20 dBm 424 #define RF69_PA2_NORMAL 0x70 // 7 0 PA_BOOST: none 425 #define RF69_PA2_20_DBM 0x7C // 7 0 +20 dBm 466 int16_t
begin(
float freq = 434.0,
float br = 48.0,
float freqDev = 50.0,
float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16);
485 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
497 int16_t
receive(uint8_t* data,
size_t len)
override;
595 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
613 int16_t
readData(uint8_t* data,
size_t len)
override;
673 int16_t
setSyncWord(uint8_t* syncWord,
size_t len, uint8_t maxErrBits = 0);
830 #ifndef RADIOLIB_GODMODE 837 int16_t _tempOffset = 0;
840 size_t _packetLength = 0;
841 bool _packetLengthQueried =
false;
842 uint8_t _packetLengthConfig = RF69_PACKET_FORMAT_VARIABLE;
844 bool _promiscuous =
false;
846 uint8_t _syncWordLength = 2;
849 int16_t directMode();
850 int16_t setPacketMode(uint8_t mode, uint8_t len);
852 #ifndef RADIOLIB_GODMODE 855 int16_t setMode(uint8_t mode);
856 void clearIRQFlags();
int16_t setFrequencyDeviation(float freqDev) override
Sets frequency deviation.
Definition: RF69.cpp:507
+
1 #if !defined(_RADIOLIB_RF69_H) 2 #define _RADIOLIB_RF69_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_RF69) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define RF69_FREQUENCY_STEP_SIZE 61.03515625 14 #define RF69_MAX_PACKET_LENGTH 64 15 #define RF69_CRYSTAL_FREQ 32.0 16 #define RF69_DIV_EXPONENT 19 19 #define RF69_REG_FIFO 0x00 20 #define RF69_REG_OP_MODE 0x01 21 #define RF69_REG_DATA_MODUL 0x02 22 #define RF69_REG_BITRATE_MSB 0x03 23 #define RF69_REG_BITRATE_LSB 0x04 24 #define RF69_REG_FDEV_MSB 0x05 25 #define RF69_REG_FDEV_LSB 0x06 26 #define RF69_REG_FRF_MSB 0x07 27 #define RF69_REG_FRF_MID 0x08 28 #define RF69_REG_FRF_LSB 0x09 29 #define RF69_REG_OSC_1 0x0A 30 #define RF69_REG_AFC_CTRL 0x0B 31 #define RF69_REG_LISTEN_1 0x0D 32 #define RF69_REG_LISTEN_2 0x0E 33 #define RF69_REG_LISTEN_3 0x0F 34 #define RF69_REG_VERSION 0x10 35 #define RF69_REG_PA_LEVEL 0x11 36 #define RF69_REG_PA_RAMP 0x12 37 #define RF69_REG_OCP 0x13 38 #define RF69_REG_LNA 0x18 39 #define RF69_REG_RX_BW 0x19 40 #define RF69_REG_AFC_BW 0x1A 41 #define RF69_REG_OOK_PEAK 0x1B 42 #define RF69_REG_OOK_AVG 0x1C 43 #define RF69_REG_OOK_FIX 0x1D 44 #define RF69_REG_AFC_FEI 0x1E 45 #define RF69_REG_AFC_MSB 0x1F 46 #define RF69_REG_AFC_LSB 0x20 47 #define RF69_REG_FEI_MSB 0x21 48 #define RF69_REG_FEI_LSB 0x22 49 #define RF69_REG_RSSI_CONFIG 0x23 50 #define RF69_REG_RSSI_VALUE 0x24 51 #define RF69_REG_DIO_MAPPING_1 0x25 52 #define RF69_REG_DIO_MAPPING_2 0x26 53 #define RF69_REG_IRQ_FLAGS_1 0x27 54 #define RF69_REG_IRQ_FLAGS_2 0x28 55 #define RF69_REG_RSSI_THRESH 0x29 56 #define RF69_REG_RX_TIMEOUT_1 0x2A 57 #define RF69_REG_RX_TIMEOUT_2 0x2B 58 #define RF69_REG_PREAMBLE_MSB 0x2C 59 #define RF69_REG_PREAMBLE_LSB 0x2D 60 #define RF69_REG_SYNC_CONFIG 0x2E 61 #define RF69_REG_SYNC_VALUE_1 0x2F 62 #define RF69_REG_SYNC_VALUE_2 0x30 63 #define RF69_REG_SYNC_VALUE_3 0x31 64 #define RF69_REG_SYNC_VALUE_4 0x32 65 #define RF69_REG_SYNC_VALUE_5 0x33 66 #define RF69_REG_SYNC_VALUE_6 0x34 67 #define RF69_REG_SYNC_VALUE_7 0x35 68 #define RF69_REG_SYNC_VALUE_8 0x36 69 #define RF69_REG_PACKET_CONFIG_1 0x37 70 #define RF69_REG_PAYLOAD_LENGTH 0x38 71 #define RF69_REG_NODE_ADRS 0x39 72 #define RF69_REG_BROADCAST_ADRS 0x3A 73 #define RF69_REG_AUTO_MODES 0x3B 74 #define RF69_REG_FIFO_THRESH 0x3C 75 #define RF69_REG_PACKET_CONFIG_2 0x3D 76 #define RF69_REG_AES_KEY_1 0x3E 77 #define RF69_REG_AES_KEY_2 0x3F 78 #define RF69_REG_AES_KEY_3 0x40 79 #define RF69_REG_AES_KEY_4 0x41 80 #define RF69_REG_AES_KEY_5 0x42 81 #define RF69_REG_AES_KEY_6 0x43 82 #define RF69_REG_AES_KEY_7 0x44 83 #define RF69_REG_AES_KEY_8 0x45 84 #define RF69_REG_AES_KEY_9 0x46 85 #define RF69_REG_AES_KEY_10 0x47 86 #define RF69_REG_AES_KEY_11 0x48 87 #define RF69_REG_AES_KEY_12 0x49 88 #define RF69_REG_AES_KEY_13 0x4A 89 #define RF69_REG_AES_KEY_14 0x4B 90 #define RF69_REG_AES_KEY_15 0x4C 91 #define RF69_REG_AES_KEY_16 0x4D 92 #define RF69_REG_TEMP_1 0x4E 93 #define RF69_REG_TEMP_2 0x4F 94 #define RF69_REG_TEST_PA1 0x5A 95 #define RF69_REG_TEST_PA2 0x5C 96 #define RF69_REG_TEST_DAGC 0x6F 100 #define RF69_SEQUENCER_OFF 0b00000000 // 7 7 disable automatic sequencer 101 #define RF69_SEQUENCER_ON 0b10000000 // 7 7 enable automatic sequencer 102 #define RF69_LISTEN_OFF 0b00000000 // 6 6 disable Listen mode 103 #define RF69_LISTEN_ON 0b01000000 // 6 6 enable Listen mode 104 #define RF69_LISTEN_ABORT 0b00100000 // 5 5 abort Listen mode (has to be set together with RF69_LISTEN_OFF) 105 #define RF69_SLEEP 0b00000000 // 4 2 sleep 106 #define RF69_STANDBY 0b00000100 // 4 2 standby 107 #define RF69_FS 0b00001000 // 4 2 frequency synthesis 108 #define RF69_TX 0b00001100 // 4 2 transmit 109 #define RF69_RX 0b00010000 // 4 2 receive 112 #define RF69_PACKET_MODE 0b00000000 // 6 5 packet mode (default) 113 #define RF69_CONTINUOUS_MODE_WITH_SYNC 0b01000000 // 6 5 continuous mode with bit synchronizer 114 #define RF69_CONTINUOUS_MODE 0b01100000 // 6 5 continuous mode without bit synchronizer 115 #define RF69_FSK 0b00000000 // 4 3 modulation: FSK (default) 116 #define RF69_OOK 0b00001000 // 4 3 OOK 117 #define RF69_NO_SHAPING 0b00000000 // 1 0 modulation shaping: no shaping (default) 118 #define RF69_FSK_GAUSSIAN_1_0 0b00000001 // 1 0 FSK modulation Gaussian filter, BT = 1.0 119 #define RF69_FSK_GAUSSIAN_0_5 0b00000010 // 1 0 FSK modulation Gaussian filter, BT = 0.5 120 #define RF69_FSK_GAUSSIAN_0_3 0b00000011 // 1 0 FSK modulation Gaussian filter, BT = 0.3 121 #define RF69_OOK_FILTER_BR 0b00000001 // 1 0 OOK modulation filter, f_cutoff = BR 122 #define RF69_OOK_FILTER_2BR 0b00000010 // 1 0 OOK modulation filter, f_cutoff = 2*BR 125 #define RF69_BITRATE_MSB 0x1A // 7 0 bit rate setting: rate = F(XOSC) / BITRATE 126 #define RF69_BITRATE_LSB 0x0B // 7 0 default value: 4.8 kbps 0x40 // 7 0 129 #define RF69_FDEV_MSB 0x00 // 5 0 frequency deviation: f_dev = f_step * FDEV 130 #define RF69_FDEV_LSB 0x52 // 7 0 default value: 5 kHz 133 #define RF69_FRF_MSB 0xE4 // 7 0 carrier frequency setting: f_RF = (F(XOSC) * FRF)/2^19 134 #define RF69_FRF_MID 0xC0 // 7 0 where F(XOSC) = 32 MHz 135 #define RF69_FRF_LSB 0x00 // 7 0 default value: 915 MHz 138 #define RF69_RC_CAL_START 0b10000000 // 7 7 force RC oscillator calibration 139 #define RF69_RC_CAL_RUNNING 0b00000000 // 6 6 RC oscillator calibration is still running 140 #define RF69_RC_CAL_DONE 0b00000000 // 5 5 RC oscillator calibration has finished 143 #define RF69_AFC_LOW_BETA_OFF 0b00000000 // 5 5 standard AFC routine 144 #define RF69_AFC_LOW_BETA_ON 0b00100000 // 5 5 improved AFC routine for signals with modulation index less than 2 147 #define RF69_LISTEN_RES_IDLE_64_US 0b01000000 // 7 6 resolution of Listen mode idle time: 64 us 148 #define RF69_LISTEN_RES_IDLE_4_1_MS 0b10000000 // 7 6 4.1 ms (default) 149 #define RF69_LISTEN_RES_IDLE_262_MS 0b11000000 // 7 6 262 ms 150 #define RF69_LISTEN_RES_RX_64_US 0b00010000 // 5 4 resolution of Listen mode rx time: 64 us (default) 151 #define RF69_LISTEN_RES_RX_4_1_MS 0b00100000 // 5 4 4.1 ms 152 #define RF69_LISTEN_RES_RX_262_MS 0b00110000 // 5 4 262 ms 153 #define RF69_LISTEN_ACCEPT_ABOVE_RSSI_THRESH 0b00000000 // 3 3 packet acceptance criteria: RSSI above threshold 154 #define RF69_LISTEN_ACCEPT_MATCH_SYNC_ADDRESS 0b00001000 // 3 3 RSSI above threshold AND sync address matched 155 #define RF69_LISTEN_END_KEEP_RX 0b00000000 // 2 1 action after packet acceptance: stay in Rx mode 156 #define RF69_LISTEN_END_KEEP_RX_TIMEOUT 0b00000010 // 2 1 stay in Rx mode until timeout (default) 157 #define RF69_LISTEN_END_KEEP_RX_TIMEOUT_RESUME 0b00000100 // 2 1 stay in Rx mode until timeout, Listen mode will resume 160 #define RF69_LISTEN_COEF_IDLE 0xF5 // 7 0 duration of idle phase in Listen mode 163 #define RF69_LISTEN_COEF_RX 0x20 // 7 0 duration of Rx phase in Listen mode 166 #define RF69_CHIP_VERSION 0x24 // 7 0 169 #define RF69_PA0_OFF 0b00000000 // 7 7 PA0 disabled 170 #define RF69_PA0_ON 0b10000000 // 7 7 PA0 enabled (default) 171 #define RF69_PA1_OFF 0b00000000 // 6 6 PA1 disabled (default) 172 #define RF69_PA1_ON 0b01000000 // 6 6 PA1 enabled 173 #define RF69_PA2_OFF 0b00000000 // 5 5 PA2 disabled (default) 174 #define RF69_PA2_ON 0b00100000 // 5 5 PA2 enabled 175 #define RF69_OUTPUT_POWER 0b00011111 // 4 0 output power: P_out = -18 + OUTPUT_POWER 178 #define RF69_PA_RAMP_3_4_MS 0b00000000 // 3 0 PA ramp rise/fall time: 3.4 ms 179 #define RF69_PA_RAMP_2_MS 0b00000001 // 3 0 2 ms 180 #define RF69_PA_RAMP_1_MS 0b00000010 // 3 0 1 ms 181 #define RF69_PA_RAMP_500_US 0b00000011 // 3 0 500 us 182 #define RF69_PA_RAMP_250_US 0b00000100 // 3 0 250 us 183 #define RF69_PA_RAMP_125_US 0b00000101 // 3 0 125 us 184 #define RF69_PA_RAMP_100_US 0b00000110 // 3 0 100 us 185 #define RF69_PA_RAMP_62_US 0b00000111 // 3 0 62 us 186 #define RF69_PA_RAMP_50_US 0b00001000 // 3 0 50 us 187 #define RF69_PA_RAMP_40_US 0b00001001 // 3 0 40 us (default) 188 #define RF69_PA_RAMP_31_US 0b00001010 // 3 0 31 us 189 #define RF69_PA_RAMP_25_US 0b00001011 // 3 0 25 us 190 #define RF69_PA_RAMP_20_US 0b00001100 // 3 0 20 us 191 #define RF69_PA_RAMP_15_US 0b00001101 // 3 0 15 us 192 #define RF69_PA_RAMP_12_US 0b00001110 // 3 0 12 us 193 #define RF69_PA_RAMP_10_US 0b00001111 // 3 0 10 us 196 #define RF69_OCP_OFF 0b00000000 // 4 4 PA overload current protection disabled 197 #define RF69_OCP_ON 0b00010000 // 4 4 PA overload current protection enabled 198 #define RF69_OCP_TRIM 0b00001010 // 3 0 OCP current: I_max(OCP_TRIM = 0b1010) = 95 mA 201 #define RF69_LNA_Z_IN_50_OHM 0b00000000 // 7 7 LNA input impedance: 50 ohm 202 #define RF69_LNA_Z_IN_200_OHM 0b10000000 // 7 7 200 ohm 203 #define RF69_LNA_CURRENT_GAIN 0b00001000 // 5 3 manually set LNA current gain 204 #define RF69_LNA_GAIN_AUTO 0b00000000 // 2 0 LNA gain setting: set automatically by AGC 205 #define RF69_LNA_GAIN_MAX 0b00000001 // 2 0 max gain 206 #define RF69_LNA_GAIN_MAX_6_DB 0b00000010 // 2 0 max gain - 6 dB 207 #define RF69_LNA_GAIN_MAX_12_DB 0b00000011 // 2 0 max gain - 12 dB 208 #define RF69_LNA_GAIN_MAX_24_DB 0b00000100 // 2 0 max gain - 24 dB 209 #define RF69_LNA_GAIN_MAX_36_DB 0b00000101 // 2 0 max gain - 36 dB 210 #define RF69_LNA_GAIN_MAX_48_DB 0b00000110 // 2 0 max gain - 48 dB 213 #define RF69_DCC_FREQ 0b01000000 // 7 5 DC offset canceller cutoff frequency (4% Rx BW by default) 214 #define RF69_RX_BW_MANT_16 0b00000000 // 4 3 Channel filter bandwidth FSK: RxBw = F(XOSC)/(RxBwMant * 2^(RxBwExp + 2)) 215 #define RF69_RX_BW_MANT_20 0b00001000 // 4 3 OOK: RxBw = F(XOSC)/(RxBwMant * 2^(RxBwExp + 3)) 216 #define RF69_RX_BW_MANT_24 0b00010000 // 4 3 217 #define RF69_RX_BW_EXP 0b00000101 // 2 0 default RxBwExp value = 5 220 #define RF69_DCC_FREQ_AFC 0b10000000 // 7 5 default DccFreq parameter for AFC 221 #define RF69_DCC_RX_BW_MANT_AFC 0b00001000 // 4 3 default RxBwMant parameter for AFC 222 #define RF69_DCC_RX_BW_EXP_AFC 0b00000011 // 2 0 default RxBwExp parameter for AFC 225 #define RF69_OOK_THRESH_FIXED 0b00000000 // 7 6 OOK threshold type: fixed 226 #define RF69_OOK_THRESH_PEAK 0b01000000 // 7 6 peak (default) 227 #define RF69_OOK_THRESH_AVERAGE 0b10000000 // 7 6 average 228 #define RF69_OOK_PEAK_THRESH_STEP_0_5_DB 0b00000000 // 5 3 OOK demodulator step size: 0.5 dB (default) 229 #define RF69_OOK_PEAK_THRESH_STEP_1_0_DB 0b00001000 // 5 3 1.0 dB 230 #define RF69_OOK_PEAK_THRESH_STEP_1_5_DB 0b00010000 // 5 3 1.5 dB 231 #define RF69_OOK_PEAK_THRESH_STEP_2_0_DB 0b00011000 // 5 3 2.0 dB 232 #define RF69_OOK_PEAK_THRESH_STEP_3_0_DB 0b00100000 // 5 3 3.0 dB 233 #define RF69_OOK_PEAK_THRESH_STEP_4_0_DB 0b00101000 // 5 3 4.0 dB 234 #define RF69_OOK_PEAK_THRESH_STEP_5_0_DB 0b00110000 // 5 3 5.0 dB 235 #define RF69_OOK_PEAK_THRESH_STEP_6_0_DB 0b00111000 // 5 3 6.0 dB 236 #define RF69_OOK_PEAK_THRESH_DEC_1_1_CHIP 0b00000000 // 2 0 OOK demodulator step period: once per chip (default) 237 #define RF69_OOK_PEAK_THRESH_DEC_1_2_CHIP 0b00000001 // 2 0 once every 2 chips 238 #define RF69_OOK_PEAK_THRESH_DEC_1_4_CHIP 0b00000010 // 2 0 once every 4 chips 239 #define RF69_OOK_PEAK_THRESH_DEC_1_8_CHIP 0b00000011 // 2 0 once every 8 chips 240 #define RF69_OOK_PEAK_THRESH_DEC_2_1_CHIP 0b00000100 // 2 0 2 times per chip 241 #define RF69_OOK_PEAK_THRESH_DEC_4_1_CHIP 0b00000101 // 2 0 4 times per chip 242 #define RF69_OOK_PEAK_THRESH_DEC_8_1_CHIP 0b00000110 // 2 0 8 times per chip 243 #define RF69_OOK_PEAK_THRESH_DEC_16_1_CHIP 0b00000111 // 2 0 16 times per chip 246 #define RF69_OOK_AVG_THRESH_FILT_32_PI 0b00000000 // 7 6 OOK average filter coefficient: chip rate / 32*pi 247 #define RF69_OOK_AVG_THRESH_FILT_8_PI 0b01000000 // 7 6 chip rate / 8*pi 248 #define RF69_OOK_AVG_THRESH_FILT_4_PI 0b10000000 // 7 6 chip rate / 4*pi (default) 249 #define RF69_OOK_AVG_THRESH_FILT_2_PI 0b11000000 // 7 6 chip rate / 2*pi 252 #define RF69_OOK_FIXED_THRESH 0b00000110 // 7 0 default OOK fixed threshold (6 dB) 255 #define RF69_FEI_RUNNING 0b00000000 // 6 6 FEI status: on-going 256 #define RF69_FEI_DONE 0b01000000 // 6 6 done 257 #define RF69_FEI_START 0b00100000 // 5 5 force new FEI measurement 258 #define RF69_AFC_RUNNING 0b00000000 // 4 4 AFC status: on-going 259 #define RF69_AFC_DONE 0b00010000 // 4 4 done 260 #define RF69_AFC_AUTOCLEAR_OFF 0b00000000 // 3 3 AFC register autoclear disabled 261 #define RF69_AFC_AUTOCLEAR_ON 0b00001000 // 3 3 AFC register autoclear enabled 262 #define RF69_AFC_AUTO_OFF 0b00000000 // 2 2 perform AFC only manually 263 #define RF69_AFC_AUTO_ON 0b00000100 // 2 2 perform AFC each time Rx mode is started 264 #define RF69_AFC_CLEAR 0b00000010 // 1 1 clear AFC register 265 #define RF69_AFC_START 0b00000001 // 0 0 start AFC 268 #define RF69_RSSI_RUNNING 0b00000000 // 1 1 RSSI status: on-going 269 #define RF69_RSSI_DONE 0b00000010 // 1 1 done 270 #define RF69_RSSI_START 0b00000001 // 0 0 start RSSI measurement 273 #define RF69_DIO0_CONT_MODE_READY 0b11000000 // 7 6 274 #define RF69_DIO0_CONT_PLL_LOCK 0b00000000 // 7 6 275 #define RF69_DIO0_CONT_SYNC_ADDRESS 0b00000000 // 7 6 276 #define RF69_DIO0_CONT_TIMEOUT 0b01000000 // 7 6 277 #define RF69_DIO0_CONT_RSSI 0b10000000 // 7 6 278 #define RF69_DIO0_CONT_TX_READY 0b01000000 // 7 6 279 #define RF69_DIO0_PACK_PLL_LOCK 0b11000000 // 7 6 280 #define RF69_DIO0_PACK_CRC_OK 0b00000000 // 7 6 281 #define RF69_DIO0_PACK_PAYLOAD_READY 0b01000000 // 7 6 282 #define RF69_DIO0_PACK_SYNC_ADDRESS 0b10000000 // 7 6 283 #define RF69_DIO0_PACK_RSSI 0b11000000 // 7 6 284 #define RF69_DIO0_PACK_PACKET_SENT 0b00000000 // 7 6 285 #define RF69_DIO0_PACK_TX_READY 0b01000000 // 7 6 286 #define RF69_DIO1_CONT_PLL_LOCK 0b00110000 // 5 4 287 #define RF69_DIO1_CONT_DCLK 0b00000000 // 5 4 288 #define RF69_DIO1_CONT_RX_READY 0b00010000 // 5 4 289 #define RF69_DIO1_CONT_SYNC_ADDRESS 0b00110000 // 5 4 290 #define RF69_DIO1_CONT_TX_READY 0b00010000 // 5 4 291 #define RF69_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4 292 #define RF69_DIO1_PACK_FIFO_FULL 0b00010000 // 5 4 293 #define RF69_DIO1_PACK_FIFO_NOT_EMPTY 0b00100000 // 5 4 294 #define RF69_DIO1_PACK_PLL_LOCK 0b00110000 // 5 4 295 #define RF69_DIO1_PACK_TIMEOUT 0b00110000 // 5 4 296 #define RF69_DIO2_CONT_DATA 0b00000000 // 3 2 299 #define RF69_CLK_OUT_FXOSC 0b00000000 // 2 0 ClkOut frequency: F(XOSC) 300 #define RF69_CLK_OUT_FXOSC_2 0b00000001 // 2 0 F(XOSC) / 2 301 #define RF69_CLK_OUT_FXOSC_4 0b00000010 // 2 0 F(XOSC) / 4 302 #define RF69_CLK_OUT_FXOSC_8 0b00000011 // 2 0 F(XOSC) / 8 303 #define RF69_CLK_OUT_FXOSC_16 0b00000100 // 2 0 F(XOSC) / 16 304 #define RF69_CLK_OUT_FXOSC_32 0b00000101 // 2 0 F(XOSC) / 31 305 #define RF69_CLK_OUT_RC 0b00000110 // 2 0 RC 306 #define RF69_CLK_OUT_OFF 0b00000111 // 2 0 disabled (default) 309 #define RF69_IRQ_MODE_READY 0b10000000 // 7 7 requested mode was set 310 #define RF69_IRQ_RX_READY 0b01000000 // 6 6 Rx mode ready 311 #define RF69_IRQ_TX_READY 0b00100000 // 5 5 Tx mode ready 312 #define RF69_IRQ_PLL_LOCK 0b00010000 // 4 4 PLL is locked 313 #define RF69_IRQ_RSSI 0b00001000 // 3 3 RSSI value exceeded RssiThreshold 314 #define RF69_IRQ_TIMEOUT 0b00000100 // 2 2 timeout occurred 315 #define RF69_IRQ_AUTO_MODE 0b00000010 // 1 1 entered intermediate mode 316 #define RF69_SYNC_ADDRESS_MATCH 0b00000001 // 0 0 sync address detected 319 #define RF69_IRQ_FIFO_FULL 0b10000000 // 7 7 FIFO is full 320 #define RF69_IRQ_FIFO_NOT_EMPTY 0b01000000 // 6 6 FIFO contains at least 1 byte 321 #define RF69_IRQ_FIFO_LEVEL 0b00100000 // 5 5 FIFO contains more than FifoThreshold bytes 322 #define RF69_IRQ_FIFO_OVERRUN 0b00010000 // 4 4 FIFO overrun occurred 323 #define RF69_IRQ_PACKET_SENT 0b00001000 // 3 3 packet was sent 324 #define RF69_IRQ_PAYLOAD_READY 0b00000100 // 2 2 last payload byte received and CRC check passed 325 #define RF69_IRQ_CRC_OK 0b00000010 // 1 1 CRC check passed 328 #define RF69_RSSI_THRESHOLD 0xE4 // 7 0 RSSI threshold level (2 dB by default) 331 #define RF69_TIMEOUT_RX_START_OFF 0x00 // 7 0 RSSI interrupt timeout disabled (default) 332 #define RF69_TIMEOUT_RX_START 0xFF // 7 0 timeout will occur if RSSI interrupt is not received 335 #define RF69_TIMEOUT_RSSI_THRESH_OFF 0x00 // 7 0 PayloadReady interrupt timeout disabled (default) 336 #define RF69_TIMEOUT_RSSI_THRESH 0xFF // 7 0 timeout will occur if PayloadReady interrupt is not received 339 #define RF69_PREAMBLE_MSB 0x00 // 7 0 2-byte preamble size value 340 #define RF69_PREAMBLE_LSB 0x03 // 7 0 343 #define RF69_SYNC_OFF 0b00000000 // 7 7 sync word detection off 344 #define RF69_SYNC_ON 0b10000000 // 7 7 sync word detection on (default) 345 #define RF69_FIFO_FILL_CONDITION_SYNC 0b00000000 // 6 6 FIFO fill condition: on SyncAddress interrupt (default) 346 #define RF69_FIFO_FILL_CONDITION 0b01000000 // 6 6 as long as the bit is set 347 #define RF69_SYNC_SIZE 0b00001000 // 5 3 size of sync word: SyncSize + 1 bytes 348 #define RF69_SYNC_TOL 0b00000000 // 2 0 number of tolerated errors in sync word 351 #define RF69_SYNC_BYTE_1 0x01 // 7 0 sync word: 1st byte (MSB) 352 #define RF69_SYNC_BYTE_2 0x01 // 7 0 2nd byte 353 #define RF69_SYNC_BYTE_3 0x01 // 7 0 3rd byte 354 #define RF69_SYNC_BYTE_4 0x01 // 7 0 4th byte 355 #define RF69_SYNC_BYTE_5 0x01 // 7 0 5th byte 356 #define RF69_SYNC_BYTE_6 0x01 // 7 0 6th byte 357 #define RF69_SYNC_BYTE_7 0x01 // 7 0 7th byte 358 #define RF69_SYNC_BYTE_8 0x01 // 7 0 8th byte (LSB) 361 #define RF69_PACKET_FORMAT_FIXED 0b00000000 // 7 7 fixed packet length (default) 362 #define RF69_PACKET_FORMAT_VARIABLE 0b10000000 // 7 7 variable packet length 363 #define RF69_DC_FREE_NONE 0b00000000 // 6 5 DC-free encoding: none (default) 364 #define RF69_DC_FREE_MANCHESTER 0b00100000 // 6 5 Manchester 365 #define RF69_DC_FREE_WHITENING 0b01000000 // 6 5 Whitening 366 #define RF69_CRC_OFF 0b00000000 // 4 4 CRC disabled 367 #define RF69_CRC_ON 0b00010000 // 4 4 CRC enabled (default) 368 #define RF69_CRC_AUTOCLEAR_ON 0b00000000 // 3 3 discard packet when CRC check fails (default) 369 #define RF69_CRC_AUTOCLEAR_OFF 0b00001000 // 3 3 keep packet when CRC check fails 370 #define RF69_ADDRESS_FILTERING_OFF 0b00000000 // 2 1 address filtering: none (default) 371 #define RF69_ADDRESS_FILTERING_NODE 0b00000010 // 2 1 node 372 #define RF69_ADDRESS_FILTERING_NODE_BROADCAST 0b00000100 // 2 1 node or broadcast 375 #define RF69_PAYLOAD_LENGTH 0xFF // 7 0 payload length 378 #define RF69_ENTER_COND_NONE 0b00000000 // 7 5 condition for entering intermediate mode: none, AutoModes disabled (default) 379 #define RF69_ENTER_COND_FIFO_NOT_EMPTY 0b00100000 // 7 5 FifoNotEmpty rising edge 380 #define RF69_ENTER_COND_FIFO_LEVEL 0b01000000 // 7 5 FifoLevel rising edge 381 #define RF69_ENTER_COND_CRC_OK 0b01100000 // 7 5 CrcOk rising edge 382 #define RF69_ENTER_COND_PAYLOAD_READY 0b10000000 // 7 5 PayloadReady rising edge 383 #define RF69_ENTER_COND_SYNC_ADDRESS 0b10100000 // 7 5 SyncAddress rising edge 384 #define RF69_ENTER_COND_PACKET_SENT 0b11000000 // 7 5 PacketSent rising edge 385 #define RF69_ENTER_COND_FIFO_EMPTY 0b11100000 // 7 5 FifoNotEmpty falling edge 386 #define RF69_EXIT_COND_NONE 0b00000000 // 4 2 condition for exiting intermediate mode: none, AutoModes disabled (default) 387 #define RF69_EXIT_COND_FIFO_EMPTY 0b00100000 // 4 2 FifoNotEmpty falling edge 388 #define RF69_EXIT_COND_FIFO_LEVEL 0b01000000 // 4 2 FifoLevel rising edge 389 #define RF69_EXIT_COND_CRC_OK 0b01100000 // 4 2 CrcOk rising edge 390 #define RF69_EXIT_COND_PAYLOAD_READY 0b10000000 // 4 2 PayloadReady rising edge 391 #define RF69_EXIT_COND_SYNC_ADDRESS 0b10100000 // 4 2 SyncAddress rising edge 392 #define RF69_EXIT_COND_PACKET_SENT 0b11000000 // 4 2 PacketSent rising edge 393 #define RF69_EXIT_COND_TIMEOUT 0b11100000 // 4 2 timeout rising edge 394 #define RF69_INTER_MODE_SLEEP 0b00000000 // 1 0 intermediate mode: sleep (default) 395 #define RF69_INTER_MODE_STANDBY 0b00000001 // 1 0 standby 396 #define RF69_INTER_MODE_RX 0b00000010 // 1 0 Rx 397 #define RF69_INTER_MODE_TX 0b00000011 // 1 0 Tx 400 #define RF69_TX_START_CONDITION_FIFO_LEVEL 0b00000000 // 7 7 packet transmission start condition: FifoLevel 401 #define RF69_TX_START_CONDITION_FIFO_NOT_EMPTY 0b10000000 // 7 7 FifoNotEmpty (default) 402 #define RF69_FIFO_THRESHOLD 0b00001111 // 6 0 default threshold to trigger FifoLevel interrupt 405 #define RF69_INTER_PACKET_RX_DELAY 0b00000000 // 7 4 delay between FIFO empty and start of new RSSI phase 406 #define RF69_RESTART_RX 0b00000100 // 2 2 force receiver into wait mode 407 #define RF69_AUTO_RX_RESTART_OFF 0b00000000 // 1 1 auto Rx restart disabled 408 #define RF69_AUTO_RX_RESTART_ON 0b00000010 // 1 1 auto Rx restart enabled (default) 409 #define RF69_AES_OFF 0b00000000 // 0 0 AES encryption disabled (default) 410 #define RF69_AES_ON 0b00000001 // 0 0 AES encryption enabled, payload size limited to 66 bytes 413 #define RF69_TEMP_MEAS_START 0b00001000 // 3 3 trigger temperature measurement 414 #define RF69_TEMP_MEAS_RUNNING 0b00000100 // 2 2 temperature measurement status: on-going 415 #define RF69_TEMP_MEAS_DONE 0b00000000 // 2 2 done 418 #define RF69_CONTINUOUS_DAGC_NORMAL 0x00 // 7 0 fading margin improvement: normal mode 419 #define RF69_CONTINUOUS_DAGC_LOW_BETA_ON 0x20 // 7 0 improved mode for AfcLowBetaOn 420 #define RF69_CONTINUOUS_DAGC_LOW_BETA_OFF 0x30 // 7 0 improved mode for AfcLowBetaOff (default) 423 #define RF69_PA1_NORMAL 0x55 // 7 0 PA_BOOST: none 424 #define RF69_PA1_20_DBM 0x5D // 7 0 +20 dBm 427 #define RF69_PA2_NORMAL 0x70 // 7 0 PA_BOOST: none 428 #define RF69_PA2_20_DBM 0x7C // 7 0 +20 dBm 469 int16_t
begin(
float freq = 434.0,
float br = 48.0,
float freqDev = 50.0,
float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16);
488 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
500 int16_t
receive(uint8_t* data,
size_t len)
override;
598 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
616 int16_t
readData(uint8_t* data,
size_t len)
override;
676 int16_t
setSyncWord(uint8_t* syncWord,
size_t len, uint8_t maxErrBits = 0);
840 #ifndef RADIOLIB_GODMODE 847 int16_t _tempOffset = 0;
850 size_t _packetLength = 0;
851 bool _packetLengthQueried =
false;
852 uint8_t _packetLengthConfig = RF69_PACKET_FORMAT_VARIABLE;
854 bool _promiscuous =
false;
856 uint8_t _syncWordLength = 2;
859 int16_t directMode();
860 int16_t setPacketMode(uint8_t mode, uint8_t len);
862 #ifndef RADIOLIB_GODMODE 865 int16_t setMode(uint8_t mode);
866 void clearIRQFlags();
int16_t setFrequencyDeviation(float freqDev) override
Sets frequency deviation.
Definition: RF69.cpp:507
int16_t disableAddressFiltering()
Disables address filtering. Calling this method will also erase previously set addresses.
Definition: RF69.cpp:615
int16_t setSyncWord(uint8_t *syncWord, size_t len, uint8_t maxErrBits=0)
Sets sync word. Up to 8 bytes can be set as sync word.
Definition: RF69.cpp:563
int16_t setPromiscuousMode(bool promiscuous=true)
Set modem in "sniff" mode: no packet filtering (e.g., no preamble, sync word, address, CRC).
Definition: RF69.cpp:695
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('_r_f69_8h_source.html','');});
int16_t sleep()
Sets the module to sleep mode.
Definition: RF69.cpp:163
int16_t disableAES()
Disables AES encryption.
Definition: RF69.cpp:237
int16_t variablePacketLengthMode(uint8_t maxLen=RF69_MAX_PACKET_LENGTH)
Set modem in variable packet length mode.
Definition: RF69.cpp:666
-
Control class for RF69 module. Also serves as base class for SX1231.
Definition: RF69.h:432
+
Control class for RF69 module. Also serves as base class for SX1231.
Definition: RF69.h:435
int16_t transmit(uint8_t *data, size_t len, uint8_t addr=0) override
Blocking binary transmit method. Overloads for string-based transmissions are implemented in Physical...
Definition: RF69.cpp:110
void clearDio1Action()
Clears interrupt service routine to call when DIO1 activates.
Definition: RF69.cpp:285
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Allowed values are RA...
Definition: RF69.cpp:721
@@ -132,6 +132,7 @@ $(document).ready(function(){initNavTree('_r_f69_8h_source.html','');});
RF69(Module *module)
Default constructor.
Definition: RF69.cpp:4
int16_t receiveDirect() override
Starts direct mode reception.
Definition: RF69.cpp:200
int16_t readData(String &str, size_t len=0)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:57
+
int16_t getChipVersion()
Read version SPI register. Should return RF69_CHIP_VERSION (0x24) if SX127x is connected and working...
Definition: RF69.cpp:786
int16_t enableSyncWordFiltering(uint8_t maxErrBits=0)
Enable sync word filtering and generation.
Definition: RF69.cpp:670
int16_t startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override
Interrupt-driven binary transmit method. Overloads for string-based transmissions are implemented in ...
Definition: RF69.cpp:292
int16_t getTemperature()
Measures temperature.
Definition: RF69.cpp:632
diff --git a/_s_x1231_8h_source.html b/_s_x1231_8h_source.html
index 74345cbc..95a5a19e 100644
--- a/_s_x1231_8h_source.html
+++ b/_s_x1231_8h_source.html
@@ -84,7 +84,7 @@ $(document).ready(function(){initNavTree('_s_x1231_8h_source.html','');});
SX1231.h
-
1 #if !defined(_RADIOLIB_SX1231_H) 2 #define _RADIOLIB_SX1231_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SX1231) 8 #include "../../Module.h" 9 #include "../RF69/RF69.h" 11 #define SX1231_CHIP_REVISION_2_A 0x21 12 #define SX1231_CHIP_REVISION_2_B 0x22 13 #define SX1231_CHIP_REVISION_2_C 0x23 16 #define SX1231_REG_TEST_OOK 0x6E 19 #define SX1231_OOK_DELTA_THRESHOLD 0x0C 52 int16_t
begin(
float freq = 434.0,
float br = 48.0,
float rxBw = 125.0,
float freqDev = 50.0, int8_t power = 10, uint8_t preambleLen = 16);
54 #ifndef RADIOLIB_GODMODE 57 uint8_t _chipRevision = 0;
Control class for RF69 module. Also serves as base class for SX1231.
Definition: RF69.h:432
+
1 #if !defined(_RADIOLIB_SX1231_H) 2 #define _RADIOLIB_SX1231_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SX1231) 8 #include "../../Module.h" 9 #include "../RF69/RF69.h" 11 #define SX1231_CHIP_REVISION_2_A 0x21 12 #define SX1231_CHIP_REVISION_2_B 0x22 13 #define SX1231_CHIP_REVISION_2_C 0x23 16 #define SX1231_REG_TEST_OOK 0x6E 19 #define SX1231_OOK_DELTA_THRESHOLD 0x0C 52 int16_t
begin(
float freq = 434.0,
float br = 48.0,
float rxBw = 125.0,
float freqDev = 50.0, int8_t power = 10, uint8_t preambleLen = 16);
54 #ifndef RADIOLIB_GODMODE 57 uint8_t _chipRevision = 0;
Control class for RF69 module. Also serves as base class for SX1231.
Definition: RF69.h:435
Implements all common low-level SPI/UART/I2C methods to control the wireless module. Every module class contains one private instance of this class.
Definition: Module.h:17
Control class for SX1231 module. Overrides some methods from RF69 due to different register values...
Definition: SX1231.h:26
int16_t begin(float freq=434.0, float br=48.0, float rxBw=125.0, float freqDev=50.0, int8_t power=10, uint8_t preambleLen=16)
Initialization method.
Definition: SX1231.cpp:8
diff --git a/_s_x127x_8h_source.html b/_s_x127x_8h_source.html
index 93cf8178..9971f627 100644
--- a/_s_x127x_8h_source.html
+++ b/_s_x127x_8h_source.html
@@ -84,7 +84,7 @@ $(document).ready(function(){initNavTree('_s_x127x_8h_source.html','');});
SX127x.h
-
1 #if !defined(_RADIOLIB_SX127X_H) 2 #define _RADIOLIB_SX127X_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SX127X) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define SX127X_FREQUENCY_STEP_SIZE 61.03515625 14 #define SX127X_MAX_PACKET_LENGTH 255 15 #define SX127X_MAX_PACKET_LENGTH_FSK 64 16 #define SX127X_CRYSTAL_FREQ 32.0 17 #define SX127X_DIV_EXPONENT 19 20 #define SX127X_REG_FIFO 0x00 21 #define SX127X_REG_OP_MODE 0x01 22 #define SX127X_REG_FRF_MSB 0x06 23 #define SX127X_REG_FRF_MID 0x07 24 #define SX127X_REG_FRF_LSB 0x08 25 #define SX127X_REG_PA_CONFIG 0x09 26 #define SX127X_REG_PA_RAMP 0x0A 27 #define SX127X_REG_OCP 0x0B 28 #define SX127X_REG_LNA 0x0C 29 #define SX127X_REG_FIFO_ADDR_PTR 0x0D 30 #define SX127X_REG_FIFO_TX_BASE_ADDR 0x0E 31 #define SX127X_REG_FIFO_RX_BASE_ADDR 0x0F 32 #define SX127X_REG_FIFO_RX_CURRENT_ADDR 0x10 33 #define SX127X_REG_IRQ_FLAGS_MASK 0x11 34 #define SX127X_REG_IRQ_FLAGS 0x12 35 #define SX127X_REG_RX_NB_BYTES 0x13 36 #define SX127X_REG_RX_HEADER_CNT_VALUE_MSB 0x14 37 #define SX127X_REG_RX_HEADER_CNT_VALUE_LSB 0x15 38 #define SX127X_REG_RX_PACKET_CNT_VALUE_MSB 0x16 39 #define SX127X_REG_RX_PACKET_CNT_VALUE_LSB 0x17 40 #define SX127X_REG_MODEM_STAT 0x18 41 #define SX127X_REG_PKT_SNR_VALUE 0x19 42 #define SX127X_REG_PKT_RSSI_VALUE 0x1A 43 #define SX127X_REG_RSSI_VALUE 0x1B 44 #define SX127X_REG_HOP_CHANNEL 0x1C 45 #define SX127X_REG_MODEM_CONFIG_1 0x1D 46 #define SX127X_REG_MODEM_CONFIG_2 0x1E 47 #define SX127X_REG_SYMB_TIMEOUT_LSB 0x1F 48 #define SX127X_REG_PREAMBLE_MSB 0x20 49 #define SX127X_REG_PREAMBLE_LSB 0x21 50 #define SX127X_REG_PAYLOAD_LENGTH 0x22 51 #define SX127X_REG_MAX_PAYLOAD_LENGTH 0x23 52 #define SX127X_REG_HOP_PERIOD 0x24 53 #define SX127X_REG_FIFO_RX_BYTE_ADDR 0x25 54 #define SX127X_REG_FEI_MSB 0x28 55 #define SX127X_REG_FEI_MID 0x29 56 #define SX127X_REG_FEI_LSB 0x2A 57 #define SX127X_REG_RSSI_WIDEBAND 0x2C 58 #define SX127X_REG_DETECT_OPTIMIZE 0x31 59 #define SX127X_REG_INVERT_IQ 0x33 60 #define SX127X_REG_DETECTION_THRESHOLD 0x37 61 #define SX127X_REG_SYNC_WORD 0x39 62 #define SX127X_REG_DIO_MAPPING_1 0x40 63 #define SX127X_REG_DIO_MAPPING_2 0x41 64 #define SX127X_REG_VERSION 0x42 68 #define SX127X_FSK_OOK 0b00000000 // 7 7 FSK/OOK mode 69 #define SX127X_LORA 0b10000000 // 7 7 LoRa mode 70 #define SX127X_ACCESS_SHARED_REG_OFF 0b00000000 // 6 6 access LoRa registers (0x0D:0x3F) in LoRa mode 71 #define SX127X_ACCESS_SHARED_REG_ON 0b01000000 // 6 6 access FSK registers (0x0D:0x3F) in LoRa mode 72 #define SX127X_SLEEP 0b00000000 // 2 0 sleep 73 #define SX127X_STANDBY 0b00000001 // 2 0 standby 74 #define SX127X_FSTX 0b00000010 // 2 0 frequency synthesis TX 75 #define SX127X_TX 0b00000011 // 2 0 transmit 76 #define SX127X_FSRX 0b00000100 // 2 0 frequency synthesis RX 77 #define SX127X_RXCONTINUOUS 0b00000101 // 2 0 receive continuous 78 #define SX127X_RXSINGLE 0b00000110 // 2 0 receive single 79 #define SX127X_CAD 0b00000111 // 2 0 channel activity detection 82 #define SX127X_PA_SELECT_RFO 0b00000000 // 7 7 RFO pin output, power limited to +14 dBm 83 #define SX127X_PA_SELECT_BOOST 0b10000000 // 7 7 PA_BOOST pin output, power limited to +20 dBm 84 #define SX127X_OUTPUT_POWER 0b00001111 // 3 0 output power: P_out = 2 + OUTPUT_POWER [dBm] for PA_SELECT_BOOST 88 #define SX127X_OCP_OFF 0b00000000 // 5 5 PA overload current protection disabled 89 #define SX127X_OCP_ON 0b00100000 // 5 5 PA overload current protection enabled 90 #define SX127X_OCP_TRIM 0b00001011 // 4 0 OCP current: I_max(OCP_TRIM = 0b1011) = 100 mA 93 #define SX127X_LNA_GAIN_1 0b00100000 // 7 5 LNA gain setting: max gain 94 #define SX127X_LNA_GAIN_2 0b01000000 // 7 5 . 95 #define SX127X_LNA_GAIN_3 0b01100000 // 7 5 . 96 #define SX127X_LNA_GAIN_4 0b10000000 // 7 5 . 97 #define SX127X_LNA_GAIN_5 0b10100000 // 7 5 . 98 #define SX127X_LNA_GAIN_6 0b11000000 // 7 5 min gain 99 #define SX127X_LNA_BOOST_OFF 0b00000000 // 1 0 default LNA current 100 #define SX127X_LNA_BOOST_ON 0b00000011 // 1 0 150% LNA current 103 #define SX127X_SF_6 0b01100000 // 7 4 spreading factor: 64 chips/bit 104 #define SX127X_SF_7 0b01110000 // 7 4 128 chips/bit 105 #define SX127X_SF_8 0b10000000 // 7 4 256 chips/bit 106 #define SX127X_SF_9 0b10010000 // 7 4 512 chips/bit 107 #define SX127X_SF_10 0b10100000 // 7 4 1024 chips/bit 108 #define SX127X_SF_11 0b10110000 // 7 4 2048 chips/bit 109 #define SX127X_SF_12 0b11000000 // 7 4 4096 chips/bit 110 #define SX127X_TX_MODE_SINGLE 0b00000000 // 3 3 single TX 111 #define SX127X_TX_MODE_CONT 0b00001000 // 3 3 continuous TX 112 #define SX127X_RX_TIMEOUT_MSB 0b00000000 // 1 0 115 #define SX127X_RX_TIMEOUT_LSB 0b01100100 // 7 0 10 bit RX operation timeout 118 #define SX127X_PREAMBLE_LENGTH_MSB 0b00000000 // 7 0 2 byte preamble length setting: l_P = PREAMBLE_LENGTH + 4.25 119 #define SX127X_PREAMBLE_LENGTH_LSB 0b00001000 // 7 0 where l_p = preamble length 122 #define SX127X_DETECT_OPTIMIZE_SF_6 0b00000101 // 2 0 SF6 detection optimization 123 #define SX127X_DETECT_OPTIMIZE_SF_7_12 0b00000011 // 2 0 SF7 to SF12 detection optimization 126 #define SX127X_DETECTION_THRESHOLD_SF_6 0b00001100 // 7 0 SF6 detection threshold 127 #define SX127X_DETECTION_THRESHOLD_SF_7_12 0b00001010 // 7 0 SF7 to SF12 detection threshold 130 #define SX127X_PA_BOOST_OFF 0b00000100 // 2 0 PA_BOOST disabled 131 #define SX127X_PA_BOOST_ON 0b00000111 // 2 0 +20 dBm on PA_BOOST when OUTPUT_POWER = 0b1111 134 #define SX127X_HOP_PERIOD_OFF 0b00000000 // 7 0 number of periods between frequency hops; 0 = disabled 135 #define SX127X_HOP_PERIOD_MAX 0b11111111 // 7 0 138 #define SX127X_DIO0_RX_DONE 0b00000000 // 7 6 139 #define SX127X_DIO0_TX_DONE 0b01000000 // 7 6 140 #define SX127X_DIO0_CAD_DONE 0b10000000 // 7 6 141 #define SX127X_DIO1_RX_TIMEOUT 0b00000000 // 5 4 142 #define SX127X_DIO1_FHSS_CHANGE_CHANNEL 0b00010000 // 5 4 143 #define SX127X_DIO1_CAD_DETECTED 0b00100000 // 5 4 146 #define SX127X_CLEAR_IRQ_FLAG_RX_TIMEOUT 0b10000000 // 7 7 timeout 147 #define SX127X_CLEAR_IRQ_FLAG_RX_DONE 0b01000000 // 6 6 packet reception complete 148 #define SX127X_CLEAR_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b00100000 // 5 5 payload CRC error 149 #define SX127X_CLEAR_IRQ_FLAG_VALID_HEADER 0b00010000 // 4 4 valid header received 150 #define SX127X_CLEAR_IRQ_FLAG_TX_DONE 0b00001000 // 3 3 payload transmission complete 151 #define SX127X_CLEAR_IRQ_FLAG_CAD_DONE 0b00000100 // 2 2 CAD complete 152 #define SX127X_CLEAR_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b00000010 // 1 1 FHSS change channel 153 #define SX127X_CLEAR_IRQ_FLAG_CAD_DETECTED 0b00000001 // 0 0 valid LoRa signal detected during CAD operation 156 #define SX127X_MASK_IRQ_FLAG_RX_TIMEOUT 0b01111111 // 7 7 timeout 157 #define SX127X_MASK_IRQ_FLAG_RX_DONE 0b10111111 // 6 6 packet reception complete 158 #define SX127X_MASK_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b11011111 // 5 5 payload CRC error 159 #define SX127X_MASK_IRQ_FLAG_VALID_HEADER 0b11101111 // 4 4 valid header received 160 #define SX127X_MASK_IRQ_FLAG_TX_DONE 0b11110111 // 3 3 payload transmission complete 161 #define SX127X_MASK_IRQ_FLAG_CAD_DONE 0b11111011 // 2 2 CAD complete 162 #define SX127X_MASK_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b11111101 // 1 1 FHSS change channel 163 #define SX127X_MASK_IRQ_FLAG_CAD_DETECTED 0b11111110 // 0 0 valid LoRa signal detected during CAD operation 166 #define SX127X_FIFO_TX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for TX only 169 #define SX127X_FIFO_RX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for RX only 172 #define SX127X_SYNC_WORD 0x12 // 7 0 default LoRa sync word 173 #define SX127X_SYNC_WORD_LORAWAN 0x34 // 7 0 sync word reserved for LoRaWAN networks 177 #define SX127X_REG_BITRATE_MSB 0x02 178 #define SX127X_REG_BITRATE_LSB 0x03 179 #define SX127X_REG_FDEV_MSB 0x04 180 #define SX127X_REG_FDEV_LSB 0x05 181 #define SX127X_REG_RX_CONFIG 0x0D 182 #define SX127X_REG_RSSI_CONFIG 0x0E 183 #define SX127X_REG_RSSI_COLLISION 0x0F 184 #define SX127X_REG_RSSI_THRESH 0x10 185 #define SX127X_REG_RSSI_VALUE_FSK 0x11 186 #define SX127X_REG_RX_BW 0x12 187 #define SX127X_REG_AFC_BW 0x13 188 #define SX127X_REG_OOK_PEAK 0x14 189 #define SX127X_REG_OOK_FIX 0x15 190 #define SX127X_REG_OOK_AVG 0x16 191 #define SX127X_REG_AFC_FEI 0x1A 192 #define SX127X_REG_AFC_MSB 0x1B 193 #define SX127X_REG_AFC_LSB 0x1C 194 #define SX127X_REG_FEI_MSB_FSK 0x1D 195 #define SX127X_REG_FEI_LSB_FSK 0x1E 196 #define SX127X_REG_PREAMBLE_DETECT 0x1F 197 #define SX127X_REG_RX_TIMEOUT_1 0x20 198 #define SX127X_REG_RX_TIMEOUT_2 0x21 199 #define SX127X_REG_RX_TIMEOUT_3 0x22 200 #define SX127X_REG_RX_DELAY 0x23 201 #define SX127X_REG_OSC 0x24 202 #define SX127X_REG_PREAMBLE_MSB_FSK 0x25 203 #define SX127X_REG_PREAMBLE_LSB_FSK 0x26 204 #define SX127X_REG_SYNC_CONFIG 0x27 205 #define SX127X_REG_SYNC_VALUE_1 0x28 206 #define SX127X_REG_SYNC_VALUE_2 0x29 207 #define SX127X_REG_SYNC_VALUE_3 0x2A 208 #define SX127X_REG_SYNC_VALUE_4 0x2B 209 #define SX127X_REG_SYNC_VALUE_5 0x2C 210 #define SX127X_REG_SYNC_VALUE_6 0x2D 211 #define SX127X_REG_SYNC_VALUE_7 0x2E 212 #define SX127X_REG_SYNC_VALUE_8 0x2F 213 #define SX127X_REG_PACKET_CONFIG_1 0x30 214 #define SX127X_REG_PACKET_CONFIG_2 0x31 215 #define SX127X_REG_PAYLOAD_LENGTH_FSK 0x32 216 #define SX127X_REG_NODE_ADRS 0x33 217 #define SX127X_REG_BROADCAST_ADRS 0x34 218 #define SX127X_REG_FIFO_THRESH 0x35 219 #define SX127X_REG_SEQ_CONFIG_1 0x36 220 #define SX127X_REG_SEQ_CONFIG_2 0x37 221 #define SX127X_REG_TIMER_RESOL 0x38 222 #define SX127X_REG_TIMER1_COEF 0x39 223 #define SX127X_REG_TIMER2_COEF 0x3A 224 #define SX127X_REG_IMAGE_CAL 0x3B 225 #define SX127X_REG_TEMP 0x3C 226 #define SX127X_REG_LOW_BAT 0x3D 227 #define SX127X_REG_IRQ_FLAGS_1 0x3E 228 #define SX127X_REG_IRQ_FLAGS_2 0x3F 232 #define SX127X_MODULATION_FSK 0b00000000 // 6 5 FSK modulation scheme 233 #define SX127X_MODULATION_OOK 0b00100000 // 6 5 OOK modulation scheme 234 #define SX127X_RX 0b00000101 // 2 0 receiver mode 237 #define SX127X_BITRATE_MSB 0x1A // 7 0 bit rate setting: BitRate = F(XOSC)/(BITRATE + BITRATE_FRAC/16) 238 #define SX127X_BITRATE_LSB 0x0B // 7 0 default value: 4.8 kbps 241 #define SX127X_FDEV_MSB 0x00 // 5 0 frequency deviation: Fdev = Fstep * FDEV 242 #define SX127X_FDEV_LSB 0x52 // 7 0 default value: 5 kHz 245 #define SX127X_RESTART_RX_ON_COLLISION_OFF 0b00000000 // 7 7 automatic receiver restart disabled (default) 246 #define SX127X_RESTART_RX_ON_COLLISION_ON 0b10000000 // 7 7 automatically restart receiver if it gets saturated or on packet collision 247 #define SX127X_RESTART_RX_WITHOUT_PLL_LOCK 0b01000000 // 6 6 manually restart receiver without frequency change 248 #define SX127X_RESTART_RX_WITH_PLL_LOCK 0b00100000 // 5 5 manually restart receiver with frequency change 249 #define SX127X_AFC_AUTO_OFF 0b00000000 // 4 4 no AFC performed (default) 250 #define SX127X_AFC_AUTO_ON 0b00010000 // 4 4 AFC performed at each receiver startup 251 #define SX127X_AGC_AUTO_OFF 0b00000000 // 3 3 LNA gain set manually by register 252 #define SX127X_AGC_AUTO_ON 0b00001000 // 3 3 LNA gain controlled by AGC 253 #define SX127X_RX_TRIGGER_NONE 0b00000000 // 2 0 receiver startup at: none 254 #define SX127X_RX_TRIGGER_RSSI_INTERRUPT 0b00000001 // 2 0 RSSI interrupt 255 #define SX127X_RX_TRIGGER_PREAMBLE_DETECT 0b00000110 // 2 0 preamble detected 256 #define SX127X_RX_TRIGGER_BOTH 0b00000111 // 2 0 RSSI interrupt and preamble detected 259 #define SX127X_RSSI_SMOOTHING_SAMPLES_2 0b00000000 // 2 0 number of samples for RSSI average: 2 260 #define SX127X_RSSI_SMOOTHING_SAMPLES_4 0b00000001 // 2 0 4 261 #define SX127X_RSSI_SMOOTHING_SAMPLES_8 0b00000010 // 2 0 8 (default) 262 #define SX127X_RSSI_SMOOTHING_SAMPLES_16 0b00000011 // 2 0 16 263 #define SX127X_RSSI_SMOOTHING_SAMPLES_32 0b00000100 // 2 0 32 264 #define SX127X_RSSI_SMOOTHING_SAMPLES_64 0b00000101 // 2 0 64 265 #define SX127X_RSSI_SMOOTHING_SAMPLES_128 0b00000110 // 2 0 128 266 #define SX127X_RSSI_SMOOTHING_SAMPLES_256 0b00000111 // 2 0 256 269 #define SX127X_RSSI_COLLISION_THRESHOLD 0x0A // 7 0 RSSI threshold in dB that will be considered a collision, default value: 10 dB 272 #define SX127X_RSSI_THRESHOLD 0xFF // 7 0 RSSI threshold that will trigger RSSI interrupt, RssiThreshold = RSSI_THRESHOLD / 2 [dBm] 275 #define SX127X_RX_BW_MANT_16 0b00000000 // 4 3 channel filter bandwidth: RxBw = F(XOSC) / (RxBwMant * 2^(RxBwExp + 2)) [kHz] 276 #define SX127X_RX_BW_MANT_20 0b00001000 // 4 3 277 #define SX127X_RX_BW_MANT_24 0b00010000 // 4 3 default RxBwMant parameter 278 #define SX127X_RX_BW_EXP 0b00000101 // 2 0 default RxBwExp parameter 281 #define SX127X_RX_BW_MANT_AFC 0b00001000 // 4 3 default RxBwMant parameter used during AFC 282 #define SX127X_RX_BW_EXP_AFC 0b00000011 // 2 0 default RxBwExp parameter used during AFC 285 #define SX127X_BIT_SYNC_OFF 0b00000000 // 5 5 bit synchronizer disabled (not allowed in packet mode) 286 #define SX127X_BIT_SYNC_ON 0b00100000 // 5 5 bit synchronizer enabled (default) 287 #define SX127X_OOK_THRESH_FIXED 0b00000000 // 4 3 OOK threshold type: fixed value 288 #define SX127X_OOK_THRESH_PEAK 0b00001000 // 4 3 peak mode (default) 289 #define SX127X_OOK_THRESH_AVERAGE 0b00010000 // 4 3 average mode 290 #define SX127X_OOK_PEAK_THRESH_STEP_0_5_DB 0b00000000 // 2 0 OOK demodulator step size: 0.5 dB (default) 291 #define SX127X_OOK_PEAK_THRESH_STEP_1_0_DB 0b00000001 // 2 0 1.0 dB 292 #define SX127X_OOK_PEAK_THRESH_STEP_1_5_DB 0b00000010 // 2 0 1.5 dB 293 #define SX127X_OOK_PEAK_THRESH_STEP_2_0_DB 0b00000011 // 2 0 2.0 dB 294 #define SX127X_OOK_PEAK_THRESH_STEP_3_0_DB 0b00000100 // 2 0 3.0 dB 295 #define SX127X_OOK_PEAK_THRESH_STEP_4_0_DB 0b00000101 // 2 0 4.0 dB 296 #define SX127X_OOK_PEAK_THRESH_STEP_5_0_DB 0b00000110 // 2 0 5.0 dB 297 #define SX127X_OOK_PEAK_THRESH_STEP_6_0_DB 0b00000111 // 2 0 6.0 dB 300 #define SX127X_OOK_FIXED_THRESHOLD 0x0C // 7 0 default fixed threshold for OOK data slicer 303 #define SX127X_OOK_PEAK_THRESH_DEC_1_1_CHIP 0b00000000 // 7 5 OOK demodulator step period: once per chip (default) 304 #define SX127X_OOK_PEAK_THRESH_DEC_1_2_CHIP 0b00100000 // 7 5 once every 2 chips 305 #define SX127X_OOK_PEAK_THRESH_DEC_1_4_CHIP 0b01000000 // 7 5 once every 4 chips 306 #define SX127X_OOK_PEAK_THRESH_DEC_1_8_CHIP 0b01100000 // 7 5 once every 8 chips 307 #define SX127X_OOK_PEAK_THRESH_DEC_2_1_CHIP 0b10000000 // 7 5 2 times per chip 308 #define SX127X_OOK_PEAK_THRESH_DEC_4_1_CHIP 0b10100000 // 7 5 4 times per chip 309 #define SX127X_OOK_PEAK_THRESH_DEC_8_1_CHIP 0b11000000 // 7 5 8 times per chip 310 #define SX127X_OOK_PEAK_THRESH_DEC_16_1_CHIP 0b11100000 // 7 5 16 times per chip 311 #define SX127X_OOK_AVERAGE_OFFSET_0_DB 0b00000000 // 3 2 OOK average threshold offset: 0.0 dB (default) 312 #define SX127X_OOK_AVERAGE_OFFSET_2_DB 0b00000100 // 3 2 2.0 dB 313 #define SX127X_OOK_AVERAGE_OFFSET_4_DB 0b00001000 // 3 2 4.0 dB 314 #define SX127X_OOK_AVERAGE_OFFSET_6_DB 0b00001100 // 3 2 6.0 dB 315 #define SX127X_OOK_AVG_THRESH_FILT_32_PI 0b00000000 // 1 0 OOK average filter coefficient: chip rate / 32*pi 316 #define SX127X_OOK_AVG_THRESH_FILT_8_PI 0b00000001 // 1 0 chip rate / 8*pi 317 #define SX127X_OOK_AVG_THRESH_FILT_4_PI 0b00000010 // 1 0 chip rate / 4*pi (default) 318 #define SX127X_OOK_AVG_THRESH_FILT_2_PI 0b00000011 // 1 0 chip rate / 2*pi 321 #define SX127X_AGC_START 0b00010000 // 4 4 manually start AGC sequence 322 #define SX127X_AFC_CLEAR 0b00000010 // 1 1 manually clear AFC register 323 #define SX127X_AFC_AUTO_CLEAR_OFF 0b00000000 // 0 0 AFC register will not be cleared at the start of AFC (default) 324 #define SX127X_AFC_AUTO_CLEAR_ON 0b00000001 // 0 0 AFC register will be cleared at the start of AFC 327 #define SX127X_PREAMBLE_DETECTOR_OFF 0b00000000 // 7 7 preamble detection disabled 328 #define SX127X_PREAMBLE_DETECTOR_ON 0b10000000 // 7 7 preamble detection enabled (default) 329 #define SX127X_PREAMBLE_DETECTOR_1_BYTE 0b00000000 // 6 5 preamble detection size: 1 byte (default) 330 #define SX127X_PREAMBLE_DETECTOR_2_BYTE 0b00100000 // 6 5 2 bytes 331 #define SX127X_PREAMBLE_DETECTOR_3_BYTE 0b01000000 // 6 5 3 bytes 332 #define SX127X_PREAMBLE_DETECTOR_TOL 0x0A // 4 0 default number of tolerated errors per chip (4 chips per bit) 335 #define SX127X_TIMEOUT_RX_RSSI_OFF 0x00 // 7 0 disable receiver timeout when RSSI interrupt doesn't occur (default) 338 #define SX127X_TIMEOUT_RX_PREAMBLE_OFF 0x00 // 7 0 disable receiver timeout when preamble interrupt doesn't occur (default) 341 #define SX127X_TIMEOUT_SIGNAL_SYNC_OFF 0x00 // 7 0 disable receiver timeout when sync address interrupt doesn't occur (default) 344 #define SX127X_RC_CAL_START 0b00000000 // 3 3 manually start RC oscillator calibration 345 #define SX127X_CLK_OUT_FXOSC 0b00000000 // 2 0 ClkOut frequency: F(XOSC) 346 #define SX127X_CLK_OUT_FXOSC_2 0b00000001 // 2 0 F(XOSC) / 2 347 #define SX127X_CLK_OUT_FXOSC_4 0b00000010 // 2 0 F(XOSC) / 4 348 #define SX127X_CLK_OUT_FXOSC_8 0b00000011 // 2 0 F(XOSC) / 8 349 #define SX127X_CLK_OUT_FXOSC_16 0b00000100 // 2 0 F(XOSC) / 16 350 #define SX127X_CLK_OUT_FXOSC_32 0b00000101 // 2 0 F(XOSC) / 32 351 #define SX127X_CLK_OUT_RC 0b00000110 // 2 0 RC 352 #define SX127X_CLK_OUT_OFF 0b00000111 // 2 0 disabled (default) 355 #define SX127X_PREAMBLE_SIZE_MSB 0x00 // 7 0 preamble size in bytes 356 #define SX127X_PREAMBLE_SIZE_LSB 0x03 // 7 0 default value: 3 bytes 359 #define SX127X_AUTO_RESTART_RX_MODE_OFF 0b00000000 // 7 6 Rx mode restart after packet reception: disabled 360 #define SX127X_AUTO_RESTART_RX_MODE_NO_PLL 0b01000000 // 7 6 enabled, don't wait for PLL lock 361 #define SX127X_AUTO_RESTART_RX_MODE_PLL 0b10000000 // 7 6 enabled, wait for PLL lock (default) 362 #define SX127X_PREAMBLE_POLARITY_AA 0b00000000 // 5 5 preamble polarity: 0xAA = 0b10101010 (default) 363 #define SX127X_PREAMBLE_POLARITY_55 0b00100000 // 5 5 0x55 = 0b01010101 364 #define SX127X_SYNC_OFF 0b00000000 // 4 4 sync word disabled 365 #define SX127X_SYNC_ON 0b00010000 // 4 4 sync word enabled (default) 366 #define SX127X_SYNC_SIZE 0x03 // 2 0 sync word size in bytes, SyncSize = SYNC_SIZE + 1 bytes 369 #define SX127X_SYNC_VALUE_1 0x01 // 7 0 sync word: 1st byte (MSB) 370 #define SX127X_SYNC_VALUE_2 0x01 // 7 0 2nd byte 371 #define SX127X_SYNC_VALUE_3 0x01 // 7 0 3rd byte 372 #define SX127X_SYNC_VALUE_4 0x01 // 7 0 4th byte 373 #define SX127X_SYNC_VALUE_5 0x01 // 7 0 5th byte 374 #define SX127X_SYNC_VALUE_6 0x01 // 7 0 6th byte 375 #define SX127X_SYNC_VALUE_7 0x01 // 7 0 7th byte 376 #define SX127X_SYNC_VALUE_8 0x01 // 7 0 8th byte (LSB) 379 #define SX127X_PACKET_FIXED 0b00000000 // 7 7 packet format: fixed length 380 #define SX127X_PACKET_VARIABLE 0b10000000 // 7 7 variable length (default) 381 #define SX127X_DC_FREE_NONE 0b00000000 // 6 5 DC-free encoding: disabled (default) 382 #define SX127X_DC_FREE_MANCHESTER 0b00100000 // 6 5 Manchester 383 #define SX127X_DC_FREE_WHITENING 0b01000000 // 6 5 Whitening 384 #define SX127X_CRC_OFF 0b00000000 // 4 4 CRC disabled 385 #define SX127X_CRC_ON 0b00010000 // 4 4 CRC enabled (default) 386 #define SX127X_CRC_AUTOCLEAR_OFF 0b00001000 // 3 3 keep FIFO on CRC mismatch, issue payload ready interrupt 387 #define SX127X_CRC_AUTOCLEAR_ON 0b00000000 // 3 3 clear FIFO on CRC mismatch, do not issue payload ready interrupt 388 #define SX127X_ADDRESS_FILTERING_OFF 0b00000000 // 2 1 address filtering: none (default) 389 #define SX127X_ADDRESS_FILTERING_NODE 0b00000010 // 2 1 node 390 #define SX127X_ADDRESS_FILTERING_NODE_BROADCAST 0b00000100 // 2 1 node or broadcast 391 #define SX127X_CRC_WHITENING_TYPE_CCITT 0b00000000 // 0 0 CRC and whitening algorithms: CCITT CRC with standard whitening (default) 392 #define SX127X_CRC_WHITENING_TYPE_IBM 0b00000001 // 0 0 IBM CRC with alternate whitening 395 #define SX127X_DATA_MODE_PACKET 0b01000000 // 6 6 data mode: packet (default) 396 #define SX127X_DATA_MODE_CONTINUOUS 0b00000000 // 6 6 continuous 397 #define SX127X_IO_HOME_OFF 0b00000000 // 5 5 io-homecontrol compatibility disabled (default) 398 #define SX127X_IO_HOME_ON 0b00100000 // 5 5 io-homecontrol compatibility enabled 401 #define SX127X_TX_START_FIFO_LEVEL 0b00000000 // 7 7 start packet transmission when: number of bytes in FIFO exceeds FIFO_THRESHOLD 402 #define SX127X_TX_START_FIFO_NOT_EMPTY 0b10000000 // 7 7 at least one byte in FIFO (default) 403 #define SX127X_FIFO_THRESH 0x0F // 5 0 FIFO level threshold 406 #define SX127X_SEQUENCER_START 0b10000000 // 7 7 manually start sequencer 407 #define SX127X_SEQUENCER_STOP 0b01000000 // 6 6 manually stop sequencer 408 #define SX127X_IDLE_MODE_STANDBY 0b00000000 // 5 5 chip mode during sequencer idle mode: standby (default) 409 #define SX127X_IDLE_MODE_SLEEP 0b00100000 // 5 5 sleep 410 #define SX127X_FROM_START_LP_SELECTION 0b00000000 // 4 3 mode that will be set after starting sequencer: low power selection (default) 411 #define SX127X_FROM_START_RECEIVE 0b00001000 // 4 3 receive 412 #define SX127X_FROM_START_TRANSMIT 0b00010000 // 4 3 transmit 413 #define SX127X_FROM_START_TRANSMIT_FIFO_LEVEL 0b00011000 // 4 3 transmit on a FIFO level interrupt 414 #define SX127X_LP_SELECTION_SEQ_OFF 0b00000000 // 2 2 mode that will be set after exiting low power selection: sequencer off (default) 415 #define SX127X_LP_SELECTION_IDLE 0b00000100 // 2 2 idle state 416 #define SX127X_FROM_IDLE_TRANSMIT 0b00000000 // 1 1 mode that will be set after exiting idle mode: transmit (default) 417 #define SX127X_FROM_IDLE_RECEIVE 0b00000010 // 1 1 receive 418 #define SX127X_FROM_TRANSMIT_LP_SELECTION 0b00000000 // 0 0 mode that will be set after exiting transmit mode: low power selection (default) 419 #define SX127X_FROM_TRANSMIT_RECEIVE 0b00000001 // 0 0 receive 422 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_PAYLOAD 0b00100000 // 7 5 mode that will be set after exiting receive mode: packet received on payload ready interrupt (default) 423 #define SX127X_FROM_RECEIVE_LP_SELECTION 0b01000000 // 7 5 low power selection 424 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_CRC_OK 0b01100000 // 7 5 packet received on CRC OK interrupt 425 #define SX127X_FROM_RECEIVE_SEQ_OFF_RSSI 0b10000000 // 7 5 sequencer off on RSSI interrupt 426 #define SX127X_FROM_RECEIVE_SEQ_OFF_SYNC_ADDR 0b10100000 // 7 5 sequencer off on sync address interrupt 427 #define SX127X_FROM_RECEIVE_SEQ_OFF_PREAMBLE_DETECT 0b11000000 // 7 5 sequencer off on preamble detect interrupt 428 #define SX127X_FROM_RX_TIMEOUT_RECEIVE 0b00000000 // 4 3 mode that will be set after Rx timeout: receive (default) 429 #define SX127X_FROM_RX_TIMEOUT_TRANSMIT 0b00001000 // 4 3 transmit 430 #define SX127X_FROM_RX_TIMEOUT_LP_SELECTION 0b00010000 // 4 3 low power selection 431 #define SX127X_FROM_RX_TIMEOUT_SEQ_OFF 0b00011000 // 4 3 sequencer off 432 #define SX127X_FROM_PACKET_RECEIVED_SEQ_OFF 0b00000000 // 2 0 mode that will be set after packet received: sequencer off (default) 433 #define SX127X_FROM_PACKET_RECEIVED_TRANSMIT 0b00000001 // 2 0 transmit 434 #define SX127X_FROM_PACKET_RECEIVED_LP_SELECTION 0b00000010 // 2 0 low power selection 435 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE_FS 0b00000011 // 2 0 receive via FS 436 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE 0b00000100 // 2 0 receive 439 #define SX127X_TIMER1_OFF 0b00000000 // 3 2 timer 1 resolution: disabled (default) 440 #define SX127X_TIMER1_RESOLUTION_64_US 0b00000100 // 3 2 64 us 441 #define SX127X_TIMER1_RESOLUTION_4_1_MS 0b00001000 // 3 2 4.1 ms 442 #define SX127X_TIMER1_RESOLUTION_262_MS 0b00001100 // 3 2 262 ms 443 #define SX127X_TIMER2_OFF 0b00000000 // 3 2 timer 2 resolution: disabled (default) 444 #define SX127X_TIMER2_RESOLUTION_64_US 0b00000001 // 3 2 64 us 445 #define SX127X_TIMER2_RESOLUTION_4_1_MS 0b00000010 // 3 2 4.1 ms 446 #define SX127X_TIMER2_RESOLUTION_262_MS 0b00000011 // 3 2 262 ms 449 #define SX127X_TIMER1_COEFFICIENT 0xF5 // 7 0 multiplication coefficient for timer 1 452 #define SX127X_TIMER2_COEFFICIENT 0x20 // 7 0 multiplication coefficient for timer 2 455 #define SX127X_AUTO_IMAGE_CAL_OFF 0b00000000 // 7 7 temperature calibration disabled (default) 456 #define SX127X_AUTO_IMAGE_CAL_ON 0b10000000 // 7 7 temperature calibration enabled 457 #define SX127X_IMAGE_CAL_START 0b01000000 // 6 6 start temperature calibration 458 #define SX127X_IMAGE_CAL_RUNNING 0b00100000 // 5 5 temperature calibration is on-going 459 #define SX127X_IMAGE_CAL_COMPLETE 0b00000000 // 5 5 temperature calibration finished 460 #define SX127X_TEMP_CHANGED 0b00001000 // 3 3 temperature changed more than TEMP_THRESHOLD since last calibration 461 #define SX127X_TEMP_THRESHOLD_5_DEG_C 0b00000000 // 2 1 temperature change threshold: 5 deg. C 462 #define SX127X_TEMP_THRESHOLD_10_DEG_C 0b00000010 // 2 1 10 deg. C (default) 463 #define SX127X_TEMP_THRESHOLD_15_DEG_C 0b00000100 // 2 1 15 deg. C 464 #define SX127X_TEMP_THRESHOLD_20_DEG_C 0b00000110 // 2 1 20 deg. C 465 #define SX127X_TEMP_MONITOR_ON 0b00000000 // 0 0 temperature monitoring enabled (default) 466 #define SX127X_TEMP_MONITOR_OFF 0b00000001 // 0 0 temperature monitoring disabled 469 #define SX127X_LOW_BAT_OFF 0b00000000 // 3 3 low battery detector disabled 470 #define SX127X_LOW_BAT_ON 0b00001000 // 3 3 low battery detector enabled 471 #define SX127X_LOW_BAT_TRIM_1_695_V 0b00000000 // 2 0 battery voltage threshold: 1.695 V 472 #define SX127X_LOW_BAT_TRIM_1_764_V 0b00000001 // 2 0 1.764 V 473 #define SX127X_LOW_BAT_TRIM_1_835_V 0b00000010 // 2 0 1.835 V (default) 474 #define SX127X_LOW_BAT_TRIM_1_905_V 0b00000011 // 2 0 1.905 V 475 #define SX127X_LOW_BAT_TRIM_1_976_V 0b00000100 // 2 0 1.976 V 476 #define SX127X_LOW_BAT_TRIM_2_045_V 0b00000101 // 2 0 2.045 V 477 #define SX127X_LOW_BAT_TRIM_2_116_V 0b00000110 // 2 0 2.116 V 478 #define SX127X_LOW_BAT_TRIM_2_185_V 0b00000111 // 2 0 2.185 V 481 #define SX127X_FLAG_MODE_READY 0b10000000 // 7 7 requested mode is ready 482 #define SX127X_FLAG_RX_READY 0b01000000 // 6 6 reception ready (after RSSI, AGC, AFC) 483 #define SX127X_FLAG_TX_READY 0b00100000 // 5 5 transmission ready (after PA ramp-up) 484 #define SX127X_FLAG_PLL_LOCK 0b00010000 // 4 4 PLL locked 485 #define SX127X_FLAG_RSSI 0b00001000 // 3 3 RSSI value exceeds RSSI threshold 486 #define SX127X_FLAG_TIMEOUT 0b00000100 // 2 2 timeout occurred 487 #define SX127X_FLAG_PREAMBLE_DETECT 0b00000010 // 1 1 valid preamble was detected 488 #define SX127X_FLAG_SYNC_ADDRESS_MATCH 0b00000001 // 0 0 sync address matched 491 #define SX127X_FLAG_FIFO_FULL 0b10000000 // 7 7 FIFO is full 492 #define SX127X_FLAG_FIFO_EMPTY 0b01000000 // 6 6 FIFO is empty 493 #define SX127X_FLAG_FIFO_LEVEL 0b00100000 // 5 5 number of bytes in FIFO exceeds FIFO_THRESHOLD 494 #define SX127X_FLAG_FIFO_OVERRUN 0b00010000 // 4 4 FIFO overrun occurred 495 #define SX127X_FLAG_PACKET_SENT 0b00001000 // 3 3 packet was successfully sent 496 #define SX127X_FLAG_PAYLOAD_READY 0b00000100 // 2 2 packet was successfully received 497 #define SX127X_FLAG_CRC_OK 0b00000010 // 1 1 CRC check passed 498 #define SX127X_FLAG_LOW_BAT 0b00000001 // 0 0 battery voltage dropped below threshold 501 #define SX127X_DIO0_CONT_SYNC_ADDRESS 0b00000000 // 7 6 502 #define SX127X_DIO0_CONT_TX_READY 0b00000000 // 7 6 503 #define SX127X_DIO0_CONT_RSSI_PREAMBLE_DETECTED 0b01000000 // 7 6 504 #define SX127X_DIO0_CONT_RX_READY 0b10000000 // 7 6 505 #define SX127X_DIO0_PACK_PAYLOAD_READY 0b00000000 // 7 6 506 #define SX127X_DIO0_PACK_PACKET_SENT 0b00000000 // 7 6 507 #define SX127X_DIO0_PACK_CRC_OK 0b01000000 // 7 6 508 #define SX127X_DIO0_PACK_TEMP_CHANGE_LOW_BAT 0b11000000 // 7 6 509 #define SX127X_DIO1_CONT_DCLK 0b00000000 // 5 4 510 #define SX127X_DIO1_CONT_RSSI_PREAMBLE_DETECTED 0b00010000 // 5 4 511 #define SX127X_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4 512 #define SX127X_DIO1_PACK_FIFO_EMPTY 0b00010000 // 5 4 513 #define SX127X_DIO1_PACK_FIFO_FULL 0b00100000 // 5 4 514 #define SX127X_DIO2_CONT_DATA 0b00000000 // 3 2 517 #define SX127X_FAST_HOP_OFF 0b00000000 // 7 7 carrier frequency validated when FRF registers are written 518 #define SX127X_FAST_HOP_ON 0b10000000 // 7 7 carrier frequency validated when FS modes are requested 521 #define SX127X_TCXO_INPUT_EXTERNAL 0b00000000 // 4 4 use external crystal oscillator 522 #define SX127X_TCXO_INPUT_EXTERNAL_CLIPPED 0b00010000 // 4 4 use external crystal oscillator clipped sine connected to XTA pin 525 #define SX127X_PLL_BANDWIDTH_75_KHZ 0b00000000 // 7 6 PLL bandwidth: 75 kHz 526 #define SX127X_PLL_BANDWIDTH_150_KHZ 0b01000000 // 7 6 150 kHz 527 #define SX127X_PLL_BANDWIDTH_225_KHZ 0b10000000 // 7 6 225 kHz 528 #define SX127X_PLL_BANDWIDTH_300_KHZ 0b11000000 // 7 6 300 kHz (default) 566 int16_t
begin(uint8_t chipVersion, uint8_t syncWord, uint16_t preambleLength);
571 virtual void reset() = 0;
590 int16_t
beginFSK(uint8_t chipVersion,
float br,
float freqDev,
float rxBw, uint16_t preambleLength,
bool enableOOK);
604 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
616 int16_t
receive(uint8_t* data,
size_t len)
override;
702 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
713 int16_t
startReceive(uint8_t len = 0, uint8_t mode = SX127X_RXCONTINUOUS);
724 int16_t
readData(uint8_t* data,
size_t len)
override;
815 int16_t
setSyncWord(uint8_t* syncWord,
size_t len);
849 int16_t
setOOK(
bool enableOOK);
888 int16_t
setRSSIConfig(uint8_t smoothingSamples, int8_t offset = 0);
941 #ifndef RADIOLIB_GODMODE 953 bool _crcEnabled =
false;
955 int16_t setFrequencyRaw(
float newFreq);
958 int16_t getActiveModem();
959 int16_t directMode();
960 int16_t setPacketMode(uint8_t mode, uint8_t len);
962 #ifndef RADIOLIB_GODMODE 966 size_t _packetLength = 0;
967 bool _packetLengthQueried =
false;
968 uint8_t _packetLengthConfig = SX127X_PACKET_VARIABLE;
970 bool findChip(uint8_t ver);
971 int16_t setMode(uint8_t mode);
972 int16_t setActiveModem(uint8_t modem);
973 void clearIRQFlags();
974 void clearFIFO(
size_t count);
int16_t setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0)
Sets RSSI measurement configuration in FSK mode.
Definition: SX127x.cpp:897
+
1 #if !defined(_RADIOLIB_SX127X_H) 2 #define _RADIOLIB_SX127X_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SX127X) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define SX127X_FREQUENCY_STEP_SIZE 61.03515625 14 #define SX127X_MAX_PACKET_LENGTH 255 15 #define SX127X_MAX_PACKET_LENGTH_FSK 64 16 #define SX127X_CRYSTAL_FREQ 32.0 17 #define SX127X_DIV_EXPONENT 19 20 #define SX127X_REG_FIFO 0x00 21 #define SX127X_REG_OP_MODE 0x01 22 #define SX127X_REG_FRF_MSB 0x06 23 #define SX127X_REG_FRF_MID 0x07 24 #define SX127X_REG_FRF_LSB 0x08 25 #define SX127X_REG_PA_CONFIG 0x09 26 #define SX127X_REG_PA_RAMP 0x0A 27 #define SX127X_REG_OCP 0x0B 28 #define SX127X_REG_LNA 0x0C 29 #define SX127X_REG_FIFO_ADDR_PTR 0x0D 30 #define SX127X_REG_FIFO_TX_BASE_ADDR 0x0E 31 #define SX127X_REG_FIFO_RX_BASE_ADDR 0x0F 32 #define SX127X_REG_FIFO_RX_CURRENT_ADDR 0x10 33 #define SX127X_REG_IRQ_FLAGS_MASK 0x11 34 #define SX127X_REG_IRQ_FLAGS 0x12 35 #define SX127X_REG_RX_NB_BYTES 0x13 36 #define SX127X_REG_RX_HEADER_CNT_VALUE_MSB 0x14 37 #define SX127X_REG_RX_HEADER_CNT_VALUE_LSB 0x15 38 #define SX127X_REG_RX_PACKET_CNT_VALUE_MSB 0x16 39 #define SX127X_REG_RX_PACKET_CNT_VALUE_LSB 0x17 40 #define SX127X_REG_MODEM_STAT 0x18 41 #define SX127X_REG_PKT_SNR_VALUE 0x19 42 #define SX127X_REG_PKT_RSSI_VALUE 0x1A 43 #define SX127X_REG_RSSI_VALUE 0x1B 44 #define SX127X_REG_HOP_CHANNEL 0x1C 45 #define SX127X_REG_MODEM_CONFIG_1 0x1D 46 #define SX127X_REG_MODEM_CONFIG_2 0x1E 47 #define SX127X_REG_SYMB_TIMEOUT_LSB 0x1F 48 #define SX127X_REG_PREAMBLE_MSB 0x20 49 #define SX127X_REG_PREAMBLE_LSB 0x21 50 #define SX127X_REG_PAYLOAD_LENGTH 0x22 51 #define SX127X_REG_MAX_PAYLOAD_LENGTH 0x23 52 #define SX127X_REG_HOP_PERIOD 0x24 53 #define SX127X_REG_FIFO_RX_BYTE_ADDR 0x25 54 #define SX127X_REG_FEI_MSB 0x28 55 #define SX127X_REG_FEI_MID 0x29 56 #define SX127X_REG_FEI_LSB 0x2A 57 #define SX127X_REG_RSSI_WIDEBAND 0x2C 58 #define SX127X_REG_DETECT_OPTIMIZE 0x31 59 #define SX127X_REG_INVERT_IQ 0x33 60 #define SX127X_REG_DETECTION_THRESHOLD 0x37 61 #define SX127X_REG_SYNC_WORD 0x39 62 #define SX127X_REG_DIO_MAPPING_1 0x40 63 #define SX127X_REG_DIO_MAPPING_2 0x41 64 #define SX127X_REG_VERSION 0x42 68 #define SX127X_FSK_OOK 0b00000000 // 7 7 FSK/OOK mode 69 #define SX127X_LORA 0b10000000 // 7 7 LoRa mode 70 #define SX127X_ACCESS_SHARED_REG_OFF 0b00000000 // 6 6 access LoRa registers (0x0D:0x3F) in LoRa mode 71 #define SX127X_ACCESS_SHARED_REG_ON 0b01000000 // 6 6 access FSK registers (0x0D:0x3F) in LoRa mode 72 #define SX127X_SLEEP 0b00000000 // 2 0 sleep 73 #define SX127X_STANDBY 0b00000001 // 2 0 standby 74 #define SX127X_FSTX 0b00000010 // 2 0 frequency synthesis TX 75 #define SX127X_TX 0b00000011 // 2 0 transmit 76 #define SX127X_FSRX 0b00000100 // 2 0 frequency synthesis RX 77 #define SX127X_RXCONTINUOUS 0b00000101 // 2 0 receive continuous 78 #define SX127X_RXSINGLE 0b00000110 // 2 0 receive single 79 #define SX127X_CAD 0b00000111 // 2 0 channel activity detection 82 #define SX127X_PA_SELECT_RFO 0b00000000 // 7 7 RFO pin output, power limited to +14 dBm 83 #define SX127X_PA_SELECT_BOOST 0b10000000 // 7 7 PA_BOOST pin output, power limited to +20 dBm 84 #define SX127X_OUTPUT_POWER 0b00001111 // 3 0 output power: P_out = 2 + OUTPUT_POWER [dBm] for PA_SELECT_BOOST 88 #define SX127X_OCP_OFF 0b00000000 // 5 5 PA overload current protection disabled 89 #define SX127X_OCP_ON 0b00100000 // 5 5 PA overload current protection enabled 90 #define SX127X_OCP_TRIM 0b00001011 // 4 0 OCP current: I_max(OCP_TRIM = 0b1011) = 100 mA 93 #define SX127X_LNA_GAIN_1 0b00100000 // 7 5 LNA gain setting: max gain 94 #define SX127X_LNA_GAIN_2 0b01000000 // 7 5 . 95 #define SX127X_LNA_GAIN_3 0b01100000 // 7 5 . 96 #define SX127X_LNA_GAIN_4 0b10000000 // 7 5 . 97 #define SX127X_LNA_GAIN_5 0b10100000 // 7 5 . 98 #define SX127X_LNA_GAIN_6 0b11000000 // 7 5 min gain 99 #define SX127X_LNA_BOOST_OFF 0b00000000 // 1 0 default LNA current 100 #define SX127X_LNA_BOOST_ON 0b00000011 // 1 0 150% LNA current 103 #define SX127X_SF_6 0b01100000 // 7 4 spreading factor: 64 chips/bit 104 #define SX127X_SF_7 0b01110000 // 7 4 128 chips/bit 105 #define SX127X_SF_8 0b10000000 // 7 4 256 chips/bit 106 #define SX127X_SF_9 0b10010000 // 7 4 512 chips/bit 107 #define SX127X_SF_10 0b10100000 // 7 4 1024 chips/bit 108 #define SX127X_SF_11 0b10110000 // 7 4 2048 chips/bit 109 #define SX127X_SF_12 0b11000000 // 7 4 4096 chips/bit 110 #define SX127X_TX_MODE_SINGLE 0b00000000 // 3 3 single TX 111 #define SX127X_TX_MODE_CONT 0b00001000 // 3 3 continuous TX 112 #define SX127X_RX_TIMEOUT_MSB 0b00000000 // 1 0 115 #define SX127X_RX_TIMEOUT_LSB 0b01100100 // 7 0 10 bit RX operation timeout 118 #define SX127X_PREAMBLE_LENGTH_MSB 0b00000000 // 7 0 2 byte preamble length setting: l_P = PREAMBLE_LENGTH + 4.25 119 #define SX127X_PREAMBLE_LENGTH_LSB 0b00001000 // 7 0 where l_p = preamble length 122 #define SX127X_DETECT_OPTIMIZE_SF_6 0b00000101 // 2 0 SF6 detection optimization 123 #define SX127X_DETECT_OPTIMIZE_SF_7_12 0b00000011 // 2 0 SF7 to SF12 detection optimization 126 #define SX127X_DETECTION_THRESHOLD_SF_6 0b00001100 // 7 0 SF6 detection threshold 127 #define SX127X_DETECTION_THRESHOLD_SF_7_12 0b00001010 // 7 0 SF7 to SF12 detection threshold 130 #define SX127X_PA_BOOST_OFF 0b00000100 // 2 0 PA_BOOST disabled 131 #define SX127X_PA_BOOST_ON 0b00000111 // 2 0 +20 dBm on PA_BOOST when OUTPUT_POWER = 0b1111 134 #define SX127X_HOP_PERIOD_OFF 0b00000000 // 7 0 number of periods between frequency hops; 0 = disabled 135 #define SX127X_HOP_PERIOD_MAX 0b11111111 // 7 0 138 #define SX127X_DIO0_RX_DONE 0b00000000 // 7 6 139 #define SX127X_DIO0_TX_DONE 0b01000000 // 7 6 140 #define SX127X_DIO0_CAD_DONE 0b10000000 // 7 6 141 #define SX127X_DIO1_RX_TIMEOUT 0b00000000 // 5 4 142 #define SX127X_DIO1_FHSS_CHANGE_CHANNEL 0b00010000 // 5 4 143 #define SX127X_DIO1_CAD_DETECTED 0b00100000 // 5 4 146 #define SX127X_CLEAR_IRQ_FLAG_RX_TIMEOUT 0b10000000 // 7 7 timeout 147 #define SX127X_CLEAR_IRQ_FLAG_RX_DONE 0b01000000 // 6 6 packet reception complete 148 #define SX127X_CLEAR_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b00100000 // 5 5 payload CRC error 149 #define SX127X_CLEAR_IRQ_FLAG_VALID_HEADER 0b00010000 // 4 4 valid header received 150 #define SX127X_CLEAR_IRQ_FLAG_TX_DONE 0b00001000 // 3 3 payload transmission complete 151 #define SX127X_CLEAR_IRQ_FLAG_CAD_DONE 0b00000100 // 2 2 CAD complete 152 #define SX127X_CLEAR_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b00000010 // 1 1 FHSS change channel 153 #define SX127X_CLEAR_IRQ_FLAG_CAD_DETECTED 0b00000001 // 0 0 valid LoRa signal detected during CAD operation 156 #define SX127X_MASK_IRQ_FLAG_RX_TIMEOUT 0b01111111 // 7 7 timeout 157 #define SX127X_MASK_IRQ_FLAG_RX_DONE 0b10111111 // 6 6 packet reception complete 158 #define SX127X_MASK_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b11011111 // 5 5 payload CRC error 159 #define SX127X_MASK_IRQ_FLAG_VALID_HEADER 0b11101111 // 4 4 valid header received 160 #define SX127X_MASK_IRQ_FLAG_TX_DONE 0b11110111 // 3 3 payload transmission complete 161 #define SX127X_MASK_IRQ_FLAG_CAD_DONE 0b11111011 // 2 2 CAD complete 162 #define SX127X_MASK_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b11111101 // 1 1 FHSS change channel 163 #define SX127X_MASK_IRQ_FLAG_CAD_DETECTED 0b11111110 // 0 0 valid LoRa signal detected during CAD operation 166 #define SX127X_FIFO_TX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for TX only 169 #define SX127X_FIFO_RX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for RX only 172 #define SX127X_SYNC_WORD 0x12 // 7 0 default LoRa sync word 173 #define SX127X_SYNC_WORD_LORAWAN 0x34 // 7 0 sync word reserved for LoRaWAN networks 177 #define SX127X_REG_BITRATE_MSB 0x02 178 #define SX127X_REG_BITRATE_LSB 0x03 179 #define SX127X_REG_FDEV_MSB 0x04 180 #define SX127X_REG_FDEV_LSB 0x05 181 #define SX127X_REG_RX_CONFIG 0x0D 182 #define SX127X_REG_RSSI_CONFIG 0x0E 183 #define SX127X_REG_RSSI_COLLISION 0x0F 184 #define SX127X_REG_RSSI_THRESH 0x10 185 #define SX127X_REG_RSSI_VALUE_FSK 0x11 186 #define SX127X_REG_RX_BW 0x12 187 #define SX127X_REG_AFC_BW 0x13 188 #define SX127X_REG_OOK_PEAK 0x14 189 #define SX127X_REG_OOK_FIX 0x15 190 #define SX127X_REG_OOK_AVG 0x16 191 #define SX127X_REG_AFC_FEI 0x1A 192 #define SX127X_REG_AFC_MSB 0x1B 193 #define SX127X_REG_AFC_LSB 0x1C 194 #define SX127X_REG_FEI_MSB_FSK 0x1D 195 #define SX127X_REG_FEI_LSB_FSK 0x1E 196 #define SX127X_REG_PREAMBLE_DETECT 0x1F 197 #define SX127X_REG_RX_TIMEOUT_1 0x20 198 #define SX127X_REG_RX_TIMEOUT_2 0x21 199 #define SX127X_REG_RX_TIMEOUT_3 0x22 200 #define SX127X_REG_RX_DELAY 0x23 201 #define SX127X_REG_OSC 0x24 202 #define SX127X_REG_PREAMBLE_MSB_FSK 0x25 203 #define SX127X_REG_PREAMBLE_LSB_FSK 0x26 204 #define SX127X_REG_SYNC_CONFIG 0x27 205 #define SX127X_REG_SYNC_VALUE_1 0x28 206 #define SX127X_REG_SYNC_VALUE_2 0x29 207 #define SX127X_REG_SYNC_VALUE_3 0x2A 208 #define SX127X_REG_SYNC_VALUE_4 0x2B 209 #define SX127X_REG_SYNC_VALUE_5 0x2C 210 #define SX127X_REG_SYNC_VALUE_6 0x2D 211 #define SX127X_REG_SYNC_VALUE_7 0x2E 212 #define SX127X_REG_SYNC_VALUE_8 0x2F 213 #define SX127X_REG_PACKET_CONFIG_1 0x30 214 #define SX127X_REG_PACKET_CONFIG_2 0x31 215 #define SX127X_REG_PAYLOAD_LENGTH_FSK 0x32 216 #define SX127X_REG_NODE_ADRS 0x33 217 #define SX127X_REG_BROADCAST_ADRS 0x34 218 #define SX127X_REG_FIFO_THRESH 0x35 219 #define SX127X_REG_SEQ_CONFIG_1 0x36 220 #define SX127X_REG_SEQ_CONFIG_2 0x37 221 #define SX127X_REG_TIMER_RESOL 0x38 222 #define SX127X_REG_TIMER1_COEF 0x39 223 #define SX127X_REG_TIMER2_COEF 0x3A 224 #define SX127X_REG_IMAGE_CAL 0x3B 225 #define SX127X_REG_TEMP 0x3C 226 #define SX127X_REG_LOW_BAT 0x3D 227 #define SX127X_REG_IRQ_FLAGS_1 0x3E 228 #define SX127X_REG_IRQ_FLAGS_2 0x3F 232 #define SX127X_MODULATION_FSK 0b00000000 // 6 5 FSK modulation scheme 233 #define SX127X_MODULATION_OOK 0b00100000 // 6 5 OOK modulation scheme 234 #define SX127X_RX 0b00000101 // 2 0 receiver mode 237 #define SX127X_BITRATE_MSB 0x1A // 7 0 bit rate setting: BitRate = F(XOSC)/(BITRATE + BITRATE_FRAC/16) 238 #define SX127X_BITRATE_LSB 0x0B // 7 0 default value: 4.8 kbps 241 #define SX127X_FDEV_MSB 0x00 // 5 0 frequency deviation: Fdev = Fstep * FDEV 242 #define SX127X_FDEV_LSB 0x52 // 7 0 default value: 5 kHz 245 #define SX127X_RESTART_RX_ON_COLLISION_OFF 0b00000000 // 7 7 automatic receiver restart disabled (default) 246 #define SX127X_RESTART_RX_ON_COLLISION_ON 0b10000000 // 7 7 automatically restart receiver if it gets saturated or on packet collision 247 #define SX127X_RESTART_RX_WITHOUT_PLL_LOCK 0b01000000 // 6 6 manually restart receiver without frequency change 248 #define SX127X_RESTART_RX_WITH_PLL_LOCK 0b00100000 // 5 5 manually restart receiver with frequency change 249 #define SX127X_AFC_AUTO_OFF 0b00000000 // 4 4 no AFC performed (default) 250 #define SX127X_AFC_AUTO_ON 0b00010000 // 4 4 AFC performed at each receiver startup 251 #define SX127X_AGC_AUTO_OFF 0b00000000 // 3 3 LNA gain set manually by register 252 #define SX127X_AGC_AUTO_ON 0b00001000 // 3 3 LNA gain controlled by AGC 253 #define SX127X_RX_TRIGGER_NONE 0b00000000 // 2 0 receiver startup at: none 254 #define SX127X_RX_TRIGGER_RSSI_INTERRUPT 0b00000001 // 2 0 RSSI interrupt 255 #define SX127X_RX_TRIGGER_PREAMBLE_DETECT 0b00000110 // 2 0 preamble detected 256 #define SX127X_RX_TRIGGER_BOTH 0b00000111 // 2 0 RSSI interrupt and preamble detected 259 #define SX127X_RSSI_SMOOTHING_SAMPLES_2 0b00000000 // 2 0 number of samples for RSSI average: 2 260 #define SX127X_RSSI_SMOOTHING_SAMPLES_4 0b00000001 // 2 0 4 261 #define SX127X_RSSI_SMOOTHING_SAMPLES_8 0b00000010 // 2 0 8 (default) 262 #define SX127X_RSSI_SMOOTHING_SAMPLES_16 0b00000011 // 2 0 16 263 #define SX127X_RSSI_SMOOTHING_SAMPLES_32 0b00000100 // 2 0 32 264 #define SX127X_RSSI_SMOOTHING_SAMPLES_64 0b00000101 // 2 0 64 265 #define SX127X_RSSI_SMOOTHING_SAMPLES_128 0b00000110 // 2 0 128 266 #define SX127X_RSSI_SMOOTHING_SAMPLES_256 0b00000111 // 2 0 256 269 #define SX127X_RSSI_COLLISION_THRESHOLD 0x0A // 7 0 RSSI threshold in dB that will be considered a collision, default value: 10 dB 272 #define SX127X_RSSI_THRESHOLD 0xFF // 7 0 RSSI threshold that will trigger RSSI interrupt, RssiThreshold = RSSI_THRESHOLD / 2 [dBm] 275 #define SX127X_RX_BW_MANT_16 0b00000000 // 4 3 channel filter bandwidth: RxBw = F(XOSC) / (RxBwMant * 2^(RxBwExp + 2)) [kHz] 276 #define SX127X_RX_BW_MANT_20 0b00001000 // 4 3 277 #define SX127X_RX_BW_MANT_24 0b00010000 // 4 3 default RxBwMant parameter 278 #define SX127X_RX_BW_EXP 0b00000101 // 2 0 default RxBwExp parameter 281 #define SX127X_RX_BW_MANT_AFC 0b00001000 // 4 3 default RxBwMant parameter used during AFC 282 #define SX127X_RX_BW_EXP_AFC 0b00000011 // 2 0 default RxBwExp parameter used during AFC 285 #define SX127X_BIT_SYNC_OFF 0b00000000 // 5 5 bit synchronizer disabled (not allowed in packet mode) 286 #define SX127X_BIT_SYNC_ON 0b00100000 // 5 5 bit synchronizer enabled (default) 287 #define SX127X_OOK_THRESH_FIXED 0b00000000 // 4 3 OOK threshold type: fixed value 288 #define SX127X_OOK_THRESH_PEAK 0b00001000 // 4 3 peak mode (default) 289 #define SX127X_OOK_THRESH_AVERAGE 0b00010000 // 4 3 average mode 290 #define SX127X_OOK_PEAK_THRESH_STEP_0_5_DB 0b00000000 // 2 0 OOK demodulator step size: 0.5 dB (default) 291 #define SX127X_OOK_PEAK_THRESH_STEP_1_0_DB 0b00000001 // 2 0 1.0 dB 292 #define SX127X_OOK_PEAK_THRESH_STEP_1_5_DB 0b00000010 // 2 0 1.5 dB 293 #define SX127X_OOK_PEAK_THRESH_STEP_2_0_DB 0b00000011 // 2 0 2.0 dB 294 #define SX127X_OOK_PEAK_THRESH_STEP_3_0_DB 0b00000100 // 2 0 3.0 dB 295 #define SX127X_OOK_PEAK_THRESH_STEP_4_0_DB 0b00000101 // 2 0 4.0 dB 296 #define SX127X_OOK_PEAK_THRESH_STEP_5_0_DB 0b00000110 // 2 0 5.0 dB 297 #define SX127X_OOK_PEAK_THRESH_STEP_6_0_DB 0b00000111 // 2 0 6.0 dB 300 #define SX127X_OOK_FIXED_THRESHOLD 0x0C // 7 0 default fixed threshold for OOK data slicer 303 #define SX127X_OOK_PEAK_THRESH_DEC_1_1_CHIP 0b00000000 // 7 5 OOK demodulator step period: once per chip (default) 304 #define SX127X_OOK_PEAK_THRESH_DEC_1_2_CHIP 0b00100000 // 7 5 once every 2 chips 305 #define SX127X_OOK_PEAK_THRESH_DEC_1_4_CHIP 0b01000000 // 7 5 once every 4 chips 306 #define SX127X_OOK_PEAK_THRESH_DEC_1_8_CHIP 0b01100000 // 7 5 once every 8 chips 307 #define SX127X_OOK_PEAK_THRESH_DEC_2_1_CHIP 0b10000000 // 7 5 2 times per chip 308 #define SX127X_OOK_PEAK_THRESH_DEC_4_1_CHIP 0b10100000 // 7 5 4 times per chip 309 #define SX127X_OOK_PEAK_THRESH_DEC_8_1_CHIP 0b11000000 // 7 5 8 times per chip 310 #define SX127X_OOK_PEAK_THRESH_DEC_16_1_CHIP 0b11100000 // 7 5 16 times per chip 311 #define SX127X_OOK_AVERAGE_OFFSET_0_DB 0b00000000 // 3 2 OOK average threshold offset: 0.0 dB (default) 312 #define SX127X_OOK_AVERAGE_OFFSET_2_DB 0b00000100 // 3 2 2.0 dB 313 #define SX127X_OOK_AVERAGE_OFFSET_4_DB 0b00001000 // 3 2 4.0 dB 314 #define SX127X_OOK_AVERAGE_OFFSET_6_DB 0b00001100 // 3 2 6.0 dB 315 #define SX127X_OOK_AVG_THRESH_FILT_32_PI 0b00000000 // 1 0 OOK average filter coefficient: chip rate / 32*pi 316 #define SX127X_OOK_AVG_THRESH_FILT_8_PI 0b00000001 // 1 0 chip rate / 8*pi 317 #define SX127X_OOK_AVG_THRESH_FILT_4_PI 0b00000010 // 1 0 chip rate / 4*pi (default) 318 #define SX127X_OOK_AVG_THRESH_FILT_2_PI 0b00000011 // 1 0 chip rate / 2*pi 321 #define SX127X_AGC_START 0b00010000 // 4 4 manually start AGC sequence 322 #define SX127X_AFC_CLEAR 0b00000010 // 1 1 manually clear AFC register 323 #define SX127X_AFC_AUTO_CLEAR_OFF 0b00000000 // 0 0 AFC register will not be cleared at the start of AFC (default) 324 #define SX127X_AFC_AUTO_CLEAR_ON 0b00000001 // 0 0 AFC register will be cleared at the start of AFC 327 #define SX127X_PREAMBLE_DETECTOR_OFF 0b00000000 // 7 7 preamble detection disabled 328 #define SX127X_PREAMBLE_DETECTOR_ON 0b10000000 // 7 7 preamble detection enabled (default) 329 #define SX127X_PREAMBLE_DETECTOR_1_BYTE 0b00000000 // 6 5 preamble detection size: 1 byte (default) 330 #define SX127X_PREAMBLE_DETECTOR_2_BYTE 0b00100000 // 6 5 2 bytes 331 #define SX127X_PREAMBLE_DETECTOR_3_BYTE 0b01000000 // 6 5 3 bytes 332 #define SX127X_PREAMBLE_DETECTOR_TOL 0x0A // 4 0 default number of tolerated errors per chip (4 chips per bit) 335 #define SX127X_TIMEOUT_RX_RSSI_OFF 0x00 // 7 0 disable receiver timeout when RSSI interrupt doesn't occur (default) 338 #define SX127X_TIMEOUT_RX_PREAMBLE_OFF 0x00 // 7 0 disable receiver timeout when preamble interrupt doesn't occur (default) 341 #define SX127X_TIMEOUT_SIGNAL_SYNC_OFF 0x00 // 7 0 disable receiver timeout when sync address interrupt doesn't occur (default) 344 #define SX127X_RC_CAL_START 0b00000000 // 3 3 manually start RC oscillator calibration 345 #define SX127X_CLK_OUT_FXOSC 0b00000000 // 2 0 ClkOut frequency: F(XOSC) 346 #define SX127X_CLK_OUT_FXOSC_2 0b00000001 // 2 0 F(XOSC) / 2 347 #define SX127X_CLK_OUT_FXOSC_4 0b00000010 // 2 0 F(XOSC) / 4 348 #define SX127X_CLK_OUT_FXOSC_8 0b00000011 // 2 0 F(XOSC) / 8 349 #define SX127X_CLK_OUT_FXOSC_16 0b00000100 // 2 0 F(XOSC) / 16 350 #define SX127X_CLK_OUT_FXOSC_32 0b00000101 // 2 0 F(XOSC) / 32 351 #define SX127X_CLK_OUT_RC 0b00000110 // 2 0 RC 352 #define SX127X_CLK_OUT_OFF 0b00000111 // 2 0 disabled (default) 355 #define SX127X_PREAMBLE_SIZE_MSB 0x00 // 7 0 preamble size in bytes 356 #define SX127X_PREAMBLE_SIZE_LSB 0x03 // 7 0 default value: 3 bytes 359 #define SX127X_AUTO_RESTART_RX_MODE_OFF 0b00000000 // 7 6 Rx mode restart after packet reception: disabled 360 #define SX127X_AUTO_RESTART_RX_MODE_NO_PLL 0b01000000 // 7 6 enabled, don't wait for PLL lock 361 #define SX127X_AUTO_RESTART_RX_MODE_PLL 0b10000000 // 7 6 enabled, wait for PLL lock (default) 362 #define SX127X_PREAMBLE_POLARITY_AA 0b00000000 // 5 5 preamble polarity: 0xAA = 0b10101010 (default) 363 #define SX127X_PREAMBLE_POLARITY_55 0b00100000 // 5 5 0x55 = 0b01010101 364 #define SX127X_SYNC_OFF 0b00000000 // 4 4 sync word disabled 365 #define SX127X_SYNC_ON 0b00010000 // 4 4 sync word enabled (default) 366 #define SX127X_SYNC_SIZE 0x03 // 2 0 sync word size in bytes, SyncSize = SYNC_SIZE + 1 bytes 369 #define SX127X_SYNC_VALUE_1 0x01 // 7 0 sync word: 1st byte (MSB) 370 #define SX127X_SYNC_VALUE_2 0x01 // 7 0 2nd byte 371 #define SX127X_SYNC_VALUE_3 0x01 // 7 0 3rd byte 372 #define SX127X_SYNC_VALUE_4 0x01 // 7 0 4th byte 373 #define SX127X_SYNC_VALUE_5 0x01 // 7 0 5th byte 374 #define SX127X_SYNC_VALUE_6 0x01 // 7 0 6th byte 375 #define SX127X_SYNC_VALUE_7 0x01 // 7 0 7th byte 376 #define SX127X_SYNC_VALUE_8 0x01 // 7 0 8th byte (LSB) 379 #define SX127X_PACKET_FIXED 0b00000000 // 7 7 packet format: fixed length 380 #define SX127X_PACKET_VARIABLE 0b10000000 // 7 7 variable length (default) 381 #define SX127X_DC_FREE_NONE 0b00000000 // 6 5 DC-free encoding: disabled (default) 382 #define SX127X_DC_FREE_MANCHESTER 0b00100000 // 6 5 Manchester 383 #define SX127X_DC_FREE_WHITENING 0b01000000 // 6 5 Whitening 384 #define SX127X_CRC_OFF 0b00000000 // 4 4 CRC disabled 385 #define SX127X_CRC_ON 0b00010000 // 4 4 CRC enabled (default) 386 #define SX127X_CRC_AUTOCLEAR_OFF 0b00001000 // 3 3 keep FIFO on CRC mismatch, issue payload ready interrupt 387 #define SX127X_CRC_AUTOCLEAR_ON 0b00000000 // 3 3 clear FIFO on CRC mismatch, do not issue payload ready interrupt 388 #define SX127X_ADDRESS_FILTERING_OFF 0b00000000 // 2 1 address filtering: none (default) 389 #define SX127X_ADDRESS_FILTERING_NODE 0b00000010 // 2 1 node 390 #define SX127X_ADDRESS_FILTERING_NODE_BROADCAST 0b00000100 // 2 1 node or broadcast 391 #define SX127X_CRC_WHITENING_TYPE_CCITT 0b00000000 // 0 0 CRC and whitening algorithms: CCITT CRC with standard whitening (default) 392 #define SX127X_CRC_WHITENING_TYPE_IBM 0b00000001 // 0 0 IBM CRC with alternate whitening 395 #define SX127X_DATA_MODE_PACKET 0b01000000 // 6 6 data mode: packet (default) 396 #define SX127X_DATA_MODE_CONTINUOUS 0b00000000 // 6 6 continuous 397 #define SX127X_IO_HOME_OFF 0b00000000 // 5 5 io-homecontrol compatibility disabled (default) 398 #define SX127X_IO_HOME_ON 0b00100000 // 5 5 io-homecontrol compatibility enabled 401 #define SX127X_TX_START_FIFO_LEVEL 0b00000000 // 7 7 start packet transmission when: number of bytes in FIFO exceeds FIFO_THRESHOLD 402 #define SX127X_TX_START_FIFO_NOT_EMPTY 0b10000000 // 7 7 at least one byte in FIFO (default) 403 #define SX127X_FIFO_THRESH 0x0F // 5 0 FIFO level threshold 406 #define SX127X_SEQUENCER_START 0b10000000 // 7 7 manually start sequencer 407 #define SX127X_SEQUENCER_STOP 0b01000000 // 6 6 manually stop sequencer 408 #define SX127X_IDLE_MODE_STANDBY 0b00000000 // 5 5 chip mode during sequencer idle mode: standby (default) 409 #define SX127X_IDLE_MODE_SLEEP 0b00100000 // 5 5 sleep 410 #define SX127X_FROM_START_LP_SELECTION 0b00000000 // 4 3 mode that will be set after starting sequencer: low power selection (default) 411 #define SX127X_FROM_START_RECEIVE 0b00001000 // 4 3 receive 412 #define SX127X_FROM_START_TRANSMIT 0b00010000 // 4 3 transmit 413 #define SX127X_FROM_START_TRANSMIT_FIFO_LEVEL 0b00011000 // 4 3 transmit on a FIFO level interrupt 414 #define SX127X_LP_SELECTION_SEQ_OFF 0b00000000 // 2 2 mode that will be set after exiting low power selection: sequencer off (default) 415 #define SX127X_LP_SELECTION_IDLE 0b00000100 // 2 2 idle state 416 #define SX127X_FROM_IDLE_TRANSMIT 0b00000000 // 1 1 mode that will be set after exiting idle mode: transmit (default) 417 #define SX127X_FROM_IDLE_RECEIVE 0b00000010 // 1 1 receive 418 #define SX127X_FROM_TRANSMIT_LP_SELECTION 0b00000000 // 0 0 mode that will be set after exiting transmit mode: low power selection (default) 419 #define SX127X_FROM_TRANSMIT_RECEIVE 0b00000001 // 0 0 receive 422 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_PAYLOAD 0b00100000 // 7 5 mode that will be set after exiting receive mode: packet received on payload ready interrupt (default) 423 #define SX127X_FROM_RECEIVE_LP_SELECTION 0b01000000 // 7 5 low power selection 424 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_CRC_OK 0b01100000 // 7 5 packet received on CRC OK interrupt 425 #define SX127X_FROM_RECEIVE_SEQ_OFF_RSSI 0b10000000 // 7 5 sequencer off on RSSI interrupt 426 #define SX127X_FROM_RECEIVE_SEQ_OFF_SYNC_ADDR 0b10100000 // 7 5 sequencer off on sync address interrupt 427 #define SX127X_FROM_RECEIVE_SEQ_OFF_PREAMBLE_DETECT 0b11000000 // 7 5 sequencer off on preamble detect interrupt 428 #define SX127X_FROM_RX_TIMEOUT_RECEIVE 0b00000000 // 4 3 mode that will be set after Rx timeout: receive (default) 429 #define SX127X_FROM_RX_TIMEOUT_TRANSMIT 0b00001000 // 4 3 transmit 430 #define SX127X_FROM_RX_TIMEOUT_LP_SELECTION 0b00010000 // 4 3 low power selection 431 #define SX127X_FROM_RX_TIMEOUT_SEQ_OFF 0b00011000 // 4 3 sequencer off 432 #define SX127X_FROM_PACKET_RECEIVED_SEQ_OFF 0b00000000 // 2 0 mode that will be set after packet received: sequencer off (default) 433 #define SX127X_FROM_PACKET_RECEIVED_TRANSMIT 0b00000001 // 2 0 transmit 434 #define SX127X_FROM_PACKET_RECEIVED_LP_SELECTION 0b00000010 // 2 0 low power selection 435 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE_FS 0b00000011 // 2 0 receive via FS 436 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE 0b00000100 // 2 0 receive 439 #define SX127X_TIMER1_OFF 0b00000000 // 3 2 timer 1 resolution: disabled (default) 440 #define SX127X_TIMER1_RESOLUTION_64_US 0b00000100 // 3 2 64 us 441 #define SX127X_TIMER1_RESOLUTION_4_1_MS 0b00001000 // 3 2 4.1 ms 442 #define SX127X_TIMER1_RESOLUTION_262_MS 0b00001100 // 3 2 262 ms 443 #define SX127X_TIMER2_OFF 0b00000000 // 3 2 timer 2 resolution: disabled (default) 444 #define SX127X_TIMER2_RESOLUTION_64_US 0b00000001 // 3 2 64 us 445 #define SX127X_TIMER2_RESOLUTION_4_1_MS 0b00000010 // 3 2 4.1 ms 446 #define SX127X_TIMER2_RESOLUTION_262_MS 0b00000011 // 3 2 262 ms 449 #define SX127X_TIMER1_COEFFICIENT 0xF5 // 7 0 multiplication coefficient for timer 1 452 #define SX127X_TIMER2_COEFFICIENT 0x20 // 7 0 multiplication coefficient for timer 2 455 #define SX127X_AUTO_IMAGE_CAL_OFF 0b00000000 // 7 7 temperature calibration disabled (default) 456 #define SX127X_AUTO_IMAGE_CAL_ON 0b10000000 // 7 7 temperature calibration enabled 457 #define SX127X_IMAGE_CAL_START 0b01000000 // 6 6 start temperature calibration 458 #define SX127X_IMAGE_CAL_RUNNING 0b00100000 // 5 5 temperature calibration is on-going 459 #define SX127X_IMAGE_CAL_COMPLETE 0b00000000 // 5 5 temperature calibration finished 460 #define SX127X_TEMP_CHANGED 0b00001000 // 3 3 temperature changed more than TEMP_THRESHOLD since last calibration 461 #define SX127X_TEMP_THRESHOLD_5_DEG_C 0b00000000 // 2 1 temperature change threshold: 5 deg. C 462 #define SX127X_TEMP_THRESHOLD_10_DEG_C 0b00000010 // 2 1 10 deg. C (default) 463 #define SX127X_TEMP_THRESHOLD_15_DEG_C 0b00000100 // 2 1 15 deg. C 464 #define SX127X_TEMP_THRESHOLD_20_DEG_C 0b00000110 // 2 1 20 deg. C 465 #define SX127X_TEMP_MONITOR_ON 0b00000000 // 0 0 temperature monitoring enabled (default) 466 #define SX127X_TEMP_MONITOR_OFF 0b00000001 // 0 0 temperature monitoring disabled 469 #define SX127X_LOW_BAT_OFF 0b00000000 // 3 3 low battery detector disabled 470 #define SX127X_LOW_BAT_ON 0b00001000 // 3 3 low battery detector enabled 471 #define SX127X_LOW_BAT_TRIM_1_695_V 0b00000000 // 2 0 battery voltage threshold: 1.695 V 472 #define SX127X_LOW_BAT_TRIM_1_764_V 0b00000001 // 2 0 1.764 V 473 #define SX127X_LOW_BAT_TRIM_1_835_V 0b00000010 // 2 0 1.835 V (default) 474 #define SX127X_LOW_BAT_TRIM_1_905_V 0b00000011 // 2 0 1.905 V 475 #define SX127X_LOW_BAT_TRIM_1_976_V 0b00000100 // 2 0 1.976 V 476 #define SX127X_LOW_BAT_TRIM_2_045_V 0b00000101 // 2 0 2.045 V 477 #define SX127X_LOW_BAT_TRIM_2_116_V 0b00000110 // 2 0 2.116 V 478 #define SX127X_LOW_BAT_TRIM_2_185_V 0b00000111 // 2 0 2.185 V 481 #define SX127X_FLAG_MODE_READY 0b10000000 // 7 7 requested mode is ready 482 #define SX127X_FLAG_RX_READY 0b01000000 // 6 6 reception ready (after RSSI, AGC, AFC) 483 #define SX127X_FLAG_TX_READY 0b00100000 // 5 5 transmission ready (after PA ramp-up) 484 #define SX127X_FLAG_PLL_LOCK 0b00010000 // 4 4 PLL locked 485 #define SX127X_FLAG_RSSI 0b00001000 // 3 3 RSSI value exceeds RSSI threshold 486 #define SX127X_FLAG_TIMEOUT 0b00000100 // 2 2 timeout occurred 487 #define SX127X_FLAG_PREAMBLE_DETECT 0b00000010 // 1 1 valid preamble was detected 488 #define SX127X_FLAG_SYNC_ADDRESS_MATCH 0b00000001 // 0 0 sync address matched 491 #define SX127X_FLAG_FIFO_FULL 0b10000000 // 7 7 FIFO is full 492 #define SX127X_FLAG_FIFO_EMPTY 0b01000000 // 6 6 FIFO is empty 493 #define SX127X_FLAG_FIFO_LEVEL 0b00100000 // 5 5 number of bytes in FIFO exceeds FIFO_THRESHOLD 494 #define SX127X_FLAG_FIFO_OVERRUN 0b00010000 // 4 4 FIFO overrun occurred 495 #define SX127X_FLAG_PACKET_SENT 0b00001000 // 3 3 packet was successfully sent 496 #define SX127X_FLAG_PAYLOAD_READY 0b00000100 // 2 2 packet was successfully received 497 #define SX127X_FLAG_CRC_OK 0b00000010 // 1 1 CRC check passed 498 #define SX127X_FLAG_LOW_BAT 0b00000001 // 0 0 battery voltage dropped below threshold 501 #define SX127X_DIO0_CONT_SYNC_ADDRESS 0b00000000 // 7 6 502 #define SX127X_DIO0_CONT_TX_READY 0b00000000 // 7 6 503 #define SX127X_DIO0_CONT_RSSI_PREAMBLE_DETECTED 0b01000000 // 7 6 504 #define SX127X_DIO0_CONT_RX_READY 0b10000000 // 7 6 505 #define SX127X_DIO0_PACK_PAYLOAD_READY 0b00000000 // 7 6 506 #define SX127X_DIO0_PACK_PACKET_SENT 0b00000000 // 7 6 507 #define SX127X_DIO0_PACK_CRC_OK 0b01000000 // 7 6 508 #define SX127X_DIO0_PACK_TEMP_CHANGE_LOW_BAT 0b11000000 // 7 6 509 #define SX127X_DIO1_CONT_DCLK 0b00000000 // 5 4 510 #define SX127X_DIO1_CONT_RSSI_PREAMBLE_DETECTED 0b00010000 // 5 4 511 #define SX127X_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4 512 #define SX127X_DIO1_PACK_FIFO_EMPTY 0b00010000 // 5 4 513 #define SX127X_DIO1_PACK_FIFO_FULL 0b00100000 // 5 4 514 #define SX127X_DIO2_CONT_DATA 0b00000000 // 3 2 517 #define SX127X_FAST_HOP_OFF 0b00000000 // 7 7 carrier frequency validated when FRF registers are written 518 #define SX127X_FAST_HOP_ON 0b10000000 // 7 7 carrier frequency validated when FS modes are requested 521 #define SX127X_TCXO_INPUT_EXTERNAL 0b00000000 // 4 4 use external crystal oscillator 522 #define SX127X_TCXO_INPUT_EXTERNAL_CLIPPED 0b00010000 // 4 4 use external crystal oscillator clipped sine connected to XTA pin 525 #define SX127X_PLL_BANDWIDTH_75_KHZ 0b00000000 // 7 6 PLL bandwidth: 75 kHz 526 #define SX127X_PLL_BANDWIDTH_150_KHZ 0b01000000 // 7 6 150 kHz 527 #define SX127X_PLL_BANDWIDTH_225_KHZ 0b10000000 // 7 6 225 kHz 528 #define SX127X_PLL_BANDWIDTH_300_KHZ 0b11000000 // 7 6 300 kHz (default) 566 int16_t
begin(uint8_t chipVersion, uint8_t syncWord, uint16_t preambleLength);
571 virtual void reset() = 0;
590 int16_t
beginFSK(uint8_t chipVersion,
float br,
float freqDev,
float rxBw, uint16_t preambleLength,
bool enableOOK);
604 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
616 int16_t
receive(uint8_t* data,
size_t len)
override;
702 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
713 int16_t
startReceive(uint8_t len = 0, uint8_t mode = SX127X_RXCONTINUOUS);
724 int16_t
readData(uint8_t* data,
size_t len)
override;
815 int16_t
setSyncWord(uint8_t* syncWord,
size_t len);
849 int16_t
setOOK(
bool enableOOK);
888 int16_t
setRSSIConfig(uint8_t smoothingSamples, int8_t offset = 0);
948 #ifndef RADIOLIB_GODMODE 960 bool _crcEnabled =
false;
962 int16_t setFrequencyRaw(
float newFreq);
965 int16_t getActiveModem();
966 int16_t directMode();
967 int16_t setPacketMode(uint8_t mode, uint8_t len);
969 #ifndef RADIOLIB_GODMODE 973 size_t _packetLength = 0;
974 bool _packetLengthQueried =
false;
975 uint8_t _packetLengthConfig = SX127X_PACKET_VARIABLE;
977 bool findChip(uint8_t ver);
978 int16_t setMode(uint8_t mode);
979 int16_t setActiveModem(uint8_t modem);
980 void clearIRQFlags();
981 void clearFIFO(
size_t count);
int16_t setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0)
Sets RSSI measurement configuration in FSK mode.
Definition: SX127x.cpp:897
Base class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from thi...
Definition: SX127x.h:536
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX127x.cpp:861
int16_t readData(uint8_t *data, size_t len) override
Reads data that was received after calling startReceive method. This method reads len characters...
Definition: SX127x.cpp:480
@@ -108,6 +108,7 @@ $(document).ready(function(){initNavTree('_s_x127x_8h_source.html','');});
int16_t startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS)
Interrupt-driven receive method. DIO0 will be activated when full valid packet is received...
Definition: SX127x.cpp:353
void setDio0Action(void(*func)(void))
Set interrupt service routine function to call when DIO0 activates.
Definition: SX127x.cpp:397
void clearDio1Action()
Clears interrupt service routine to call when DIO1 activates.
Definition: SX127x.cpp:412
+
int16_t getChipVersion()
Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if ...
Definition: SX127x.cpp:993
Implements all common low-level SPI/UART/I2C methods to control the wireless module. Every module class contains one private instance of this class.
Definition: Module.h:17
int16_t transmit(__FlashStringHelper *fstr, uint8_t addr=0)
Arduino Flash String transmit method.
Definition: PhysicalLayer.cpp:8
int16_t receiveDirect() override
Enables direct reception mode on pins DIO1 (clock) and DIO2 (data). While in direct mode...
Definition: SX127x.cpp:314
@@ -120,7 +121,7 @@ $(document).ready(function(){initNavTree('_s_x127x_8h_source.html','');});
int16_t beginFSK(uint8_t chipVersion, float br, float freqDev, float rxBw, uint16_t preambleLength, bool enableOOK)
Initialization method for FSK modem. Will be called with appropriate parameters when calling FSK init...
Definition: SX127x.cpp:52
uint16_t getIRQFlags()
Reads currently active IRQ flags, can be used to check which event caused an interrupt. In LoRa mode, this is the content of SX127X_REG_IRQ_FLAGS register. In FSK mode, this is the contents of SX127X_REG_IRQ_FLAGS_2 (MSB) and SX127X_REG_IRQ_FLAGS_1 (LSB) registers.
Definition: SX127x.cpp:939
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN...
Definition: PhysicalLayer.h:13
-
int8_t getTempRaw()
Reads uncalibrated temperature value. This function will change operating mode and should not be call...
Definition: SX127x.cpp:993
+
int8_t getTempRaw()
Reads uncalibrated temperature value. This function will change operating mode and should not be call...
Definition: SX127x.cpp:997
int16_t scanChannel()
Performs scan for valid LoRa preamble in the current channel.
Definition: SX127x.cpp:233
void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn)
Some modules contain external RF switch controlled by two pins. This function gives RadioLib control ...
Definition: SX127x.cpp:964
int16_t packetMode()
Disables direct mode and enables packet mode, allowing the module to receive packets. Can only be activated in FSK mode.
Definition: SX127x.cpp:344
diff --git a/_si443x_8h_source.html b/_si443x_8h_source.html
index 768b97e4..2a9c276f 100644
--- a/_si443x_8h_source.html
+++ b/_si443x_8h_source.html
@@ -84,10 +84,11 @@ $(document).ready(function(){initNavTree('_si443x_8h_source.html','');});
Si443x.h
-
1 #if !defined(_RADIOLIB_SI443X_H) 2 #define _RADIOLIB_SI443X_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SI443X) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define SI443X_FREQUENCY_STEP_SIZE 156.25 14 #define SI443X_MAX_PACKET_LENGTH 64 17 #define SI443X_REG_DEVICE_TYPE 0x00 18 #define SI443X_REG_DEVICE_VERSION 0x01 19 #define SI443X_REG_DEVICE_STATUS 0x02 20 #define SI443X_REG_INTERRUPT_STATUS_1 0x03 21 #define SI443X_REG_INTERRUPT_STATUS_2 0x04 22 #define SI443X_REG_INTERRUPT_ENABLE_1 0x05 23 #define SI443X_REG_INTERRUPT_ENABLE_2 0x06 24 #define SI443X_REG_OP_FUNC_CONTROL_1 0x07 25 #define SI443X_REG_OP_FUNC_CONTROL_2 0x08 26 #define SI443X_REG_XOSC_LOAD_CAPACITANCE 0x09 27 #define SI443X_REG_MCU_OUTPUT_CLOCK 0x0A 28 #define SI443X_REG_GPIO0_CONFIG 0x0B 29 #define SI443X_REG_GPIO1_CONFIG 0x0C 30 #define SI443X_REG_GPIO2_CONFIG 0x0D 31 #define SI443X_REG_IO_PORT_CONFIG 0x0E 32 #define SI443X_REG_ADC_CONFIG 0x0F 33 #define SI443X_REG_ADC_SENSOR_AMP_OFFSET 0x10 34 #define SI443X_REG_ADC_VALUE 0x11 35 #define SI443X_REG_TEMP_SENSOR_CONTROL 0x12 36 #define SI443X_REG_TEMP_VALUE_OFFSET 0x13 37 #define SI443X_REG_WAKEUP_TIMER_PERIOD_1 0x14 38 #define SI443X_REG_WAKEUP_TIMER_PERIOD_2 0x15 39 #define SI443X_REG_WAKEUP_TIMER_PERIOD_3 0x16 40 #define SI443X_REG_WAKEUP_TIMER_VALUE_1 0x17 41 #define SI443X_REG_WAKEUP_TIMER_VALUE_2 0x18 42 #define SI443X_REG_LOW_DC_MODE_DURATION 0x19 43 #define SI443X_REG_LOW_BATT_DET_THRESHOLD 0x1A 44 #define SI443X_REG_BATT_VOLTAGE_LEVEL 0x1B 45 #define SI443X_REG_IF_FILTER_BANDWIDTH 0x1C 46 #define SI443X_REG_AFC_LOOP_GEARSHIFT_OVERRIDE 0x1D 47 #define SI443X_REG_AFC_TIMING_CONTROL 0x1E 48 #define SI443X_REG_CLOCK_REC_GEARSHIFT_OVERRIDE 0x1F 49 #define SI443X_REG_CLOCK_REC_OVERSAMP_RATIO 0x20 50 #define SI443X_REG_CLOCK_REC_OFFSET_2 0x21 51 #define SI443X_REG_CLOCK_REC_OFFSET_1 0x22 52 #define SI443X_REG_CLOCK_REC_OFFSET_0 0x23 53 #define SI443X_REG_CLOCK_REC_TIMING_LOOP_GAIN_1 0x24 54 #define SI443X_REG_CLOCK_REC_TIMING_LOOP_GAIN_0 0x25 55 #define SI443X_REG_RSSI 0x26 56 #define SI443X_REG_RSSI_CLEAR_CHANNEL_THRESHOLD 0x27 57 #define SI443X_REG_ANTENNA_DIVERSITY_1 0x28 58 #define SI443X_REG_ANTENNA_DIVERSITY_2 0x29 59 #define SI443X_REG_AFC_LIMITER 0x2A 60 #define SI443X_REG_AFC_CORRECTION 0x2B 61 #define SI443X_REG_OOK_COUNTER_1 0x2C 62 #define SI443X_REG_OOK_COUNTER_2 0x2D 63 #define SI443X_REG_SLICER_PEAK_HOLD 0x2E 64 #define SI443X_REG_DATA_ACCESS_CONTROL 0x30 65 #define SI443X_REG_EZMAC_STATUS 0x31 66 #define SI443X_REG_HEADER_CONTROL_1 0x32 67 #define SI443X_REG_HEADER_CONTROL_2 0x33 68 #define SI443X_REG_PREAMBLE_LENGTH 0x34 69 #define SI443X_REG_PREAMBLE_DET_CONTROL 0x35 70 #define SI443X_REG_SYNC_WORD_3 0x36 71 #define SI443X_REG_SYNC_WORD_2 0x37 72 #define SI443X_REG_SYNC_WORD_1 0x38 73 #define SI443X_REG_SYNC_WORD_0 0x39 74 #define SI443X_REG_TRANSMIT_HEADER_3 0x3A 75 #define SI443X_REG_TRANSMIT_HEADER_2 0x3B 76 #define SI443X_REG_TRANSMIT_HEADER_1 0x3C 77 #define SI443X_REG_TRANSMIT_HEADER_0 0x3D 78 #define SI443X_REG_TRANSMIT_PACKET_LENGTH 0x3E 79 #define SI443X_REG_CHECK_HEADER_3 0x3F 80 #define SI443X_REG_CHECK_HEADER_2 0x40 81 #define SI443X_REG_CHECK_HEADER_1 0x41 82 #define SI443X_REG_CHECK_HEADER_0 0x42 83 #define SI443X_REG_HEADER_ENABLE_3 0x43 84 #define SI443X_REG_HEADER_ENABLE_2 0x44 85 #define SI443X_REG_HEADER_ENABLE_1 0x45 86 #define SI443X_REG_HEADER_ENABLE_0 0x46 87 #define SI443X_REG_RECEIVED_HEADER_3 0x47 88 #define SI443X_REG_RECEIVED_HEADER_2 0x48 89 #define SI443X_REG_RECEIVED_HEADER_1 0x49 90 #define SI443X_REG_RECEIVED_HEADER_0 0x4A 91 #define SI443X_REG_RECEIVED_PACKET_LENGTH 0x4B 92 #define SI443X_REG_ADC8_CONTROL 0x4F 93 #define SI443X_REG_CHANNEL_FILTER_COEFF 0x60 94 #define SI443X_REG_XOSC_CONTROL_TEST 0x62 95 #define SI443X_REG_AGC_OVERRIDE_1 0x69 96 #define SI443X_REG_TX_POWER 0x6D 97 #define SI443X_REG_TX_DATA_RATE_1 0x6E 98 #define SI443X_REG_TX_DATA_RATE_0 0x6F 99 #define SI443X_REG_MODULATION_MODE_CONTROL_1 0x70 100 #define SI443X_REG_MODULATION_MODE_CONTROL_2 0x71 101 #define SI443X_REG_FREQUENCY_DEVIATION 0x72 102 #define SI443X_REG_FREQUENCY_OFFSET_1 0x73 103 #define SI443X_REG_FREQUENCY_OFFSET_2 0x74 104 #define SI443X_REG_FREQUENCY_BAND_SELECT 0x75 105 #define SI443X_REG_NOM_CARRIER_FREQUENCY_1 0x76 106 #define SI443X_REG_NOM_CARRIER_FREQUENCY_0 0x77 107 #define SI443X_REG_FREQUENCY_HOPPING_CHANNEL_SEL 0x79 108 #define SI443X_REG_FREQUENCY_HOPPING_STEP_SIZE 0x7A 109 #define SI443X_REG_TX_FIFO_CONTROL_1 0x7C 110 #define SI443X_REG_TX_FIFO_CONTROL_2 0x7D 111 #define SI443X_REG_RX_FIFO_CONTROL 0x7E 112 #define SI443X_REG_FIFO_ACCESS 0x7F 115 #define SI443X_DEVICE_TYPE 0x08 // 4 0 device identification register 118 #define SI443X_DEVICE_VERSION 0x06 // 4 0 chip version register 121 #define SI443X_RX_TX_FIFO_OVERFLOW 0b10000000 // 7 7 Rx/Tx FIFO overflow flag 122 #define SI443X_RX_TX_FIFO_UNDERFLOW 0b01000000 // 6 6 Rx/Tx FIFO underflow flag 123 #define SI443X_RX_FIFO_EMPTY 0b00100000 // 5 5 Rx FIFO empty flag 124 #define SI443X_HEADER_ERROR 0b00010000 // 4 4 header error flag 125 #define SI443X_FREQUENCY_ERROR 0b00001000 // 3 3 frequency error flag (frequency outside allowed range) 126 #define SI443X_TX 0b00000010 // 1 0 power state: Tx 127 #define SI443X_RX 0b00000001 // 1 0 Rx 128 #define SI443X_IDLE 0b00000000 // 1 0 idle 131 #define SI443X_FIFO_LEVEL_ERROR_INTERRUPT 0b10000000 // 7 7 Tx/Rx FIFO overflow or underflow 132 #define SI443X_TX_FIFO_ALMOST_FULL_INTERRUPT 0b01000000 // 6 6 Tx FIFO almost full 133 #define SI443X_TX_FIFO_ALMOST_EMPTY_INTERRUPT 0b00100000 // 5 5 Tx FIFO almost empty 134 #define SI443X_RX_FIFO_ALMOST_FULL_INTERRUPT 0b00010000 // 4 4 Rx FIFO almost full 135 #define SI443X_EXTERNAL_INTERRUPT 0b00001000 // 3 3 external interrupt occurred on GPIOx 136 #define SI443X_PACKET_SENT_INTERRUPT 0b00000100 // 2 2 packet transmission done 137 #define SI443X_VALID_PACKET_RECEIVED_INTERRUPT 0b00000010 // 1 1 valid packet has been received 138 #define SI443X_CRC_ERROR_INTERRUPT 0b00000001 // 0 0 CRC failed 141 #define SI443X_SYNC_WORD_DETECTED_INTERRUPT 0b10000000 // 7 7 sync word has been detected 142 #define SI443X_VALID_PREAMBLE_DETECTED_INTERRUPT 0b01000000 // 6 6 valid preamble has been detected 143 #define SI443X_INVALID_PREAMBLE_DETECTED_INTERRUPT 0b00100000 // 5 5 invalid preamble has been detected 144 #define SI443X_RSSI_INTERRUPT 0b00010000 // 4 4 RSSI exceeded programmed threshold 145 #define SI443X_WAKEUP_TIMER_INTERRUPT 0b00001000 // 3 3 wake-up timer expired 146 #define SI443X_LOW_BATTERY_INTERRUPT 0b00000100 // 2 2 low battery detected 147 #define SI443X_CHIP_READY_INTERRUPT 0b00000010 // 1 1 chip ready event detected 148 #define SI443X_POWER_ON_RESET_INTERRUPT 0b00000001 // 0 0 power-on-reset detected 151 #define SI443X_FIFO_LEVEL_ERROR_ENABLED 0b10000000 // 7 7 Tx/Rx FIFO overflow or underflow interrupt enabled 152 #define SI443X_TX_FIFO_ALMOST_FULL_ENABLED 0b01000000 // 6 6 Tx FIFO almost full interrupt enabled 153 #define SI443X_TX_FIFO_ALMOST_EMPTY_ENABLED 0b00100000 // 5 5 Tx FIFO almost empty interrupt enabled 154 #define SI443X_RX_FIFO_ALMOST_FULL_ENABLED 0b00010000 // 4 4 Rx FIFO almost full interrupt enabled 155 #define SI443X_EXTERNAL_ENABLED 0b00001000 // 3 3 external interrupt interrupt enabled 156 #define SI443X_PACKET_SENT_ENABLED 0b00000100 // 2 2 packet transmission done interrupt enabled 157 #define SI443X_VALID_PACKET_RECEIVED_ENABLED 0b00000010 // 1 1 valid packet received interrupt enabled 158 #define SI443X_CRC_ERROR_ENABLED 0b00000001 // 0 0 CRC failed interrupt enabled 161 #define SI443X_SYNC_WORD_DETECTED_ENABLED 0b10000000 // 7 7 sync word interrupt enabled 162 #define SI443X_VALID_PREAMBLE_DETECTED_ENABLED 0b01000000 // 6 6 valid preamble interrupt enabled 163 #define SI443X_INVALID_PREAMBLE_DETECTED_ENABLED 0b00100000 // 5 5 invalid preamble interrupt enabled 164 #define SI443X_RSSI_ENABLED 0b00010000 // 4 4 RSSI exceeded programmed threshold interrupt enabled 165 #define SI443X_WAKEUP_TIMER_ENABLED 0b00001000 // 3 3 wake-up timer interrupt enabled 166 #define SI443X_LOW_BATTERY_ENABLED 0b00000100 // 2 2 low battery interrupt enabled 167 #define SI443X_CHIP_READY_ENABLED 0b00000010 // 1 1 chip ready event interrupt enabled 168 #define SI443X_POWER_ON_RESET_ENABLED 0b00000001 // 0 0 power-on-reset interrupt enabled 171 #define SI443X_SOFTWARE_RESET 0b10000000 // 7 7 reset all registers to default values 172 #define SI443X_ENABLE_LOW_BATTERY_DETECT 0b01000000 // 6 6 enable low battery detection 173 #define SI443X_ENABLE_WAKEUP_TIMER 0b00100000 // 5 5 enable wakeup timer 174 #define SI443X_32_KHZ_RC 0b00000000 // 4 4 32.768 kHz source: RC oscillator (default) 175 #define SI443X_32_KHZ_XOSC 0b00010000 // 4 4 crystal oscillator 176 #define SI443X_TX_ON 0b00001000 // 3 3 Tx on in manual transmit mode 177 #define SI443X_RX_ON 0b00000100 // 2 2 Rx on in manual receive mode 178 #define SI443X_PLL_ON 0b00000010 // 1 1 PLL on (tune mode) 179 #define SI443X_XTAL_OFF 0b00000000 // 0 0 crystal oscillator: off (standby mode) 180 #define SI443X_XTAL_ON 0b00000001 // 0 0 on (ready mode) 183 #define SI443X_ANT_DIV_TR_HL_IDLE_L 0b00000000 // 7 5 GPIO1/2 states: Tx/Rx GPIO1 H, GPIO2 L; idle low (default) 184 #define SI443X_ANT_DIV_TR_LH_IDLE_L 0b00100000 // 7 5 Tx/Rx GPIO1 L, GPIO2 H; idle low 185 #define SI443X_ANT_DIV_TR_HL_IDLE_H 0b01000000 // 7 5 Tx/Rx GPIO1 H, GPIO2 L; idle high 186 #define SI443X_ANT_DIV_TR_LH_IDLE_H 0b01100000 // 7 5 Tx/Rx GPIO1 L, GPIO2 H; idle high 187 #define SI443X_ANT_DIV_TR_ALG_IDLE_L 0b10000000 // 7 5 Tx/Rx diversity algorithm; idle low 188 #define SI443X_ANT_DIV_TR_ALG_IDLE_H 0b10100000 // 7 5 Tx/Rx diversity algorithm; idle high 189 #define SI443X_ANT_DIV_TR_ALG_BEACON_IDLE_L 0b11000000 // 7 5 Tx/Rx diversity algorithm (beacon); idle low 190 #define SI443X_ANT_DIV_TR_ALG_BEACON_IDLE_H 0b11100000 // 7 5 Tx/Rx diversity algorithm (beacon); idle high 191 #define SI443X_RX_MULTIPACKET_OFF 0b00000000 // 4 4 Rx multipacket: disabled (default) 192 #define SI443X_RX_MULTIPACKET_ON 0b00010000 // 4 4 enabled 193 #define SI443X_AUTO_TX_OFF 0b00000000 // 3 3 Tx autotransmit on FIFO almost full: disabled (default) 194 #define SI443X_AUTO_TX_ON 0b00001000 // 3 3 enabled 195 #define SI443X_LOW_DUTY_CYCLE_OFF 0b00000000 // 2 2 low duty cycle mode: disabled (default) 196 #define SI443X_LOW_DUTY_CYCLE_ON 0b00000100 // 2 2 enabled 197 #define SI443X_RX_FIFO_RESET 0b00000010 // 1 1 Rx FIFO reset/clear: reset (call first) 198 #define SI443X_RX_FIFO_CLEAR 0b00000000 // 1 1 clear (call second) 199 #define SI443X_TX_FIFO_RESET 0b00000001 // 0 0 Tx FIFO reset/clear: reset (call first) 200 #define SI443X_TX_FIFO_CLEAR 0b00000000 // 0 0 clear (call second) 203 #define SI443X_XTAL_SHIFT 0b00000000 // 7 7 crystal capacitance configuration: 204 #define SI443X_XTAL_LOAD_CAPACITANCE 0b01111111 // 6 0 C_int = 1.8 pF + 0.085 pF * SI443X_XTAL_LOAD_CAPACITANCE + 3.7 pF * SI443X_XTAL_SHIFT 207 #define SI443X_CLOCK_TAIL_CYCLES_OFF 0b00000000 // 5 4 additional clock cycles: none (default) 208 #define SI443X_CLOCK_TAIL_CYCLES_128 0b00010000 // 5 4 128 209 #define SI443X_CLOCK_TAIL_CYCLES_256 0b00100000 // 5 4 256 210 #define SI443X_CLOCK_TAIL_CYCLES_512 0b00110000 // 5 4 512 211 #define SI443X_LOW_FREQ_CLOCK_OFF 0b00000000 // 3 3 32.768 kHz clock output: disabled (default) 212 #define SI443X_LOW_FREQ_CLOCK_ON 0b00001000 // 3 3 enabled 213 #define SI443X_MCU_CLOCK_30_MHZ 0b00000000 // 2 0 GPIO clock output: 30 MHz 214 #define SI443X_MCU_CLOCK_15_MHZ 0b00000001 // 2 0 15 MHz 215 #define SI443X_MCU_CLOCK_10_MHZ 0b00000010 // 2 0 10 MHz 216 #define SI443X_MCU_CLOCK_4_MHZ 0b00000011 // 2 0 4 MHz 217 #define SI443X_MCU_CLOCK_3_MHZ 0b00000100 // 2 0 3 MHz 218 #define SI443X_MCU_CLOCK_2_MHZ 0b00000101 // 2 0 2 MHz 219 #define SI443X_MCU_CLOCK_1_MHZ 0b00000110 // 2 0 1 MHz (default) 220 #define SI443X_MCU_CLOCK_32_KHZ 0b00000111 // 2 0 32.768 kHz 223 #define SI443X_GPIOX_DRIVE_STRENGTH 0b00000000 // 7 6 GPIOx drive strength (higher number = stronger drive) 224 #define SI443X_GPIOX_PULLUP_OFF 0b00000000 // 5 5 GPIOx internal 200k pullup: disabled (default) 225 #define SI443X_GPIOX_PULLUP_ON 0b00100000 // 5 5 enabled 226 #define SI443X_GPIO0_POWER_ON_RESET_OUT 0b00000000 // 4 0 GPIOx function: power-on-reset output (GPIO0 only, default) 227 #define SI443X_GPIO1_POWER_ON_RESET_INV_OUT 0b00000000 // 4 0 inverted power-on-reset output (GPIO1 only, default) 228 #define SI443X_GPIO2_MCU_CLOCK_OUT 0b00000000 // 4 0 MCU clock output (GPIO2 only, default) 229 #define SI443X_GPIOX_WAKEUP_OUT 0b00000001 // 4 0 wakeup timer expired output 230 #define SI443X_GPIOX_LOW_BATTERY_OUT 0b00000010 // 4 0 low battery detect output 231 #define SI443X_GPIOX_DIGITAL_OUT 0b00000011 // 4 0 direct digital output 232 #define SI443X_GPIOX_EXT_INT_FALLING_IN 0b00000100 // 4 0 external interrupt, falling edge 233 #define SI443X_GPIOX_EXT_INT_RISING_IN 0b00000101 // 4 0 external interrupt, rising edge 234 #define SI443X_GPIOX_EXT_INT_CHANGE_IN 0b00000110 // 4 0 external interrupt, state change 235 #define SI443X_GPIOX_ADC_IN 0b00000111 // 4 0 ADC analog input 236 #define SI443X_GPIOX_ANALOG_TEST_N_IN 0b00001000 // 4 0 analog test N input 237 #define SI443X_GPIOX_ANALOG_TEST_P_IN 0b00001001 // 4 0 analog test P input 238 #define SI443X_GPIOX_DIGITAL_IN 0b00001010 // 4 0 direct digital input 239 #define SI443X_GPIOX_DIGITAL_TEST_OUT 0b00001011 // 4 0 digital test output 240 #define SI443X_GPIOX_ANALOG_TEST_N_OUT 0b00001100 // 4 0 analog test N output 241 #define SI443X_GPIOX_ANALOG_TEST_P_OUT 0b00001101 // 4 0 analog test P output 242 #define SI443X_GPIOX_REFERENCE_VOLTAGE_OUT 0b00001110 // 4 0 reference voltage output 243 #define SI443X_GPIOX_TX_RX_DATA_CLK_OUT 0b00001111 // 4 0 Tx/Rx clock output in direct mode 244 #define SI443X_GPIOX_TX_DATA_IN 0b00010000 // 4 0 Tx data input direct mode 245 #define SI443X_GPIOX_EXT_RETRANSMIT_REQUEST_IN 0b00010001 // 4 0 external retransmission request input 246 #define SI443X_GPIOX_TX_STATE_OUT 0b00010010 // 4 0 Tx state output 247 #define SI443X_GPIOX_TX_FIFO_ALMOST_FULL_OUT 0b00010011 // 4 0 Tx FIFO almost full output 248 #define SI443X_GPIOX_RX_DATA_OUT 0b00010100 // 4 0 Rx data output 249 #define SI443X_GPIOX_RX_STATE_OUT 0b00010101 // 4 0 Rx state output 250 #define SI443X_GPIOX_RX_FIFO_ALMOST_FULL_OUT 0b00010110 // 4 0 Rx FIFO almost full output 251 #define SI443X_GPIOX_ANT_DIV_1_OUT 0b00010111 // 4 0 antenna diversity output 1 252 #define SI443X_GPIOX_ANT_DIV_2_OUT 0b00011000 // 4 0 antenna diversity output 2 253 #define SI443X_GPIOX_VALID_PREAMBLE_OUT 0b00011001 // 4 0 valid preamble detected output 254 #define SI443X_GPIOX_INVALID_PREAMBLE_OUT 0b00011010 // 4 0 invalid preamble detected output 255 #define SI443X_GPIOX_SYNC_WORD_DETECTED_OUT 0b00011011 // 4 0 sync word detected output 256 #define SI443X_GPIOX_CLEAR_CHANNEL_OUT 0b00011100 // 4 0 clear channel assessment output 257 #define SI443X_GPIOX_VDD 0b00011101 // 4 0 VDD 258 #define SI443X_GPIOX_GND 0b00011110 // 4 0 GND 261 #define SI443X_GPIO2_EXT_INT_STATE_MASK 0b01000000 // 6 6 external interrupt state mask for: GPIO2 262 #define SI443X_GPIO1_EXT_INT_STATE_MASK 0b00100000 // 5 5 GPIO1 263 #define SI443X_GPIO0_EXT_INT_STATE_MASK 0b00010000 // 4 4 GPIO0 264 #define SI443X_IRQ_BY_SDO_OFF 0b00000000 // 3 3 output IRQ state on SDO pin: disabled (default) 265 #define SI443X_IRQ_BY_SDO_ON 0b00001000 // 3 3 enabled 266 #define SI443X_GPIO2_DIGITAL_STATE_MASK 0b00000100 // 2 2 digital state mask for: GPIO2 267 #define SI443X_GPIO1_DIGITAL_STATE_MASK 0b00000010 // 1 1 GPIO1 268 #define SI443X_GPIO0_DIGITAL_STATE_MASK 0b00000001 // 0 0 GPIO0 271 #define SI443X_ADC_START 0b10000000 // 7 7 ADC control: start measurement 272 #define SI443X_ADC_RUNNING 0b00000000 // 7 7 measurement in progress 273 #define SI443X_ADC_DONE 0b10000000 // 7 7 done 274 #define SI443X_ADC_SOURCE_TEMPERATURE 0b00000000 // 6 4 ADC source: internal temperature sensor (default) 275 #define SI443X_ADC_SOURCE_GPIO0_SINGLE 0b00010000 // 6 4 single-ended on GPIO0 276 #define SI443X_ADC_SOURCE_GPIO1_SINGLE 0b00100000 // 6 4 single-ended on GPIO1 277 #define SI443X_ADC_SOURCE_GPIO2_SINGLE 0b00110000 // 6 4 single-ended on GPIO2 278 #define SI443X_ADC_SOURCE_GPIO01_DIFF 0b01000000 // 6 4 differential on GPIO0 (+) and GPIO1 (-) 279 #define SI443X_ADC_SOURCE_GPIO12_DIFF 0b01010000 // 6 4 differential on GPIO1 (+) and GPIO2 (-) 280 #define SI443X_ADC_SOURCE_GPIO02_DIFF 0b01100000 // 6 4 differential on GPIO0 (+) and GPIO2 (-) 281 #define SI443X_ADC_SOURCE_GND 0b01110000 // 6 4 GND 282 #define SI443X_ADC_REFERNCE_BAND_GAP 0b00000000 // 3 2 ADC reference: internal bandgap 1.2 V (default) 283 #define SI443X_ADC_REFERNCE_VDD_3 0b00001000 // 3 2 VDD/3 284 #define SI443X_ADC_REFERNCE_VDD_2 0b00001100 // 3 2 VDD/2 285 #define SI443X_ADC_GAIN 0b00000000 // 1 0 ADC amplifier gain 288 #define SI443X_ADC_OFFSET 0b00000000 // 3 0 ADC offset 291 #define SI443X_TEMP_SENSOR_RANGE_64_TO_64_C 0b00000000 // 7 6 temperature sensor range: -64 to 64 deg. C, 0.5 deg. C resolution (default) 292 #define SI443X_TEMP_SENSOR_RANGE_64_TO_192_C 0b01000000 // 7 6 -64 to 192 deg. C, 1.0 deg. C resolution 293 #define SI443X_TEMP_SENSOR_RANGE_0_TO_128_C 0b11000000 // 7 6 0 to 128 deg. C, 0.5 deg. C resolution 294 #define SI443X_TEMP_SENSOR_RANGE_40_TO_216_F 0b10000000 // 7 6 -40 to 216 deg. F, 1.0 deg. F resolution 295 #define SI443X_TEMP_SENSOR_KELVIN_TO_CELSIUS_OFF 0b00000000 // 5 5 Kelvin to Celsius offset: disabled 296 #define SI443X_TEMP_SENSOR_KELVIN_TO_CELSIUS_ON 0b00100000 // 5 5 enabled (default) 297 #define SI443X_TEMP_SENSOR_TRIM_OFF 0b00000000 // 4 4 temperature sensor trim: disabled (default) 298 #define SI443X_TEMP_SENSOR_TRIM_ON 0b00010000 // 4 4 enabled 299 #define SI443X_TEMP_SENSOR_TRIM_VALUE 0b00000000 // 3 0 temperature sensor trim value 302 #define SI443X_WAKEUP_TIMER_EXPONENT 0b00000011 // 4 0 wakeup timer value exponent 305 #define SI443X_WAKEUP_TIMER_MANTISSA_MSB 0x00 // 7 0 wakeup timer value: 306 #define SI443X_WAKEUP_TIMER_MANTISSA_LSB 0x01 // 7 0 T = (4 * SI443X_WAKEUP_TIMER_MANTISSA * 2 ^ SI443X_WAKEUP_TIMER_EXPONENT) / 32.768 ms 309 #define SI443X_LOW_DC_MODE_DURATION_MANTISSA 0x01 // 7 0 low duty cycle mode duration: T = (4 * SI443X_LOW_DC_MODE_DURATION_MANTISSA * 2 ^ SI443X_WAKEUP_TIMER_EXPONENT) / 32.768 ms 312 #define SI443X_LOW_BATT_DET_THRESHOLD 0b00010100 // 4 0 low battery detection threshold: Vth = 1.7 + SI443X_LOW_BATT_DET_THRESHOLD * 0.05 V (defaults to 2.7 V) 315 #define SI443X_BYPASS_DEC_BY_3_OFF 0b00000000 // 7 7 bypass decimate-by-3 stage: disabled (default) 316 #define SI443X_BYPASS_DEC_BY_3_ON 0b10000000 // 7 7 enabled 317 #define SI443X_IF_FILTER_DEC_RATE 0b00000000 // 6 4 IF filter decimation rate 318 #define SI443X_IF_FILTER_COEFF_SET 0b00000001 // 3 0 IF filter coefficient set selection 321 #define SI443X_AFC_WIDEBAND_OFF 0b00000000 // 7 7 AFC wideband: disabled (default) 322 #define SI443X_AFC_WIDEBAND_ON 0b10000000 // 7 7 enabled 323 #define SI443X_AFC_OFF 0b00000000 // 6 6 AFC: disabled 324 #define SI443X_AFC_ON 0b01000000 // 6 6 enabled (default) 325 #define SI443X_AFC_HIGH_GEAR_SETTING 0b00000000 // 5 3 AFC high gear setting 326 #define SI443X_SECOND_PHASE_BIAS_0_DB 0b00000100 // 2 2 second phase antenna selection bias: 0 dB (default) 327 #define SI443X_SECOND_PHASE_BIAS_1_5_DB 0b00000000 // 2 2 1.5 dB 328 #define SI443X_MOVING_AVERAGE_TAP_8 0b00000010 // 1 1 moving average filter tap length: 8*Tb 329 #define SI443X_MOVING_AVERAGE_TAP_4 0b00000000 // 1 1 4*Tb after first preamble (default) 330 #define SI443X_ZERO_PHASE_RESET_5 0b00000000 // 0 0 reset preamble detector after: 5 zero phases (default) 331 #define SI443X_ZERO_PHASE_RESET_2 0b00000001 // 0 0 3 zero phases 334 #define SI443X_SW_ANT_TIMER 0b00000000 // 7 6 number of periods to wait for RSSI to stabilize during antenna switching 335 #define SI443X_SHORT_WAIT 0b00001000 // 5 3 period to wait after AFC correction 336 #define SI443X_ANTENNA_SWITCH_WAIT 0b00000010 // 2 0 antenna switching wait time 339 #define SI443X_CLOCK_RECOVER_FAST_GEARSHIFT 0b00000000 // 5 3 clock recovery fast gearshift value 340 #define SI443X_CLOCK_RECOVER_SLOW_GEARSHIFT 0b00000011 // 2 0 clock recovery slow gearshift value 343 #define SI443X_CLOCK_REC_OVERSAMP_RATIO_LSB 0b01100100 // 7 0 oversampling rate LSB, defaults to 12.5 clock cycles per bit 346 #define SI443X_CLOCK_REC_OVERSAMP_RATIO_MSB 0b00000000 // 7 5 oversampling rate MSB, defaults to 12.5 clock cycles per bit 347 #define SI443X_SECOND_PHASE_SKIP_THRESHOLD 0b00000000 // 4 4 skip seconds phase antenna diversity threshold 348 #define SI443X_NCO_OFFSET_MSB 0b00000001 // 3 0 NCO offset MSB 351 #define SI443X_NCO_OFFSET_MID 0b01000111 // 7 0 NCO offset MID 354 #define SI443X_NCO_OFFSET_LSB 0b10101110 // 7 0 NCO offset LSB 357 #define SI443X_RX_COMPENSATION_OFF 0b00000000 // 4 4 Rx compensation for high data rate: disabled (default) 358 #define SI443X_RX_COMPENSATION_ON 0b00010000 // 4 4 enabled 359 #define SI443X_CLOCK_REC_GAIN_DOUBLE_OFF 0b00000000 // 3 3 clock recovery gain doubling: disabled (default) 360 #define SI443X_CLOCK_REC_GAIN_DOUBLE_ON 0b00001000 // 3 3 enabled 361 #define SI443X_CLOCK_REC_LOOP_GAIN_MSB 0b00000010 // 2 0 clock recovery timing loop gain MSB 364 #define SI443X_CLOCK_REC_LOOP_GAIN_LSB 0b10001111 // 7 0 clock recovery timing loop gain LSB 367 #define SI443X_RSSI_CLEAR_CHANNEL_THRESHOLD 0b00011110 // 7 0 RSSI clear channel interrupt threshold 370 #define SI443X_AFC_LIMITER 0x00 // 7 0 AFC limiter value 373 #define SI443X_OOK_FREEZE_OFF 0b00000000 // 5 5 OOK moving average detector freeze: disabled (default) 374 #define SI443X_OOK_FREEZE_ON 0b00100000 // 5 5 enabled 375 #define SI443X_PEAK_DETECTOR_OFF 0b00000000 // 4 4 peak detector: disabled 376 #define SI443X_PEAK_DETECTOR_ON 0b00010000 // 4 4 enabled (default) 377 #define SI443X_OOK_MOVING_AVERAGE_OFF 0b00000000 // 3 3 OOK moving average: disabled 378 #define SI443X_OOK_MOVING_AVERAGE_ON 0b00001000 // 3 3 enabled (default) 379 #define SI443X_OOK_COUNTER_MSB 0b00000000 // 2 0 OOK counter MSB 382 #define SI443X_OOK_COUNTER_LSB 0b10111100 // 7 0 OOK counter LSB 385 #define SI443X_PEAK_DETECTOR_ATTACK 0b00010000 // 6 4 OOK peak detector attach time 386 #define SI443X_PEAK_DETECTOR_DECAY 0b00001100 // 3 0 OOK peak detector decay time 389 #define SI443X_PACKET_RX_HANDLING_OFF 0b00000000 // 7 7 packet Rx handling: disabled 390 #define SI443X_PACKET_RX_HANDLING_ON 0b10000000 // 7 7 enabled (default) 391 #define SI443X_LSB_FIRST_OFF 0b00000000 // 6 6 LSB first transmission: disabled (default) 392 #define SI443X_LSB_FIRST_ON 0b01000000 // 6 6 enabled 393 #define SI443X_CRC_DATA_ONLY_OFF 0b00000000 // 5 5 CRC calculated only from data fields: disabled (default) 394 #define SI443X_CRC_DATA_ONLY_ON 0b00100000 // 5 5 enabled 395 #define SI443X_SKIP_SECOND_PHASE_PREAMBLE_DET_OFF 0b00000000 // 4 4 skip second phase of preamble detection: disabled (default) 396 #define SI443X_SKIP_SECOND_PHASE_PREAMBLE_DET_ON 0b00010000 // 4 4 enabled 397 #define SI443X_PACKET_TX_HANDLING_OFF 0b00000000 // 3 3 packet Tx handling: disabled 398 #define SI443X_PACKET_TX_HANDLING_ON 0b00001000 // 3 3 enabled (default) 399 #define SI443X_CRC_OFF 0b00000000 // 2 2 CRC: disabled 400 #define SI443X_CRC_ON 0b00000100 // 2 2 enabled (default) 401 #define SI443X_CRC_CCITT 0b00000000 // 1 0 CRC type: CCITT 402 #define SI443X_CRC_IBM_CRC16 0b00000001 // 1 0 IBM CRC-16 (default) 403 #define SI443X_CRC_IEC16 0b00000010 // 1 0 IEC-16 404 #define SI443X_CRC_BIACHEVA 0b00000011 // 1 0 Biacheva 407 #define SI443X_CRC_ALL_ONE 0b01000000 // 6 6 last received CRC was all ones 408 #define SI443X_PACKET_SEARCHING 0b00100000 // 5 5 radio is searching for a valid packet 409 #define SI443X_PACKET_RECEIVING 0b00010000 // 4 4 radio is currently receiving packet 410 #define SI443X_VALID_PACKET_RECEIVED 0b00001000 // 3 3 valid packet was received 411 #define SI443X_CRC_ERROR 0b00000100 // 2 2 CRC check failed 412 #define SI443X_PACKET_TRANSMITTING 0b00000010 // 1 1 radio is currently transmitting packet 413 #define SI443X_PACKET_SENT 0b00000001 // 0 0 packet sent 416 #define SI443X_BROADCAST_ADDR_CHECK_NONE 0b00000000 // 7 4 broadcast address check: none (default) 417 #define SI443X_BROADCAST_ADDR_CHECK_BYTE0 0b00010000 // 7 4 on byte 0 418 #define SI443X_BROADCAST_ADDR_CHECK_BYTE1 0b00100000 // 7 4 on byte 1 419 #define SI443X_BROADCAST_ADDR_CHECK_BYTE2 0b01000000 // 7 4 on byte 2 420 #define SI443X_BROADCAST_ADDR_CHECK_BYTE3 0b10000000 // 7 4 on byte 3 421 #define SI443X_RECEIVED_HEADER_CHECK_NONE 0b00000000 // 3 0 received header check: none 422 #define SI443X_RECEIVED_HEADER_CHECK_BYTE0 0b00000001 // 3 0 on byte 0 423 #define SI443X_RECEIVED_HEADER_CHECK_BYTE1 0b00000010 // 3 0 on byte 1 424 #define SI443X_RECEIVED_HEADER_CHECK_BYTE2 0b00000100 // 3 0 on byte 2 (default) 425 #define SI443X_RECEIVED_HEADER_CHECK_BYTE3 0b00001000 // 3 0 on byte 3 (default) 428 #define SI443X_SYNC_WORD_TIMEOUT_OFF 0b00000000 // 7 7 ignore timeout period when searching for sync word: disabled (default) 429 #define SI443X_SYNC_WORD_TIMEOUT_ON 0b10000000 // 7 7 enabled 430 #define SI443X_HEADER_LENGTH_HEADER_NONE 0b00000000 // 6 4 header length: none 431 #define SI443X_HEADER_LENGTH_HEADER_3 0b00010000 // 6 4 header 3 432 #define SI443X_HEADER_LENGTH_HEADER_32 0b00100000 // 6 4 header 3 and 2 433 #define SI443X_HEADER_LENGTH_HEADER_321 0b00110000 // 6 4 header 3, 2 and 1 (default) 434 #define SI443X_HEADER_LENGTH_HEADER_3210 0b01000000 // 6 4 header 3, 2, 1, and 0 435 #define SI443X_FIXED_PACKET_LENGTH_OFF 0b00000000 // 3 3 fixed packet length mode: disabled (default) 436 #define SI443X_FIXED_PACKET_LENGTH_ON 0b00001000 // 3 3 enabled 437 #define SI443X_SYNC_LENGTH_SYNC_3 0b00000000 // 2 1 sync word length: sync 3 438 #define SI443X_SYNC_LENGTH_SYNC_32 0b00000010 // 2 1 sync 3 and 2 (default) 439 #define SI443X_SYNC_LENGTH_SYNC_321 0b00000100 // 2 1 sync 3, 2 and 1 440 #define SI443X_SYNC_LENGTH_SYNC_3210 0b00000110 // 2 1 sync 3, 2, 1 and 0 441 #define SI443X_PREAMBLE_LENGTH_MSB 0b00000000 // 0 0 preamble length MSB 444 #define SI443X_PREAMBLE_LENGTH_LSB 0b00001000 // 0 0 preamble length LSB, defaults to 32 bits 447 #define SI443X_PREAMBLE_DET_THRESHOLD 0b00101000 // 7 3 number of 4-bit nibbles in valid preamble, defaults to 20 bits 448 #define SI443X_RSSI_OFFSET 0b00000010 // 2 0 RSSI calculation offset, defaults to +8 dB 451 #define SI443X_SYNC_WORD_3 0x2D // 7 0 sync word: 4th byte (MSB) 452 #define SI443X_SYNC_WORD_2 0xD4 // 7 0 3rd byte 453 #define SI443X_SYNC_WORD_1 0x00 // 7 0 2nd byte 454 #define SI443X_SYNC_WORD_0 0x00 // 7 0 1st byte (LSB) 457 #define SI443X_INVALID_PREAMBLE_THRESHOLD 0b00000000 // 7 4 invalid preamble threshold in nibbles 460 #define SI443X_STATE_LOW_POWER 0b00000000 // 7 5 chip power state: low power 461 #define SI443X_STATE_READY 0b00100000 // 7 5 ready 462 #define SI443X_STATE_TUNE 0b01100000 // 7 5 tune 463 #define SI443X_STATE_TX 0b01000000 // 7 5 Tx 464 #define SI443X_STATE_RX 0b11100000 // 7 5 Rx 467 #define SI443X_AGC_GAIN_INCREASE_OFF 0b00000000 // 6 6 AGC gain increase override: disabled (default) 468 #define SI443X_AGC_GAIN_INCREASE_ON 0b01000000 // 6 6 enabled 469 #define SI443X_AGC_OFF 0b00000000 // 5 5 AGC loop: disabled 470 #define SI443X_AGC_ON 0b00100000 // 5 5 enabled (default) 471 #define SI443X_LNA_GAIN_MIN 0b00000000 // 4 4 LNA gain select: 5 dB (default) 472 #define SI443X_LNA_GAIN_MAX 0b00010000 // 4 4 25 dB 473 #define SI443X_PGA_GAIN_OVERRIDE 0b00000000 // 3 0 PGA gain override, gain = SI443X_PGA_GAIN_OVERRIDE * 3 dB 476 #define SI443X_LNA_SWITCH_OFF 0b00000000 // 3 3 LNA switch control: disabled 477 #define SI443X_LNA_SWITCH_ON 0b00001000 // 3 3 enabled (default) 478 #define SI443X_OUTPUT_POWER 0b00000000 // 2 0 output power in 3 dB steps, 0 is chip min, 7 is chip max 481 #define SI443X_DATA_RATE_MSB 0x0A // 7 0 data rate: DR = 10^6 * (SI443X_DATA_RATE / 2^16) in high data rate mode or 482 #define SI443X_DATA_RATE_LSB 0x3D // 7 0 DR = 10^6 * (SI443X_DATA_RATE / 2^21) in low data rate mode (defaults to 40 kbps) 485 #define SI443X_HIGH_DATA_RATE_MODE 0b00000000 // 5 5 data rate: above 30 kbps (default) 486 #define SI443X_LOW_DATA_RATE_MODE 0b00100000 // 5 5 below 30 kbps 487 #define SI443X_PACKET_HANDLER_POWER_DOWN_OFF 0b00000000 // 4 4 power off packet handler in low power mode: disabled (default) 488 #define SI443X_PACKET_HANDLER_POWER_DOWN_ON 0b00010000 // 4 4 enabled 489 #define SI443X_MANCHESTER_PREAMBLE_POL_LOW 0b00000000 // 3 3 preamble polarity in Manchester mode: low 490 #define SI443X_MANCHESTER_PREAMBLE_POL_HIGH 0b00001000 // 3 3 high (default) 491 #define SI443X_MANCHESTER_INVERTED_OFF 0b00000000 // 2 2 inverted Manchester encoding: disabled 492 #define SI443X_MANCHESTER_INVERTED_ON 0b00000100 // 2 2 enabled (default) 493 #define SI443X_MANCHESTER_OFF 0b00000000 // 1 1 Manchester encoding: disabled (default) 494 #define SI443X_MANCHESTER_ON 0b00000010 // 1 1 enabled 495 #define SI443X_WHITENING_OFF 0b00000000 // 0 0 data whitening: disabled (default) 496 #define SI443X_WHITENING_ON 0b00000001 // 0 0 enabled 499 #define SI443X_TX_DATA_CLOCK_NONE 0b00000000 // 7 6 Tx data clock: disabled (default) 500 #define SI443X_TX_DATA_CLOCK_GPIO 0b01000000 // 7 6 GPIO pin 501 #define SI443X_TX_DATA_CLOCK_SDI 0b10000000 // 7 6 SDI pin 502 #define SI443X_TX_DATA_CLOCK_NIRQ 0b11000000 // 7 6 nIRQ pin 503 #define SI443X_TX_DATA_SOURCE_GPIO 0b00000000 // 5 4 Tx data source in direct mode: GPIO pin (default) 504 #define SI443X_TX_DATA_SOURCE_SDI 0b00010000 // 5 4 SDI pin 505 #define SI443X_TX_DATA_SOURCE_FIFO 0b00100000 // 5 4 FIFO 506 #define SI443X_TX_DATA_SOURCE_PN9 0b00110000 // 5 4 PN9 internal 507 #define SI443X_TX_RX_INVERTED_OFF 0b00000000 // 3 3 Tx/Rx data inverted: disabled (default) 508 #define SI443X_TX_RX_INVERTED_ON 0b00001000 // 3 3 enabled 509 #define SI443X_FREQUENCY_DEVIATION_MSB 0b00000000 // 2 2 frequency deviation MSB 510 #define SI443X_MODULATION_NONE 0b00000000 // 1 0 modulation type: unmodulated carrier (default) 511 #define SI443X_MODULATION_OOK 0b00000001 // 1 0 OOK 512 #define SI443X_MODULATION_FSK 0b00000010 // 1 0 FSK 513 #define SI443X_MODULATION_GFSK 0b00000011 // 1 0 GFSK 516 #define SI443X_FREQUENCY_DEVIATION_LSB 0b00100000 // 7 0 frequency deviation LSB, Fd = 625 Hz * SI443X_FREQUENCY_DEVIATION, defaults to 20 kHz 519 #define SI443X_FREQUENCY_OFFSET_MSB 0x00 // 7 0 frequency offset: 520 #define SI443X_FREQUENCY_OFFSET_LSB 0x00 // 1 0 Foff = 156.25 Hz * (SI443X_BAND_SELECT + 1) * SI443X_FREQUENCY_OFFSET, defaults to 156.25 Hz 523 #define SI443X_SIDE_BAND_SELECT_LOW 0b00000000 // 6 6 Rx LO tuning: below channel frequency (default) 524 #define SI443X_SIDE_BAND_SELECT_HIGH 0b01000000 // 6 6 above channel frequency 525 #define SI443X_BAND_SELECT_LOW 0b00000000 // 5 5 band select: low, 240 - 479.9 MHz 526 #define SI443X_BAND_SELECT_HIGH 0b00100000 // 5 5 high, 480 - 960 MHz (default) 527 #define SI443X_FREQUENCY_BAND_SELECT 0b00010101 // 4 0 frequency band select 530 #define SI443X_NOM_CARRIER_FREQUENCY_MSB 0b10111011 // 7 0 nominal carrier frequency: 531 #define SI443X_NOM_CARRIER_FREQUENCY_LSB 0b10000000 // 7 0 Fc = (SI443X_BAND_SELECT + 1)*10*(SI443X_FREQUENCY_BAND_SELECT + 24) + (SI443X_NOM_CARRIER_FREQUENCY - SI443X_FREQUENCY_OFFSET)/6400 [MHz] 534 #define SI443X_FREQUENCY_HOPPING_CHANNEL 0x00 // 7 0 frequency hopping channel number 537 #define SI443X_FREQUENCY_HOPPING_STEP_SIZE 0x00 // 7 0 frequency hopping step size 540 #define SI443X_TX_FIFO_ALMOST_FULL_THRESHOLD 0x37 // 5 0 Tx FIFO almost full threshold 543 #define SI443X_TX_FIFO_ALMOST_EMPTY_THRESHOLD 0x04 // 5 0 Tx FIFO almost full threshold 546 #define SI443X_RX_FIFO_ALMOST_FULL_THRESHOLD 0x37 // 5 0 Rx FIFO almost full threshold 586 int16_t
begin(
float br,
float freqDev,
float rxBw, uint8_t preambleLen);
605 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
617 int16_t
receive(uint8_t* data,
size_t len)
override;
682 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
700 int16_t
readData(uint8_t* data,
size_t len)
override;
738 int16_t
setSyncWord(uint8_t* syncWord,
size_t len);
795 #ifndef RADIOLIB_GODMODE 804 size_t _packetLength = 0;
805 bool _packetLengthQueried =
false;
807 int16_t setFrequencyRaw(
float newFreq);
809 #ifndef RADIOLIB_GODMODE 813 void clearIRQFlags();
815 int16_t updateClockRecovery();
816 int16_t directMode();
int16_t setRxBandwidth(float rxBw)
Sets receiver bandwidth. Allowed values range from 2.6 to 620.7 kHz.
Definition: Si443x.cpp:364
+
1 #if !defined(_RADIOLIB_SI443X_H) 2 #define _RADIOLIB_SI443X_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SI443X) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define SI443X_FREQUENCY_STEP_SIZE 156.25 14 #define SI443X_MAX_PACKET_LENGTH 64 17 #define SI443X_REG_DEVICE_TYPE 0x00 18 #define SI443X_REG_DEVICE_VERSION 0x01 19 #define SI443X_REG_DEVICE_STATUS 0x02 20 #define SI443X_REG_INTERRUPT_STATUS_1 0x03 21 #define SI443X_REG_INTERRUPT_STATUS_2 0x04 22 #define SI443X_REG_INTERRUPT_ENABLE_1 0x05 23 #define SI443X_REG_INTERRUPT_ENABLE_2 0x06 24 #define SI443X_REG_OP_FUNC_CONTROL_1 0x07 25 #define SI443X_REG_OP_FUNC_CONTROL_2 0x08 26 #define SI443X_REG_XOSC_LOAD_CAPACITANCE 0x09 27 #define SI443X_REG_MCU_OUTPUT_CLOCK 0x0A 28 #define SI443X_REG_GPIO0_CONFIG 0x0B 29 #define SI443X_REG_GPIO1_CONFIG 0x0C 30 #define SI443X_REG_GPIO2_CONFIG 0x0D 31 #define SI443X_REG_IO_PORT_CONFIG 0x0E 32 #define SI443X_REG_ADC_CONFIG 0x0F 33 #define SI443X_REG_ADC_SENSOR_AMP_OFFSET 0x10 34 #define SI443X_REG_ADC_VALUE 0x11 35 #define SI443X_REG_TEMP_SENSOR_CONTROL 0x12 36 #define SI443X_REG_TEMP_VALUE_OFFSET 0x13 37 #define SI443X_REG_WAKEUP_TIMER_PERIOD_1 0x14 38 #define SI443X_REG_WAKEUP_TIMER_PERIOD_2 0x15 39 #define SI443X_REG_WAKEUP_TIMER_PERIOD_3 0x16 40 #define SI443X_REG_WAKEUP_TIMER_VALUE_1 0x17 41 #define SI443X_REG_WAKEUP_TIMER_VALUE_2 0x18 42 #define SI443X_REG_LOW_DC_MODE_DURATION 0x19 43 #define SI443X_REG_LOW_BATT_DET_THRESHOLD 0x1A 44 #define SI443X_REG_BATT_VOLTAGE_LEVEL 0x1B 45 #define SI443X_REG_IF_FILTER_BANDWIDTH 0x1C 46 #define SI443X_REG_AFC_LOOP_GEARSHIFT_OVERRIDE 0x1D 47 #define SI443X_REG_AFC_TIMING_CONTROL 0x1E 48 #define SI443X_REG_CLOCK_REC_GEARSHIFT_OVERRIDE 0x1F 49 #define SI443X_REG_CLOCK_REC_OVERSAMP_RATIO 0x20 50 #define SI443X_REG_CLOCK_REC_OFFSET_2 0x21 51 #define SI443X_REG_CLOCK_REC_OFFSET_1 0x22 52 #define SI443X_REG_CLOCK_REC_OFFSET_0 0x23 53 #define SI443X_REG_CLOCK_REC_TIMING_LOOP_GAIN_1 0x24 54 #define SI443X_REG_CLOCK_REC_TIMING_LOOP_GAIN_0 0x25 55 #define SI443X_REG_RSSI 0x26 56 #define SI443X_REG_RSSI_CLEAR_CHANNEL_THRESHOLD 0x27 57 #define SI443X_REG_ANTENNA_DIVERSITY_1 0x28 58 #define SI443X_REG_ANTENNA_DIVERSITY_2 0x29 59 #define SI443X_REG_AFC_LIMITER 0x2A 60 #define SI443X_REG_AFC_CORRECTION 0x2B 61 #define SI443X_REG_OOK_COUNTER_1 0x2C 62 #define SI443X_REG_OOK_COUNTER_2 0x2D 63 #define SI443X_REG_SLICER_PEAK_HOLD 0x2E 64 #define SI443X_REG_DATA_ACCESS_CONTROL 0x30 65 #define SI443X_REG_EZMAC_STATUS 0x31 66 #define SI443X_REG_HEADER_CONTROL_1 0x32 67 #define SI443X_REG_HEADER_CONTROL_2 0x33 68 #define SI443X_REG_PREAMBLE_LENGTH 0x34 69 #define SI443X_REG_PREAMBLE_DET_CONTROL 0x35 70 #define SI443X_REG_SYNC_WORD_3 0x36 71 #define SI443X_REG_SYNC_WORD_2 0x37 72 #define SI443X_REG_SYNC_WORD_1 0x38 73 #define SI443X_REG_SYNC_WORD_0 0x39 74 #define SI443X_REG_TRANSMIT_HEADER_3 0x3A 75 #define SI443X_REG_TRANSMIT_HEADER_2 0x3B 76 #define SI443X_REG_TRANSMIT_HEADER_1 0x3C 77 #define SI443X_REG_TRANSMIT_HEADER_0 0x3D 78 #define SI443X_REG_TRANSMIT_PACKET_LENGTH 0x3E 79 #define SI443X_REG_CHECK_HEADER_3 0x3F 80 #define SI443X_REG_CHECK_HEADER_2 0x40 81 #define SI443X_REG_CHECK_HEADER_1 0x41 82 #define SI443X_REG_CHECK_HEADER_0 0x42 83 #define SI443X_REG_HEADER_ENABLE_3 0x43 84 #define SI443X_REG_HEADER_ENABLE_2 0x44 85 #define SI443X_REG_HEADER_ENABLE_1 0x45 86 #define SI443X_REG_HEADER_ENABLE_0 0x46 87 #define SI443X_REG_RECEIVED_HEADER_3 0x47 88 #define SI443X_REG_RECEIVED_HEADER_2 0x48 89 #define SI443X_REG_RECEIVED_HEADER_1 0x49 90 #define SI443X_REG_RECEIVED_HEADER_0 0x4A 91 #define SI443X_REG_RECEIVED_PACKET_LENGTH 0x4B 92 #define SI443X_REG_ADC8_CONTROL 0x4F 93 #define SI443X_REG_CHANNEL_FILTER_COEFF 0x60 94 #define SI443X_REG_XOSC_CONTROL_TEST 0x62 95 #define SI443X_REG_AGC_OVERRIDE_1 0x69 96 #define SI443X_REG_TX_POWER 0x6D 97 #define SI443X_REG_TX_DATA_RATE_1 0x6E 98 #define SI443X_REG_TX_DATA_RATE_0 0x6F 99 #define SI443X_REG_MODULATION_MODE_CONTROL_1 0x70 100 #define SI443X_REG_MODULATION_MODE_CONTROL_2 0x71 101 #define SI443X_REG_FREQUENCY_DEVIATION 0x72 102 #define SI443X_REG_FREQUENCY_OFFSET_1 0x73 103 #define SI443X_REG_FREQUENCY_OFFSET_2 0x74 104 #define SI443X_REG_FREQUENCY_BAND_SELECT 0x75 105 #define SI443X_REG_NOM_CARRIER_FREQUENCY_1 0x76 106 #define SI443X_REG_NOM_CARRIER_FREQUENCY_0 0x77 107 #define SI443X_REG_FREQUENCY_HOPPING_CHANNEL_SEL 0x79 108 #define SI443X_REG_FREQUENCY_HOPPING_STEP_SIZE 0x7A 109 #define SI443X_REG_TX_FIFO_CONTROL_1 0x7C 110 #define SI443X_REG_TX_FIFO_CONTROL_2 0x7D 111 #define SI443X_REG_RX_FIFO_CONTROL 0x7E 112 #define SI443X_REG_FIFO_ACCESS 0x7F 115 #define SI443X_DEVICE_TYPE 0x08 // 4 0 device identification register 118 #define SI443X_DEVICE_VERSION 0x06 // 4 0 chip version register 121 #define SI443X_RX_TX_FIFO_OVERFLOW 0b10000000 // 7 7 Rx/Tx FIFO overflow flag 122 #define SI443X_RX_TX_FIFO_UNDERFLOW 0b01000000 // 6 6 Rx/Tx FIFO underflow flag 123 #define SI443X_RX_FIFO_EMPTY 0b00100000 // 5 5 Rx FIFO empty flag 124 #define SI443X_HEADER_ERROR 0b00010000 // 4 4 header error flag 125 #define SI443X_FREQUENCY_ERROR 0b00001000 // 3 3 frequency error flag (frequency outside allowed range) 126 #define SI443X_TX 0b00000010 // 1 0 power state: Tx 127 #define SI443X_RX 0b00000001 // 1 0 Rx 128 #define SI443X_IDLE 0b00000000 // 1 0 idle 131 #define SI443X_FIFO_LEVEL_ERROR_INTERRUPT 0b10000000 // 7 7 Tx/Rx FIFO overflow or underflow 132 #define SI443X_TX_FIFO_ALMOST_FULL_INTERRUPT 0b01000000 // 6 6 Tx FIFO almost full 133 #define SI443X_TX_FIFO_ALMOST_EMPTY_INTERRUPT 0b00100000 // 5 5 Tx FIFO almost empty 134 #define SI443X_RX_FIFO_ALMOST_FULL_INTERRUPT 0b00010000 // 4 4 Rx FIFO almost full 135 #define SI443X_EXTERNAL_INTERRUPT 0b00001000 // 3 3 external interrupt occurred on GPIOx 136 #define SI443X_PACKET_SENT_INTERRUPT 0b00000100 // 2 2 packet transmission done 137 #define SI443X_VALID_PACKET_RECEIVED_INTERRUPT 0b00000010 // 1 1 valid packet has been received 138 #define SI443X_CRC_ERROR_INTERRUPT 0b00000001 // 0 0 CRC failed 141 #define SI443X_SYNC_WORD_DETECTED_INTERRUPT 0b10000000 // 7 7 sync word has been detected 142 #define SI443X_VALID_PREAMBLE_DETECTED_INTERRUPT 0b01000000 // 6 6 valid preamble has been detected 143 #define SI443X_INVALID_PREAMBLE_DETECTED_INTERRUPT 0b00100000 // 5 5 invalid preamble has been detected 144 #define SI443X_RSSI_INTERRUPT 0b00010000 // 4 4 RSSI exceeded programmed threshold 145 #define SI443X_WAKEUP_TIMER_INTERRUPT 0b00001000 // 3 3 wake-up timer expired 146 #define SI443X_LOW_BATTERY_INTERRUPT 0b00000100 // 2 2 low battery detected 147 #define SI443X_CHIP_READY_INTERRUPT 0b00000010 // 1 1 chip ready event detected 148 #define SI443X_POWER_ON_RESET_INTERRUPT 0b00000001 // 0 0 power-on-reset detected 151 #define SI443X_FIFO_LEVEL_ERROR_ENABLED 0b10000000 // 7 7 Tx/Rx FIFO overflow or underflow interrupt enabled 152 #define SI443X_TX_FIFO_ALMOST_FULL_ENABLED 0b01000000 // 6 6 Tx FIFO almost full interrupt enabled 153 #define SI443X_TX_FIFO_ALMOST_EMPTY_ENABLED 0b00100000 // 5 5 Tx FIFO almost empty interrupt enabled 154 #define SI443X_RX_FIFO_ALMOST_FULL_ENABLED 0b00010000 // 4 4 Rx FIFO almost full interrupt enabled 155 #define SI443X_EXTERNAL_ENABLED 0b00001000 // 3 3 external interrupt interrupt enabled 156 #define SI443X_PACKET_SENT_ENABLED 0b00000100 // 2 2 packet transmission done interrupt enabled 157 #define SI443X_VALID_PACKET_RECEIVED_ENABLED 0b00000010 // 1 1 valid packet received interrupt enabled 158 #define SI443X_CRC_ERROR_ENABLED 0b00000001 // 0 0 CRC failed interrupt enabled 161 #define SI443X_SYNC_WORD_DETECTED_ENABLED 0b10000000 // 7 7 sync word interrupt enabled 162 #define SI443X_VALID_PREAMBLE_DETECTED_ENABLED 0b01000000 // 6 6 valid preamble interrupt enabled 163 #define SI443X_INVALID_PREAMBLE_DETECTED_ENABLED 0b00100000 // 5 5 invalid preamble interrupt enabled 164 #define SI443X_RSSI_ENABLED 0b00010000 // 4 4 RSSI exceeded programmed threshold interrupt enabled 165 #define SI443X_WAKEUP_TIMER_ENABLED 0b00001000 // 3 3 wake-up timer interrupt enabled 166 #define SI443X_LOW_BATTERY_ENABLED 0b00000100 // 2 2 low battery interrupt enabled 167 #define SI443X_CHIP_READY_ENABLED 0b00000010 // 1 1 chip ready event interrupt enabled 168 #define SI443X_POWER_ON_RESET_ENABLED 0b00000001 // 0 0 power-on-reset interrupt enabled 171 #define SI443X_SOFTWARE_RESET 0b10000000 // 7 7 reset all registers to default values 172 #define SI443X_ENABLE_LOW_BATTERY_DETECT 0b01000000 // 6 6 enable low battery detection 173 #define SI443X_ENABLE_WAKEUP_TIMER 0b00100000 // 5 5 enable wakeup timer 174 #define SI443X_32_KHZ_RC 0b00000000 // 4 4 32.768 kHz source: RC oscillator (default) 175 #define SI443X_32_KHZ_XOSC 0b00010000 // 4 4 crystal oscillator 176 #define SI443X_TX_ON 0b00001000 // 3 3 Tx on in manual transmit mode 177 #define SI443X_RX_ON 0b00000100 // 2 2 Rx on in manual receive mode 178 #define SI443X_PLL_ON 0b00000010 // 1 1 PLL on (tune mode) 179 #define SI443X_XTAL_OFF 0b00000000 // 0 0 crystal oscillator: off (standby mode) 180 #define SI443X_XTAL_ON 0b00000001 // 0 0 on (ready mode) 183 #define SI443X_ANT_DIV_TR_HL_IDLE_L 0b00000000 // 7 5 GPIO1/2 states: Tx/Rx GPIO1 H, GPIO2 L; idle low (default) 184 #define SI443X_ANT_DIV_TR_LH_IDLE_L 0b00100000 // 7 5 Tx/Rx GPIO1 L, GPIO2 H; idle low 185 #define SI443X_ANT_DIV_TR_HL_IDLE_H 0b01000000 // 7 5 Tx/Rx GPIO1 H, GPIO2 L; idle high 186 #define SI443X_ANT_DIV_TR_LH_IDLE_H 0b01100000 // 7 5 Tx/Rx GPIO1 L, GPIO2 H; idle high 187 #define SI443X_ANT_DIV_TR_ALG_IDLE_L 0b10000000 // 7 5 Tx/Rx diversity algorithm; idle low 188 #define SI443X_ANT_DIV_TR_ALG_IDLE_H 0b10100000 // 7 5 Tx/Rx diversity algorithm; idle high 189 #define SI443X_ANT_DIV_TR_ALG_BEACON_IDLE_L 0b11000000 // 7 5 Tx/Rx diversity algorithm (beacon); idle low 190 #define SI443X_ANT_DIV_TR_ALG_BEACON_IDLE_H 0b11100000 // 7 5 Tx/Rx diversity algorithm (beacon); idle high 191 #define SI443X_RX_MULTIPACKET_OFF 0b00000000 // 4 4 Rx multipacket: disabled (default) 192 #define SI443X_RX_MULTIPACKET_ON 0b00010000 // 4 4 enabled 193 #define SI443X_AUTO_TX_OFF 0b00000000 // 3 3 Tx autotransmit on FIFO almost full: disabled (default) 194 #define SI443X_AUTO_TX_ON 0b00001000 // 3 3 enabled 195 #define SI443X_LOW_DUTY_CYCLE_OFF 0b00000000 // 2 2 low duty cycle mode: disabled (default) 196 #define SI443X_LOW_DUTY_CYCLE_ON 0b00000100 // 2 2 enabled 197 #define SI443X_RX_FIFO_RESET 0b00000010 // 1 1 Rx FIFO reset/clear: reset (call first) 198 #define SI443X_RX_FIFO_CLEAR 0b00000000 // 1 1 clear (call second) 199 #define SI443X_TX_FIFO_RESET 0b00000001 // 0 0 Tx FIFO reset/clear: reset (call first) 200 #define SI443X_TX_FIFO_CLEAR 0b00000000 // 0 0 clear (call second) 203 #define SI443X_XTAL_SHIFT 0b00000000 // 7 7 crystal capacitance configuration: 204 #define SI443X_XTAL_LOAD_CAPACITANCE 0b01111111 // 6 0 C_int = 1.8 pF + 0.085 pF * SI443X_XTAL_LOAD_CAPACITANCE + 3.7 pF * SI443X_XTAL_SHIFT 207 #define SI443X_CLOCK_TAIL_CYCLES_OFF 0b00000000 // 5 4 additional clock cycles: none (default) 208 #define SI443X_CLOCK_TAIL_CYCLES_128 0b00010000 // 5 4 128 209 #define SI443X_CLOCK_TAIL_CYCLES_256 0b00100000 // 5 4 256 210 #define SI443X_CLOCK_TAIL_CYCLES_512 0b00110000 // 5 4 512 211 #define SI443X_LOW_FREQ_CLOCK_OFF 0b00000000 // 3 3 32.768 kHz clock output: disabled (default) 212 #define SI443X_LOW_FREQ_CLOCK_ON 0b00001000 // 3 3 enabled 213 #define SI443X_MCU_CLOCK_30_MHZ 0b00000000 // 2 0 GPIO clock output: 30 MHz 214 #define SI443X_MCU_CLOCK_15_MHZ 0b00000001 // 2 0 15 MHz 215 #define SI443X_MCU_CLOCK_10_MHZ 0b00000010 // 2 0 10 MHz 216 #define SI443X_MCU_CLOCK_4_MHZ 0b00000011 // 2 0 4 MHz 217 #define SI443X_MCU_CLOCK_3_MHZ 0b00000100 // 2 0 3 MHz 218 #define SI443X_MCU_CLOCK_2_MHZ 0b00000101 // 2 0 2 MHz 219 #define SI443X_MCU_CLOCK_1_MHZ 0b00000110 // 2 0 1 MHz (default) 220 #define SI443X_MCU_CLOCK_32_KHZ 0b00000111 // 2 0 32.768 kHz 223 #define SI443X_GPIOX_DRIVE_STRENGTH 0b00000000 // 7 6 GPIOx drive strength (higher number = stronger drive) 224 #define SI443X_GPIOX_PULLUP_OFF 0b00000000 // 5 5 GPIOx internal 200k pullup: disabled (default) 225 #define SI443X_GPIOX_PULLUP_ON 0b00100000 // 5 5 enabled 226 #define SI443X_GPIO0_POWER_ON_RESET_OUT 0b00000000 // 4 0 GPIOx function: power-on-reset output (GPIO0 only, default) 227 #define SI443X_GPIO1_POWER_ON_RESET_INV_OUT 0b00000000 // 4 0 inverted power-on-reset output (GPIO1 only, default) 228 #define SI443X_GPIO2_MCU_CLOCK_OUT 0b00000000 // 4 0 MCU clock output (GPIO2 only, default) 229 #define SI443X_GPIOX_WAKEUP_OUT 0b00000001 // 4 0 wakeup timer expired output 230 #define SI443X_GPIOX_LOW_BATTERY_OUT 0b00000010 // 4 0 low battery detect output 231 #define SI443X_GPIOX_DIGITAL_OUT 0b00000011 // 4 0 direct digital output 232 #define SI443X_GPIOX_EXT_INT_FALLING_IN 0b00000100 // 4 0 external interrupt, falling edge 233 #define SI443X_GPIOX_EXT_INT_RISING_IN 0b00000101 // 4 0 external interrupt, rising edge 234 #define SI443X_GPIOX_EXT_INT_CHANGE_IN 0b00000110 // 4 0 external interrupt, state change 235 #define SI443X_GPIOX_ADC_IN 0b00000111 // 4 0 ADC analog input 236 #define SI443X_GPIOX_ANALOG_TEST_N_IN 0b00001000 // 4 0 analog test N input 237 #define SI443X_GPIOX_ANALOG_TEST_P_IN 0b00001001 // 4 0 analog test P input 238 #define SI443X_GPIOX_DIGITAL_IN 0b00001010 // 4 0 direct digital input 239 #define SI443X_GPIOX_DIGITAL_TEST_OUT 0b00001011 // 4 0 digital test output 240 #define SI443X_GPIOX_ANALOG_TEST_N_OUT 0b00001100 // 4 0 analog test N output 241 #define SI443X_GPIOX_ANALOG_TEST_P_OUT 0b00001101 // 4 0 analog test P output 242 #define SI443X_GPIOX_REFERENCE_VOLTAGE_OUT 0b00001110 // 4 0 reference voltage output 243 #define SI443X_GPIOX_TX_RX_DATA_CLK_OUT 0b00001111 // 4 0 Tx/Rx clock output in direct mode 244 #define SI443X_GPIOX_TX_DATA_IN 0b00010000 // 4 0 Tx data input direct mode 245 #define SI443X_GPIOX_EXT_RETRANSMIT_REQUEST_IN 0b00010001 // 4 0 external retransmission request input 246 #define SI443X_GPIOX_TX_STATE_OUT 0b00010010 // 4 0 Tx state output 247 #define SI443X_GPIOX_TX_FIFO_ALMOST_FULL_OUT 0b00010011 // 4 0 Tx FIFO almost full output 248 #define SI443X_GPIOX_RX_DATA_OUT 0b00010100 // 4 0 Rx data output 249 #define SI443X_GPIOX_RX_STATE_OUT 0b00010101 // 4 0 Rx state output 250 #define SI443X_GPIOX_RX_FIFO_ALMOST_FULL_OUT 0b00010110 // 4 0 Rx FIFO almost full output 251 #define SI443X_GPIOX_ANT_DIV_1_OUT 0b00010111 // 4 0 antenna diversity output 1 252 #define SI443X_GPIOX_ANT_DIV_2_OUT 0b00011000 // 4 0 antenna diversity output 2 253 #define SI443X_GPIOX_VALID_PREAMBLE_OUT 0b00011001 // 4 0 valid preamble detected output 254 #define SI443X_GPIOX_INVALID_PREAMBLE_OUT 0b00011010 // 4 0 invalid preamble detected output 255 #define SI443X_GPIOX_SYNC_WORD_DETECTED_OUT 0b00011011 // 4 0 sync word detected output 256 #define SI443X_GPIOX_CLEAR_CHANNEL_OUT 0b00011100 // 4 0 clear channel assessment output 257 #define SI443X_GPIOX_VDD 0b00011101 // 4 0 VDD 258 #define SI443X_GPIOX_GND 0b00011110 // 4 0 GND 261 #define SI443X_GPIO2_EXT_INT_STATE_MASK 0b01000000 // 6 6 external interrupt state mask for: GPIO2 262 #define SI443X_GPIO1_EXT_INT_STATE_MASK 0b00100000 // 5 5 GPIO1 263 #define SI443X_GPIO0_EXT_INT_STATE_MASK 0b00010000 // 4 4 GPIO0 264 #define SI443X_IRQ_BY_SDO_OFF 0b00000000 // 3 3 output IRQ state on SDO pin: disabled (default) 265 #define SI443X_IRQ_BY_SDO_ON 0b00001000 // 3 3 enabled 266 #define SI443X_GPIO2_DIGITAL_STATE_MASK 0b00000100 // 2 2 digital state mask for: GPIO2 267 #define SI443X_GPIO1_DIGITAL_STATE_MASK 0b00000010 // 1 1 GPIO1 268 #define SI443X_GPIO0_DIGITAL_STATE_MASK 0b00000001 // 0 0 GPIO0 271 #define SI443X_ADC_START 0b10000000 // 7 7 ADC control: start measurement 272 #define SI443X_ADC_RUNNING 0b00000000 // 7 7 measurement in progress 273 #define SI443X_ADC_DONE 0b10000000 // 7 7 done 274 #define SI443X_ADC_SOURCE_TEMPERATURE 0b00000000 // 6 4 ADC source: internal temperature sensor (default) 275 #define SI443X_ADC_SOURCE_GPIO0_SINGLE 0b00010000 // 6 4 single-ended on GPIO0 276 #define SI443X_ADC_SOURCE_GPIO1_SINGLE 0b00100000 // 6 4 single-ended on GPIO1 277 #define SI443X_ADC_SOURCE_GPIO2_SINGLE 0b00110000 // 6 4 single-ended on GPIO2 278 #define SI443X_ADC_SOURCE_GPIO01_DIFF 0b01000000 // 6 4 differential on GPIO0 (+) and GPIO1 (-) 279 #define SI443X_ADC_SOURCE_GPIO12_DIFF 0b01010000 // 6 4 differential on GPIO1 (+) and GPIO2 (-) 280 #define SI443X_ADC_SOURCE_GPIO02_DIFF 0b01100000 // 6 4 differential on GPIO0 (+) and GPIO2 (-) 281 #define SI443X_ADC_SOURCE_GND 0b01110000 // 6 4 GND 282 #define SI443X_ADC_REFERNCE_BAND_GAP 0b00000000 // 3 2 ADC reference: internal bandgap 1.2 V (default) 283 #define SI443X_ADC_REFERNCE_VDD_3 0b00001000 // 3 2 VDD/3 284 #define SI443X_ADC_REFERNCE_VDD_2 0b00001100 // 3 2 VDD/2 285 #define SI443X_ADC_GAIN 0b00000000 // 1 0 ADC amplifier gain 288 #define SI443X_ADC_OFFSET 0b00000000 // 3 0 ADC offset 291 #define SI443X_TEMP_SENSOR_RANGE_64_TO_64_C 0b00000000 // 7 6 temperature sensor range: -64 to 64 deg. C, 0.5 deg. C resolution (default) 292 #define SI443X_TEMP_SENSOR_RANGE_64_TO_192_C 0b01000000 // 7 6 -64 to 192 deg. C, 1.0 deg. C resolution 293 #define SI443X_TEMP_SENSOR_RANGE_0_TO_128_C 0b11000000 // 7 6 0 to 128 deg. C, 0.5 deg. C resolution 294 #define SI443X_TEMP_SENSOR_RANGE_40_TO_216_F 0b10000000 // 7 6 -40 to 216 deg. F, 1.0 deg. F resolution 295 #define SI443X_TEMP_SENSOR_KELVIN_TO_CELSIUS_OFF 0b00000000 // 5 5 Kelvin to Celsius offset: disabled 296 #define SI443X_TEMP_SENSOR_KELVIN_TO_CELSIUS_ON 0b00100000 // 5 5 enabled (default) 297 #define SI443X_TEMP_SENSOR_TRIM_OFF 0b00000000 // 4 4 temperature sensor trim: disabled (default) 298 #define SI443X_TEMP_SENSOR_TRIM_ON 0b00010000 // 4 4 enabled 299 #define SI443X_TEMP_SENSOR_TRIM_VALUE 0b00000000 // 3 0 temperature sensor trim value 302 #define SI443X_WAKEUP_TIMER_EXPONENT 0b00000011 // 4 0 wakeup timer value exponent 305 #define SI443X_WAKEUP_TIMER_MANTISSA_MSB 0x00 // 7 0 wakeup timer value: 306 #define SI443X_WAKEUP_TIMER_MANTISSA_LSB 0x01 // 7 0 T = (4 * SI443X_WAKEUP_TIMER_MANTISSA * 2 ^ SI443X_WAKEUP_TIMER_EXPONENT) / 32.768 ms 309 #define SI443X_LOW_DC_MODE_DURATION_MANTISSA 0x01 // 7 0 low duty cycle mode duration: T = (4 * SI443X_LOW_DC_MODE_DURATION_MANTISSA * 2 ^ SI443X_WAKEUP_TIMER_EXPONENT) / 32.768 ms 312 #define SI443X_LOW_BATT_DET_THRESHOLD 0b00010100 // 4 0 low battery detection threshold: Vth = 1.7 + SI443X_LOW_BATT_DET_THRESHOLD * 0.05 V (defaults to 2.7 V) 315 #define SI443X_BYPASS_DEC_BY_3_OFF 0b00000000 // 7 7 bypass decimate-by-3 stage: disabled (default) 316 #define SI443X_BYPASS_DEC_BY_3_ON 0b10000000 // 7 7 enabled 317 #define SI443X_IF_FILTER_DEC_RATE 0b00000000 // 6 4 IF filter decimation rate 318 #define SI443X_IF_FILTER_COEFF_SET 0b00000001 // 3 0 IF filter coefficient set selection 321 #define SI443X_AFC_WIDEBAND_OFF 0b00000000 // 7 7 AFC wideband: disabled (default) 322 #define SI443X_AFC_WIDEBAND_ON 0b10000000 // 7 7 enabled 323 #define SI443X_AFC_OFF 0b00000000 // 6 6 AFC: disabled 324 #define SI443X_AFC_ON 0b01000000 // 6 6 enabled (default) 325 #define SI443X_AFC_HIGH_GEAR_SETTING 0b00000000 // 5 3 AFC high gear setting 326 #define SI443X_SECOND_PHASE_BIAS_0_DB 0b00000100 // 2 2 second phase antenna selection bias: 0 dB (default) 327 #define SI443X_SECOND_PHASE_BIAS_1_5_DB 0b00000000 // 2 2 1.5 dB 328 #define SI443X_MOVING_AVERAGE_TAP_8 0b00000010 // 1 1 moving average filter tap length: 8*Tb 329 #define SI443X_MOVING_AVERAGE_TAP_4 0b00000000 // 1 1 4*Tb after first preamble (default) 330 #define SI443X_ZERO_PHASE_RESET_5 0b00000000 // 0 0 reset preamble detector after: 5 zero phases (default) 331 #define SI443X_ZERO_PHASE_RESET_2 0b00000001 // 0 0 3 zero phases 334 #define SI443X_SW_ANT_TIMER 0b00000000 // 7 6 number of periods to wait for RSSI to stabilize during antenna switching 335 #define SI443X_SHORT_WAIT 0b00001000 // 5 3 period to wait after AFC correction 336 #define SI443X_ANTENNA_SWITCH_WAIT 0b00000010 // 2 0 antenna switching wait time 339 #define SI443X_CLOCK_RECOVER_FAST_GEARSHIFT 0b00000000 // 5 3 clock recovery fast gearshift value 340 #define SI443X_CLOCK_RECOVER_SLOW_GEARSHIFT 0b00000011 // 2 0 clock recovery slow gearshift value 343 #define SI443X_CLOCK_REC_OVERSAMP_RATIO_LSB 0b01100100 // 7 0 oversampling rate LSB, defaults to 12.5 clock cycles per bit 346 #define SI443X_CLOCK_REC_OVERSAMP_RATIO_MSB 0b00000000 // 7 5 oversampling rate MSB, defaults to 12.5 clock cycles per bit 347 #define SI443X_SECOND_PHASE_SKIP_THRESHOLD 0b00000000 // 4 4 skip seconds phase antenna diversity threshold 348 #define SI443X_NCO_OFFSET_MSB 0b00000001 // 3 0 NCO offset MSB 351 #define SI443X_NCO_OFFSET_MID 0b01000111 // 7 0 NCO offset MID 354 #define SI443X_NCO_OFFSET_LSB 0b10101110 // 7 0 NCO offset LSB 357 #define SI443X_RX_COMPENSATION_OFF 0b00000000 // 4 4 Rx compensation for high data rate: disabled (default) 358 #define SI443X_RX_COMPENSATION_ON 0b00010000 // 4 4 enabled 359 #define SI443X_CLOCK_REC_GAIN_DOUBLE_OFF 0b00000000 // 3 3 clock recovery gain doubling: disabled (default) 360 #define SI443X_CLOCK_REC_GAIN_DOUBLE_ON 0b00001000 // 3 3 enabled 361 #define SI443X_CLOCK_REC_LOOP_GAIN_MSB 0b00000010 // 2 0 clock recovery timing loop gain MSB 364 #define SI443X_CLOCK_REC_LOOP_GAIN_LSB 0b10001111 // 7 0 clock recovery timing loop gain LSB 367 #define SI443X_RSSI_CLEAR_CHANNEL_THRESHOLD 0b00011110 // 7 0 RSSI clear channel interrupt threshold 370 #define SI443X_AFC_LIMITER 0x00 // 7 0 AFC limiter value 373 #define SI443X_OOK_FREEZE_OFF 0b00000000 // 5 5 OOK moving average detector freeze: disabled (default) 374 #define SI443X_OOK_FREEZE_ON 0b00100000 // 5 5 enabled 375 #define SI443X_PEAK_DETECTOR_OFF 0b00000000 // 4 4 peak detector: disabled 376 #define SI443X_PEAK_DETECTOR_ON 0b00010000 // 4 4 enabled (default) 377 #define SI443X_OOK_MOVING_AVERAGE_OFF 0b00000000 // 3 3 OOK moving average: disabled 378 #define SI443X_OOK_MOVING_AVERAGE_ON 0b00001000 // 3 3 enabled (default) 379 #define SI443X_OOK_COUNTER_MSB 0b00000000 // 2 0 OOK counter MSB 382 #define SI443X_OOK_COUNTER_LSB 0b10111100 // 7 0 OOK counter LSB 385 #define SI443X_PEAK_DETECTOR_ATTACK 0b00010000 // 6 4 OOK peak detector attach time 386 #define SI443X_PEAK_DETECTOR_DECAY 0b00001100 // 3 0 OOK peak detector decay time 389 #define SI443X_PACKET_RX_HANDLING_OFF 0b00000000 // 7 7 packet Rx handling: disabled 390 #define SI443X_PACKET_RX_HANDLING_ON 0b10000000 // 7 7 enabled (default) 391 #define SI443X_LSB_FIRST_OFF 0b00000000 // 6 6 LSB first transmission: disabled (default) 392 #define SI443X_LSB_FIRST_ON 0b01000000 // 6 6 enabled 393 #define SI443X_CRC_DATA_ONLY_OFF 0b00000000 // 5 5 CRC calculated only from data fields: disabled (default) 394 #define SI443X_CRC_DATA_ONLY_ON 0b00100000 // 5 5 enabled 395 #define SI443X_SKIP_SECOND_PHASE_PREAMBLE_DET_OFF 0b00000000 // 4 4 skip second phase of preamble detection: disabled (default) 396 #define SI443X_SKIP_SECOND_PHASE_PREAMBLE_DET_ON 0b00010000 // 4 4 enabled 397 #define SI443X_PACKET_TX_HANDLING_OFF 0b00000000 // 3 3 packet Tx handling: disabled 398 #define SI443X_PACKET_TX_HANDLING_ON 0b00001000 // 3 3 enabled (default) 399 #define SI443X_CRC_OFF 0b00000000 // 2 2 CRC: disabled 400 #define SI443X_CRC_ON 0b00000100 // 2 2 enabled (default) 401 #define SI443X_CRC_CCITT 0b00000000 // 1 0 CRC type: CCITT 402 #define SI443X_CRC_IBM_CRC16 0b00000001 // 1 0 IBM CRC-16 (default) 403 #define SI443X_CRC_IEC16 0b00000010 // 1 0 IEC-16 404 #define SI443X_CRC_BIACHEVA 0b00000011 // 1 0 Biacheva 407 #define SI443X_CRC_ALL_ONE 0b01000000 // 6 6 last received CRC was all ones 408 #define SI443X_PACKET_SEARCHING 0b00100000 // 5 5 radio is searching for a valid packet 409 #define SI443X_PACKET_RECEIVING 0b00010000 // 4 4 radio is currently receiving packet 410 #define SI443X_VALID_PACKET_RECEIVED 0b00001000 // 3 3 valid packet was received 411 #define SI443X_CRC_ERROR 0b00000100 // 2 2 CRC check failed 412 #define SI443X_PACKET_TRANSMITTING 0b00000010 // 1 1 radio is currently transmitting packet 413 #define SI443X_PACKET_SENT 0b00000001 // 0 0 packet sent 416 #define SI443X_BROADCAST_ADDR_CHECK_NONE 0b00000000 // 7 4 broadcast address check: none (default) 417 #define SI443X_BROADCAST_ADDR_CHECK_BYTE0 0b00010000 // 7 4 on byte 0 418 #define SI443X_BROADCAST_ADDR_CHECK_BYTE1 0b00100000 // 7 4 on byte 1 419 #define SI443X_BROADCAST_ADDR_CHECK_BYTE2 0b01000000 // 7 4 on byte 2 420 #define SI443X_BROADCAST_ADDR_CHECK_BYTE3 0b10000000 // 7 4 on byte 3 421 #define SI443X_RECEIVED_HEADER_CHECK_NONE 0b00000000 // 3 0 received header check: none 422 #define SI443X_RECEIVED_HEADER_CHECK_BYTE0 0b00000001 // 3 0 on byte 0 423 #define SI443X_RECEIVED_HEADER_CHECK_BYTE1 0b00000010 // 3 0 on byte 1 424 #define SI443X_RECEIVED_HEADER_CHECK_BYTE2 0b00000100 // 3 0 on byte 2 (default) 425 #define SI443X_RECEIVED_HEADER_CHECK_BYTE3 0b00001000 // 3 0 on byte 3 (default) 428 #define SI443X_SYNC_WORD_TIMEOUT_OFF 0b00000000 // 7 7 ignore timeout period when searching for sync word: disabled (default) 429 #define SI443X_SYNC_WORD_TIMEOUT_ON 0b10000000 // 7 7 enabled 430 #define SI443X_HEADER_LENGTH_HEADER_NONE 0b00000000 // 6 4 header length: none 431 #define SI443X_HEADER_LENGTH_HEADER_3 0b00010000 // 6 4 header 3 432 #define SI443X_HEADER_LENGTH_HEADER_32 0b00100000 // 6 4 header 3 and 2 433 #define SI443X_HEADER_LENGTH_HEADER_321 0b00110000 // 6 4 header 3, 2 and 1 (default) 434 #define SI443X_HEADER_LENGTH_HEADER_3210 0b01000000 // 6 4 header 3, 2, 1, and 0 435 #define SI443X_FIXED_PACKET_LENGTH_OFF 0b00000000 // 3 3 fixed packet length mode: disabled (default) 436 #define SI443X_FIXED_PACKET_LENGTH_ON 0b00001000 // 3 3 enabled 437 #define SI443X_SYNC_LENGTH_SYNC_3 0b00000000 // 2 1 sync word length: sync 3 438 #define SI443X_SYNC_LENGTH_SYNC_32 0b00000010 // 2 1 sync 3 and 2 (default) 439 #define SI443X_SYNC_LENGTH_SYNC_321 0b00000100 // 2 1 sync 3, 2 and 1 440 #define SI443X_SYNC_LENGTH_SYNC_3210 0b00000110 // 2 1 sync 3, 2, 1 and 0 441 #define SI443X_PREAMBLE_LENGTH_MSB 0b00000000 // 0 0 preamble length MSB 444 #define SI443X_PREAMBLE_LENGTH_LSB 0b00001000 // 0 0 preamble length LSB, defaults to 32 bits 447 #define SI443X_PREAMBLE_DET_THRESHOLD 0b00101000 // 7 3 number of 4-bit nibbles in valid preamble, defaults to 20 bits 448 #define SI443X_RSSI_OFFSET 0b00000010 // 2 0 RSSI calculation offset, defaults to +8 dB 451 #define SI443X_SYNC_WORD_3 0x2D // 7 0 sync word: 4th byte (MSB) 452 #define SI443X_SYNC_WORD_2 0xD4 // 7 0 3rd byte 453 #define SI443X_SYNC_WORD_1 0x00 // 7 0 2nd byte 454 #define SI443X_SYNC_WORD_0 0x00 // 7 0 1st byte (LSB) 457 #define SI443X_INVALID_PREAMBLE_THRESHOLD 0b00000000 // 7 4 invalid preamble threshold in nibbles 460 #define SI443X_STATE_LOW_POWER 0b00000000 // 7 5 chip power state: low power 461 #define SI443X_STATE_READY 0b00100000 // 7 5 ready 462 #define SI443X_STATE_TUNE 0b01100000 // 7 5 tune 463 #define SI443X_STATE_TX 0b01000000 // 7 5 Tx 464 #define SI443X_STATE_RX 0b11100000 // 7 5 Rx 467 #define SI443X_AGC_GAIN_INCREASE_OFF 0b00000000 // 6 6 AGC gain increase override: disabled (default) 468 #define SI443X_AGC_GAIN_INCREASE_ON 0b01000000 // 6 6 enabled 469 #define SI443X_AGC_OFF 0b00000000 // 5 5 AGC loop: disabled 470 #define SI443X_AGC_ON 0b00100000 // 5 5 enabled (default) 471 #define SI443X_LNA_GAIN_MIN 0b00000000 // 4 4 LNA gain select: 5 dB (default) 472 #define SI443X_LNA_GAIN_MAX 0b00010000 // 4 4 25 dB 473 #define SI443X_PGA_GAIN_OVERRIDE 0b00000000 // 3 0 PGA gain override, gain = SI443X_PGA_GAIN_OVERRIDE * 3 dB 476 #define SI443X_LNA_SWITCH_OFF 0b00000000 // 3 3 LNA switch control: disabled 477 #define SI443X_LNA_SWITCH_ON 0b00001000 // 3 3 enabled (default) 478 #define SI443X_OUTPUT_POWER 0b00000000 // 2 0 output power in 3 dB steps, 0 is chip min, 7 is chip max 481 #define SI443X_DATA_RATE_MSB 0x0A // 7 0 data rate: DR = 10^6 * (SI443X_DATA_RATE / 2^16) in high data rate mode or 482 #define SI443X_DATA_RATE_LSB 0x3D // 7 0 DR = 10^6 * (SI443X_DATA_RATE / 2^21) in low data rate mode (defaults to 40 kbps) 485 #define SI443X_HIGH_DATA_RATE_MODE 0b00000000 // 5 5 data rate: above 30 kbps (default) 486 #define SI443X_LOW_DATA_RATE_MODE 0b00100000 // 5 5 below 30 kbps 487 #define SI443X_PACKET_HANDLER_POWER_DOWN_OFF 0b00000000 // 4 4 power off packet handler in low power mode: disabled (default) 488 #define SI443X_PACKET_HANDLER_POWER_DOWN_ON 0b00010000 // 4 4 enabled 489 #define SI443X_MANCHESTER_PREAMBLE_POL_LOW 0b00000000 // 3 3 preamble polarity in Manchester mode: low 490 #define SI443X_MANCHESTER_PREAMBLE_POL_HIGH 0b00001000 // 3 3 high (default) 491 #define SI443X_MANCHESTER_INVERTED_OFF 0b00000000 // 2 2 inverted Manchester encoding: disabled 492 #define SI443X_MANCHESTER_INVERTED_ON 0b00000100 // 2 2 enabled (default) 493 #define SI443X_MANCHESTER_OFF 0b00000000 // 1 1 Manchester encoding: disabled (default) 494 #define SI443X_MANCHESTER_ON 0b00000010 // 1 1 enabled 495 #define SI443X_WHITENING_OFF 0b00000000 // 0 0 data whitening: disabled (default) 496 #define SI443X_WHITENING_ON 0b00000001 // 0 0 enabled 499 #define SI443X_TX_DATA_CLOCK_NONE 0b00000000 // 7 6 Tx data clock: disabled (default) 500 #define SI443X_TX_DATA_CLOCK_GPIO 0b01000000 // 7 6 GPIO pin 501 #define SI443X_TX_DATA_CLOCK_SDI 0b10000000 // 7 6 SDI pin 502 #define SI443X_TX_DATA_CLOCK_NIRQ 0b11000000 // 7 6 nIRQ pin 503 #define SI443X_TX_DATA_SOURCE_GPIO 0b00000000 // 5 4 Tx data source in direct mode: GPIO pin (default) 504 #define SI443X_TX_DATA_SOURCE_SDI 0b00010000 // 5 4 SDI pin 505 #define SI443X_TX_DATA_SOURCE_FIFO 0b00100000 // 5 4 FIFO 506 #define SI443X_TX_DATA_SOURCE_PN9 0b00110000 // 5 4 PN9 internal 507 #define SI443X_TX_RX_INVERTED_OFF 0b00000000 // 3 3 Tx/Rx data inverted: disabled (default) 508 #define SI443X_TX_RX_INVERTED_ON 0b00001000 // 3 3 enabled 509 #define SI443X_FREQUENCY_DEVIATION_MSB 0b00000000 // 2 2 frequency deviation MSB 510 #define SI443X_MODULATION_NONE 0b00000000 // 1 0 modulation type: unmodulated carrier (default) 511 #define SI443X_MODULATION_OOK 0b00000001 // 1 0 OOK 512 #define SI443X_MODULATION_FSK 0b00000010 // 1 0 FSK 513 #define SI443X_MODULATION_GFSK 0b00000011 // 1 0 GFSK 516 #define SI443X_FREQUENCY_DEVIATION_LSB 0b00100000 // 7 0 frequency deviation LSB, Fd = 625 Hz * SI443X_FREQUENCY_DEVIATION, defaults to 20 kHz 519 #define SI443X_FREQUENCY_OFFSET_MSB 0x00 // 7 0 frequency offset: 520 #define SI443X_FREQUENCY_OFFSET_LSB 0x00 // 1 0 Foff = 156.25 Hz * (SI443X_BAND_SELECT + 1) * SI443X_FREQUENCY_OFFSET, defaults to 156.25 Hz 523 #define SI443X_SIDE_BAND_SELECT_LOW 0b00000000 // 6 6 Rx LO tuning: below channel frequency (default) 524 #define SI443X_SIDE_BAND_SELECT_HIGH 0b01000000 // 6 6 above channel frequency 525 #define SI443X_BAND_SELECT_LOW 0b00000000 // 5 5 band select: low, 240 - 479.9 MHz 526 #define SI443X_BAND_SELECT_HIGH 0b00100000 // 5 5 high, 480 - 960 MHz (default) 527 #define SI443X_FREQUENCY_BAND_SELECT 0b00010101 // 4 0 frequency band select 530 #define SI443X_NOM_CARRIER_FREQUENCY_MSB 0b10111011 // 7 0 nominal carrier frequency: 531 #define SI443X_NOM_CARRIER_FREQUENCY_LSB 0b10000000 // 7 0 Fc = (SI443X_BAND_SELECT + 1)*10*(SI443X_FREQUENCY_BAND_SELECT + 24) + (SI443X_NOM_CARRIER_FREQUENCY - SI443X_FREQUENCY_OFFSET)/6400 [MHz] 534 #define SI443X_FREQUENCY_HOPPING_CHANNEL 0x00 // 7 0 frequency hopping channel number 537 #define SI443X_FREQUENCY_HOPPING_STEP_SIZE 0x00 // 7 0 frequency hopping step size 540 #define SI443X_TX_FIFO_ALMOST_FULL_THRESHOLD 0x37 // 5 0 Tx FIFO almost full threshold 543 #define SI443X_TX_FIFO_ALMOST_EMPTY_THRESHOLD 0x04 // 5 0 Tx FIFO almost full threshold 546 #define SI443X_RX_FIFO_ALMOST_FULL_THRESHOLD 0x37 // 5 0 Rx FIFO almost full threshold 586 int16_t
begin(
float br,
float freqDev,
float rxBw, uint8_t preambleLen);
605 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
617 int16_t
receive(uint8_t* data,
size_t len)
override;
682 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
700 int16_t
readData(uint8_t* data,
size_t len)
override;
738 int16_t
setSyncWord(uint8_t* syncWord,
size_t len);
802 #ifndef RADIOLIB_GODMODE 811 size_t _packetLength = 0;
812 bool _packetLengthQueried =
false;
814 int16_t setFrequencyRaw(
float newFreq);
816 #ifndef RADIOLIB_GODMODE 820 void clearIRQFlags();
822 int16_t updateClockRecovery();
823 int16_t directMode();
int16_t setRxBandwidth(float rxBw)
Sets receiver bandwidth. Allowed values range from 2.6 to 620.7 kHz.
Definition: Si443x.cpp:364
int16_t startReceive()
Interrupt-driven receive method. IRQ will be activated when full valid packet is received.
Definition: Si443x.cpp:254
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Only available in FSK...
Definition: Si443x.cpp:533
int16_t startTransmit(String &str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method, this one is non-blocking. Interrupt pin will be activated when transmission finishes.
Definition: PhysicalLayer.cpp:49
+
int16_t getChipVersion()
Read version SPI register. Should return SI443X_DEVICE_VERSION (0x06) if Si443x is connected and work...
Definition: Si443x.cpp:575
void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn)
Some modules contain external RF switch controlled by two pins. This function gives RadioLib control ...
Definition: Si443x.cpp:552
int16_t setSyncWord(uint8_t *syncWord, size_t len)
Sets sync word. Up to 4 bytes can be set as sync word.
Definition: Si443x.cpp:471
int16_t receiveDirect() override
Enables direct reception mode. While in direct mode, the module will not be able to transmit or recei...
Definition: Si443x.cpp:189
diff --git a/class_c_c1101-members.html b/class_c_c1101-members.html
index a6a8c8bf..e9291403 100644
--- a/class_c_c1101-members.html
+++ b/class_c_c1101-members.html
@@ -95,48 +95,49 @@ $(document).ready(function(){initNavTree('class_c_c1101.html','');});
disableSyncWordFiltering(bool requireCarrierSense=false) | CC1101 | |
enableSyncWordFiltering(uint8_t maxErrBits=0, bool requireCarrierSense=false) | CC1101 | |
fixedPacketLengthMode(uint8_t len=CC1101_MAX_PACKET_LENGTH) | CC1101 | |
-
getFreqStep() const | PhysicalLayer | |
-
getLQI() const | CC1101 | |
-
getPacketLength(bool update=true) override | CC1101 | virtual |
-
getRSSI() const | CC1101 | |
-
packetMode() | CC1101 | |
-
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
-
random() | CC1101 | virtual |
-
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
-
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
-
readData(uint8_t *data, size_t len) override | CC1101 | virtual |
-
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
-
receive(uint8_t *data, size_t len) override | CC1101 | virtual |
-
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
-
receiveDirect() override | CC1101 | virtual |
-
setBitRate(float br) | CC1101 | |
-
setCrcFiltering(bool crcOn=true) | CC1101 | |
-
setDataShaping(uint8_t sh) override | CC1101 | virtual |
-
setEncoding(uint8_t encoding) override | CC1101 | virtual |
-
setFrequency(float freq) | CC1101 | |
-
setFrequencyDeviation(float freqDev) override | CC1101 | virtual |
-
setGdo0Action(void(*func)(void), RADIOLIB_INTERRUPT_STATUS dir=FALLING) | CC1101 | |
-
setGdo2Action(void(*func)(void), RADIOLIB_INTERRUPT_STATUS dir=FALLING) | CC1101 | |
-
setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs=0) | CC1101 | |
-
setOOK(bool enableOOK) | CC1101 | |
-
setOutputPower(int8_t power) | CC1101 | |
-
setPreambleLength(uint8_t preambleLength) | CC1101 | |
-
setPromiscuousMode(bool promiscuous=true) | CC1101 | |
-
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | CC1101 | |
-
setRxBandwidth(float rxBw) | CC1101 | |
-
setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits=0, bool requireCarrierSense=false) | CC1101 | |
-
setSyncWord(uint8_t *syncWord, uint8_t len, uint8_t maxErrBits=0, bool requireCarrierSense=false) | CC1101 | |
-
standby() override | CC1101 | virtual |
-
startReceive() | CC1101 | |
-
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | CC1101 | virtual |
-
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | CC1101 | virtual |
-
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
transmitDirect(uint32_t frf=0) override | CC1101 | virtual |
-
variablePacketLengthMode(uint8_t maxLen=CC1101_MAX_PACKET_LENGTH) | CC1101 | |
+
getChipVersion() | CC1101 | |
+
getFreqStep() const | PhysicalLayer | |
+
getLQI() const | CC1101 | |
+
getPacketLength(bool update=true) override | CC1101 | virtual |
+
getRSSI() const | CC1101 | |
+
packetMode() | CC1101 | |
+
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+
random() | CC1101 | virtual |
+
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+
readData(uint8_t *data, size_t len) override | CC1101 | virtual |
+
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+
receive(uint8_t *data, size_t len) override | CC1101 | virtual |
+
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+
receiveDirect() override | CC1101 | virtual |
+
setBitRate(float br) | CC1101 | |
+
setCrcFiltering(bool crcOn=true) | CC1101 | |
+
setDataShaping(uint8_t sh) override | CC1101 | virtual |
+
setEncoding(uint8_t encoding) override | CC1101 | virtual |
+
setFrequency(float freq) | CC1101 | |
+
setFrequencyDeviation(float freqDev) override | CC1101 | virtual |
+
setGdo0Action(void(*func)(void), RADIOLIB_INTERRUPT_STATUS dir=FALLING) | CC1101 | |
+
setGdo2Action(void(*func)(void), RADIOLIB_INTERRUPT_STATUS dir=FALLING) | CC1101 | |
+
setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs=0) | CC1101 | |
+
setOOK(bool enableOOK) | CC1101 | |
+
setOutputPower(int8_t power) | CC1101 | |
+
setPreambleLength(uint8_t preambleLength) | CC1101 | |
+
setPromiscuousMode(bool promiscuous=true) | CC1101 | |
+
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | CC1101 | |
+
setRxBandwidth(float rxBw) | CC1101 | |
+
setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits=0, bool requireCarrierSense=false) | CC1101 | |
+
setSyncWord(uint8_t *syncWord, uint8_t len, uint8_t maxErrBits=0, bool requireCarrierSense=false) | CC1101 | |
+
standby() override | CC1101 | virtual |
+
startReceive() | CC1101 | |
+
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | CC1101 | virtual |
+
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | CC1101 | virtual |
+
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
transmitDirect(uint32_t frf=0) override | CC1101 | virtual |
+
variablePacketLengthMode(uint8_t maxLen=CC1101_MAX_PACKET_LENGTH) | CC1101 | |
diff --git a/class_c_c1101.html b/class_c_c1101.html
index f734af5d..2d0c0d57 100644
--- a/class_c_c1101.html
+++ b/class_c_c1101.html
@@ -224,6 +224,9 @@ void
| uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+
int16_t | getChipVersion () |
+
| Read version SPI register. Should return CC1101_VERSION_LEGACY (0x04) or CC1101_VERSION_CURRENT (0x14) if CC1101 is connected and working. More...
|
+
|
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
@@ -465,6 +468,26 @@ void
ReturnsStatus Codes
+
+
+
+◆ getChipVersion()
+
+
+
+
+
+ int16_t CC1101::getChipVersion |
+ ( |
+ | ) |
+ |
+
+
+
+
+ Read version SPI register. Should return CC1101_VERSION_LEGACY (0x04) or CC1101_VERSION_CURRENT (0x14) if CC1101 is connected and working.
+ - Returns
- Version register contents or Status Codes
+
diff --git a/class_c_c1101.js b/class_c_c1101.js
index 2979f88e..dedde23b 100644
--- a/class_c_c1101.js
+++ b/class_c_c1101.js
@@ -8,6 +8,7 @@ var class_c_c1101 =
[ "disableSyncWordFiltering", "class_c_c1101.html#a4f2dc4176b62a0636636088e31b8e85b", null ],
[ "enableSyncWordFiltering", "class_c_c1101.html#a6fe55d0217bf5218865198ef8d6fdab4", null ],
[ "fixedPacketLengthMode", "class_c_c1101.html#a9335f1d5ccab7aab2357449002203810", null ],
+ [ "getChipVersion", "class_c_c1101.html#a2a4c6e622dffd2788d8ac52d708b0705", null ],
[ "getLQI", "class_c_c1101.html#a59ca9e8956e308159949638bf327e5fb", null ],
[ "getPacketLength", "class_c_c1101.html#a122281f6a915b77ee9dafc9926e731a0", null ],
[ "getRSSI", "class_c_c1101.html#a48fd0452d6f7d7d51ea7d23b2dbe1551", null ],
diff --git a/class_r_f69-members.html b/class_r_f69-members.html
index 9739c683..c994414f 100644
--- a/class_r_f69-members.html
+++ b/class_r_f69-members.html
@@ -96,52 +96,53 @@ $(document).ready(function(){initNavTree('class_r_f69.html','');});
| enableAES() | RF69 | |
enableSyncWordFiltering(uint8_t maxErrBits=0) | RF69 | |
fixedPacketLengthMode(uint8_t len=RF69_MAX_PACKET_LENGTH) | RF69 | |
-
getFreqStep() const | PhysicalLayer | |
-
getPacketLength(bool update=true) override | RF69 | virtual |
-
getRSSI() | RF69 | |
-
getTemperature() | RF69 | |
-
packetMode() | RF69 | |
-
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
-
random() | RF69 | virtual |
-
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
-
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
-
readData(uint8_t *data, size_t len) override | RF69 | virtual |
-
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
-
receive(uint8_t *data, size_t len) override | RF69 | virtual |
-
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
-
receiveDirect() override | RF69 | virtual |
-
reset() | RF69 | |
-
RF69(Module *module) | RF69 | |
-
setAESKey(uint8_t *key) | RF69 | |
-
setAmbientTemperature(int16_t tempAmbient) | RF69 | |
-
setBitRate(float br) | RF69 | |
-
setBroadcastAddress(uint8_t broadAddr) | RF69 | |
-
setCrcFiltering(bool crcOn=true) | RF69 | |
-
setDataShaping(uint8_t sh) override | RF69 | virtual |
-
setDio0Action(void(*func)(void)) | RF69 | |
-
setDio1Action(void(*func)(void)) | RF69 | |
-
setEncoding(uint8_t encoding) override | RF69 | virtual |
-
setFrequency(float freq) | RF69 | |
-
setFrequencyDeviation(float freqDev) override | RF69 | virtual |
-
setNodeAddress(uint8_t nodeAddr) | RF69 | |
-
setOutputPower(int8_t power, bool highPower=false) | RF69 | |
-
setPreambleLength(uint8_t preambleLen) | RF69 | |
-
setPromiscuousMode(bool promiscuous=true) | RF69 | |
-
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | RF69 | |
-
setRxBandwidth(float rxBw) | RF69 | |
-
setSyncWord(uint8_t *syncWord, size_t len, uint8_t maxErrBits=0) | RF69 | |
-
sleep() | RF69 | |
-
standby() override | RF69 | virtual |
-
startReceive() | RF69 | |
-
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
-
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
-
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
transmitDirect(uint32_t frf=0) override | RF69 | virtual |
-
variablePacketLengthMode(uint8_t maxLen=RF69_MAX_PACKET_LENGTH) | RF69 | |
+
getChipVersion() | RF69 | |
+
getFreqStep() const | PhysicalLayer | |
+
getPacketLength(bool update=true) override | RF69 | virtual |
+
getRSSI() | RF69 | |
+
getTemperature() | RF69 | |
+
packetMode() | RF69 | |
+
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+
random() | RF69 | virtual |
+
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+
readData(uint8_t *data, size_t len) override | RF69 | virtual |
+
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+
receive(uint8_t *data, size_t len) override | RF69 | virtual |
+
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+
receiveDirect() override | RF69 | virtual |
+
reset() | RF69 | |
+
RF69(Module *module) | RF69 | |
+
setAESKey(uint8_t *key) | RF69 | |
+
setAmbientTemperature(int16_t tempAmbient) | RF69 | |
+
setBitRate(float br) | RF69 | |
+
setBroadcastAddress(uint8_t broadAddr) | RF69 | |
+
setCrcFiltering(bool crcOn=true) | RF69 | |
+
setDataShaping(uint8_t sh) override | RF69 | virtual |
+
setDio0Action(void(*func)(void)) | RF69 | |
+
setDio1Action(void(*func)(void)) | RF69 | |
+
setEncoding(uint8_t encoding) override | RF69 | virtual |
+
setFrequency(float freq) | RF69 | |
+
setFrequencyDeviation(float freqDev) override | RF69 | virtual |
+
setNodeAddress(uint8_t nodeAddr) | RF69 | |
+
setOutputPower(int8_t power, bool highPower=false) | RF69 | |
+
setPreambleLength(uint8_t preambleLen) | RF69 | |
+
setPromiscuousMode(bool promiscuous=true) | RF69 | |
+
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | RF69 | |
+
setRxBandwidth(float rxBw) | RF69 | |
+
setSyncWord(uint8_t *syncWord, size_t len, uint8_t maxErrBits=0) | RF69 | |
+
sleep() | RF69 | |
+
standby() override | RF69 | virtual |
+
startReceive() | RF69 | |
+
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
+
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
+
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
transmitDirect(uint32_t frf=0) override | RF69 | virtual |
+
variablePacketLengthMode(uint8_t maxLen=RF69_MAX_PACKET_LENGTH) | RF69 | |
diff --git a/class_r_f69.html b/class_r_f69.html
index 507e0850..9a37097a 100644
--- a/class_r_f69.html
+++ b/class_r_f69.html
@@ -241,6 +241,9 @@ void
| uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+
int16_t | getChipVersion () |
+
| Read version SPI register. Should return RF69_CHIP_VERSION (0x24) if SX127x is connected and working. More...
|
+
|
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
@@ -504,6 +507,26 @@ void
ReturnsStatus Codes
+
+
+
+◆ getChipVersion()
+
+
+
+
+
+ int16_t RF69::getChipVersion |
+ ( |
+ | ) |
+ |
+
+
+
+
+ Read version SPI register. Should return RF69_CHIP_VERSION (0x24) if SX127x is connected and working.
+ - Returns
- Version register contents or Status Codes
+
diff --git a/class_r_f69.js b/class_r_f69.js
index 54746162..2e1f2470 100644
--- a/class_r_f69.js
+++ b/class_r_f69.js
@@ -10,6 +10,7 @@ var class_r_f69 =
[ "enableAES", "class_r_f69.html#a1fd4609f419d8b0213ee39b05dd40b69", null ],
[ "enableSyncWordFiltering", "class_r_f69.html#a643a711bcb4b7771a7ab1f457e61a417", null ],
[ "fixedPacketLengthMode", "class_r_f69.html#a4c9dcbd7e44bc5e46d9f10ae276a0c5f", null ],
+ [ "getChipVersion", "class_r_f69.html#a0c30202b2d52eb32f43066bc0f938638", null ],
[ "getPacketLength", "class_r_f69.html#a86a080086c0228d23e2cb77d2b1915c1", null ],
[ "getRSSI", "class_r_f69.html#ac4fc3f2b178ef08caec3a9f548f44cd7", null ],
[ "getTemperature", "class_r_f69.html#a0526ce6ea3722fd258f96d9677a60853", null ],
diff --git a/class_r_f_m95-members.html b/class_r_f_m95-members.html
index 0a9b456e..af2636f4 100644
--- a/class_r_f_m95-members.html
+++ b/class_r_f_m95-members.html
@@ -97,66 +97,67 @@ $(document).ready(function(){initNavTree('class_r_f_m95.html','');});
| disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1278 | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
-
packetMode() | SX127x | |
-
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
-
random() | SX127x | virtual |
-
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
-
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
-
readData(uint8_t *data, size_t len) override | SX127x | virtual |
-
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
-
receive(uint8_t *data, size_t len) override | SX127x | virtual |
-
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
-
receiveDirect() override | SX127x | virtual |
-
reset() override | SX1278 | virtual |
-
RFM95(Module *mod) | RFM95 | |
-
scanChannel() | SX127x | |
-
setBandwidth(float bw) | SX1278 | |
-
setBitRate(float br) | SX127x | |
-
setBroadcastAddress(uint8_t broadAddr) | SX127x | |
-
setCodingRate(uint8_t cr) | SX1278 | |
-
setCRC(bool enableCRC) | SX1278 | |
-
setCurrentLimit(uint8_t currentLimit) | SX127x | |
-
setDataShaping(uint8_t sh) override | SX1278 | virtual |
-
setDataShapingOOK(uint8_t sh) | SX1278 | |
-
setDio0Action(void(*func)(void)) | SX127x | |
-
setDio1Action(void(*func)(void)) | SX127x | |
-
setEncoding(uint8_t encoding) override | SX127x | virtual |
-
setFrequency(float freq) | RFM95 | |
-
setFrequencyDeviation(float freqDev) override | SX127x | virtual |
-
setGain(uint8_t gain) | SX1278 | |
-
setNodeAddress(uint8_t nodeAddr) | SX127x | |
-
setOOK(bool enableOOK) | SX127x | |
-
setOutputPower(int8_t power) | SX1278 | |
-
setPreambleLength(uint16_t preambleLength) | SX127x | |
-
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
-
setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
-
setRxBandwidth(float rxBw) | SX127x | |
-
setSpreadingFactor(uint8_t sf) | SX1278 | |
-
setSyncWord(uint8_t syncWord) | SX127x | |
-
setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
-
sleep() | SX127x | |
-
standby() override | SX127x | virtual |
-
startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
-
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
-
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
SX1278(Module *mod) | SX1278 | |
-
SX127x(Module *mod) | SX127x | |
-
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
-
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
transmitDirect(uint32_t frf=0) override | SX127x | virtual |
-
variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
packetMode() | SX127x | |
+
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+
random() | SX127x | virtual |
+
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+
readData(uint8_t *data, size_t len) override | SX127x | virtual |
+
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+
receive(uint8_t *data, size_t len) override | SX127x | virtual |
+
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+
receiveDirect() override | SX127x | virtual |
+
reset() override | SX1278 | virtual |
+
RFM95(Module *mod) | RFM95 | |
+
scanChannel() | SX127x | |
+
setBandwidth(float bw) | SX1278 | |
+
setBitRate(float br) | SX127x | |
+
setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+
setCodingRate(uint8_t cr) | SX1278 | |
+
setCRC(bool enableCRC) | SX1278 | |
+
setCurrentLimit(uint8_t currentLimit) | SX127x | |
+
setDataShaping(uint8_t sh) override | SX1278 | virtual |
+
setDataShapingOOK(uint8_t sh) | SX1278 | |
+
setDio0Action(void(*func)(void)) | SX127x | |
+
setDio1Action(void(*func)(void)) | SX127x | |
+
setEncoding(uint8_t encoding) override | SX127x | virtual |
+
setFrequency(float freq) | RFM95 | |
+
setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+
setGain(uint8_t gain) | SX1278 | |
+
setNodeAddress(uint8_t nodeAddr) | SX127x | |
+
setOOK(bool enableOOK) | SX127x | |
+
setOutputPower(int8_t power) | SX1278 | |
+
setPreambleLength(uint16_t preambleLength) | SX127x | |
+
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+
setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+
setRxBandwidth(float rxBw) | SX127x | |
+
setSpreadingFactor(uint8_t sf) | SX1278 | |
+
setSyncWord(uint8_t syncWord) | SX127x | |
+
setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+
sleep() | SX127x | |
+
standby() override | SX127x | virtual |
+
startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
SX1278(Module *mod) | SX1278 | |
+
SX127x(Module *mod) | SX127x | |
+
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+
variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_r_f_m95.html b/class_r_f_m95.html
index 65114ec3..a50d4a9b 100644
--- a/class_r_f_m95.html
+++ b/class_r_f_m95.html
@@ -295,6 +295,9 @@ void
| uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+
int16_t | getChipVersion () |
+
| Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+
|
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_r_f_m96-members.html b/class_r_f_m96-members.html
index a98e0590..49f6c062 100644
--- a/class_r_f_m96-members.html
+++ b/class_r_f_m96-members.html
@@ -97,66 +97,67 @@ $(document).ready(function(){initNavTree('class_r_f_m96.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1278 | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
-
packetMode() | SX127x | |
-
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
-
random() | SX127x | virtual |
-
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
-
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
-
readData(uint8_t *data, size_t len) override | SX127x | virtual |
-
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
-
receive(uint8_t *data, size_t len) override | SX127x | virtual |
-
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
-
receiveDirect() override | SX127x | virtual |
-
reset() override | SX1278 | virtual |
-
RFM96(Module *mod) | RFM96 | |
-
scanChannel() | SX127x | |
-
setBandwidth(float bw) | SX1278 | |
-
setBitRate(float br) | SX127x | |
-
setBroadcastAddress(uint8_t broadAddr) | SX127x | |
-
setCodingRate(uint8_t cr) | SX1278 | |
-
setCRC(bool enableCRC) | SX1278 | |
-
setCurrentLimit(uint8_t currentLimit) | SX127x | |
-
setDataShaping(uint8_t sh) override | SX1278 | virtual |
-
setDataShapingOOK(uint8_t sh) | SX1278 | |
-
setDio0Action(void(*func)(void)) | SX127x | |
-
setDio1Action(void(*func)(void)) | SX127x | |
-
setEncoding(uint8_t encoding) override | SX127x | virtual |
-
setFrequency(float freq) | RFM96 | |
-
setFrequencyDeviation(float freqDev) override | SX127x | virtual |
-
setGain(uint8_t gain) | SX1278 | |
-
setNodeAddress(uint8_t nodeAddr) | SX127x | |
-
setOOK(bool enableOOK) | SX127x | |
-
setOutputPower(int8_t power) | SX1278 | |
-
setPreambleLength(uint16_t preambleLength) | SX127x | |
-
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
-
setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
-
setRxBandwidth(float rxBw) | SX127x | |
-
setSpreadingFactor(uint8_t sf) | SX1278 | |
-
setSyncWord(uint8_t syncWord) | SX127x | |
-
setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
-
sleep() | SX127x | |
-
standby() override | SX127x | virtual |
-
startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
-
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
-
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
SX1278(Module *mod) | SX1278 | |
-
SX127x(Module *mod) | SX127x | |
-
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
-
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
-
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
-
transmitDirect(uint32_t frf=0) override | SX127x | virtual |
-
variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
packetMode() | SX127x | |
+
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+
random() | SX127x | virtual |
+
PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+
PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+
readData(uint8_t *data, size_t len) override | SX127x | virtual |
+
PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+
receive(uint8_t *data, size_t len) override | SX127x | virtual |
+
PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+
receiveDirect() override | SX127x | virtual |
+
reset() override | SX1278 | virtual |
+
RFM96(Module *mod) | RFM96 | |
+
scanChannel() | SX127x | |
+
setBandwidth(float bw) | SX1278 | |
+
setBitRate(float br) | SX127x | |
+
setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+
setCodingRate(uint8_t cr) | SX1278 | |
+
setCRC(bool enableCRC) | SX1278 | |
+
setCurrentLimit(uint8_t currentLimit) | SX127x | |
+
setDataShaping(uint8_t sh) override | SX1278 | virtual |
+
setDataShapingOOK(uint8_t sh) | SX1278 | |
+
setDio0Action(void(*func)(void)) | SX127x | |
+
setDio1Action(void(*func)(void)) | SX127x | |
+
setEncoding(uint8_t encoding) override | SX127x | virtual |
+
setFrequency(float freq) | RFM96 | |
+
setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+
setGain(uint8_t gain) | SX1278 | |
+
setNodeAddress(uint8_t nodeAddr) | SX127x | |
+
setOOK(bool enableOOK) | SX127x | |
+
setOutputPower(int8_t power) | SX1278 | |
+
setPreambleLength(uint16_t preambleLength) | SX127x | |
+
setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+
setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+
setRxBandwidth(float rxBw) | SX127x | |
+
setSpreadingFactor(uint8_t sf) | SX1278 | |
+
setSyncWord(uint8_t syncWord) | SX127x | |
+
setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+
sleep() | SX127x | |
+
standby() override | SX127x | virtual |
+
startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+
startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+
PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
SX1278(Module *mod) | SX1278 | |
+
SX127x(Module *mod) | SX127x | |
+
transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+
PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+
PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+
transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+
variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_r_f_m96.html b/class_r_f_m96.html
index 2c7fada3..3be04d57 100644
--- a/class_r_f_m96.html
+++ b/class_r_f_m96.html
@@ -294,6 +294,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_r_f_m97-members.html b/class_r_f_m97-members.html
index 94e102c9..88e0658a 100644
--- a/class_r_f_m97-members.html
+++ b/class_r_f_m97-members.html
@@ -97,67 +97,68 @@ $(document).ready(function(){initNavTree('class_r_f_m97.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1278 | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1278 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset() override | SX1278 | virtual |
- RFM95(Module *mod) | RFM95 | |
- RFM97(Module *mod) | RFM97 | |
- scanChannel() | SX127x | |
- setBandwidth(float bw) | SX1278 | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCodingRate(uint8_t cr) | SX1278 | |
- setCRC(bool enableCRC) | SX1278 | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh) override | SX1278 | virtual |
- setDataShapingOOK(uint8_t sh) | SX1278 | |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequency(float freq) | RFM95 | |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setGain(uint8_t gain) | SX1278 | |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setOutputPower(int8_t power) | SX1278 | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSpreadingFactor(uint8_t sf) | RFM97 | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1278(Module *mod) | SX1278 | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1278 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset() override | SX1278 | virtual |
+ RFM95(Module *mod) | RFM95 | |
+ RFM97(Module *mod) | RFM97 | |
+ scanChannel() | SX127x | |
+ setBandwidth(float bw) | SX1278 | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCodingRate(uint8_t cr) | SX1278 | |
+ setCRC(bool enableCRC) | SX1278 | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh) override | SX1278 | virtual |
+ setDataShapingOOK(uint8_t sh) | SX1278 | |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequency(float freq) | RFM95 | |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setGain(uint8_t gain) | SX1278 | |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setOutputPower(int8_t power) | SX1278 | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSpreadingFactor(uint8_t sf) | RFM97 | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1278(Module *mod) | SX1278 | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_r_f_m97.html b/class_r_f_m97.html
index f18064c9..750a4010 100644
--- a/class_r_f_m97.html
+++ b/class_r_f_m97.html
@@ -302,6 +302,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x1231-members.html b/class_s_x1231-members.html
index 4edfde76..6d8b163b 100644
--- a/class_s_x1231-members.html
+++ b/class_s_x1231-members.html
@@ -96,53 +96,54 @@ $(document).ready(function(){initNavTree('class_s_x1231.html','');});
enableAES() | RF69 | |
enableSyncWordFiltering(uint8_t maxErrBits=0) | RF69 | |
fixedPacketLengthMode(uint8_t len=RF69_MAX_PACKET_LENGTH) | RF69 | |
- getFreqStep() const | PhysicalLayer | |
- getPacketLength(bool update=true) override | RF69 | virtual |
- getRSSI() | RF69 | |
- getTemperature() | RF69 | |
- packetMode() | RF69 | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | RF69 | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | RF69 | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | RF69 | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | RF69 | virtual |
- reset() | RF69 | |
- RF69(Module *module) | RF69 | |
- setAESKey(uint8_t *key) | RF69 | |
- setAmbientTemperature(int16_t tempAmbient) | RF69 | |
- setBitRate(float br) | RF69 | |
- setBroadcastAddress(uint8_t broadAddr) | RF69 | |
- setCrcFiltering(bool crcOn=true) | RF69 | |
- setDataShaping(uint8_t sh) override | RF69 | virtual |
- setDio0Action(void(*func)(void)) | RF69 | |
- setDio1Action(void(*func)(void)) | RF69 | |
- setEncoding(uint8_t encoding) override | RF69 | virtual |
- setFrequency(float freq) | RF69 | |
- setFrequencyDeviation(float freqDev) override | RF69 | virtual |
- setNodeAddress(uint8_t nodeAddr) | RF69 | |
- setOutputPower(int8_t power, bool highPower=false) | RF69 | |
- setPreambleLength(uint8_t preambleLen) | RF69 | |
- setPromiscuousMode(bool promiscuous=true) | RF69 | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | RF69 | |
- setRxBandwidth(float rxBw) | RF69 | |
- setSyncWord(uint8_t *syncWord, size_t len, uint8_t maxErrBits=0) | RF69 | |
- sleep() | RF69 | |
- standby() override | RF69 | virtual |
- startReceive() | RF69 | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1231(Module *mod) | SX1231 | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | RF69 | virtual |
- variablePacketLengthMode(uint8_t maxLen=RF69_MAX_PACKET_LENGTH) | RF69 | |
+ getChipVersion() | RF69 | |
+ getFreqStep() const | PhysicalLayer | |
+ getPacketLength(bool update=true) override | RF69 | virtual |
+ getRSSI() | RF69 | |
+ getTemperature() | RF69 | |
+ packetMode() | RF69 | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | RF69 | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | RF69 | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | RF69 | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | RF69 | virtual |
+ reset() | RF69 | |
+ RF69(Module *module) | RF69 | |
+ setAESKey(uint8_t *key) | RF69 | |
+ setAmbientTemperature(int16_t tempAmbient) | RF69 | |
+ setBitRate(float br) | RF69 | |
+ setBroadcastAddress(uint8_t broadAddr) | RF69 | |
+ setCrcFiltering(bool crcOn=true) | RF69 | |
+ setDataShaping(uint8_t sh) override | RF69 | virtual |
+ setDio0Action(void(*func)(void)) | RF69 | |
+ setDio1Action(void(*func)(void)) | RF69 | |
+ setEncoding(uint8_t encoding) override | RF69 | virtual |
+ setFrequency(float freq) | RF69 | |
+ setFrequencyDeviation(float freqDev) override | RF69 | virtual |
+ setNodeAddress(uint8_t nodeAddr) | RF69 | |
+ setOutputPower(int8_t power, bool highPower=false) | RF69 | |
+ setPreambleLength(uint8_t preambleLen) | RF69 | |
+ setPromiscuousMode(bool promiscuous=true) | RF69 | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | RF69 | |
+ setRxBandwidth(float rxBw) | RF69 | |
+ setSyncWord(uint8_t *syncWord, size_t len, uint8_t maxErrBits=0) | RF69 | |
+ sleep() | RF69 | |
+ standby() override | RF69 | virtual |
+ startReceive() | RF69 | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1231(Module *mod) | SX1231 | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | RF69 | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | RF69 | virtual |
+ variablePacketLengthMode(uint8_t maxLen=RF69_MAX_PACKET_LENGTH) | RF69 | |
diff --git a/class_s_x1231.html b/class_s_x1231.html
index 849432d9..92e25aa9 100644
--- a/class_s_x1231.html
+++ b/class_s_x1231.html
@@ -248,6 +248,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return RF69_CHIP_VERSION (0x24) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x1272-members.html b/class_s_x1272-members.html
index 2f0d8542..1cae2f1b 100644
--- a/class_s_x1272-members.html
+++ b/class_s_x1272-members.html
@@ -97,65 +97,66 @@ $(document).ready(function(){initNavTree('class_s_x1272.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1272 | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1272 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset() override | SX1272 | virtual |
- scanChannel() | SX127x | |
- setBandwidth(float bw) | SX1272 | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCodingRate(uint8_t cr) | SX1272 | |
- setCRC(bool enableCRC) | SX1272 | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh) override | SX1272 | virtual |
- setDataShapingOOK(uint8_t sh) | SX1272 | |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequency(float freq) | SX1272 | |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setGain(uint8_t gain) | SX1272 | |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setOutputPower(int8_t power) | SX1272 | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSpreadingFactor(uint8_t sf) | SX1272 | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1272(Module *mod) | SX1272 | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1272 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset() override | SX1272 | virtual |
+ scanChannel() | SX127x | |
+ setBandwidth(float bw) | SX1272 | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCodingRate(uint8_t cr) | SX1272 | |
+ setCRC(bool enableCRC) | SX1272 | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh) override | SX1272 | virtual |
+ setDataShapingOOK(uint8_t sh) | SX1272 | |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequency(float freq) | SX1272 | |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setGain(uint8_t gain) | SX1272 | |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setOutputPower(int8_t power) | SX1272 | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSpreadingFactor(uint8_t sf) | SX1272 | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1272(Module *mod) | SX1272 | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_s_x1272.html b/class_s_x1272.html
index 2e39c832..f3caac06 100644
--- a/class_s_x1272.html
+++ b/class_s_x1272.html
@@ -284,6 +284,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x1273-members.html b/class_s_x1273-members.html
index 003162ff..f8199683 100644
--- a/class_s_x1273-members.html
+++ b/class_s_x1273-members.html
@@ -97,66 +97,67 @@ $(document).ready(function(){initNavTree('class_s_x1273.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1272 | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1272 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset() override | SX1272 | virtual |
- scanChannel() | SX127x | |
- setBandwidth(float bw) | SX1272 | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCodingRate(uint8_t cr) | SX1272 | |
- setCRC(bool enableCRC) | SX1272 | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh) override | SX1272 | virtual |
- setDataShapingOOK(uint8_t sh) | SX1272 | |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequency(float freq) | SX1272 | |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setGain(uint8_t gain) | SX1272 | |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setOutputPower(int8_t power) | SX1272 | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSpreadingFactor(uint8_t sf) | SX1273 | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1272(Module *mod) | SX1272 | |
- SX1273(Module *mod) | SX1273 | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1272 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset() override | SX1272 | virtual |
+ scanChannel() | SX127x | |
+ setBandwidth(float bw) | SX1272 | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCodingRate(uint8_t cr) | SX1272 | |
+ setCRC(bool enableCRC) | SX1272 | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh) override | SX1272 | virtual |
+ setDataShapingOOK(uint8_t sh) | SX1272 | |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequency(float freq) | SX1272 | |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setGain(uint8_t gain) | SX1272 | |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setOutputPower(int8_t power) | SX1272 | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSpreadingFactor(uint8_t sf) | SX1273 | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1272(Module *mod) | SX1272 | |
+ SX1273(Module *mod) | SX1273 | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_s_x1273.html b/class_s_x1273.html
index 8a0acd15..d10fbeed 100644
--- a/class_s_x1273.html
+++ b/class_s_x1273.html
@@ -294,6 +294,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x1276-members.html b/class_s_x1276-members.html
index c684109f..4cc6e49c 100644
--- a/class_s_x1276-members.html
+++ b/class_s_x1276-members.html
@@ -97,66 +97,67 @@ $(document).ready(function(){initNavTree('class_s_x1276.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1278 | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1278 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset() override | SX1278 | virtual |
- scanChannel() | SX127x | |
- setBandwidth(float bw) | SX1278 | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCodingRate(uint8_t cr) | SX1278 | |
- setCRC(bool enableCRC) | SX1278 | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh) override | SX1278 | virtual |
- setDataShapingOOK(uint8_t sh) | SX1278 | |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequency(float freq) | SX1276 | |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setGain(uint8_t gain) | SX1278 | |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setOutputPower(int8_t power) | SX1278 | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSpreadingFactor(uint8_t sf) | SX1278 | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1276(Module *mod) | SX1276 | |
- SX1278(Module *mod) | SX1278 | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1278 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset() override | SX1278 | virtual |
+ scanChannel() | SX127x | |
+ setBandwidth(float bw) | SX1278 | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCodingRate(uint8_t cr) | SX1278 | |
+ setCRC(bool enableCRC) | SX1278 | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh) override | SX1278 | virtual |
+ setDataShapingOOK(uint8_t sh) | SX1278 | |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequency(float freq) | SX1276 | |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setGain(uint8_t gain) | SX1278 | |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setOutputPower(int8_t power) | SX1278 | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSpreadingFactor(uint8_t sf) | SX1278 | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1276(Module *mod) | SX1276 | |
+ SX1278(Module *mod) | SX1278 | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_s_x1276.html b/class_s_x1276.html
index c7308e55..fca98228 100644
--- a/class_s_x1276.html
+++ b/class_s_x1276.html
@@ -297,6 +297,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x1277-members.html b/class_s_x1277-members.html
index 336b344b..d9a21dc0 100644
--- a/class_s_x1277-members.html
+++ b/class_s_x1277-members.html
@@ -97,66 +97,67 @@ $(document).ready(function(){initNavTree('class_s_x1277.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1278 | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1278 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset() override | SX1278 | virtual |
- scanChannel() | SX127x | |
- setBandwidth(float bw) | SX1278 | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCodingRate(uint8_t cr) | SX1278 | |
- setCRC(bool enableCRC) | SX1278 | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh) override | SX1278 | virtual |
- setDataShapingOOK(uint8_t sh) | SX1278 | |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequency(float freq) | SX1277 | |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setGain(uint8_t gain) | SX1278 | |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setOutputPower(int8_t power) | SX1278 | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSpreadingFactor(uint8_t sf) | SX1277 | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1277(Module *mod) | SX1277 | |
- SX1278(Module *mod) | SX1278 | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1278 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset() override | SX1278 | virtual |
+ scanChannel() | SX127x | |
+ setBandwidth(float bw) | SX1278 | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCodingRate(uint8_t cr) | SX1278 | |
+ setCRC(bool enableCRC) | SX1278 | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh) override | SX1278 | virtual |
+ setDataShapingOOK(uint8_t sh) | SX1278 | |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequency(float freq) | SX1277 | |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setGain(uint8_t gain) | SX1278 | |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setOutputPower(int8_t power) | SX1278 | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSpreadingFactor(uint8_t sf) | SX1277 | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1277(Module *mod) | SX1277 | |
+ SX1278(Module *mod) | SX1278 | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_s_x1277.html b/class_s_x1277.html
index 99de6587..16c71941 100644
--- a/class_s_x1277.html
+++ b/class_s_x1277.html
@@ -300,6 +300,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x1278-members.html b/class_s_x1278-members.html
index eae65475..bcf39526 100644
--- a/class_s_x1278-members.html
+++ b/class_s_x1278-members.html
@@ -97,65 +97,66 @@ $(document).ready(function(){initNavTree('class_s_x1278.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1278 | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1278 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset() override | SX1278 | virtual |
- scanChannel() | SX127x | |
- setBandwidth(float bw) | SX1278 | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCodingRate(uint8_t cr) | SX1278 | |
- setCRC(bool enableCRC) | SX1278 | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh) override | SX1278 | virtual |
- setDataShapingOOK(uint8_t sh) | SX1278 | |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequency(float freq) | SX1278 | |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setGain(uint8_t gain) | SX1278 | |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setOutputPower(int8_t power) | SX1278 | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSpreadingFactor(uint8_t sf) | SX1278 | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1278(Module *mod) | SX1278 | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1278 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset() override | SX1278 | virtual |
+ scanChannel() | SX127x | |
+ setBandwidth(float bw) | SX1278 | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCodingRate(uint8_t cr) | SX1278 | |
+ setCRC(bool enableCRC) | SX1278 | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh) override | SX1278 | virtual |
+ setDataShapingOOK(uint8_t sh) | SX1278 | |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequency(float freq) | SX1278 | |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setGain(uint8_t gain) | SX1278 | |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setOutputPower(int8_t power) | SX1278 | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSpreadingFactor(uint8_t sf) | SX1278 | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1278(Module *mod) | SX1278 | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_s_x1278.html b/class_s_x1278.html
index a1e9933c..d190f1fc 100644
--- a/class_s_x1278.html
+++ b/class_s_x1278.html
@@ -289,6 +289,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x1279-members.html b/class_s_x1279-members.html
index 15586228..ee19d22f 100644
--- a/class_s_x1279-members.html
+++ b/class_s_x1279-members.html
@@ -97,66 +97,67 @@ $(document).ready(function(){initNavTree('class_s_x1279.html','');});
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
forceLDRO(bool enable) | SX1278 | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1278 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset() override | SX1278 | virtual |
- scanChannel() | SX127x | |
- setBandwidth(float bw) | SX1278 | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCodingRate(uint8_t cr) | SX1278 | |
- setCRC(bool enableCRC) | SX1278 | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh) override | SX1278 | virtual |
- setDataShapingOOK(uint8_t sh) | SX1278 | |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequency(float freq) | SX1279 | |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setGain(uint8_t gain) | SX1278 | |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setOutputPower(int8_t power) | SX1278 | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSpreadingFactor(uint8_t sf) | SX1278 | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX1278(Module *mod) | SX1278 | |
- SX1279(Module *mod) | SX1279 | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1278 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset() override | SX1278 | virtual |
+ scanChannel() | SX127x | |
+ setBandwidth(float bw) | SX1278 | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCodingRate(uint8_t cr) | SX1278 | |
+ setCRC(bool enableCRC) | SX1278 | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh) override | SX1278 | virtual |
+ setDataShapingOOK(uint8_t sh) | SX1278 | |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequency(float freq) | SX1279 | |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setGain(uint8_t gain) | SX1278 | |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setOutputPower(int8_t power) | SX1278 | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSpreadingFactor(uint8_t sf) | SX1278 | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX1278(Module *mod) | SX1278 | |
+ SX1279(Module *mod) | SX1279 | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_s_x1279.html b/class_s_x1279.html
index 7c992687..728eee9a 100644
--- a/class_s_x1279.html
+++ b/class_s_x1279.html
@@ -297,6 +297,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_s_x127x-members.html b/class_s_x127x-members.html
index 822e8f19..abb32437 100644
--- a/class_s_x127x-members.html
+++ b/class_s_x127x-members.html
@@ -93,55 +93,56 @@ $(document).ready(function(){initNavTree('class_s_x127x.html','');});
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
- packetMode() | SX127x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | SX127x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | SX127x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | SX127x | virtual |
- reset()=0 | SX127x | pure virtual |
- scanChannel() | SX127x | |
- setBitRate(float br) | SX127x | |
- setBroadcastAddress(uint8_t broadAddr) | SX127x | |
- setCurrentLimit(uint8_t currentLimit) | SX127x | |
- setDataShaping(uint8_t sh)=0 | PhysicalLayer | pure virtual |
- setDio0Action(void(*func)(void)) | SX127x | |
- setDio1Action(void(*func)(void)) | SX127x | |
- setEncoding(uint8_t encoding) override | SX127x | virtual |
- setFrequencyDeviation(float freqDev) override | SX127x | virtual |
- setNodeAddress(uint8_t nodeAddr) | SX127x | |
- setOOK(bool enableOOK) | SX127x | |
- setPreambleLength(uint16_t preambleLength) | SX127x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
- setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
- setRxBandwidth(float rxBw) | SX127x | |
- setSyncWord(uint8_t syncWord) | SX127x | |
- setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
- sleep() | SX127x | |
- standby() override | SX127x | virtual |
- startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- SX127x(Module *mod) | SX127x | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | SX127x | virtual |
- variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ packetMode() | SX127x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | SX127x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | SX127x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | SX127x | virtual |
+ reset()=0 | SX127x | pure virtual |
+ scanChannel() | SX127x | |
+ setBitRate(float br) | SX127x | |
+ setBroadcastAddress(uint8_t broadAddr) | SX127x | |
+ setCurrentLimit(uint8_t currentLimit) | SX127x | |
+ setDataShaping(uint8_t sh)=0 | PhysicalLayer | pure virtual |
+ setDio0Action(void(*func)(void)) | SX127x | |
+ setDio1Action(void(*func)(void)) | SX127x | |
+ setEncoding(uint8_t encoding) override | SX127x | virtual |
+ setFrequencyDeviation(float freqDev) override | SX127x | virtual |
+ setNodeAddress(uint8_t nodeAddr) | SX127x | |
+ setOOK(bool enableOOK) | SX127x | |
+ setPreambleLength(uint16_t preambleLength) | SX127x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | SX127x | |
+ setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0) | SX127x | |
+ setRxBandwidth(float rxBw) | SX127x | |
+ setSyncWord(uint8_t syncWord) | SX127x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | SX127x | |
+ sleep() | SX127x | |
+ standby() override | SX127x | virtual |
+ startReceive(uint8_t len=0, uint8_t mode=SX127X_RXCONTINUOUS) | SX127x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ SX127x(Module *mod) | SX127x | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | SX127x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | SX127x | virtual |
+ variablePacketLengthMode(uint8_t maxLen=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
diff --git a/class_s_x127x.html b/class_s_x127x.html
index 80490525..162620ab 100644
--- a/class_s_x127x.html
+++ b/class_s_x127x.html
@@ -245,6 +245,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
@@ -469,6 +472,26 @@ void ReturnsStatus Codes
+
+
+
+◆ getChipVersion()
+
+
+
+
+
+ int16_t SX127x::getChipVersion |
+ ( |
+ | ) |
+ |
+
+
+
+
+ Read version SPI register. Should return SX1278_CHIP_VERSION (0x12) or SX1272_CHIP_VERSION (0x22) if SX127x is connected and working.
+ - Returns
- Version register contents or Status Codes
+
diff --git a/class_s_x127x.js b/class_s_x127x.js
index ab9c5e20..73b63455 100644
--- a/class_s_x127x.js
+++ b/class_s_x127x.js
@@ -7,6 +7,7 @@ var class_s_x127x =
[ "clearDio1Action", "class_s_x127x.html#a9b6532a25e1730973ac08146008adca5", null ],
[ "disableAddressFiltering", "class_s_x127x.html#afe6e9bbfd75f9cad26f9f72c34c4ada5", null ],
[ "fixedPacketLengthMode", "class_s_x127x.html#aaf8ce9f09d0f46a76a5e251786b6de7f", null ],
+ [ "getChipVersion", "class_s_x127x.html#aee5324d7d854e7a2f6768221d4f362cd", null ],
[ "getDataRate", "class_s_x127x.html#adc25b685de0859b799488bf7729350b6", null ],
[ "getFrequencyError", "class_s_x127x.html#af6aa854a2668d70f4d3a374a49440362", null ],
[ "getIRQFlags", "class_s_x127x.html#ac5d2ddb517e474a699b4539653b3754d", null ],
diff --git a/class_si4430-members.html b/class_si4430-members.html
index 0b0e8e9f..25513ad3 100644
--- a/class_si4430-members.html
+++ b/class_si4430-members.html
@@ -90,44 +90,45 @@ $(document).ready(function(){initNavTree('class_si4430.html','');});
| begin(float freq=434.0, float br=48.0, float freqDev=50.0, float rxBw=181.1, int8_t power=10, uint8_t preambleLen=16) | Si4430 | |
Si443x::begin(float br, float freqDev, float rxBw, uint8_t preambleLen) | Si443x | |
clearIrqAction() | Si443x | |
- getFreqStep() const | PhysicalLayer | |
- getPacketLength(bool update=true) override | Si443x | virtual |
- packetMode() | Si443x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | Si443x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | Si443x | virtual |
- reset() | Si443x | |
- setBitRate(float br) | Si443x | |
- setDataShaping(uint8_t sh) override | Si443x | virtual |
- setEncoding(uint8_t encoding) override | Si443x | virtual |
- setFrequency(float freq) | Si4430 | |
- setFrequencyDeviation(float freqDev) override | Si443x | virtual |
- setIrqAction(void(*func)(void)) | Si443x | |
- setOutputPower(int8_t power) | Si4430 | |
- setPreambleLength(uint8_t preambleLen) | Si443x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
- setRxBandwidth(float rxBw) | Si443x | |
- setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
- Si4430(Module *mod) | Si4430 | |
- Si4432(Module *mod) | Si4432 | |
- Si443x(Module *mod) | Si443x | |
- sleep() | Si443x | |
- standby() override | Si443x | virtual |
- startReceive() | Si443x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | Si443x | virtual |
+ getChipVersion() | Si443x | |
+ getFreqStep() const | PhysicalLayer | |
+ getPacketLength(bool update=true) override | Si443x | virtual |
+ packetMode() | Si443x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | Si443x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | Si443x | virtual |
+ reset() | Si443x | |
+ setBitRate(float br) | Si443x | |
+ setDataShaping(uint8_t sh) override | Si443x | virtual |
+ setEncoding(uint8_t encoding) override | Si443x | virtual |
+ setFrequency(float freq) | Si4430 | |
+ setFrequencyDeviation(float freqDev) override | Si443x | virtual |
+ setIrqAction(void(*func)(void)) | Si443x | |
+ setOutputPower(int8_t power) | Si4430 | |
+ setPreambleLength(uint8_t preambleLen) | Si443x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
+ setRxBandwidth(float rxBw) | Si443x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
+ Si4430(Module *mod) | Si4430 | |
+ Si4432(Module *mod) | Si4432 | |
+ Si443x(Module *mod) | Si443x | |
+ sleep() | Si443x | |
+ standby() override | Si443x | virtual |
+ startReceive() | Si443x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | Si443x | virtual |
diff --git a/class_si4430.html b/class_si4430.html
index 9d5985ab..af82b73a 100644
--- a/class_si4430.html
+++ b/class_si4430.html
@@ -209,6 +209,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SI443X_DEVICE_VERSION (0x06) if Si443x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_si4431-members.html b/class_si4431-members.html
index ce201818..429e7e99 100644
--- a/class_si4431-members.html
+++ b/class_si4431-members.html
@@ -90,44 +90,45 @@ $(document).ready(function(){initNavTree('class_si4431.html','');});
begin(float freq=434.0, float br=48.0, float freqDev=50.0, float rxBw=181.1, int8_t power=10, uint8_t preambleLen=16) | Si4431 | |
Si443x::begin(float br, float freqDev, float rxBw, uint8_t preambleLen) | Si443x | |
clearIrqAction() | Si443x | |
- getFreqStep() const | PhysicalLayer | |
- getPacketLength(bool update=true) override | Si443x | virtual |
- packetMode() | Si443x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | Si443x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | Si443x | virtual |
- reset() | Si443x | |
- setBitRate(float br) | Si443x | |
- setDataShaping(uint8_t sh) override | Si443x | virtual |
- setEncoding(uint8_t encoding) override | Si443x | virtual |
- setFrequency(float freq) | Si4432 | |
- setFrequencyDeviation(float freqDev) override | Si443x | virtual |
- setIrqAction(void(*func)(void)) | Si443x | |
- setOutputPower(int8_t power) | Si4431 | |
- setPreambleLength(uint8_t preambleLen) | Si443x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
- setRxBandwidth(float rxBw) | Si443x | |
- setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
- Si4431(Module *mod) | Si4431 | |
- Si4432(Module *mod) | Si4432 | |
- Si443x(Module *mod) | Si443x | |
- sleep() | Si443x | |
- standby() override | Si443x | virtual |
- startReceive() | Si443x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | Si443x | virtual |
+ getChipVersion() | Si443x | |
+ getFreqStep() const | PhysicalLayer | |
+ getPacketLength(bool update=true) override | Si443x | virtual |
+ packetMode() | Si443x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | Si443x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | Si443x | virtual |
+ reset() | Si443x | |
+ setBitRate(float br) | Si443x | |
+ setDataShaping(uint8_t sh) override | Si443x | virtual |
+ setEncoding(uint8_t encoding) override | Si443x | virtual |
+ setFrequency(float freq) | Si4432 | |
+ setFrequencyDeviation(float freqDev) override | Si443x | virtual |
+ setIrqAction(void(*func)(void)) | Si443x | |
+ setOutputPower(int8_t power) | Si4431 | |
+ setPreambleLength(uint8_t preambleLen) | Si443x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
+ setRxBandwidth(float rxBw) | Si443x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
+ Si4431(Module *mod) | Si4431 | |
+ Si4432(Module *mod) | Si4432 | |
+ Si443x(Module *mod) | Si443x | |
+ sleep() | Si443x | |
+ standby() override | Si443x | virtual |
+ startReceive() | Si443x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | Si443x | virtual |
diff --git a/class_si4431.html b/class_si4431.html
index e70ab7f4..a0b95c4f 100644
--- a/class_si4431.html
+++ b/class_si4431.html
@@ -206,6 +206,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SI443X_DEVICE_VERSION (0x06) if Si443x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_si4432-members.html b/class_si4432-members.html
index 66d20648..c6df4975 100644
--- a/class_si4432-members.html
+++ b/class_si4432-members.html
@@ -90,43 +90,44 @@ $(document).ready(function(){initNavTree('class_si4432.html','');});
begin(float freq=434.0, float br=48.0, float freqDev=50.0, float rxBw=181.1, int8_t power=10, uint8_t preambleLen=16) | Si4432 | |
Si443x::begin(float br, float freqDev, float rxBw, uint8_t preambleLen) | Si443x | |
clearIrqAction() | Si443x | |
- getFreqStep() const | PhysicalLayer | |
- getPacketLength(bool update=true) override | Si443x | virtual |
- packetMode() | Si443x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | Si443x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | Si443x | virtual |
- reset() | Si443x | |
- setBitRate(float br) | Si443x | |
- setDataShaping(uint8_t sh) override | Si443x | virtual |
- setEncoding(uint8_t encoding) override | Si443x | virtual |
- setFrequency(float freq) | Si4432 | |
- setFrequencyDeviation(float freqDev) override | Si443x | virtual |
- setIrqAction(void(*func)(void)) | Si443x | |
- setOutputPower(int8_t power) | Si4432 | |
- setPreambleLength(uint8_t preambleLen) | Si443x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
- setRxBandwidth(float rxBw) | Si443x | |
- setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
- Si4432(Module *mod) | Si4432 | |
- Si443x(Module *mod) | Si443x | |
- sleep() | Si443x | |
- standby() override | Si443x | virtual |
- startReceive() | Si443x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | Si443x | virtual |
+ getChipVersion() | Si443x | |
+ getFreqStep() const | PhysicalLayer | |
+ getPacketLength(bool update=true) override | Si443x | virtual |
+ packetMode() | Si443x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | Si443x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | Si443x | virtual |
+ reset() | Si443x | |
+ setBitRate(float br) | Si443x | |
+ setDataShaping(uint8_t sh) override | Si443x | virtual |
+ setEncoding(uint8_t encoding) override | Si443x | virtual |
+ setFrequency(float freq) | Si4432 | |
+ setFrequencyDeviation(float freqDev) override | Si443x | virtual |
+ setIrqAction(void(*func)(void)) | Si443x | |
+ setOutputPower(int8_t power) | Si4432 | |
+ setPreambleLength(uint8_t preambleLen) | Si443x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
+ setRxBandwidth(float rxBw) | Si443x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
+ Si4432(Module *mod) | Si4432 | |
+ Si443x(Module *mod) | Si443x | |
+ sleep() | Si443x | |
+ standby() override | Si443x | virtual |
+ startReceive() | Si443x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | Si443x | virtual |
diff --git a/class_si4432.html b/class_si4432.html
index a6214c8e..41f8793d 100644
--- a/class_si4432.html
+++ b/class_si4432.html
@@ -197,6 +197,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SI443X_DEVICE_VERSION (0x06) if Si443x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
diff --git a/class_si443x-members.html b/class_si443x-members.html
index 35db074f..5d1eabbe 100644
--- a/class_si443x-members.html
+++ b/class_si443x-members.html
@@ -89,40 +89,41 @@ $(document).ready(function(){initNavTree('class_si443x.html','');});
begin(float br, float freqDev, float rxBw, uint8_t preambleLen) | Si443x | |
clearIrqAction() | Si443x | |
- getFreqStep() const | PhysicalLayer | |
- getPacketLength(bool update=true) override | Si443x | virtual |
- packetMode() | Si443x | |
- PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
- random() | Si443x | virtual |
- PhysicalLayer::random(int32_t max) | PhysicalLayer | |
- PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
- readData(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
- receive(uint8_t *data, size_t len) override | Si443x | virtual |
- PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
- receiveDirect() override | Si443x | virtual |
- reset() | Si443x | |
- setBitRate(float br) | Si443x | |
- setDataShaping(uint8_t sh) override | Si443x | virtual |
- setEncoding(uint8_t encoding) override | Si443x | virtual |
- setFrequencyDeviation(float freqDev) override | Si443x | virtual |
- setIrqAction(void(*func)(void)) | Si443x | |
- setPreambleLength(uint8_t preambleLen) | Si443x | |
- setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
- setRxBandwidth(float rxBw) | Si443x | |
- setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
- Si443x(Module *mod) | Si443x | |
- sleep() | Si443x | |
- standby() override | Si443x | virtual |
- startReceive() | Si443x | |
- startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
- PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
- PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
- transmitDirect(uint32_t frf=0) override | Si443x | virtual |
+ getChipVersion() | Si443x | |
+ getFreqStep() const | PhysicalLayer | |
+ getPacketLength(bool update=true) override | Si443x | virtual |
+ packetMode() | Si443x | |
+ PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
+ random() | Si443x | virtual |
+ PhysicalLayer::random(int32_t max) | PhysicalLayer | |
+ PhysicalLayer::random(int32_t min, int32_t max) | PhysicalLayer | |
+ readData(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::readData(String &str, size_t len=0) | PhysicalLayer | |
+ receive(uint8_t *data, size_t len) override | Si443x | virtual |
+ PhysicalLayer::receive(String &str, size_t len=0) | PhysicalLayer | |
+ receiveDirect() override | Si443x | virtual |
+ reset() | Si443x | |
+ setBitRate(float br) | Si443x | |
+ setDataShaping(uint8_t sh) override | Si443x | virtual |
+ setEncoding(uint8_t encoding) override | Si443x | virtual |
+ setFrequencyDeviation(float freqDev) override | Si443x | virtual |
+ setIrqAction(void(*func)(void)) | Si443x | |
+ setPreambleLength(uint8_t preambleLen) | Si443x | |
+ setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn) | Si443x | |
+ setRxBandwidth(float rxBw) | Si443x | |
+ setSyncWord(uint8_t *syncWord, size_t len) | Si443x | |
+ Si443x(Module *mod) | Si443x | |
+ sleep() | Si443x | |
+ standby() override | Si443x | virtual |
+ startReceive() | Si443x | |
+ startTransmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::startTransmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::startTransmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmit(uint8_t *data, size_t len, uint8_t addr=0) override | Si443x | virtual |
+ PhysicalLayer::transmit(__FlashStringHelper *fstr, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(String &str, uint8_t addr=0) | PhysicalLayer | |
+ PhysicalLayer::transmit(const char *str, uint8_t addr=0) | PhysicalLayer | |
+ transmitDirect(uint32_t frf=0) override | Si443x | virtual |
diff --git a/class_si443x.html b/class_si443x.html
index 88d64ea5..75eb9d8a 100644
--- a/class_si443x.html
+++ b/class_si443x.html
@@ -184,6 +184,9 @@ void | uint8_t | random () |
| Get one truly random byte from RSSI noise. More...
|
|
+int16_t | getChipVersion () |
+ | Read version SPI register. Should return SI443X_DEVICE_VERSION (0x06) if Si443x is connected and working. More...
|
+ |
| PhysicalLayer (float freqStep, size_t maxPacketLength) |
| Default constructor. More...
|
@@ -299,6 +302,26 @@ void ReturnsStatus Codes
+
+
+
+◆ getChipVersion()
+
+
+
+
+
+ int16_t Si443x::getChipVersion |
+ ( |
+ | ) |
+ |
+
+
+
+
+ Read version SPI register. Should return SI443X_DEVICE_VERSION (0x06) if Si443x is connected and working.
+ - Returns
- Version register contents or Status Codes
+
diff --git a/class_si443x.js b/class_si443x.js
index f7d02865..5df032b2 100644
--- a/class_si443x.js
+++ b/class_si443x.js
@@ -3,6 +3,7 @@ var class_si443x =
[ "Si443x", "class_si443x.html#ae7cfff2efebfa01c8a50a5cbbe8775b9", null ],
[ "begin", "class_si443x.html#a453eda5436dc4dfe0dad676dc3977752", null ],
[ "clearIrqAction", "class_si443x.html#a8d019f58551346c3f3bd8b72d2486109", null ],
+ [ "getChipVersion", "class_si443x.html#a55252bda74e8c67636a8c1fa0e9f58d3", null ],
[ "getPacketLength", "class_si443x.html#a2d944669dc69ccd47f9e6c360f2ffd10", null ],
[ "packetMode", "class_si443x.html#a616eb24c4b11c5d39caaade160be8092", null ],
[ "random", "class_si443x.html#ad371b44fc0c4ddd3ed39e2595e85b5df", null ],
diff --git a/functions_func_g.html b/functions_func_g.html
index 97a33617..db353ca6 100644
--- a/functions_func_g.html
+++ b/functions_func_g.html
@@ -86,6 +86,12 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
get()
: HTTPClient
+getChipVersion()
+: CC1101
+, RF69
+, Si443x
+, SX127x
+
getCs()
: Module
diff --git a/functions_g.html b/functions_g.html
index 8eb15dd5..f2bf15dc 100644
--- a/functions_g.html
+++ b/functions_g.html
@@ -86,6 +86,12 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
get()
: HTTPClient
+getChipVersion()
+: CC1101
+, RF69
+, Si443x
+, SX127x
+
getCs()
: Module
diff --git a/navtreedata.js b/navtreedata.js
index 6a1328fb..f115f606 100644
--- a/navtreedata.js
+++ b/navtreedata.js
@@ -23,9 +23,9 @@ var NAVTREE =
var NAVTREEINDEX =
[
"_a_f_s_k_8h_source.html",
-"class_module.html#ad7ca9ae5a22cdacdf9437ca9cd37c9b4",
-"class_s_x1272.html#ae1c57ad5e8496dc28cd3ba9852809852",
-"dir_c14921ab4918e015c91d11c846a1924a.html"
+"class_module.html#ad5767216ba9340ae6d86915b12e89bd6",
+"class_s_x1272.html#aaa5a787164fb216c12b8dea4d810f7f3",
+"dir_7b8feacc70eb38d5fd56f060c649a59c.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex0.js b/navtreeindex0.js
index 0c120f74..e7a61756 100644
--- a/navtreeindex0.js
+++ b/navtreeindex0.js
@@ -86,45 +86,46 @@ var NAVTREEINDEX0 =
"class_a_x25_frame.html#adce5294af25f09df752997d33ac0e87f":[3,0,2,16],
"class_a_x25_frame.html#af62935e56dc24bca5d2e2aeb932b63f8":[3,0,2,11],
"class_c_c1101.html":[3,0,3],
-"class_c_c1101.html#a0d69713b9f20c9de354c13c3167b18b3":[3,0,3,21],
-"class_c_c1101.html#a0df2938e2509a8f2746b20ae0558d4ea":[3,0,3,35],
-"class_c_c1101.html#a122281f6a915b77ee9dafc9926e731a0":[3,0,3,9],
-"class_c_c1101.html#a240eef8fa7d838d76f3c11086dc50e46":[3,0,3,37],
-"class_c_c1101.html#a2911d49d1c293542f7a374c9af60df0e":[3,0,3,28],
-"class_c_c1101.html#a381d0059d7a0ccd8a2f54d7d3376f9b6":[3,0,3,30],
-"class_c_c1101.html#a38f6978c757b0dd73e3ef98164a735a2":[3,0,3,11],
-"class_c_c1101.html#a433f1a40b33be6c84d3665a1b4cd57d6":[3,0,3,31],
-"class_c_c1101.html#a45ab4e3f4f9db367185333d36ba21ed2":[3,0,3,29],
-"class_c_c1101.html#a48fd0452d6f7d7d51ea7d23b2dbe1551":[3,0,3,10],
+"class_c_c1101.html#a0d69713b9f20c9de354c13c3167b18b3":[3,0,3,22],
+"class_c_c1101.html#a0df2938e2509a8f2746b20ae0558d4ea":[3,0,3,36],
+"class_c_c1101.html#a122281f6a915b77ee9dafc9926e731a0":[3,0,3,10],
+"class_c_c1101.html#a240eef8fa7d838d76f3c11086dc50e46":[3,0,3,38],
+"class_c_c1101.html#a2911d49d1c293542f7a374c9af60df0e":[3,0,3,29],
+"class_c_c1101.html#a2a4c6e622dffd2788d8ac52d708b0705":[3,0,3,8],
+"class_c_c1101.html#a381d0059d7a0ccd8a2f54d7d3376f9b6":[3,0,3,31],
+"class_c_c1101.html#a38f6978c757b0dd73e3ef98164a735a2":[3,0,3,12],
+"class_c_c1101.html#a433f1a40b33be6c84d3665a1b4cd57d6":[3,0,3,32],
+"class_c_c1101.html#a45ab4e3f4f9db367185333d36ba21ed2":[3,0,3,30],
+"class_c_c1101.html#a48fd0452d6f7d7d51ea7d23b2dbe1551":[3,0,3,11],
"class_c_c1101.html#a4f2dc4176b62a0636636088e31b8e85b":[3,0,3,5],
-"class_c_c1101.html#a59ca9e8956e308159949638bf327e5fb":[3,0,3,8],
+"class_c_c1101.html#a59ca9e8956e308159949638bf327e5fb":[3,0,3,9],
"class_c_c1101.html#a6807e4254c4b55fa8d393b2bf8f2db3e":[3,0,3,0],
-"class_c_c1101.html#a6dfd6a57cdbb3196ad021b152b0c65ed":[3,0,3,22],
-"class_c_c1101.html#a6e62914790f132816134fc68c2bb5eb8":[3,0,3,24],
+"class_c_c1101.html#a6dfd6a57cdbb3196ad021b152b0c65ed":[3,0,3,23],
+"class_c_c1101.html#a6e62914790f132816134fc68c2bb5eb8":[3,0,3,25],
"class_c_c1101.html#a6fe55d0217bf5218865198ef8d6fdab4":[3,0,3,6],
-"class_c_c1101.html#a7612bf81e48086004c62548de2682266":[3,0,3,33],
-"class_c_c1101.html#a7cb99a9200b21829b50e3fc3878573f4":[3,0,3,36],
-"class_c_c1101.html#a881122ec3457c5f95760859f8e0297c7":[3,0,3,38],
-"class_c_c1101.html#a8c79975a7bbe8a37f8214ecd1f69ba22":[3,0,3,13],
+"class_c_c1101.html#a7612bf81e48086004c62548de2682266":[3,0,3,34],
+"class_c_c1101.html#a7cb99a9200b21829b50e3fc3878573f4":[3,0,3,37],
+"class_c_c1101.html#a881122ec3457c5f95760859f8e0297c7":[3,0,3,39],
+"class_c_c1101.html#a8c79975a7bbe8a37f8214ecd1f69ba22":[3,0,3,14],
"class_c_c1101.html#a9335f1d5ccab7aab2357449002203810":[3,0,3,7],
-"class_c_c1101.html#a9592c023556c38c2b8066a23da96ae5e":[3,0,3,20],
+"class_c_c1101.html#a9592c023556c38c2b8066a23da96ae5e":[3,0,3,21],
"class_c_c1101.html#a9aee5df428d30b9c80b8a8700609a883":[3,0,3,4],
-"class_c_c1101.html#aa53427cabcda0778f287ed1d850bbe37":[3,0,3,16],
-"class_c_c1101.html#aafac40359c4a1bb01aae12da6b03be26":[3,0,3,17],
-"class_c_c1101.html#ab053c185330519d58f364790108d29ac":[3,0,3,15],
-"class_c_c1101.html#ab4b98eb6af33d006306bb7514ed216ea":[3,0,3,19],
+"class_c_c1101.html#aa53427cabcda0778f287ed1d850bbe37":[3,0,3,17],
+"class_c_c1101.html#aafac40359c4a1bb01aae12da6b03be26":[3,0,3,18],
+"class_c_c1101.html#ab053c185330519d58f364790108d29ac":[3,0,3,16],
+"class_c_c1101.html#ab4b98eb6af33d006306bb7514ed216ea":[3,0,3,20],
"class_c_c1101.html#ab5e6b3745f80cf61e1ced33303311df8":[3,0,3,2],
-"class_c_c1101.html#ab89b0932dbacadc34d049a2bd2292001":[3,0,3,32],
-"class_c_c1101.html#ac3ff8051af5ca50c349e02257f1a3bda":[3,0,3,26],
-"class_c_c1101.html#ac6338c2f5c937a12dac06069944ffb77":[3,0,3,23],
+"class_c_c1101.html#ab89b0932dbacadc34d049a2bd2292001":[3,0,3,33],
+"class_c_c1101.html#ac3ff8051af5ca50c349e02257f1a3bda":[3,0,3,27],
+"class_c_c1101.html#ac6338c2f5c937a12dac06069944ffb77":[3,0,3,24],
"class_c_c1101.html#ac7a8b1fe7d08dc6db20cf1569b0d37b4":[3,0,3,3],
-"class_c_c1101.html#acbfa80f431f335d5597500319f0affa8":[3,0,3,27],
+"class_c_c1101.html#acbfa80f431f335d5597500319f0affa8":[3,0,3,28],
"class_c_c1101.html#adcf6b5c4e1a066d6b9be326a9ee04284":[3,0,3,1],
-"class_c_c1101.html#adf96e77f25b7e256891601bef04f35a6":[3,0,3,18],
-"class_c_c1101.html#aedc1067d0334bb69ed5316146014097d":[3,0,3,14],
-"class_c_c1101.html#aeea507b71f1a3dfab5be4c3a1606b8fd":[3,0,3,12],
-"class_c_c1101.html#af727750d05be0bcef4bb8ac260d110e3":[3,0,3,34],
-"class_c_c1101.html#afa64d1ad4789d3146b38d14437234756":[3,0,3,25],
+"class_c_c1101.html#adf96e77f25b7e256891601bef04f35a6":[3,0,3,19],
+"class_c_c1101.html#aedc1067d0334bb69ed5316146014097d":[3,0,3,15],
+"class_c_c1101.html#aeea507b71f1a3dfab5be4c3a1606b8fd":[3,0,3,13],
+"class_c_c1101.html#af727750d05be0bcef4bb8ac260d110e3":[3,0,3,35],
+"class_c_c1101.html#afa64d1ad4789d3146b38d14437234756":[3,0,3,26],
"class_e_s_p8266.html":[3,0,4],
"class_e_s_p8266.html#a1caaa537edd52d1c2b7a0a25ef69c1c9":[3,0,4,8],
"class_e_s_p8266.html#a2f34474953b7dbe4d057c8e3f65e0dc4":[3,0,4,9],
@@ -248,6 +249,5 @@ var NAVTREEINDEX0 =
"class_module.html#a9d8ab2ff353bad5d0e7568d300a48ba0":[3,0,11,31],
"class_module.html#ab814614ddd34b57f5a612a20f5fe4c57":[3,0,11,28],
"class_module.html#ac65f3d9e022b3284134ced1c20bcff09":[3,0,11,3],
-"class_module.html#ad1aadc2b52eea2bf9d26591091eec3f1":[3,0,11,8],
-"class_module.html#ad5767216ba9340ae6d86915b12e89bd6":[3,0,11,7]
+"class_module.html#ad1aadc2b52eea2bf9d26591091eec3f1":[3,0,11,8]
};
diff --git a/navtreeindex1.js b/navtreeindex1.js
index ed4fac78..907501fa 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX1 =
{
+"class_module.html#ad5767216ba9340ae6d86915b12e89bd6":[3,0,11,7],
"class_module.html#ad7ca9ae5a22cdacdf9437ca9cd37c9b4":[3,0,11,23],
"class_module.html#adb22d89bc5f532f1d056d9a9f3a6589c":[3,0,11,19],
"class_module.html#ae352c7a7b997fc1b17189c1312a8347f":[3,0,11,14],
@@ -65,49 +66,50 @@ var NAVTREEINDEX1 =
"class_physical_layer.html#af81565ee82ef9a7de9c5663c745f4ef7":[3,0,15,21],
"class_physical_layer.html#afb1b090348d9091bfa3a0b5ba3d85b36":[3,0,15,8],
"class_r_f69.html":[3,0,16],
-"class_r_f69.html#a0526ce6ea3722fd258f96d9677a60853":[3,0,16,12],
-"class_r_f69.html#a09ba80f60ee7974011a4b4f6c18c6847":[3,0,16,41],
+"class_r_f69.html#a0526ce6ea3722fd258f96d9677a60853":[3,0,16,13],
+"class_r_f69.html#a09ba80f60ee7974011a4b4f6c18c6847":[3,0,16,42],
+"class_r_f69.html#a0c30202b2d52eb32f43066bc0f938638":[3,0,16,10],
"class_r_f69.html#a15fafb6c24a8b5721623be447628bbaa":[3,0,16,5],
-"class_r_f69.html#a1b7598b87ffaabdbe733c47317fa91d8":[3,0,16,22],
+"class_r_f69.html#a1b7598b87ffaabdbe733c47317fa91d8":[3,0,16,23],
"class_r_f69.html#a1fd4609f419d8b0213ee39b05dd40b69":[3,0,16,7],
-"class_r_f69.html#a20242499eb926ff7b7da6e3f74a9ece1":[3,0,16,38],
-"class_r_f69.html#a222682569338abb49d6952430b6eebdd":[3,0,16,42],
-"class_r_f69.html#a26667d50ec845c28e17236c69c886561":[3,0,16,36],
-"class_r_f69.html#a3983b66c83818b4082805bcafc712f00":[3,0,16,15],
+"class_r_f69.html#a20242499eb926ff7b7da6e3f74a9ece1":[3,0,16,39],
+"class_r_f69.html#a222682569338abb49d6952430b6eebdd":[3,0,16,43],
+"class_r_f69.html#a26667d50ec845c28e17236c69c886561":[3,0,16,37],
+"class_r_f69.html#a3983b66c83818b4082805bcafc712f00":[3,0,16,16],
"class_r_f69.html#a400bb57d2353b57c29cf41a6d9497c80":[3,0,16,6],
-"class_r_f69.html#a42b99e437454e92c6932c3b7acc1fc4a":[3,0,16,24],
-"class_r_f69.html#a472a04041551cb38d2223fb34f71d8eb":[3,0,16,37],
+"class_r_f69.html#a42b99e437454e92c6932c3b7acc1fc4a":[3,0,16,25],
+"class_r_f69.html#a472a04041551cb38d2223fb34f71d8eb":[3,0,16,38],
"class_r_f69.html#a4c9dcbd7e44bc5e46d9f10ae276a0c5f":[3,0,16,9],
"class_r_f69.html#a4d0dea965aba1017a660c9478ec57560":[3,0,16,1],
-"class_r_f69.html#a54cd7be92e166659b50bd6ed4433db4c":[3,0,16,14],
+"class_r_f69.html#a54cd7be92e166659b50bd6ed4433db4c":[3,0,16,15],
"class_r_f69.html#a5996fc1751e7542baafa0d6c0a6c78ee":[3,0,16,4],
"class_r_f69.html#a643a711bcb4b7771a7ab1f457e61a417":[3,0,16,8],
-"class_r_f69.html#a6a67dd698b3cc6afcaf18c3710ad5f0f":[3,0,16,13],
-"class_r_f69.html#a6d90ad1d455de045c53c5758babd876c":[3,0,16,33],
-"class_r_f69.html#a735d8f22095a7e69471d73ca021b9d1a":[3,0,16,35],
-"class_r_f69.html#a7c84b3f881cad6e05b0f4f68c24496d9":[3,0,16,32],
-"class_r_f69.html#a855dc194947b095b821ec1524ba6814c":[3,0,16,40],
-"class_r_f69.html#a86a080086c0228d23e2cb77d2b1915c1":[3,0,16,10],
+"class_r_f69.html#a6a67dd698b3cc6afcaf18c3710ad5f0f":[3,0,16,14],
+"class_r_f69.html#a6d90ad1d455de045c53c5758babd876c":[3,0,16,34],
+"class_r_f69.html#a735d8f22095a7e69471d73ca021b9d1a":[3,0,16,36],
+"class_r_f69.html#a7c84b3f881cad6e05b0f4f68c24496d9":[3,0,16,33],
+"class_r_f69.html#a855dc194947b095b821ec1524ba6814c":[3,0,16,41],
+"class_r_f69.html#a86a080086c0228d23e2cb77d2b1915c1":[3,0,16,11],
"class_r_f69.html#a9721d2a3ed9fa8dd878575d71d5a4942":[3,0,16,2],
-"class_r_f69.html#a998ddd21fc152d835c6f1b8d31b02fcc":[3,0,16,31],
-"class_r_f69.html#a9e50a1183d13ff9984f8438a7e9e4a77":[3,0,16,25],
-"class_r_f69.html#aa72ad2ac5238bd87886684064b7494cf":[3,0,16,26],
-"class_r_f69.html#aada7c48828b950cdfd260594d502b03d":[3,0,16,34],
-"class_r_f69.html#aae828ce8dda16da4e54d2f18b1fb8af2":[3,0,16,27],
-"class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b":[3,0,16,28],
-"class_r_f69.html#ab9c217d5ece259950780a05c6e41f75c":[3,0,16,30],
-"class_r_f69.html#abd556b0f455f9510213b17588a4baf1b":[3,0,16,17],
-"class_r_f69.html#abe5b378d7cc274fd8b75881e7d604bf3":[3,0,16,19],
-"class_r_f69.html#ac205bc487833dc4eae4bb0069c0c4d1e":[3,0,16,23],
-"class_r_f69.html#ac37d9ddee2adcc8876a182b8ebc3e703":[3,0,16,20],
-"class_r_f69.html#ac4fc3f2b178ef08caec3a9f548f44cd7":[3,0,16,11],
-"class_r_f69.html#ad7f8132912a5dbf38c5cf676ac167d13":[3,0,16,21],
-"class_r_f69.html#adb9fbfedf95f34ac537815870b98a9be":[3,0,16,29],
+"class_r_f69.html#a998ddd21fc152d835c6f1b8d31b02fcc":[3,0,16,32],
+"class_r_f69.html#a9e50a1183d13ff9984f8438a7e9e4a77":[3,0,16,26],
+"class_r_f69.html#aa72ad2ac5238bd87886684064b7494cf":[3,0,16,27],
+"class_r_f69.html#aada7c48828b950cdfd260594d502b03d":[3,0,16,35],
+"class_r_f69.html#aae828ce8dda16da4e54d2f18b1fb8af2":[3,0,16,28],
+"class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b":[3,0,16,29],
+"class_r_f69.html#ab9c217d5ece259950780a05c6e41f75c":[3,0,16,31],
+"class_r_f69.html#abd556b0f455f9510213b17588a4baf1b":[3,0,16,18],
+"class_r_f69.html#abe5b378d7cc274fd8b75881e7d604bf3":[3,0,16,20],
+"class_r_f69.html#ac205bc487833dc4eae4bb0069c0c4d1e":[3,0,16,24],
+"class_r_f69.html#ac37d9ddee2adcc8876a182b8ebc3e703":[3,0,16,21],
+"class_r_f69.html#ac4fc3f2b178ef08caec3a9f548f44cd7":[3,0,16,12],
+"class_r_f69.html#ad7f8132912a5dbf38c5cf676ac167d13":[3,0,16,22],
+"class_r_f69.html#adb9fbfedf95f34ac537815870b98a9be":[3,0,16,30],
"class_r_f69.html#ade1f9a7a603d712c480ed5e9a8d1bf51":[3,0,16,3],
-"class_r_f69.html#ae36e8e6042245621a182b29526fe2245":[3,0,16,16],
-"class_r_f69.html#af62ebde1ea34a394b9781a21ae348c39":[3,0,16,43],
-"class_r_f69.html#af953ee17aca5392f1e62ea4fe690550a":[3,0,16,18],
-"class_r_f69.html#afae38fa64242043de34096bf497725f1":[3,0,16,39],
+"class_r_f69.html#ae36e8e6042245621a182b29526fe2245":[3,0,16,17],
+"class_r_f69.html#af62ebde1ea34a394b9781a21ae348c39":[3,0,16,44],
+"class_r_f69.html#af953ee17aca5392f1e62ea4fe690550a":[3,0,16,19],
+"class_r_f69.html#afae38fa64242043de34096bf497725f1":[3,0,16,40],
"class_r_f69.html#afbc84d4f91502bcbe12ddda2fde51448":[3,0,16,0],
"class_r_f_m22.html":[3,0,17],
"class_r_f_m23.html":[3,0,18],
@@ -247,7 +249,5 @@ var NAVTREEINDEX1 =
"class_s_x1272.html#a82084ac58502c83d2ada998410307490":[3,0,35,15],
"class_s_x1272.html#a91aca64124321c07a67f26b3c6934aea":[3,0,35,10],
"class_s_x1272.html#a960913438feccad4c1913a9222384a5f":[3,0,35,8],
-"class_s_x1272.html#a9ffe467a6baaeaa079e02c3f1f43f626":[3,0,35,0],
-"class_s_x1272.html#aaa5a787164fb216c12b8dea4d810f7f3":[3,0,35,2],
-"class_s_x1272.html#abb4bbfe8acc6026c833d267d78417b63":[3,0,35,1]
+"class_s_x1272.html#a9ffe467a6baaeaa079e02c3f1f43f626":[3,0,35,0]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index 5b8283e9..b60fb3cf 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,5 +1,7 @@
var NAVTREEINDEX2 =
{
+"class_s_x1272.html#aaa5a787164fb216c12b8dea4d810f7f3":[3,0,35,2],
+"class_s_x1272.html#abb4bbfe8acc6026c833d267d78417b63":[3,0,35,1],
"class_s_x1272.html#ae1c57ad5e8496dc28cd3ba9852809852":[3,0,35,13],
"class_s_x1272.html#ae3596f303714509f552d98321bdfce5c":[3,0,35,14],
"class_s_x1272.html#af409f50e51042cf9357c0a8267f762f8":[3,0,35,12],
@@ -42,49 +44,50 @@ var NAVTREEINDEX2 =
"class_s_x1279.html#abc606ad06ee77b6830dab4331793d22a":[3,0,40,0],
"class_s_x1279.html#acf9b2087f5b661f06e9512bad36b3817":[3,0,40,3],
"class_s_x127x.html":[3,0,41],
-"class_s_x127x.html#a0995088d37689a3c240a1af791df6cf1":[3,0,41,14],
-"class_s_x127x.html#a24ef0af19a6b8954f956a3c3ad4286ee":[3,0,41,29],
-"class_s_x127x.html#a2cc53b9f9d90647c5709cb974779cf53":[3,0,41,33],
-"class_s_x127x.html#a2cf6a5bd8f3257f98ee4f250cbdf8bdc":[3,0,41,10],
-"class_s_x127x.html#a3321ac4a7f65e73004202486db9b1d68":[3,0,41,19],
-"class_s_x127x.html#a400575e3d83977bd250c5cb382fc7002":[3,0,41,23],
-"class_s_x127x.html#a44501ec8f8ac6084467b94516b1337df":[3,0,41,36],
-"class_s_x127x.html#a448ea8a6a6011a9cdddd4e09bd6c9679":[3,0,41,27],
-"class_s_x127x.html#a462fa74275e67c296328a01f361892d5":[3,0,41,11],
+"class_s_x127x.html#a0995088d37689a3c240a1af791df6cf1":[3,0,41,15],
+"class_s_x127x.html#a24ef0af19a6b8954f956a3c3ad4286ee":[3,0,41,30],
+"class_s_x127x.html#a2cc53b9f9d90647c5709cb974779cf53":[3,0,41,34],
+"class_s_x127x.html#a2cf6a5bd8f3257f98ee4f250cbdf8bdc":[3,0,41,11],
+"class_s_x127x.html#a3321ac4a7f65e73004202486db9b1d68":[3,0,41,20],
+"class_s_x127x.html#a400575e3d83977bd250c5cb382fc7002":[3,0,41,24],
+"class_s_x127x.html#a44501ec8f8ac6084467b94516b1337df":[3,0,41,37],
+"class_s_x127x.html#a448ea8a6a6011a9cdddd4e09bd6c9679":[3,0,41,28],
+"class_s_x127x.html#a462fa74275e67c296328a01f361892d5":[3,0,41,12],
"class_s_x127x.html#a5da8218f69e3bf52df389a0480f8b430":[3,0,41,1],
-"class_s_x127x.html#a606d839b3a992c681ac9ad7ca6020022":[3,0,41,21],
-"class_s_x127x.html#a6a03da620f9fb532c879900ba05732de":[3,0,41,15],
+"class_s_x127x.html#a606d839b3a992c681ac9ad7ca6020022":[3,0,41,22],
+"class_s_x127x.html#a6a03da620f9fb532c879900ba05732de":[3,0,41,16],
"class_s_x127x.html#a729b4f3f36096b5b15bae19c7876e823":[3,0,41,3],
-"class_s_x127x.html#a760b8c5103128f122fbe489c6529ce41":[3,0,41,37],
-"class_s_x127x.html#a95bc32a555675879ad9e2a9e399dc6c1":[3,0,41,13],
+"class_s_x127x.html#a760b8c5103128f122fbe489c6529ce41":[3,0,41,38],
+"class_s_x127x.html#a95bc32a555675879ad9e2a9e399dc6c1":[3,0,41,14],
"class_s_x127x.html#a9b6532a25e1730973ac08146008adca5":[3,0,41,4],
-"class_s_x127x.html#a9b7afe338fd5b81122c369ecaf0c3ebc":[3,0,41,35],
-"class_s_x127x.html#a9c4ea3285922bf01cebd2c8a706d9a29":[3,0,41,40],
-"class_s_x127x.html#a9f753c0857e7b8b4b9f7f6e91c77f0fd":[3,0,41,42],
-"class_s_x127x.html#aa7ac558d537c6364c4bc82c8f33e398f":[3,0,41,18],
+"class_s_x127x.html#a9b7afe338fd5b81122c369ecaf0c3ebc":[3,0,41,36],
+"class_s_x127x.html#a9c4ea3285922bf01cebd2c8a706d9a29":[3,0,41,41],
+"class_s_x127x.html#a9f753c0857e7b8b4b9f7f6e91c77f0fd":[3,0,41,43],
+"class_s_x127x.html#aa7ac558d537c6364c4bc82c8f33e398f":[3,0,41,19],
"class_s_x127x.html#aaf8ce9f09d0f46a76a5e251786b6de7f":[3,0,41,6],
-"class_s_x127x.html#ab608c45e0dcc44280df29580dc0a31ed":[3,0,41,30],
-"class_s_x127x.html#ab99630d50672b43fc7162ba8f3293f95":[3,0,41,28],
-"class_s_x127x.html#abad2d455012bd28d304589c8164390eb":[3,0,41,26],
-"class_s_x127x.html#abc5069b39dc31b637ee561d5745e1deb":[3,0,41,12],
-"class_s_x127x.html#abc51ce6718153e4963128f25bb5aab40":[3,0,41,22],
-"class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745":[3,0,41,16],
-"class_s_x127x.html#ac5c7f4584352a12390594395d9c29bde":[3,0,41,34],
-"class_s_x127x.html#ac5d2ddb517e474a699b4539653b3754d":[3,0,41,9],
+"class_s_x127x.html#ab608c45e0dcc44280df29580dc0a31ed":[3,0,41,31],
+"class_s_x127x.html#ab99630d50672b43fc7162ba8f3293f95":[3,0,41,29],
+"class_s_x127x.html#abad2d455012bd28d304589c8164390eb":[3,0,41,27],
+"class_s_x127x.html#abc5069b39dc31b637ee561d5745e1deb":[3,0,41,13],
+"class_s_x127x.html#abc51ce6718153e4963128f25bb5aab40":[3,0,41,23],
+"class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745":[3,0,41,17],
+"class_s_x127x.html#ac5c7f4584352a12390594395d9c29bde":[3,0,41,35],
+"class_s_x127x.html#ac5d2ddb517e474a699b4539653b3754d":[3,0,41,10],
"class_s_x127x.html#ac74c5914ca429a3892c66b9d98e3ea6c":[3,0,41,0],
-"class_s_x127x.html#ad3955f85f456edae772a51025a19029b":[3,0,41,32],
-"class_s_x127x.html#ada007b90821258fe8c6ca7f8ae3efed5":[3,0,41,20],
-"class_s_x127x.html#ada53419d65f207f352124da7747c5960":[3,0,41,24],
-"class_s_x127x.html#adc25b685de0859b799488bf7729350b6":[3,0,41,7],
-"class_s_x127x.html#adc2f1379573b7a7b5ee8125ea3752083":[3,0,41,39],
+"class_s_x127x.html#ad3955f85f456edae772a51025a19029b":[3,0,41,33],
+"class_s_x127x.html#ada007b90821258fe8c6ca7f8ae3efed5":[3,0,41,21],
+"class_s_x127x.html#ada53419d65f207f352124da7747c5960":[3,0,41,25],
+"class_s_x127x.html#adc25b685de0859b799488bf7729350b6":[3,0,41,8],
+"class_s_x127x.html#adc2f1379573b7a7b5ee8125ea3752083":[3,0,41,40],
"class_s_x127x.html#add78edb65673d9e88931a55b0672a9f3":[3,0,41,2],
-"class_s_x127x.html#adfe0d3f033a23ec2f3c2a407285d357c":[3,0,41,17],
-"class_s_x127x.html#ae9781180418c1ec9c365b74acbc98d8a":[3,0,41,31],
-"class_s_x127x.html#aefeeb9f7192e11a75b5dfb1ab8488e84":[3,0,41,41],
-"class_s_x127x.html#af6aa854a2668d70f4d3a374a49440362":[3,0,41,8],
-"class_s_x127x.html#afc844f7f3530f4076c8ea5f684c1b123":[3,0,41,25],
+"class_s_x127x.html#adfe0d3f033a23ec2f3c2a407285d357c":[3,0,41,18],
+"class_s_x127x.html#ae9781180418c1ec9c365b74acbc98d8a":[3,0,41,32],
+"class_s_x127x.html#aee5324d7d854e7a2f6768221d4f362cd":[3,0,41,7],
+"class_s_x127x.html#aefeeb9f7192e11a75b5dfb1ab8488e84":[3,0,41,42],
+"class_s_x127x.html#af6aa854a2668d70f4d3a374a49440362":[3,0,41,9],
+"class_s_x127x.html#afc844f7f3530f4076c8ea5f684c1b123":[3,0,41,26],
"class_s_x127x.html#afe6e9bbfd75f9cad26f9f72c34c4ada5":[3,0,41,5],
-"class_s_x127x.html#afe8456d0f9abbce4d743f256f3e1e6c6":[3,0,41,38],
+"class_s_x127x.html#afe8456d0f9abbce4d743f256f3e1e6c6":[3,0,41,39],
"class_s_x1280.html":[3,0,42],
"class_s_x1280.html#a0356199b89860e15cda4979cd9dc13eb":[3,0,42,0],
"class_s_x1280.html#a812e289084b2f78977b254c28f0fff7c":[3,0,42,2],
@@ -151,30 +154,31 @@ var NAVTREEINDEX2 =
"class_si4432.html#aa0cdb6cb53bb0176803d5115356a8e84":[3,0,26,2],
"class_si4432.html#afb1f1ae46d04788aa42f6276efd231ac":[3,0,26,0],
"class_si443x.html":[3,0,27],
-"class_si443x.html#a10f886fc534a85bbf8c1aeb9b5ffe4f2":[3,0,27,21],
-"class_si443x.html#a1382fc3b68f447e381613e6670747128":[3,0,27,12],
-"class_si443x.html#a178b471527813a608c04db7d3c9648d6":[3,0,27,8],
-"class_si443x.html#a2d944669dc69ccd47f9e6c360f2ffd10":[3,0,27,3],
-"class_si443x.html#a402b4f5f11ba79e9cd4fb6ac0bfd9314":[3,0,27,22],
+"class_si443x.html#a10f886fc534a85bbf8c1aeb9b5ffe4f2":[3,0,27,22],
+"class_si443x.html#a1382fc3b68f447e381613e6670747128":[3,0,27,13],
+"class_si443x.html#a178b471527813a608c04db7d3c9648d6":[3,0,27,9],
+"class_si443x.html#a2d944669dc69ccd47f9e6c360f2ffd10":[3,0,27,4],
+"class_si443x.html#a402b4f5f11ba79e9cd4fb6ac0bfd9314":[3,0,27,23],
"class_si443x.html#a453eda5436dc4dfe0dad676dc3977752":[3,0,27,1],
-"class_si443x.html#a4821a6141caf16141074615c976ecd91":[3,0,27,15],
-"class_si443x.html#a4ed0da298c2418db4a88a19ef8938e0a":[3,0,27,18],
-"class_si443x.html#a51e6b7c677e82042224798114f311175":[3,0,27,17],
-"class_si443x.html#a5a86a2032c4b876c1c8e4a7cf4730c99":[3,0,27,24],
-"class_si443x.html#a616eb24c4b11c5d39caaade160be8092":[3,0,27,4],
-"class_si443x.html#a782748025e19ec6e597293afb6570bff":[3,0,27,23],
-"class_si443x.html#a7c4e6caa95e5622f6f515ba0339a1c66":[3,0,27,13],
-"class_si443x.html#a801b51059e61f93d4e01ae6ba8eb0726":[3,0,27,14],
+"class_si443x.html#a4821a6141caf16141074615c976ecd91":[3,0,27,16],
+"class_si443x.html#a4ed0da298c2418db4a88a19ef8938e0a":[3,0,27,19],
+"class_si443x.html#a51e6b7c677e82042224798114f311175":[3,0,27,18],
+"class_si443x.html#a55252bda74e8c67636a8c1fa0e9f58d3":[3,0,27,3],
+"class_si443x.html#a5a86a2032c4b876c1c8e4a7cf4730c99":[3,0,27,25],
+"class_si443x.html#a616eb24c4b11c5d39caaade160be8092":[3,0,27,5],
+"class_si443x.html#a782748025e19ec6e597293afb6570bff":[3,0,27,24],
+"class_si443x.html#a7c4e6caa95e5622f6f515ba0339a1c66":[3,0,27,14],
+"class_si443x.html#a801b51059e61f93d4e01ae6ba8eb0726":[3,0,27,15],
"class_si443x.html#a8d019f58551346c3f3bd8b72d2486109":[3,0,27,2],
-"class_si443x.html#aabca3ba8eda212938febab1df2e764b4":[3,0,27,7],
-"class_si443x.html#ac45d2776df3ff338db154ead143fb7b8":[3,0,27,20],
-"class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e":[3,0,27,6],
-"class_si443x.html#ad371b44fc0c4ddd3ed39e2595e85b5df":[3,0,27,5],
-"class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170":[3,0,27,10],
-"class_si443x.html#ada90718aeb67d7f0e9899da534de9695":[3,0,27,19],
-"class_si443x.html#ade08c79074c7e4414d34eefa25cee168":[3,0,27,11],
-"class_si443x.html#ae365087803b88b29932b5c793edff1d4":[3,0,27,16],
-"class_si443x.html#ae782ee06e2c463c24f22f5d4c3dd8d97":[3,0,27,9],
+"class_si443x.html#aabca3ba8eda212938febab1df2e764b4":[3,0,27,8],
+"class_si443x.html#ac45d2776df3ff338db154ead143fb7b8":[3,0,27,21],
+"class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e":[3,0,27,7],
+"class_si443x.html#ad371b44fc0c4ddd3ed39e2595e85b5df":[3,0,27,6],
+"class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170":[3,0,27,11],
+"class_si443x.html#ada90718aeb67d7f0e9899da534de9695":[3,0,27,20],
+"class_si443x.html#ade08c79074c7e4414d34eefa25cee168":[3,0,27,12],
+"class_si443x.html#ae365087803b88b29932b5c793edff1d4":[3,0,27,17],
+"class_si443x.html#ae782ee06e2c463c24f22f5d4c3dd8d97":[3,0,27,10],
"class_si443x.html#ae7cfff2efebfa01c8a50a5cbbe8775b9":[3,0,27,0],
"class_transport_layer.html":[3,0,47],
"class_transport_layer.html#a1d9cb76640868aa0338b52808e4f022d":[3,0,47,4],
@@ -245,9 +249,5 @@ var NAVTREEINDEX2 =
"dir_6baa7f88a31cf8c1ad1b651eaa1fd5b9.html":[4,0,0,0,7],
"dir_70c194bd40717a4946dbd8bc35f09b17.html":[4,0,0,1,0],
"dir_747c20e84f9dfe1cc835713177129efc.html":[4,0,0,0,10],
-"dir_79690749eba542503bb1a9a3dbb495e1.html":[4,0,0,1],
-"dir_7b8feacc70eb38d5fd56f060c649a59c.html":[4,0,0,0,13],
-"dir_8d5439df06ea2679013aa8390703d116.html":[4,0,0,0,4],
-"dir_a6b6d785787649e9a3efd5036a39108c.html":[4,0,0,1,5],
-"dir_a758e8e29d8436beff5e1f16d5ed2d65.html":[4,0,0,0,9]
+"dir_79690749eba542503bb1a9a3dbb495e1.html":[4,0,0,1]
};
diff --git a/navtreeindex3.js b/navtreeindex3.js
index 23d20420..ed482682 100644
--- a/navtreeindex3.js
+++ b/navtreeindex3.js
@@ -1,5 +1,9 @@
var NAVTREEINDEX3 =
{
+"dir_7b8feacc70eb38d5fd56f060c649a59c.html":[4,0,0,0,13],
+"dir_8d5439df06ea2679013aa8390703d116.html":[4,0,0,0,4],
+"dir_a6b6d785787649e9a3efd5036a39108c.html":[4,0,0,1,5],
+"dir_a758e8e29d8436beff5e1f16d5ed2d65.html":[4,0,0,0,9],
"dir_c14921ab4918e015c91d11c846a1924a.html":[4,0,0,1,2],
"dir_d916eb25599dc82f14db514c97a6ae6d.html":[4,0,0,1,4],
"dir_ddb4d7e95cc2d6c8e1ade10a20d7247d.html":[4,0,0,0],
@@ -9,8 +13,8 @@ var NAVTREEINDEX3 =
"dir_ed12d23d857ca7061030f8751e72e77c.html":[4,0,0,0,12],
"dir_f980efad9544c0545d0fa50a84ff12f2.html":[4,0,0,0,11],
"files.html":[4,0],
-"functions.html":[3,3,0],
"functions.html":[3,3,0,0],
+"functions.html":[3,3,0],
"functions_0x7e.html":[3,3,0,23],
"functions_b.html":[3,3,0,1],
"functions_c.html":[3,3,0,2],
@@ -158,8 +162,8 @@ var NAVTREEINDEX3 =
"group__uart__config.html#gad418f0922126e27279d1a374fc63e036":[2,1,8],
"group__uart__config.html#gae077d53c5c120a989b1f285f183f1b78":[2,1,3],
"hierarchy.html":[3,2],
-"index.html":[0],
"index.html":[],
+"index.html":[0],
"modules.html":[2],
"n_r_f24_8h_source.html":[4,0,0,0,4,0],
"pages.html":[],
diff --git a/search/all_6.js b/search/all_6.js
index 7ee3df16..bb4f0160 100644
--- a/search/all_6.js
+++ b/search/all_6.js
@@ -1,6 +1,7 @@
var searchData=
[
['get',['get',['../class_h_t_t_p_client.html#abc505d06d29fdc774d27c163e0be7ff8',1,'HTTPClient::get(String &url, String &response)'],['../class_h_t_t_p_client.html#a7ae493bf7db12ca2201cd6cead54c64f',1,'HTTPClient::get(const char *url, String &response)']]],
+ ['getchipversion',['getChipVersion',['../class_c_c1101.html#a2a4c6e622dffd2788d8ac52d708b0705',1,'CC1101::getChipVersion()'],['../class_r_f69.html#a0c30202b2d52eb32f43066bc0f938638',1,'RF69::getChipVersion()'],['../class_si443x.html#a55252bda74e8c67636a8c1fa0e9f58d3',1,'Si443x::getChipVersion()'],['../class_s_x127x.html#aee5324d7d854e7a2f6768221d4f362cd',1,'SX127x::getChipVersion()']]],
['getcs',['getCs',['../class_module.html#ae53e355a77f2b7ce6473c62ac5f37334',1,'Module']]],
['getcurrentlimit',['getCurrentLimit',['../class_s_x126x.html#aa668babb0bd129b2facee9fd280525ab',1,'SX126x']]],
['getdatarate',['getDataRate',['../class_s_x126x.html#acbe2d75b1e2df8bcc58c4fd9d8e6e4f9',1,'SX126x::getDataRate()'],['../class_s_x127x.html#adc25b685de0859b799488bf7729350b6',1,'SX127x::getDataRate()']]],
diff --git a/search/functions_6.js b/search/functions_6.js
index 7ee3df16..bb4f0160 100644
--- a/search/functions_6.js
+++ b/search/functions_6.js
@@ -1,6 +1,7 @@
var searchData=
[
['get',['get',['../class_h_t_t_p_client.html#abc505d06d29fdc774d27c163e0be7ff8',1,'HTTPClient::get(String &url, String &response)'],['../class_h_t_t_p_client.html#a7ae493bf7db12ca2201cd6cead54c64f',1,'HTTPClient::get(const char *url, String &response)']]],
+ ['getchipversion',['getChipVersion',['../class_c_c1101.html#a2a4c6e622dffd2788d8ac52d708b0705',1,'CC1101::getChipVersion()'],['../class_r_f69.html#a0c30202b2d52eb32f43066bc0f938638',1,'RF69::getChipVersion()'],['../class_si443x.html#a55252bda74e8c67636a8c1fa0e9f58d3',1,'Si443x::getChipVersion()'],['../class_s_x127x.html#aee5324d7d854e7a2f6768221d4f362cd',1,'SX127x::getChipVersion()']]],
['getcs',['getCs',['../class_module.html#ae53e355a77f2b7ce6473c62ac5f37334',1,'Module']]],
['getcurrentlimit',['getCurrentLimit',['../class_s_x126x.html#aa668babb0bd129b2facee9fd280525ab',1,'SX126x']]],
['getdatarate',['getDataRate',['../class_s_x126x.html#acbe2d75b1e2df8bcc58c4fd9d8e6e4f9',1,'SX126x::getDataRate()'],['../class_s_x127x.html#adc25b685de0859b799488bf7729350b6',1,'SX127x::getDataRate()']]],
|