打印

CC1101无法进入WOR状态,参照手册发送SWOR命令之前应该是空...

[复制链接]
986|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dkkknight|  楼主 | 2018-4-16 23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tyw 于 2018-4-22 16:18 编辑

满足了TI官网cc1101手册上说的条件,可是仍然无法进入wor。
cc1101官方手册关于swor命令写明了swor是:

Start automatic RX polling sequence (Wake-on-Radio) as described in Section 19.5 if WORCTRL.RC_PD=0.
于是参照网上的例子,配置如下:

CC1101_Set_Idle_Mode( ); //空闲模式
  CC1101_Write_Reg(CC1101_MCSM2, 0x10);  //RX_TIME 0   占空比最大,查表得占空比为1.95%
  // Enable automatic FS calibration when going from IDLE to RX/TX/FSTXON (in between EVENT0 and EVENT1)
  //在TX,RX后 自动校准   XSOC时限 (10) 149-155uS
  CC1101_Write_Reg(CC1101_MCSM0, 0x18);                  //校准 FS_AUTOCAL[1:0]  01    重IDLE转到TX OR RX模式时
  //
  //写入 事件0 时间
WOREVT1=(uint8_t)(EVENT0>>8);
WOREVT0=(uint8_t)EVENT0;
  CC1101_Write_Reg(CC1101_WOREVT1,WOREVT1);        // High byte Event0 timeout
  CC1101_Write_Reg(CC1101_WOREVT0,WOREVT0);             // Low byte Event0 timeout.

  // 启动 WOR RCosc 校准
  // 因为进入休眠后只使用RC频率周期,RC受环境和温度影响较大,所以必须一段时间或者WOR唤醒后重新校准一次时钟.
  // 在WOR没启动之前 RC须得先行启动
  // tEvent1 时间设置为最大,设置 T_event1 ~ 1.4 ms
  CC1101_Write_Reg(CC1101_WORCTRL, 0x78);             //tEvent1 =0111

  //CC1101_WriteReg(CCxxx0_WORCTRL, 0x70 | WOR_RES);           // tEvent1 =0111 即 48 (1.333-1.385 ms)
  // RC_CAL =0

  //把SO口 设置成通知口 当有数据过来时 置低
  CC1101_Write_Reg(CC1101_IOCFG2, 0x06);  //0x24);
CC1101_Write_Cmd(CC1101_SFRX);

  CC1101_Write_Cmd(CC1101_SWORRST);      //复位到 事件1

  CC1101_Write_Cmd(CC1101_SWOR);         //启动WOR

理论上来说已经进入wor了(实际上我也不知道进入了没有),为了检测它是否进入了,参照手册Application Note AN047 ,里面写到 To exit WOR mode, an SIDLE strobe must be issued. 我的理解就是假如它进入了wor那么必须发送SIDLE命令才能强制它醒过来,于是我假设它进入了wor,我在配置wor之后写了CC1101_Set_Mode( RX_MODE )(没有强制进入IDLE);结果它能接收到数据,,意思就是cc1101并没有进入wor,不知道我理解的对不对!!!!

相关帖子

沙发
dkkknight|  楼主 | 2018-4-16 23:22 | 只看该作者
如果是这样的话那么我如何才能让他进入wor呢,以上代码还缺少什么条件吗??我如何知道它是否进入了wor?
假如已经进入wor,那我CC1101_Set_Mode( RX_MODE );就能让他从wor转换成RX?好像与Application Note AN047中写的不符啊!?

使用特权

评论回复
板凳
dkkknight|  楼主 | 2018-4-16 23:22 | 只看该作者
谁知道的如果有思路的话麻烦加下我微信13678012687,不胜感激了!!

使用特权

评论回复
地板
dkkknight|  楼主 | 2018-4-17 12:27 | 只看该作者
没人吗?

使用特权

评论回复
5
dkkknight|  楼主 | 2018-4-17 12:36 | 只看该作者
有人吗?我配置GDO0口为0x24,观察Event0,结果用示波器观察发现是频率为Fxsoc/192的脉冲,这是GDO0口的默认频率脉冲,说明不能观测到Event0,是不是也从侧面反映出没进入WOR呢??可是发送swor之前设置了IDLE,WORCTRL为0x78,为啥没进入wor呢!奇怪!

使用特权

评论回复
6
dkkknight|  楼主 | 2018-4-17 21:28 | 只看该作者
大佬。。。。。。

使用特权

评论回复
7
tyw| | 2018-4-17 22:17 | 只看该作者
dkkknight 发表于 2018-4-17 21:28
大佬。。。。。。

CC1101相关专辑 26册 21M.rar (16.44 MB)

使用特权

评论回复
评论
dkkknight 2018-4-18 20:47 回复TA
@tyw :噢噢,好的,我还是滚回去自己啃好了,发现玩cc1101的还真少,没人一块交流真是头疼! 
tyw 2018-4-18 20:28 回复TA
@dkkknight :少累,木玩过,自己啃资料 
dkkknight 2018-4-18 20:20 回复TA
谢谢tz大佬的资料,很全,我想问下我想问下您将GDO0口配置成0x24可否通过观察Event0判断是否进入了wor呢,我通过示波器观察GDO0波形为固定频率的脉冲,那是GDO0的默认波形,这样是不是可以确定其还没进入wor呢?  
8
dkkknight|  楼主 | 2018-4-19 13:43 | 只看该作者
顶一个。。。。。。

使用特权

评论回复
9
dkkknight|  楼主 | 2018-4-20 16:22 | 只看该作者
继续顶。。。。。

使用特权

评论回复
10
tyw| | 2018-4-20 19:42 | 只看该作者
dkkknight 发表于 2018-4-20 16:22
继续顶。。。。。

CC1101中文数据手册.pdf (4.64 MB)
CC1101无线模块.pdf (5.87 MB)
基于CC1101与STC89C52无线收发程序(发射程序).pdf (11.58 KB)
CC1101工作流程.pdf (13.96 KB)
基于51的CC1101发送程序.pdf (18.12 KB)

使用特权

评论回复
11
dkkknight|  楼主 | 2018-4-20 20:47 | 只看该作者

谢谢tl大大,GDO0已经被配置了,我现在换配置GDO2为0x24,发现可以检测到Event0,高电平大概持续25-30us,继续啃。

使用特权

评论回复
12
dkkknight|  楼主 | 2018-4-22 16:08 | 只看该作者
配置GDO2为0x25,理论上可以检测到Event 1,高电平持续时间应该是事件1的时间(从IDLE状态变为RX状态,资料上为798us),实际检测到的波形还是跟Event 0的波形一样,现在找原因,希望知道的坛友可以指导下。

使用特权

评论回复
13
dkkknight|  楼主 | 2018-4-26 17:11 | 只看该作者
我设置普通RX模式时,可以接收到正确数据,开启WOR模式之后,就算断开发送模块,接受模块也会收到连续不断的空白和乱码。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

13

帖子

0

粉丝