stm32的时钟和复位电路 小哥带你了解STM32复位电路设计

stm32复位电路设计

1,描述

说到复位,我们都不会生疏,系统根本都有一个复位按键。复位的品种有很多:上电复位、掉电复位、复位引脚复位、看门狗复位、软件复位等。本文探讨的就是在stm32中复位电路怎么样设计。

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像绿色字体加我也能领取哦,记得口令小哥///

2,STM32介绍

STM32系列基于专为要求高性能、低老本、低功耗的嵌入式应用专门设计的ARM Cortex?-M0, M0 , M3, M4和M7内核在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32根本型系列、增强型系列、USB根本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频次。内存包含64KB到256KB闪存和 20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,联合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。

3,stm32复位电路设计

复位电路的作用是为了系统恢复到初始状态的,单片机的复位方式也是存在好几种的:上电复位,系统复位,备份区域复位

上电复位:其产生的条件是,当系统上电、掉电,以及系统从待机模式返回时,发生电源复位。电源复位能够复位除了备份区域寄存器之外的所有寄存器的状态。

系统复位:以下任一事件发生时,均能产生一个系统复位:

一. NRST引脚上的低电平(外部复位)

二. 窗口看门狗计数终止(WWDG复位)

三. 独立看门狗计数终止(IWDG复位)

四. 软件复位(SW复位)

五. 低功耗管理复位

系统复位能够复位除时钟控制寄存器CRS中的复位标志和备份区域中的寄存器之外的所有寄存器。

备份区域复位:对于备份区域的复位,一种是在软件复位的时候设定备份区域控制寄存器中的对应位产生的;另一种是当电源和电池都掉电又重新上电时产生的。

平常我们常用的复位方式有两种,一种是NRST引脚的低电平复位,通过按键复位电路给这个引脚一个低电平,让系统完成复位,另一种大家都知道,那就是上电复位了,有时候是复位电路莫名失效了,有时是刚启动的时候,虽然用的没有按键复位电路多,不过也算是很常用的一种复位方式了。按键复位电路直接给图了,网上的讲解可能把这电路图都讲烂了,我就不费口舌了。

电容充电时长计算:T = 1.1RC = 1.1 * 10000 * 0.0000001 = 0.0011s = 1.1ms

4,内核复位与系统复位的区别

本文说的内核是指处理器内核,也就是MPU(Microprocessor Unit)。假如STM32F103,其内核就是Cortex-M3内核。而这里的系统就是包括内核和外设,也就是MCU,对于STM32F103来说,就是Cortex-M3内核 各种外设接口。

1,内核复位:只复位Cortex-M3处理器,而不复位外设如GPIO、TIM、USART、SPI等的寄存器。

2,系统复位:即复位Cortex-M3处理器,又复位外设寄存器。

因此,我们常说的复位一般指的是系统复位。

5,内核复位与系统复位的函数源代码

本文以Cortex-M3(STM32F103)为例来说明,其他芯片类似。编写了4个复位函数,内核复位(C语言)、内核复位(汇编)和系统复位(C语言)、系统复位(汇编):

stm32的时钟和复位电路 小哥带你了解STM32复位电路设计(1)

在ST官方库中的core_cm三.h文件中已经提供了NVIC_SystemReset的C语言源代码。Cortex-M3允许由软件触发复位序列,用于特殊的调试或维护。在Cortex-M3中,有两种方法能够达到自我复位。

第一种方法:置位 NVIC 中应用程序中断与复位控制寄存器(AIRCR)的 VECTRESET 位(位偏移:0)。这种复位的作用范围笼罩了整个Cortex-M3处理器,除了调试逻辑之外的所有角落,但是它不会影响到Cortex-M3处理器外部的任何电路,所以STM32上的各片上外设和其它电路都不受影响。

stm32的时钟和复位电路 小哥带你了解STM32复位电路设计(2)

第二种方法:置位 NVIC 中应用程序中断与复位控制寄存器(AIRCR)的 SYSRESETREQ位(位偏移:2)。系统复位是置位同一个寄存器中的 SYSRESETREQ 位。这种复位则会波及整个芯片上的电路:它会使Cortex-M3处理器把送往系统复位发生器的请求线置为有效。但是系统复位发生器不是Cortex-M3的一局部,而是由芯片厂商达到,因此不同的芯片对此复位的响应也不同。因此,读者须要仔细参阅芯片规格书,明白当发生片内复位时,各外设和功能模块都会回到什么样的初始状态,或者有哪些功能模块不受影响(假如,STM32系列的芯片有后备存储区,该区就被特殊对待)。大部分情况下,复位发生器在响应 SYSRESETREQ 时,它也会同时把Cortex-M3处理器的系统复位信号(SYSRESETn)置为有效。通常,SYSRESETREQ不应复位调试逻辑。这里有一个要注意的问题:从SYSRESETREQ被置为有效到复位发生器执行复位命令,往往会有一个延时。在此延时期间,处理器依然能够响应中断请求。但我们的本意往往是要让此次执行到此为止,不要再做任何其它事情了。所以,最好在发出复位请求前,先把FAULTMASK置位。

stm32的时钟和复位电路 小哥带你了解STM32复位电路设计(3)

6,结语

某些系统允许复位,但对外设又有特殊要求:某一个IO状态不能由于复位而变更,某一个定时器计数器不能变更等。例子:A系统通过一个IO控制B系统的电源,而这个IO置高时才开启B系统的电源。正常工作过程中,B系统独有收到A系统关机命令任务才会进行关机(也就是说不能掉电关机),而A系统在工作过程中有复位的需求。这个时候假如运用常规的复位方式,就会复位IO,不合乎要求。假如有一种方式只复位内核而不复位外设就好了。关于stm32复位电路有关介绍就到这了,希望通过本文能让你对stm32复位电路有更深的认识,如有不足之处还望海涵。

想要学习单片机的朋友 ,做毕业设计的同学,关注我们,口令小哥,与导师一起学习成长,共同进步,还有更多资料领取。

stm32的时钟和复位电路 小哥带你了解STM32复位电路设计(4)

说了这么多,大家记得留意下方评论第一条(或者私信我)有干货~

-END-

*本文系网络转载,版权归原作者所有,如有侵权请联系删除

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页