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.

[参考译文] CC2652P:无需高射频功率(20dBm)

Guru**** 2466550 points
Other Parts Discussed in Thread: CC2652P, Z-STACK, CC1352P, CC2652R, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1096081/cc2652p-no-acces-to-high-rf-power-20-dbm

器件型号:CC2652P
Thread 中讨论的其他器件: Z-stackCC1352PCC2652RSysConfig

大家好、我是终端用户。 我使用具有 CC2652P 芯片的 Zigbee USB 网关实现远距离+20dBm 的高射频功率。 我刷写了最新的 Z-Stack 协调器固件'CC1352P2_CC2652P_launchpad_Coordinator 20220219'、并希望获得高射频功率。 但 USB 记忆棒以极低的功耗发射、令人失望、大概为~ 5dBm (或更低?) -这明显取决于固件驱动程序设置。

因此、我在可用文献中搜索了原因、并在 TI 文档 SWCU185E (CC13x2、CC26x2技术参考手册)中找到了以下事实:
在表11-64 "USER_ID 寄存器字段说明"中、解释了位25:
>PA = 0:'不支持20dBm PA)
>PA = 1:"支持20dBm PA)
>默认值因器件型号而异。

我是否正确理解了这一点?
如果此 PA 位设置为零、则世界上没有固件无法打开高射频功率???

我使用 TI SmartRF 闪存编程器2读取地址0x294处的 USER_ID 信息、并找到"00";这意味着所有8位等于零-> PA 位= 0。 如果我先前提出的问题要以"是"的答案来回答、那么这可能就是解释。

我尝试将第一个字节设置为"02"(PA 位= 1)并写回数据块、但闪存程序确认了此操作并显示错误消息:
 "通过串行引导加载程序不支持擦除信息页"。
 如何将此 PA 位设置为1?

e2e.ti.com/.../CC2652P-_2D00_-PA_2D00_Bit-in-FCFG-Registers.pdf

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

     您的 CC2652P 硬件设计是否与 CC1352P Launchpad 相同? 如果没有、我认为您不能直接使用  CC1352P2_CC2652P_launchpad_Coordinator 20220219、它看起来是专用于 launchpad 的。

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

    > 您的 CC2652P 硬件设计是否与 CC1352P Launchpad 相同?

    我很确定、是的。

    这是 SONOFF Zigbee 3.0 USB 软件狗的问题;记忆棒附带了预刷写的 Z-Stack 3.x.0协调器固件。 制造商自己推荐github.com/.../Z-Stack-firmware'上的固件、我从那里获得了提到的固件。

    我真正的问题是:

    PA 位呢?

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

    TX 功率在固件中配置、如果您想更改、则必须重建固件。 顺便说一下、您如何测量  USB 记忆棒以超低功耗意外触发的情况、大概为~ 5dBm (或更低?)

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

    > TX 功率在固件中配置、如果要更改固件、则必须重建固件

    固件'CC1352P2_CC2652P_launchpad_Coordinator _20220219'可通过 Zigbee2MQTT 在 configuration.yAML 文件中使用参数'transmit _power:20'进行配置。

    >顺便说一下、您如何测量  USB 记忆棒以非常低的功耗令人失望地火灾、大概~ 5dBm (或更低?)

    我使用了两种独立的测量方法:

    1)

    我有六个可移动的 Tiya Zigbee PIR 传感器、它们报告接收到的信号强度(称为链路质量)。 我将这些结果与我使用 Conbee II 记忆棒实现的结果进行了比较。 我知道、从这个记忆棒中、它将以+10dBm 的功率触发(manufaturer 语句)。 声纳棒的信号非常低(系数3…… 5) 5)与使用 Conbee 记忆棒的情况相比。 这与我在上面提到的设置"Transmit _power:XX"无关。

    2)

    我测量了 Zigbee 记忆棒从 USB 电源流出的电流。 TI 针对 CC2652P 声明、电源电流将从5dBm 时的9.6mA 增加到+20dBm 时的85mA。 通过电流测量可以轻松测量这种较大的差异!

    以下是我的测试结果:

    1. Sonoff Zigbee 3.0 USB 软件狗、设置为"Transmit _power:5":来自 USB 电源的电流= 26.6mA
    2. Sonoff Zigbee 3.0 USB 软件狗、设置为"Transmit _power:20":来自 USB 电源的电流= 26.5mA

    结果是相同的、与 Transmit _power 设置无关。

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

    我不熟悉 Zigbee2Mqtt 项目。 我假设 它使用 MT 命令来设置 ZNP TX 功率、我建议您使用带有  SYS_SET_TX_POWER 命令的 ZTool 来设置 TX 功率、以验证设置 TX 功率命令 是否首先在固件 CC1352P2_CC2652P_launchpad_Coordinator 20220219上正常工作。

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

    >我建议您使用带有  SYS_SET_TX_POWER 命令的 ZTool 来设置 TX 功率、以验证 SET TX 功率命令是否正常工作

    我对 Z-Tool 一无所知。 但我会尝试一下-它是 Z-Stack 3.0.2软件包的一部分吗?

    记录如下:

    字节0x294中的 PA 位设置如何?

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

    是的、ZTool 是  Z-Stack 3.0.2软件包的一部分。 我不明白您的意思是“字节0x294中的 PA 位设置是什么?”

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

    >我不明白你的意思

    阅读我的顶级作品!

    澄清:TI 文档的屏幕截图

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

    我认为你不能直接操纵它来使它正常工作。 我在  这里看到 CC1352P2_CC2652P_launchpad_Coordinator 20211217报告为经过测试的固件。 也许您可以下载以尝试一下。 您对此有什么建议吗?

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

    我们已经验证了 MT TX POWER 命令是否被正确调用。 问题:是固件中的 PA 位设置还是芯片中的 PA 位只读?

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

    我想这是由 sysconf 配置的。 当您将 TX 功率设置为等于或高于14dBm 时、它将启用 PA。 如果 TX 功率设置为低于14dBm、则禁用 PA。 问题是、在构建 CC1352P2_CC2652P_launchpad 协调器_20211217和 CC1352P2_CC2652P_launchpad 协调器_20220219时、我不确定设置了什么 TX 功率。

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

    I 为 CC1352P-2 LaunchPad 使用20dBm TX 功率构建 ZNP、并附上固件供您参考。 也许您可以在 SONOFF Zigbee 3.0 USB 软件狗上尝试它、看看它是否起作用。

    e2e.ti.com/.../4774.znp_5F00_CC1352P_5F00_2_5F00_LAUNCHXL_5F00_tirtos_5F00_ccs.zip

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

    (笑声)

    >您可以在 SONOFF Zigbee 3.0 USB 软件狗上尝试一下、看看它是否正常工作。

    不幸的是、不是

    我使用相同的过程:

    1) 1)使用 SmartRF Flasher 进行闪存

    2) 2)使用 ZigStar Multitool 擦除 NVRAM

    3) 3)使用 Zigbee2MQTT 进行测试

    以下是结果的屏幕截图:

    第一步:使用 CC1352P2_CC2652P_launchpad_Coordinator 20220219

    第二步:使用您的测试固件:

    开始"擦除"时查看 ZigStar MultiTool 的状态行

    进行了比较

    Zigbee2MQTT 失败

    总结:

    此测试固件无法与声纳棒配合使用。

    这与我之前测试过的其他 ZNP 固件的结果相同:

    例如、ZNP_CC1352P_E72_20220301

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

    您好!

    您是否曾尝试过 SmartRF Studio 来测试电路板? 您可以在此处设置 TX 功率、并运行基本射频任务、例如连续 TX。
    https://www.ti.com/tool/SMARTRFTM-STUDIO

    这将确保硬件设计至少正常工作。

    谢谢、
    Toby

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

    、、、
    >您是否已尝试 SmartRF Studio 测试您的电路板?
    我现在已经尝试过它;很遗憾没有成功:请参阅附件中的第1页。

    e2e.ti.com/.../SmartRF-Studio-Connection-Failure.pdf

    SmartRF Studio 将找不到记忆棒(请参阅附件)。
    根据我对 TI SmartRF Flasher 的使用经验、我尝试了所有边界条件:例如、连接记忆棒时按 BL 按钮等

    SmartRF Flasher 在第一步中未检测到记忆棒:第2页;它看到 USB 串行驱动程序的(虚拟) COM 端口、但无法检测记忆棒的类型。

    因此、我必须手动提供帮助、然后输入 CC2652P:第3页。

    我必须按下 BL 按钮(见上文)、以便 SmartRF Flasher 能够与记忆棒通信:第4页(示例)。

    SmartRF Studio 不会为我提供这些选项。

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

    @陈益凯

    >我建议您使用带有  SYS_SET_TX_POWER 命令的 ZTool 来设置 TX 功率、以验证 SET TX 功率命令是否正常工作

    我尝试了-我遇到的问题与 SmartRF Studio 相同(请参阅前面的文章)。 Z-Tool 会找到 COM 端口、但不会通过扫描检测与该端口连接的器件。 我无法手动设置任何内容。

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

    我不知道 SONOFF Zigbee 3.0 USB 软件狗有什么问题。 我在 ZNP 项目中使用 CC2652P、但我没有类似的问题。 您可能需要联系制造商来帮助您。

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

    >您可能需要联系制造商来帮助您。

    正在处理... 我将在听到 Sonoff 的声音后立即通知您。

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

    与 Sonoff/Itead 的通信非常慢;直到今天、这一问题仍然没有令人满意的答案。

    >我假设 它使用 MT 命令来设置 ZNP TX 功率、我建议您使用
    >带有  SYS_SET_TX_POWER 命令的 ZTool、用于设置 TX 功率以验证是否设置了 TX 功率
    >命令正常工作

    同时、我成功地将 USB 记忆棒连接到 Z-Tools。 结果如下:记忆棒收到命令但拒绝接受...

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

    您好、Wolfgang、

    监控器和测试 API 的第3.8.1.21节 将显示 SYS_SET_TX_POWER_SRSP 成功或失败时返回0。  因此、在此上下文中接收0x00并不是一个错误指示。

    此致、
    Ryan

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

    感谢 Ryan 的提示。

    我将稍后测试(3周内)...

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

    您好、Ryan、

    我又回来了。

    现在我测试了一个值、不应允许这个值:100 (我测试了多达255个;相同的结果)。

    答案=级别:0x00;在您的"不是错误的指示"字中。

    这对于 CC2652P 芯片是否有用???

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

    尽管100不是有效的发射功率级别、但它只会将接收到的值降至功耗表中的最大条目。

    static void MT_SysSetTxPower(uint8_t *pBuf)
    {
      /* A local variable to hold the signed dBm value of TxPower that is being requested. */
      int8_t txPower;
      uint8_t status;
    
      /* Parse the requested dBm from the RPC message. */
      txPower = pBuf[MT_RPC_POS_DAT0];
    
      status = MAP_MAC_MlmeSetReq(MAC_PHY_TRANSMIT_POWER_SIGNED, &txPower);
    
      // Send back response that includes the status of the set command.
      // either: MAC_SUCCESS or MAC_INVALID_PARAMETER
      MT_BuildAndSendZToolResponse( MT_SRSP_SYS, MT_SYS_SET_TX_POWER, 1,
                                    &status);
    }

    此致、
    Ryan

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

    感谢您的解释、Ryan。


    但我现在要问的是:在哪些情况下会出现错误消息? 那么、除了"level":0x00"???
    负号或大于255 (超过2字节)的数字将被 Z-Tool 本身拒绝并显示一个错误消息框。


    我还有另一个问题:

    启动时、Z-Tool 是否会从连接的 USB 电路板(具有 CC2652P IC)读取所有参数?
    我的问题背景是、在启动 Z-Tool 并成功连接到我的 USB 板后、该工具将始终显示参数/命令 SYS_SET_TX_POWER 的"level = 0"。 当我向电路板发送一个新值(例如、电平= 20)时(用鼠标右键单击 SYS_SET_TX_POWER 并选择"发送消息")、并更改为另一个参数(例如 SYS_GET_TIME),然后返回到 SYS_SET_TX_POWER,将再次指示电平= 20 (= Saved ?)。
    但是、当我关闭 Z-Tool 并再次启动它时、SYS_SET_TX_POWER 将指示电平= 0。
    有两种可能:
    1. Z-Tool 在开始时不读取 USB 板的存储器内容。

    2. SYS_SET_TX_POWER 的"LEVEL = 20"不会被电路板存储/接受-但在发送后没有错误消息。


    我是否误解了某些内容?

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

     任何0x00到0xFF 范围内的值对于 MAC_PHY_Transmit _POWER_signed 都是可以接受的、因此 ZNP 不会返回错误。  Z-Tool 在启动时不会读取任何参数、因此显示的所有值都是 Z-Tool 在启动时的默认设置。

    此致、
    Ryan

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

    那么、您能否使用 Z-Tool 读出所有值?

    或者我是否要为此申请使用其他工具?

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

    可以使用正确 的监视和测试 API 返回多个配置值、但 Z-Tool 不会自动执行这些配置值、也不会有用于获取 TX 功率的默认 MT API。  可以创建自定义 MT 命令和响应(例如使用 MAP_MAC_MlmeGetReq 接收 TX 功率)、但 Z-Tool 不知道如何处理这些命令和响应。  您可以根据需要创建自己的接口来处理 ZNP 交互。

    此致、
    Ryan

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

    您好、Ryan、

    请原谅我的业余提问、但我是一位非常最终的客户(请参阅本主题中的第一句话)。 我不知道 ZNP 的互动、当然也不知道如何创建自己的界面。 我没有实验板、而是 Sonoff 的商业实验板。 但我可以运行 Z-Tool 等 TI 软件。 以下问题在我的脑海中:

    1) CP2652P 微控制器应将其射频 PA 状态存储在存储器的特定位置(EEPROM、NVRAM 等)、对吧? 是否可以使用 SmartRF 闪存编程器读取此范围? 这个存储器位置是否位于微控制器的寄存器范围内的某个位置?

    2) 2)您能否解释 USER_ID 寄存器(PA:20dBm 支持)位25的含义、以及我如何更改它?

    提前感谢、此致
    Wolfgang

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

    1) 1)当前无线电传输功率级别值存储在 ROM 中、无法 使用 当前 ZNP 的 MT 命令进行检索。

    2) 2) CC2652P 支持 PA、因此该位将读作1、CC2652R 不支持 PA、因此该位将为零。  不能更改、这就是该位为只读的原因。

    此致、
    Ryan

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

    >当前无线电传输功率级别值存储在 ROM 中、无法使用当前 ZNP 的 MT 命令检索。


    很抱歉、我没收到!
    如果此信息确实应该存储在 ROM 中、那么 Z-Tool 应该如何能够通过 SYS_SET_TX_POWER 命令更改此状态??? ROM =只读存储器?

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

    这没有最好的解释、请允许我再试一次。  以下是 TRM 第25章:射频内核的介绍:

    射频内核包含一个 ArmRegisteredCortexRegistered-M0处理器,该处理器连接模拟射频和基带电路,处理与系统端之间的数据,并以给定的数据包结构汇编信息位。 射频内核为系统 CPU (Arm Cortex-M4F 处理器)提供基于命令的高级应用程序接口(API)。 射频内核可以自主处理无线电协议(802.15.4 RF4CE 和 ZigbeeRegistered、低功耗 BluetoothRegistered等)的时间关键型方面,从而减轻系统 CPU 的负载,并为用户的应用程序留出更多资源。 射频内核有一个专用的8KB 保留 SRAM 块和一个4KB 非保留 SRAM 块、并且几乎完全从单独的 ROM 运行。 每次无线电断电时、非保留 SRAM 块的内容都会丢失。

    因此 、SYS_SET_TX_POWER MT 命令最终会导致存储在 ROM、MAC_MlmeSetReq 中的 MAC 函数。  然后、这将执行一个由单独的 M0处理器处理的射频内核命令 CMD_SET_TX20_POWER。  在 CMD_RADIO_SETUP 期间设置初始值、该值由应用程序通过 SysConfig Z-Stack -> Radio -> Transmit Power Value 进行控制。  因此、您的 M4F CPU 没有现成可用的无线电电流发射功率。  同样、ROM 中也有一个 MAC 函数来检索值 MAC_MlmeGetReq、但是默认情况下、ZNP 的 MT 不提供该函数。

    此致、
    Ryan

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

    现在我明白了、谢谢!
    现在、了解以+20dBm 功率发送的信息存储在哪个存储器区域会有所帮助:存储在8KB 保留 SRAM 块或4KB 非保留 SRAM 块中?
    如果它在 nr 块中、这意味着每次断电后、具有低射频功率的传输将处于活动状态? 我假设并希望发送功率节省在保留 SRAM 中。
    你知道吗? 谢谢您...

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

    在运行本文档中所述的任何无线电操作命令之前、必须使用命令 CMD_RADIO_SETUP 在 IEEE 802.15.4模式下设置无线电。  在这种情况下、必须提供有效的 txPower 值。  因此、在下电上电后、无论使用何种 SRAM 块存储、无线电设置期间都将建立新的发射功率。

    此致、
    Ryan

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

    您好、Ryan、
    我有最后一个问题-当然。
    查看 USER_ID 寄存器时、第31位是地址0x294的4个字节中最左边的位还是最右边的位?
    或问题措辞:
    如果 PA 位(位25)被置位、0x294处4个字节的内容是否相似?
    xxxx xx1x xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx  xxxx

    xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx x1xx xxxx
    ???
    我倾向于版本#1、但您永远不知道...
    谢谢、
    Wolfgang

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

    所有指令和数据存储器访问都是小端字节序、 TRM 的第2.4.4节。  您还可以使用 PG_REV、CC13、PKG 和协议位的相对位置进行验证、因为它们是已知值。

    此致、
    Ryan

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

    一切都很清楚!

    我错了、所以答案应该是:

    如果 PA 位(位25)被置位、0x294处的4个字节的内容将显示
    xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xx1x

    非常感谢