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.

[参考译文] CC110L:接收器:杂散数据包、载波侦听和 RX-SYNC

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1246361/cc110l-receiver-spurious-packets-carrier-sense-and-rx-sync

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

您好!

我仍在致力于优化 CC110L 接收器应用(请参阅 该线程)、但仍有一些未解决的问题。

摘要:我已设置 CC110L 以1kHz 数据速率接收曼彻斯特编码数据。 由于内置曼彻斯特解码无法可靠地用于这种旧数据格式(30%的数据包丢失)、因此我只需使用两倍的数据速率(2 lHz)和一个2字节的同步字0x55 0x56。

我期望4个字节曼彻斯特编码的有效载荷、因此我将 RX_LENGTH 设置为8个字节、这些字节在软件中解码为原始的4个字节。 我还附加了 RSSI 和 CRC 字节、因此我预计总共能在 RX _FIFO 中接收10字节的数据包。 处理后、将得到4字节有效载荷、外加一个字节的 RSSI (我还不使用 CRC 值)。这是成功接收有效载荷的一个示例:

0x01 0x53 0xA4 0xFF 0x53

有效载荷为0x01 53 A4 FF (按预期)、RSSI 值为0x53 (-32、5dB、~1米距离)

此设置可以正常工作、数据包丢失几乎为零、但有一点除外: 接收器还会拾取虚假数据包("重影数据包")、通常每分钟会拾取几个、但这可能会有很大差异。有时、10分钟后没有收到任何数据包、然后在10秒内就有3个或4个数据包到达。 我认为这只是接收器噪音、有时会被错误地识别为同步字、但我不确定-它的噪音相当不规则。

这是在过去2分钟内收到的:

0x60 0x94 0x91 0x07 0xB5  
0x15 0x02 0x00 0x04 0xBD  
0xA2 0x04 0x0C 0x00 0xB7  
0xC0 0x05 0x3C 0xD4 0xBF
0x00 0x4C 0x0B 0x02 0xBD
0x44 0x10 0x00 0xC4 0xC0

RX 有效载荷字节基本上是噪声、而 RSSI 值低得多(大约-105dBm)。 每个伪数据包大约需要70毫秒的时间被接收和处理。 在此期间、无法接收到其他数据包、因此如果每分钟有3个伪数据包、接收器可能会"丢失"约0.2秒/分钟。 这意味着300个合法数据包中缺少1个数据包。 这不是戏剧性的,但仍然恼人,特别是因为我不知道这是否可能变得更糟在一个更嘈杂的环境。

我曾尝试修整 AGCCTRL2和 AGCCTRL1寄存器、尤其是增大 MAGN_TARGET 和 CARRITER_SENSE_ABS_THR 似乎有所改善、但低 dBm 电平的虚假数据包仍然可以解决。 所需的功能是设置一个 RSSI 阈值、低于该阈值则这些数据包会被忽略(例如0xD0或-98dBm 以下的所有内容)。 我还可以降低 LNA 和/或 DVGA 增益、 但我恐怕这样会缩小射频链路的整体范围。坦率地说、我不知道更改这些值会有什么其他影响、那么我很难通过这种方式获得最佳解决方案。

当我查看 CS 和 RX-SYNC (对于 GDO0、我将使用 RX-SYNC =配置0x06来表示数据包的到达、对于 GDO2、我将在硬件层面上注意到另外一件奇怪的事情、CS = 0x0E)。

当接收到合法数据包时、我看到载波侦听(黄色轨迹)和 RX-SYNC (蓝色轨迹):

但是、当接收到伪数据包时、我只看到 RX-SYNC、而没有载波侦听:

此数据表建议使用 CS 来评估是否接收到有效信号:

"5.18.3载波侦听(CS)
载波检测(CS)用作同步字限定符、并用于清零通道评估(请参阅第5.18.4节)。"

但这与我看到的情况相反:即使 CS 无效、仍能识别同步字、RX FIFO 中充满噪声。 我曾尝试在论坛和互联网上的此处查看更多信息以及如何使用这些 AGCCTRL 寄存器设置接收器阈值的示例、但找不到任何有用信息。 还不清楚 CC110L 接收器的 CS 和 RX-SYNC 的内部逻辑如何工作。

那么基本上这个问题就是:如何设置一个 RSSI 阈值、低于哪个数据包会被忽略? 数小时的试错没有带来解决方案(甚至更好的见解)、尽管这也是由这些虚假数据包的随机性造成的。 进行更改后、可能需要半个小时或更长时间才能确定是否有任何 更改。

再次感谢销售线索、

理查德

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

    使用等于0x55 56的同步字时、由于在噪声中找到该同步字的概率相当大、因此会得到大量的伪同步。

    从上面看、不清楚您是否使用了一些标记为红色的设置:

    如果使用其中之一、则信号必须高于阈值、芯片才会开始寻找同步字。 那么您将会避免使用您发布的第二个图表。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用等于0x55 56的同步字时,由于在噪声中找到此同步字的概率相当大,您将获得大量的伪同步。

    遗憾的是、由于向后兼容性、我绑定到 ATA5760接收器中使用的旧数据格式、请参阅 此链接。也许在几年后、当客户不再使用老一代接收器时、我们可以改用更可靠的格式。

    什么原因使该位模式在噪声中比另一个(不太规律)模式更容易发生? 还是只是长度?

    从上面看,不清楚您是否正在使用一些标记为红色的设置:

    啊、这确实是我要找的。 我确实选择了检测到16/16个同步字位(0x02)、但未与载波检测阈值(0x06)结合使用。 这确实解决了主要问题,谢谢! 问题:15/16位和16/16位之间的区别是什么? 我在数据表中的任何地方都找不到这方面的说明。 15/16是否意味着16个位中的15个应该被正确接收?

    还有一个问题:数据表指出、绝对 CS 阈值取决于以下4种设置、使用的位值从 SmartRF Studio 复制:

    •AGCCTRL2.MAX_LNA_GAIN = 000
    •AGCCTRL2.MAX_DVGA_GAIN = 00 =>-90.5dBm (表5.10)与 MAGN_TARGET 结合
    •AGCCTRL1.CARRIVER_SENSE_ABS_THR = 0000 =>在 MAGN_TARGET 设置下
    •AGCCTRL2.MAGN_TARGET = 001 => 27 dB

    (AGCCTRL1.CARRIER_SENSE_REL_THR = 00)

    我如何至少估算 CS 阈值是多少? 我尝试解释上述内容,但我不明白数字。 是的,事情似乎工作,但我不知道这些设置是否是最佳设置(*)。 从表5-10中、我想绝对 CS 阈值约为-90dBm (在250kBaud 下)、但此 MAGN_TARGET 为27dB 意味着什么? 它在较低的数据速率(本例中为2kBaud)下有何不同?

    背景:我是一个老生常谈的硬件专家、我习惯了在接收器的每一阶段都能够测量、检查和优化信号、并附带详细的原理图。 使用此类器件感觉非常像试图了解几十个开关和所有这些开关和设置、它们都影响信号的接收方式、但对它们的作用和应用顺序只能有一个模糊的了解、 而且不能简单地检查我的工作。

    *:为了更好地掌握东西、我还试图将自己的手放在与 SmartRF Studio 配合使用的 CC110L 硬件评估套件上、但这些评估套件似乎已过时。

    但我正在慢慢地得到它的窍门,感谢像你这样的乐于助人的人-所以我正在取得进展! (并学到了很多...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    15/16是否意味着16位中的15位应该被正确接收?

    可以。 对于某些协议、允许1位错误可能是实用的。 在您的情况下、我建议使用16/16。  

    对于门槛:我认为这是一个相当多次被问及的问题。 我会建议做一个谷歌搜索,看看弹出的帖子,我相信他们中的一些应该涵盖一些细节如何设置限制。 尝试使用"CC1101 CS 阈值站点:e2e.ti.com "进行搜索。 CC1101具有比 CC110L 更多的功能、因此在搜索主器件时可以更轻松地找到答案。  

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

    好的、谢谢、我来看看、还会使用不同的发送器功率等级进行一些更多的测试、以 了解这些接收器参数。

    现在、我可以完成编程并开始与客户一起测试。