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.

[参考译文] TMS320F28388D:从应用程序跳转到引导加载程序时 ESC_HW_INIT_FAIL

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1632390/tms320f28388d-esc_hw_init_fail-when-jumping-from-app-to-bootloader

器件型号: TMS320F28388D

尊敬的专家:

我的客户在应用程序和引导加载程序中都使用 EtherCAT。

当它们单独调试应用程序和引导加载程序时、EtherCAT 功能正常工作。

但是、当它们从 APP 跳转到引导加载程序时、引导加载程序中的 EtherCAT 不起作用。 以下功能将一直被阻止直到超时。

8f914887c402cdbdfe43243adf12bcc8.png

由于应用和引导加载程序都会初始化 ESC、因此在从应用程序跳转到引导加载程序时、它们会第二次初始化 ESC。

如何确保 ESC 简化在引导加载程序中工作? 是否应通过某些方法重置 ESC?

此致、

挂起

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

    您好 Hang、

    很抱歉晚回复。 让我检查一下、然后返回给您。

    谢谢、

    IRA

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

    您好 Hang、

    是—必须重置 ESC。 作为引导加载程序初始化序列的一部分、必须通过系统控制寄存器显式复位 ESC。 跳过或错序此复位是导致 ESC 初始化失败的最常见原因。

    所需的复位序列

    根据哪个内核拥有 ESC、记录的初始化流程略有不同、但内核模式是一致的:

    对于 CPU1 自有的 ESC:

    步骤
    行动
    1.
    使用系统控制寄存器将 ESC 退出复位状态
    2.
    执行 EtherCAT 内存初始化
    3.
    等待内存初始化完成
    4.
    (推荐)验证 EEPROM 已成功加载
    对于 CPU2/CPU3 拥有的 ESC(CPU1 必须代表其执行此操作):
    步骤
    行动
    1.
    使用系统控制寄存器复位 ESC
    2.
    使 ESC 退出复位
    3.
    配置 EtherCAT EEPROM 大小
    4.
    再次重置 ESC
    5.
    将 ESC 分配给 CPU2/CPU3