SI4463 发送与接收不同步的问题

2019-09-01 23:53

SI4463 发送与接收不同步的问题

SI4463配置为使用变长度包传送模式,主机发送数据,从机接收数据,然后从机回传数据至主机。

发现,主机数据发送完毕后,从机并不是立即接收到,而是经过一个延迟(该延迟不固定,与包长度有关)。在此,将主机和从机的SI4463上的NIRQ信号接至示波器观察(使能包传送完毕和接收完毕中断)。

这里,通信前导字为8个字节,同步字为2个字节,包长度位为1个字节,包数据为8个字节,无CRC。数据串行速率为1kbps,主机理论上发送完毕需时间(8+2+1+8)*8/1k=0.152s,实际测试为160ms。而示波器显示,从机经过0.12s后,NIRQ才变低。

读取RX FIFO的状态,在从机接收完毕后,RX FIFO中的个数理论上应该是(1个字节的包长度+8个字节的数据=9),而在从机NIRQ变低后,读取的RX FIFO个数为0x18,即24个,多读取了15个,理论上多耗时15*8/1k=0.12s,与实测相吻合。

因为读取时是按包读取,即RX FIFO第一个值为8(包长度),然后接下来只读取8个数据,并且在下次接收数据之前,会重新reset RX FIFO,所以并不会出错(倘若在进行下次操作之前不重新reset RX FIFO,则下次接收会出错)。但仍然存在的问题是带来的延迟较大。

奇怪现象:若从机只是接收,不进行发送操作,则主机发送完毕后,从机也同时收到,RX FIFO中的个数与主机发送的个数相吻合。一旦进行发送操作后,则从机的接收就会出现延迟现象,RX FIFO中的个数也异常。所以,自然想到若在从机发送完毕后,重新对SI4463进行初始化操作(像上电初始化那样),则一定可以保证下次接收会与主机的发送同步。事实也是如此。但如果全部重新初始化,也耗费时间。进一步发现,只须对RF_PKT_LEN_12部分进行初始化(由WDS自动生成的头文件)。

即在每次发送完毕后,重新配置下RF_PKT_LEN_12部分的寄存器(进一步发现是PKT_FIELD_1_LENGTH_12_8、7_0),然后可保证从机下次接收与主机的发送同步。


SI4463 发送与接收不同步的问题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:21世纪杯全国英语演讲比赛心得 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: