收发均采用cc1101, 接收完了cc1101配置在RX模式,接收使用的是GDO0电平变化来产生中断。
问题是,发送端有时候发送的信号质量不太好(可能是供电时间、电压不稳定导致),接收端有时候会接收不到(表现在GDO0电平不变化),需要将cc1101状态置为空闲模式再置为接收模式来校准一下,才能继续接收。
Barbara Wu:
需要校准可能的原因有很多
比如频点不准了,比如因为RX FIFO已经满溢了需要把标志位清空再接收
建议先在TI的开发板上用smartRF studio尝试一直接收是否会有问题 再来看是软件还是硬件需要调整
Nutcracker:
你这个发送接收是在什么模式?是功能模式还是测试用的连续收发模式?你可以设法用信号发生器或者一个TI的评估板来作发送端。
shuixiu xu:
回复 Nutcracker:
不是连续发送,一次发送若干个字节的数据,间隔几百ms发送一次,发送端一直发。
WBJ说可能因为RX FIFO已经满溢了需要把标志位清空再接收。发送端一次才发送几个字节,远小于RX FIFO的64字节,满溢的可能性不是太大。
Barbara Wu:
回复 shuixiu xu:
请问如果用TI的dem板测试 会出现类似情况吗?
shuixiu xu:
回复 Barbara Wu:
身边没有TI的demo板,所以也没试过
Nutcracker:
回复 shuixiu xu:
CC1101 的快时钟晶振频偏是多少? 调过吗?
Long King:
兄弟,我也遇到过这种问题,可能这个芯片有bug,但是ti不会承认的,也别指望技术支持能解答得了,这个芯片有诸多问题,例如这个芯片工作在datarate=38.4kbps下,某些频道串扰问题,当然也包括你的这个需要校准问题,我现在采用的解决方法只能是用定时器做超时判断,超时收不到数据了,就校准一下,只能如此。
Nutcracker:
回复 Long King:
CC1101 是一颗非常成熟的芯片,已经推出市场十多年了。确认的问题都有发布 Errata (勘误文档),请参考。
http://www.ti.com/lit/er/swrz020d/swrz020d.pdf
勘误文档有说明出错的情况,原因,和对应的解决办法。