Sub-GHz radio (SUBGHZ) RM0453
206/1450 RM0453 Rev 5
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.