一起 STM32F0 IWDG 无效的问题

有朋友要求帮忙解决一起 STM32F0 IWDG 无效的问题。

当然先从软件下手,看配置是否正确吧。
首先,MX_IWDG_Init 这是 STM32CubeMX 自动生成的,应该不会有错吧?

然后,在 main 里面也调用了这个初始化,那问题在哪里呢?

baidu 了半天也没有找到有用的解决方案,只有来复习一下 IWDG 相关知识(此处省略一千字…),直接上关键点吧,这是 STM32F0 IWDG 的框图,注意到最后的输出 IWDG reset,这个输出到哪里去了呢?

(此处再省略一千字…)最后到了 RCC,关键点是最终产生的复位信号(System reset)是和外部的复位信号(External reset)物理上连接在一起的。

接下来上示波器,从外部复位管脚看看 IWDG 到底有没有产生复位信号。如图,确实有低脉冲产生,但是发现问题没?最低电平是2.2V,这个似乎不能算低电平,那复位需要多少电压呢?

再来看看 spec,3.3V 供电下,大概就是 1.06V。2.2V 显然远远大于 1.06V 了,问题找到了,那这是怎么产生的呢?

这个看来要从硬件下手查了。果然,先上原理图,看下外部复位电路,注意到对地电容 C1 是 10uF,这个显然是比较大了,放电会比较慢,可能导致复位电压拉不低,换个小的试试看?

换上一个 0.1uF 的,呵呵,最低电平到了 62.7mV,再看板子上的运行效果,问题解决!

最后,再看看官方推荐的复位电路,其实电容就是 0.1uF 的☺


Add Your Comment

* Indicates Required Field

Your email address will not be published.

*