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数据输入脚。