Previously we have been using our own mPCIe design with the SX1301 + SX1257, but with the recent supply chain issues getting the SX1301 we’re working to integrate off-the-shelf reference designs based on the SX1302/03.
This issue relates to the SX1303 + SX1250 reference design card from RAKWireless (RAK5146) and having difficulty re-configuring the RX chain during operation. On the initial bring-up (using the SX1302 HAL) it appears the radios are configured properly and I’m able to RX our beacon on the downlink channel.
I attempt to reconfigure the RX chain on the fly using the following order of HAL functions:
sx1302_radio_host_ctrl(true)
sx1250_setup
sx1302_radio_set_mode
sx1302_radio_host_ctrl(false)
This results in the following errors (and obvious crash):
ERROR: Failed to set SX1250_0 in STANDBY_RC mode
ERROR: UNKNOWN TX STATUS 0x05
Side note: the datasheets for the SX1303 and SX1250 do not have any information regarding the registers so I cannot interpret the 0x05 status. Is there a document that describes the registers for these chipsets?
Following the HAL more closely, if I reset the front-end radios (sx1302_radio_reset) before sx1250_setup, it does what I expect it to do (no confirmations on the ability to RX), but it takes ~2.5s which is way too slow from our needs (reconfiguration with the SX1301 takes < 50ms).
I have also tried simply issuing the commands called in the setup function to change the frequency (e.g.):
sx1250_reg_w(SET_RF_FREQUENCY, buff, 4, rf_chain)
This also causes the same errors mentioned above.
It should be noted that we do not use the packet forwarder - we have our own radio + protocol software - but we are using the HAL layer.
The formal question is: What is the correct way of re-configuring the RX chain on-the-fly that doesn’t require completely stopping and re-starting the concentrator (lgw_stop, lgw_start)?
Thanks in advance.