luoyiming1984 发表于 2010-8-4 16:49:46

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状态,才能收下一帧。

master5888 发表于 2010-8-4 17:03:01

mark备用免蛋疼

blueagle 发表于 2010-8-4 17:17:33

CC430也是这样

wzyllgx 发表于 2010-8-4 17:23:08

mark

my_avr 发表于 2010-8-4 17:23:58

没有LZ这么蛋痛过,用DMA模式的话省事很多。

连续接收的话,可以设置寄存器,让接收机接收完一帧后还处于RX状态(默认的是接收完一帧后变为IDEL状态)




修改原因:错别字

n0831 发表于 2010-8-4 18:48:07

mark

liudeen 发表于 2010-8-4 19:03:51

我在用CC1100,但是接收出现问题

coslight_dt 发表于 2010-8-4 19:26:21

MARK

undeadhuman 发表于 2010-8-4 23:28:06

备用

luoyiming1984 发表于 2010-8-6 12:42:19

回复【4楼】my_avr
没有lz这么蛋痛过,用dma模式的话省事很多。
连续接收的话,可以设置寄存器,让接收机接收完一帧后还处于rx状态(默认的是接收完一帧后变为idel状态)

修改原因:错别字
-----------------------------------------------------------------------

DMA好像可以设置持续接收,但是RF好像不能

joni 发表于 2010-8-6 13:10:01

mark

wsm80828 发表于 2010-8-6 17:23:27

mark 蛋痛!

yondyanyu 发表于 2010-8-6 17:29:26

mark 蛋痛

wxwdxx 发表于 2010-8-6 17:43:49

mark 蛋痛

xuejianhua1986 发表于 2010-8-12 09:21:23

蛋疼

af00 发表于 2010-8-12 11:06:46

ok2001 发表于 2010-8-13 11:49:05

cc1110 哪里有仿真器和编程器买啊?

cancerlock 发表于 2010-8-30 12:28:36

蛋好疼

luoyiming1984 发表于 2010-8-31 17:51:08

回复【4楼】my_avr
没有lz这么蛋痛过,用dma模式的话省事很多。
连续接收的话,可以设置寄存器,让接收机接收完一帧后还处于rx状态(默认的是接收完一帧后变为idel状态)

修改原因:错别字
-----------------------------------------------------------------------

呵呵,CC1110的校准怎么办?

my_avr 发表于 2010-8-31 18:21:01

回LS:

我设置CC1110不自动进行校准,每通讯10次就手动校准一次

CC1110每次从Idel进入、退出收发状态都校准太费时间了,在低功耗情况下也不让这么做

luoyiming1984 发表于 2010-9-1 15:35:28

回复【19楼】my_avr
-----------------------------------------------------------------------

楼上的哥们留个QQ号,我的786416271

largeboss 发表于 2010-9-1 20:06:55

mark

sl961102 发表于 2010-9-1 21:30:53

这个还真没注意到。

bd4sad 发表于 2010-9-10 17:13:45

mark

winnerme 发表于 2010-9-19 13:56:33

留个记号

liouravr 发表于 2010-9-19 15:32:20

meiyo没有资料啊?

xxwjj 发表于 2010-10-3 22:55:57

我做了一个,一直处于发完成,应答信号的等待状态,真的很蛋疼呀!!!有没有人知道是啥原因呀!!!

litteworm 发表于 2010-10-3 23:08:11

mark

ibmx311 发表于 2010-10-5 21:43:38

我必须立刻把这有用的词以最快的速度普及到单位的办公室里

dashulin 发表于 2010-10-5 22:02:25

mark

stm32_c8051f 发表于 2010-10-9 16:53:14

我用的是c8051f320+cc1100
可以采用唤醒模式!
很不错!

l4567890 发表于 2010-10-10 01:11:09

回复【16楼】ok2001
cc1110 哪里有仿真器和编程器买啊?
-----------------------------------------------------------------------

我看到这里就有
http://item.taobao.com/item.htm?id=4479445592

kneken 发表于 2010-10-10 01:11:37

mark

linhuaou 发表于 2010-10-10 08:13:02

mark

boomh 发表于 2010-12-18 21:35:55

利用网上当下来的程序如下,但是发不出第二个数据!也找不到原因,请不吝赐教!否则我会蛋疼:

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;
    }
}

boomh 发表于 2010-12-22 11:20:38

我自己找到原因了,是发送数据的长度不一致就会有问题。
不过现在实验用DMA发送数据又发布出去了!照抄的PER_TEST ,但是DMA 和RFIF终端都没有发生。

lbc___ 发表于 2010-12-22 11:37:33

不错,看看~

zhuyi25762 发表于 2010-12-22 11:43:18

以后调这个看来要找个没蛋的

whatiknow 发表于 2010-12-22 13:34:13

MARK一下免蛋疼!

coyool 发表于 2011-6-1 17:16:46

mark

lanjingjing 发表于 2011-6-1 17:52:27

是啵?

cecwxf 发表于 2011-6-7 10:03:45

呵呵 用过了得到楼主的指教

2011mark 发表于 2011-6-7 19:36:45

1100 11101101让人有爱又恨啊,爱的是价格不错,恨的是的确一般人玩不转

jssz_hf 发表于 2011-6-7 20:02:59

今天蛋疼了把 地址滤波

SNOOKER 发表于 2011-6-7 22:10:56

mark备用免蛋疼

楼主有CC1101的经验吗,顺路传授点

alexant 发表于 2011-6-8 00:04:07

mark

sange 发表于 2011-6-9 10:06:44

mark

coyool 发表于 2011-6-9 17:35:53

没有其它寄存器来判断发和收的状态,只有自己设置一个变量来区别开。/////难道还可以全双工工作??不懂

416446891 发表于 2011-6-9 17:42:13

MARK

zgslynn 发表于 2011-6-9 17:47:50

继续mark~

ljt8015 发表于 2011-6-9 18:40:53

mark!~

n104391455 发表于 2011-6-28 15:41:47

mark

luoyiming1984 发表于 2011-6-28 19:15:36

回复【48楼】coyool
没有其它寄存器来判断发和收的状态,只有自己设置一个变量来区别开。/////难道还可以全双工工作??不懂
-----------------------------------------------------------------------

现在玩熟了,有个状态寄存器,可以指示发射,接收,发射转接收。
在CCA打开的时候,读取这个寄存器,判断是否成功进入发射模式,如果没有,可以重新STX,这样提高CCA的可靠性,屡试不爽。

cecwxf 发表于 2011-7-19 18:22:10

还没用CCA改天试试 呵呵

loveyou168 发表于 2011-7-19 18:48:30

yaya001 发表于 2011-7-19 21:02:44

mark CCA

wy2000 发表于 2011-7-19 21:59:33

mark

gwh1128 发表于 2011-7-19 22:10:01

mark

stracheychen 发表于 2011-7-22 16:23:59

回复【楼主位】luoyiming1984罗菜鸟
-----------------------------------------------------------------------

有没有用cc1110做全双工语音通信的啊?请联系我,邮箱:strachey_chen@126.com

yest0day 发表于 2011-8-2 13:26:16

回复【59楼】stracheychen
-----------------------------------------------------------------------

去看看TI的网站,好像出了个语音通信的技术文档。

charley 发表于 2011-8-18 23:36:00

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)

greysky2011 发表于 2011-8-18 23:54:16

mark

_hxlt 发表于 2011-9-25 11:02:01

学习

quanxuan 发表于 2011-12-8 14:58:10

请问楼主有没有对cc1110进行过组网啊?采用的大概是什么类型协议啊?simpliciTI可以的吧?

clogord 发表于 2011-12-8 15:22:34

mark

HYZ1989 发表于 2011-12-8 16:17:44

mark

USACH 发表于 2011-12-22 17:41:01

回复【61楼】charley
-----------------------------------------------------------------------

一起交流啊。同杭州,也在用CC430。

Antony 发表于 2012-1-5 18:03:16

支持 + Mark CC1110无线收发经验谈,不照这个经验就要蛋痛

Tristan_C 发表于 2012-1-6 11:19:05

回复【1楼】master5888
-----------------------------------------------------------------------

粉好,Mark

zhangdawei 发表于 2012-1-17 16:42:08

mark

gxy508 发表于 2012-1-19 14:03:56

mark

hongby 发表于 2012-1-31 17:39:07

mark

shaqsmao2012 发表于 2012-2-11 20:41:51

正在学习CC1100!!

gvgvfghv 发表于 2012-2-25 08:33:35

lz有没有测试过1110实际传输速率呢?我设置的250kbps但是实际测得远小于这个值。

鱼尾之恋 发表于 2012-3-28 11:20:16

Very Good!

289457095 发表于 2012-3-28 11:53:41

不用他 不蛋疼

orson 发表于 2012-3-28 13:02:18

08年看到有人用这个做的汽车防盗遥控器,效果不错,好像1.5公里都可以遥控的!

wolegequ 发表于 2012-3-29 10:25:31

mark 蛋痛!
页: [1]
查看完整版本: CC1110无线收发经验谈,不照这个经验就要蛋痛。