|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
SX1262 radio driver for IO-Homecontrol. More...
Go to the source code of this file.
Classes | |
| struct | esphome::home_io_control::FemRxGain |
| Receive-side gain of a FEM profile's LNA, in the SX1262's RSSI scale. More... | |
| struct | esphome::home_io_control::FemTxEstimate |
| Antenna-port power estimate for a configured tx_power through a FEM profile's chain. More... | |
| class | esphome::home_io_control::RadioSX1262 |
| SX1262 implementation of RadioDriver. More... | |
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
Functions | |
| FemRxGain | esphome::home_io_control::sx1262_fem_rx_gain (FemProfile profile) |
| The receive gain to remove from RSSI for a FEM profile. | |
| FemTxEstimate | esphome::home_io_control::sx1262_fem_tx_estimate (FemProfile profile, uint8_t tx_power) |
| Estimate what a FEM profile radiates for a configured tx_power. | |
| void | esphome::home_io_control::sx1262_format_device_errors (uint16_t errors, char *buf, size_t buf_size) |
| Expand a GetDeviceErrors word into a human-readable NAME|NAME|... string. | |
| const char * | esphome::home_io_control::sx1262_chip_mode_name (uint8_t chip_status) |
| Name of the chip mode in a GetStatus byte (bits 6:4). | |
| uint8_t | esphome::home_io_control::sx1262_command_status (uint8_t chip_status) |
| Command status field of a GetStatus byte (bits 3:1). | |
Variables | |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_STANDBY = 0x80 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_RX = 0x82 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_TX = 0x83 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_RF_FREQUENCY = 0x86 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_RX_TX_FALLBACK_MODE = 0x93 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_WRITE_BUFFER = 0x0E |
| static constexpr uint8_t | esphome::home_io_control::SX1262_READ_BUFFER = 0x1E |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_DIO_IRQ_PARAMS = 0x08 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GET_IRQ_STATUS = 0x12 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GET_PACKET_STATUS = 0x14 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GET_DEVICE_ERRORS = 0x17 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_CLEAR_IRQ_STATUS = 0x02 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_CLEAR_DEVICE_ERRORS = 0x07 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_PACKET_TYPE = 0x8A |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_MODULATION_PARAMS = 0x8B |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_PACKET_PARAMS = 0x8C |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_BUFFER_BASE_ADDRESS = 0x8F |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_PA_CONFIG = 0x95 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_TX_PARAMS = 0x8E |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_DIO2_AS_RF_SWITCH_CTRL = 0x9D |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_DIO3_AS_TCXO_CTRL = 0x97 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_CALIBRATE = 0x89 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_CALIBRATE_IMAGE = 0x98 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GET_RX_BUFFER_STATUS = 0x13 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GET_RSSI_INST = 0x15 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_SET_REGULATOR_MODE = 0x96 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GET_STATUS = 0xC0 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_WRITE_REGISTER = 0x0D |
| static constexpr uint8_t | esphome::home_io_control::SX1262_READ_REGISTER = 0x1D |
| static constexpr uint16_t | esphome::home_io_control::SX1262_IRQ_TX_DONE = 0x0001 |
| static constexpr uint16_t | esphome::home_io_control::SX1262_IRQ_RX_DONE = 0x0002 |
| static constexpr uint16_t | esphome::home_io_control::SX1262_IRQ_PREAMBLE_DETECTED = 0x0004 |
| static constexpr uint16_t | esphome::home_io_control::SX1262_IRQ_SYNC_WORD_VALID = 0x0008 |
| static constexpr uint16_t | esphome::home_io_control::SX1262_IRQ_CRC_ERR = 0x0040 |
| static constexpr uint16_t | esphome::home_io_control::SX1262_IRQ_ACTIVITY_MASK |
| IRQ bits that represent a terminal radio event — a frame finished decoding, an outbound frame completed, or the chip reported a bad CRC. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_RC64K_CALIB = 0x0001 |
| 64 kHz RC oscillator calibration failed. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_RC13M_CALIB = 0x0002 |
| 13 MHz RC oscillator calibration failed. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_PLL_CALIB = 0x0004 |
| PLL calibration failed. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_ADC_CALIB = 0x0008 |
| ADC calibration failed. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_IMG_CALIB = 0x0010 |
| Image calibration failed. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_XOSC_START = 0x0020 |
| Crystal/TCXO failed to start. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_PLL_LOCK = 0x0040 |
| PLL failed to lock. | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_DEV_ERR_PA_RAMP = 0x0100 |
| PA ramping failed (bit 0x0080 is unused). | |
| static constexpr uint16_t | esphome::home_io_control::SX1262_REG_SYNC_WORD = 0x06C0 |
| static constexpr uint16_t | esphome::home_io_control::SX1262_REG_RX_GAIN = 0x08AC |
| static constexpr uint16_t | esphome::home_io_control::SX1262_REG_TX_CLAMP_CONFIG = 0x08D8 |
| static constexpr uint16_t | esphome::home_io_control::SX1262_REG_TX_MODULATION = 0x0889 |
| TX modulation-quality erratum register (SX1262 datasheet §15.1, "Modulation Quality with
500 kHz LoRa Bandwidth" — the title names LoRa, but the workaround table covers every modulation). | |
| static constexpr uint8_t | esphome::home_io_control::SX1262_TX_MODULATION_GFSK_BIT = 0x04 |
| Bit 2 of SX1262_REG_TX_MODULATION — the (G)FSK-correct value is 1. | |
| static constexpr uint8_t | esphome::home_io_control::SX1262_TX_BUFFER_BASE = 0x00 |
| Data-buffer split programmed by configure_buffer_base(): TX packets build from 0x00, RX packets land at 0x80. | |
| static constexpr uint8_t | esphome::home_io_control::SX1262_RX_BUFFER_BASE = 0x80 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GFSK_PACKET_TYPE_KNOWN_LENGTH = 0x00 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_GFSK_CRC_OFF = 0x01 |
| static constexpr uint8_t | esphome::home_io_control::SX1262_PREAMBLE_DETECTOR_16_BIT = 0x05 |
| Preamble detector length selector: 16 bits (0x04 = 8, 0x05 = 16, 0x06 = 24, 0x07 = 32 bits). | |
| static constexpr uint8_t | esphome::home_io_control::SX1262_FALLBACK_STDBY_XOSC = 0x30 |
| static constexpr uint32_t | esphome::home_io_control::SX1262_BUSY_TIMEOUT_MS = 25 |
| Ceiling on how long SoftPhyDriverBase::wait_busy_() waits for BUSY to drop before declaring the chip failed. | |
SX1262 radio driver for IO-Homecontrol.
Implements the RadioDriver interface for the Semtech SX1262 transceiver. Unlike the SX1276, the SX1262 uses opcode-based SPI commands and requires a BUSY pin check before every SPI transaction. The capture path preserves the radio-reported RX metadata so offline analysis can work from trustworthy data. The IRQ-driven RX/TX orchestration this driver shares with RadioLR1121 lives in SoftPhyDriverBase (see radio_soft_phy_driver_base.h) — this file has the SX1262-specific SPI transport and register/opcode encoding underneath it.
Definition in file radio_sx1262.h.