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.

[参考译文] TMS570LC4357:在 WarmReset 后无法清除 nERROR 引脚

Guru**** 2468610 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/672498/tms570lc4357-unable-to-clear-nerror-pin-after-warmreset

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

讨论 WarmReset 后、重新打开无法清除 nERROR 引脚

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

    我们需要在回答这些问题之前进行更多测试。 谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Franck:

    如果您碰巧遇到 nERROR、并且在清除 nERROR 之前您会收到一个复位、则在复位之后、您不能使用0x5来清除 nERROR。 内部状态机可以识别刚刚发生错误事件的事实。 在一个错误事件后写入0x5将复位 nERROR 引脚。

    如果发生系统复位、ESM 状态机也会复位。 它失去了刚才发生错误事件的事实。 因此、如果您现在尝试通过写入0x5来重置 nERROR 引脚、它将不起作用。 清除 nERROR 引脚的唯一方法是通过上电复位或通过将0xA 写入 ESMEKR 寄存器、后跟任何非0xA 值来复位 nERROR 引脚、从而将 nERROR 引脚置于诊断模式。

    该复位会导致一些内部 ESM 粘滞位被清除。 发生这种情况时、在复位前无法识别 nERROR 事件。 然后、您将使用0xA 清除 nERROR、而不是0x5。

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

    您好 QJ、

    感谢您的回答。

    您在回答中提到了两种复位类型、一种是 ESM 状态机不会丢失的"复位"、另一种是"系统复位"、 这会导致观察到的行为和诊断 模式权变措施以清除 nERROR 引脚。

    据我所知 ,重置的类型为:

    • nPORRST 或 VMON 上电复位
    • nRST 上的系统复位
    • SYSECR 更新时软件系统复位
    • 监控或自动测试序列/制裁后的其他内部复位

    我现在清楚地知道:

    • nPORRST  => ESM 已完全重置、nERROR 自动重置为非活动状态
    • nRST => ESM 被复位、nERROR 不会自动清除、ESM 状态丢失、这意味着在 nERROR 复位前一个诊断模式强制

    您能否澄清其余错误来源的行为:

    • 软件系统复位(SYSECR)
    • 内部复位(OSCRST、WDRST、DBGRST、ICSRST...)

    您是否打算改进 TRM 或提出有关此主题的勘误表、以便最终用户可以跟踪 TI 官方文档来实施此诊断模式强制 解决方法?

     是否有计划在 HALCoGen 生成的代码中考虑此行为?

    感谢您的支持、

    此致、

     

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

    除调试复位外的所有复位将复位 ESM 模块。

    感谢您的良好建议、我将检查我们是否可以在 TRM 中添加注释。 由于这不是清除 nERROR 引脚的常规过程、因此我们不想更改 HALCoGen。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    我不确定是否理解您关于不更正 HALCoGen 的答案。

    TRM 中描述的“常规”过程在发生与电源复位不同的复位源时无效,那么下面的过程 esmInit()中的常规 HALCoGen 提取在所有情况下都不起作用:

      /**-重置错误引脚*/
       if (esmREG->EPSR == 0U)
       {
           esmREG->EKR = 0x00000005U;
       }
       其他
       {
           esmREG->EKR = 0x000000000000U;
       }

    您能告诉我清除 nERROR 引脚的常规步骤是什么 ?

    谢谢、

    弗朗克。

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

    ESM 首先捕获错误并等待用户在有限时间结束后清除标志。 该标志在您复位之前被清除。 这就是我所说的"常规程序"。

    启动时、如果检测到任何错误标志、则错误可能发生在复位之前或复位之后。 此外,复位源(SESR)在 esmInit()之前被清除。

    无论如何、我将向 SW 开发团队提交报告。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    感谢您澄清"常规程序"的含义。

     我在分析中考虑的 ESM 条件不能保证软件仍然正常运行、并且需要对 nERROR 信号进行外部监控以采取适当的制裁、例如 TMS 系统复位/电源复位。 在这种情况下 、无法信任应用程序来清除 nERROR。

    无论如何、您都向我提供了我所需的所有信息、因此最好至少提交一张 TT、以更新 TRM。

    此致、

    弗朗克。