跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. YTM32B1MC03H0MLH ,看门狗,WDG,怎么设置时间都无效

YTM32B1MC03H0MLH ,看门狗,WDG,怎么设置时间都无效

已定时 已固定 已锁定 已移动 已解决 YTM32B1M系列
25 帖子 5 发布者 14.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • jankyJ 离线
    jankyJ 离线
    janky
    写于 最后由 编辑
    #1

    974b6d8d-5207-45bc-9256-51ebfed9b509-image.png eb207e55-4785-4119-943d-12b2c296841f-image.png 448ccdd6-2f4c-4b8f-94bd-f0b9eb8cb578-image.png

    LPO是32K,16分频, 8000超时,应该是4秒, 无论我怎么改这个超时都是无效的。请问是为什么呢?

    [09:48:58.026]收←◆Setup WDG and wait for WDG timeout!
    Stop feed and wait for WDG reset.

    [09:48:58.495]收←◆System reset by WDG reset!

    1 条回复 最后回复
    0
    • yt0069Y 离线
      yt0069Y 离线
      yt0069 YunTu
      写于 最后由 编辑
      #23

      当选择lpo作为wdg时钟源时请注意lpo时钟的精度范围

      img_v3_02nk_a78a0dc5-8197-469b-8873-4fbdb5497c0g.jpg

      1 条回复 最后回复
      0
      • fzh0907F 离线
        fzh0907F 离线
        fzh0907
        写于 最后由 编辑
        #2

        看起来是没什么问题,你的程序对WDG模块使能了么?

        jankyJ 1 条回复 最后回复
        0
        • jankyJ 离线
          jankyJ 离线
          janky
          在 回复了 fzh0907 最后由 编辑
          #3

          fzh0907 使能了的,因为我是用demo改的。

          int main(void)
          {
          /* USER CODE BEGIN 1 /
          /
          USER CODE END 1 /
          Board_Init();
          /
          USER CODE BEGIN 2 /
          /
          Check whether the reset is caused by WDG. /
          if (RCU->RSSR & RCU_RSSR_WDG_MASK)
          {
          PRINTF("System reset by WDG reset!\n");
          /
          Clear all reset flags. /
          RCU->RSSR = RCU->RSSR;
          }
          else
          {
          PRINTF("Setup WDG and wait for WDG timeout!\n");
          INT_SYS_InstallHandler(lpTMR0_IRQn, LPTMR0_TriggerIRQHandler, NULL);
          /
          Enable lptmr interrupt. /
          INT_SYS_EnableIRQ(lpTMR0_IRQn);
          /
          Init wdg module. */
          WDG_DRV_Init(0, &wdg_config0);

              /* Start lptmr timer. */
              lpTMR_DRV_StartCounter(0);
              while (lptmr_isr_cnt < 3)
              {
              }
              /* Close lptmr timer. */
              lpTMR_DRV_StopCounter(0);
              PRINTF("Stop feed and wait for WDG reset.\n");
          }
          /* USER CODE END 2 */
          
          /* Infinite loop */
          /* USER CODE BEGIN WHILE */
          while (1)
          {
              /* USER CODE END WHILE */
              /* USER CODE BEGIN 3 */
          }
          /* USER CODE END 3 */
          

          }

          static void Board_Init(void)
          {
          CLOCK_SYS_Init(g_clockManConfigsArr,CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr,CLOCK_MANAGER_CALLBACK_CNT);
          CLOCK_SYS_UpdateConfiguration(CLOCK_MANAGER_ACTIVE_INDEX,CLOCK_MANAGER_POLICY_AGREEMENT);
          PINS_DRV_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);
          UTILITY_PRINT_Init();
          lpTMR_DRV_Init(0,&LPTMR_Config,false);
          }

          1 条回复 最后回复
          0
          • DigaD 离线
            DigaD 离线
            Diga
            写于 最后由 编辑
            #4

            你选的 WDG 的计数时钟是不分配的 LPO,还是32kHz
            第一张图配置的是 IPC clock,即模块的功能时钟

            image.png

            jankyJ 1 条回复 最后回复
            0
            • jankyJ 离线
              jankyJ 离线
              janky
              在 回复了 Diga 最后由 janky 编辑
              #5

              Diga 在 YTM32B1MC03H0MLH ,看门狗,WDG,怎么设置时间都无效 中说:

              不分配的 LPO,还是32kHz

              我没看明白,我第一张图就是选LPO,分频16啊,818cef49-5f4f-4c4c-a082-d509e78b9ca7-image.png

              1 条回复 最后回复
              0
              • DigaD 离线
                DigaD 离线
                Diga
                写于 最后由 编辑
                #6

                模块的功能时钟是图里这个,就是2k,但计数时钟是第二张图里配置的32k。
                两个时钟是分开的
                要是想要两个时钟 sync 一下,就把第二帐图里配置成 IPC 的

                jankyJ 2 条回复 最后回复
                0
                • jankyJ 离线
                  jankyJ 离线
                  janky
                  在 回复了 Diga 最后由 编辑
                  #7

                  @Say 不是啊, 我两个都是配LPO啊

                  DigaD 1 条回复 最后回复
                  0
                  • jankyJ 离线
                    jankyJ 离线
                    janky
                    在 回复了 Diga 最后由 编辑
                    #8

                    Diga 6d4fe9a8-8873-4bc4-bf70-10786544ee01-image.png

                    ae591b21-df21-4187-8419-64de20521776-image.png

                    找到原因,但是不知道怎么修复, 看门狗寄存器base->TOVR的值, 并不是我要设置的值。

                    1 条回复 最后回复
                    0
                    • DigaD 离线
                      DigaD 离线
                      Diga
                      在 回复了 janky 最后由 编辑
                      #9

                      janky 时钟配置界面那边配置的是 LPO,分频16,也就是 2k
                      模块配置界面那边配置的是 LPO,分频是1,也就是32k,模块配置界面都没有分频系数配置,你怎么分频

                      jankyJ 1 条回复 最后回复
                      0
                      • jankyJ 离线
                        jankyJ 离线
                        janky
                        在 回复了 Diga 最后由 编辑
                        #10

                        Diga 意思是我在时钟配置界面配置的分配, 对看门狗是不起作用的吗? 看门狗仍然是32K?

                        1 条回复 最后回复
                        0
                        • DigaD 离线
                          DigaD 离线
                          Diga
                          写于 最后由 编辑
                          #11

                          WDG 这个模块,你在时钟界面配置的时钟只是供 WDG 正常工作,例如寄存器读写之类的。WDG 的计数时钟是内部配置的,不能分频,但可以选择与时钟界面配置的时钟一致,可以参考我第一个回复

                          jankyJ 1 条回复 最后回复
                          0
                          • jankyJ 离线
                            jankyJ 离线
                            janky
                            在 回复了 Diga 最后由 编辑
                            #12

                            Diga

                            就以不能分频来说, 那就是32K, 那为什么 .timeoutValue=(32*1000)*5, 不是5秒复位呢? 而且无论我怎么改,复位时间都是不变的。,

                            428a0e6e-617e-4de4-8de4-6e40ca4ee62c-image.png

                            int main(void)
                            {
                            /* USER CODE BEGIN 1 /
                            /
                            USER CODE END 1 /
                            Board_Init();
                            /
                            USER CODE BEGIN 2 */

                                PRINTF("Setup WDG and wait for WDG timeout!\n");
                               
                                /* Init wdg module. */
                                WDG_DRV_Init(0, &wdg_config0);
                            
                            
                            /* USER CODE END 2 */
                            
                            /* Infinite loop */
                            /* USER CODE BEGIN WHILE */
                            while (1)
                            {
                                /* USER CODE END WHILE */
                                /* USER CODE BEGIN 3 */
                            }
                            /* USER CODE END 3 */
                            

                            }

                            static void Board_Init(void)
                            {
                            CLOCK_SYS_Init(g_clockManConfigsArr,CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr,CLOCK_MANAGER_CALLBACK_CNT);
                            CLOCK_SYS_UpdateConfiguration(CLOCK_MANAGER_ACTIVE_INDEX,CLOCK_MANAGER_POLICY_AGREEMENT);
                            PINS_DRV_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);
                            UTILITY_PRINT_Init();
                            lpTMR_DRV_Init(0,&LPTMR_Config,false);
                            }

                            zyqZ 1 条回复 最后回复
                            0
                            • zyqZ 离线
                              zyqZ 离线
                              zyq YunTu
                              在 回复了 janky 最后由 编辑
                              #13

                              janky 需要注意一下MC0 WDG计数器是16 bit的

                              jankyJ 2 条回复 最后回复
                              0
                              • jankyJ 离线
                                jankyJ 离线
                                janky
                                在 回复了 zyq 最后由 编辑
                                #14

                                zyq f804c536-332f-4abb-9d63-6c341cfee130-image.png
                                57d09148-093b-408a-99e7-a7fda823b177-image.png
                                不是32bit吗? 寄存器结构体就是用32. 数据手册没有描述,

                                zyqZ 1 条回复 最后回复
                                0
                                • jankyJ 离线
                                  jankyJ 离线
                                  janky
                                  在 回复了 zyq 最后由 编辑
                                  #15

                                  zyq 如果是16bit, 又不能分频,32K, 最多只能2秒多一点点。 这样要频繁唤醒喂狗啊。我已经选了最慢的时钟了。

                                  1 条回复 最后回复
                                  0
                                  • zyqZ 离线
                                    zyqZ 离线
                                    zyq YunTu
                                    在 回复了 janky 最后由 编辑
                                    #16

                                    janky

                                    1. 手册里有的
                                      93eb8ba5-5dfe-45a5-9cf4-db5a57358a03-image.png

                                    6153e368-a7ba-4e4d-b17b-fc53efe87bfb-image.png

                                    1. 可以分频,按照前面同事的回复配置即可,WDG模块中选择IPC时钟,Clock Configuration里面分频
                                      4e5e295a-fe72-41ab-987a-5ed31c5e40be-image.png
                                    jankyJ 2 条回复 最后回复
                                    0
                                    • jankyJ 离线
                                      jankyJ 离线
                                      janky
                                      在 回复了 zyq 最后由 编辑
                                      #17

                                      zyq

                                      a733ed29-af1a-4ab9-86f2-bcd23cffd6d7-image.png

                                      感谢你的指出, ,看门狗选WDG_LPO_CLOCK, 配置时间生效了,但最长只能2秒多。

                                      那我这样设置,看门狗频率会是多少呢? 我猜是2K, 但是并不对,我设置 .timeoutValue= (2*1000)*2, 很久都没复位。

                                      1 条回复 最后回复
                                      0
                                      • jankyJ 离线
                                        jankyJ 离线
                                        janky
                                        在 回复了 zyq 最后由 编辑
                                        #18

                                        zyq 另外, 我下载的 数据手册,YTM32B1MC0x_DS_v1.2.pdf 只到第7章,我看你的截图都到31章节了。 麻烦上传一份数据手册。谢谢

                                        1 条回复 最后回复
                                        0
                                        • zyqZ 离线
                                          zyqZ 离线
                                          zyq YunTu
                                          写于 最后由 编辑
                                          #19

                                          是2K,是不是你配置了中断,第一次超时后进中断了,第二次才复位。
                                          我那个到31章节的是Reference Manual手册,可以在YCT里下载。

                                          jankyJ 2 条回复 最后回复
                                          0
                                          • jankyJ 离线
                                            jankyJ 离线
                                            janky
                                            在 回复了 zyq 最后由 编辑
                                            #20

                                            zyq 1e771246-42e3-44fe-9451-64720b52cf25-image.png

                                            并没有配置中断。

                                            1 条回复 最后回复
                                            0

                                          • 云途开发生态介绍

                                            快速上手云途开发生态

                                          • 云途论坛规则/Yuntu Forum Rules

                                            发帖前请查看

                                          • YT CONFIG TOOL调查问卷

                                            帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                                          • can
                                            25
                                            demo
                                            22
                                            lin stack
                                            13
                                            uds
                                            13
                                            md14
                                            6
                                            yt-link
                                            6
                                            fbl
                                            5
                                            adc模块
                                            4
                                            Online Users
                                            • 登录

                                            • 登录或注册以进行搜索。
                                            • 第一个帖子
                                              最后一个帖子
                                            0
                                            • 版块
                                            • 最新
                                            • 标签
                                            • 热门