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.

[参考译文] TMS320F28335:TMS320F28335看门狗计时器

Guru**** 2585275 points
Other Parts Discussed in Thread: TMS320F28335

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/652603/tms320f28335-tms320f28335-watchdog-timer

器件型号:TMS320F28335

我正在使用 TMS320F28335,并且我已经激活了它的看门狗计时器,

实际上、我编写了一个测试代码、用于监控器件复位行为、 我     通过特意激活一个标志来禁用看门狗定时器的清零、我通过 复位期间下拉的 GPIO X 来监视此情况、该 GPIO X 是在器件正常工作且其看门狗定时器循环复位时设置的、

我已经用一个振荡器测量了器件的恢复时间(我是指复位后的时间间隔、直到程序再次运行并设置 GPIO X)时间是10ms、我认为时间太长?

是否有人知道28335的恢复时间? 我需要减小此间隔、但我不知道如何操作?

请指导我

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

    测量时间看起来正确、无法进一步缩短。

    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另请注意、该值取决于您提供的输入时钟的频率。 什么是输入时钟频率?

    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    默认看门狗复位频率为 OSCCLK/(512 * 256),其中 OSCCLK 是器件的输入时钟(通过石英晶体或 XCLKIN 引脚的“CAN”振荡器输入)。 如果使用30MHz 时钟 I/p、则复位频率应约为4.3ms。 您应该能够在被擦除的器件上看到这个。 即、只需为闪存中没有代码的器件加电并检查–XRS 引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我的回答延迟了、

    我使用了频率为30MHz 的外部振荡器、并且我已经将看门狗时钟配置设置为等于(OSCCLK/512/1) OSCCLK 频率为150MHz、复位后我立即调用 InitSysCtrl()
    GPIO_CONFIG ()
    我已将看门狗时钟配置更改为(OSCCLK/512/256)、但时间间隔再次为10ms、没有任何更改!!
    在我的应用中、我需要通知、我的看门狗复位通过 CANBUS 以尽可能快的速度通过 CANBUS 发生到另一个器件、并且持续时间低于2ms、 因此、我决定启用看门狗中断并使用 CAN 总线将看门狗复位消息发送到其他器件、然后使用这两行立即复位:
    SysCtrlRegs.SCSR=0x000;
    SysCtrlRegs.WDCR=0x38
    在看门狗中断例程中、我可以不担心看门狗复位的时间间隔、我的判断是否正确? 或者您有更好的想法吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    WDCR 寄存器受 EALLOW 保护。 您是否验证了 EALLOW 是否处于活动状态并且您对 WDCR 的写入已完成?

     

    OSCCLK 频率固定在30MHz 并且不会改变、即使 SYSCLKOUT 不同也是如此。 请注意、在 WD 预分频器之后有一个8位计数器、因此会引入另一个/256。

     

    您是从 RAM 还是闪存运行代码? 我建议您刷写代码,在未连接 JTAG 的情况下运行代码,只需监视-XRS 引脚即可确定 WD 超时周期。 首先从已擦除的器件(即闪存中没有代码的器件)开始。 如果加电、您应该会看到 XRS 引脚每4.3ms 脉冲一次。 然后、您可以使用新的 WDCR:WDPS 值在闪存中对代码进行编程、并验证超时周期是否发生变化。

     

    您会说"...在我的应用中,我需要通知,我的看门狗复位通过 CANBUS 以最快速度通过 CANBUS 发生在另一个器件上,并且时间不到2ms。。。。。"。 我不理解这里的问题、因为您是在 WD 计数器溢出且2 ms 有足够的时间在 CAN 总线上执行此操作之后执行此操作的。 当然、这取决于 CAN 总线上发生的其他情况。