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.

[参考译文] MSPM0L1306-Q1:MSPM0L1306 μ Q1怎么打开看门狗WATCHDOG

Guru**** 2390735 points
Other Parts Discussed in Thread: MSPM0L1306, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1342293/mspm0l1306-q1-mspm0l1306-q1-watchdog

器件型号:MSPM0L1306-Q1
主题中讨论的其他器件: SysConfig

 1 μ A-Q1 (__LW_AT__VSSOP 28封装)做了一个板子,现在可以开机和运行LED闪烁程序 用MSPM0L1306。

关于看门狗,请问是这样一句函数调用就可以打开了吗?还需要其他的初始化或者使能吗?

DL_WWDT_RESTART (WWDT0);

我故意在板子初始化加了这句,然后故意在后面的程序循环中不再加 DL_WWDT_RESTART (WWDT0);这句,这样应该可以观察到板子被看门狗重启的现象,但是现在看不到板子重启的情况,似乎是看门狗没有使能,麻烦告诉一下看门狗如何初始化的代码,和平时喂狗的代码,谢谢。

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

    Shine、您好!

    1)。 我们的SDK中有Watchdog的示例程序,您可以直接参考示例代码:"wwdt_window_mode_periodic_reset"或者"wwdt_interval_timer_lfosc_standby"

    2).我发给您的两个文件是参考代码"wwdt_window_mode_periodic_reset" 在CCS上用Sysconig生成的配置文件,从里面您可以直接找到有关看门狗初始化的相关代码,你可以参考,看门狗的使能函数也能找到,是 DL_WWDT_enablePower (WWDT0_INST)。

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

    谢谢,已经可以打开看门狗了。但是又发现了一个问题,用   DL_WWDT_RESTART (WWDT0); 这句似乎喂狗不成功,请问喂狗是只要这句吗?谢谢。

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

    调试发现一旦用了  DL_WWDT_RESTART (WWDT0); 马上就死机,请问这个是什么原因?急,谢谢。

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

    Shine、您好!

    1)。 Watchdog需要定时喂狗,不然它会触发reset。Watchdog是有open window时间段的,你需要在这段时间内通过Timer 定时器的方式去restart Watchdag,也就是所谓的喂狗。关于Watchdog的open window以及相关的信息请查看我们的user 指南。

    2)。 喂狗是使用DL WWDT_RESTART ();语句;

    3).死机是怎么一个死机法,是无法连接SWD了,还是直接CCS卡死了还是出现了什么状况;μ A

    此致、

    K·扬茨

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

    找到问题了,是在CLOSE WINDOW喂狗的问题,但是我在看门狗初始化的函数把关闭 window设置为 dl_wwdt_winow_period_0、 结果MCU仍然运行不起来,所以现在的问题是,请问怎么才能把 关闭 window关掉?代码怎么写? 谢谢。

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

    非常谢谢你,那如果我想关掉close window呢?我试过设置 dl_wwdt_l initwatchdogmode里面设置close window为 dl_wwdt_winow_period_0、 结果MCU会不运行,请问如何关闭close 窗口?谢谢。

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

    关于close 窗口 和open window的问题,在user guide上都有相关详细描述,请参考user 指南。以及您无法下载sysconfig,但是我们有在线版本的sysconfig可以帮助您去查看外设的配置方法。用户 guide和sysconfig可以在我们的官网上找到

    MSPM0 L 系列32MHz 微控制器技术参考手册(修订版 C)(TI.com)

    TI 开发者专区

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

    谢谢你,我先看一下。

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

    你好,请看红线这一句,我就是仅仅把dl Ω_wwdt_l μ initwatchdogmode里面设置close window为 l_wwdt_winow_period_0、如下,结果MCU不运行,请问可能是有什么地方还要设置一下?谢谢。μ s

    DL_WWDT_initWatchdogMode (WWDT0_INST、DL_WWDT_CLOCK_Division_4、 DL_WWDT_TIMER_PERIOD_12_BITS、DL_WWDT_RUN_IN_SLEEP
    DL_WWDT_WINDOW_PERIOD_0、DL_WWDT_WINDOW_PERIOD_0);

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

    这句配置函数看上去是没有问题的,但是1 μ A)。 关于看门狗的整体初始化配置是否正确,需要检查,怎么检查怎么使用在线版Sysconfig查看配置的初始化代码,我在您另一篇关于ADC的初始化代码的贴子里回复了;2). 要注意下你是否在定时喂狗,就是是否在Window期间内进行了喂狗,虽然没有closed window了但是仍需要在active window区间内喂狗,不然MCU就会被reset;3). 具体功能和MCU运行不了是到底如何运行不了(一直被reset,程序卡死,或者... )、需要针对不同的症状再考虑解决办法。4)。 Watchdog的初始化函数我在这里给您贴一下 μ A、关于各种外设的初始化代码请使用Sysconifgs生成查看。μ A

    DL_WWDT_RESET (WWDT0_INST);
    DL_WWDT_enablePower (WWDT0_INST);
    SysConfig_weak  void SYSCFG_DL_WWDT0_init (void)
    {
        /*
         *   在 看门狗 模式下 使用 以下 设置初始化 WWDT0
         *   看门狗 源 时钟 = (LFCLK 频率) / (WWDT 时钟 分频器)
         *                         = 32768Hz/4   = 8.19kHz  
         *   看门狗 周期       = (WWDT 时钟 分频器) ∗ (WWDT 周期 计数) / 32768Hz
         *                         = 4 * 2^12 / 32768Hz = 500.00ms  
         *   Window0 关闭 周期 = (WWDT 周期) * (Window0 关闭 百分比)
         *                         = 500.00ms  * 0% = 0.00s  
         *   Window1 关闭 周期 = (WWDT 周期) * (Window1 关闭 百分比)
         *                         = 500.00ms  * 0% = 0.00s  
         */
        DL_WWDT_initWatchdogMode (WWDT0_INST、 DL_WWDT_CLOCK_Division_4、
            DL_WWDT_TIMER_PERIOD_12_BITS、 DL_WWDT_RUN_IN_SLEEP、
            DL_WWDT_WINDOW_PERIOD_0、DL_WWDT_WINDOW_PERIOD_0 );

        /* 将 Window0设置 为 活动 窗口 */
        DL_WWDT_setActiveWindow (WWDT0_INST、 DL_WWDT_WINDOW0);

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

    我的代码也是这样的,,有些奇怪了,我再看看是否有其他问题,谢谢你!

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

    欢迎您!