目前遇到一个严重的问题,调试CC1101通信,我的接收方式采用的是中断接收,配置IOCFG0=0x06,即当接收到一个数据包后产生中断(我的数据包为超过61BYTE);我周期发送数据,但一段时间后,接收端中断信号无法产生,单步调试未发现FIFO溢出或者死循环的地方,目前通过定时刷新RXFIFO来保持接收,但丢包比较严重。驱动多参考TI简单协议栈里的代码,希望能得到给位前辈的帮助。非常感谢!
Nutcracker:
如果用的自己做的板子,建议先用TI 的参考板先验证你的代码,再用参考代码验证你的板子。
yiucing din:
我也遇到这个问题,工作一段时间之后(早上9点多到凌晨3点),就不能接受数据了,
但重设channel后,又可以接受了(我有几个按键用来设置channel寄存器值,切换监听不同的载波频率)
怎么解决的
工作于wor模式时,从来没出现这种情况
Nutcracker:
回复 yiucing din:
不能接受数据是什么原因有Debug过吗?是否是 Sleep 了?FIFO 的状态呢?
song xu1:
回复 Nutcracker:
我单步调试,为发现FIFO溢出(我有对FIFO溢出的检测操作);而且有时会发现GDO0长期处于高电平或者低电平状态;这些情况都是不定期发生的,由于我需要周期收发数据,目前只能用定时方法重新初始化CC1101来勉强维持工作,但如此频繁的初始化CC1101,担心会对射频寿命以及性能产生影响,不知道前辈能否给一个建议,非常感谢
yiucing din:
回复 song xu1:
判断FIFO是否溢出是在不停的读取MARCSTATE寄存器么
不过FIFO溢出不是也应该在GDO0上产生中断么
我现在将最长数据包长度从FF改到64再改到60,好像运行时间变长了
这说明什么
继续观察中
Nutcracker:
回复 yiucing din:
可能跟 PLL Calibration 相关。定期 Calibrate 呢?
yiucing din:
回复 Nutcracker:
Nutcracker
可能跟 PLL Calibration 相关。定期 Calibrate 呢?