cc1101配置为433Mhz同步串行模式,19200的速率,不使用FEC,寄存器配置如下:
{CCxxx0_IOCFG2, 0x0B},
{CCxxx0_IOCFG0, 0x0C},
{CCxxx0_FIFOTHR, 0x47},
{CCxxx0_PKTLEN, 0xFF},
{CCxxx0_PKTCTRL1, 0x00},
{CCxxx0_PKTCTRL0, 0x12},
{CCxxx0_ADDR, 0x00},
{CCxxx0_CHANNR, 0x00},
{CCxxx0_FSCTRL1, 0x08},
{CCxxx0_FSCTRL0, 0x00},
{CCxxx0_FREQ2, 0x10},
{CCxxx0_FREQ1, 0xA7},
{CCxxx0_FREQ0, 0x62},
{CCxxx0_MDMCFG4, 0x89},
{CCxxx0_MDMCFG3, 0x83},
{CCxxx0_MDMCFG2, 0x00},
{CCxxx0_MDMCFG1, 0x22},
{CCxxx0_MDMCFG0, 0xF8},
{CCxxx0_DEVIATN, 0x47},
{CCxxx0_MCSM0, 0x18},
{CCxxx0_FOCCFG, 0x1D},
{CCxxx0_BSCFG, 0x1C},
{CCxxx0_AGCCTRL2, 0xC7},
{CCxxx0_AGCCTRL1, 0x00},
{CCxxx0_AGCCTRL0, 0xB2},
{CCxxx0_FREND1, 0xB6},
{CCxxx0_FREND0, 0x10},
{CCxxx0_FSCAL3, 0xEA},
{CCxxx0_FSCAL2, 0x2A},
{CCxxx0_FSCAL1, 0x00},
{CCxxx0_FSCAL0, 0x1F},
{CCxxx0_FSTEST, 0x59},
{CCxxx0_TEST2, 0x81},
{CCxxx0_TEST1, 0x35},
{CCxxx0_TEST0, 0x09},
其中{CCxxx0_MDMCFG2, 0x00},未开启曼彻斯特编码,可以正常收发通信,
一但设置成0x08就没办法通信,求助是否还有相关改动来配合这个寄存器的设置?
Ho Cong:
没人遇到过么?WBJ请帮忙看看, 我的目标是用CC1101和以前老的CC1020互通? 是否有可能?
Barbara Wu:
回复 Ho Cong:
首先CC1101和CC1020肯定是可以通讯的
需要你确认一下你的编码格式,看看CC1020的编码是只有data部分还是也包含了preamble和sync word
CC1101的曼彻斯特编码好像是只能编码data的
Ho Cong:
回复 Barbara Wu:
感谢谢WBJ的回复.
老产品使用的CC1020是2-FSK,19600波特率,开启曼彻斯特编码,430M频段.
现在要用cc1101兼容之前使用cc1020的产品(老产品开启了曼彻斯特编码),所以我的问题就分成2个:
1.先cc1101和cc1101之间的通信,不考虑和cc1020的互通
cc1101一开启曼彻斯特编码,就无法通信,
寄存器设置中,MDMCFG2.MOD_FORMAT=0(2-FSK)
MDMCFG2.SYNC_MODE=0(No preamble/sync)
这个设置相当于没使用硬件的preamble,我在软件里自己实现
当MDMCFG2.MANCHESTER_EN=0(disable)时, 通信正常,但改成1时,其他所有配置不变,就无法通信
您提到的"CC1101的曼彻斯特编码好像是只能编码data的",和我通信不成功有无关系?如果有,还需要在哪里修改?
2.您提到cc1020编码是否包含preamble和sync word,这个我查了一下寄存器,没发现有相关设置,
软件中,我也是用mcu自己实现preamble和sync word的.
得到WBJ的肯定的回答,我就不担心了, 但还是希望指点一下一些寄存器配置,
我晚点整理一下cc1020的寄存器配置和cc1101的寄存器配置发上来,请WBJ大大帮我看看互通还存在什么问题
Delta:
回复 Ho Cong:
工具:如果用EVM的模式,用SMARTRF STUDIO可以去看接收端的数据,是否数据中断或出错误了。
Ho Cong:
回复 Delta:
我手头没有EVM board, cc1101之间的互通我是用IAR设置断点来测试是否通的,
没有开启Manchester时可以完整收到数据包,开启Manchester, 连premble都没有收到
我想我现在先解决cc1101之间开启Manchester模式下通信的问题,烦请各位大大指点一下.
另外,文档明确说了异步串行模式不支持Manchester编码, 那么同步串行是否支持呢?
Barbara Wu:
回复 Ho Cong:
可不可以理解CC1020这端preamble和sync word也是经过曼彻斯特编码了的?
如果是,preamble先不使用曼彻斯特编码,然后手动修改CC1101这边的sync word为曼彻斯特编码之后的数值,看能不能收到
Ho Cong:
回复 Barbara Wu:
明白你的意思了,手动来做曼彻斯特编码,然后来试.
这个和cc1020互通的问题先暂时放一放, cc1101之间的曼彻斯特编码无法通信能否先帮忙看下,我实在找不出原因
jun he5:
回复 Barbara Wu:
亲爱的TI技术支持,您们好:
我司在使用贵司的cc1101时出现以下问题,请在有空的时候帮忙解决下,谢谢;
CC1101发射端(FSK调制方式)使用FIFO发送数据,频率偏移19khz,速率1.2kpbs,接收端(FSK调制方式),频率偏移380.85khz,RX filter BW为812.5khz,接收端速率设置为1.2kbps时(和发射端一样),异步直通模式下,GDO0端口输出的高低电平数据能够看到有效数据波形(比如能清晰的看到引导、同步头等等),当接收端速率设置为其他速率时,GDO0输出的波形就会不正确了,宽度都和1.2kbps下的电平宽度不一样,请问接收端有效数据与速率有关是什么原因造成的,我看官网的手册都说只与RX filter BW有关,请问有哪种情况会造成这种错误
接收端配置如下:
{CC1101_FSCTRL0, 0x00},{CC1101_FSCTRL1, 0x08},{CC1101_FSCTRL0, 0x00},{CC1101_FREQ2, 0x10},//433.92{CC1101_FREQ1, 0xB0},{CC1101_FREQ0, 0x71},//{CC1101_FREQ0, 0x3f},{CC1101_MDMCFG4, 0x0C},//1.2kbps 0xE9//{CC1101_MDMCFG3, 0x83},//0x43//{CC1101_MDMCFG4, 0x05},//1.2kbps 0xE9//{CC1101_MDMCFG3, 0x83},//0x43//{CC1101_MDMCFG4, 0x0B},// 0x05速率:100Kb,接收滤波带宽:812.5KHZ 0xEA//{CC1101_MDMCFG3, 0xF8},//0x83//{CC1101_MDMCFG4, 0x2B},// 0x05速率:100Kb,接收滤波带宽:541KHZ 0xEA//{CC1101_MDMCFG3, 0xF8},//0x83{CC1101_MDMCFG2, 0x03}, {CC1101_MDMCFG1, 0x22},{CC1101_MDMCFG0, 0xF8},{CC1101_CHANNR, 0x00},//{CC1101_DEVIATN, 0x34},//0x34{CC1101_DEVIATN, 0x77},//0x34{CC1101_FREND1, 0x56},{CC1101_FREND0, 0x10},{CC1101_MCSM0, 0x18},{CC1101_FOCCFG, 0x16},{CC1101_BSCFG, 0x6C},{CC1101_AGCCTRL2, 0x43},{CC1101_AGCCTRL1, 0x40},{CC1101_AGCCTRL0, 0x91},{CC1101_FSCAL3, 0xE9},//{CC1101_FSCAL3, 0xEA},{CC1101_FSCAL2, 0x2A},{CC1101_FSCAL1, 0x00},{CC1101_FSCAL0, 0x1f},{CC1101_FSTEST, 0x59},{CC1101_TEST2, 0x81},{CC1101_TEST1, 0x35},{CC1101_TEST0, 0x09},{CC1101_IOCFG2, 0x0D},{CC1101_IOCFG0, 0x0D},{CC1101_PKTCTRL1, 0x04},{CC1101_PKTCTRL0, 0x32},//使能串行异步模式{CC1101_ADDR, 0x00},{CC1101_FREND0, 0x11},{CC1101_PKTLEN, 0x0B},