kopia lustrzana https://github.com/pjalocha/esp32-ogn-tracker
118 wiersze
5.6 KiB
C
118 wiersze
5.6 KiB
C
#define CMD_SETSLEEP 0x84 // [1] set sleep
|
|
#define CMD_SETSTANDBY 0x80 // [1] set standby
|
|
#define CMD_SETFS 0xC1 // [0] test mode: set synthesis
|
|
#define CMD_SETTX 0x83 // [3] set transmitter mode, timeout [15.625us] ?
|
|
#define CMD_SETRX 0x82 // [3] set receive mode, timeout
|
|
#define CMD_STOPTIMERONPREAMBLE 0x9F // [1]
|
|
#define CMD_SETRXDUTYCYCLE 0x94 // [6] sleep/receive cycle to save power
|
|
#define CMD_SETCAD 0xC5 // [0]
|
|
#define CMD_SETTXCONTINUOUSWAVE 0xD1 // [1] test mode: continues wave
|
|
#define CMD_SETTXINFINITEPREAMBLE 0xD2 // [1] test mode: continues preamble
|
|
#define CMD_SETREGULATORMODE 0x96 // [1] 0 = LDO, 1=DC-DC + LDO
|
|
#define CMD_CALIBRATE 0x89 // [1]
|
|
#define CMD_CALIBRATEIMAGE 0x98 // [2]
|
|
#define CMD_SETPACONFIG 0x95 // [4] PA control: duty
|
|
#define CMD_SETRXTXFALLBACKMODE 0x93 // [1]
|
|
|
|
#define CMD_WRITEREGISTER 0x0D // write one or more registers
|
|
#define CMD_READREGISTER 0x1D // read one or more registers
|
|
#define CMD_WRITEBUFFER 0x0E // write the packet
|
|
#define CMD_READBUFFER 0x1E // read the packet
|
|
|
|
#define CMD_SETDIOIRQPARAMS 0x08 // [8] IRQ enable and masks for DIO1/2/3 outputs
|
|
#define CMD_GETIRQSTATUS 0x12 // [stat+2] get IRQ flags
|
|
#define CMD_CLEARIRQSTATUS 0x02 // [2] clear IRQ flags according to given mask
|
|
#define CMD_SETDIO2ASRFSWITCHCTRL 0x9D // [1] Use DIO2 as the RF switch control
|
|
#define CMD_SETDIO3ASTCXOCTRL 0x97 // [4] Use DIO3 as TCXO control: voltage, delay
|
|
|
|
#define CMD_SETRFFREQUENCY 0x86 // [4] frequency [Fxtal/2^25]
|
|
#define CMD_SETPACKETTYPE 0x8A // [1] 0x00=GFSK, 0x01=LoRa (must be the first configuration command)
|
|
#define CMD_GETPACKETTYPE 0x11 // [stat+1]
|
|
#define CMD_SETTXPARAMS 0x8E // [2] TxPower: -17..+14 or -9..+22 [dBm] depending on PA config RampTime: 0..7: 10,20,40,80,200,800,1700,3400us
|
|
#define CMD_SETMODULATIONPARAMS 0x8B // [8] depends on the protocol: FSK or LoRa
|
|
#define CMD_SETPACKETPARAMS 0x8C // [9]
|
|
#define CMD_SETCADPARAMS 0x88 // [ ]
|
|
#define CMD_SETBUFFERBASEADDRESS 0x8F // [2] Tx-base address, Rx-base address
|
|
#define CMD_SETLORASYMBNUMTIMEOUT 0xA0 // [1] timeout [symbols]
|
|
|
|
#define CMD_GETSTATUS 0xC0 //
|
|
#define CMD_GETRSSIINST 0x15 // [stat+1] RX-RSSI at this moment
|
|
#define CMD_GETRXBUFFERSTATUS 0x13 // [stat+2] RX-packet: length, buffer pointer
|
|
#define CMD_GETPACKETSTATUS 0x14 // [stat+3] RX-packet: RSSI/SNR
|
|
#define CMD_GETDEVICEERRORS 0x17 // [stat+2] rrrrrrrP rPXIAPRR
|
|
#define CMD_CLEARDEVICEERRORS 0x07 // clear the above error
|
|
#define CMD_GETSTATS 0x10 // [stat+6] RX-statistics: packets, errors
|
|
#define CMD_RESETSTATS 0x00 // [stat+6] RX-statistics reset
|
|
|
|
// registers
|
|
#define REG_DIOXOUTPUTENABLE 0x0580
|
|
#define REG_DIOXINPUTENABLE 0x0583
|
|
#define REG_DIOXPULLUPCONTROL 0x0584
|
|
#define REG_DIOXPULLDOWNCONTROL 0x0585
|
|
|
|
#define REG_WHITENINGMSB 0x06B8
|
|
#define REG_WHITENINGLSB 0x06B9
|
|
|
|
#define REG_CRCINITVALMSB 0x06BC
|
|
#define REG_CRCINITVALLSB 0x06BD
|
|
#define REG_CRCPOLYVALMSB 0x06BE //
|
|
#define REG_CRCPOLYVALLSB 0x06BF
|
|
|
|
#define REG_SYNCWORD0 0x06C0 //
|
|
#define REG_SYNCWORD1 0x06C1
|
|
#define REG_SYNCWORD2 0x06C2
|
|
#define REG_SYNCWORD3 0x06C3
|
|
#define REG_SYNCWORD4 0x06C4
|
|
#define REG_SYNCWORD5 0x06C5
|
|
#define REG_SYNCWORD6 0x06C6
|
|
#define REG_SYNCWORD7 0x06C7
|
|
|
|
#define REG_NODEADDRESS 0x06CD
|
|
#define REG_BROADCASTADDR 0x06CE
|
|
|
|
#define REG_IQPOLARITYSETUP 0x0736
|
|
|
|
#define REG_LORASYNCWORD 0x0740 //
|
|
#define REG_LORASYNCWORDMSB 0x0740 //
|
|
#define REG_LORASYNCWORDLSB 0x0741 //
|
|
|
|
#define REG_RANDOMNUMBERGEN0 0x0819 //
|
|
#define REG_RANDOMNUMBERGEN1 0x081A
|
|
#define REG_RANDOMNUMBERGEN2 0x081B
|
|
#define REG_RANDOMNUMBERGEN3 0x081C
|
|
|
|
#define REG_RXGAIN 0x08AC // 0x96 for max LNA gain, increase current by ~2mA for around ~3dB in sensivity
|
|
|
|
#define REG_OCPCONFIG 0x08E7 // max. PA current ?
|
|
|
|
#define REG_RTCCONTROL 0x0902
|
|
|
|
#define REG_XTATRIM 0x0911
|
|
#define REG_XTBTRIM 0x0912
|
|
|
|
#define REG_EVENTMASK 0x0944
|
|
|
|
// IRQ types
|
|
#define IRQ_TXDONE (1 << 0)
|
|
#define IRQ_RXDONE (1 << 1)
|
|
#define IRQ_PREAMBLEDETECTED (1 << 2)
|
|
#define IRQ_SYNCWORDVALID (1 << 3)
|
|
#define IRQ_HEADERVALID (1 << 4)
|
|
#define IRQ_HEADERERR (1 << 5)
|
|
#define IRQ_CRCERR (1 << 6)
|
|
#define IRQ_CADDONE (1 << 7)
|
|
#define IRQ_CADDETECTED (1 << 8)
|
|
#define IRQ_TIMEOUT (1 << 9)
|
|
#define IRQ_ALL 0x3FF
|
|
|
|
// Operating modes
|
|
#define MODE_SLEEP 0 // The radio is in sleep mode
|
|
#define MODE_STDBY_RC 1 // The radio is in standby mode with RC oscillator
|
|
#define MODE_STDBY_XOSC 2 // The radio is in standby mode with XOSC oscillator
|
|
#define MODE_FS 3 // The radio is in frequency synthesis mode
|
|
#define MODE_TX 4 // The radio is in transmit mode
|
|
#define MODE_RX 5 // The radio is in receive mode
|
|
#define MODE_RX_DC 6 // The radio is in receive duty cycle mode
|
|
#define MODE_CAD 7 // The radio is in channel activity detection mode
|
|
|