本文主要是关于cc1101的相关介绍,并着重对cc1101工作原理进行了详尽的叙述。
cc1101
cc1101 [1] 是一款低于1ghz设计旨在用于极低功耗rf应用。其主要针对工业、科研和医疗(ism)以及短距离无线通信设备(srd)。cc1101可提供对数据包处理、数据缓冲、突发传输、接收信号强度指示(rssi)、空闲信道评估(cca)、链路质量指示以及无线唤醒(wor)的广泛硬件支持。cc1101在代码、封装和外引脚方面均与cc1100兼容,可用于全球最为常用的开放式低于1ghz频率的rf设计。● 超低功耗无线收发器● 家庭和楼宇自动化● 高级抄表架构(ami)● 无线报警安全系统◆ 387.0mhz~464.0mhz工作频段。(433mhz,0.6kbps,1%误码率时为-116dbm)。(接收模式,433mhz,1.2kbps时仅16.0ma)。◆ 最高可设置为+10dbm的发射功率。◆ 支持0.6kbps~500kbps的数据传输速率。◆ 支持多种调制模式(ook、ask、gfsk、2-fsk、4-fsk和msk)。◆ 提供对同步字检测、地址校验、灵活的数据包长度以及自动crc处理的支持。◆ 支持rssi(接收信号强度指示)和lqi(链路质量指示)。◆ 通过4线spi接口与mcu连接,同时提供2个可设定功能的通用数字输出引脚。◆ 独立的64字节rxfifo和tx fifo。◆ 工作电压范围:1.9v~3.6v,待机模式下电流仅为200na。◆ 工作温度范围:-40℃~+85℃
基于与stm32的cc1101接口移植
移植原来ti对于cc1101与msp430接口库到stm32平台,参考原ti库应用笔记“ msp430 interface to cc1100/2500 code library”,做到尽量保持所有函数名不改变,以方便以前基于msp430的程序向stm32移植。
【要求】
1.编程要求:改写原来基于msp430的程序,使用于stm32,尽量保持所有函数名不改变,以方便以前基于msp430的程序向stm32移植。
2.实现功能:stm32与cc1101通过spi接口正常传输数据,不同节点的cc1101可以正常传输数据。
3.实验现象:stm32与cc1101连接后,可以与另一个节点通信,节点初始在随机时间发送一个数据,任一节点收到数据后led闪一下,并把数据回传,如此循环,会看到led不停闪烁。
【硬件电路】
测试时cc1101与stm32引脚连接表如表1所示。
原理】
cc1101是ti公司一款高性价比的单片uhf收发器,为低功耗无线电应用而设计。它是cc1100器件的加强升级版,灵敏度更高,功耗更小,带宽更大。cc1101可满足多个领域中的低功耗无线应用要求,如警报与安全、自动抄表、工业监控以及家庭和楼宇自动化等。cc1101理想适用于工业、科学及医药设备(ism)以及316、433、868及916mhz短距装置(srd)频带。但是,该器件也可方便编程,以支持其它频率,如300-348mhz、387-467mhz及779-928mhz等。出色的频带与调制格式支持使其能与目前的rf终端设备相兼容。
图1 cc1101 的外引脚图(俯视)
cc1100通过4线spi兼容接口 (si,so,sclk和 csn)配置。这个接口同时用作写和读缓存数据。spi 接口上所有的处理都同一个包含一个读/写位,一个突发访问位和一个 6 位地址的头字节一起作用。在地址和数据转换期间, csn 脚 (芯片选择,低电平有效)必须保持为低电平。如果在过程中 csn 变为高电平,则转换取消。当 csn 变低, 在开始转换头字节之前, mcu必须等待,直到 so脚变低。这表明电压调制器已经稳定,晶体正在运作中。除非芯片处在 sleep 或 xoff 状态,so 脚在 csn变低之后总会立即变低。关于cc1101对配置寄存器写和读操作如图2所示。
芯片状态位
当头字节在 spi 接口上被写入时,芯片状态字节在 so 脚上被 cc1100 写入。状态字节包含关键状态信号,对mcu是有用的。第一位 s7,是chip_rdyn 信号。在 sclk的在第一个正边缘之前,这个信号必须变低。chip_rdyn 信号表明晶体正处于工作中,调节数字供给电压是稳定的。6,5 和4 位由状态值组成。这个值反映了芯片的状态。 当使 xosc 空闲并使数字中心的能量开启,所有其他模块处于低功耗状态时。只有芯片处于此状态时,频率和信道配置才能被更新。当芯片处于接收模式时, rx状态是活动的。同样地,当芯片处于发送模式时,tx状态是活动的。状态字节中的后四位( 3 :0)包含fifo_bytes_available。为了进行读操作,这个区域包含可从 rx fifo 读取的字节数。为了进行写操作,这个区域包含可写入 tx fifo 的 字节数。
寄存器访问
cc1100配置寄存器位于spi地址从0x00到0x2f之间。所有的配置寄存器均能读和写。当对寄存器写时,每当一个待写入的数据字节传输到 si脚时,状态字节将被送至 so脚。 通过在地址头设置突发位,连续地址的寄存器能高效地被访问。这个地址在内部计数器内设置起始地址。每增加一个新的字节计数器值增加 1。 突发访问,不管是读访问还是写访问,必须通过设置csn 为高来终止。对 0x30-0x3d间的地址来说, 突发位用以在状态寄存器和命令滤波之间选择。状态寄存器只读。突发读取对状态寄存器是不可取的,故它们每次只能被读一个。
命令滤波
命令滤波可被视为 cc1100 的单字节指令。通过命令滤波寄存器的选址,内部序列被启动。这些命令用来关闭晶体振荡器,开启传输模式和电磁波激活等。命令滤波寄存器的访问和一个寄存器的写操作一样,但没有数据被传输。就是说,只
有 r/w 位(置为 0) ,突发访问(置为 0)和六个地址位(0x30和0x3d之间)被写。一个命令滤波可能在任何其他 spi 访问之后,而不需要将 csn 拉至高电平。命令滤波立即被执行,当 csn 高时 spwd和 sxoff滤波是例外。
fifo访问
64 字节 tx fifo 和 64 字节 rx fifo 通过0x3f 被访问。当读/写位为 0 时,tx fifo被访问,当读/写位为 1 时,rx fifo 被访问。 tx fifo是只写的,而 rx fifo是只读的。突发位用来决定 fifo 访问是单字节还是突发访问。单字节访问方式期望地址的突发位为 0 及1 数据字节。在数据字节之后等待一个新的地址,因此,csn继续保持低。突发访问方式允许一地址字节,然后是连续的数据字节,直到通过设置 csn 为高来关断访问。 当对 tx fifo写时,状态字节对每个 so脚上的新数据字节是输出量,如图 6 所示。这个状态位能用来侦测对 tx fifo 写数据时的下溢。注意,状态字节包含在写入字节到 tx fifo 的过程前空闲的字节数。当最后一个适合 tx fifo的字节被传送至 si 脚后, 被 so脚接收的状态位会表明在 tx fifo中只有一个字节是空闲的。
传输 fifo 可能会通过发布一个 sftx 命令滤波而被淹没。相似地,一个 sfrx命令滤波会淹没接收 fifo。当进入休眠状态时, 两个 fifo都被清空。patable 访问
0x3e 地址用来访问 patable。patable用来选择 pa 能量控制设置。在接收此地址之后,spi 等待至少 8 个字节。通过控制patable,能实现可控的 pa能量上升和下降,减少的带宽的 ask 调制整型也如此patable 是一个 8 字节表, 定义了 pa控制 设置, 为 8 个 pa 功率值(由frendo.pa_power 的 3 个位的值所选择)的每一个所使用。这个表从最低位到最高位可读和写,一此一位。一个索引计数器用来控制对这个表的访问。每读出或写入表中的一个字节,计数器就加 1。当 csn 为高时,计数值置为最小值。当达到最大值时,计数器由零重新开始计数。
patable 访问
对 patable 的访问是单字节或者突发访问,由突发位决定。当使用突发访问时,索引计数器的值增加;达到7时重新从0开始。读/写位控制访问是写访问(r/w=0)或者读访问(r/w=1)。 如果一字节被写入 patable,且这个值将要被读出,那么,为了设置索引计数器的值重为 0,csn必须在读访问之前置为高。 注意,当 patable 进入休眠状态时,所存储的内容会丢失,特别是第一个字节。
图2 配置寄存器写和读操作
stm32的串行外设接口(spi)
stm32的串行外设接口(spi)有如下特性:
● 3线全双工同步传输
● 带或不带第三根双向数据线的双线单工同步传输
● 8或16位传输帧格式选择
● 主或从操作
● 支持多主模式
● 8个主模式波特率预分频系数(最大为fpclk/2)
● 从模式频率 (最大为fpclk/2)
● 主模式和从模式的快速通信
● 主模式和从模式下均可以由软件或硬件进行nss管理:主/从操作模式的动态改变
● 可编程的时钟极性和相位
● 可编程的数据顺序,msb在前或lsb在前
● 可触发中断的专用发送和接收标志
● spi总线忙状态标志
● 支持可靠通信的硬件crc
─ 在发送模式下,crc值可以被作为最后一个字节发送
─ 在全双工模式中对接收到的最后一个字节自动进行crc校验
● 可触发中断的主模式故障、过载以及crc错误标志
● 支持dma功能的1字节发送和接收缓冲器:产生发送和接受请求
通常spi通过4个引脚与外部器件相连: miso:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。 mosi:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。 sck:串口时钟,作为主设备的输出,从设备的输入 nss:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片
选引脚”,本实验中没有使用。spi的方框图如图3所示。
图3 spi内部框图
图4 数据帧格式图
表2 源文件用途分类说明
结语
关于cc1101的相关介绍就到这了,如有不足之处欢迎指正。
相关阅读推荐:一文看懂cc110l与cc1101的区别
相关阅读推荐:无线芯片cc1100和cc1101的区别
为何这款手机能获得市场的认可?三星会否因此取得反弹?
安森美半导体的1600万像素XGS传感器为工厂自动化和智能交通系统(ITS)带来高质量、低功耗成像
VR发展趋向于稳定,VR行业发展前景十分广阔
全球通信电源技术发展五大趋势浅析
多功能食品安全检测仪的操作步骤
CC1101工作原理 基于与STM32的CC1101接口移植
D类音频功率放大器设计基础,D类功放设计
怎样做可以让数据处理更安全有效
电源能耗分析在线监测解决方案
PCB板绘制你需要了解的经验
氨氮在线分析仪产品介绍
W723多端可调式开关式恒流源电路图 (含原理说明)
光耦传输比(CTR)对开关电源的影响!
八种改变未来世界的革命性技术
电梯楼层显示电路
河套IT WALK(总第52期):科技巨头与汽车行业不断探索 AI 自动驾驶技术的未来,欧盟推出首个人工智能法规草案
区块链与人工智能有望成为自动化的革命
2017手机发展趋势是华为荣耀Magic的人工智能?还是小米MIX的全屏?
最坑爹的旗舰机皇!乐视Max从3199元跌至999元
荣耀MagicBook锐龙版评测 好不好用