拿了CC1101的片子做的遥控器,测试发现电磁波唤醒这个功能停揪心的。
配置tEvent0周期为1s,Rxtimeout占空比12.5%,125ms接收超时
发送接收使能同步字检测。也就是说接收模块处于WOR模式下,只要我发送的频率>10Hz(周期小于120ms)。就能保证接收端能被可靠唤醒。
现碰到几个问题:
1.目前发送速率为1.2K,偶尔出现唤醒时间>1s的,即发送端需要连续发送>1s,才能可靠唤醒模块。这块是否需要提高发送速率或者是配置减少同步字检测(目前配置的是30、32位同步字检测,改成16位)
2.因为使能了同步字检测,也就是说接收端需要检测到同步字后才能被唤醒?但是发送端在TX缓存为空时只会连续发送引导码。也就意味无法进行空载发送了
3.目前想应用到遥控上面,发现加上应答完成一次操作时间大于1s,用户体验不佳。不知道有什么机制可以优化,接收端会在100ms – 2s内随机唤醒,也就是接收端被唤醒后能通知发送端自身已被唤醒,能及时进行协议命令的通信。但实际发送端在狂发数据,无法得知接收端已经被唤醒
da qin zheng sheng:
发送端先发送唤醒指令,停一会,开始等待接收唤醒回复。
user4603813:
回复 da qin zheng sheng:
感谢回复。
我想是连续发送50ms后,进入接收模式监听接收端的应答。
计算了一下一帧数据的发送时间 (32+ 32+8+8+8*4+8*2)/1.2K = 106ms
发送时间上完全不够,目前需要重新配置发送速率。其实现在挺头痛的。就是不知道怎么配置频偏、滤波带宽。
因为不是很清楚他们的关系,仅仅修改速率压根不行。