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.

[参考译文] 编译器/TMS320F2.8075万:重置器件时出现问题

Guru**** 2564565 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/638919/compiler-tms320f28075-trouble-resetting-device

部件号:TMS320F2.8075万
主题中讨论的其他部件:C2000WARE

工具/软件:TI C/C++编译器

我以前使用过此代码,也在其他使用相同处理器的项目中使用过,在这些项目中,它会按预期重置处理器:

//强制重置:
EALLOW;
WdRegs.wdccr.all = 0x78; //设置 wdck !=1,0,1.
EDIS;

但由于某种原因,在我的当前应用程序中,它只是跳过而不会重置。  是否有其它原因可能导致处理器忽略此问题。

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

    如果禁用了WD模块,则会发生这种情况。 您是否可以在写POST之前检查是否启用了看门狗? 你需要在WDCR寄存器的0中有WDDIS位,方法是将0xA8写入它(我想是)。 我今天下午早些时候用F2.8379万S进行了这项跑步,看起来效果很好。

    此致,

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

    看门狗设置为打开。  它被设置为0x2F。  

    但似乎行不通。  通过在启用看门狗后设置while循环进行测试,看门狗似乎从未跳闸。   

    它确实适用于在完全相同的平台上运行的其他版本的代码。  只是没有设置此代码。   

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

    我看不出目前的情况。 您是否介意尝试C2000Ware设备支持部分中的看门狗示例并修改该示例以尝试重现该问题? 我在F2.8379万D上做了这件事,但我不能让它表现出不正确的行为。 如果C2000Ware位于默认位置,F2.8075万监视器示例将位于:
    C:\ti\c2000Ware_1_00_02_00\device_support\f2807x\examples\CPU1 \watchdog2807 \watchdog

    您需要将其设置为执行重置而不是中断,然后在写入故意无效的数据之前启用模块:

    // WdRegs.SCSR.ALL = C28x_BIT1;
    WdRegs.SCSR.ALL = 0;
    WdRegs.wdccr.all = 0x2F;

    ...

    WdRegs.wdccr.all = 0x78;

    如果您发现无法重置的情况,我可以进一步了解。 如果未能做到这一点,您是否愿意将代码的相关部分粘贴到现有项目中?

    此致,

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Richard
    很抱歉回复太晚,我被拉至另一个项目。

    这是因为看门狗被一个本应关闭的功能禁用了。

    必须启用看门狗,其余的功能才能正常工作。 这在数据表中不清楚,但它现在可以工作。

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

    Kyle,

    不用客气。  很高兴您找到了原因,感谢您让我们知道。

    此致,

    Richard