作者:陈俊直
链接:https://www.zhihu.com/question/21035836/answer/19153215
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

首先要理解为什么需要复位:

1:因为微处理器(如我们常说的电脑CPU芯片和高端ARM)和微控制器(单片机、低端ARM什么的)芯片都是数字电路芯片,其正常工作是只有0低电平和1高电平这两个电平状态,属于离散系统。而供给芯片的电源输入却是模拟电路,属于连续线性系统。合上开关,芯片的VDD和VSS之间的电压要达到数字芯片可正常工作的电压是需要几毫秒到十几毫秒的过程的。

2:而也因为微处理器和微控制器是数字电路芯片,其是需要时钟信号才能工作。不管是内部芯片自带的低频RC振荡器还是外接晶振或者其他时钟电路,从上电到时钟电路正常起振也是需要时间的。可以看下图我用示波器测到的:ARM9上电那几百毫秒内,电源输入VCC对地电压(黄线)、及18.492M时钟(绿线)引脚对地电压发生的情况。可以看到芯片在给电的10毫秒内电源开始升到正常供电水平,但至少500毫秒后晶振才开始正常输出时钟(之前的虽然有时钟信号,也可以让CPU工作,但波形不稳定,按此状态运行的CPU容易出错)

所以,需要在芯片上电的时候给复位端一个复位信号让微处理器和微控制器内部的CPU在刚上电那段时间不要工作。

这叫上电复位,上电复位是微处理器或微控制器都必须存在的一个重要操作,没有这个操作CPU直接上电工作的话非常容易出错(程序跑飞、寄存器数据错误……)。

所以,51一般都使用阻容复位来让其cpu在上电后在复位重启一次。如下图,去掉SW-PB和R6就是一个普通的51阻容复位,上电瞬间因为电容的压降不可突变的原理,电容等同导通。电容C23和电阻R27之间RESET点的电位就是VC5的电压,一直使能复位端。上电后VC5对C23充电,RESET点的电位降低趋近于GND的电平,后复位解除CPU开始正常工作。(其实这图的R27有点大,C23有点小)

(而很多的低电平复位的芯片、如AVR、PIC等,都之需要在复位引脚上拉一个4.7K~10K的电阻即可。而ARM的复位时间较长,一般用专用的复位芯片)

======================
按键复位:
51的按键复位则是在阻容复位的基础上增加了一个人工干预复位端的按钮和一个限流电阻。如下图,当正常工作的时候,复位端RST和+5V,等同于断开,通过R7接地。当复位按钮按下,复位端RST和+5V几乎连起来,高电平使能芯片复位。并且释放电容C的电能。
R6的作用是不让电源+5直接冲击芯片的复位端(直接冲击可能会损害芯片,特别是8051这种IO驱动能力较弱的芯片),并且防止电容C因短路放电过快而被损坏。

按键复位电路的目的一般是为了开发者在调试电路或程序时候使用,也有在成型的产品使用过程中使其硬复位的功能,比如一些电脑还带有复位按钮,按一下机器强行复位,就是这个原理,当然电脑的复位按键后面的电路远复杂于这个,不仅仅是复位一个芯片,主板上的其他芯片也会被强行复位)
(而且ARM和电脑CPU芯片一般不会直接用类似这种按键复位电路,使用专用复位芯片有自带的按键接口引脚接按键)

阻容复位和按键复位 详解相关推荐

  1. 计算机归零按键,上电复位和按键复位区别

    描述 上电复位是指上电压从无到有在RESET处会先处于高电平一段时间,然后由于该点通过电阻接地,则RESET该点的电平会逐渐的改变为低电平,从而使得单片机复位口电平从1转到0,达到给单片机复位功能的一 ...

  2. emacs按键绑定详解

    key-binding: https://crazylxr.github.io/spacemacas-zh_CH-doc/binding-keys.html 概述:Emacs的键绑定方式看起来花样繁多 ...

  3. linux 按键驱动中断 rockchip_7.自己写中断方式按键驱动程序(详解)

    request_irq()和free_irq()分析完毕后,接下来开始编写上升沿中断的按键驱动 如下图,需要设置4个按键的EINT0, EINT2, EINT11, EINT19的模式为双边沿,且设置 ...

  4. 键盘的 SysRq按键使用详解

    本文转载于:http://www.cnblogs.com/ylan2009/articles/2322950.html 曾经啊,对着键盘上 Print Screen/SysRq 的键琢磨许久,也不知道 ...

  5. 简便计算机在线使用,计算器上的各个按键使用详解

    计算器上的各个键你都会使用吗?很多人都只会用一些常用的数字和数学符号,对于一些不常见的键是一窍不懂,今天小编为大家搜罗了计算器上的各个按键功能与使用: M+:把目前显示的值放在存储器中,是计算结果并加 ...

  6. 上电复位和按键复位区别

    http://www.elecfans.com/emb/danpianji/20171020567523.html

  7. 计算机在线算使用键盘的使用,计算器上的各个按键使用详解

    计算器上的各个键你都会使用吗?很多人都只会用一些常用的数字和数学符号,对于一些不常见的键是一窍不懂,今天小编为大家搜罗了计算器上的各个按键功能与使用: M+:把目前显示的值放在存储器中,是计算结果并加 ...

  8. php有按钮的计算器,计算器上的各个按键使用详解

    计算器上的各个键你都会使用吗?很多人都只会用一些常用的数字和数学符号,对于一些不常见的键是一窍不懂,今天小编为大家搜罗了计算器上的各个按键功能与使用: M+:把目前显示的值放在存储器中,是计算结果并加 ...

  9. Linux-hexdump命令调试event驱动—详解(13)

    2018-01-03阅读 6300 hexdump: 查看文件的内容,比如二进制文件中包含的某些字符串,通常用来调试驱动用 描述: 我们以event1为例,当我们insmod挂载了键盘驱动后,出现一个 ...

最新文章

  1. Android5.0之CoordinatorLayout的使用
  2. oracle 控制文件在哪里设置_从Oracle到PostgreSQL:最全控制文件
  3. 验证身份证和中文名字
  4. C C++ 面试知识总结,包含STL,数据结构等
  5. linux的线程要makefile,Linux内核线程之父pid=2的kthreadd线程
  6. 《JAVA与模式》之抽象工厂模式
  7. ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
  8. 剑指offer 二维有序数组查找
  9. 《一》php多进程编程:第一次fork
  10. Python3——FTP(文件传输协议)
  11. 区块链 2.0:下一个计算范式
  12. c语言 函数 收集,c语言库函数大全--资料收集+
  13. 壁仞科技A轮融资11亿元, 创近年芯片设计领域新纪录
  14. 【java笔记】IDEA debug调试
  15. 【Luogu1616】疯狂的采药
  16. DeepFace介绍
  17. 人性深处的探究与还原-《少年派的奇幻漂流》的四个故事
  18. 创建一个分布式网络爬虫的故事
  19. 微信小程序页面onLoad获取app.js的onLaunch数据(异步获取用户信息)
  20. 使用CoreLocation定位

热门文章

  1. [记录]学习QT学习之路2第四天
  2. 脉冲信号研究(matlab代码实现)
  3. 计算机系统结构专业考研科目,计算机系统结构考研考什么
  4. Android SMSC设置失败短信发送失败问题
  5. 汤晓鸥:人工智能在中国有点过热了,我想泼泼冷水
  6. 通过安装虚拟打印机输出PDF文件
  7. java对接海康实现页面实时播放和回放
  8. 超频到3200最佳时序_XPG 龙耀 D50 重装铠甲,超频新选择
  9. Mybatis报错:org.apache.ibatis.binding.BindingException:has an unsupported return type:
  10. 戴尔服务器内存型号,DELL/戴尔 R720\R910服务器/MD3600F存储/型号描述/DELL产品大全...