微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC1101 官方例程 疑问

CC1101 官方例程 疑问

时间:12-23 整理:3721RD 点击:

CC1101官方例程,数据包长最多只能发送7个字节,到8个就无法发送,什么地方出了问题?有哪位大侠知道的吗?请不吝赐教!

检查FIFO长度,包长度,数据格式设置

是不是包的陪置有问题?你在例程里面修改了哪里?

这个问题还没来得及处理,因为F2132的硬件最近又出了问题,正在忙于处理这个,当时除了硬件配置,还有数据包长度,别的都没有修改。

建议尽量少改其他地方先验证数据包长度的问题。

这是依照采购的开发板附带的测试程序修改过来的,移植到官方例程里面来了,如下

#if RF_RATR==10000
//现在采用的配置是依照采购的CC1101模块附带的测试程序修改而来的
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2, 0x0B); //GDO2 管脚输出配置 GDO2 output pin config.data
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0, 0x06); //GDO0 管脚输出配置 GDO0 output pin config.clk
TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN, 0x0c); //数据包长度 Packet length.
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1, 0x04); //数据包自动控制寄存器1 Packet automation control.
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x05); //数据包自动控制寄存器0 Packet automation control.
TI_CC_SPIWriteReg(TI_CCxxx0_ADDR, 0x00); //设备地址 Device address.
TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR, 0x00); //信道编号 Channel number.
TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1, 0x08); //频率合成控制寄存器1 Freq synthesizer control.
TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0, 0x00); //频率合成控制寄存器0 Freq synthesizer control.
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2, 0x10); //频率控制字高字节 Freq control word, high byte
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1, 0xA7); //频率控制字中间字节 Freq control word, mid byte.
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0, 0x62); //频率控制字低字节 Freq control word, low byte.
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4, 0x5B); //调制器配置字节4 Modem configuration.
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3, 0xF8); //调制器配置字节3 Modem configuration.
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2, 0x03); //调制器配置字节2 Modem configuration.
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1, 0x22); //调制器配置字节1 Modem configuration.
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0, 0xF8); //调制器配置字节0 Modem configuration.
TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN, 0x47); //调制解调器偏差设置 Modem dev (when FSK mod en)
//移植代码缺对其的初始化 TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1 , //TI); //主通信控制状态机配置字节1 MainRadio Cntrl State Machine
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0 , 0x18); //主通信控制状态机配置字节0 MainRadio Cntrl State Machine
TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG, 0x1D); //频率偏移补偿配置 Freq Offset Compens. Config
TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG, 0x1C); //位同步配置 Bit synchronization config.
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2, 0xC7); //AGC控制字节2 AGC control.
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1, 0x00); //AGC控制字节1 AGC control.
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0, 0xB2); //AGC控制字节0 AGC control.
TI_CC_SPIWriteReg(TI_CCxxx0_FREND1, 0xB6); //前端RX配置字节1 Front end RX configuration.
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0, 0x10); //前端RX配置字节0 Front end RX configuration.
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3, 0xEA); //频率合成器校准字节3 Frequency synthesizer cal.
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2, 0x2A); //频率合成器校准字节2 Frequency synthesizer cal.
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1, 0x00); //频率合成器校准字节1 Frequency synthesizer cal.
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0, 0x11); //频率合成器校准字节0 Frequency synthesizer cal.
TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST, 0x59); //频率合成器校准控制 Frequency synthesizer cal.
TI_CC_SPIWriteReg(TI_CCxxx0_TEST2, 0x81); //多方测试设置 Various test settings.
TI_CC_SPIWriteReg(TI_CCxxx0_TEST1, 0x35); //多方测试设置 Various test settings.
TI_CC_SPIWriteReg(TI_CCxxx0_TEST0, 0x09); //多方测试设置 Various test settings.

另外:

在官方例程里面,将

const unsigned char TxBuffer[9]= {PACKET_LEN, 0x03,0X02,0X01,0X04,0x05,0x06,0x07,0x08};//该语句屏蔽,修改为非常量表达的下述语句

unsigned char txBuffer[64]={PACKET_LEN ,1,1,1,1,1,1,1,1,1,1,5,6,2,1,3,4,5,6,7 //发送数据缓冲区
,3,4,5,6,7,8,9,4,5,5,6,2,1,3,4,5,6,7,8,9
,7,8,9,4,5,5,6,2,1,3,4,5,6,7,8,9,4,5,5,6,};//此处定义了60个数据

同时,根据发送数据的需要,调整数据包的长度,

#define  PACKET_LEN           (0x08)          // 数据包长度为8

PACKET_LEN 在设置为小于8的数据时,数据发送正常,但是如果设置为8,数据发送则会出错。

FIFO_THR上电默认值为0x07,收发长度为32、33个字节,应该不对其造成影响。包长度和宏定义在小于8的情况下发送正常,接收方接收正常,数据格式设置请教一下是指什么?数据包的格式?还是?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top