CC1310 WOR如何设置几秒钟醒一次

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发一包(至于为什么要这么改,目前还不清楚)
CC1310 WOR如何设置几秒钟醒一次_第1张图片
3.修改RX代码中wakeupPerSecond类型为float型:
在这里插入图片描述

测试结果:
TX每5s发一包,RX在检测到前导码后继续等待,直到TX发完前导码。(表现为CC1310 LP的红灯先亮,表示检测到空中有前导码,唤醒CC1310,然后接收数据包,校验无误后点亮绿灯),串口log如下:
CC1310 WOR如何设置几秒钟醒一次_第2张图片

你可能感兴趣的:(CC1310)