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.

[参考译文] CC2538:CC2592:了解高增益模式对 RSSI 和 CCA 阈值的影响?

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1012964/cc2538-cc2592-understanding-the-effects-of-high-gain-mode-on-rssi-and-cca-thresholds

器件型号:CC2538
Thread 中讨论的其他器件: CC2592Z-stackCC2591

大家好、

因此、我的工作场所提出了一个基于用于无线通信的 CC2538+CC2592组合芯片组的设计、运行 OpenThread 堆栈、并且在大多数情况下工作正常。  但是、在一些站点、我们遇到了节点似乎"卡住"、无法传输的问题、我们想知道这是否是一个与渠道评估相关的明确问题。

我们的无线电驱动器或多或少地是 标准 OpenThread CC2538驱动器:我实际上贡献了大量 CC2592集成工作在上游。

阅读 CC2538的用户手册、我看到在 RFCORE_XREG_CCACTRL0中设置了 CCA 阈值;最低有效8位是一个有符号整数、表示以 dBm 为单位的 CCA 阈值;施加的偏移为73dBm。  它还在后面讨论了具有相同73dBm 偏移的 RSSI。

CC2538数据表介绍了加电复位不合适的情况、并建议值0xf8 (奇怪的是、与该页面上记录的"复位值"匹配)、该值大约等于-81dBm。  这比 CC2538数据表中描述的预期-88dBm 接收器灵敏度高7dB。  我想需要一些裕度、但为什么需要7dB 裕度?

在 CC2592数据表中、它讨论了使用不同 HGM 设置实现的相对增益;开启时的标称值为11dB、关闭时的标称值为6dB。  在我们的应用中、我们使用稳定的稳压电源运行、温度不会与典型的室温发生很大变化、但我们几乎可以在2.4GHz 频带的任何位置、因此需要考虑频率的±2dB 增益变化。  很明显、该变化假设 Hgm = 1、因此11dB 增益实际上可能在9dB 和13dB 之间。  在 HGM = 0时、我不确定 CC2592在这方面的行为。

现在、AN130 (SWRA447)讨论了如何让 CC2538与 CC2592完美搭配。  其中讨论了 LNA 对 RSSI 值的影响:如果启用了高增益模式、偏移将更改为85dBm、而当它关闭时、该值应为81dBm。  我在 这份承诺中已经注意到了这一点

本文档未讨论如何调整 CCA 阈值。 如果没有。  我尝试用笔和纸来弄一些数字,但没有得到任何结果。

根据 AN130、CC2592可根据频率、电压和环境温度增加9dB 至13dB 增益。  在高增益模式关闭的情况下、灵敏度显然会降至-99dBm (因此在"赤脚"CC2538上提高了~11dB)、或降至-101dBm (提高了~13dBm;"最佳情况")。  我可以看到-101dBm (HGM=1)图的来源、但不能看到-99dBm (HGM=0)图。  在我的座位上、有几个可能的选项:

  1. 当 HGM=1或6dB (?)时、我可以将阈值减少13dB 当 HGM=0…时 因此、当 HGM=1或-14 (0xf2)且 HGM=0时、-8 (0xf8)变为-21 (0xeb)
  2. 我可以将与 RSSI 一起使用的偏移应用到 CCA 阈值并将"灵敏度"保持在它所在的位置;因此-81 + 85 = 4 (0x04)(此时 HGM=1)或-81 + 81 = 0 (0x00)(此时 HGM=0)
  3. 我可以用 AN130的值替代-81dBm 灵敏度;因此-101 + 73 =-28 (0xe4)表示 HGM=1、或-99 + 73 =-26 (0xe6)表示 HGM=0

或执行上述三项的组合。  问题是、这里的正确方法是什么?  或者我们是在错误的树中砍头、还是应该在其他地方寻找我们的沟通问题?

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

    尊敬的 Stuart:

    尽管您不使用此解决方案、但在使用 HAL_PA_LNA_CC2592预定义时、Z-Stack 3.0.2应用了 CC2538 + CC2592解决方案。  这会将 CCACTRL0设置为 CCA_THR_HGM = 0x03的值、并进一步分配 macRadioDefsRssiAdj 值、因此我建议您查看此解决方案的 mac_rffrontad.c。

    您还可以从 MAC PIB 查看 CSMA 机制。   maxCsmaBack、minBe 和 maxBe 是您可以考虑修改的值。  否则、一旦通道噪声降低、"卡塞"器件应能够恢复。  您是否曾观察到这种情况、是否能够调试有故障的器件?  可能是内存泄漏或损坏导致锁定问题。

    此致、
    Ryan

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

    好吧、我想看一下、但我的理解是 Z-Stack 受保密协议限制、因此我在法律上不允许查看它、当我在工作之外使用无线通信协议时、我无法承受这样做的法律负担。

    0x03的值是如何到达的?  该值是否取决于 HGM 引脚的状态?

    至于存储器问题、我有一项任务、就是放入一些代码来监视_sbrk 指针和栈指针、以查看事物的深度。  (可能必须执行从计时器中断读取的堆栈指针、但这并不困难。)  存储器损坏问题尚未排除、但如果是存储器损坏问题、我希望再次看到该问题更加普遍。

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

    以上是我的手写笔记、试图弄清楚这一点… 我看不到它们从哪里得到图0x03。  改变偏移值意味着0x04、为什么是0x03?  如果我关闭高增益模式、它是否仍然为0x03?

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

    Z-Stack 3.0.2可免费下载、无需 NDA。  代码中的注释如下:

    /* CC2538-CC2591 has 6db gain whereas CC2538-CC2592 has 3db. Choosing the lower value for threshold */
    #define CCA_THR_HGM                   0x03UL   /* 3-76=-73dBm when CC2538 operated with CC2592 in HGM */

    虽然这不是一个很好的描述,但我也不认为这一价值的微小变化将会造成这个领域更大的共同国家评估问题。  您是否使用过 SmartRF Studio 来评估模块的性能?

    此致、
    Ryan

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

    您好、Ryan、非常感谢您的回应。

    我没有尝试过 SmartRF Studio、因为它在我的计算机上无法正常工作(它需要传统的 Microsoft Windows 操作系统)。

    话虽如此、您的代码段为我提供了一个进一步的提示:CC2591是一个不同的 LNA/PA 组合芯片。  "为阈值选择较低的值"是这里的关键… Z-Stack 中使用的值显然不是从 CC2592派生出来的、而是从 CC2591派生出来的。  查看这两个数据表、它们似乎具有相似的特性(高增益模式下典型增益为11dB、但 HGM 关闭时的 CC2592具有更大的增益:6dB 与1dB;两者的变化大致相同)。

    不过,图-76是一个谜。  引用 CC2538用户指南(SWRU319C):

    该寄存器应更新为0xf8、转换为
    输入电平约为-8 - 73 =-81dBm。

    -8是要写入 CCA_THR 的有符号整数值(2的补码为0xf8)。  如果我正在正确读取数据表并将-73dBm 值作为"福音"一段时间(不知道该数字来自哪里、两者之间存在8dB 的差异)、我们应该使用0x00而不是0x03。

    我目前还没有看到一些拼图、可以让我了解完整的图片。

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

    尊敬的 Stuart:

    Windows 10支持 Smart RF Studio 7。  您是否能够评估系统中不同值的有效性?  您是否已证明这是导致设备卡塞的根本原因?

    此致、
    Ryan

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

    我还没有尝试更改任何设置、因为我想尝试并理解为什么选择这些值背后的数学原理。  每次我们更改此部门的设置时、我们都必须推出一个版本、因为很遗憾、我们无法在实验室条件下重复此问题。  因此、我犹豫只能盲目地进入那里、然后在不了解他们在做什么的情况下查看数字、错误的值很可能会阻止我进行进一步的 OTA 更新并要求进行现场访问。

    我有一位同事在谈论运行传统的 Windows 10操作系统、也许可以查看 SmartRF Studio、但如前所述、它"在我的计算机上不起作用"。  我的计算机无法运行 Windows 10、从不 运行 Windows 10、从不运行 Windows 10、而且我日常所做的工作使我无法使用仍无法确定是 CP/M 还是 VMS 的操作系统。

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

    SmartRF Studio 的数字…

      {CC2538_CCACTRL0,         0xF8},
      {CC2538_CCACTRL1,         0x1A},

    这看起来与我们一直输入的值非常相似。