Radio Control Layer (RCL)
|
The generic Rx command allows to receive packets at a specific RF frequency and with a specific syncword. The following sections describe how the command can be configured and used, its life cycle, and how it fits into the RCL architecture.
In order to submit a Generic Rx command, the following steps must have taken place:
Once these steps have been completed, RCL_Command_submit and RCL_Command_pend are called to effectively send and then wait for the command to conclude. Once this has happened, the callback and the command status can be used for error checking and the application can proceed according to its specification.
The Generic Rx command is normally employed when the user wants to receive a packet where the RCL does not provide a dedicated handler for the communication protocol. In this case, it is up to the application to define how packets are built (for the Tx side) and how they are meant to be received (for the Rx side). All of this while also considering the internal packet format in which packets are stored in the LRF FIFOs.
Just as with any command, it's necessary to declare it and configure it before submitting it. However, since this is a Rx operation, in addition to performing the command configuration, it is also necessary to set up the Rx buffers to store the packets. Furthermore, the timing information stored in the common command configuration can be used to set graceful stop and hard stop times.
One particularity about the Generic Rx command handler is that if supported on the PHY, it is possible to configure the LRF so that it listens to two different syncwords (known as SyncwordA and SyncwordB).
The Generic Rx command handler has a life cycle that depends on several things. For instance, the operation can be configured so that it concludes once a correct or incorrect packet is received. It can also conclude after having received several packets due to a graceful (or hard) stop. The operation can also conclude when the LRF hasn't found a sync after a specific amount of time set by the protocol, or by a graceful (or hard) stop.
RCL Event (In) | Description |
---|---|
setup | Setup has been performed |
timerStart | Timer-based start signalled |
rxBufferUpdate | RX buffer has been updated |
RCL Event (Out) | Description |
---|---|
lastCmdDone | The RCL is finished with the command |
cmdStarted | Command handler has accepted and started executing |
rxBufferFinished | An RX multi-buffer is finished |
rxEntryAvail | An RX entry has been made available |
LRF Event | Description |
---|---|
opDone | The PBE operation has finished |
opError | Something went wrong. Cause located in the PBE ENDCAUSE register |
rxOk | Packet received with CRC OK and not to be ignored by the MCU |
rxNok | Packet received with CRC error |