0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CC1101工作原理 基于与STM32的CC1101接口移植

ss 作者:工程师谭军 2018-09-06 14:45 次阅读

本文主要是关于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℃

CC1101工作原理 基于与STM32的CC1101接口移植

基于与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工作原理 基于与STM32的CC1101接口移植

原理】

CC1101是TI公司一款高性价比的单片UHF收发器,为低功耗无线电应用而设计。它是CC1100器件的加强升级版,灵敏度更高,功耗更小,带宽更大。CC1101可满足多个领域中的低功耗无线应用要求,如警报与安全、自动抄表、工业监控以及家庭和楼宇自动化等。CC1101理想适用于工业、科学及医药设备(ISM)以及316、433、868及916MHz短距装置(SRD)频带。但是,该器件也可方便编程,以支持其它频率,如300-348MHz、387-467MHz及779-928MHz等。出色的频带与调制格式支持使其能与目前的RF终端设备相兼容。

CC1101工作原理 基于与STM32的CC1101接口移植

图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 进入休眠状态时,所存储的内容会丢失,特别是第一个字节。

CC1101工作原理 基于与STM32的CC1101接口移植

图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所示。

CC1101工作原理 基于与STM32的CC1101接口移植

图3 SPI内部框图

CC1101工作原理 基于与STM32的CC1101接口移植

图4 数据帧格式图

表2 源文件用途分类说明

CC1101工作原理 基于与STM32的CC1101接口移植

结语

关于CC1101的相关介绍就到这了,如有不足之处欢迎指正。

相关阅读推荐:一文看懂CC110L与CC1101的区别

相关阅读推荐:无线芯片CC1100和CC1101的区别

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50360

    浏览量

    421628
  • CC1101
    +关注

    关注

    4

    文章

    36

    浏览量

    23103
收藏 人收藏

    评论

    相关推荐

    CC1101组网与假死问题

    CC1101的异步串行工作模式?CC1101为什么无缘无故自动进入空闲模式?CC1101配置空闲信道评估CCA,导致发送死掉CC1101发射
    发表于 08-29 17:45

    TI CC1101学习笔记:工作原理简单入门

    的重要地位,还不能被新的协议完全取代。在之前的文章中,小编也说过了部分的通信协议,在此不作一一细说了。言归正传,今天要说的主角是SUB-1G的TI品牌的CC1101工作原理。 产品概述:CC1101
    发表于 11-09 10:44

    TI CC1101学习笔记:工作原理简单入门

    的重要地位,还不能被新的协议完全取代。在之前的文章中,小编也说过了部分的通信协议,在此不作一一细说了。言归正传,今天要说的主角是SUB-1G的TI品牌的CC1101工作原理。产品概述:CC1101
    发表于 11-12 10:35

    cc1101天线设计

    cc1101天线设计,又需要的朋友下来看看。
    发表于 02-15 15:10 102次下载

    cc1101数据手册

    cc1101数据手册,此数据手册为ti最新版本。
    发表于 02-17 17:11 16次下载

    cc1101产品手册(English)

    CC1101的Datasheet,德州仪器英文原版。
    发表于 04-28 11:51 5次下载

    cc1101中文数据手册

    cc1101中文数据手册
    发表于 09-22 11:05 79次下载
    <b class='flag-5'>cc1101</b>中文数据手册

    CC1101无线模块如何使用_cc1101无线模块的程序及使用介绍

    CC1101无线模块是采用TI公司的CC1101芯片制作的模块,一般是工作在433M。长沙云宝电子科技有限公司的生产的CC1101无线模块比较稳定。
    发表于 04-12 15:29 1.7w次阅读

    无线芯片CC1100和CC1101的区别 浅谈CC1101芯片的特点

    CC1101 [1] 是一款低于1GHz设计旨在用于极低功耗RF应用。其主要针对工业、科研和医疗(ISM)以及短距离无线通信设备(SRD)。
    发表于 09-06 09:43 1w次阅读

    浅谈CC1101驱动在STM32F103的移植

    最后,TI驱动里提供的是轮询的方式收发数据,对于初期来说,首先需要实现CC1101工作,编译调试移植STM32上的CC1101驱动代码,
    的头像 发表于 09-06 15:18 7757次阅读
    浅谈<b class='flag-5'>CC1101</b>驱动在<b class='flag-5'>STM32</b>F103的<b class='flag-5'>移植</b>

    CC1101与STC单片机通信

    很多CC1101的通信代码进行移植都不能成功通信,很苦恼,只能自己细细研究,最后发现网上的CC1101与单片机通信的绝大多数代码都是基于51单片机普通IO与CC1101进行通信,而我手
    发表于 11-15 16:51 18次下载
    <b class='flag-5'>CC1101</b>与STC单片机通信

    无线射频芯片CC1101的特点和区别

    本文主要是关于无线芯片CC1100和CC1101的相关介绍,并着重对无线芯片CC1100和CC1101进行了详尽的对比分析。 CC1101
    发表于 03-09 12:44 1353次阅读

    无线射频芯片CC1101的特点和区别

    本文主要是关于无线芯片CC1100和CC1101的相关介绍,并着重对无线芯片CC1100和CC1101进行了详尽的对比分析。 CC1101CC110
    的头像 发表于 03-09 18:28 2213次阅读

    【芯选择】CC1101芯片的模块实例

    CC1101芯片CC1101是一款低于1GHz设计旨在用于极低功耗RF应用。其主要针对工业、科研和医疗(ISM)以及短距离无线通信设备(SRD)。CC1101可提供对数据包处理、数据缓冲、突发传输
    的头像 发表于 12-02 09:51 1327次阅读
    【芯选择】<b class='flag-5'>CC1101</b>芯片的模块实例

    CC2500和CC1101移植说明

    主要通过如何移植移植注意、关于芯片配置、如何生成导出配置四大步骤来说明CC2500和CC1101移植
    的头像 发表于 06-15 14:32 564次阅读
    <b class='flag-5'>CC</b>2500和<b class='flag-5'>CC1101</b><b class='flag-5'>移植</b>说明