CC2500,自制板发出的数据无法被SmartRF识别。
现有:
(1)TI的SmartRF用板子2块。
(2)自制板1块。
(3)CC2500模块板3块。
情况如下:
(1)对TI的两块板子:一块设成TX,一块设成RX。
SmartRF下,在RX侧可以收到TX侧发来的数据包。
(2)将上述TX侧板子的SmartRF中看到的寄存器设置导出,写入自制板。
(3)自制板做如下操作:
1,SCAL→SFTX
2,向FIFO中写入 abc[]={0x01,0x02,0x03};
3,发送STX命令。
(4)周期1[s]循环上述(3)的操作,
此时无线信号检测机能够检出对应频率电波。但是SmartRF的RX侧板却无法收到任何数据包。
(5)发送时查看TX FIFO的Byte数,确实在减少,说明确实已经发出去了。
直到最后系统的状态返回值变成70h/7Fh,也就是UnderFlow状态。
问题:
寄存器设置明明是一样的,就是说同步码、字长、频率等各种设置等都是相同的,
可是为什么SmartRF侧无法收到数据包呢?
除了寄存器设置外,还应该注意些别的什么吗?
现在已经黔驴技穷了。恳请各位高手给点提示!
(2)(3)步能再详细点吗?你的MCU用的什么(SPI是否调通了)?你怎么导出的?贴点发送程序看看。
实在不行,下个SIMPLICITI,在目录下搜family 1的mac_radio.c.看看初始化,和发送函数。(MRFI_Transmit(。。。))
您好,感谢回信!我听您的参考一下相关资料。
现在问题已经解决了。十分感谢!
我的MCU用的是瑞萨的RX系列。SPI设置OK,读写寄存器也没问题。
这次的原因是因为将CC2500设置成了“可变长”的数据包。
SmartRF里面数据包开头的“数据包长度”和“地址”是自动生成并发送的。
但是自己写的程序没有注意到这一点,所以发送 A[]={0xf0,0xf1,0xf2};
的时候“0xf0”被当作了“数据包长度”,导致underflow情况。
所以SmartRF侧无法正常接收。
也感谢你分享经验。^_^
您好,得打扰您一下,请问怎么实现串口透传,需要自己增加定义profile,属性吗
您好。
我不太理解您说的【透传】和【profile】的意思。
请告诉我您搭建的系统环境。
比如MCU,所用的编译环境,语言等。