概述

  • 最高传输速率:500kbps
  • RX 功耗:15.6ma
  • 单独的64 字节RX 和 TX 数据 FIFO

通信接口

cc2500 提供了spi 接口与外部的mcu通信。cc2500 作为spi slave
接口连线如下:

主控mcu 的spi 配置:

spi 模式 spi 配置 备注
SPI_MODE SPI_MODE_Master 主控
SPI_DATASIZE SPI_DataSize_8b 8bit
SPI_CPOL SPI_CPOL_High sck 空闲为低
SPI_CPHA SPI_CPHA_2Edge sck 第一沿取样
SPI_FirstBit MSB 高位在前

常规用途/测试输出控制引脚(GDO0,GDO1,GDO2)

分别用IOCFG2,IOCFG1,IOCFG0 三个寄存器配置这三个引脚的功能。这三个寄存器分别可配置的参数范围是0-0x3F,每个参数对应的含义,参考cc2500 datasheet。
我使用的配置方案。

IOCFG2 IOCFG1 IOCFG0
0x29 0x2E 0x06
  • GDO0

    • 上电后,初始化cc2500 前,GDO0 以135khz的频率输出方波。初始化完IOCFG0 寄存器后,保持为低电平。

    • 发射模式下。平常为低电平。当mcu 对cc2500 下达STX(发射)命令后,GDO0 会从低变成高,表示CC2500 正在发射资料。等到GDO0由低高变低时,表示CC2500 发射完成。

    • 接收模式下。平常GDO0 为低电平,当MCU 对CC2500 下达SRX(接收)指令后,当接到封包且preamble 和 syncword 正确时,GDO0 会从低变高,表示正在接收资料,等到GDO0 由高变低时,表示接收完成。编程时,可以设置为下降沿中断接收数据包。

  • GDO1 和在spi 接口上的SO 脚是同一脚,因此这个脚上控制的输出在CS 高时才有用。GDO1 默认是3态
  • GDO2 没使用。

寄存器

寄存器概述

寄存器类型 地址范围 说明
配置寄存器 0-> 0x2F 配置CC2500。可读写,长度为一个字节
选通命令 0x30->0x3F 当执行写寄存器操作时 表示 mcu 下达的切换命令,只需要写寄存器地址;当执行读寄存器操作时,CC2500 会返回RF 的相关参数
发射功率寄存器 0x3E 决定发射功率,最多可设置8组,共8种功率
TX/RX FIFO 0x3F 写入时,写入TX FIFO;读取时,读取RX FIFO。长度各为64 bytes

头字节

每次MCU 发起通信,写入的第一个字节成为头字节。头字节有固定的格式。第一个bit 表示读写位,第二个bit表示single or burst 访问,后面6bits 表示地址。

状态字

每次MCU 发起通信,写入头字节到CC2500 ,CC2500 返回一个状态字。状态字的定义如下

bits 名称 描述
7 CHIP_RDYn 当功率和晶体已经稳定,该位保持为低
6:4 STATE[2:0] 表示CC2500当前主状态机状态
3:0 FIFO_BYTES_AVAILABLE[3:0] TX FIFO 中的自由比特数

寄存器的访问

mcu 访问CC2500 寄存器时,第一个字节写入头字节(参考前面说明)。如果是写寄存器,第二个字节是要写入的参数;如果是读寄存器,第二个字节可以是0xFF。

write read
Single byte: + 0x00 Single byte: + 0x80
Burst: + 0x40 Burst: + 0xC0

突发访问

对于连续地址访问,如果每次都要写入一次地址,将会很浪费时间资源。CC2500 提供了突发访问的机制,访问第一个地址时,设置突然访问位,后续的访问,将不需要再写入地址。scs 拉高结束突发访问。典型的应用场景是FIFO 的访问。

调试

  • 可以通过查看CC2500 返回的状态字,查看当前处于的状态。
  • 比较一下写入和读出寄存器内容是否一致,判断spi 读写是否正常。
  • 可以利用频谱仪捕抓发送频率信息,验证自己配置的频点参数是否符合预期。

遇到的坑

  • 焊接了几块CC2500 ,其中一款spi读写寄存器正常,就是收不到数据。其他几块正常,还没找到原因。
  • cc2500 周边电路元器件虚焊,导致cc2500 gdo0 输入的电平有异常。我平常习惯于用逻辑分析仪分析数据,一开始没怀疑GDO0 的电压问题,一直在纠结为什么GDO0 没提示收到数据包。

CC2500 使用总结相关推荐

  1. STM32之SPI原理

    SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,是一种高速的,全双工,同步的通信总线,在很多器件中被广泛应用. SP ...

  2. 网友在各自领域中所用到的芯片总结(转载赛亚人hanker的博客)

    1.音频pcm编码DA转换芯片cirrus logic的cs4344,cs4334   4334是老封装,据说已经停产,4344封装比较小,非常好用.还有菲利谱的.   8211等. 2.音频放大芯片 ...

  3. [转载]有经验的人对各种常用IC芯片使用感受

    有时间看看,可能对以后的硬件电路设计有帮助. --  作者:互动人 --  发布时间:2006-10-9 7:26:44 --  网友在各自领域中所用到的芯片总结(转载) 1.音频pcm编码DA转换芯 ...

  4. STM32学习笔记之硬件SPI读写与极性设置

    废话不多说讲重点!!! [软件中如何设置SPI的极性和相位]  SPI分主设备和从设备,两者通过SPI协议通讯. 而设置SPI的模式,是从设备的模式,决定了主设备的模式.  所以要先去搞懂从设备的SP ...

  5. betaflight 代码结构

    . betaflight 代码结构如下表所示 betaflight 体系结构 应用层 CMS osd调参 Flight fail safe gps rescue PID Mixer 抽象基础功能 co ...

  6. 【详解】SPI中的极性CPOL和相位CPHA是什么以及如何设置

    [详解]SPI中的极性CPOL和相位CPHA是什么以及如何设置   2012-03-0214:34:10|  分类:单片机 |  标签: |字号大中小 订阅 版本:2011-08-15 作者:crif ...

  7. SPI极性与相位简介

    [背景] 最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要 ...

  8. CC1101的WOR电磁波唤醒方式用法

    WOR很多人只见其音不见其容,最近经过一翻折腾终于在CC1101上把WOR解决了. 这个配置方式其实对于 CC1100/CC1100E/CC2500等芯片都是通用的,对于SOC 芯片,CC1110和C ...

  9. SPI总线之CPOL CPHA(转)

    [背景] 最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要 ...

  10. 应聘linux/ARM嵌入式开发岗位

    **************************************************************** 因为发在中华英才和智联招聘没有人采我所以我 在这里发布我的个人简历希望 ...

最新文章

  1. 東方茸回廊 汉化补丁
  2. 系统集成项目管理工程师考试准备
  3. Exchange Server 2016管理系列课件53.DAG管理之设置滞后数据库副本
  4. 008_SpringBoot视图层技术jsp
  5. selenium调用js文件_selenium肿么调用执行这两个js函数
  6. Windows常用shell命令大全
  7. 外部中断实验 编写程序学习外部中断的电平触发方式。无中断时发光让发光二极管从左到右依次点亮,有外部中断请求时,4位数码管从0000开始加1显示(加到9999后复位为0000),同时蜂鸣器报警。
  8. java 蓝桥杯 乘法次数(题解)
  9. hdu-4080 Stammering Aliens 字符串hash 模板题
  10. LED显示驱动(二):显示驱动FPGA验证流程与注意细节
  11. HDU-1042 N!
  12. Excel学习笔记4||数据处理函数ROUND、INT、TRUNC、MAX、MIN、ROW、COLUMN
  13. ping不通云服务器,ping不通云服务器是什么原因
  14. linux配置文件密码加密工具,Linux下利用openssl对文件进行加密和解密
  15. 电脑上打开chm文件时系统提示:不能打开文件:mk:@MSITStore:(文件路径)
  16. Esp8266 进阶之路36【外设篇】乐鑫esp8266芯片SDK编程驱动时间芯片 ds1302,同步网络时间到本地,再也不怕掉电断网也可以同步时间了!(附带Demo)
  17. 蜗牛爬墙墙高10米C语言,蜗牛爬墙——打破小朋友的数学思维模式
  18. 删除MySQL中字段中括号以及括号之内的内容
  19. 开题报告里的基本内容写什么,预期效果又怎么写?
  20. Job 和 Event

热门文章

  1. echarts社区网址
  2. Yolov1 + Yolov2 + Yolov3 发展史、论文、代码最全资源分享合集 ! ! !
  3. 白话区块链 之 11 - 区块链的链 是什么?
  4. Mediastream2 用法介绍及简明实例分析
  5. QString中去除空格
  6. 6.1 统计学基本原理
  7. 模型预测控制参数调整问题
  8. Hightopo 受邀参加第二十三届中国国际高新技术成果交易会
  9. 如何在idea中设置Tomcat热部署
  10. List Navision Security setting, 列出Navision相关账户的权限