本帖最后由 Jacktang 于 2019-6-3 23:28 编辑
SDK版本:simplelink_cc13x0_sdk_1_60_00_21
IAR版本:IAR8.11.1
代码:
C:\ti\simplelink_cc13x0_sdk_1_60_00_21\examples\rtos\CC1310_LAUNCHXL\drivers\rfWakeOnRadioTx & rfWakeOnRadioRx
测试步骤:
1.默认的WOR例程是500ms唤醒一次,检测空中是否有数据包需要接收,设置WOR_WAKEUPS_PER_SECOND为2表示1s钟唤醒2次,即500ms唤醒一次
2.如果要实现5s钟唤醒一次,理论上则需要修改WOR_WAKEUPS_PER_SECOND为0.2即可,1s钟唤醒0.2次,即5s钟唤醒一次。
出现的问题:
实际测试发现,RX一直在Timeout状态,收不到数据,上E2E搜,发现有类似问题,解决办法如下:
解决办法:
1.修改TX和RX代码中WOR_WAKEUPS_PER_SECOND为0.2,最好写成0.2f,表示这是个float型的参数
2.修改TX代码TxAdv命令触发方式为立即触发,如果不改这里则会出现,第一包发完之后,后面都是500ms发一包而不是5s发一包(至于为什么要这么改,目前还不清楚)
3.修改RX代码中wakeupPerSecond类型为float型:
测试结果:
TX每5s发一包,RX在检测到前导码后继续等待,直到TX发完前导码。(表现为CC1310 LP的红灯先亮,表示检测到空中有前导码,唤醒CC1310,然后接收数据包,校验无误后点亮绿灯),串口log如下:
|