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.

[参考译文] CC1101:WMBus 868 -短距离接收故障

Guru**** 1144270 points
Other Parts Discussed in Thread: CC1101, WMBUS
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1346351/cc1101-wmbus-868---trouble-receiving-at-short-range

器件型号:CC1101
主题中讨论的其他器件: WMBUS

首先、让我首先提一下、我没有接触 CC1101 (或任何兄弟姐妹)的经验、因此我的问题可能很愚蠢-请忍受。

我的项目是一个基于在这里找到的开源项目的 WMBus 接收器(这只是我使用的 forks):

https://github.com/chester4444/esp-multical21

CC1101模块就是这里显示的同一个模块、我所做的就是根据我的喜好重新调整一下代码大小、 并且还添加了对不同仪表类型的支持(与无线电部分无关、它只是不同的有效载荷)。

我的 CC1101寄存器设置与  上述存储库中的 WaterMeter.h 文件(看起来与应用手册 AN067中的附录 D 非常匹配)所提供的设置相同:

https://github.com/chester4444/esp-multical21/blob/master/include/WaterMeter.h

我的项目在大多数情况下都非常出色、如果我的接收器与水表(即发射器)相距合理的距离(或许也与两者之间的墙壁相距)、 它将接收并解码或多或少100%的水表发送的消息(大约每96秒发送一条消息)。

但是、我首选的接收器放置位置相当靠近水表(大约50厘米)(那里有电源插座)、使用这种放置方式、我丢失了相当多的电报(可能是10-20%左右)、这很烦人。 我不确定如何弄清其原因、但有一种猜测可能是信号强度不知何故太高、从而导致 CC1101变得混乱。 天线只是一个线圈、随模块提供(从众多速递供应商之一购买)、因此一切都非常简单。 我假设原理图只是参考设计、但我尚未尝试对其进行追溯以进行验证。

我的问题是、假设信号强度可能过高、或者如果没有必要尝试、我是否可以尝试对寄存器(例如 AGC 寄存器)进行任何更改来改善接收器处于近距离的情况。 对我能尝试的任何建议都很感谢、但最后、如果需要、我当然可以将接收器移到更远的位置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否访问过 https://www.ti.com/lit/pdf/swra147 ?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    没有,我没有看到那份文件,所以谢谢你的指针!

    我进行了一项快速测试、将衰减设置为该文档中所述的最大值(我没有费心确保其像所述是动态的、因为我的接收器只会从这一个发送器接收数据)、但它似乎没有太大区别。 我现在有两个接收器在运行,一个是在接近的位置,一个是在另一个房间,由一个木墙分隔(距离约2-3米)。 两个接收器运行相同的代码、其中 FIFOTHR 中存在衰减。 CLOSE_IN_RX[1]设置为最大值(18dB),最远的接收器几乎不会丢失任何电报,而最近的接收器仍会丢失一些电报。

    我做了一些修改、允许我看到一些调试信息(通过 telnet)、实际上收到了相当多的丢失电报、 但它们中存在错误会导致 CRC 校验丢弃它们(这是正确的做法)。 另一个接收器不会发生这种情况(或至少在极少情况下)、这是奇数的。

    我还在收到电报后添加了 RSSI 寄存器的读数、但我不知道这是否能准确反映刚刚接收到或未接收到的帧的 RSSI。 我必须仔细阅读这方面的内容。 早期迹象似乎表明、接收到成功消息后、该寄存器的读数介于17和25 (十进制)之间、而对于 CRC 校验失败的寄存器、读数高于28。 最远的接收器看起来此寄存器值的差异较少、并且通常在17和22之间。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、似乎我发现了问题。 在水表旁边有一个阀门(用于关闭房屋的供水)、我在该阀门上安装了一个由 Zigbee 控制的伺服电机、使我能够在紧急情况下远程关闭阀门。 此伺服有一个电源插入到与接收器电源相同的插座上、接收器本身也就在插座旁边。

    如果我拔下伺服电源、接收量将会更好、基本上数据包丢失会或多或少变为零。 RSSI 指示现在稳定在约十进制的80值(上述衰减仍设置为18dB)。

    我认为 ZigBee 本身在这里应该不会有任何问题、因为它的工作频率是2.4GHz (并且我的接收器还使用2.4GHz WiFi 发送 MQTT 消息和从水表接收到的数据)。 但是、该伺服中的 Zigbee 无线电当然会发出大量射频噪声、但我更怀疑是电源是问题的罪魁祸首。 我将暂时使用延长线将其从接收器上移开(以便伺服中的 Zigbee 无线电可以正常工作)、如果问题消失、我就知道是电源了。 如果仍然存在、则 Zigbee 无线电可能就是问题所在、但这会让我吃惊。

    我去除了较远接收器的衰减、那个接收器的 RSSI 现在约为十进制的50。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否对 CC1101 3V 电源感兴趣?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不、我不知道。 它直接由 D1 Mini 供电、我不想在那里添加焊珠。 我不确定现在有没有足够的空间来添加一个、因此最终的解决方案可能是在(大概)噪声很大的电源和接收器之间留出更多的距离。

    另外奇怪的是,现在我暂时拔下并重新连接到该伺服电源,问题不像以前那么严重。 我相信它将再次出现,我记得,这一问题在过去也是接踵而至的。