TI的工程师,
你好,我想问下CC1120的Sniff是怎样的功能,与eWOR的联系与区别是什么?
VV:
你好,
Siniffer mode 是指radio周期性的处于唤醒和休眠状态,用户在开发过程中只需要设置唤醒和休眠的周期,应该会自动去执行。前提是两次唤醒的时间间隔必须要小于前导码的发送时间,这样可以保证在唤醒时能够把数据包给捕捉到。所以说siniffer mode可以实现周期性的休眠和唤醒工作,但是休眠时间不能太长,这种模式是和一直出去RX on状态相比较的,功耗能下降很多,平均电流<2-3mA
WOR其实是一种人为的操作方式,就和我们平常理解休眠一样,我们可以自己设定休眠时间,然后把整个Radio都power down,这种下可能会错过数据包的接收,因为休眠时完全是power down的,功耗只有0.4uA。
在实际应用过程中,Sniffer mode用于正常接收时使用,WOR用于可以长时间休眠,不需要数据收发时使用。
chenfei:
回复 VV:
你好,
感谢关注这个问题,结合你的解释,我从1120的开发手册上找到了两者的定义
The optional enhanced Wake on Radio (eWOR) functionality enables CC112X to periodically wake up from SLEEP and listen for incoming packets without MCU interaction.
这句话说明eWOR是可以进行周期性的唤醒和休眠的,并且能进行侦听接收数据包
RX Sniff Mode is enabled by using eWOR together with RX termination based on CS (see 9.5.2) or PQT (see 9.5.3).、
Sniffer mode理解成eWOR 基础上增加CS侦听或者PQT侦听功能,以便进一步降低功耗,不知道这样理解是否合理
VV:
回复 chenfei:
可以这么理解。
yong Yin1:
回复 VV:
VV,你好,我现在用CC1121做sniffer接收,现在出现这样一种情况:刚开始配置完后,CC1121能够正常接收数据,但一段时间后就不行了。采用GPIO中断的方式唤醒MCU,出现问题后,GPIO根本不产生中断,但重新配置一遍CC1121的寄存器后又可以正常使用,目前想到的办法是定时重配CC1121寄存器,我想知道这是什么原因造成的,是CC1121寄存器数据丢失吗????你们有遇到过这样的问题吗????有没有别的办法可以解决这个问题????
Butterfly:
回复 yong Yin1:
建议Sleep时间值看一下,怀疑是不是累计的时间误差造成后期的唤醒都错过了空中包
yong Yin1:
回复 Butterfly:
基于CS唤醒的方式,前导码长度为3byte,数率为1.2ksps;EVENT0_15_8 = 0x02,EVENT0_7_0=0x14 ,WOR_CGF1.EVENT1 = 000b;都是按着用户手册计算得出的。
xianghui weng:
回复 VV:
你好,
sniff mode 的确降低了功耗,但是在该模式下的平均电流消耗也达到了0.369mA,
但是对于一个电池供电应用来说,如果时刻的消耗电流这么大,电池肯定无法坚持,请问是否有一种模式,比如我的msp430单片机和cc1120同时进入sleep状态,当cc1120(前提在睡眠模式下也能接收数据)接收到数据,通过gpiox引脚中断唤醒MCU,使cc1120进入sniff mode,如果5分或者其他自定义的时间没收到数据,那MCU和cc1120再次进入sleep状态,这样电流消耗才会少
Butterfly:
回复 xianghui weng:
做接收,CC1120还有一种Sniff+智能包头的模式 http://www.ti.com/lit/an/swra438/swra438.pdf
平均功耗可以做到20uA