mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-11 02:13:42 +00:00
a35786be70
Signed-off-by: deadprogram <ron@hybridgroup.com>
108 lines
3.7 KiB
Go
108 lines
3.7 KiB
Go
package sx127x
|
|
|
|
const (
|
|
// registers
|
|
SX127X_REG_FIFO = 0x00
|
|
SX127X_REG_OP_MODE = 0x01
|
|
SX127X_REG_FRF_MSB = 0x06
|
|
SX127X_REG_FRF_MID = 0x07
|
|
SX127X_REG_FRF_LSB = 0x08
|
|
SX127X_REG_PA_CONFIG = 0x09
|
|
SX127X_REG_PA_RAMP = 0x0a
|
|
SX127X_REG_OCP = 0x0b
|
|
SX127X_REG_LNA = 0x0c
|
|
SX127X_REG_FIFO_ADDR_PTR = 0x0d
|
|
SX127X_REG_FIFO_TX_BASE_ADDR = 0x0e
|
|
SX127X_REG_FIFO_RX_BASE_ADDR = 0x0f
|
|
SX127X_REG_FIFO_RX_CURRENT_ADDR = 0x10
|
|
SX127X_REG_IRQ_FLAGS_MASK = 0x11
|
|
SX127X_REG_IRQ_FLAGS = 0x12
|
|
SX127X_REG_RX_NB_BYTES = 0x13
|
|
SX127X_REG_PKT_SNR_VALUE = 0x19
|
|
SX127X_REG_PKT_RSSI_VALUE = 0x1a
|
|
SX127X_REG_RSSI_VALUE = 0x1b
|
|
SX127X_REG_MODEM_CONFIG_1 = 0x1d
|
|
SX127X_REG_MODEM_CONFIG_2 = 0x1e
|
|
SX127X_REG_SYMB_TIMEOUT_LSB = 0x1f
|
|
SX127X_REG_PREAMBLE_MSB = 0x20
|
|
SX127X_REG_PREAMBLE_LSB = 0x21
|
|
SX127X_REG_PAYLOAD_LENGTH = 0x22
|
|
SX127X_REG_MAX_PAYLOAD_LENGTH = 0x23
|
|
SX127X_REG_HOP_PERIOD = 0x24
|
|
SX127X_REG_MODEM_CONFIG_3 = 0x26
|
|
SX127X_REG_FREQ_ERROR_MSB = 0x28
|
|
SX127X_REG_FREQ_ERROR_MID = 0x29
|
|
SX127X_REG_FREQ_ERROR_LSB = 0x2a
|
|
SX127X_REG_RSSI_WIDEBAND = 0x2c
|
|
SX127X_REG_DETECTION_OPTIMIZE = 0x31
|
|
SX127X_REG_INVERTIQ = 0x33
|
|
SX127X_REG_DETECTION_THRESHOLD = 0x37
|
|
SX127X_REG_SYNC_WORD = 0x39
|
|
SX127X_REG_INVERTIQ2 = 0x3b
|
|
SX127X_REG_DIO_MAPPING_1 = 0x40
|
|
SX127X_REG_DIO_MAPPING_2 = 0x41
|
|
SX127X_REG_VERSION = 0x42
|
|
SX127X_REG_PA_DAC = 0x4d
|
|
// PA config
|
|
SX127X_PA_BOOST = 0x80
|
|
|
|
// Bits masking the corresponding IRQs from the radio
|
|
SX127X_IRQ_LORA_RXTOUT_MASK = uint8(0x80)
|
|
SX127X_IRQ_LORA_RXDONE_MASK = uint8(0x40)
|
|
SX127X_IRQ_LORA_CRCERR_MASK = uint8(0x20)
|
|
SX127X_IRQ_LORA_HEADER_MASK = uint8(0x10)
|
|
SX127X_IRQ_LORA_TXDONE_MASK = uint8(0x08)
|
|
SX127X_IRQ_LORA_CDDONE_MASK = uint8(0x04)
|
|
SX127X_IRQ_LORA_FHSSCH_MASK = uint8(0x02)
|
|
SX127X_IRQ_LORA_CDDETD_MASK = uint8(0x01)
|
|
|
|
// DIO function mappings D0D1D2D3
|
|
SX127X_MAP_DIO0_LORA_RXDONE = uint8(0x00) // 00------
|
|
SX127X_MAP_DIO0_LORA_TXDONE = uint8(0x40) // 01------
|
|
SX127X_MAP_DIO1_LORA_RXTOUT = uint8(0x00) // --00----
|
|
SX127X_MAP_DIO1_LORA_NOP = uint8(0x30) // --11----
|
|
SX127X_MAP_DIO2_LORA_NOP = uint8(0xC0) // ----11--
|
|
|
|
SX127X_PAYLOAD_LENGTH = uint8(0x40)
|
|
|
|
// Low Noise Amp
|
|
SX127X_LNA_MAX_GAIN = uint8(0x23)
|
|
SX127X_LNA_OFF_GAIN = uint8(0x00)
|
|
SX127X_LNA_LOW_GAIN = uint8(0x20)
|
|
|
|
// Bandwidth
|
|
SX127X_LORA_BW_7_8 = uint8(0x00)
|
|
SX127X_LORA_BW_10_4 = uint8(0x01)
|
|
SX127X_LORA_BW_15_6 = uint8(0x02)
|
|
SX127X_LORA_BW_20_8 = uint8(0x03)
|
|
SX127X_LORA_BW_31_25 = uint8(0x04)
|
|
SX127X_LORA_BW_41_7 = uint8(0x05)
|
|
SX127X_LORA_BW_62_5 = uint8(0x06)
|
|
SX127X_LORA_BW_125_0 = uint8(0x07)
|
|
SX127X_LORA_BW_250_0 = uint8(0x08)
|
|
SX127X_LORA_BW_500_0 = uint8(0x09)
|
|
// Automatic gain control
|
|
SX127X_AGC_AUTO_OFF = uint8(0x00)
|
|
SX127X_AGC_AUTO_ON = uint8(0x01)
|
|
// Operation modes
|
|
SX127X_OPMODE_LORA = uint8(0x80)
|
|
SX127X_OPMODE_MASK = uint8(0x07)
|
|
SX127X_OPMODE_SLEEP = uint8(0x00)
|
|
SX127X_OPMODE_STANDBY = uint8(0x01)
|
|
SX127X_OPMODE_FSTX = uint8(0x02)
|
|
SX127X_OPMODE_TX = uint8(0x03)
|
|
SX127X_OPMODE_FSRX = uint8(0x04)
|
|
SX127X_OPMODE_RX = uint8(0x05)
|
|
SX127X_OPMODE_RX_SINGLE = uint8(0x06)
|
|
SX127X_OPMODE_CAD = uint8(0x07)
|
|
|
|
SX127X_OPMODE_LOW_FREQUENCY = uint8(0x4)
|
|
|
|
SX127X_OPMODE_MODULATION_MASK = uint8(0x60)
|
|
SX127X_OPMODE_MODULATION_FSK = uint8(0x0)
|
|
SX127X_OPMODE_MODULATION_OOK = uint8(0x20)
|
|
|
|
SX127X_LORA_MAC_PUBLIC_SYNCWORD = 0x34
|
|
SX127X_LORA_MAC_PRIVATE_SYNCWORD = 0x14
|
|
)
|