单片机电路中常用复位电路
电路一点通 2025-03-13

我们在很多的单片机电路中都会看到复位电路,如下所示:

以上是我们的STM32103C8T6最小系统板中的复位电路,以上为例,来研究下复位电路:

A.首先我们先看左边的复位电路:

把芯片的RESET复位信号通过一个按键和一个电容并联到地,上方接一个10k电阻到电源。

1.何为复位?

单片机复位电路的作用是:使单片机的状态处于初始化状态,让单片机的程序从头开始执行,

运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。目的是让单片机能够稳定、正确的从头开始执行程序。

单片机有两种复位方式:一是高电平复位,二是低电平复位

四种常用的复位电路如下:

第一种:上电复位电路:

我们以高电平为例,这个电路是利用电容的充电来实现复位的,当电源接通的瞬间,

单片机复位端的电位与VCC相同,随着充电电流的减少,复位端的电位逐渐下降。直至电容充满电,复位端的电压变为低电平。

电路中R和C的值可以根据下面的式子计算,其中T是复位时间。

T=(1/9)R1C1

另一个反之。。。。。

计算公式:T=9*RC

第二种:按键复位电路:

我们一般通过数据手册可以查看芯片的高低电平复位;

第三种:加了二极管的按键复位电路:

第二个的的按键复位电路如果当电源因某种干扰瞬间断电时,由于C不能迅速将电荷放掉,待电源恢复时,单片机不能上电自动复位,导致程序运行失控。电源瞬间断电干扰会导致程序停止正常运行,形成程序“乱飞”或进入“死循环”。

如果有了这个二极管就可以快速将电容上的电压释放,保证复位信号正确无误。也能快速为下次复位做好准备。

  • 有个问题来了,二极管正向导向电源,这个电如何放掉?
  • 因为VCC断电后,电容两端的电压不能突变,对于高电平复位电路,上端变为0,那么下端会产生一个负电源电压,

    此时对于地来讲,地成为了高处,负电压成为低处,电压会通过地与二极管,电阻与reset负电压形成回路放掉。

    而对于低电平复位电路,RRESET此处的高电压通过二极管与电阻与地形成回路放掉电压。

    网络上对于复位有个很搞笑的段子如下:

    只要电源接通,那么这个电容就会“逐渐充满电”,这个过程必须要有,正是这个过程保证了CPU正确地“RESET”。

    当电容充满电之后我们把电源开关断开了,这个电容中的电“何去何从”呢?

    VCC和GND之间接了N多的器件,所有的器件都对它说:“把你那点电给我吧,我还能坚持一下。”

    电容说:“给你们没问题,可是我他娘脑袋上有个电阻挡我的财路,你们先别急,我慢慢把电放给你们。”

    当电容刚刚要把电通过那个上拉电阻放出来,电源开关突然又接通了。

    CPU开始冲电容吼:“孙子!你Y的那个充电过程怎么没啦?我还要复位呢!”

    电容不干了:“废话,我上次充的电还没放呢这他妈电源又通啦!”

    CPU急了:“那我怎么办?我得复位啊!”电容眼珠一翻:“管你Y怎么办,死去吧你!”

    第四种:用复位芯片复位电路:

    对于一些非常复杂的电路,为了让芯片正确复位,必须用一些复位芯片,能够保证其精确的复位。

    B.我们在来看下右边的电路:

    对于这个电路,我们首先要了解单片机的状态,如下:

    BOOT1接了一个下拉电阻,因此为低电平,为0,那么会产生第一种和第二种情况,

    当K2按下,BOOT0为高电平,1,从系统存贮器启动

    当不按下时,为0,从主闪存存贮器启动。

    那么这三种方式又是什么呢?

    1、主闪存存储器
    是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,

    就是下载到这个里面,重启后也直接从这启动程序。

    2、系统存储器
    从系统存储器启动,这种模式启动的程序功能是由厂家设置的。

    一般来说,这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,

    STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,

    这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,

    因为在厂家提供的BootLoader中,提供了串口下载程序的固件,

    可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:

    Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
    Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中
    Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动。

    3、内置SRAM
    内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。

    假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,

    可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,再将程序下载到Flash中。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 硬件
  • 原理图
  • 信号完整性
  • EMI
  • 磁珠的原理和选用

    5小时前
  • 一个复杂的电气控制原理图要怎么才能变成我们需要的接线图呢?

    一个复杂的电气控制原理图要怎么才能变成我们需要的接线图呢?想解答这个问题,先要搞清楚的是两种图文之间转换的步骤

    03-06
  • 双向恒流源电路分析及仿真

    很多场合需要双向的恒流源,例如TEC半导体制冷器,或者一些电刺激之类的场合,那么本期分析的电路就是一个双向的恒流源电路,本期的电路摘取自德州仪器技术文档ZHCA062。电路图如下:

    03-05
  • 如何看电路图是否短路

    现在生活中人们都离不开电力, 随着装修的要求越来越高,大家都知道水电属于隐蔽工程,如果没有安装好,后期在使用时会带来很大的麻烦。给大家介绍一下如何看电路图是否短路。 如何看电路图是否短路 1、根据欧姆定...

    02-28
  • 电子琴设计:指尖奏响的电子乐章

    1. (1. 由4X4组成16个按钮矩阵,设计成16个音。 (2. 可随意弹奏想要表达的音乐。 2. 电路原理图   图4.22.1 3. 系统板硬件连线 (1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上...

    02-27
  • 00-59 秒计时器(软件延时版):精准计时的软件魔法

    1. 如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。 2. 电路原理图   图4.11.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/A...

    02-27
  • 一键多功能按键识别技术:一键开启多元功能世界

    1.如图4.9.1所示,开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再...

    02-27
  • 按键识别新方法之一:解锁按键操作的秘密

    1. I/O并行口直接驱动LED显示,每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。 2. 电路原理图   图4.8.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P3.7/RD...

    02-27
  • I/O 并行口直接驱动 LED 显示设计:高效数据可视化的核心技术

    1. 如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。 2. 电路原理图   图4.7.1 3. 系统板上硬件连线 把“单...

    02-27
  • 报警产生器设计:安全守护的警报先锋

    1. 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2. 电路原理图  ...

    02-27
  • 创意闪烁灯设计:点亮科技之光

    1. 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2. 电路原理图   图4.1.1 3. 系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极...

    02-27
下载排行榜
更多
评测报告
更多
广告