[CC1101] CC1101工作在WOR模式下自动退出疑惑

[复制链接]
 楼主| 幸福至上 发表于 2015-1-16 15:12 | 显示全部楼层 |阅读模式
本帖最后由 幸福至上 于 2015-1-16 15:13 编辑

     大家好,我最近在使用CC1101进行射频通信,因为低功耗的缘故,所以配置CC1101工作在WOR模式下,现在是设置Tevent0=300ms,Tevent1=125us,Rx timeout=12.5%*300=37.5ms.发送端是以30ms的间隔进行重复2S钟发送的。在射频模块的VCC进入端口串接了一个电流表。上电对CC1101先进行一般地初始化,再进行WOR模式下的寄存器设置,并使用SWORT和SWOR命令进入WOR模式,通过观察电流在不断地变化,可以确定确实进入了WOR模式,并且也能够侦听到数据。管脚GDO0设置为接收到数据并CRC校验OK之后,就Assert.
    但在测试的时候,发现这样一个现象:上电一段时间后(大概几分钟不定),CC1101会异常退出WOR模式,返回到IDLE模式。刚开始我以为是接收到数据,CC1101的GDO0没正确跳变,但此时通过读取RX BYTES寄存器和MARCSTATE寄存器,为0x00和0x01,说明确实是没有收到数据而退出WOR模式的。并且通过观察电流表,显示为1.7mA左右,也确实是IDLE状态。对于这种异常退出WOR的情况不知道各位有碰到过的吗?希望能够给一些意见,谢谢:)
涵潇舒雅 发表于 2015-9-29 17:18 | 显示全部楼层
我也是这种情况,目前只是加了一个检测机制,还没有找到根本原因,不知道楼主搞的咋样了?
donsbin 发表于 2016-1-14 21:18 | 显示全部楼层
LZ还在不~ 我也碰到这个问题~
不知道LZ解决没有
qianreng 发表于 2016-1-19 10:07 | 显示全部楼层
新手最近在用CC1101的ASK方式通信,实验FSK可以通行但ASK就不能,这是怎么回事,我是把MDMCFG2中的值按照手册变了,其他都是FSK的配置,这样做有问题吗?
 楼主| 幸福至上 发表于 2016-1-19 10:54 | 显示全部楼层
donsbin 发表于 2016-1-14 21:18
LZ还在不~ 我也碰到这个问题~
不知道LZ解决没有

你好。出现这个问题大致是由于CC1101被干扰了所导致的。建议加长Preamble长度和修改同步字为自定义数据。我当时就这么改的,并加上定时校准CAL和重置WOR。CC1101比较旧的芯片了,建议换si4438及以上的射频芯片。
 楼主| 幸福至上 发表于 2016-1-19 10:56 | 显示全部楼层
qianreng 发表于 2016-1-19 10:07
新手最近在用CC1101的ASK方式通信,实验FSK可以通行但ASK就不能,这是怎么回事,我是把MDMCFG2中的值按照手 ...

FSK通信和ASK有很大差别,建议先找一个别人配置好的ASK通信参数来试验。
土豆泥吃货 发表于 2016-4-27 15:14 | 显示全部楼层
菜鸟学习中,麻烦问一下,怎么去看芯片是正确的进入WOR和收到数据时正确唤醒的?
 楼主| 幸福至上 发表于 2016-4-28 10:21 | 显示全部楼层
土豆泥吃货 发表于 2016-4-27 15:14
菜鸟学习中,麻烦问一下,怎么去看芯片是正确的进入WOR和收到数据时正确唤醒的? ...

主要是通过测量观察CC1101的消耗电流变化来确定芯片是否正确进入设置的模式。
韩毛毛 发表于 2017-4-11 11:34 | 显示全部楼层
你好,LZ能借鉴一下CC1101在WOR模式下的代码吗?感谢
mtbf 发表于 2017-5-24 21:59 | 显示全部楼层
发送端发送Tevent0时间就够了,CRC错误也会引起WOR退出的,有寄存器可以设置
mtbf 发表于 2017-5-24 22:15 | 显示全部楼层
If RX terminates due to no carrier sense when
the MCSM2.RX_TIME_RSSI function is used,
or if no sync word was found when using the
MCSM2.RX_TIME timeout function, the chip
will always go back to IDLE if WOR is disabled
and back to SLEEP if WOR is enabled.
Otherwise, the MCSM1.RXOFF_MODE setting
determines the state to go to when RX ends.
This means that the chip will not automatically
go back to SLEEP once a sync word has been
received. It is therefore recommended to
always wake up the microcontroller on sync
word detection when using WOR mode. This
can be done by selecting output signal 6 (see
Table 35 on page 58) on one of the
programmable GDO output pins, and
programming the microcontroller to wake up
on an edge-triggered interrupt from this GDO
pin.
收到了同步字,但是没有收到整个包,就退出WOR模式了。
 楼主| 幸福至上 发表于 2017-5-28 08:55 | 显示全部楼层
mtbf 发表于 2017-5-24 22:15
If RX terminates due to no carrier sense when
the MCSM2.RX_TIME_RSSI function is used,
or if no sync ...

哦,原来如此,CC1101的手册都翻遍了都没看到这段话。早已换用silicon的RF芯片,不纠结它了。
机智的我 发表于 2017-5-29 11:36 | 显示全部楼层
涵潇舒雅 发表于 2015-9-29 17:18
我也是这种情况,目前只是加了一个检测机制,还没有找到根本原因,不知道楼主搞的咋样了? ...

机智的我 发表于 2017-5-29 11:37 | 显示全部楼层
机智的我 发表于 2017-5-31 12:53 | 显示全部楼层
涵潇舒雅 发表于 2015-9-29 17:18
我也是这种情况,目前只是加了一个检测机制,还没有找到根本原因,不知道楼主搞的咋样了? ...

您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:重庆电子交流圈:521107487,欢迎各位工程师朋友们加入,一起交流讨论,互动分享,共同进步。

38

主题

854

帖子

10

粉丝
快速回复 返回顶部 返回列表