"); //-->
在物联网的发展中,433M在工业领域被普遍采用。从小的环境温度采集,到车辆设备监控,再到机器视觉的传输。无线连接因布线简单,安装方便,低功耗等性能被更广泛推广。
433M低频被工业控制中广泛采用主要侧重以下几点:
1) 频点低,波长长,传输距离远。
2) 穿透力强。
3) 此频段免费。
TI的CC1101是一款低成本真正单片的UHF收发器。电路主要设定为在315、433、868和915MHz的ISM(工业,科学和医学)和SRD(短距离设备)频率波段,也可以容易地设置为300-348 MHz、400-464 MHz和800-928 MHz的其他频率1)。
另外它还具有Wake on Radio 电磁波唤醒功能。当它从200nA睡眠模式唤醒时仅用240us;再搭配上64字节的接收、发送缓存,在电池供电的无线传输设备中脱颖而出。
CC1101是TI的无线通信器件(sub-1GHz),其主要针对工业、科研和医疗(ISM)以及短距离无线通信设备(SRD)。CC1101可提供对数据包处理、数据缓冲、突发传输、接收信号强度指示(RSSI)、空闲信道评估(CCA)、链路质量指示(LQI)以及无线唤醒(WOR)的广泛硬件支持。支持多种信号调制模式(OOK/ASK、GFSK、2-FSK、4-FSK和MSK);支持1.2kbps-500kbps的data rate。最大发射功率10dBm。
一般的模块有8个管脚,其中包括有3个GDO管脚(GDO1和MISO共用),在不需要使用同步串口模式下,额外配置一个GDO管脚就几乎可以满足所有使用需求;我也尝试只使用GDO1(即SPI的MISO管脚)来实现信号获取,这样只需要4线SPI就可以完成设计,但这样使用就涉及不同操作时期的中断使能失能处理,一些IOCFG配置和可以嵌套组合的中断就没法使用了,相比于多占用一个管脚来说有点得不偿失。
在开始使用CC1101时,建议不要配置PKTLEN (Packet length)寄存器,配置了这个寄存器后在读数据时容易出现一些隐藏的问题,比如你配置了30,在连续读的时候实际读取的数量大于了30就读不到任何数据。
接收不到数据的原因总结:1、没有和发送端匹配一些关键的寄存器配置,如data rate,同步字,调制模式等;2、没有设置好频率校准,或者关闭了自动校准功能;3、读取数据的指令不对,如读取数据数量大于长度限制;4、读取数据的时间不对,没有足够的等待,需要充分考虑CC1101低速率器件,动辄就是ms级的延时;5、没有进入发送状态或者进行一下状态切换,一般每次接收后需要进行校准然后再进入接收状态,如果配置的IOCFG是和FIFO threshold相关的,还需要有清理FIFO的操作,不然不会再次触发中断的。
数据没发送出去的原因总结:1、CCA,信道被长期占用或前导码太长,而MCU对CC1101的操作频度太快,还没完成上一个指令就被新指令覆盖了,当然接收到的数据前面的正确后面的乱码也是这个原因;2、没有STX的指令或者没有进入发送状态;3、没有配置必要的寄存器,如功率表寄存器PaTabel;4、电源供电不满足条件,CC1101在10dBm发射下的电流需求约28ma,供电不满足也很难正常工作。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。