|
enum | IrqErrorCode_t { IRQ_HEADER_ERROR_CODE = 0x01,
IRQ_SYNCWORD_ERROR_CODE = 0x02,
IRQ_CRC_ERROR_CODE = 0x04
} |
| Structure describing the error codes for callback functions. More...
|
|
enum | IrqPblSyncHeaderCode_t { IRQ_PBL_DETECT_CODE = 0x01,
IRQ_SYNCWORD_VALID_CODE = 0x02,
IRQ_HEADER_VALID_CODE = 0x04
} |
|
enum | RadioOperatingModes_t {
MODE_SLEEP = 0x00,
MODE_STDBY_RC,
MODE_STDBY_XOSC,
MODE_FS,
MODE_TX,
MODE_RX,
MODE_RX_DC,
MODE_CAD
} |
| Represents the operating mode the radio is actually running. More...
|
|
enum | RadioStandbyModes_t { STDBY_RC = 0x00,
STDBY_XOSC = 0x01
} |
| Declares the oscillator in use while in standby mode. More...
|
|
enum | RadioRegulatorMode_t { USE_LDO = 0x00,
USE_DCDC = 0x01
} |
| Declares the power regulation used to power the device. More...
|
|
enum | RadioPacketTypes_t { PACKET_TYPE_GFSK = 0x00,
PACKET_TYPE_LORA = 0x01,
PACKET_TYPE_NONE = 0x0F
} |
| Represents the possible packet type (i.e. modem) used. More...
|
|
enum | RadioRampTimes_t {
RADIO_RAMP_10_US = 0x00,
RADIO_RAMP_20_US = 0x01,
RADIO_RAMP_40_US = 0x02,
RADIO_RAMP_80_US = 0x03,
RADIO_RAMP_200_US = 0x04,
RADIO_RAMP_800_US = 0x05,
RADIO_RAMP_1700_US = 0x06,
RADIO_RAMP_3400_US = 0x07
} |
| Represents the ramping time for power amplifier. More...
|
|
enum | RadioLoRaCadSymbols_t {
LORA_CAD_01_SYMBOL = 0x00,
LORA_CAD_02_SYMBOL = 0x01,
LORA_CAD_04_SYMBOL = 0x02,
LORA_CAD_08_SYMBOL = 0x03,
LORA_CAD_16_SYMBOL = 0x04
} |
| Represents the number of symbols to be used for channel activity detection operation. More...
|
|
enum | RadioCadExitModes_t { LORA_CAD_ONLY = 0x00,
LORA_CAD_RX = 0x01,
LORA_CAD_LBT = 0x10
} |
| Represents the Channel Activity Detection actions after the CAD operation is finished. More...
|
|
enum | RadioModShapings_t {
MOD_SHAPING_OFF = 0x00,
MOD_SHAPING_G_BT_03 = 0x08,
MOD_SHAPING_G_BT_05 = 0x09,
MOD_SHAPING_G_BT_07 = 0x0A,
MOD_SHAPING_G_BT_1 = 0x0B
} |
| Represents the modulation shaping parameter. More...
|
|
enum | RadioRxBandwidth_t {
RX_BW_4800 = 0x1F,
RX_BW_5800 = 0x17,
RX_BW_7300 = 0x0F,
RX_BW_9700 = 0x1E,
RX_BW_11700 = 0x16,
RX_BW_14600 = 0x0E,
RX_BW_19500 = 0x1D,
RX_BW_23400 = 0x15,
RX_BW_29300 = 0x0D,
RX_BW_39000 = 0x1C,
RX_BW_46900 = 0x14,
RX_BW_58600 = 0x0C,
RX_BW_78200 = 0x1B,
RX_BW_93800 = 0x13,
RX_BW_117300 = 0x0B,
RX_BW_156200 = 0x1A,
RX_BW_187200 = 0x12,
RX_BW_234300 = 0x0A,
RX_BW_312000 = 0x19,
RX_BW_373600 = 0x11,
RX_BW_467000 = 0x09
} |
| Represents the modulation shaping parameter. More...
|
|
enum | RadioLoRaSpreadingFactors_t {
LORA_SF5 = 0x05,
LORA_SF6 = 0x06,
LORA_SF7 = 0x07,
LORA_SF8 = 0x08,
LORA_SF9 = 0x09,
LORA_SF10 = 0x0A,
LORA_SF11 = 0x0B,
LORA_SF12 = 0x0C
} |
| Represents the possible spreading factor values in LoRa packet types. More...
|
|
enum | RadioLoRaBandwidths_t {
LORA_BW_500 = 6,
LORA_BW_250 = 5,
LORA_BW_125 = 4,
LORA_BW_062 = 3,
LORA_BW_041 = 10,
LORA_BW_031 = 2,
LORA_BW_020 = 9,
LORA_BW_015 = 1,
LORA_BW_010 = 8,
LORA_BW_007 = 0
} |
| Represents the bandwidth values for LoRa packet type. More...
|
|
enum | RadioLoRaCodingRates_t { LORA_CR_4_5 = 0x01,
LORA_CR_4_6 = 0x02,
LORA_CR_4_7 = 0x03,
LORA_CR_4_8 = 0x04
} |
| Represents the coding rate values for LoRa packet type. More...
|
|
enum | RadioPreambleDetection_t {
RADIO_PREAMBLE_DETECTOR_OFF = 0x00,
RADIO_PREAMBLE_DETECTOR_08_BITS = 0x04,
RADIO_PREAMBLE_DETECTOR_16_BITS = 0x05,
RADIO_PREAMBLE_DETECTOR_24_BITS = 0x06,
RADIO_PREAMBLE_DETECTOR_32_BITS = 0x07
} |
| Represents the preamble length used to detect the packet on Rx side. More...
|
|
enum | RadioAddressComp_t { RADIO_ADDRESSCOMP_FILT_OFF = 0x00,
RADIO_ADDRESSCOMP_FILT_NODE = 0x01,
RADIO_ADDRESSCOMP_FILT_NODE_BROAD = 0x02
} |
| Represents the possible combinations of SyncWord correlators activated. More...
|
|
enum | RadioPacketLengthModes_t { RADIO_PACKET_FIXED_LENGTH = 0x00,
RADIO_PACKET_VARIABLE_LENGTH = 0x01
} |
| Radio GFSK packet length mode. More...
|
|
enum | RadioCrcTypes_t {
RADIO_CRC_OFF = 0x01,
RADIO_CRC_1_BYTES = 0x00,
RADIO_CRC_2_BYTES = 0x02,
RADIO_CRC_1_BYTES_INV = 0x04,
RADIO_CRC_2_BYTES_INV = 0x06,
RADIO_CRC_2_BYTES_IBM = 0xF1,
RADIO_CRC_2_BYTES_CCIT = 0xF2
} |
| Represents the CRC length. More...
|
|
enum | RadioDcFree_t { RADIO_DC_FREE_OFF = 0x00,
RADIO_DC_FREEWHITENING = 0x01
} |
| Radio whitening mode activated or deactivated. More...
|
|
enum | RadioLoRaPacketLengthsMode_t { LORA_PACKET_VARIABLE_LENGTH = 0x00,
LORA_PACKET_FIXED_LENGTH = 0x01,
LORA_PACKET_EXPLICIT = LORA_PACKET_VARIABLE_LENGTH,
LORA_PACKET_IMPLICIT = LORA_PACKET_FIXED_LENGTH
} |
| Holds the Radio lengths mode for the LoRa packet type. More...
|
|
enum | RadioLoRaCrcModes_t { LORA_CRC_ON = 0x01,
LORA_CRC_OFF = 0x00
} |
| Represents the CRC mode for LoRa packet type. More...
|
|
enum | RadioLoRaIQModes_t { LORA_IQ_NORMAL = 0x00,
LORA_IQ_INVERTED = 0x01
} |
| Represents the IQ mode for LoRa packet type. More...
|
|
enum | RadioTcxoCtrlVoltage_t {
TCXO_CTRL_1_6V = 0x00,
TCXO_CTRL_1_7V = 0x01,
TCXO_CTRL_1_8V = 0x02,
TCXO_CTRL_2_2V = 0x03,
TCXO_CTRL_2_4V = 0x04,
TCXO_CTRL_2_7V = 0x05,
TCXO_CTRL_3_0V = 0x06,
TCXO_CTRL_3_3V = 0x07
} |
| Represents the voltage used to control the TCXO on/off from DIO3. More...
|
|
enum | RadioIrqMasks_t {
IRQ_RADIO_NONE = 0x0000,
IRQ_TX_DONE = 0x0001,
IRQ_RX_DONE = 0x0002,
IRQ_PREAMBLE_DETECTED = 0x0004,
IRQ_SYNCWORD_VALID = 0x0008,
IRQ_HEADER_VALID = 0x0010,
IRQ_HEADER_ERROR = 0x0020,
IRQ_CRC_ERROR = 0x0040,
IRQ_CAD_DONE = 0x0080,
IRQ_CAD_ACTIVITY_DETECTED = 0x0100,
IRQ_RX_TX_TIMEOUT = 0x0200,
IRQ_RADIO_ALL = 0xFFFF
} |
| Represents the interruption masks available for the radio. More...
|
|
enum | RadioCommands_e {
RADIO_GET_STATUS = 0xC0,
RADIO_WRITE_REGISTER = 0x0D,
RADIO_READ_REGISTER = 0x1D,
RADIO_WRITE_BUFFER = 0x0E,
RADIO_READ_BUFFER = 0x1E,
RADIO_SET_SLEEP = 0x84,
RADIO_SET_STANDBY = 0x80,
RADIO_SET_FS = 0xC1,
RADIO_SET_TX = 0x83,
RADIO_SET_RX = 0x82,
RADIO_SET_RXDUTYCYCLE = 0x94,
RADIO_SET_CAD = 0xC5,
RADIO_SET_TXCONTINUOUSWAVE = 0xD1,
RADIO_SET_TXCONTINUOUSPREAMBLE = 0xD2,
RADIO_SET_PACKETTYPE = 0x8A,
RADIO_GET_PACKETTYPE = 0x11,
RADIO_SET_RFFREQUENCY = 0x86,
RADIO_SET_TXPARAMS = 0x8E,
RADIO_SET_PACONFIG = 0x95,
RADIO_SET_CADPARAMS = 0x88,
RADIO_SET_BUFFERBASEADDRESS = 0x8F,
RADIO_SET_MODULATIONPARAMS = 0x8B,
RADIO_SET_PACKETPARAMS = 0x8C,
RADIO_GET_RXBUFFERSTATUS = 0x13,
RADIO_GET_PACKETSTATUS = 0x14,
RADIO_GET_RSSIINST = 0x15,
RADIO_GET_STATS = 0x10,
RADIO_RESET_STATS = 0x00,
RADIO_CFG_DIOIRQ = 0x08,
RADIO_GET_IRQSTATUS = 0x12,
RADIO_CLR_IRQSTATUS = 0x02,
RADIO_CALIBRATE = 0x89,
RADIO_CALIBRATEIMAGE = 0x98,
RADIO_SET_REGULATORMODE = 0x96,
RADIO_GET_ERROR = 0x17,
RADIO_CLR_ERROR = 0x07,
RADIO_SET_TCXOMODE = 0x97,
RADIO_SET_TXFALLBACKMODE = 0x93,
RADIO_SET_RFSWITCHMODE = 0x9D,
RADIO_SET_STOPRXTIMERONPREAMBLE = 0x9F,
RADIO_SET_LORASYMBTIMEOUT = 0xA0
} |
| Represents all possible opcode understood by the radio. More...
|
|
|
void | SX126xInit (DioIrqHandler dioIrq) |
| Initializes the radio driver. More...
|
|
void | SX126xReInit (DioIrqHandler dioIrq) |
| Re-Initializes the radio driver after CPU wakeup from deep sleep. More...
|
|
RadioOperatingModes_t | SX126xGetOperatingMode (void) |
| Gets the current Operation Mode of the Radio. More...
|
|
void | SX126xSetOperatingMode (RadioOperatingModes_t mode) |
| Sets/Updates the current Radio OperationMode variable. More...
|
|
void | SX126xCheckDeviceReady (void) |
| Wakeup the radio if it is in Sleep mode and check that Busy is low. More...
|
|
void | SX126xSetPayload (uint8_t *payload, uint8_t size) |
| Saves the payload to be send in the radio buffer. More...
|
|
uint8_t | SX126xGetPayload (uint8_t *payload, uint8_t *size, uint8_t maxSize) |
| Reads the payload received. If the received payload is longer than maxSize, then the method returns 1 and do not set size and payload. More...
|
|
void | SX126xSendPayload (uint8_t *payload, uint8_t size, uint32_t timeout) |
| Sends a payload. More...
|
|
uint8_t | SX126xSetSyncWord (uint8_t *syncWord) |
| Sets the Sync Word given by index used in GFSK. More...
|
|
void | SX126xSetCrcSeed (uint16_t seed) |
| Sets the seed value for the LFSR used for the CRC calculation. More...
|
|
void | SX126xSetCrcPolynomial (uint16_t polynomial) |
| Sets the polynomial used for the CRC calculation. More...
|
|
void | SX126xSetWhiteningSeed (uint16_t seed) |
| Sets the Initial value of the LFSR used for the whitening in GFSK protocols. More...
|
|
uint32_t | SX126xGetRandom (void) |
| Gets a 32 bits random value generated by the radio. More...
|
|
void | SX126xSetSleep (SleepParams_t sleepConfig) |
| Sets the radio in sleep mode. More...
|
|
void | SX126xSetStandby (RadioStandbyModes_t mode) |
| Sets the radio in configuration mode. More...
|
|
void | SX126xSetFs (void) |
| Sets the radio in FS mode. More...
|
|
void | SX126xSetTx (uint32_t timeout) |
| Sets the radio in transmission mode. More...
|
|
void | SX126xSetRx (uint32_t timeout) |
| Sets the radio in reception mode. More...
|
|
void | SX126xSetRxBoosted (uint32_t timeout) |
| Sets the radio in reception mode with Boosted LNA gain. More...
|
|
void | SX126xSetRxDutyCycle (uint32_t rxTime, uint32_t sleepTime) |
| Sets the Rx duty cycle management parameters. More...
|
|
void | SX126xSetCad (void) |
| Sets the radio in CAD mode. More...
|
|
void | SX126xSetTxContinuousWave (void) |
| Sets the radio in continuous wave transmission mode. More...
|
|
void | SX126xSetTxInfinitePreamble (void) |
| Sets the radio in continuous preamble transmission mode. More...
|
|
void | SX126xSetStopRxTimerOnPreambleDetect (bool enable) |
| Decide which interrupt will stop the internal radio rx timer. More...
|
|
void | SX126xSetLoRaSymbNumTimeout (uint8_t SymbNum) |
| Set the number of symbol the radio will wait to validate a reception. More...
|
|
void | SX126xSetRegulatorMode (RadioRegulatorMode_t mode) |
| Sets the power regulators operating mode. More...
|
|
void | SX126xCalibrate (CalibrationParams_t calibParam) |
| Calibrates the given radio block. More...
|
|
void | SX126xCalibrateImage (uint32_t freq) |
| Calibrates the Image rejection depending of the frequency. More...
|
|
void | SX126xSetLongPreamble (uint8_t enable) |
| Activate the extention of the timeout when long preamble is used. More...
|
|
void | SX126xSetPaConfig (uint8_t paDutyCycle, uint8_t hpMax, uint8_t deviceSel, uint8_t paLut) |
| Sets the transmission parameters. More...
|
|
void | SX126xSetRxTxFallbackMode (uint8_t fallbackMode) |
| Defines into which mode the chip goes after a TX / RX done. More...
|
|
void | SX126xWriteRegisters (uint16_t address, uint8_t *buffer, uint16_t size) |
| Write data to the radio memory. More...
|
|
void | SX126xReadRegisters (uint16_t address, uint8_t *buffer, uint16_t size) |
| Read data from the radio memory. More...
|
|
void | SX126xWriteBuffer (uint8_t offset, uint8_t *buffer, uint8_t size) |
| Write data to the buffer holding the payload in the radio. More...
|
|
void | SX126xReadBuffer (uint8_t offset, uint8_t *buffer, uint8_t size) |
| Read data from the buffer holding the payload in the radio. More...
|
|
void | SX126xSetDioIrqParams (uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask, uint16_t dio3Mask) |
| Sets the IRQ mask and DIO masks. More...
|
|
uint16_t | SX126xGetIrqStatus (void) |
| Returns the current IRQ status. More...
|
|
void | SX126xSetDio2AsRfSwitchCtrl (uint8_t enable) |
| Indicates if DIO2 is used to control an RF Switch. More...
|
|
void | SX126xSetDio3AsTcxoCtrl (RadioTcxoCtrlVoltage_t tcxoVoltage, uint32_t timeout) |
| Indicates if the Radio main clock is supplied from a tcxo. More...
|
|
void | SX126xSetRfFrequency (uint32_t frequency) |
| Sets the RF frequency. More...
|
|
void | SX126xSetPacketType (RadioPacketTypes_t packetType) |
| Sets the radio for the given protocol. More...
|
|
RadioPacketTypes_t | SX126xGetPacketType (void) |
| Gets the current radio protocol. More...
|
|
void | SX126xSetTxParams (int8_t power, RadioRampTimes_t rampTime) |
| Sets the transmission parameters. More...
|
|
void | SX126xSetModulationParams (ModulationParams_t *modParams) |
| Set the modulation parameters. More...
|
|
void | SX126xSetPacketParams (PacketParams_t *packetParams) |
| Sets the packet parameters. More...
|
|
void | SX126xSetCadParams (RadioLoRaCadSymbols_t cadSymbolNum, uint8_t cadDetPeak, uint8_t cadDetMin, RadioCadExitModes_t cadExitMode, uint32_t cadTimeout) |
| Sets the Channel Activity Detection (CAD) parameters. More...
|
|
void | SX126xSetBufferBaseAddress (uint8_t txBaseAddress, uint8_t rxBaseAddress) |
| Sets the data buffer base address for transmission and reception. More...
|
|
RadioStatus_t | SX126xGetStatus (void) |
| Gets the current radio status. More...
|
|
int8_t | SX126xGetRssiInst (void) |
| Returns the instantaneous RSSI value for the last packet received. More...
|
|
void | SX126xGetRxBufferStatus (uint8_t *payloadLength, uint8_t *rxStartBuffer) |
| Gets the last received packet buffer status. More...
|
|
void | SX126xGetPacketStatus (PacketStatus_t *pktStatus) |
| Gets the last received packet payload length. More...
|
|
RadioError_t | SX126xGetDeviceErrors (void) |
| Returns the possible system errors. More...
|
|
void | SX126xClearDeviceErrors (void) |
| Clear all the errors in the device. More...
|
|
void | SX126xClearIrqStatus (uint16_t irq) |
| Clears the IRQs. More...
|
|
SX126x driver implementation.
- Copyright
- Revised BSD License, see file LICENSE.
______ _
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2013-2017 Semtech
- Author
- Miguel Luis ( Semtech )
-
Gregory Cristian ( Semtech )