CC1110无线收发经验谈,不照这个经验就要蛋痛。
1,发送模式:cc1110的RFD寄存器说是FIFO,其实就只有一个字节的容量,也就是一个破寄存器,不是CC1100那种大存储器FIFO。
发送的攻略是:先在IDEL状态下,再转入STX状态,这个时候产生前导码,等前导码产生完了后,RFTXRXIF位标志会置1,这时候马上对RFD写入第一个字节,这还没有完,并清空RFTXRXIF标志,第一个字节是帧长度。然后再等RFTXRXIF置1,再写入数据,清RFTXRXIF。前面说了第一个字节是长度,所以第一个字节写了好多,后面就要连续操作好多次,不然会蛋疼。中断模式下,RFTXRXIF会自动清空,这时候使用数据队列的方式会很爽的。
2,接收模式:
接收是一个自动的模式,但是还是要从RFD寄存器一个字节一个字节的读。注意,RFIF寄存器中有个SFD位,如果该位置1,则收到前导码,表示一帧新的帧了。但是要等RFTXRXIF位置位后才能读。而且最TMD蛋疼的是,RFTXRXIF无论在发出数据或者收到数据都会置位,而且没有其它寄存器来判断发和收的状态,只有自己设置一个变量来区别开。
同样,在SFD中断后第一个字节是长度,但是收到的数据还有加个2。比如第一个字节收到5,但是后面收完5个字节还要再收2个字节,如果第一个字节是5实际累计一帧8个字节。
另外,要连续收,还是一个很蛋痛的操作。在收完一帧后,要先转到IDEL状态,再转到SRX状态,才能收下一帧。 mark备用免蛋疼 CC430也是这样 mark 没有LZ这么蛋痛过,用DMA模式的话省事很多。
连续接收的话,可以设置寄存器,让接收机接收完一帧后还处于RX状态(默认的是接收完一帧后变为IDEL状态)
修改原因:错别字 mark 我在用CC1100,但是接收出现问题 MARK 备用 回复【4楼】my_avr
没有lz这么蛋痛过,用dma模式的话省事很多。
连续接收的话,可以设置寄存器,让接收机接收完一帧后还处于rx状态(默认的是接收完一帧后变为idel状态)
修改原因:错别字
-----------------------------------------------------------------------
DMA好像可以设置持续接收,但是RF好像不能 mark mark 蛋痛! mark 蛋痛 mark 蛋痛 蛋疼 疼 cc1110 哪里有仿真器和编程器买啊? 蛋好疼 回复【4楼】my_avr
没有lz这么蛋痛过,用dma模式的话省事很多。
连续接收的话,可以设置寄存器,让接收机接收完一帧后还处于rx状态(默认的是接收完一帧后变为idel状态)
修改原因:错别字
-----------------------------------------------------------------------
呵呵,CC1110的校准怎么办? 回LS:
我设置CC1110不自动进行校准,每通讯10次就手动校准一次
CC1110每次从Idel进入、退出收发状态都校准太费时间了,在低功耗情况下也不让这么做 回复【19楼】my_avr
-----------------------------------------------------------------------
楼上的哥们留个QQ号,我的786416271 mark 这个还真没注意到。 mark 留个记号 meiyo没有资料啊? 我做了一个,一直处于发完成,应答信号的等待状态,真的很蛋疼呀!!!有没有人知道是啥原因呀!!! mark 我必须立刻把这有用的词以最快的速度普及到单位的办公室里 mark 我用的是c8051f320+cc1100
可以采用唤醒模式!
很不错! 回复【16楼】ok2001
cc1110 哪里有仿真器和编程器买啊?
-----------------------------------------------------------------------
我看到这里就有
http://item.taobao.com/item.htm?id=4479445592 mark mark 利用网上当下来的程序如下,但是发不出第二个数据!也找不到原因,请不吝赐教!否则我会蛋疼:
BYTE Transmit(BYTE __xdata *buff,BYTE bytes) //发送
{
BYTE i,BytesToSend; //
RFIF = 0;
RFTXRXIF = 0;
BytesToSend = bytes ;// 数据包长度就是byte,为方便实际应用中增加其他字节,定义了bytestosend变量
if(BytesToSend <= 64)
{
SIDLE(); // Exit RX / TX, turn off frequency synthesizer and exit
STX(); // Switch radio to TX
while(RFTXRXIF == 0); // 等待发送结束
RFTXRXIF = 0; // 清除发送标志
RFD = BytesToSend;
while(RFTXRXIF == 0); // 等待发送结束
RFTXRXIF = 0; // 清除发送标志
for(i=0;i<( BytesToSend-1);i++)
{
RFD = *buff++; // 发送数据
while(RFTXRXIF == 0); // 等待发送结束=====》》》》这里永远不结束,发不出第二个数据了!!!!
RFTXRXIF = 0; // 清除发送标志
}
RFD = *buff; // 发送最后一BYTE
while(RFIF&IRQ_DONE == 0); // 等待发送结束
RFIF &= ~IRQ_DONE; //清结束标志
RFIF &= ~IRQ_DONE; // Tx/Rx completed, clear interrupt flag
S1CON &= ~0x03; // Clear the general RFIF interrupt registers
return TRUE;
}
else
{
return FALSE;
}
} 我自己找到原因了,是发送数据的长度不一致就会有问题。
不过现在实验用DMA发送数据又发布出去了!照抄的PER_TEST ,但是DMA 和RFIF终端都没有发生。 不错,看看~ 以后调这个看来要找个没蛋的 MARK一下免蛋疼! mark 是啵? 呵呵 用过了得到楼主的指教 1100 11101101让人有爱又恨啊,爱的是价格不错,恨的是的确一般人玩不转 今天蛋疼了把 地址滤波 mark备用免蛋疼
楼主有CC1101的经验吗,顺路传授点 mark mark 没有其它寄存器来判断发和收的状态,只有自己设置一个变量来区别开。/////难道还可以全双工工作??不懂 MARK 继续mark~ mark!~ mark 回复【48楼】coyool
没有其它寄存器来判断发和收的状态,只有自己设置一个变量来区别开。/////难道还可以全双工工作??不懂
-----------------------------------------------------------------------
现在玩熟了,有个状态寄存器,可以指示发射,接收,发射转接收。
在CCA打开的时候,读取这个寄存器,判断是否成功进入发射模式,如果没有,可以重新STX,这样提高CCA的可靠性,屡试不爽。 还没用CCA改天试试 呵呵 哦 mark CCA mark mark 回复【楼主位】luoyiming1984罗菜鸟
-----------------------------------------------------------------------
有没有用cc1110做全双工语音通信的啊?请联系我,邮箱:strachey_chen@126.com 回复【59楼】stracheychen
-----------------------------------------------------------------------
去看看TI的网站,好像出了个语音通信的技术文档。 CC430开发
最近在调试CC430 无线收发,遇到一些问题,有兴趣的朋友一起交流下哈。
我用的是利尔达的EZ430_CC430开发套件,代码也是里面的例程,我一点没改过。代码的功能为:发送模块按键按下,模块上的红灯闪一下,数据发出,接收模块接到数据后蓝灯闪一下,表明收发成功。我将代码编译后下载到板子上,一切正常哈,按键按下后,红灯蓝灯闪一下也正常,但是在IAR中进行调试的时候就出问题了,具体问题如下:
在CC1101中断里,通过函数 ReadBurstReg(RF_RXFIFORD, RxBuffer, RxBufferLength);来将接收到的数据读回来,但是每次读回来的RxBuffer[ ]={0xff,0x3f,0xff,0x3f,……一直交替出现这两个值},而这个值刚好是RAM中开始那段地址上的数据,很奇怪。无论我怎么修改程序,都读不到TXbuffer发出来的数据。
我把开发套件的相关资料传上来,有兴趣的朋友帮忙看看哈。
CC430模块介绍ourdev_668962XCDZQA.pdf(文件大小:4.25M) (原文件名:ez430-RF5137-433使用说明.pdf)
CC430模块原理图ourdev_668963IMLL9S.pdf(文件大小:1.29M) (原文件名:LSD-RFPD-A403-A2(原理图).pdf)
USB仿真器说明ourdev_668964W1L35G.pdf(文件大小:566K) (原文件名:MSP-EZ430U-02_V3.0使用说明.pdf)
利尔达提供的无线收发例程ourdev_668965TBFHQJ.rar(文件大小:86K) (原文件名:RF_Example_Code.rar)
http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_668966YHGJA1.jpg
我调试接收模块时候读到的Rxbuffer,一直是这个值,没变过 (原文件名:qq.jpg) mark 学习 请问楼主有没有对cc1110进行过组网啊?采用的大概是什么类型协议啊?simpliciTI可以的吧? mark mark 回复【61楼】charley
-----------------------------------------------------------------------
一起交流啊。同杭州,也在用CC430。 支持 + Mark CC1110无线收发经验谈,不照这个经验就要蛋痛 回复【1楼】master5888
-----------------------------------------------------------------------
粉好,Mark mark mark mark 正在学习CC1100!! lz有没有测试过1110实际传输速率呢?我设置的250kbps但是实际测得远小于这个值。 Very Good! 不用他 不蛋疼 08年看到有人用这个做的汽车防盗遥控器,效果不错,好像1.5公里都可以遥控的! mark 蛋痛!
页:
[1]