我正在CC1200的应用中处理大量连续数据传输。 一般来说,对讲机工作正常,但我遇到了一个问题,当我们的流量负载很重时,我无法解决。 对讲机运行良好几分钟,然后在我尝试传输数据包后停止更改状态。 我们发送到FIFO的数据包数据显示有效(PLEN字段正确且数据有效负载正常),并且我看不到任何Tx或Rx FIFO错误。
在此应用程序中,我们使用加密,但我已删除传输端的加密部分,问题仍然间歇性发生。 如果我删除了传输并仅接收,我到目前为止还没有看到芯片锁定。 出现问题时,芯片似乎卡在TX或空闲状态。 进一步的命令频闪改变到其他状态不起作用(我检查以确认状态变化,芯片状态永远不会离开它所停留的状态)。 例如,当需要发送下一次传输时,我首先确保对讲机处于空闲状态,但它从未返回到空闲状态,或者当我发出STX频闪灯时,芯片从未离开空闲状态。 CC1200 TXOFF寄存器参数设置为在Tx完成时自动返回Rx状态。
通常,我正在检查CC1200 GPIO线路中的一条以完成传输。 当发生卡在Tx状态的问题时,GPIO线路似乎永远不会高电平。 我也尝试通过SPI检查芯片状态,但问题发生时,它指示TX状态。
我尝试每500毫秒将对讲机置于关闭状态,然后返回到空闲状态(这就在其中一个传输之前),这不能防止问题发生。 我还尝试使用其他自动校准设置以及关闭自动校准和手动校准,但这也不能防止出现问题。
此时,我很不知道还能检查或尝试什么,除了CC1200的硬件重置,这需要花费太多时间才能在我们的应用程序中重新配置。 什么会导致CC1200在传输时像这样锁定?