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.

[参考译文] TI PySpinel 无法在 BeaglePlay Linux 主机中工作

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1445216/ti-pyspinel-fails-to-work-in-a-beagleplay-linux-host

器件型号:LP-CC1352P7
主题中讨论的其他器件:CC1352P7CC1352RLPSTK-CC1352RUNIFLASH、SysConfig

工具与软件:

尊敬的 TI 工程师:

我设置了一个 Wi-SUN 网络、该网络包括:

  1. 与 BeaglePlay Debian minimal OS 11.8一起安装的 BeaglePlay。
  2. 已刷写边界路由器固件的板载 Beagleplay CC1352P7
  3. 刷写了 CoAP 路由器节点片外 OAD 固件的 LaunchPad CC1352P7。
  4. 已刷写路由器节点固件的 LaunchPad CC1352R。
  5. 作为路由器节点刷写的 LPSTK-CC1352R LaunchPad SensorTag。

然后、我下载了此脚本并设置我的 TI SPINEL 环境:

https://github.com/TexasInstruments/simplelink-lowpower-f2-sdk/blob/main/tools/ti_wisunfan/setup_pyspinel.sh

但是、这是我从 Beagleplay 主机上的终端上的命令提示符处收到的结果

spinel-cli > connecteddevices
List of connected devices currently in routing table:
2020:abcd::212:4b00:1cbc:33c1
2020:abcd::212:4b00:14f9:675c
2020:abcd::212:4b00:1ca7:6343
Number of connected devices: 3
Done
spinel-cli > ifconfig
up
Done
spinel-cli > wisunstack
start
Done
spinel-cli > getoadfwver 2020:acd::212:400:14f9:675c
Sending OAD firmware version request message
spinel-cli > Invalid coap option base URI

CoAP packet received from 2020:abcd::212:4b00:29c4:b348: type: 0 (Confirmable), token: 10506430468262651724, code: 0.01 (Get), msg_id: 0
No CoAP payload

spinel-cli > ifconfig
up
Done
spinel-cli > wisunstack
start
Done
spinel-cli > dodagroute 2020:acd::212:400:14f9:675c
Error: Could not retrieve dodag route to selected embedded device
spinel-cli > ifconfig
Done
spinel-cli > wisunstack
Error
spinel-cli >

TI SPINEL 故障。 它无法检测到 CoAP 节点。  此外、Spinel 在检测不到 CoAP 节点后挂起。

请帮助我更正它们。

为了确认675c 是 CoAP 节点、我已重新启动 Beagleplay 并启动网络应用程序。  它确认675c 是 CoAP 节点。

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

    Tim、您好!

    真有意思。 您能否确认 CoAP 节点在发生这种情况时有响应、例如检查 UART 显示器?

    您正在使用哪个软件版本?

    谢谢、

    Marie H.

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

    是、

    67c5是正常节点。  我今天甚至对它进行了超过100米的测试、它立即对 LED 控制作出响应。

    debian@BeaglePlay:~$ ping6 -I wfan0 -a -c 10 2020:abcd:0000:0000:0212:4b00:14f9:675c
    PING 2020:abcd:0000:0000:0212:4b00:14f9:675c(2020:abcd::212:4b00:14f9:675c) from 2020:abcd::212:4b00:29c4:b348 wfan0: 56 data bytes
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=1 ttl=64 time=168 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=2 ttl=64 time=192 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=3 ttl=64 time=176 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=4 ttl=64 time=223 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=5 ttl=64 time=197 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=6 ttl=64 time=525 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=7 ttl=64 time=326 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=8 ttl=64 time=289 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=9 ttl=64 time=353 ms
    64 bytes from 2020:abcd::212:4b00:14f9:675c: icmp_seq=10 ttl=64 time=293 ms
    
    --- 2020:abcd:0000:0000:0212:4b00:14f9:675c ping statistics ---
    10 packets transmitted, 10 received, 0% packet loss, time 9013ms
    rtt min/avg/max/mdev = 168.054/274.081/524.851/104.227 ms

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

    我将固件重新构建到 SimpleLink CC13xx CC26xx SDK (7.41.00.17)。

    上面链接中所示的 TI SPINEL。

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

    我怀疑当前的 TI SPINEL 是罪魁祸首。

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

    我刚刚使用 TI SPINEL 进行了再次测试。  输出如下:

    spinel-cli > ping 2020:acd::212:400:14f9:675c
    
    Echo request: 56 bytes from 2020:abcd::212:4b00:29c4:b348 to 2020:acd::212:400:14f9:675c, icmp_seq=43339 hlim=63. Sending echo response.
    
    56 bytes from 2020:acd::212:400:14f9:675c: icmp_seq=43339 hlim=64 time=77ms
    
    spinel-cli > ping 2020:acd::212:400:14f9:675c
    
    Echo request: 56 bytes from 2020:abcd::212:4b00:29c4:b348 to 2020:acd::212:400:14f9:675c, icmp_seq=52154 hlim=63. Sending echo response.
    
    56 bytes from 2020:acd::212:400:14f9:675c: icmp_seq=52154 hlim=64 time=76ms
    
    spinel-cli > getoadfwver 2020:acd::212:400:14f9:675c
    
    Sending OAD firmware version request message
    spinel-cli > Invalid coap option base URI
    
    CoAP packet received from 2020:abcd::212:4b00:29c4:b348: type: 0 (Confirmable), token: 5045087140684770527, code: 0.01 (Get), msg_id: 0
    No CoAP payload
    

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

    您好、Marie、

    TI SPINEL 非常明智。  即使无法检测到 CoAP 固件、它也不应该挂起。  请尽快修复。

    我需要在100米远的目标上进行远程无线固件更新。

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

    Tim、您好!

    当从节点收到的消息没有注册的 URI 时、将返回"Invalid CoAP option base URI"。 在这种情况下、它需要 URI:OAD_FWV_RESP。 您是否可以检查您的命令使用的 URI?

    谢谢、

    Marie H.

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

    什么是"OAD_FWV_RESP"?  如何设置它?

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

    是 OTA 路由器节点 CCS 工程中的一个选项吗?

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

    Marie、

    我为 MCUboot 创建了一个新的 CCS 工程。  结果是编译失败:

    我的软件是适用于 Windows 的 CCS 12.8.1、SimpleLink CC13xx CC26xx SDK (7.41.00.17)

    是 CC1352P7-1 Launchpad

    请告诉我如何修复它。

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

    您好、Marie、

    您能否修复我报告的所有这些问题?

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

    我基于 SDK 7.40编译了一个新的 mcuboot +片外加载项目。  可以成功编译 MCUboot 项目。

    然而、OAD 固件检查仍然失败。

    另外、较新的 SDK 7.41限制了路由器节点的 PAN ID 分配。  这似乎是设计错误、因为我们可以对路由器节点进行编程、以限制其访问同一网络名称下的特定子网络。

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

    我已通过在项目的搜索路径中添加以下行来编译 mcuboot 项目:

    ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/common/flash/no_rtos/extFlash/

    然而、基于 SDK7.41.0.17、整个(mcuboot +片外 OAD)成为一个完整的故障。  创建了工程、然后使用 UniFlash 对其进行了刷写。

    最后一个 Launchpad 1352p7-1再也无法加入我的边界路由器。  红色 LED 甚至没有闪烁。

    请立即修复。

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

    Tim、您好!

    路由器节点端的 PAN ID 变量没有执行任何操作、这就是我们删除它的原因。

    谢谢、

    Marie H.

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

    Tim、您好!

    每当您擦除节点端的闪存时、也请擦除闪存并对 BR 重新编程。 这是为了避免一个器件在闪存中具有过时的绑定信息的情况。

    谢谢、

    Marie H.

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

    好了、下面我将所有网络节点重新编程到最新 SDK 下、看看它们是如何工作的。

    圣诞快乐,新年快乐!

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

    您好、Marie、

    假设我们有一个可以正常工作的 TI Wi-SUN 网络、

    1. TI Wi-SUN 堆栈如何处理新添加的需要 OTA 固件更新的 CoAP 路由器节点?
    2. 我们是否必须对边界路由器进行重新编程?  请澄清。  这是一个非常关键的点!  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tim、您好!

    1.可以在 Wi-SUN 网络中执行 OTA。 我们有一个 SimpleLink Academy 实验、可指导您完成以下过程:

    https://dev.ti.com/tirex/explore/node?a=BSEc4rl__6.30.00.84&node=A__AZzPlMOhME2Ek7DI7BJuCA__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST&placeholder=true

    2.不确定您的意思。 BR 支持开箱即用的 OTA。

    谢谢、

    Marie H.

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

    半年前的2024年、我就成功进行了 OTA 固件上传测试。

    当前的问题是您的 TI SPINEL 错误、当我尝试用 OTA 固件更新 CoAP 节点时该 Spinel 挂起。

    您甚至要求我对我的边界路由器进行重新编程、该路由器应该已经投入生产、无法重新编程。

    所以你提供的整个画面是自相矛盾的。

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

    Tim、您好!

    为了澄清:如果您擦除节点端闪存中的 NV 信息、则应在 BR 端执行相同操作。 使用 OTA 升级节点的固件后、不需要执行此操作。

    谢谢、

    Marie H.

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

    尊敬的 Marie:

    那么、节点端闪存中的"NV INFORMATION"到底是什么?

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

    Tim、您好!

    非易失性、即闪存、当节点加入 Wi-SUN 网络时、它会将网络信息存储在 NV 中。 身份验证过程完成后、它会将安全信息(尤其是网络密钥)存储在 NV 中。 如果 BR 认为它正在连接到新器件、而节点认为它正在连接到熟悉的网络、则它们将在不同阶段进入加入流程、这在大多数情况下会导致节点无法加入网络的情况。

    谢谢、

    Marie H.

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

    您好、Marie、

    好的。  让我在 BeaglePlay 和路由器节点上测试不同的场景。

    当我需要进一步的帮助时、我会再次与您联系。

    此致、
    Timmy

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

    您好、Marie、

    我正在调查这种情况:

    1. 我有一个边界路由器#1、它仅用于从同一个 wisun 网络中的一些 CoAP 路由器节点收集仪表数据。
    2. 另一个安装了 TI PySpinel 软件的边界路由器#2。  它仅用于将固件 OTA 发送到同一 Wi-SUN 网络上的 CoAP 路由器节点。
    3. 在边界路由器#2更新 CoAP 路由器节点的固件 OTA 后、边界路由器#1是否仍能使用更新的固件识别 CoAP 路由器节点?

    此致、
    Timmy

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

    Tim、您好!

    每个 RN 一次只能连接到一个 PAN ID、但您可以使用同一网络名称拥有多个 BR、因此 RN 可以在它们之间切换。

    我的假设是、无论固件状态如何、连接到 BR#2的路由器节点在连接到 BR#1时都需要重新进行身份验证。

    谢谢、

    Marie

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

    您好、Marie、

    Wi-SUN 网络的每个成员似乎都有一个"生命周期"。  我的理解是:

    一旦边界路由器或路由器节点(即具有固定 IPv6地址的 TI 芯片)从 Wi-SUN 网络中淘汰、则禁止在对其重新编程或修复后再次重新加入。

    如果是当前的 TI wi-sun 堆栈、您是否会在相关手册中强调这些内容?

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

    Tim、您好!

    我想您混合了两个不同的概念:

    1)证书超时。 Wi-SUN 规范中定义了该参数、您可以在 SysConfig 中配置此参数。 当证书超时已过时、BR 需要对 RN 重新进行身份验证。 如果他们在连接中、则可以在不断开连接的情况下完成该过程。 如果它们未连接、这将在 RN 下次尝试连接到 PAN 时发生。 本质上、RN 将执行完全联接、而不是重新联接。

    2)闪存中的非对称器件信息。 如果 BR 和 RN 对 RN 是否连接有不同的看法、则会导致未定义的情况。 从 BR 的角度来看、RN 不能正确响应。

    谢谢、

    Marie H.

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

    尊敬的 Marie:

    感谢您的讲解。

    Wi-SUN 网络听起来比我以前想象的要复杂。