Driver for the SX1261/2/8 and LLCC68 LoRa radio device. More...
Driver for the SX1261/2/8 and LLCC68 LoRa radio device.
Modules | |
| SX1261/2/8 and LLCC68 internal functions | |
| Internal functions for the SX1261/2/8 and LLCC68. | |
Files | |
| file | sx126x.h |
| file | sx126x_netdev.h |
| Netdev driver definitions for SX1261/2/8 and LLCC68 driver. | |
| file | sx126x_params.h |
| Default configuration. | |
Data Structures | |
| struct | sx126x_params_t |
| Device initialization parameters. More... | |
| struct | sx126x |
| Device descriptor for the driver. More... | |
Macros | |
| #define | SX126X_SINGLE |
| Whether there's only one variant of this driver at compile time or not. More... | |
| #define | SX126X_IRQ_MASK_ALL |
| Mask of all available interrupts. More... | |
Typedefs | |
| typedef struct sx126x | sx126x_t |
Enumerations | |
| enum | sx126x_rf_mode_t { SX126X_RF_MODE_RX , SX126X_RF_MODE_TX_LPA , SX126X_RF_MODE_TX_HPA } |
| RF switch states. | |
| enum | sx126x_type_t { SX126X_TYPE_SX1261 , SX126X_TYPE_SX1262 , SX126X_TYPE_SX1268 , SX126X_TYPE_LLCC68 , SX126X_TYPE_STM32WL } |
| Used to identify if its a generic SPI module. More... | |
| enum | sx126x_dio2_mode_t { SX126X_DIO2_UNUSED , SX126X_DIO2_IRQ , SX126X_DIO2_RF_SWITCH } |
| Dio2 pin mode. More... | |
| enum | sx126x_dio3_mode_t { SX126X_DIO3_UNUSED , SX126X_DIO3_IRQ , SX126X_DIO3_TCXO } |
| Dio3 pin mode. More... | |
Functions | |
| void | sx126x_setup (sx126x_t *dev, const sx126x_params_t *params, uint8_t index) |
| Setup the radio device. More... | |
| int | sx126x_init (sx126x_t *dev) |
| Initialize the given device. More... | |
| static int | sx126x_symbol_to_msec (sx126x_t *dev, uint16_t symbols) |
| Converts symbol value to time in milliseconds. More... | |
| uint32_t | sx126x_get_channel (const sx126x_t *dev) |
| Gets the channel RF frequency. More... | |
| void | sx126x_set_channel (sx126x_t *dev, uint32_t freq) |
| Sets the channel RF frequency. More... | |
| uint8_t | sx126x_get_bandwidth (const sx126x_t *dev) |
| Gets the LoRa bandwidth. More... | |
| void | sx126x_set_bandwidth (sx126x_t *dev, uint8_t bandwidth) |
| Sets the LoRa bandwidth. More... | |
| uint8_t | sx126x_get_spreading_factor (const sx126x_t *dev) |
| Gets the LoRa spreading factor. More... | |
| void | sx126x_set_spreading_factor (sx126x_t *dev, uint8_t sf) |
| Sets the LoRa spreading factor. More... | |
| uint8_t | sx126x_get_coding_rate (const sx126x_t *dev) |
| Gets the LoRa coding rate. More... | |
| void | sx126x_set_coding_rate (sx126x_t *dev, uint8_t cr) |
| Sets the LoRa coding rate. More... | |
| void | sx126x_set_tx_power (sx126x_t *dev, int8_t power_dbm, sx126x_ramp_time_t ramp_time) |
| Sets the TX power and ramp time. More... | |
| uint8_t | sx126x_get_lora_payload_length (const sx126x_t *dev) |
| Gets the payload length. More... | |
| void | sx126x_set_lora_payload_length (sx126x_t *dev, uint8_t len) |
| Sets the payload length. More... | |
| bool | sx126x_get_lora_crc (const sx126x_t *dev) |
| Checks if CRC verification mode is enabled. More... | |
| void | sx126x_set_lora_crc (sx126x_t *dev, bool crc) |
| Enable/Disable CRC verification mode. More... | |
| bool | sx126x_get_lora_implicit_header (const sx126x_t *dev) |
| Gets the LoRa implicit header mode. More... | |
| void | sx126x_set_lora_implicit_header (sx126x_t *dev, bool mode) |
| Sets LoRa implicit header mode. More... | |
| uint16_t | sx126x_get_lora_preamble_length (const sx126x_t *dev) |
| Gets the LoRa preamble length. More... | |
| void | sx126x_set_lora_preamble_length (sx126x_t *dev, uint16_t preamble) |
| Sets the LoRa preamble length. More... | |
| bool | sx126x_get_lora_iq_invert (const sx126x_t *dev) |
| Checks if the LoRa inverted IQ mode is enabled/disabled. More... | |
| void | sx126x_set_lora_iq_invert (sx126x_t *dev, bool iq_invert) |
| Enable/disable the LoRa IQ inverted mode. More... | |
| #define SX126X_IRQ_MASK_ALL |
Mask of all available interrupts.
| #define SX126X_SINGLE |
| enum sx126x_dio2_mode_t |
| enum sx126x_dio3_mode_t |
| enum sx126x_type_t |
| uint8_t sx126x_get_bandwidth | ( | const sx126x_t * | dev | ) |
Gets the LoRa bandwidth.
| [in] | dev | Device descriptor of the driver |
| uint32_t sx126x_get_channel | ( | const sx126x_t * | dev | ) |
Gets the channel RF frequency.
| [in] | dev | Device descriptor of the driver |
| uint8_t sx126x_get_coding_rate | ( | const sx126x_t * | dev | ) |
Gets the LoRa coding rate.
| [in] | dev | Device descriptor of the driver |
| bool sx126x_get_lora_crc | ( | const sx126x_t * | dev | ) |
Checks if CRC verification mode is enabled.
| [in] | dev | Device descriptor of the driver |
| bool sx126x_get_lora_implicit_header | ( | const sx126x_t * | dev | ) |
Gets the LoRa implicit header mode.
| [in] | dev | Device descriptor of the driver |
| bool sx126x_get_lora_iq_invert | ( | const sx126x_t * | dev | ) |
Checks if the LoRa inverted IQ mode is enabled/disabled.
| [in] | dev | Device descriptor of the driver |
| uint8_t sx126x_get_lora_payload_length | ( | const sx126x_t * | dev | ) |
Gets the payload length.
| [in] | dev | Device descriptor of the driver |
| uint16_t sx126x_get_lora_preamble_length | ( | const sx126x_t * | dev | ) |
Gets the LoRa preamble length.
| [in] | dev | Device descriptor of the driver |
| uint8_t sx126x_get_spreading_factor | ( | const sx126x_t * | dev | ) |
Gets the LoRa spreading factor.
| [in] | dev | Device descriptor of the driver |
| int sx126x_init | ( | sx126x_t * | dev | ) |
Initialize the given device.
| [in,out] | dev | Device descriptor of the driver |
| void sx126x_set_bandwidth | ( | sx126x_t * | dev, |
| uint8_t | bandwidth | ||
| ) |
Sets the LoRa bandwidth.
| [in] | dev | Device descriptor of the driver |
| [in] | bandwidth | The new bandwidth |
| void sx126x_set_channel | ( | sx126x_t * | dev, |
| uint32_t | freq | ||
| ) |
Sets the channel RF frequency.
| [in] | dev | Device descriptor of the driver |
| [in] | freq | Channel RF frequency |
| void sx126x_set_coding_rate | ( | sx126x_t * | dev, |
| uint8_t | cr | ||
| ) |
Sets the LoRa coding rate.
| [in] | dev | Device descriptor of the driver |
| [in] | cr | The LoRa coding rate |
| void sx126x_set_lora_crc | ( | sx126x_t * | dev, |
| bool | crc | ||
| ) |
Enable/Disable CRC verification mode.
| [in] | dev | Device descriptor of the driver |
| [in] | crc | The CRC check mode |
| void sx126x_set_lora_implicit_header | ( | sx126x_t * | dev, |
| bool | mode | ||
| ) |
Sets LoRa implicit header mode.
| [in] | dev | Device descriptor of the driver |
| [in] | mode | The header mode |
| void sx126x_set_lora_iq_invert | ( | sx126x_t * | dev, |
| bool | iq_invert | ||
| ) |
Enable/disable the LoRa IQ inverted mode.
| [in] | dev | Device descriptor of the driver |
| [in] | iq_invert | The LoRa IQ inverted mode |
| void sx126x_set_lora_payload_length | ( | sx126x_t * | dev, |
| uint8_t | len | ||
| ) |
Sets the payload length.
| [in] | dev | Device descriptor of the driver |
| [in] | len | The payload len |
| void sx126x_set_lora_preamble_length | ( | sx126x_t * | dev, |
| uint16_t | preamble | ||
| ) |
Sets the LoRa preamble length.
| [in] | dev | Device descriptor of the driver |
| [in] | preamble | The LoRa preamble length |
| void sx126x_set_spreading_factor | ( | sx126x_t * | dev, |
| uint8_t | sf | ||
| ) |
Sets the LoRa spreading factor.
| [in] | dev | Device descriptor of the driver |
| [in] | sf | The spreading factor |
| void sx126x_set_tx_power | ( | sx126x_t * | dev, |
| int8_t | power_dbm, | ||
| sx126x_ramp_time_t | ramp_time | ||
| ) |
Sets the TX power and ramp time.
The actual transmission power may be different depending on device capabilities and board design.
| [in] | dev | Device descriptor of the driver |
| [in] | power_dbm | The TX power in dBm |
| [in] | ramp_time | The ramp time |
| void sx126x_setup | ( | sx126x_t * | dev, |
| const sx126x_params_t * | params, | ||
| uint8_t | index | ||
| ) |
Setup the radio device.
| [in] | dev | Device descriptor |
| [in] | params | Parameters for device initialization |
| [in] | index | Index of params in a global parameter struct array. If initialized manually, pass a unique identifier instead. |