关于CC1101的WOR模式的使用

为了提高通信稳定性,最近把原来工作在2.4K波特率的设备更改到了1.2K,出了点问题:第一次唤醒成功后,设备就唤不醒了,2.4K下是Ok的。
调试了下,发现我自己写的协议栈有些BUG,主要调试现象是:
1.之所以第一次唤醒成功后就再也唤不醒了,发现在第一次唤醒成功后程序的确是执行了重新进入WOR模式的函数,但是进入WOR模式失败,估计仍然停留在空闲状态下,这个是我看电流的时候发现的。
2.在发出WOR滤波指令前发布SWORRST命令,问题仍然没有得到解决,通过读WORTIMER寄存器发现SWORRST命令发布后WORTIMER的值不会马上更改,最后我把程序改了下:不停的发布SWORRST直到读到的WORTIMER的高字节不小于某个值(根据“进入WOR时不能太靠近EVENT0事件点”),用的是while语句,语句块中还进行喂狗,担心执行时间太长,测了下OK,但是跑了不到一天,程序死掉了,估计也不行。
3.后来又看了下资料,做了下改动,2的改动不要了,然后我在退出WOR模式后立刻把RC晶振关掉,在需要回到WOR模式后我再把RC晶振重新打开,问题解决,但稳定性如何还在测试中。

粽子糖果 发表于02-06 09:58 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

粽子糖果
粽子糖果(总统)
金币:41623个|学分:51975个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号