zoukankan      html  css  js  c++  java
  • MCU有哪些复位因素

    在调试MCU时,经常会遇到复位的情况。要找到复位的原因,我们就需要了解到有哪些因素会导致MCU复位。

    1. 外部输入复位

    当我们改变MCU的reset引脚的电平,并保持一段时间,就可以复位MCU。

    外部输入复位是重启MCU最有效的方式了。

    2.上电复位  (LVD)

    我们发现MCU不接外部复位电路,也能正常启动起来,这就是上电复位在发挥作用。

    如下图,当电源电压达到POR释放电压后,MCU开始内部初始化,一定时间后开始执行用户程序。

    当然,如果电源电压掉到了POR检测电压以下时,MCU会被复位住。

    3.低电压复位(LVD)

     当我们希望MCU不在某一电压以下运行时,开启LVD是一个很好的选择。

    当电源电源下降到LVD检测电压以下时,MCU会被复位住。

    当电源电压上升的LVD释放电压以上时,MCU会被释放,重启运行。

    4.看门狗复位(WDT)

    当MCU因为干扰等因素导致进入死循环,这个时候需要一种机制让MCU重新启动,这种机制就是看门狗。

    在开启看门狗后,如果不及时喂狗,那么它将毫不犹豫的复位MCU,使其重新开始执行用户程序。

    5.系统时钟复位

    如果系统时钟的设置,使MCU进入死锁状态,那么就会发生系统时钟复位。

    6.修整数据复位

    低电压复位(LVD)的检测值是可以由用户的选择的。

    根据用户选择,得到修整数据,从而调整电阻梯以形成不同电压的比较值。

    如果这个修整数据因为噪声等原因发生改变,那么将发生修整数据复位。

    7.闪存待机复位

    当设置闪存flash进入待机状态,如果这个时候试图去读取闪存flash中的数据,那么就会发生闪存待机复位。

    除了第一种外部输入复位为外部因素外,其他复位都是内部因素。

    当发生复位时,我们如何判断是哪一种因素导致的呢?

    如果是使用东芝TLCS-870/C1系列的TMP89FM42或TMP89FS60,可以通过它寄存器IRSTSR来判断。

    IRSTSR是一个特殊只读寄存器,它只能被外部输入复位或者上电复位(POR)初始化。

    当发生复位时,我们去查看这个寄存器哪个位被置位了,就能知道是哪种内部因素导致的复位了。

    如果发生复位后,这个寄存器没有被置位,那么我们就要去考虑是外部输入复位导致的,还是上电复位(POR)导致的了。

  • 相关阅读:
    深入 HBase 架构解析(2)
    [HEOI2012]朋友圈
    图论常用概念整理
    [COGS2175][SDOI2012]象棋-二分图最大权匹配
    KMP算法
    数据结构部分整理
    最小费用最大流学习笔记
    动态开点线段树
    Splay 模板
    C++ P1164 小A点菜
  • 原文地址:https://www.cnblogs.com/freesun/p/13190598.html
Copyright © 2011-2022 走看看