之前我们一直在SX1301 + SX1257上使用我们自己的mPCIe设计,但由于最近的供应链问题,我们正在努力集成基于SX1302/03的现货参考设计。

此问题涉及RAKWireless (RAK5146)的SX1303 + SX1250参考设计卡,在运行期间难以重新配置RX链。在最初的调出(使用SX1302 HAL)时,无线电似乎配置正确,我能够在下行通道上RX我们的信标。

我尝试使用以下HAL函数的顺序来动态地重新配置RX链:

sx1302_radio_host_ctrl(真正的)
sx1250_setup
sx1302_radio_set_mode
sx1302_radio_host_ctrl(假)

这会导致以下错误(和明显的崩溃):
错误:在STANDBY_RC模式下设置SX1250_0失败
错误:未知的TX状态0x05

旁注:SX1303和SX1250的数据表没有任何关于寄存器的信息,所以我无法解释0x05状态。是否有文档描述这些芯片组的寄存器?

更密切地关注HAL,如果我在sx1250_setup之前重置前端无线电(sx1302_radio_reset),它会做我期望它做的事情(没有RX能力的确认),但它需要大约2.5s,这比我们的需求太慢了(用SX1301重新配置需要< 50ms)。

我也尝试过简单地发出设置函数中调用的命令来改变频率(例如):

(SET_RF_FREQUENCY, buff, 4, rf_chain)

这也会导致上面提到的相同错误。

值得注意的是,我们不使用数据包转发器——我们有自己的无线电+协议软件——但我们使用的是HAL层。

正式的问题是:在不需要完全停止和重新启动集中器(lgw_stop, lgw_start)的情况下,动态重新配置RX链的正确方法是什么?

提前谢谢你。