CC1101无线数传模块使用记录

来源:互联网 发布:macbook软件删除不了 编辑:程序博客网 时间:2024/04/29 12:24

摸索CC1101有一段时间了,现在有时间,想把使用的过程中遇到的一些问题记录一下。

若有错误之处,望大家能够指出,不要让我一直以为自己是对的尴尬

CC1101,以个人愚见,总的来说就是对寄存器的配置以及指令的执行;芯片与MCU通过SPI通讯,

Datasheet中对SPI的要求有说明,在使用的过程中,我觉得在SPI方面比较值得注意的是数据传输需要

由MSB开始发送,也就是先发送高位。

通讯的格式是:写寄存器时先发寄存器地址再发要写入寄存器的值,读寄存器时先发寄存器地址,

然后随便发一字节(我一般发0xFF或0x00),寄存器的读写需要注意的是头字节的读写位和突发位。发

送指令则是单字节指令,只需写命令寄存器(不懂怎么称呼,暂时叫这个吧)的地址,指令即开始执行。

芯片状态:可通过SPI读CC1101寄存器的值,读取配置寄存器的值采用单字节读取方式,读取状态

寄存器采用突发读取方式,具体可查看Datasheet寄存器表。当MCU通过SPI向CC1101写头字节或数据字

节的同时,CC1101也通过SPI向MCU发生芯片状态位(注意是写寄存器而不是读寄存器的时候),此处返

回的芯片状态位与突发读0x35的machine state有所不同。

寄存器的配置可通过smartRF studio 7给出,可自行稍加修改(别改错了就行。。。)。

语文一直学不太好,自己都有点读不太通顺,看得懂大概意思就行尴尬,未完待续。。。不知道还

能不能改。。。对博客不怎么熟悉。

-------------2016年12月22日

再次打开,可以编辑。。。说说我这段时间遇到的一些问题。

1、初识CC1101:

在马氏网购平台上买了模块以后,拿着卖家给的示例程序,一头雾水,再看datasheet,100多页,

吓得我。。。经过粗略的阅读datasheet之后,对示例程序进行移植,下载程序上电运行发现:收发双方竟

互不相识。却也在意料之中,百度一下,各种可能的原因,无果。掏出万用表,测量各个脚的电压,发现

GDO脚(设置为0x06)电平一直为1.6v,再次百度,发现只有一位网友说自己遇到过这种情况,并且还没

人回答他。再次阅读datasheet,发现有SmartRFStudio这个软件,使用软件给的寄存器值进行初始化,

现一对一通讯。

2、运行过程中修改频点

目前使用CC1101只做一对一的通信,并且可能是一定范围内多组一对一的通信,考虑到同一频点不

同设备间信号的相互干扰以及程序的通用性,打算在运行过程中对频点(信道)进行手动修改,测试过程中

发现:频率跳变范围过大时会导致收发双方无法通讯上。。。

0 0
原创粉丝点击