本帖最后由 lengrudie 于 2024-10-10 18:25 编辑
复位系统: 一个芯片会有很多的复位源,直接上图,下面是一个APM芯片的复位系统,可以通过外部NRST进行复位,也可以通过程序设置系统复位:
最近在用极海G32A1445的芯片,用得比较顺手了,就用这个芯片测吧。 手册里各种复位源原理讲了很清楚,也有很多的复位源,大的方面,复位分为三类:系统复位、电源复位、调试复位。这里就说一下系统复位里的软复位(Software reset)。大家都用过软复位,比如在写Bootloader跳转时或者要对芯片重新初始化时,将SYSRESETREQ置 1 会产生软件复位请求。所有主要组件(除了调试模块)将在软件复位时强制进行系统复位。MCU在软件复位时将 RMU_RST** 寄存器 SWSET** 位置 1。
实操 复位核心代码:
通过上面的代码,控制内部MOS管或三极管导通,产生复位脉冲。 问题来了,代码只是控制寄存器产生复位信号,并没有控制复位时长,芯片里面会把复位引脚拉低多久呢? 很多芯片不一定会告诉我们这个时长是多少,貌似只有ST的某几款芯片有说,现在就看看极海这款是多长时间,找个示波器接上芯片的复位引脚,抓取软复位时的RST引脚波形,直接上图:
可以看到这个芯片的软复位会将RST引脚拉低41.6us,也就是说这个时间内外部复位电路是失效的。嗯,总算是了解了。 示波器都抓到波形了,那就再了解一下这个复位引脚下降的速度吧!直接出图:
嗯嗯,14ns就从5V下来了,这是外部没有加任何电容的情况,在实际项目使用中还是建议要加电容的。 至此测试结束,以前只知道软复位,从未用示波器看过,比较懒哈!作为电子爱好者,纯粹是心血来潮也就随便看看!
|