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.

[参考译文] SK-TDA4VM:电路板正在冻结并丢失 SSH/串行连接

Guru**** 2586845 points
Other Parts Discussed in Thread: SK-TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1564108/sk-tda4vm-board-is-freezing-and-losing-ssh-serial-connection

器件型号:SK-TDA4VM


工具/软件:

您好:

我的 SK-TDA4VM 电路板出现问题。 有时、在正常使用时、电路板似乎完全冻结。 发生这种情况时、我将丢失 SSH 连接、同时串行控制台也将停止响应。

这个问题会反复出现、通常是在主板上运行某个器件时。 例如,我通过 SSH 连接传输一些文件,并且在这个过程中,电路板冻结了几次。 我测试了多次、出现了相同的问题。

最近、我尝试了将 ROS Inside Docker 与 TI Robotics SDK 配合使用。 当我运行文档中的其中一个命令来启动 ROS 时、电路板会以相同的方式再次冻结。 SSH 和串行通信都丢失。

我已经尝试多次重新安装用于边缘 AI 的 Linux SDK、认为这可能是软件问题。 我甚至测试了一个较旧的版本,但同样的问题发生,所以我回到最新的版本 (11.00.00.08 )。

我不确定这是否是我的电路板的硬件问题或其他问题。 关于如何调试或解决此问题的任何建议?


此致、
Heverton

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

    嗨、Heverton、

    您可以监控和报告 SoC 的温度吗?

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

    您好:Mark、

    我在运行工作负载时监测了 SoC 温度、并在电路板冻结(当时我正在运行)colcon build的瞬间捕获了这些值。 以下是中的读数/sys/class/thermal/thermal_zone*/temp

    46194.
    47386
    49046
    49046
    47624

    我还检查了 每个热区的类型、上面的值对应于:

    • THERMAL_zone0 -> wkup-thermal

    • THERMAL_zone1 -> MPU-THERMAL

    • THERMAL_zone2 -> c7x-THERMAL

    • thermal_zone3 -> GPU 散热

    • THERMAL_zone4 ->r5f-热性能

    请告诉我这些温度是否在预期范围内。 此外、如果有任何其他推荐的方法来测量或监测电路板的温度、我将不胜感激。

    此致、
    Heverton

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

    嗨、Heverton、

    感谢您的检查。 49ºC μ F 电容器  在室温下运行似乎正常。  

    您使用的是 SD 卡还是 eMMC?

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

     此外、您能否分享或检查以下信息:

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

    您好:Mark、

    以下是您要求的详细信息:

    • 我当前使用的是 SD 卡。

    • U-Boot 中报告的电路板版本号为 A1。

    • 对于电源、我使用 20V/65W 适配器(与您提供的链接中的型号不完全相同,但规格相同)。

    • 关于性能日志:我录制了一个简短的视频,以更好地捕捉行为,我提取了两个帧,你可以看到下面。

      这里、在冻结之前、C6x 和 C7x 内核显示非常高的异常负载值。

      这是冻结的确切时刻。 MPU 显示 100%负载、而其他内核看起来正常。


    此致、
    Heverton

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

    嗨、Heverton、

    Robotics SDK/ROS 已在 11.0 SDK 中取消了作用域。  有人提到过 测试过旧版本、但您能尝试使用 10.1 SDK 重现问题吗?  https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-SK VDD-TDA4VM/10.01.00.04

    此问题反复发生、通常是在主板上运行某些程序时。 例如,我通过 SSH 连接传输一些文件,并且在这个过程中,电路板冻结了几次。 我多次测试过它、并且出现了相同的问题。

    如果可能、您是否可以 使用 此 ssh 方法尝试重现问题、因为与 ROS 相比、此方法的活动器件更少。 当出现问题时、请共享已运行的命令、已发送的文件(或文件的说明,包括大小,文件类型,是否是文件夹等)以及您可以收集的任何日志。 此外、问题的频率或可重现性有多高、重现时间是 1 小时还是 20 次尝试中仅出现 1 次、等等

    从本质上讲、您认为可能有助于在我们的工作台上重现问题的任何信息都将受到欢迎。

    此致、

    Takuma

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

    尊敬的 Takuma:

    感谢您的跟进。 我按照您的建议通过 SSH 进行了一些数据传输测试:

    当我通过命令行(使用 scp)传输文件时、一切工作正常。

    但是、当我使用 VSCode 远程支持(拖放到板中)传输相同的文件时、板最终会冻结。 例如,我尝试转移一个包含约 1000 个 JPG 图像(共 8.58 GB )的文件夹。 使用 scp、传输成功完成、但使用 VSCode、在 250 个图像之后会持续发生冻结。

    话虽如此、对我来说、更大的问题仍然在于 ROS。 我尝试了您建议的方法、并切换到 10.01 SDK 进行测试。 不幸的是、出现了相同的冻结问题。 在这个版本中,我甚至不再看到我以前遇到的与内存相关的错误消息。 主板只是冻结(SSH 和串行停止响应)。

    作为参考、我在两个不同的 SK-TDA4VM 电路板上重现了这些问题、这两个电路板都是版本 A1、并使用两个不同的 SD 卡进行了测试、结果相同。

    对于我还可以尝试调试这个问题、您有什么建议吗?

    此致、
    Heverton

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

    嗨、Heverton、

    我们在大约 8.5~8.5 SDK 时间范围内出现了一个问题、SK-TDA4VM 电路板正在重新启动。 您可以尝试运行运行时修复程序、看看它是否能改善行为。

      如果在不同的 I2C 总线上枚举了 PMIC、您可能需要进入 bash 脚本并更改总线编号(如果有错误,应该会在日志中显示)。

    e2e.ti.com/.../sk_5F00_pmic_5F00_reboot_5F00_fix.zip

    此致、

    Takuma

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

    尊敬的 Takuma:

    感谢您分享 PMIC 运行时修复。 我对此有疑问:我应该在当前正在测试的 10.01 SDK 上应用此脚本、还是仅用于最初出现问题的 8.5 SDK?

    我在 10.01 尝试了一下、但在运行脚本时收到以下错误:

    root@tda4vm-sk:~# ./sk_pmic_reboot_fix_bus0.sh
    Error: Could not set address to 0x48: Device or resource busy
    PMIC A register value failed to change
    Error: Could not set address to 0x48: Device or resource busy
    PMIC A register value failed to change
    Error: Could not set address to 0x48: Device or resource busy
    PMIC A register value failed to change
    Error: Could not set address to 0x4c: Device or resource busy
    PMIC B register value failed to change
    Error: Could not set address to 0x4c: Device or resource busy
    PMIC B register value failed to change
    Error: Could not set address to 0x4c: Device or resource busy
    PMIC B register value failed to change
    

    PMIC 寄存器似乎处于繁忙状态、无法在运行时修改。 您希望我之前尝试应用此应用(从 U-Boot)、还是希望直接在 Linux 用户空间中工作?

    此致、
    Heverton

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

    嗨、Heverton、

    应该在 Linux 用户空间工作。 您是否可以运行和共享以下项目的日志:

    • i2cdetect -y -r 0x0
    • i2cdetect -y -r 0x2

    在其中一条总线上、地址 0x48 上应该有一个器件。

    此致、

    Takuma

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

    尊敬的 Takuma:

    以下是您要求的日志:

    root@tda4vm-sk:~# i2cdetect -y -r 0x0
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- --
    10: -- -- -- 13 -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- UU 49 4a 4b UU 4d 4e 4f
    50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --
    root@tda4vm-sk:~# i2cdetect -y -r 0x2
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- 21 -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- UU -- -- -- -- 76 --


    我还运行 i2cdetect -l 来列出所有总线、然后使用 i2cdetect -y -r 对它们进行了测试 他们都没有显示一个设备在地址0x48.

    对于我还能尝试什么、您有什么建议吗?

    此致、
    Heverton



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

    嗨、Heverton、

    内核驱动程序使用该器件。 您能否尝试在 U-Boot 中设置寄存器? 应该能够在 U-Boot 中停止、并使用 i2c dev、probe 等来执行与脚本类似的写入。

    此致、

    Takuma

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

    尊敬的 Takuma:

    很抱歉耽误您的时间。 我在过去一周遇到了一些意外问题、现在只能回到测试阶段。

    我遵循了您的建议、并尝试直接在 U-Boot 中写入 PMIC 寄存器。 下面是我做的:

    => i2c dev 0
    => i2c probe
    Valid chip addresses: 13 48 49 4A 4B 4C 4D 4E 4F 51
    => i2c mw 0x48 0x41 0x0
    => i2c mw 0x48 0x42 0x0
    => i2c mw 0x48 0x43 0x0
    => i2c md 0x48 0x41 3
    0041: 00 00 00    ...
    => i2c mw 0x4C 0x41 0x0
    => i2c mw 0x4C 0x42 0x0
    => i2c mw 0x4C 0x43 0x0
    => i2c md 0x4C 0x41 3
    0041: 00 00 00    ...

    启动 Linux 后、我确认 i2cget 的值并且寄存器确实设置为 0x00:

    root@tda4vm-sk:~# i2cget -f -y 0 0x48 0x41 b
    0x00
    root@tda4vm-sk:~# i2cget -f -y 0 0x48 0x42 b
    0x00
    root@tda4vm-sk:~# i2cget -f -y 0 0x48 0x43 b
    0x00

    然而,在这之后,我运行 Docker 容器 ,并再次尝试了 colcon 构建,不幸的是,系统仍然像以前一样冻结。

    对于我应该尝试的其他方法、您还有其他想法吗?

    再次感谢您的支持。

    此致、
    Heverton

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

    尊敬的 Takuma:

    我想我终于找到了

    我最初忽略了在 Docker 中运行 ROS 的文档中的注释:

    # TDA4VM: In case "colcon build" fails (e.g., due to limited memory), "--executor sequential" option can be added as follows
    root@j7-docker:~/j7ros_home/ros_ws$ colcon build --base-paths /opt/robotics_sdk/ros2 --executor sequential --cmake-force-configure

    我以前没有太多的关注、因为主板冻结了、没有任何明显的错误、我也被先前的 SSH 问题分散了注意力。 我甚至检查了内存使用情况、看起来并不可疑。 但事实证明、运行 colcon build -- executor sequentary 选项实际上解决了这个问题。

    因此、该构建现在可以正常运行。 再次感谢您在调试过程中提供的帮助和指导!

    此致、
    Heverton