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.

[参考译文] TMS320F28375D:看门狗复位 CPU1和 CPU2?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1317612/tms320f28375d-watchdog-reset-cpu1-and-cpu2

器件型号:TMS320F28375D

您好、专家!

我要求在这里为我的客户提供帮助。 客户想要使用 CPU1.WDRS 和 CPU2.WDRS 来复位 CPU1和 CPU2。

我们测试了以下代码、与 TRM 手册下表中描述的代码有些偏差。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define WD_PRESCALER_1 0
#define WATCHDOG_PRESCALER WD_PRESCALER_1
#define WatchDog_enable(WD_PRESCALER) \
EALLOW; \
WdRegs.WDKEY.bit.WDKEY = 0x0055; \
WdRegs.WDKEY.bit.WDKEY = 0x00AA; \
WdRegs.WDCR.all = WD_CHECK|WD_PRESCALER; \
EDIS;
#define WatchDog_restart() \
EALLOW; \
WdRegs.WDKEY.bit.WDKEY = 0x0055; \
WdRegs.WDKEY.bit.WDKEY = 0x00AA; \
EDIS;
#define WATCHDOG_RESTART()
WatchDog_restart()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

测试结果:

CPU1 WD RESET   ->  CPU1 + CPU2均 复位

CPU2 WD RESET   ->  CPU1 + CPU2均 复位

但从下表可以看出、CPU1.WDRS 可以复位 CPU1和 CPU2、但 CPU2.WDRS 只能复位 CPU1。

您能帮助了解上述问题吗? 为什么 CPU2.WDRS 可以 同时复位 CPU1和 CPU2?  谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="493195" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1317612/tms320f28375d-watchdog-reset-cpu1-and-cpu2通过下表,CPU1.WDRS 可以重置 CPU1和 CPU2,但 CPU2.WDRS 只能重置 CPU1。

    在上一行中、我想您想说"CPU2.WDRS 只能重置 CPU 2 "、不是 CPU1。 无论如何、您的理解是正确的、CPU2.WDRS 不应复位 CPU1。

    您提供的代码片段不会重置 WD;它只会将 WD 计数器重置为零。

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

    您好、Hareesh。

    好的。  但 客户测试发现 CPU2的看门狗可以复位 CPU1。 我们不确定设置问题在哪里、或者 TRM 说明中是否有错误? 谢谢。

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

    如前所述、您提供的代码片段不会重置 WD;它只会将 WD 计数器重置为零。 来自 TRM:

    每个 CPU 都有一个看门狗计时器、可以选择触发持续512个 INTOSC1周期的复位。  CPU1的看门狗复位(CPU1.WDRS)会产生 XRS。 CPU2看门狗复位(CPU2.WDRS)会生成 CPU2.SYSRS 并在 CPU1上触发 NMI。

    因此、CPU2.WDRS 只在 CPU1上置位 NMI。  

    请让客户编写一个简单的测试案例:在 CPU1上禁用 WD。 在 CPU2上启用 WD 并使其超限。 监测器-XRS 引脚。 请发送测试用例以及示波器捕获。 请在未 连接调试器的情况下执行此操作。  

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

    您好、Hareesh。

    明白了。 我现在要求客户执行此步骤。 稍后会更新。

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

    针对绍兴发布以下内容、因为螺纹已锁定

    请帮助您查看下面创建的 e2e 线程问题。 最近、客户测试了在 CPU1上禁用 WD 后的波形。 在 CPU2上启用 WD 并使其超限。 监测器-XRS 引脚。 但我们发现 XRSn 都有

     

    1. CPU1看门狗禁用;CPU2看门狗启用 ,然后在10s 后进入 while (1)无限循环。 (蓝色为 XRSn 引脚)

    XRS 引脚将每4个周期拉低、 10.0277s 大约(周期性拉低)、低电平持续约70us。

     

     

    1. CPU2看门狗禁用;CPU1看门狗启用 ,然后在10s 后进入 while (1)无限循环。

    XRS 引脚将每4个周期拉低、 10.0288s 大约70us、低电平的持续时间大约为70us。

     

    因此、我们怀疑在不同条件下为什么会出现相同的结果? BTW、CPU2.WDRS 不会将低电平信号输出到 XRSn 引脚。 您能帮助了解这种情况吗? 或指导我们为什么 CPU2看门狗行为与 TRM 描述不一致? 谢谢。

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

    绍兴市

      每10秒生效的复位不能来自看门狗。 如果 OSCCLK = 10MHz、则 WD 超时频率约为13.1ms。 请让客户检查 RESC 寄存器。