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.

[参考译文] AM261-AM261-AM261x-EVM:SOM enet_lwip_cpsw 示例在热复位后挂起–仅在下电上电后有效

Guru**** 2925550 points

Other Parts Discussed in Thread: SYSCONFIG, SN74LVC1G07

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1643442/am261-som-evm-am261x-enet_lwip_cpsw-example-hangs-after-warm-reset-works-only-after-power-cycle

器件型号: AM261-EVM-EVM SOM
主题中讨论的其他器件: SysConfigDP83869SN74LVC1G07、

TI 团队大家好、

我正在与 AM261x 合作、测试 enet_lwip_cpsw MCU+ SDK 的示例。

在上电和以太网通信成功后、应用程序正常工作。 但是、复位电路板后、应用程序将不再正确启动、只会在 UART 上打印一个很长的十六进制转储文件。

UART 输出示例:

000002010100000000000100414d323631580000000000000400cdab0000010001000000000000000000000000000000000000001aefc36abc625f8da980be8cd275a58eb77c6b83fc91c7548a793be4c020c2cded676ddf26b3db6361bf5fc01d7f3e71abc5cfc2b0ce553497c36284fa66dfbd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f065c5297cfdc2c3882241850b4d3be1ba0804935a1a554ad09c09035621c40e6ba5c61056f45e282a50f115612f609b7858836916a1707f426f8aaed4068518CC

此后、电路板挂起、应用程序不会执行。

恢复的唯一方法是:

  • 完全断电
  • 再次开机

应用程序就会再次正常工作。

我还注意到 SDK 文档指出:

“如果需要重新加载并再次运行、必须执行 CPU 下电上电“

但是、对于生产器件、系统必须在以下情况后自动恢复:

  • 看门狗复位
  • 热复位
  • 欠压/电源波动
  • 软件崩溃

而无需完全移除电源。

我怀疑:

  • CPSW/UDMA/PHY 状态在热复位期间未正确复位
  • 复位后、外部 PHY/OSPI 保持过时状态。

我还查看了 AM261x 复位架构文档、其中显示了单独的 PORz 和热复位路径。

问题:

  1. enet_lwip_cpsw 只是示例中的已知限制、还是 AM261x 以太网子系统本身的限制?
  2. 对于 CPSW + lwIP、建议的生产级复位序列是什么?
  3. 复位前是否有官方的以太网取消初始化/关断序列?
  4. 热复位期间是否必须外部 PHY 复位?
  5. TI 是否建议使用 POR 复位而不是热复位来进行以太网恢复?
  6. AM261x 上的软件复位期间、是否存在任何与 OSPI 复位相关的已知问题? 我看到数据表提到了 OSPI 闪存复位的特殊处理方式。
  7. 是否有任何参考示例显示无需下电上电即可成功地重复打开/关闭/重新启动 CPSW/lwIP?

环境:

  • 器件:AM261x
  • SDK:MCU+ SDK (mcu_plus_sdk_am261x_26_00_00_01)
  • 示例: enet_lwip_cpsw
  • 主板版本:E2

任何有关实现稳健生产级恢复/复位架构的指导都会非常有帮助。

BR、
Akshay

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

    尊敬的 Akshay:

    热复位未连接 PHY Resets 或以太网板载连接器逻辑、重新初始化示例时需要这些逻辑、但我不预计“CCCCCC“打印出来。 如果您看到这些打印、可能意味着 OSPI 引导加载程序无法找到有效的映像、并进入回退 UART 引导模式。

    就我在 TI AM26x EVM 上进行的本地测试而言、在 OSPI 引导模式和刷写的二进制文件下、这些示例在 PORz 之后工作正常、但符合预期、不是在热复位(LaunchPad 上的 Resetn 按钮)之后工作。

    [引述 userid=“698381“ url=“~/support/interface-group/interface/f/interface-forum/1643442/am261-som-evm-am261x-enet_lwip_cpsw-example-hangs-after-warm-reset-works-only-after-power-cycle
    • TI 是否建议使用 POR 复位而不是热复位来进行以太网恢复?
    [/报价]

    您需要 PHY 的复位逻辑。查看 CPSW TRM、热复位将复位 CPSW 子系统、但外部 PHY 不会复位。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我尝试使用 PORz 开关复位电路板、但看到以下 UART 输出、而不是应用程序引导:

    000002010100000000000100414d323631580000000000000400cdab0000010001000000000000000000000000000000000000001aefc36abc625f8da980be8cd275a58eb77c6b83fc91c7548a793be4c020c2cded676ddf26b3db6361bf5fc01d7f3e71abc5cfc2b0ce553497c36284fa66dfbd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f065c5297cfdc2c3882241850b4d3be1ba0804935a1a554ad09c09035621c40e6ba5c61056f45e282a50f115612f609b7858836916a1707f426f8aaed4068518CC

    如果您看到这些图片、可能意味着 OSPI 引导加载程序无法找到有效的映像并进入回退 UART 引导模式。

    您能否提出如何调试或解决此问题的建议?
    我是否应该再次验证刷写的 OSPI 映像、引导模式开关设置或 SBL 配置?

    此致、
    Akshay

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

    1.您是否处于 OSPI 引导模式?

    2.刷写过程中是否使用了正确的 sbl_ospi_morore elf 文件?

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    1.是的、我将以下开关配置用于 OSPI 引导模式。 - 0 0 1 1

    2.我刷写了 sbl_ospi_multicore_elf.release.tiimage 位于以下位置的预编译 SBL 映像:  

    C:\ti\mcu_plus_sdk_am261x_26_00_00_01\tools\boot\sbl_prebuilt\am261x-lp
     

    不过、我最初仅刷写了一次 SBL。 之后、由于 SBL 没有更改、我只重新刷写了应用程序映像。

    此致、
    Akshay

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

    尊敬的 Akshay:

    仅确认一次、连接的映像来自 DEV Bootmode。 此外、请使用此配置:

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    是的、我要按图中所示配置开关。

    BR、

    Akshay

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

    尊敬的 Akshay:

    Shaunak 目前是 OOO 商务旅行。 请预计响应会延迟。

    谢谢、

    IRA

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

    尊敬的 Shaunak:

    我在版本 A 板上刷写了相同的示例代码 (PROC193A)、令人惊讶的是、它没有任何错误。 版本 E2 主板 (PROC193E2) 可能有什么问题?

    我对代码和 SysConfig 进行了以下更改、以使其在版本 A 电路板上正常工作:

    • 将 PHY 器件从 DP83826 更改为 DP83869
    • 更改了两个 PHY 地址。
    • 将 PHY 引脚多路复用器从 RMII 更改为 RGMII。

    此致、
    Akshay

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

    尊敬的 Akshay:

    我最初以为它能正常工作、但在我的例子中、我的 Launchpad 中的热复位按钮有一些问题。 其他 SDK 示例在热复位后确实有效。

    我现在正在出差、没有硬件来测试它、但我最初认为 PHY 可能会因不重新设置而导致问题。 但现在想想、即使 PHY 不会进行复位、Enet 应用仍然会启动、在 PHY 出现问题的情况下、我们仍然应该看到代码到达 PHY 活动逻辑、在这种情况下、我们可以看到它完全正常工作。

    所做的更改是预期的/您可以查看最新的 SDK、这样您就不必在开箱即用示例中进行这些更改、它们默认支持 REV-A。  

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我刚浏览并比较了 A 版和 E2 版电路板的原理图。 我发现两个原理图之间存在主要差异。

    在版本 A 中、PORZ 开关与 IO 扩展器复位引脚之间存在连接、但版本 E2 电路板上没有此连接。 这是否是在版本 E2 电路板上观察到问题的原因?

    我能否将 PORZ 开关连接到 R191 和 R364 以在 E2 版板上进行检查?

    此致、

    Akshay

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

    尊敬的 Akshay:

    请硬件专家对原理图进行评论。

    此致、
    Shaunak

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

    Zackary Fleenor ,您能帮助解决 AM261x SoM EVM 上的上述硬件特定问题吗?

    此致、
    Shaunak

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

    尊敬的 Akshay:

    以下是有关 AM261x 外部外设和 PORz 连接热复位要求的信息:

    用于外部外设(DP83869 PHY、IO 扩展器)的 WARMRSTn

    AM261x 上的 WARMRSTn 引脚默认配置为开漏输出、需要一个外部上拉电阻器连接到 3.3V VDDS33 电源轨。 在此配置中、它用作 MCU 复位指示器、可以直接驱动以太网 PHY 和存储器等所连接外设的复位输入[1]。

    如果您的设计同时需要复位状态输出和软件复位输入(例如按钮)、请使用开漏缓冲器(例如 SN74LVC1G07)以避免信号冲突。 这是 AM263x 控制卡上用于在上电期间复位板载以太网 PHY、同时仍支持按钮复位[1]的方法。

    PORz 连接

    在 AM261-E1-EVM 上 SOM、修订版 A 从 E1 [2]中引入了以下与复位相关的更改:

    • IO 扩展器复位从 PORz 更改为 WARMRESETn
    • 在 AM261x 输入端的 PORz 网络中添加了一个 10k 下拉电阻器 (R318)

    PORz 信号本身由结合 1.25V 降压稳压器电源正常信号、PMIC NRST 信号和去抖按钮的 3 输入与门生成。 IO 扩展器是从 SOM 接收复位的下游器件 — 它不在 PORz 生成路径中[2]。

    OSPI 闪存复位(如果适用)

    对于 OSPI 闪存、TI 建议从与门生成闪存复位信号、并将 PORz/WARMRSTn 和 OSPI0_RESET_OUT0 作为输入。 这可确保闪存在下电上电和软件复位期间正确复位、并解决引导 ROM 未正确将 GPIO61 置为无效的已知勘误表[3]。

    建议的连接汇总:

    在一起
    复位源
    注释
    DP83869 PHY
    WARMRSTn
    通过上拉至 3.3V 直接连接
    IO 扩展器
    WARMRESETn
    更改了修订版 A 中的 PORz
    OSPI 闪存
    AND (PORz/WARMRSTn、OSPI0_RESET_OUT0)
    根据勘误表、为了避免引导故障、该字段是必需的

    如果您需要进一步了解特定设计的复位时序或时序要求、请告诉我。


    1. AM26x 硬件设计指南 — WARMRSTn
    2. AM261-EVM-EVM SOM 用户指南 — 修订版 A 更改
    3. AM261x 数据表 — OSPI 复位

    此致、

    Zackary Fleenor