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**** 2966500 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-stack、 CC1352P、 CC2652R、 SysConfig

大家好、我是终端用户。 我使用具有 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

    非常感谢