查看: 2070|回复: 2

CC1101学习笔记——初步认识

[复制链接]
  • TA的每日心情
    擦汗
    2024-5-31 10:44
  • 签到天数: 1492 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-1-7 12:16:50 | 显示全部楼层 |阅读模式
    分享到:
    CC1101寄存器比较多,配置起来相对复杂,而且应用方面很灵活,要注意的点也不少,还需要一定的射频知识,要不然一些专业术语看不懂。应该说学习起来难度还是有的,把它当做无线的入门来好好学习下也是非常有必要的。
       借助SmartRF软件,大大的简化了寄存器配置的难度,使得上手方便了不少。以下引用一段介绍:
       “CC1101是一种低成本真正单片的UHF收发器,为低功耗无线应用而设计。电路主要设定为在315、433、868和915MHz的ISM(工业,科学和医学)和SRD(短距离设备)频率波段,也可以容易地设置为300-348MHz、400-464MHz和800-928MHz的其他频率。RF收发器集成了一个高度可配置的调制解调器。这个调制解调器支持不同的调制格式,其数据传输率可达500kbps。通过开启集成在调制解调器上的前向误差校正选项,能使性能得到提升。CC1100为数据包处理、数据缓冲、突发数据传输、清晰信道评估、连接质量指示和电磁波激发提供广泛的硬件支持。”
       CC1101是通过SPI方式与MCU相连,可以通过MCU自带的硬件SPI,3线模式,或者MCU模拟SPI来驱动。
    寄存器的配置:
    CC1101寄存器地址是0~0x3F,配置的内容在BIT0~BIT5中
    读写控制是BIT7,BIT7为1时,为读对应的寄存器,BIT7为0时,为写相应的寄存器。
    那么还剩下一个BIT6,BIT6是突发访问控制为,BIT6为1为突发访问,BIT6为0为单字节访问。(突发访问下面说)
    这样我们就可以很容易理解了,比如配置PKTCTRL0寄存器,其地址0x08,我们突发访问写的话写先数据0x48,再连续写数据,这里明白了突发访问后就很容易知道了,如果单字节读这个寄存器,先写数据0x88,读一下就可以了。
    命令滤波:
    只要写一下对应的寄存器的地址,不用写数据,它就内部自动执行相应的指令,比如重启芯片,设置为发送模式,共有14个滤波指令,地址从0x30~0x3D。关于滤波指令的状态寄存器其实是可读不可写的,也就是0x30~0x3D的地址加上0xC0,(BIT7 和IBT6为1,前面说过了),比如写数据0xF4,就可以读到相应RSSI状态寄存器里面的值。一般所有的滤波命令会立即执行,但是SPWD(休眠滤波命令)不会立即执行,它会延迟到CSn为高时执行。
    数据包格式:
    可以看出数据包由前导码,同步字节,可选的数据包长度,可选的目标地址,真正数据区,2字节的CRC校验码。
    CC1101状态字节:
    当通过SPI接口,寄存器被写入或者写入滤波命令,状态字节就会在SO管脚上输出
    接收模式下的数据包滤波,CC1101支持包括地址滤波和最大长度滤波两种滤波方式。
    地址滤波:设置PKTCTRL1.ADR_CHK大于0开启数据包地址滤波,radio将数据包中的目标地址字节的值同自己ADDR寄存器值和广播地址(0x00,0xFF)进行比较,如果匹配则数据包被写到RX FIFO,否则数据包被丢失。
    最大长度滤波:在可变数据包长度模式下,PKTLEN.PACKET_LENGTH寄存器的值用来设置最大允许数据包长度,当接收字节值比这个值大,则数据包被丢弃。
    注:当设置PKTCTTL1.ADRCHK=10时广播地址为0x00,当设置PKTCTTL1.ADRCHK=11时,广播地址为0x00和0xFF。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-5-31 10:44
  • 签到天数: 1492 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2014-1-7 12:17:27 | 显示全部楼层
    这段时间准备搞CC1101,大家一起交流啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-9-22 13:53
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2014-5-22 13:51:10 | 显示全部楼层
    wudianjun2001 发表于 2014-1-7 12:17
    这段时间准备搞CC1101,大家一起交流啊

    楼主,cc1100e无线的芯片应该搞好了吧?我想请教其中“休眠”你是怎么做的?有完整参考代码吗?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-25 20:34 , Processed in 0.133646 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.