1 #if !defined(_RADIOLIB_AX5243_H) && !defined(RADIOLIB_EXCLUDE_AX5243) 2 #define _RADIOLIB_AX5243_H 4 #include "../../TypeDef.h" 5 #include "../../Module.h" 7 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 10 #define AX5243_FREQUENCY_STEP_SIZE (0.98) 11 #define AX5243_MAX_PACKET_LENGTH (256) 14 #define AX5243_REG_REVISION (0x0000) 15 #define AX5243_REG_SCRATCH (0x0001) 16 #define AX5243_REG_PWR_MODE (0x0002) 17 #define AX5243_REG_POW_STAT (0x0003) 18 #define AX5243_REG_POW_STICKY_STAT (0x0004) 19 #define AX5243_REG_POW_IRQ_MASK (0x0005) 20 #define AX5243_REG_IRQ_MASK_1 (0x0006) 21 #define AX5243_REG_IRQ_MASK_0 (0x0007) 22 #define AX5243_REG_RADIO_EVENTS_MASK_1 (0x0008) 23 #define AX5243_REG_RADIO_EVENTS_MASK_0 (0x0009) 24 #define AX5243_REG_IRQ_INVERSION_1 (0x000A) 25 #define AX5243_REG_IRQ_INVERSION_0 (0x000B) 26 #define AX5243_REG_IRQ_REQUEST_1 (0x000C) 27 #define AX5243_REG_IRQ_REQUEST_0 (0x000D) 28 #define AX5243_REG_RADIO_EVENT_REQ_1 (0x000E) 29 #define AX5243_REG_RADIO_EVENT_REQ_0 (0x000F) 30 #define AX5243_REG_MODULATION (0x0010) 31 #define AX5243_REG_ENCODING (0x0011) 32 #define AX5243_REG_FRAMING (0x0012) 33 #define AX5243_REG_CRC_INIT_3 (0x0014) 34 #define AX5243_REG_CRC_INIT_2 (0x0015) 35 #define AX5243_REG_CRC_INIT_1 (0x0016) 36 #define AX5243_REG_CRC_INIT_0 (0x0017) 37 #define AX5243_REG_FEC (0x0018) 38 #define AX5243_REG_FEC_SYNC (0x0019) 39 #define AX5243_REG_FEC_STATUS (0x001A) 40 #define AX5243_REG_RADIO_STATE (0x001C) 41 #define AX5243_REG_XTAL_STATUS (0x001D) 42 #define AX5243_REG_PIN_STATE (0x0020) 43 #define AX5243_REG_PIN_FUNC_SYSCLK (0x0021) 44 #define AX5243_REG_PIN_FUNC_DCLK (0x0022) 45 #define AX5243_REG_PIN_FUNC_DATA (0x0023) 46 #define AX5243_REG_PIN_FUNC_IRQ (0x0024) 47 #define AX5243_REG_PIN_FUNC_ANTSEL (0x0025) 48 #define AX5243_REG_PIN_FUNC_PWRAMP (0x0026) 49 #define AX5243_REG_PWRAMP (0x0027) 50 #define AX5243_REG_FIFO_STAT (0x0028) 51 #define AX5243_REG_FIFO_DATA (0x0029) 52 #define AX5243_REG_FIFO_COUNT_1 (0x002A) 53 #define AX5243_REG_FIFO_COUNT_0 (0x002B) 54 #define AX5243_REG_FIFO_FREE_1 (0x002C) 55 #define AX5243_REG_FIFO_FREE_0 (0x002D) 56 #define AX5243_REG_FIFO_THRESH_1 (0x002E) 57 #define AX5243_REG_FIFO_THRESH_0 (0x002F) 58 #define AX5243_REG_PLL_LOOP (0x0030) 59 #define AX5243_REG_PLL_CPI (0x0031) 60 #define AX5243_REG_PLL_VCO_DIV (0x0032) 61 #define AX5243_REG_PLL_RANGING_A (0x0033) 62 #define AX5243_REG_FREQ_A_3 (0x0034) 63 #define AX5243_REG_FREQ_A_2 (0x0035) 64 #define AX5243_REG_FREQ_A_1 (0x0036) 65 #define AX5243_REG_FREQ_A_0 (0x0037) 66 #define AX5243_REG_PLL_LOOP_BOOST (0x0038) 67 #define AX5243_REG_PLL_CPI_BOOST (0x0039) 68 #define AX5243_REG_PLL_RANGING_B (0x003B) 69 #define AX5243_REG_FREQ_B_3 (0x003C) 70 #define AX5243_REG_FREQ_B_2 (0x003D) 71 #define AX5243_REG_FREQ_B_1 (0x003E) 72 #define AX5243_REG_FREQ_B_0 (0x003F) 73 #define AX5243_REG_RSSI (0x0040) 74 #define AX5243_REG_BGND_RSSI (0x0041) 75 #define AX5243_REG_DIVERSITY (0x0042) 76 #define AX5243_REG_AGC_COUNTER (0x0043) 77 #define AX5243_REG_TRK_DATARATE_2 (0x0045) 78 #define AX5243_REG_TRK_DATARATE_1 (0x0046) 79 #define AX5243_REG_TRK_DATARATE_0 (0x0047) 80 #define AX5243_REG_TRK_AMPL_1 (0x0048) 81 #define AX5243_REG_TRK_AMPL_0 (0x0049) 82 #define AX5243_REG_TRK_PHASE_1 (0x004A) 83 #define AX5243_REG_TRK_PHASE_0 (0x004B) 84 #define AX5243_REG_TRK_RF_FREQ_2 (0x004D) 85 #define AX5243_REG_TRK_RF_FREQ_1 (0x004E) 86 #define AX5243_REG_TRK_RF_FREQ_0 (0x004F) 87 #define AX5243_REG_TRK_FREQ_2 (0x0050) 88 #define AX5243_REG_TRK_FREQ_1 (0x0051) 89 #define AX5243_REG_TRK_FSK_DEMOD_1 (0x0052) 90 #define AX5243_REG_TRK_FSK_DEMOD_0 (0x0053) 91 #define AX5243_REG_TIMER_2 (0x0059) 92 #define AX5243_REG_TIMER_1 (0x005A) 93 #define AX5243_REG_TIMER_0 (0x005B) 94 #define AX5243_REG_WAKEUP_TIMER_1 (0x0068) 95 #define AX5243_REG_WAKEUP_TIMER_0 (0x0069) 96 #define AX5243_REG_WAKEUP_1 (0x006A) 97 #define AX5243_REG_WAKEUP_0 (0x006B) 98 #define AX5243_REG_WAKEUP_FREQ_1 (0x006C) 99 #define AX5243_REG_WAKEUP_FREQ_0 (0x006D) 100 #define AX5243_REG_WAKEUP_XO_EARLY (0x006E) 101 #define AX5243_REG_IF_FREQ_1 (0x0100) 102 #define AX5243_REG_IF_FREQ_0 (0x0101) 103 #define AX5243_REG_DECIMATION (0x0102) 104 #define AX5243_REG_RX_DATA_RATE_2 (0x0103) 105 #define AX5243_REG_RX_DATA_RATE_1 (0x0104) 106 #define AX5243_REG_RX_DATA_RATE_0 (0x0105) 107 #define AX5243_REG_MAX_DR_OFFSET_2 (0x0106) 108 #define AX5243_REG_MAX_DR_OFFSET_1 (0x0107) 109 #define AX5243_REG_MAX_DR_OFFSET_0 (0x0108) 110 #define AX5243_REG_MAX_RF_OFFSET_2 (0x0109) 111 #define AX5243_REG_MAX_RF_OFFSET_1 (0x010A) 112 #define AX5243_REG_MAX_RF_OFFSET_0 (0x010B) 113 #define AX5243_REG_FSK_DMAX_1 (0x010C) 114 #define AX5243_REG_FSK_DMAX_0 (0x010D) 115 #define AX5243_REG_FSK_DMIN_1 (0x010E) 116 #define AX5243_REG_FSK_DMIN_0 (0x010F) 117 #define AX5243_REG_AFSK_SPACE_1 (0x0110) 118 #define AX5243_REG_AFSK_SPACE_0 (0x0111) 119 #define AX5243_REG_AFSK_MARK_1 (0x0112) 120 #define AX5243_REG_AFSK_MARK_0 (0x0113) 121 #define AX5243_REG_AFSK_CTRL (0x0114) 122 #define AX5243_REG_AMPL_FILTER (0x0115) 123 #define AX5243_REG_FREQUENCY_LEAK (0x0116) 124 #define AX5243_REG_RX_PARAM_SETS (0x0117) 125 #define AX5243_REG_RX_PARAM_CUR_SET (0x0118) 126 #define AX5243_REG_RX_PARAM_SET_0 (0x0120) 127 #define AX5243_REG_RX_PARAM_SET_1 (0x0130) 128 #define AX5243_REG_RX_PARAM_SET_2 (0x0140) 129 #define AX5243_REG_RX_PARAM_SET_3 (0x0150) 130 #define AX5243_REG_RXPAR_AGC_GAIN (0x0000) 131 #define AX5243_REG_RXPAR_AGC_TARGET (0x0001) 132 #define AX5243_REG_RXPAR_AGC_HYST (0x0002) 133 #define AX5243_REG_RXPAR_AGC_MIN_MAX (0x0003) 134 #define AX5243_REG_RXPAR_TIME_GAIN (0x0004) 135 #define AX5243_REG_RXPAR_DR_GAIN (0x0005) 136 #define AX5243_REG_RXPAR_PHASE_GAIN (0x0006) 137 #define AX5243_REG_RXPAR_FREQ_GAIN_A (0x0007) 138 #define AX5243_REG_RXPAR_FREQ_GAIN_B (0x0008) 139 #define AX5243_REG_RXPAR_FREQ_GAIN_C (0x0009) 140 #define AX5243_REG_RXPAR_FREQ_GAIN_D (0x000A) 141 #define AX5243_REG_RXPAR_AMPL_GAIN (0x000B) 142 #define AX5243_REG_RXPAR_FREQ_DEV_1 (0x000C) 143 #define AX5243_REG_RXPAR_FREQ_DEV_0 (0x000D) 144 #define AX5243_REG_RXPAR_FOUR_FSK (0x000E) 145 #define AX5243_REG_RXPAR_BB_OFFS_RES (0x000F) 146 #define AX5243_REG_MOD_CFG_F (0x0160) 147 #define AX5243_REG_FSK_DEV_2 (0x0161) 148 #define AX5243_REG_FSK_DEV_1 (0x0162) 149 #define AX5243_REG_FSK_DEV_0 (0x0163) 150 #define AX5243_REG_MOD_CFG_A (0x0164) 151 #define AX5243_REG_TX_RATE_2 (0x0165) 152 #define AX5243_REG_TX_RATE_1 (0x0166) 153 #define AX5243_REG_TX_RATE_0 (0x0167) 154 #define AX5243_REG_TX_PWR_COEFF_A_1 (0x0168) 155 #define AX5243_REG_TX_PWR_COEFF_A_0 (0x0169) 156 #define AX5243_REG_TX_PWR_COEFF_B_1 (0x016A) 157 #define AX5243_REG_TX_PWR_COEFF_B_0 (0x016B) 158 #define AX5243_REG_TX_PWR_COEFF_C_1 (0x016C) 159 #define AX5243_REG_TX_PWR_COEFF_C_0 (0x016D) 160 #define AX5243_REG_TX_PWR_COEFF_D_1 (0x016E) 161 #define AX5243_REG_TX_PWR_COEFF_D_0 (0x016F) 162 #define AX5243_REG_TX_PWR_COEFF_E_1 (0x0170) 163 #define AX5243_REG_TX_PWR_COEFF_E_0 (0x0171) 164 #define AX5243_REG_PLL_VCO_I (0x0180) 165 #define AX5243_REG_PLL_VCO_IR (0x0181) 166 #define AX5243_REG_PLL_LOCK_DET (0x0182) 167 #define AX5243_REG_PLL_RNG_CLK (0x0183) 168 #define AX5243_REG_XTAL_CAP (0x0184) 169 #define AX5243_REG_BB_TUNE (0x0188) 170 #define AX5243_REG_BB_OFFS_CAP (0x0189) 171 #define AX5243_REG_PKT_ADDR_CFG (0x0200) 172 #define AX5243_REG_PKT_LEN_CFG (0x0201) 173 #define AX5243_REG_PKT_LEN_OFFSET (0x0202) 174 #define AX5243_REG_PKT_MAX_LEN (0x0203) 175 #define AX5243_REG_PKT_ADDR_3 (0x0204) 176 #define AX5243_REG_PKT_ADDR_2 (0x0205) 177 #define AX5243_REG_PKT_ADDR_1 (0x0206) 178 #define AX5243_REG_PKT_ADDR_0 (0x0207) 179 #define AX5243_REG_PKT_ADDR_MASK_3 (0x0208) 180 #define AX5243_REG_PKT_ADDR_MASK_2 (0x0209) 181 #define AX5243_REG_PKT_ADDR_MASK_1 (0x020A) 182 #define AX5243_REG_PKT_ADDR_MASK_0 (0x020B) 183 #define AX5243_REG_MATCH_0_PAT_3 (0x0210) 184 #define AX5243_REG_MATCH_0_PAT_2 (0x0211) 185 #define AX5243_REG_MATCH_0_PAT_1 (0x0212) 186 #define AX5243_REG_MATCH_0_PAT_0 (0x0213) 187 #define AX5243_REG_MATCH_0_LEN (0x0214) 188 #define AX5243_REG_MATCH_0_MIN (0x0215) 189 #define AX5243_REG_MATCH_0_MAX (0x0216) 190 #define AX5243_REG_MATCH_1_PAT_1 (0x0218) 191 #define AX5243_REG_MATCH_1_PAT_0 (0x0219) 192 #define AX5243_REG_MATCH_1_LEN (0x021C) 193 #define AX5243_REG_MATCH_1_MIN (0x021D) 194 #define AX5243_REG_MATCH_1_MAX (0x021E) 195 #define AX5243_REG_TMG_TX_BOOST (0x0220) 196 #define AX5243_REG_TMG_TX_SETTLE (0x0221) 197 #define AX5243_REG_TMG_RX_BOOST (0x0223) 198 #define AX5243_REG_TMG_RX_SETTLE (0x0224) 199 #define AX5243_REG_TMG_RX_OFFS_ACQ (0x0225) 200 #define AX5243_REG_TMG_RX_COARSE_ACQ (0x0226) 201 #define AX5243_REG_TMG_RX_AGC (0x0227) 202 #define AX5243_REG_TMG_RX_RSSI (0x0228) 203 #define AX5243_REG_TMG_RX_PREAMBLE_1 (0x0229) 204 #define AX5243_REG_TMG_RX_PREAMBLE_2 (0x022A) 205 #define AX5243_REG_TMG_RX_PREAMBLE_3 (0x022B) 206 #define AX5243_REG_RSSI_REFERENCE (0x022C) 207 #define AX5243_REG_RSSI_ABS_THR (0x022D) 208 #define AX5243_REG_BGND_RSSI_GAIN (0x022E) 209 #define AX5243_REG_BGND_RSSI_THR (0x022F) 210 #define AX5243_REG_PKT_CHUNK_SIZE (0x0230) 211 #define AX5243_REG_PKT_MISC_FLAGS (0x0231) 212 #define AX5243_REG_PKT_STORE_FLAGS (0x0232) 213 #define AX5243_REG_PKT_ACCEPT_FLAGS (0x0233) 214 #define AX5243_REG_GP_ADC_CTRL (0x0300) 215 #define AX5243_REG_GP_ADC_PERIOD (0x0301) 216 #define AX5243_REG_GP_ADC_13_VALUE_1 (0x0308) 217 #define AX5243_REG_GP_ADC_13_VALUE_0 (0x0309) 218 #define AX5243_REG_LP_OSC_CONFIG (0x0310) 219 #define AX5243_REG_LP_OSC_STATUS (0x0311) 220 #define AX5243_REG_LP_OSC_FILTER_1 (0x0312) 221 #define AX5243_REG_LP_OSC_FILTER_0 (0x0313) 222 #define AX5243_REG_LP_OSC_REF_1 (0x0314) 223 #define AX5243_REG_LP_OSC_REF_0 (0x0315) 224 #define AX5243_REG_LP_OSC_FREQ_1 (0x0316) 225 #define AX5243_REG_LP_OSC_FREQ_0 (0x0317) 226 #define AX5243_REG_LP_OSC_PER_1 (0x0318) 227 #define AX5243_REG_LP_OSC_PER_0 (0x0319) 228 #define AX5243_REG_DAC_VALUE_1 (0x0330) 229 #define AX5243_REG_DAC_VALUE_0 (0x0331) 230 #define AX5243_REG_DAC_CONFIG (0x0332) 256 #ifndef RADIOLIB_GODMODE AX5243(Module *module)
Default constructor.
Definition: AX5243.cpp:4
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
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 receive(String &str, size_t len=0)
Arduino String receive method.
Definition: PhysicalLayer.cpp:98
Control class for AX5243 module.
Definition: AX5243.h:237
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN...
Definition: PhysicalLayer.h:13
int16_t readData(String &str, size_t len=0)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:57