CC1101学习(一)
CC1101是一种低成本真正单片的UHF收发器,为低功耗无线应用而设计。电路主要设定为在315、433、868和915MHz的ISM(工业,科学和医学)和SRD(短距离设备)频率波段,也可以容易地设置为300-348 MHz、400-464 MHz和800-928 MHz的其他频率。
CCCC1101的主要操作参数和64位传输/接收FIFO(先进先出堆栈)可通过SPI接口控制。
CC1101的主要特征:
(1)、真正的单片UHF RF收发器;
(2)、频率波段:300-348 MHz、400-464 MHz和800-928 MHz;
(3)、可编程控制的数据传输率,可达500kbps;
(4)、较低的电流消耗(RX中15.6mA,2.4kbps,433MHz);
(5)、2-FSK,GFSK和MSK支持;
等等。
1、CC1101引脚结构
图1 引脚顶视图
2、CC1101配置软件
CC1101可通过SmartRF Studio软件配置,从http://www.chipcon.com.上可下载到。
3、4线串行配置和数据接口
CC1101通过4线SPI兼容接口(SI,SO,SCLK和CSn)配置。这个接口同时用作写和读缓存数据。SPI接口上所有的地址和数据转换被最先在重要的位上处理。
SPI接口上所有的处理都同一个包含一个读/写位,一个突发访问位和一个6位地址的头字节一起作用。在地址和数据转换期间,CSn脚(芯片选择,低电平有效)必须保持为低电平。如果在过程中CSn变为高电平,则转换取消。比如向CC1101写命令程序:
void CC1101_Write_Cmd( uint8_t Command )
{CC1101_SET_CSN_LOW( ); //SPI片选,本工程中该函数都是用作SPI片选 置低片选选中drv_spi_read_write_byte( Command ); //写命令CC1101_SET_CSN_HIGH( ); //SPI取消片选,本工程中该函数都是用作取消SPI片选 置高取消片选
}
当CSn变低,在开始转换头字节之前,MCU必须等待,直到SO脚变低。这表明电压调制器已经稳定,晶体正在运作中。除非芯片处在SLEEP或XOFF状态,SO脚在CSn变低之后总会立即变低。
while( RESET == SPI_I2S_GetFlagStatus( SPI_PORT, SPI_I2S_FLAG_TXE ) ) //等待发送缓冲区为空{if( SPI_WAIT_TIMEOUT == ++l_WaitTime ){break; //如果等待超时则退出}}l_WaitTime = SPI_WAIT_TIMEOUT / 2; //重新设置接收等待时间(因为SPI的速度很快,正常情况下在发送完成之后会立即收到数据,等待时间不需要过长)SPI_PORT->DR = TxByte; //发送数据 ,数据发送到SPI的数据寄存器中然后发出
4、命令滤波
命令滤波可被视为CC1101的单字节指令。通过命令滤波寄存器的选址,内部序列被启动。这些命令用来关闭晶体振荡器,开启传输模式和电磁波激活等。命令滤波寄存器的访问和一个寄存器的写操作一样,但没有数据被传输。就是说,只有R/W位(置为0),突发访问(置为0)和六个地址位(0x30和0x3D之间)被写。一个命令滤波可能在任何其他SPI访问之后,而不需要将CSn拉至高电平。命令滤波立即被执行,当CSn高时SPWD和SXOFF滤波是例外。
5、FIFO访问
64字节TX FIFO和64字节RX FIFO通过0x3F被访问。当读/写位为0时,TX FIFO被访问,当读/写位为1时,RX FIFO被访问。TX FIFO是只写的,而RX FIFO是只读的。
0x3F :单字节访问TX FIFO
0x7F :突发访问TX FIFO(连续写)
0xBF :单字节访问RX FIFO
0XFF :突发访问RX FIFO(连续读)
传输FIFO可能会通过发布一个SFTX(刷新TX FIFO)命令滤波而被淹没。相似地,一个SFRX(刷新RX FIFO)命令滤波会淹没接收FIFO。当进入休眠状态时,两个FIFO都被清空。
6、PATABLE访问
0x3E地址用来访问PATABLE。PATABLE用来选择PA能量控制设置。对PATABLE的访问是单字节或者突发访问,由突发位决定。当使用突发访问时,索引计数器的值增加;达到7时重新从0开始。读/写位控制访问是写访问(R/W=0)或者读访问(R/W=1)。
7、微控制器接口和引脚结构(STM32)
在一个典型系统里,CC1100的接口显示为一个微控制器。这个微控制器必须能:
控制CC1100的不同模式;
写入缓冲数据;
通过4线SPI总线配置接口(SI,SO,SCLK和CSn)读回状态信息。
CC1100有二个专用的配置引脚和一个共享引脚,能输出对控制软件有用的内部状态信息。这些引脚能用来对MCU产生中断。可编程控制的信号详情在37页35节。专用引脚名为GDO0和GDO1。共享引脚为SPI接口上的SO脚。GDO1/SO的默认设置为3状态输出。通过选择任意其他的控制选项,GDO1/SO脚将成为一般引脚。当CSn为低时,此引脚的功能如一般SO脚。在同步和异步连续模式下,处于传输模式时GDO0脚被用作连续TX数据输入脚。
CC1101学习(一)相关推荐
- TI CC1101学习笔记(四)
相关功能及原理部分已经在TI CC1101学习笔记(一)~(三)中简要概述了,本节将继续学习TI CC1101的寄存器配置及相关功能. 3 个数字输出引脚 GDO0 和 GDO1 和 GDO2为常规控 ...
- TI CC1101学习笔记:工作原理简单入门
众所周知,在IOT的市场应用中,从通信协议细分的话,有SUB-1G,2.4G,3G, 4G,以及最新推出的5G,虽然5G通信协议已经在崭露头角,但是不同的通信协议在不同的应用领域之中还是占据着一定的重 ...
- TI CC1101学习笔记(五)
因本人项目原因,故系统学习了TI CC1101这款芯片的运行机制和开发流程.但因项目的工程性.繁琐性与部分内容的保密性,所以,若有相和我交流CC1101的小伙伴,欢迎私聊我知乎 .在此,本人提供一些个 ...
- cc1101 学习1
先说说GDO0和GDO2,这两个东西是搞CC1101很重要的两个东西,它连着你的单片机的IO口.因此你完全可以利用中断来判断当前的模块处于一种什么样的情况,当然这个还跟你怎么去设置IFGDO0和IFG ...
- TI CC1101学习笔记(一)
TI CC1101是一款低于1GHz高性能射频收发器,设计旨在用于低功耗RF应用.其主要针对于工业,科研和医疗(ISM)以及短距离无线通信设备(SRD).CC1101可提供对数据包处理.数据缓冲,突发 ...
- TI CC1101学习笔记(三)
2.10 数据包长度 CC1101 支持恒定长度数据包协议和可变长度协议. 可变或固定数据包长度模式能支持的长度可达 255 字节. 大于255个字节的数据包,必须使用无限数据包长度模式: 使用不同长 ...
- 如何使用jQuery创建表格Zebra Stripes效果
这是一个简单的示例,展示了如何使用jQuery创建表格Zebra Stripes效果. <html> <head> <title>jQuery Zebra Stri ...
- 一种简陋的CC1100/CC1101主从通信协议
/* forsakening @hdu 2013/6/18 */ /* 版权所有~~^ _ ^ */ ----------------------------------------------- ...
- java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】
类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...
最新文章
- 知道为啥失败么?87%的机器学习项目都是这么栽了的……
- php查询mysql并缓存到redis
- python详细下载安装教程-Pycharm及python安装详细教程
- .NET Core 3.0 webapi集成Swagger 5.0
- JeeCG - <t:choose/> 标签用法 输入框控件 查询输入
- java日志文件log4j.properties配置详解
- 西瓜书+实战+吴恩达机器学习(八)监督学习之朴素贝叶斯 Naive Bayes
- SQL FILESTREAM数据库中的事务日志备份
- 递归实现排列型枚举(搜索)
- 93、App Links (应用程序链接)实例
- 2015 多校联赛 ——HDU5302(矩阵快速幂)
- Sql server添加示例数据库Northwind
- MTK Pump Express 快速充电原理分析
- 无线路由器网络安全设置的九种方法
- 安卓APP的字体大小设置不受系统字体大小的影响
- 常用商务英语词汇集锦(转载)
- 第十三届蓝桥杯大赛JavaB个人赛题题解
- mysql修改字段设置_在mysql中,如何改变列声明.
- 【编码】数据库编码报错
- Lesson 20 Pioneer pilots 内容鉴赏
热门文章
- 类与对象:求长方体的体积C++
- cad转换刻绘图 文泰去除节点方法 cad变成圆滑文泰刻绘图 cad转换为刻绘图 无锯齿转换cad至刻绘图
- 应该先开通邮箱系统搬家还是先做MX解析?
- 杭州市城市大脑发育年龄已达15.9岁
- 像360悬浮窗那样,用WindowManager做一个炫酷的悬浮迷你音乐盒(下)
- TypeError:__init__() missing 1 required positional argument :‘problem‘
- BW项目随手记:CO_PA数据源的使用
- 点云深度学习系列博客(四): PointNet代码精讲
- 二维图形学的变换-平移、旋转、缩放 OpenGL
- ubuntu连接不上网络问题解决