This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1101EM868-915_REFDES: CC1101异步通信模式接收问题

Part Number: CC1101EM868-915_REFDES

系统描述:

       发送端:将MCU1串口TXD端连接到CC1101的GDO0,通过TXD发送数据进行868MHz信号传输

       接收端:将MCU2串口RXD端连接到CC1101的GDO2,通过RXD接收CC1101解析的868MHz数据

问题描述:

      当发送端未开启时(周围也没有相关设备),接收端GDO2会一直接收到莫名其妙的数据,按照数据手册说明应该会保持0(1),我设置的IOCFG2 = 0x0D,理论上应当保持0。

当发送端开机后(TXD默认低电平),接收端GDO2会会低电平,不会产生莫名其妙的数据。

下一步准备将IOCFG2 = 0x1D,测试一下发送端开机后是不是一直在发送数据

想咨询一下是设置问题?还是硬件本身的问题?或者有什么解决办法?

I

  • 您好我们已收到您的问题并升级处理,如有答复将尽快回复您。谢谢!

  • 您好,红色框内的文本表示处于SLEEP状态时引脚将为 0。 我们假设您目前处于 RX 模式 ,那么无论您是否发射某种数据,引脚上都会有 RX 数据 (在 RX 模式下,如果没有数据,无线电会接收到噪声)。

    如果您发送数据,在 GDO2 上应该可以看到数据。

    您可以通过SmartRF Studio进行测试:

    选择其中一个典型设置并选择  “Cont. RX”选项卡

    选择异步模式

    然后IOCFG 会为 0x0D。此外,将 IOCFG0 设置为 0x0E (载波检测)

    在发送器上仅发送前导码 (在 "RF 器件命令 " 选项卡中、带有空 FIFO 的 Strobe STX)

    在 GDO2 引脚上,您将看到发送器关闭时的噪声 (CS 未声明) 以及发送器打开时的前导码 (CS 声明)。

    希望以上回答对您有所帮助,如有其他问题请随时联系我们。

  • 感谢您的回复。

    今天通过读取接收机的状态命令,发现状态机返回值为0x0D,也就是一直处于RX状态。

    假如按照您说的是接收到无线电噪声,那么应该通过什么手段去避免这个噪声呢?

    或者说有没有办法让其处于睡眠状态,然后发送设备发送信息时激活接收端,让其返回RX状态呢?

  • 补充一点,正常发送的时候也会有乱码(是射频噪声吗?),尤其是发射端与接收端距离特别远的时候,发射端没有发送也会有很多乱码产生。

  • 好的已帮您跟进给工程师,如有答复将尽快回复您。

  • 当无线电处于 RX 模式时,接收到噪声是无法避免的。 这并不是一个问题。 当 " 真实 " 数据出现时,它们的信号将比噪声更强并且您能够接收到(除非有一些干扰器以与您工作频率相同的频率进行传输)。

    如果您有一个同步协议 (即您知道发送器以固定的间隔发送数据包) ,您可以编写 RX 代码,以便首先进入 RX 并保持在该位置,直到收到第一个数据包。然后进入睡眠模式,在您可以确定发送器发送下一个数据包的确切时间之前,请不要再次进入 RX 模式。

    您也可以尝试无线电唤醒,该方法主要用于降低 RX 电流消耗。

    有关 WOR 的更多详细信息,请您参阅数据表 (不能在串行模式下使用,只能在正常数据包模式 /FIFO 模式下使用)。

    当信号变弱并且接近灵敏度级别时,您将会开始在数据包中发现错误。 这就是无线通信的工作方式。 您只能接收到一定水平的数据 (灵敏度限制) ,空气中的噪声 / 干扰可能会对您的数据有所干扰。

    我们方便知道您为什么使用串行模式而不是正常的 FIFO 模式吗? 此模式是使用无线电的首选方式, MCU 无需执行任何处理,除非在接收到 FIFO 数据包时无错误地读取该数据包。

  • 因为传输的的数据是一个动态变化的数据,还有时间传输要求,采用FIFO需要多数据进行处理,存在时间上的问题。

    现在采用ASK调制和CS载波监控,基本可以实现想要的现象,谢谢帮助。

  • 好的感谢您提供的信息。如有其他问题欢迎您在论坛参与讨论!