原创 CC1101笔记

2011-4-14 10:14 5388 10 11 分类: 工程师职场
CC1101工作流程:
    1.初始化SPI,MCU各引脚。
    
        当有数据接收或发送状态声明时,有中断和查询两种方式。GDO0与GDO2引脚输出至MCU引脚,若要用中断则要接至MCU外部中断引脚,查询时则可用GPIO。
    2.复位CC1101。
    3.初始化CC1101。(写操作时可从SO中读出CC1101状态)
        初始化后CC1100为IDLE状态.
    
    4.状态机转换,写/读FIFO数据。
        每次写操作时SO返回的值为写操作前的CC1100状态值,具体值见Table20;读状态命令为当前CC1100状态值,具体值见寄存器0X35说明;注意两者区别。
快速认识Cc1100
             Cc1100可以工作在同步模式下,代价是:MCU自己控制前导码。本系统中,Cc1100将工作在异步模式下。
  
知识点
             Head Byte:在 引脚 Cc1100.Csn 有效后,通过SPI总线写入 Cc1100的第一个字节。
             Status Byte: 在写入 HeadByte 的同时,MCU 得到 Status Byte。
             Burst Bit:在 Head Byte 中的一个 Bit, 有效值=="1",无效值=="0"
GDO0:
             GDO0可用作FIFO状态输出,载波感应(CS),时钟输出,GDO0 脚也能用作集成于芯片的模拟温度传感器(未用).配置寄存器为IOCFG0(0X02),现在配置为RX模式下数据状态反应输出.
GDO1:
             GDO1与SPI的SO共用引脚,默认状态下为3态,当CSn为低电平时,此引脚SPI的SO功能生效。配置寄存器为IOCFG0(0X01),现在配置为空闲状态下3态,SPI模式下SO.
GDO2:
             GDO2可用作FIFO状态输出,载波感应(CS),时钟输出,配置寄存器为IOCFG0(0X00),现在配置为载波感应(CS)输出.
TXOFF_MODE/RXOFF_MODE:
             注意,此配置为在数据包被发送/接收后状态机状态决定位,仅是在发生发送或者接收后动作;当为IDLE时发SRX/STX后状态机不按此配置运行。TX/RX后要校准。
功率放大控制(PATABLE):
             0X3E为功率写入地址,0X22为为功率配置寄存器。PATABLE 是一个8字节表,定义了8个PA 功率值。这个表从最低位(0)到最高位(7)可读和写,一次一位。一个索引计数器用来控制对这个表的访问。
             每读出或写入表中的一个字节,计数器就加 1。当 CSn 为高时,计数值置为最小值。当达到最大值时,计数器由零重新开始计数。
    
             FREND0.PA_POWER(2:0)从8个功率值中选择1个,且振幅为相应数等级。
异步模式:
             在此模式下,CC1101中的MCU的若干支持机制会停用,包括数据包硬件处理,FIFO 缓冲,数据白化,交错(interleaver)和前向纠错(FEC) ,曼彻斯特编码(Manchester encoding);
             MSK不支持异步模式;
             PKTCTRL0.PKT_FORMAT == 3 使能异步模式,GDO0为input,GDO0, GDO1或GDO2为output 相应配置位为IOCFG0.GDO0_CFG, IOCFG1.GDO1_CFG IOCFG2.GDO2_CFG;
电磁波激活(WOR):
             在WOR滤波使用之前RC振荡器必须启用,RC振荡器是 WOR 定时器的时钟源.在WOR下,收到信号后会自动进入RX模式.
载波感应(CS)与RSSI:
             因此两配置相互有连系,所以一起论述.
             RSSI 只能在RX模式下才能有效,作用为对当前信号质量评估,信号质量可从RSSI寄存器读出.RSSI信号强度可从0X34取出.
             RSSI(信号强度)计算公式: 注:此为433M下,结果为负数,
                                            RSSI_dBm=(RSSI-256)/2-74 (RSSI>=128)
                                            RSSI_dBm= (RSSI/2)-74      (RSSI<128)
             CS 只在RX模式下才能有效,当信号质量高于设定门限值时,CS状态将会被声明。现在配置为GDO2输出感应状态.
             CS门限值由以下4个寄存器决定
             ? AGCCTRL2.MAX_LNA_GAIN  
             ? AGCCTRL2.MAX_DVGA_GAIN
             ? AGCCTRL1.CARRIER_SENSE_ABS_THR
             ? AGCCTRL2.MAGN_TARGET
             
             CS门限值计算公式:     表默认门限值 + (MAGN_TARGET-33) + CARRIER_SENSE_ABS_THR.
                                           表默认门限值见table29,table30. 由AGCCTRL2.MAX_LNA_GAIN   AGCCTRL2.MAX_DVGA_GAIN 决定.
                                          默认门限值表只给了两个数据速率下的值,其余由自己测.我们对此要求不是太高,可以参考用这个表.
                                           CARRIER_SENSE_ABS_THR为对应表中-7~7的值,最后单位为dBm.
                                           Example:
                                                         在250K下AGCCTRL2.MAX_LNA_GAIN = 00   AGCCTRL2.MAX_DVGA_GAIN = 00 得出表中为-90.5
                                                          MAGN_TARGET = 7(42), CARRIER_SENSE_ABS_THR = 1(1)
                                                         门限为-90.5 + (42-33) + 1= -82.5dBm            
清理信道访问(CCA):

             清理信道访问用来指示当前信号是空闲还是忙。当忙时是否丢弃当前数据,寄存器MCSM1.CCA_MODE决定是否丢弃.默认配置为保留当前寄存器中数据,丢弃下一步要处理数据.

 

数据FIFO:

          

             当TX操作时,由MCU控制,溢出时CC1101出错;当RX操作时,读空时CC1101出错
             RX FIFO 和 TX FIFO 中的字节数也能分别从状态寄存器 RXBYTES.NUM_RXBYTES和TXBYTES.NUM_TXBYTES 中读出
             4 位 FIFOTHR.FIFO_THR 设置用来控制FIFO 门限点
             读单字节时,,CSn继续保持低;。突发访问方式允许一地址字节,然后是连续的数据字节,直到通过设置 CSn 为高来断访问
            
             当写操作时,最后一个字节被传送至 SI 脚后, 被 SO脚接收的状态位会表明在 TX FIFO中只有一个字节是空闲,
寄存器分类
Configration Registers

共47个,可读,可写

0x00~0x2E

Status Registers

共14个,只读

0x30~0x3D

Command Strobe

共14个,只写

寻址空间:0x30~0x3D

 

14个地址,对相应的地址进行写,

就相当于激活了对应的命令

本系统是用到的Strobe:

CC1100_STROBE_RESET
CC1100_STROBE_ENTER_RX_MODE
CC1100_STROBE_ENTER_TX_MODE
CC1100_COMMAND_STROBE_SIDLE
CC1100_COMMAND_STROBE_SFRX

TX FIFO 共64个,只写
RX FIFO 共64个,只读
Status(Command)Registers操作:
     当地址为0X30~0X3D时
     burst为1:对Status Registers的操作
                   Status Registers只可读,且只能一次读一个字节,不可写                 
     burst为0:对Command Registers操作
                 寄存器的访问和一个寄存器的操作一样,但没有数据被传输.写完毕后,CC1100便执行相应操作.
     读写FIFO,有两种模式:单字节读写;Burst读写。
         单字节读写时序:
             1 Cc1100.Csn有效。
             2 写入Head Byte。
              3 读、写一个1字节。
             4 Cc1100.Csn无效。
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户951650 2011-9-8 10:05

深圳市亿威盛世科技有限公司 TI德州仪器芯片专卖 无线收发射频芯片优势。 ?:0755-36931959。13480930731.刘'R. CC1000PWR CC2520RHDR MSP430FW427IPMR CC1020RUZR CC2530F128RHAR MSP430F149IPMR CC1021RSSR CC2530F256RHAR MSP430F1612IPMR CC1070RSQR CC2530F32RHAR MSP430F2121IPWR CC1070RSQR CC2531F256RHAR MSP430F2274IDAR CC1100ERTKR CC2550RSTR MSP430F235TPMR CC1100RTKR CC2590RGVT MSP430F247TPMR CC1101RTKR CC2591RGVT MSP430F417IPMR CC1150RSTR CC2500RTKR MSP430FW427IPMR CC2400RSUR CC2510F32RSPR MSP430F5438IPZR CC2420RTCR CC2511F16RSPR CC2430ZF128RTCR 原装 UC3846DWTR 正品 UC3846N 优势现货
相关推荐阅读
用户566234 2012-05-29 11:47
MSP430仿真器
  特别声明:ZT-FET430UIF为智拓科技仪器最新开发的产品,电路为原装TI电路,无进行任务删减更改,主要为了能保证产品的可靠性和完整性,现在网上有很多价格便宜的产品都经过了电路的...
用户566234 2012-05-29 11:47
MSP430 BSL编程方式
MSP430有三种编程方式,JTAG,BSL或SBW程序,这三种编程方式各有各的优点。JTAG的优势在于速度快,如果要加密就必须使用JTAG方式。一旦加密后JTAG就不能在访问芯片了,这时如果要更...
用户566234 2012-05-21 14:43
超声波测距器的设计
超声波测距器在汽车倒车,建筑工地和一些工业现场有着很广泛的用途。其测量范围0.10~4.0 m,测量精度可高达1 cm左右  本设计采用新型8051控制器c8051...
用户566234 2012-05-18 21:37
单片机MSP430F5438学习笔记
通过430一年的学习遇到的很多问题,也收获了很多,以下是学习中遇到的一些问题,和解决方法,还有很多没有整理出来,慢慢整理中。。。。 一、多源中断问题 #pragma vector = POR...
用户566234 2012-05-18 21:01
MDK中STM32无法用printf()的问题
在用MDK调试STM32板子串口时,为了方便串口调试,调用了printf()函数,但是把.hex文件烧写进板子后却发现串口接收不到任何数据。用Keil仿真是,串口可以正确的输出。有点纳闷,然后调用...
用户566234 2012-05-18 20:57
STM32 SysTick 系统时钟 超简易定时器SysTick
/** * @brief Configures the SysTick. 系统时钟配置函数   main.c * @param None * @retval None */...
我要评论
1
10
关闭 站长推荐上一条 /3 下一条