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.

[参考译文] TMS320F28377D:与 CPU2 相关的未知 XRS 复位 — 电源稳定,禁用 WDT、ICE 断开

Guru**** 2680595 points

Other Parts Discussed in Thread: TMS320F28377D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1595094/tms320f28377d-unknown-xrs-reset-related-to-cpu2-power-stable-wdt-disabled-ice-disconnects

器件型号: TMS320F28377D

TI 团队大家好:

我使用 TMS320F28377D、在 CPU1 和 CPU2 上运行应用程序代码。 我遇到了一个器件意外置位的关键问题 XRS 复位 一段时间后、我希望得到一些指导。

问题描述:
系统运行一段时间后、器件会触发全局变量 XRS 复位

我们已经验证了以下几点:

  1. 电源轨 (3.3V/1.2V) 稳定 、未观察到下降或噪音。

  2. CPU1 和 CPU2 看门狗计时器均完全禁用。

  3. IF I 完全擦除 CPU2 闪存 、重置 从不发生
    这强烈建议复位与 CPU2 上的内容相关。

进一步意见:

  • 即使我while(1) {}在 CPU2 的开头插入main()、也不执行任何操作、系统仍然会重置。

  • 当连接到 JTAG ICE (XDS200/XDS560) 时发生复位、即 ICE 会立即断开连接 、就像一个全芯片复位被置位一样。

当前情况:

  • 我没有有关什么内部事件导致 XRS 置为有效的线索。

  • 在复位发生之前、无法读取 RESC、NMIFLG 或其他标志。

  • 由于复位中断了 JTAG 连接、因此我无法在事件发生前立即检查寄存器。

我向 TI 提出的问题是:

在什么情况下、即使看门狗计时器被禁用并且电源稳定、F28377D 也可以将 XRS 置为有效?

是否有任何推荐的方法可以在 JTAG 断开连接之前捕获根本原因?

因为它的行为 CPU2 闪存擦除可消除复位 、您会建议采用什么调试方向?

如有任何指导或建议、将不胜感激。

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

    您好、

    是、请参阅技术参考手册中的第节。

    只要不对器件进行下电上电、就可以检查 RESC 和 NMI 影子标志、即使在 xrsn 之后也会保留这些值。

    谢谢

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

    Prarthan、

    感谢您的支持。

    意外复位后、我重新连接 JTAG 调试器 执行下电上电 、然后立即检查设备状态。 以下是观察结果。

    RESC 寄存器

    所有复位原因位保持 0:

    • POR = 0

    • XRSn = 0

    • WDRSn = 0

    • NMIWDRSn = 0

    CPU1 和 CPU2 TRSTn_PIN_STATUS 和 XRSn PIN_STATUS 均读为 1。

    这表明在此事件期间未捕获 TRM 中记录的任何复位源。


    2. NMI 寄存器

    CPU1 和 CPU2  NMIFLG NMISHDFLG 为 0、表示未发生或在复位之前锁存 NMI 相关事件。


    3. XRSn 引脚测量

    我使用示波器测量了 A 约为 42µs 的负脉冲 进行复位时的 XRSn 引脚上。

    没有外部电路将 XRSn 拉至低电平、因此该脉冲看起来源自器件内部。

    根据这些观察结果、内部复位机制似乎与 RESC 或 NMI 标志报告的任何复位源都不匹配。
    如果在这些情况下有任何其他内部条件或机制可能导致 XRSn 置为有效、我们将非常感激您提供的任何见解或诊断建议。

    此致、



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

    这些是器件端唯一的 XRSn 源

    如果未配置 NMI ISR、则可以设置 ISR 并清除 NMIFLG 并添加无限循环、以查看是否遇到 NMI、它应该能够在那里停止。

    谢谢

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

    你好

    根据建议、我明确添加了 CPU1 和 CPU2 以下配置以启用和注册 NMI 和非法操作陷阱:

    SysCtl_enableNMIGlobalInterrupt();
    Interrupt_register(INT_NMI, &NMI_ISR);
    Interrupt_enable(INT_NMI);
    Interrupt_register(INT_ILLEGAL, &ILLEGAL_ISR);
    Interrupt_enable(INT_ILLEGAL);
    
    interrupt void NMI_ISR(void)
    {
        asm(" ESTOP0");
        for(;;);
    }
    
    interrupt void ILLEGAL_ISR(void)
    {
        asm(" ESTOP0");
        for(;;);
    }

    为了验证 NMI 矢量、我还ForceNMIFlags 在运行时期间手动触发了各种 NMI 标志、并确认系统已成功进入NMI_ISR陷阱并按预期停止。

    但是、在实际的意外复位情况下、我仍会在 XRSn 引脚上观察到一个~Ω 42 μs 负脉冲。 此脉冲的发生方式与之前相同、并且系统不会在 NMI 或非法 ISR 中停止。 这表明原因可能不是软件级非法操作或 NMI 导致的。

    我可以问:

    • 器件在内部 XRSn 置为有效会显示~Ω 42 μs 低电平脉冲是否正常?

    • 这种持续时间是否可以表示任何特定的硬件内部复位条件?

    • 鉴于此、您是否建议我们开始检查潜在的硬件相关原因(例如 BOR,电源轨干扰,信号完整性)?

    希望就需要进一步验证的硬件方面提出任何建议。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在实际的意外复位情况下、我仍然观察到 XRSn 引脚上有一个~μ s 42 μs 负脉冲。 此脉冲的发生方式与之前相同、并且系统不会在 NMI 或非法 ISR 中停止。 这表明原因可能不是软件级非法操作或 NMI 造成的。

    感谢您的确认。

    看门狗复位仍然可能是一个尚未消除的问题、您能否确认看门狗已被禁用且处于中断触发模式而不处于复位触发模式?

    ]您建议我们开始检查潜在的硬件相关原因(例如 BOR,电源轨干扰,信号完整性)吗?

    是的、我们还应该研究电压 Vdd 和 Vddio 是 BOR 的原因。 电源轨上是否有电压监控器可用于消除这种根本原因?

    谢谢。

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

    你好 Prarthan、

    我们执行了额外的示波器测量、并观察到 1.2V VDD 内核电源上有明显的纹波。
    在屏幕截图中:

    • 黄色= VDD (1.2V)

    • 蓝色= XRSn

    一旦 CPU 开始执行代码、VDD 电源轨就会显示纹波、某些时候、它确实超出了数据表工作范围 (1.14V ~ 1.26V)。
    此时将出现此行为 都可以设置引脚 2 (即 CPU1 是否执行)Device_bootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);

    改善并稳定 VDD 纹波后、不再发生意外的 XRS 复位。

    但是、我们仍然无法解释以下现象:

    尽管每当器件运行时都会出现 VDD 纹波、 仅当 CPU2 闪存包含有效的应用程序代码且 CPU2 已启动时、才会发生意外的 XRS 复位
    如果 CPU2 闪存被擦除、则不会发生复位。

    您是否有关于为什么器件仅在 VDD 纹波条件下将 XRS 置为有效的见解 当 CPU2 处于运行状态时 、但当只有 CPU1 在运行时不会?

    此致、

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

    我认为不一定与包含应用程序的 CPU2 闪存相关联。

    当 CPU2 执行代码时、需要从 Vdd 内核电压轨获取更多功率、如果电源无法满足消耗的电流要求、则电压会进一步下降、导致复位。 如果稳定电源不会导致 XRSn、则表示 Vdd 纹波会导致复位。

    谢谢

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

    你好 Prarthan Bhatt 

    感谢您的澄清。
    感谢您在整个调试过程中提供的支持。
    我将关闭此主题。

    此致、