pentong 发表于 2009-10-15 17:17:19

求助,si4432的WUT休眠侦听方式

我用的是SI4432,收发功能基本调试通过,并测试了通信距离300m之内没问题(433M,9.6K/s,GFSK),比CC1100好很多!
现在遇到一个问题,就是我在使用LDC模式时.当SLEEP下去后,经过WUT周期醒来侦听数据,没有接收到数据(对方没有发送),应该自动返回SLEEP状态,现在的问题是不能返回SLEEP状态,却一直处于RX状态。
CC1100的WOR休眠侦听功能之前已经实现,现在这个si4432的WUT休眠LDC侦听方式,我始终没搞明白,英文数据手册上写得也只有短短几段话,不够详细。现在给人的感觉就是SI4432在成功收到一包数据后是可以进入SLEEP状态,收不到数据,就一直出于读RX状态。
在网上也看到有人遇到一样的问题,也是没得到解决,在这儿请高手帮我解决这个问题.

pentong 发表于 2009-10-15 17:48:48

我的目的是:
单片机先配置好SI4432,让它在WUT周期自动进入SLEEP休眠状态,当WUT周期到了,他能自动退出sleep进入RX读状态,在LDC周期以内没收到对方发的数据,它又能自动进入sleep休眠状态,这样自动的周期性的去侦听无线数据,在此期间不再需要单片机送配置命令等,除非SI4432收到有效无线数据产生中断来通知单片机。

adesion 发表于 2011-1-10 10:05:23

不知道LZ搞定了没?这种在线唤醒是否有可行性?

pentong 发表于 2011-1-13 23:46:30

回复【2楼】adesion
-----------------------------------------------------------------------

以前用的V2版本,V2版本BUG比较多,不支持无线唤醒。
现在用的新B1版,无线唤醒已经可以应用,效果不错,和CC1100使用一样。

byin 发表于 2011-1-14 00:47:09

mark

adesion 发表于 2011-1-14 16:54:43

谢谢楼主

eyue 发表于 2011-1-14 17:12:01

关注~~~

omlarn 发表于 2011-12-15 10:47:30

关注!

gaocen100 发表于 2011-12-17 18:03:47

回复【楼主位】pentong
-----------------------------------------------------------------------

请问楼主 si4432睡眠后要消耗多大电流呢 我睡眠之后是mA级 效果不理想啊

pentong 发表于 2011-12-19 13:28:23

回复【8楼】gaocen100
-----------------------------------------------------------------------
休眠的时候电流在1uA以下,上mA肯定不对了

gaocen100 发表于 2011-12-19 23:55:21

回复【9楼】pentong
-----------------------------------------------------------------------
可是我只有在掉电模式下才能将功耗降到1uA,从接收态直接切换到待机状态功耗就是降不下来,这里边是不是某些关键点被我忽略掉了?

pentong 发表于 2011-12-20 18:17:33

回复【10楼】gaocen100
-----------------------------------------------------------------------
首先要确定你的硬件和电源没问题,你说的掉电模式是什么,置高“SDN”为关闭状态,在关闭状态电流是<1uA;
“从接收态直接切换到待机状态功耗就是降不下来”后,你继续读0X07寄存器,看看处于什么状态?
在状态切换的时候,最好让SI4432进入IDLE空闲状态来过渡。
halSpiWriteReg(0x07, 0x01);//0X07 工作模式控制位,打开晶振

zplmcu 发表于 2011-12-21 16:44:05

让IC进入到SLEEP
    SLEEP下可以跑32K 和SPI
    配置32K 启动中断检测就行
    唤醒成功,让IC从新进入到IDLE模式
       // Low Frequency Timer Setting Register 2
       //Set Wake-Up_timer Exponent
       macSpiWriteReg(SI4432_WAKE_UP_TIMER_PERIOD_1, value & 0x3F);
      if ((value & 0x80) == 0x80)//if the Wake-Up-Timer is enabled
      {
         temp8 = macSpiReadReg(SI4432_INTERRUPT_ENABLE_2);
         temp8 |= SI4432_ENWUT;
         macSpiWriteReg(SI4432_INTERRUPT_ENABLE_2, temp8);

         temp8 = macSpiReadReg(SI4432_OPERATING_AND_FUNCTION_CONTROL_1);
         temp8 |= SI4432_ENWT;
         if ((value & 0x40) == 0x00)         //选择RC作为32K时钟源
         {
            temp8 |= SI4432_X32KSEL;         
         }
         macSpiWriteReg(SI4432_OPERATING_AND_FUNCTION_CONTROL_1, temp8);
         ENABLE_MAC_EXT_INTERRUPT();
      }

gaocen100 发表于 2011-12-21 21:36:17

回复【11楼】pentong
-----------------------------------------------------------------------

好的 多谢 我再试验下~

jqfsjt 发表于 2011-12-22 13:59:36

mark

pentong 发表于 2011-12-23 15:25:15

LDC模式说明ourdev_706848ONNGKW.pdf(文件大小:195K) (原文件名:AN585-EZRadioPro低占空比模式操作.pdf)
页: [1]
查看完整版本: 求助,si4432的WUT休眠侦听方式