之前做项目,发现芯片软件复位不成功,同一个架构下的CPU,其它项目上的复位程序能成功,且调试程序时也不能复位成功(成功的表现是,寄存器值能恢复成默认值)
后来发现是复位电路由问题,芯片内部复位电路如图,软件复位时需要时下面的MOS管导通,使NRST引脚电压变低。
外接的电路是复位芯片(看门狗)直接连接NRST引脚,NRST电压相当于是两个MOS管分压得到的,此时,软件复位了,软件停止喂外部看门狗,所以看门狗会复位输出,相当于是两个导通的MOS管,使NRST引脚的电压拉低,复位不成功。
解决办法,在NRST引脚上串联一个电阻即可。