微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > cc1101接收多个标签出现标签号重叠错位等问题,求TI大神解答。。。

cc1101接收多个标签出现标签号重叠错位等问题,求TI大神解答。。。

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

目前我在用cc1101模块做项目应用,基本的发送接受都完成了功能,目前采用的方式是,接收端:采用GDO2中断方式接收,中断触发方式是0x07方式,  MCSM1 设置为0x3c ,即接收完下一个状态保持在接收状态,没有设置成0x30,进入空闲状态,单独一个标签或者两个标签的话接收都没问题,但是现在挂载了6个标签,发现接收端串口打印出来的数据出现了错位和乱码,但是基本的数据格式都是正确的,上边几条都是正常的,下边几条开始出现数据乱码

基本的发送数据格式都是正确的,0531xxxx是我的标签ID号码,我现在怀疑是不是我在读取cc1101接收缓存的时候数据被覆盖了,因为这个标签同步字都是0531,后四位是id号,但是我看官方文档,0x07方式,表明crc_ok正确,产生gdo2中断,我通过中断标志来读取cc1101缓存,按理说这不应该出现错误,那问题出在哪里呢?求教TI的大神解答。。。CC1101_RxBuf是我把数据读出来存放的buf,之后就合成一些参数把buf发送出来,我现在怀疑在一帧数据接收完后我在读缓存的时候CCxxx0_RXFIFO被覆盖了,不知道cc1101有没有这个问题?文档上也没有说明。。。

while(1)
	{	
		if(CC1101_RxFlag == 1)
		{CC1101_RxFlag = 0;          halSpiReadBurstReg(CCxxx0_RXFIFO,CC1101_RxBuf,rfSettings.PKTLEN);halSpiReadBurstReg(CCxxx0_RXFIFO,CC1101_AStatus,2);               
		}	

1. 你的打印函数有无问题先?

2. FIFO也就64bytes。FIFO overflow有处理吗?

3. 数据发送是否有使用一定的退避机制。避免同时多节点发送数据?

4. 推荐采用simpliciti的RF driver,考虑了很多问题。包括芯片的一些workaround.

http://www.ti.com/tool/SimpliciTI?keyMatch=simpliciti&tisearch=Search-EN-Everything

 问题已解决,主要是换了一种方式接收,用的0x06方式,每接受完一帧数据之后检测到crc_ok之后触发下降沿中断,开始读取数据,读取完数据之后再进入空闲和接收模式,这就不会造成数据被后来的数据冲掉的现象了,唯一存在的问题就是如果标签数据太多的话,可能会导致在一段时间内有些标签没有读到,用现在这种方式就不存在乱码现象了。。

打印函数没有问题,发送端都是用的延时1ms发送一次,没有用到退避机制,还是感谢。。

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

网站地图

Top