复位电路

01、简介

在单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序跑飞而陷入死循环,程序的正常运行被打断,从而导致由单片机控制的系统无法继续工作,整个系统陷入停滞状态,发生不可预料的后果。这时候就需要使用专用的复位芯片来达到更可靠的复位。现在讲的“复位”,其作用就是通过相关电路产生“复位信号”, 让单片机能在上电后或者运行中恢复到默认的起始状态。

中微爱芯推出电压监控型以及看门狗型的复位电路,拥有齐全的复位电压点,可满足客户在不同条件下的使用需求,为整个系统的正常工作保驾护航。

以下将分别介绍两种类型的复位电路。

02、电压监控型复位电路

电压监控器是监控系统内一个或多个电源轨的器件。电压监控器可以检测欠压事件(电压低于某个阈值)或过压事件(电压超过某个阈值)。根据器件状态的不同,当受监控的电压轨电压低于或高于预设的阈值电压时,电压监控器会将信号置为使能、禁用或复位其他器件。部分电压监控器可以同时监控欠压和过压情况,称为窗口检测器。电压监控器旨在确保系统正常上电,防止处理器发生欠压,同时实时监控系统,避免因电压轨超出规范而产生性能问题或系统故障。其工作原理如下所示:

1.png

带有电压监控器功能的复位 IC,能够保证复位的释放发生在电源供应正常之后,从而确保可靠复位。同时,若电源出现过压或跌落故障,芯片还能及时保护处理器,并在电源恢复后执行可靠复位重启。

为了适应不同的应用,复位 IC 通常还支持可选的高电平有效或低电平有效,推挽或开漏输出。推挽和开漏指的是输出驱动的类型,推挽输出在输出端使用两个晶体管。当顶部晶体管导通时,输出设置为高电平;底部晶体管导通时,输出设置为低电平。开漏输出仅使用一个晶体管,通过其将输出设置为低电平,同时另外使用一个上拉电阻代替顶部晶体管设置高电平输出。下图展示了开漏和推挽两种输出类型:

2.png

推挽式输出的优点是速度快并且功耗低。然而,开漏输出可以将多个监控器件的输出连接在一起,形成或/与逻辑输出配置,方便多电源轨的监控控制。

以我司AiP810这款高电平复位电路专用芯片为例,搭建如图1所示电路,上电后测量“Reset”电气网络可以得到如图2所示波形:

3.png

图1

4.png

图2

以下是我司复位类IC选型表:

5.png

复位电压选型表:

6.png

03、看门狗型复位电路

出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。

看门狗电路一般有软件看门狗和硬件看门狗两种。软件看门狗不需外接硬件电路,但系统需要出让一个定时器资源,这在许多系统中很难办到,而且若系统软件运行不正常,可能导致看门狗系统也瘫痪。因此硬件看门狗是真正意义上的“程序运行监视器”。

硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在看门狗定时器定时时间到之前对其进行复位。如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。

 以下为我司看门狗型复位电路选型:

7.png

复位电压选型表:

8.png

04、高精度复位电路

中微爱芯推出高精度复位电路,此系列复位电路可在全温范围内复位电压保持在2%的精度,更适用于可靠性要求较高的方案。

以下为我司高精度复位电路选型:

9.png

复位电压选型表:

10.png

来源:无锡中微爱芯电子有限公司

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 65

相关阅读:

RA2快速设计指南 [1] 电源与仿真器支持

RA2快速设计指南 [2] MCU工作模式和选项设置存储器

RA2快速设计指南 [3] 时钟电路

6. 复位要求和复位电路

Arm® Cortex®-M23产品共有12或13种类型的复位。

表11. Arm® Cortex®-M23 MCU复位

1.jpg

注:RA2E1及RA2E2产品不支持。

6.1 引脚复位

当RES#引脚被拉低时,所有处理都将中止,MCU进入复位状态。要在运行中复位MCU,应在指定的复位脉冲宽度内将RES#保持为低电平。有关时序要求的更详细信息,请参见《硬件手册》中“电气特性”一章的“复位时序”部分。另请参见本系列文章的第2节“仿真器支持”,了解与调试支持相关的复位电路的详细信息。

无需在RES#线路上使用外部电容,因为POR电路在内部将其保持为低电平以实现良好的复位,并且需要最小的复位脉冲来启动此过程。

6.2 上电复位

有两种情况会产生上电复位(POR):

1. 如果RES#引脚在接通电源后处于高电平状态。

2. 如果RES#引脚在VCC低于VPOR时处于高电平状态。

在VCC超过上电复位电压(VPOR)并经过上电复位时间(tPOR)之后,芯片将从上电复位状态释放。上电复位时间是允许外部电源和MCU达到稳定状态的时间。有关电压大小和时序的详细信息,请参见《硬件手册》中“电气特性”一章的“POR和LVD特性”部分。

由于POR电路依赖于RES#与VCC同时为高电平,因此请勿在复位引脚上放置电容。这将减慢RES#相对于VCC的上升时间,从而妨碍POR电路正确识别上电条件。

当电源(VCC)降至不超过VPOR时,如果RES#引脚为高电平,则会产生上电复位。在VCC上升到VPOR以上并且经过tPOR之后,芯片将从上电状态释放。

上电复位后,RSTSR0中的PORF位置1。引脚复位后,PORF清零。

6.3 独立看门狗定时器复位

这是由独立看门狗定时器(IWDT)产生的内部复位。

当IWDT下溢时,可以选择产生独立看门狗定时器复位(可以改为产生NMI),并且RSTSR1中的IWDTRF位置1。短暂延迟后,将取消IWDT复位。详情请参照《硬件手册》。

6.4 看门狗定时器复位

这是看门狗定时器(WDT)产生的内部复位。

当WDT下溢时,可以选择产生看门狗定时器复位(可以改为产生NMI),并且RSTSR1中的WDTRF位置1。短暂延迟后,将取消WDT复位。详情请参照《硬件手册》。

6.5 电压监视复位

RA2系列包括允许MCU在欠压期间防止不安全操作的电路。板上比较器根据三个参考电压Vdet0、Vdet1和Vdet2检查电源电压。当电源下降到每个参考电压以下时,会产生中断或复位。检测电压Vdet0、Vdet1和Vdet2均可从3个不同大小的值中选择。

当Vcc随后上升到超过Vdet0、Vdet1或Vdet2时,经过稳定时间后,电压监视复位释放将继续。

上电复位后,将禁用低电压检测。可以通过使用选项功能寄存器OFS1来使能电压监视。有关更多详细信息,请参见《硬件手册》中的“低电压检测(LVD)”一章。

LVD复位后,RSTSR0中的LVDnRF(n = 0、1、2)位置1。

6.6 软件复位

这是通过SYSRESETREQ位写入Arm内核的AIRCR寄存器产生的内部复位。当SYSRESETREQ位设为1时,产生软件复位,再经过内部复位时间(tRESW2)后,将取消内部复位,CPU进行复位异常处理。详情请参照MCU硬件手册。

有关SYSRESETREQ位的详细信息,请参照Arm® Cortex®-M23的技术手册。

6.7 其他复位

MCU内的大多数外设功能都可以在特定的故障条件下产生复位。无需硬件配置即可使能这些复位。有关将为每个外设功能产生复位的条件的详细信息,请参见《硬件手册》中的相关章节。

6.8 冷/热启动的确定

借助RA2 MCU,用户可以确定发生复位过程的原因。RSTSR2中的CWSF标志指示是上电复位导致了复位过程(冷启动),还是操作期间输入的复位信号导致了复位过程(热启动)。

发生上电复位时,该标志置0。否则,该标志不会置0。通过软件向该标志写入1时会将其置1。即使在写入0时也不会将其置0。

6.9 确定复位源

借助RA2 MCU,用户可以确定复位信号产生源。读取RSTSR0和RSTSR1,以确定哪个复位是复位源。有关流程图,请参见《硬件手册》中的“复位产生源的确定”部分。

以下代码示例展示了如何使用Renesas FSP中基于CMSIS的寄存器结构确定复位是由软件复位、深度软件待机还是上电复位导致的。

2.jpg

来源:瑞萨MCU小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 26

什么是复位电路?

复位电路在单片机小系统中很常见,今天我们就探讨下单片机阻容复位电路的构成、特点和改进方法,本文内容选自龙顺宇老师的新书 《深入浅出STC8增强型51单片机进阶攻略》 。

如果朋友们学习过《数字电子技术》这门课程的相关内容就肯定知道触发器和时序逻辑电路章节中必学的 初态 和 次态 问题,简单来说就是需要明确电路之前的状态才能推导出后面的状态,由此可见,在数字电路(特别是时序电路)中一个已知的初始状态有多么重要。

我们学习的单片机其实就是个数字/模拟的混合系统,很多片内资源和相关寄存器都需要一个默认的起始状态。

我们现在讲的“复位”,其作用就是通过相关电路产生“复位信号”让单片机能在上电后或者运行中恢复到默认的起始状态。

“复位”动作之后单片机会产生一系列的重置操作,例如I/O口默认的模式和状态、相关寄存器的默认取值、所有标志位的状态重置、通信/定时相关的数据内容设定等等。

由此可见, 复位的意义就是让单片机相关单元进行初始重置且程序从内存起始地址重新执行 。

要让单片机正确复位就需要在RST引脚(等同于RESET引脚)上产生符合复位要求的有效信号,有的单片机需要高电平复位信号,有的则需要低电平复位信号。

我们以经典51单片机高电平复位为例,单片机正常运行时RST引脚应保持低电平,当需要复位时应拉高RST引脚的电平,并维持“系统时钟源、内部电路单元稳定周期+2个机器周期”的时间长度( 为保证有效复位,复位信号应持续20至200ms为宜 )。

我们知道,在12T型单片机中,1个机器周期等于12个时钟周期,时钟周期其实就是振荡周期,比如晶振频率是12M,振荡周期就是1/12000000秒,由此可见,在设计具体复位电路时需要考虑单片机工作时钟频率后再去匹配复位电路的相关参数。

在早期的51单片机产品中,复位信号一般是由外部复位电路产生,所以很多经典的单片机原理类书籍将复位电路称作最小系统的必要组成,随着单片机技术的不断发展,很多单片机不再单独拿出一个RST引脚仅做复位之用,而是在晶圆设计时集成了 片内上电复位POR(Power On Reset)电路 ,很多单片机就都具备片上POR电路,POR电路在芯片上电后会产生一个内部复位脉冲并使器件保持静态,直至电源电压达到稳定阈值后再释放复位信号。

这样一来,用户就可以省略外部复位电路将RST引脚闲置或者当做普通I/O使用。

如果读者朋友们实际应用的单片机不具备片上POR电路也没事,我们可以搭建符合复位要求的外置电路产生复位信号。

一般来说,单片机复位电路主要有四种类型:微分型复位电路 、 积分型复位电路 、 比较器型复位电路 和 看门狗型复位电路 。接下来小宇老师就拿出相对简单的微分和积分型电路进行讲解,让读者朋友们能有一个直观的感受。

常见的阻容式微分复位电路如图1(a)所示,电路中的“Reset”电气网络连接至单片机“RST”引脚。该电路上电后的波形如图(b),其波形在上电后先是高电平,经过100ms后跌落到了1V以下最终保持低电平状态,我们常将其称为“高电平”复位电路。

“图1
(a)

“图1
(b)

图1 微分型高电平复位电路原理图

分析微分复位电路,该电路的组成十分简单,其核心实现仅有1个电阻和1个电容组成,外加的S1按键主要实现手动复位功能,当S1按下时“Reset”电气网络被强制拉高实现复位。

在设计该电路时一定要先根据单片机工作的时钟频率去考虑阻容的取值,若系统选用12MHz石英晶振,则1个机器周期就是1us,复位信号的脉冲宽度最小也要2us以上,但是真正设计时最好不要贴近理论值去构造电路,复位信号脉冲宽度最好是20至200ms为宜。当晶振频率大于或等于12MHz时,常见取值C1为10uF,R1为10k。

当系统上电时C1相当于通路,“Reset”电气网络上电瞬间为高电平,随着R1不断泄放C1的电荷,“Reset”电气网络的电压逐渐降低,最终降到低电平区间。在放电的过程中“Reset”电气网络的高电平持续了100ms左右才跌落到1V以下,这远大于2个机器周期的复位时间要求,即复位有效。

若将图2中的电阻R1和电容C1互换位置就可以变成阻容式积分复位电路,电路原理图如图2(a)所示。该电路上电后的波形如图(b)所示,其波形在上电后先是低电平,然后经过50ms左右就超过了1.6V并继续上升,最终保持在高电平电压区间,我们常将该电路称为“低电平”复位电路。

当系统上电时C1相当于通路,故而“Reset”电气网络上电瞬间为低电平,随着电源通过R1不断的向C1充电,“Reset”电气网络的电位逐渐抬升并最终保持高电平。外加的S1按键主要实现手动复位功能,当S1按下时“Reset”电气网络被强制拉低实现复位。

“图2
(a)

“图2
(b)

图1 微分型高电平复位电路原理图

阻容式复位电路非常简单,成本也很低,但是可靠性如何呢?可能有的读者朋友会说:市面上的开发板都用这个电路,我在实验室也用这个电路,从来没遇到过问题,而且这种经典电路每本书都这么讲的,你敢说不可靠?

小宇老师得站出来说:这电路确实简单,但可靠性确实不高。首先来说,阻容器件本身存在器件误差,误差会直接导致RC时间常数和充放电时间的差异,批量制造时难以保证产品的一致性。其次,阻容器件存在老化现象和温漂问题,在长期使用或者严苛温度环境中容易造成较大误差导致失效。

最后,简单的阻容复位电路会有电容的迟滞充放电问题,导致复位信号可能不满足复位电平阈值要求,且面对来自电源的波动或者快速开关机情况会出现无法复位的问题。

朋友们可能会说,器件参数误差、老化和温漂在一般产品中都可以接受,一致性问题也没有那么高要求,本着“能用就行”的原则,这个电路也凑合用吧!也不是不行,但是可以稍微改进下,且看小宇老师做个实验。

以图1(a)所示的阻容式微分复位电路为例,若将电源周期性通断,其复位波形就不再完美了,实际波形如图3(a)所示,复位波形由于电容的缓慢放电原因出现了下降迟缓且无法到达低电平阈值的问题(也就是复位电压“下不去”的情况),这种复位信号就不能保证单片机系统的有效复位,若工业控制有关的板卡遇到电源波动出现无法复位的情况,无疑是危险的。

若将微分复位电路按图3(b)改进,在电阻R1的两端并联个D1,再次将电源周期性通断,复位波形就会变成如图3(c)所示的波形。从波形上看,电路改造后复位波形得到了明显的改善,图中波形下降迅速且可以下降到低电平阈值以下,不会出现频繁上电时复位电压“下不去”的情况。

“图3
(a)

“图3
(b)

“图3
(c)

图3 微分型高电平不可靠复位及优化实验

这个“不起眼”的D1为电容C1在掉电情况下提供了一条迅速泄放电荷的通道,这样一来就可以保证在电源频繁波动或者周期性上电情况下的正常复位。有的朋友可能要说了,这个复位波形看起来还是很“怪异”啊!虽说是高电平复位波形,但是看起来和“毛刺”一样,就不能通过什么电路把复位信号搞成类似于高低电平的波形样式吗?

当然也是可以的,我们再把电路优化一次。添加三极管和二极管进去,最终搭建出一种阈值电压比较型高电平复位电路如图4(a)所示。电路的目的就是构造一个“复位阈值电压比较器”,电路中的稳压二极管D1(实际选用3.3V稳压管)和开关二极管D2(实际选用1N4148,导通压降为0.6V左右)决定了复位信号的电平阈值,大致就是3.3V+0.6V=3.9V左右(朋友们也可以更替D1的稳压参数构成更多复位阈值)。

电路中的三极管Q1及外围电路构成了一个简单的比较器电路,当电源波动的时候也可以有效的根据阈值比较完成复位动作。R2的大小可以改变输出信号的驱动能力,R1和C2一起决定了复位延时的长度,C1是为了抑制和旁路电源中的高频噪声。该电路上电后的复位波形如图4(b)所示,这样的波形总算是“漂亮”了。

“图4
(a)

“图4
(a)

图4 一种阈值电压比较型高电平复位电路原理图

虽说图4(b)所示波形的高电平末端有个向上的小“凸起”,但这并不影响复位信号的有效性,因为复位电压只要在1.6V以上就满足高电平复位系列单片机的复位要求了,如果有朋友和小宇老师一样是个“强迫症”,那您也可以微调R1和C2的取值去优化波形。

基于图4(a)所示的高电平复位电路,我们也可以稍加变形做成如图5(a)所示的“低电平复位电路”,该电路适用于低电平复位的单片机。该电路上电后的复位波形如图5(b)所示,该波形相当于图4(b)的取反波形。

“图5
(a)

“图5
(a)

图5 一种阈值电压比较型低电平复位电路原理图

由此可见,小电路也有很多讲究。此处的改进只是抛砖引玉,朋友们别被“抛出去的砖”砸晕了,复位电路还存在很多改进电路和一些实际问题,希望读者朋友们可以自行延展,单片机复位端口处还可并联0.01至0.1uF的瓷片电容,以抑制电源高频噪声干扰或配置施密特触发器电路,进一步的提高单片机对串入噪声的抑制。

可能有的朋友还是不满意这种RC充放电电路产生的复位波形,能不能有什么电路或者器件使用简单又能产生类似方波一样的复位波形呢?答案是肯定的,想要高可靠复位单元可以选择专用的复位监控芯片。如飞利浦半导体、美信半导体公司均有此类产品,这些芯片的体积小、功耗低、门槛电压可选。

集成度的提高使抗干扰能力和温度适应性都得到了大幅提高,可以保证系统在不同的异常条件下进行可靠的复位。其原理其实是通过确定的电压阈值启动复位操作,同时排除瞬间干扰的影响,又有防止单片机在电源启动和关闭期间的误操作效果,以保证程序的正常执行。

我们以美信公司生产的MAX810这款高电平复位电路专用芯片为例,搭建如图6(a)所示电路,上电后测量“Reset”电气网络可以得到如图6(b)所示波形,这个波形就堪称“完美”了。

“图6
(a)

“图6
(a)

图6 专用复位芯片MAX810电路及复位波形

常见的低电平复位电路有MAX705、MAX706、MAX809、MAX811等器件。高电平复位电路有MAX810、MAX812等器件。而MAX707、MAX708、MAX813L等器件同时有高、低电平复位输出信号和看门狗输出,在实际产品中经常会看到它们,需要注意的是,不同芯片的复位脉冲时间不一样,但是一般都可以达到100至200ms左右,完全满足常见处理器对复位时间的需求,有的芯片还支持复位阈值设定、备份电池切换、看门狗定时器、门限值检测器、复位脉冲极性选择等更为高级的功能,此处就留给读者朋友们自行去研究了。

来源:嵌入式大杂烩
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 1047

复位电路

复位电路由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.

典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。

一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍. 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)

常见的复位电路

80C51单片机复位电路

单片机的复位有上电复位和按钮手动复位两种。如图2(a)所示为上电复位电路,图(b)所示为上电按键复位电路。


上电复位是利用电容充电来实现的,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。图2(a)中的R是施密特触发器输入端的一个10KΩ下拉电阻,时间常数为10×10-6×10×103=100ms。只要VCC的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。上电复位所需的最短时间是振荡周期建立时间加上2个机器周期时间,在这个时间内RST的电平应维持高于施密特触发器的下阈值。

上电按键复位2(b)所示。当按下复位按键时,RST端产生高电平,使单片机复位。复位后,其片内各寄存器状态见表,片内RAM内容不变。

c51单片机复位电路


如S22复位键按下时:RST经1k电阻接VCC,获得10k电阻上所分得电压,形成高电平,进入“复位状态”

当S22复位键断开时:RST经10k电阻接地,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。

单片机上电复位电路

AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1µF。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。

为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。

在图2的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。


积分型上电复位:

常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。

图3中:C:=1uF,Rl=lk,R2=10k


积分型上电复位电路图

专用芯片复位电路

上电复位电路 在控制系统中的作用是启动单片机开始工作。但在电源上电以及在正常工作时电压异常或干扰时,电源会有一些不稳定的因素,为单片机工作的稳定性可能带来严重的影响。因此,在电源上电时延时输出给芯片输出一复位信号。上复位电路另一个作用是,监视正常工作时电源电压。若电源有异常则会进行强制复位。复位输出脚输出低电平需要持续三个(12/fc s)或者更多的指令周期,复位程序开始初始化芯片内部的初始状态。等待接受输入信号(若如遥控器的信号等)。


高低电平复位电路


51单片机要求的是:高电平复位。上图是51单片机的复位电路。在上电的瞬间,电容器充电,充电电流在电阻上形成的电压为高电平(可按照欧姆定律来分析);几个毫秒之后,电容器充满,电流为0,电阻上的电压也就为低电平了,这时,51单片机将进入正常工作状态。图1是用来产生低电平复位信号的。

单片机复位电路的原理

复位电路的目的就是在上电的瞬间提供一个与正常工作状态下相反的电平。一般利用电容电压不能突变的原理,将电容与电阻串联,上电时刻,电容没有充电,两端电压为零,此时,提供复位脉冲,电源不断的给电容充电,直至电容两端电压为电源电压,电路进入正常工作状态。

关于单片机复位电路,以前做的一点小笔记和文摘,在这里做一个综述,一方面,由于我自己做的面包板上的复位电路按键无效,于是又回过头来重新整理了一下,供自己复习,另一方面大家一起交流学习。在我看来,读书,重在交流,不管你学什么,交流,可以让你深刻的理解你所思考的问题,可以深化你的记忆,更会让你识得人生的朋友。

最近在学ARM,ARM处理器的复位电路比单片机的复位电路有讲究,比起单片机可靠性要求更高了。先让我自己来回忆一下单片机复位电路吧。

先说原理。上电复位POR(Pmver On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。为什么在每次单片机接通电源时,都需要加入一定的延迟时间呢?分析如下。

上电复位时序

在单片机及其应用电路每次上电的过程中,由于电源同路中通常存在一些容量大小不等的滤波电容,使得单片机芯片在其电源引脚VCC和VSS之间所感受到的电源电压值VDD,是从低到高逐渐上升的。该过程所持续的时间一般为1~100ms。上电延时的定义是电源电压从lO%VDD上升到90%VDD所需的时间。在单片机电压源电压上升到适合内部振荡电路运行的范围并且稳定下来之后,时钟振荡器开始了启动过程(具体包括偏置、起振、锁定和稳定几个过程)。该过程所持续的时间一般为1~50 ms。

起振延时的定义是时钟振荡器输出信号的高电平达到10%VDD所需的时间。例如,对于常见的单片机型号AT和AT89S,厂家给出的这个值为0.7VDD~VDD+0.5V。从理论上讲,单片机每次上电复位所需的最短延时应该不小于treset。从实际上讲,延迟一个treset往往还不够,不能够保障单片机有一个良好的工作开端。

在单片机每次初始加电的时候,首先投入工作的部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时,以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予始终振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个及其周期的延时。

结语

单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。

来源:畅学单片机

围观 251

复位电路

复位电路由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位

.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍. 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)

常见的复位电路

80C51单片机复位电路

单片机的复位有上电复位和按钮手动复位两种。如图2(a)所示为上电复位电路,图(b)所示为上电按键复位电路。

上电复位是利用电容充电来实现的,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。图2(a)中的R是施密特触发器输入端的一个10KΩ下拉电阻,时间常数为10×10-6×10×103=100ms。只要VCC的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。上电复位所需的最短时间是振荡周期建立时间加上2个机器周期时间,在这个时间内RST的电平应维持高于施密特触发器的下阈值。

上电按键复位2(b)所示。当按下复位按键时,RST端产生高电平,使单片机复位。复位后,其片内各寄存器状态见表,片内RAM内容不变。

c51单片机复位电路

如S22复位键按下时:RST经1k电阻接VCC,获得10k电阻上所分得电压,形成高电平,进入“复位状态”

当S22复位键断开时:RST经10k电阻接地,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。

单片机上电复位电路

AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1µF。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。

为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。

在图2的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。

积分型上电复位:

常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。

图3中:C:=1uF,Rl=lk,R2=10k

积分型上电复位电路图

专用芯片复位电路

上电复位电路 在控制系统中的作用是启动单片机开始工作。但在电源上电以及在正常工作时电压异常或干扰时,电源会有一些不稳定的因素,为单片机工作的稳定性可能带来严重的影响。因此,在电源上电时延时输出给芯片输出一复位信号。上复位电路另一个作用是,监视正常工作时电源电压。若电源有异常则会进行强制复位。复位输出脚输出低电平需要持续三个(12/fc s)或者更多的指令周期,复位程序开始初始化芯片内部的初始状态。等待接受输入信号(若如遥控器的信号等)。

高低电平复位电路

51单片机要求的是:高电平复位。上图是51单片机的复位电路。在上电的瞬间,电容器充电,充电电流在电阻上形成的电压为高电平(可按照欧姆定律来分析);几个毫秒之后,电容器充满,电流为0,电阻上的电压也就为低电平了,这时,51单片机将进入正常工作状态。图1是用来产生低电平复位信号的。

单片机复位电路的原理

复位电路的目的就是在上电的瞬间提供一个与正常工作状态下相反的电平。一般利用电容电压不能突变的原理,将电容与电阻串联,上电时刻,电容没有充电,两端电压为零,此时,提供复位脉冲,电源不断的给电容充电,直至电容两端电压为电源电压,电路进入正常工作状态。

关于单片机复位电路,以前做的一点小笔记和文摘,在这里做一个综述,一方面,由于我自己做的面包板上的复位电路按键无效,于是又回过头来重新整理了一下,供自己复习,另一方面大家一起交流学习。在我看来,读书,重在交流,不管你学什么,交流,可以让你深刻的理解你所思考的问题,可以深化你的记忆,更会让你识得人生的朋友。

最近在学ARM,ARM处理器的复位电路比单片机的复位电路有讲究,比起单片机可靠性要求更高了。先让我自己来回忆一下单片机复位电路吧。

先说原理。上电复位POR(Pmver On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。为什么在每次单片机接通电源时,都需要加入一定的延迟时间呢?分析如下。

上电复位时序

在单片机及其应用电路每次上电的过程中,由于电源同路中通常存在一些容量大小不等的滤波电容,使得单片机芯片在其电源引脚VCC和VSS之间所感受到的电源电压值VDD,是从低到高逐渐上升的。该过程所持续的时间一般为1~100ms。上电延时的定义是电源电压从lO%VDD上升到90%VDD所需的时间。在单片机电压源电压上升到适合内部振荡电路运行的范围并且稳定下来之后,时钟振荡器开始了启动过程(具体包括偏置、起振、锁定和稳定几个过程)。该过程所持续的时间一般为1~50 ms。

起振延时的定义是时钟振荡器输出信号的高电平达到10%VDD所需的时间。例如,对于常见的单片机型号AT和AT89S,厂家给出的这个值为0.7VDD~VDD+0.5V。从理论上讲,单片机每次上电复位所需的最短延时应该不小于treset。从实际上讲,延迟一个treset往往还不够,不能够保障单片机有一个良好的工作开端。

在单片机每次初始加电的时候,首先投入工作的部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时,以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予始终振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个及其周期的延时。

结语

单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。

本文只要介绍了复位电路的原理以及4类常见的复位电路,希望通过本文能你对复位电路有更深的了解。

来源:畅学单片机

围观 698

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

STM32介绍

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex®-M0,M0+,M3, M4和M7内核在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和 20KB到64KB嵌入式SRAM。

新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。

stm32复位电路设计

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

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

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

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

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

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

4. 软件复位(SW复位)

5. 低功耗管理复位

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

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

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

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

浅析stm32复位电路方法

STM32 内核复位与系统复位

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

本文说的内核是指处理器内核,也就是MPU(Microprocessor Unit)。比如STM32F103,其内核就是Cortex-M3内核。

而这里的系统就是包含内核和外设,也就是MCU(Microcontroller Unit),对于STM32F103来说,就是Cortex-M3内核+各种外设接口。

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

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

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

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

本文以Cortex-M3(STM32F103)为例来说明,其他芯片类似。

编写了4个复位函数,内核复位(C语言)、内核复位(汇编)和系统复位(C语言)、系统复位(汇编):

void NVIC_CoreReset(void); //内核复位(C语言)
void NVIC_CoreReset_a(void); //内核复位(汇编)
void NVIC_SystemReset(void); //系统复位(C语言)
void NVIC_SystemReset_a(void); //系统复位(汇编)

在ST官方库中的core_cm3.h文件中已经提供了NVIC_SystemReset的C语言源代码。

Cortex-M3允许由软件触发复位序列,用于特殊的调试或维护。在Cortex-M3中,有两种方法可以实现自我复位。

第一种方法:置位 NVIC 中应用程序中断与复位控制寄存器(AIRCR)的 VECTRESET 位(位偏移:0)。

NVIC_CoreReset内核复位

这种复位的作用范围覆盖了整个Cortex-M3处理器,除了调试逻辑之外的所有角落,但是它不会影响到Cortex-M3处理器外部的任何电路,所以STM32上的各片上外设和其它电路都不受影响。

编写的NVIC_CoreReset函数C语言源码:

staTIc __INLINE void NVIC_CoreReset(void)
{
__DSB();
//置位VECTRESET
SCB-》AIRCR = ((0x5FA 《《 SCB_AIRCR_VECTKEY_Pos) |
(SCB-》AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
SCB_AIRCR_VECTRESET_Msk);
__DSB();
while(1);
}

汇编版函数源码:

__asm void NVIC_CoreReset_a(void)
{
LDR R0, =0xE000ED0C
LDR R1, =0x05FA0001 //置位VECTRESET
STR R1, [R0]
deadloop_Core
B deadloop_Core
}

内核复位主要注意:SCB_AIRCR_VECTRESET_Msk和LDR R1, =0x05FA0001,这是和系统复位唯一的区别。

第二种方法:置位 NVIC 中应用程序中断与复位控制寄存器(AIRCR)的 SYSRESETREQ位(位偏移:2)。

NVIC_SysReset系统复位

系统复位是置位同一个寄存器中的SYSRESETREQ位。这种复位则会波及整个芯片上的电路:它会使Cortex-M3处理器把送往系统复位发生器的请求线置为有效。但是系统复位发生器不是Cortex-M3的一部分,而是由芯片厂商实现,因此不同的芯片对此复位的响应也不同。因此,读者需要认真参阅芯片规格书,明白当发生片内复位时,各外设和功能模块都会回到什么样的初始状态,或者有哪些功能模块不受影响(比如,STM32系列的芯片有后备存储区,该区就被特殊对待)。

大多数情况下,复位发生器在响应 SYSRESETREQ 时,它也会同时把Cortex-M3处理器的系统复位信号(SYSRESETn)置为有效。通常,SYSRESETREQ不应复位调试逻辑。

这里有一个要注意的问题:从SYSRESETREQ被置为有效到复位发生器执行复位命令,往往会有一个延时。在此延时期间,处理器仍然可以响应中断请求。但我们的本意往往是要让此次执行到此为止,不要再做任何其它事情了。所以,最好在发出复位请求前,先把FAULTMASK置位。可以采用下列汇编语句:__disable_fault_irq();。

core_cm3.h中提供的NVIC_SystemReset函数C语言源码:

staTIc __INLINE void NVIC_SystemReset(void)
{
SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) |
(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
SCB_AIRCR_SYSRESETREQ_Msk);
__DSB(); /* Ensure compleTIon of memory access /
while(1); /* wait unTIl reset */
}

汇编版函数:

__asm void NVIC_SysReset_a(void)
{
LDR R0, =0xE000ED0C
LDR R1, =0x05FA0004
STR R1, [R0]
deadloop_Sys
B deadloop_Sys
}

结语

某些系统允许复位,但对外设又有特殊要求:某一个IO状态不能因为复位而改变,某一个定时器计数器不能改变等。例子:A系统通过一个IO控制B系统的电源,而这个IO置高时才开启B系统的电源。

正常工作过程中,B系统只有收到A系统关机命令任务才会进行关机(也就是说不能掉电关机),而A系统在工作过程中有复位的需求。

这个时候如果使用常规的复位方式,就会复位IO,不符合要求。如果有一种方式只复位内核而不复位外设就好了。

转自:畅学单片机

围观 4219
订阅 RSS - 复位电路