
RM0453 Rev 2
205/1454
RM0453
Sub-GHz radio (SUBGHZ)
217
5.9.2
Basic sequence for LoRa and (G)FSK receive operation
The sub-GHz radio can be set in LoRa or (G)FSK receive operation mode with the following
steps:
1.
Define the location where the received payload data must be stored in the data buffer,
with
Set_BufferBaseAddress()
.
2. Select the packet type (generic or LoRa) with
Set_PacketType()
.
3. Define the frame format with
Set_PacketParams()
.
4. Define synchronization word in the associated packet type SUBGHZ_xSYNCR(n) with
Write_Register()
.
5. Define the RF frequency with
Set_RfFrequency()
.
6. Define the modulation parameters with
Set_ModulationParams()
.
7. Enable RxDone and timeout interrupts by configuring IRQ with
Cfg_DioIrq()
.
8. Start the receiver by setting the sub-GHz radio in RX mode with
Set_Rx()
:
–
When in continuous receiver mode, the sub-GHz radio remains in RX mode to
look for packets until stopped with
Set_Standby()
.
–
In single mode (with or without timeout), when the reception is finished, the
sub-GHz radio enters automatically the Standby mode.
–
In listening mode, the sub-GHz radio repeatedly switches between RX single with
timeout mode and Sleep mode.
9. Wait for sub-GHz radio IRQ interrupt and read the interrupt status with
Get_IrqStatus()
:
a) On a RxDone interrupt, a packet is received:
–
Check received packet error status (header error, crc error) with
Get_IrqStatus()
.
–
When a valid packet is received, read the receive start buffer pointer and received
payload length with
Get_RxBufferStatus()
.
–
Read the received payload data from the receive data buffer with
Read_Buffer()
.
b) On a timeout interrupt, the reception is timed out.
10. Clear interrupts with
Clr_IrqStatus()
.
11. Optionally, send a
Set_Sleep()
command to force the sub-GHz radio in Sleep mode.