CC2500 无线模块 说明书

CC2500 无线模块 说明书

2023年7月25日发(作者:)

NewMsgTech

CC2500无线模块

用户手册

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

目录

产品介绍.......................................................................................................................3

基本特点................................................................................................................3

典型应用场合........................................................................................................4

模块接口说明........................................................................................................5

CC2500模块工作方式.................................................................................................7

工作模式寄存器介绍............................................................................................7

命令寄存器介绍....................................................................................................7

功能配置寄存器介绍............................................................................................8

状态寄存器介绍....................................................................................................9

程序参考设计.............................................................................................................10

SPI时序示意图....................................................................................................10

SPI接口时序规范................................................................................................10

参考例程..............................................................................................................11

SPI读写操作.................................................................................................11

SPI写寄存器操作.........................................................................................12

SPI读寄存器操作.........................................................................................12

CC2500软件复位.........................................................................................12

CC2500初始化设置.....................................................................................13

数据接收流程操作.......................................................................................14

数据发送流程操作.......................................................................................15

无线应用注意事项.....................................................................................................15

我们的承诺.................................................................................................................16

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

产品介绍

CC2500芯片,是TI(原Chipcon被TI收购)推出的一款超低功耗、低成本的无线收发模块,其载频范围在2.400GHz~2.483GHz内可调,可用来实现多信道通信。它支持多种调制方式,包括FSK、GFSK、OOK和MSK,数据传输速率最高可达500kb/s。CC2500还为信息包处理、数据缓冲、脉冲传送、空闲信道评估、连接品质指示和电磁唤醒等功能提供了额外的硬件支持。它有四种主要的状态:接收(RX)、发送(TX)、空闲(IDLE)和休眠(SLEEP)

基本特点

(1) 2400-2483.5 MHz的ISM和SRD频段

(2) 最高工作速率500kbps,支持2-FSK、GFSK和MSK调制方式

(3) 高灵敏度(-101dBm在10Kbps 1%)

(4) 内置硬件CRC 检错和点对多点通信地址控制

(5) 较低的电流消耗(RX中,13.3mA)

(6) 可编程控制的输出功率,对所有的支持频率可达 1dBm

(7) 支持低功率电磁波激活功能

(8) 支持传输前自动清理信道访问(CCA),即载波侦听系统

(9) 快速频率变动合成器带来的合适的频率跳跃系统

(10) 模块可软件设地址,软件编程非常方便

(11) 标准DIP间距接口,便于嵌入式应用

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

(12) 单独的64字节RX和TX数据FIFO

WOR功能:为了节约电能,射频芯片通常采用休眠模式。芯片在休眠时势必会丢失信息,CC22500的WOR(Wakeup-on-Radio)功能能很好地避免这点。WOR功能保证芯片在深度睡眠时周期性地苏醒,探听周围是否有信号,这个过程不需要CPU的中断,如果有数据包成功接收,芯片可通过引脚输出中断通知MCU读取。

RSSI和LQI功能:RSSI反映接收信号强度,LQI反映信号的连接质量,两者都可以通过读取芯片的寄存器得到。LQI虽然能够判断连接质量,但会因调制方式的不同而不同。RSSI是判断两个节点距离的很好的参数。在从RSSI寄存器中读到数值后我们需要进行一系列转化,才能得到接收强度值。

CCA功能:CCA(Clear Channel Assessment)能够指示当前信道是否处于空闲状态。其作用与CSMA相似。当芯片要转入发送模式时,会首先检查信道,只有当信道为空闲时,才进入发送模式,否则停留在原模式或由编程设定进入其他模式。

典型应用场合

无线遥控,无线鼠标,无线键盘;

工业无线控制,自动化数据采集系统;

无线传感器,无线电子标签,遥控玩具;

水、气、热、电等居民计量表具无线自动抄表;

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

模块接口说明

引脚功能

引脚

1

2-5

6

7

8

9

10

11

12

引脚名

VCC

NC

SI

SCLK

引脚类型

电源输入

数字输入

数字输入

描述

1.8V-3.6V之间

悬空

SPI从设备数据输入

SPI从设备时钟输入

SPI从设备数据输出

悬空

工作状态引脚

连续配置接口,芯片选择

工作状态引脚

和系统共地

SO(GD01) 数字输出

NC

GDO2

CSN

GDO0

数字输出

数字输入

数字输出

电源地 13-14 GND

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

备注

引脚的电压范围为1.9-3.6V 之间,不能在这个区间之外,如超过 3.6V 将会烧毁模块。推荐电压 3.3V 左右;

2.硬件没有集成SPI功能的单片机也可以控制本模块,用普通单片IO口模拟 SPI 时序进行读写操作即可;

3. 模块接口采用标准2.54mmDIP插针,13 脚、14 脚为接地脚,需要和系统电路的逻辑地连接起来;

4.与 51 系列单片机 P0 口连接时候,需要加 10K 的上拉电阻,与其余口连接不需要。其他系列的5V单片机,如AVR、PIC,请参考该系列单片机 IO 口输出电流大小,如果超过 10mA,需要串联2-5K电阻分压,否则容易烧毁模块! 如果是 3.3V 的MCU,可以直接和IO口连接。

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

CC2500模块工作方式

所有配置参数和收发数据都是单片机通过SPI对CC2500进行读写操作来完成的。SIP接口的待机模式、发送模式以及接收等工作模式都通过SPI指令进行设置。并可以通过GDO0或GDO2引脚高低电平状态来判断数据的发送或接收是否完成。

工作模式寄存器介绍

比特 名称

7 CHIP_RDYn

6:4 STATE[2:0]

描述

保持高,直到功率和晶体已稳定。当SPI操作时为低

表明当前主状态机模式

值 状态 描述

000 空闲 空闲状态

001 RX 接收模式

010 TX 发送模式

011 FSTXON 快速TX准备

100 校准 频率合成器校准正运行

101 迁移

110

RXFIFO_OVERFLOW

PLL正迁移

RX FIFO已经溢出。读出任何有用数据,然后用SFRX冲洗FIFO。

111 TXFIFO_OVER TX FIFO已经下溢。同SFTXFLOW 应答

3:0 FIFO_BYTES_AVAILABLE[3:0]

TX FIFO中的自由比特数。若FIFO_BYTES_AVAILABLE=15,它表明有15或更多个比特是可用/自由的。

命令寄存器介绍

地址 滤波名

0x30 SRES

0x31 SFSTXON

0x32 SXOFF

描述

重启芯片

开启和校准频率合成器(若CAL=1)

关闭晶体振荡器

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

0x33 SCAL

0x34 SRX

0x35 STX

0x36 SIDLE

0x37 SAFC

0x38 SWOR

0x39 SPWD

0x3A SFRX

0x3B SFTX

校准频率合成器并关断(开启快速启动)。在不设置手动校准模式(_AUTOCAL=0)的情况下,SCAL从空闲模式滤波。启用RX。若上一状态为空闲且_AUTOCAL=1则首先运行校准。

空闲状态:启用TX。若_AUTOCAL=1首先运行校准。若在RX状态且CCA启用:若信道为空则进入TX

离开RX/TX,关断频率合成器并离开电磁波激活模式若可用

运行22.1节列出的频率合成器的AFC调节

运行27.5节描述的自动RX选举序列(电磁波激活)

当CSn为高时进入功率降低模式。

冲洗RX FIFO缓冲

冲洗TX FIFO缓冲

0x3C SWORRST 重新设置真实时间时钟

0x3D SNOP 无操作。可能用来为更简单的软件将滤波命令变为2字节。

功能配置寄存器介绍

地址 寄存器

0x00 IOCFG2

0x01 IOCFG1

0x02 IOCFG0

0x03 FIFOTHR

0x04 SYNC1

0x05 SYNC0

0x06 PKTLEN

0x07 PKTCTRL1

0x08 PKTCTRL0

0x09 ADDR

0x0A CHANNR

0x0B FSCTRL1

0x0C FSCTRL0

0x0D FREQ2

0x0E FREQ1

0x0F FREQ0

0x10 MDMCFG4

0x11 MDMCFG3

0x12 MDMCFG2

0x13 MDMCFG1

0x14 MDMCFG0

描述

GDO2输出脚配置

GDO1输出脚配置

GDO0输出脚配置

RX FIFO和TX FIFO门限

同步词汇,高字节

同步词汇,低字节

数据包长度

数据包自动控制

数据包自动控制

设备地址

信道数

频率合成器控制

频率控制词汇,高字节

频率控制词汇,中间字节

频率控制词汇,低字节

调制器配置

调制器配置

调制器配置

调制器配置

调制器配置

调制器背离设置

保存在休眠状态中

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

0x15 DEVIATN

0x16 MCSM2

0x17 MCSM1

0x18 MCSM0

0x19 FOCCFG

0x1A BSCFG

0x1B AGCTRL2

0x1C AGCTRL1

0x1D AGCTRL0

0x1E WOREVT1

0x1F WOREVT0

0x20 WORCTRL

0x21 FREND1

0x22 FREND0

0x23 FSCAL3

0x24 FSCAL2

0x25 FSCAL1

0x26 FSCAL0

0x27 RCCTRL1

0x28 RCCTRL0

0x29 FSTEST

0x2A PTEST

0x2B AGCTEST

0x2C TEST2

0x2D TEST1

0x2E TEST0

主通信控制状态机配置

主通信控制状态机配置

主通信控制状态机配置

频率偏移补偿配置

位同步配置

AGC控制

AGC控制

AGC控制

高字节时间0暂停

低字节时间0暂停

电磁波激活控制

前末端RX配置

前末端TX配置

频率合成器校准

频率合成器校准

频率合成器校准

频率合成器校准

RC振荡器配置

RC振荡器配置

频率合成器校准控制

产品测试

AGC测试

不同的测试设置

不同的测试设置

不同的测试设置

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

No

No

No

No

No

No

状态寄存器介绍

地址

0x30 (0xF0)

0x31 (0xF1)

0x32 (0xF2)

0x33 (0xF3)

0x34 (0xF4)

0x35 (0xF5)

0x36 (0xF6)

0x37 (0xF7)

0x38 (0xF8)

0x39 (0xF9)

0x3A (0xFA)

0x3B (0xFB)

寄存器

PARTNUM

VERSION

FREQEST

LQI

RSSI

MARCSTATE

WORTIME1

WORTIME0

PKTSTATUS

VCOVCDAC

TXBYTES

RXBYTES

描述

当前版本数

频率偏移估计

连接质量的解调器估计

接收信号强度指示

控制状态机状态

WOR计时器高字节

WOR计时器低字节

当前GDOx状态和数据包状态

PLL校准模块的当前设定

TX FIFO中的下溢和比特数

RX FIFO中的下溢和比特数

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

程序参考设计

用CC2500模块无需掌握任何专业无线或高频方面的理论,读者只需要具备一定的C语言程序基础即可。本文档没有涉及到的问题,读者可以参考CC2500官方手册或向我们寻求技术支持。

同时,为便于用户开发,我们提供系列配套评估套件,为产品开发保驾护航,使无线应用开发大大加速,并避免不必要的误区。

SPI时序示意图

SPI接口时序规范

参数 描述

FSCLK SCLK频率

最小值 最大值0 10MHz

tsp,pd CSn低到SCLK的正边缘,功率降低模式下TBDus -

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

tsp

tch

tcl

CSn低到SCLK的正边缘,活动模式下

时钟高

时钟低

TBDns -

50ns -

50ns -

-

-

TBDns

TBDns

trise 时钟上升时间

tfall 时钟上升时间

tsd

thd

tns

向SCLK的正边缘建立数据

在SCLK的正边缘之后保持数据

SCLK到CSn高时的负边缘

TBDns -

TBDns -

TBDns -

参考例程

更多功率参数设置可详细参考DATACC2500英文文档中参数表

INT8U PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};

SPI读写操作

INT8U SpiTxRxByte(INT8U dat)

{

INT8U i,temp;

temp = 0;

SCK = 0;

for(i=0; i<8; i++)

{

if(dat & 0x80)

{

MOSI = 1;

}

else MOSI = 0;

dat <<= 1;

SCK = 1;

_nop_();

_nop_();

temp <<= 1;

if(MISO)temp++;

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

}

SCK = 0;

_nop_();

_nop_();

}

return temp;

SPI写寄存器操作

void halSpiWriteReg(INT8U addr, INT8U value)

{

CSN = 0;

while (MISO);

SpiTxRxByte(addr); //写地址

SpiTxRxByte(value); //写入配置

CSN = 1;

}

SPI读寄存器操作

INT8U halSpiReadReg(INT8U addr)

{

INT8U temp, value;

temp = addr|READ_SINGLE;//读寄存器命令

CSN = 0;

while (MISO);

SpiTxRxByte(temp);

value = SpiTxRxByte(0);

CSN = 1;

return value;

}

CC2500软件复位

void RESET_CC2500(void)

{

CSN = 0;

while (MISO);

SpiTxRxByte(CCxxx0_SRES);

while (MISO);

CSN = 1;

}

//写入复位命令

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

CC2500初始化设置

const RF_SETTINGS rfSettings =

{

0x00,

0x07, // FSCTRL1 Frequency synthesizer control.

0x00, // FSCTRL0 Frequency synthesizer control.

0x5C, // FREQ2 Frequency control word, high byte.

0x58, // FREQ1 Frequency control word, middle byte.

0x9D, // FREQ0 Frequency control word, low byte.

0x0E, // MDMCFG4 Modem configuration.

0x3B, // MDMCFG3 Modem configuration.

0x73, // MDMCFG2 Modem configuration.

0x42, // MDMCFG1 Modem configuration.

0xF8, // MDMCFG0 Modem configuration.

0x00, // CHANNR Channel number.

0x00,

// DEVIATN Modem deviation setting (when FSK modulation is enabled).

0xB6, // FREND1 Front end RX configuration.

0x10, // FREND0 Front end RX configuration.

0x18, // MCSM0 Main Radio Control State Machine configuration.

0x1D, // FOCCFG Frequency Offset Compensation Configuration.

0x1C, // BSCFG Bit synchronization Configuration.

0xC7, // AGCCTRL2 AGC control.

0x00, // AGCCTRL1 AGC control.

0xB2, // AGCCTRL0 AGC control.

0xCA, // FSCAL3 Frequency synthesizer calibration.

0x0A, // FSCAL2 Frequency synthesizer calibration.

0x00, // FSCAL1 Frequency synthesizer calibration.

0x11, // FSCAL0 Frequency synthesizer calibration.

0x59, // FSTEST Frequency synthesizer calibration.

0x88, // TEST2 Various test settings.

0x31, // TEST1 Various test settings.

0x0B, // TEST0 Various test settings.

0x0B, // IOCFG2 GDO2 output pin configuration.

0x06, // IOCFG0D GDO0 output pin configuration.

0x05, // PKTCTRL1 Packet automation control. //地址检测

0x45, // PKTCTRL0 Packet automation control.

//可变长数据包,通过同步词汇后的第一个位置配置数据包长度

0x0A, // 数据包过滤时使用的地址

0xFF // PKTLEN Packet length. 最大

};

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

数据接收流程操作

INT8U halRfReceivePacket(INT8U *rxBuffer, INT8U *length)

{

INT8U status[2];

INT8U packetLength;

INT8U i=(*length)*4; // 具体多少要根据datarate和length来决定

halSpiStrobe(CCxxx0_SRX); //进入接收状态

delay(2);

while (GDO0)

{

delay(2);

--i;

if(i<1)

return 0;

}

if ((halSpiReadStatus(CCxxx0_RXBYTES) & BYTES_IN_RXFIFO))

//如果接的字节数不为0

{

packetLength = halSpiReadReg(CCxxx0_RXFIFO);

//读出第一个字节,此字节为该帧数据长度

if (packetLength <= *length)

//如果所要的有效数据长度小于等于接收到的数据包的长度

{

halSpiReadBurstReg(CCxxx0_RXFIFO, rxBuffer, packetLength);

//读出所有接收到的数据

*length = packetLength;

//把接收数据长度的修改为当前数据的长度

// Read the 2 appended status bytes (status[0] = RSSI, status[1] = LQI)

halSpiReadBurstReg(CCxxx0_RXFIFO, status, 2);

//读出CRC校验位

halSpiStrobe(CCxxx0_SFRX); //清洗接收缓冲区

return (status[1] & CRC_OK); //如果校验成功返回接收成功

}

else

{

*length = packetLength;

halSpiStrobe(CCxxx0_SFRX); //清洗接收缓冲区

return 0;

}

}

else

return 0;

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

}

数据发送流程操作

void halRfSendPacket(INT8U *txBuffer, INT8U size)

{

halSpiWriteReg(CCxxx0_TXFIFO, size);

halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size); //写入要发送的数据

halSpiStrobe(CCxxx0_STX); //进入发送模式发送数据

// Wait for GDO0 to be set -> sync transmitted

while (!GDO0);

// Wait for GDO0 to be cleared -> end of packet

while (GDO0);

halSpiStrobe(CCxxx0_SFTX);

}

无线应用注意事项

(1) 无线模块的VCC电压范围为 1.8V-3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块。推荐电压3.3V左右。

(2) 除电源VCC和接地端,其余脚都可以直接和普通的51单片机IO口直接相连,无需电平转换。当然对3V左右的单片机更加适用了。

(3) 硬件上面没有SPI的单片机也可以控制本模块,用普通单片机IO口模拟SPI不需要单片机真正的串口介入,只需要普通的单片机IO口就可以了,当然用串口也可以了。模块按照接口提示和母板的逻辑地连接起来

(4) 标准DIP插针,如需要其他封装接口,或其他形式的接口,可联系我们定做。

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@ NewMsgTech

(5) 任何单片机都可实现对无线模块的数据收发控制,并可根据我们提供的程序,然后结合自己擅长的单片机型号进行移植;

(6) 频道的间隔的说明:实际要想2个模块同时发射不相互干扰,两者频道间隔应该至少相差1MHZ,这在组网时必须注意,否则同频比干扰。

(7) 实际用户可能会应用其他自己熟悉的单片机做为主控芯片,所以,建议大家在移植时注意以下4点:

A:确保IO是输入输出方式,且必须设置成数字IO;

B:注意与使用的IO相关的寄存器设置,尤其是带外部中断、带AD功能的IO,相关寄存器一定要设置好;

C:调试时先写配置字,然后控制数据收发

D:注意工作模式切换时间

我们的承诺

最后,欢迎您使用我们的产品,在应用中有技术问题请及时向我们联系,我们会予以技术知道,同时运输中出现产品问题我们会全面责任并予以更换。

愿与您一起走向成功

联系电话: 陈 工 E-mail: chj_006@

在线咨询:QQ:35625400 474882985 MSN:ll88mm88@

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690227072a317817.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信