0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32中复位电路如何设计

科技绿洲 来源:电子硬件应用技术 作者:电子硬件应用技术 2023-06-22 09:06 次阅读

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复位电路设计

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

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

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

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

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

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

4. 软件复位(SW复位)

5. 低功耗管理复位

系统复位能够复位除时钟控制寄存器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语言)、系统复位(汇编):

voidNVIC_CoreReset(void);//内核复位(C语言)

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

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

C语言版函数源码:

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

C语言版函数源码:

6,结语

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


责任编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5056

    文章

    18950

    浏览量

    301479
  • STM32
    +关注

    关注

    2264

    文章

    10852

    浏览量

    354099
  • 复位电路
    +关注

    关注

    13

    文章

    320

    浏览量

    44496
收藏 人收藏

    评论

    相关推荐

    stm32复位电路电阻和电容怎么搭配

    搭配STM32复位电路的电阻和电容需要考虑多个因素,包括复位脉冲的宽度、电源稳定时间、电源噪声抑制等。在本文中,我将详细介绍如何搭配电阻和电容来设计
    的头像 发表于 12-07 16:24 2841次阅读

    如何设计在stm32复位电路

    说到复位,我们都不会陌生,系统基本都有一个复位按键。复位的种类有很多:上电复位、掉电复位复位
    的头像 发表于 08-10 11:33 2.7w次阅读
    如何设计在<b class='flag-5'>stm32</b><b class='flag-5'>中</b>的<b class='flag-5'>复位</b><b class='flag-5'>电路</b>?

    stm32复位电路工作原理

    stm32复位电路工作原理 相信大家对复位电路已经很熟悉了,复位
    的头像 发表于 08-07 11:59 3.8w次阅读

    stm32复位方式分类

    stm32复位方式分类按照复位区域的范围分类,大概可以分为系统复位,电源复位,备份域复位,内核
    发表于 12-07 19:36 12次下载
    <b class='flag-5'>stm32</b><b class='flag-5'>复位</b>方式分类

    stm32复位电路问题

    引脚内部是有上拉电阻的。只有在认为上拉电流不足情况下才有必要外接上拉电阻。因此,rst电路仅保留一个104电容是可行的。我设计的电路删掉10k上拉电阻后,芯片也可以正常启动、烧写、复位
    发表于 12-24 19:24 11次下载
    <b class='flag-5'>stm32</b>的<b class='flag-5'>复位</b><b class='flag-5'>电路</b>问题

    STM32复位电路

    **STM32复位电路**
    发表于 12-24 19:28 24次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>复位</b><b class='flag-5'>电路</b>

    STM32复位源判断

    在项目中有时候会遇到单片机莫名奇妙复位的情况,为了判断是那种原因引起复位,就需要对单片机的复位源进行判断。现用STM32F103C8T6单片机进行测试。先看看单片机
    发表于 01-17 12:29 12次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>复位</b>源判断

    STM32复位来源、以及系统和内核复位区别

    每一块STM32都有这么一个RCC复位和时钟控制模块。STM32复位为三类:系统复位、电源
    发表于 02-10 10:30 6次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>复位</b>来源、以及系统和内核<b class='flag-5'>复位</b>区别

    浅析stm32复位电路方法

    说到复位,我们都不会陌生,系统基本都有一个复位按键。复位的种类有很多:上电复位、掉电复位复位
    发表于 02-11 15:10 45次下载
    浅析<b class='flag-5'>stm32</b><b class='flag-5'>复位</b><b class='flag-5'>电路</b>方法

    stm32复位电路设计

    stm32复位电路设计
    发表于 06-26 09:26 8次下载

    stm32复位 内核复位和系统复位

    内核复位:它会使STM32内核(Cortex-M)进行复位,而不会影响其外设,如GPIO、TIM、USART、SPI等这些寄存器的复位
    的头像 发表于 08-01 17:21 4543次阅读

    stm32手动复位按键出的电容有什么作用?

    stm32手动复位按键出的电容有什么作用? 外部复位电路是嵌入式系统的一项核心功能。这种电路
    的头像 发表于 09-14 14:22 3709次阅读

    RC复位电路R如何影响芯片复位

    RC复位电路R如何影响芯片复位? RC复位电路是常见的一种
    的头像 发表于 10-25 11:07 1163次阅读

    stm32复位电容容值

    STM32是意法半导体(STMicroelectronics)推出的一系列32位微控制器,具有低功耗、高性能和丰富的外设功能。在STM32微控制器复位电容是
    的头像 发表于 01-05 17:39 1598次阅读

    STM32复位电路复位芯片和阻容复位电路区别

    系统复位电路是保证系统正常工作的重要部分。当系统出现异常或需要重新启动时,复位电路能够迅速将系统恢复到初始状态。
    的头像 发表于 08-06 10:26 856次阅读