EFM8SB2系列MCU复位源详解

时间:2018-06-04 16:51来源:Silicon Labs

摘要:EFM8SleepyBee2系列是SiliconLabs(亦称“芯科科技”)最节能的8位MCU之一,非常适用于对功耗要求高的系统中,其120uAMHz运行功耗,05uA睡眠电流,可以极大延长电池的使用寿命。

EFM8 Sleepy Bee 2系列是Silicon Labs(亦称“芯科科技”)最节能的8位MCU之一,非常适用于对功耗要求高的系统中,其120uA/MHz运行功耗,0.5uA睡眠电流,可以极大延长电池的使用寿命。
 
 
 
EFM8SB2系列集成资源丰富。其不仅提供了最高8KB的闪存空间,还提供了丰富的外设接口,包括I2C、UART、SPI,芯片集成了12位ADC和比较器,可用于低电压检测。
 
EFM8SB2除了具有以上丰富的资源以外,还有多种复位源可以使MCU复位,首先任何一款MCU都有复位源。顾名思义,复位就是使MCU从初始状态开始,本文将进行重点介绍EFM8SB2的复位源:
 
复位电路将寄存器置于一个预定义的缺省状态,MCU在进入此复位状态时,将发生以下过程:

• 停止执行核心程序。
• 所有寄存器都被复位为寄存器说明中备注的预定义值。
• 外部I/O端口引脚将被置于一个已知的状态。
• 中断和定时器将被禁用。
 
在复位期间 RAM 的内容不受影响;此前存储的数据在掉电之前保持不变。端口I/O在开路漏极模式下复位为1。在复位期间和复位之后芯片内部的弱上拉被启用(可以通过软件重新禁用),而对于上电复位期间,RSTb引脚被驱动为低电平,直到MCU退出复位状态。在退出复位状态后,程序计数器(PC) 被复位,并且系统时钟默认为内部振荡器。监视程序定时器被启用,软件从位置 0x0000 开始程序执行。
 
MCU在发生复位以后,可以通过软件读取寄存器RSTSRC的值,来判断复位源是哪一个,例如,如果读取到RSTSRC= 0x10,那么说明上一次发生的复位是软件触发复位。
 
EFM8SB2系列MCU的复位源包括以下几种:

• 电复位
• 硬件外部复位引脚RSTb复位
• 比较器复位
• 软件触发复位(RSTSRC|=0x10;)
• 电源监视器复位(监控VDD电源)
• 监视程序定时器复位
• 时钟丢失检测器复位
• Flash闪存错误复位
• RTC0警报或振荡器故障
 
此外,唤醒和复位是两个不同的状态,唤醒是相对于休眠来说的。对于EFM8SB2系列MCU来说,有三种低功耗模式,分别是空闲、挂起、睡眠。举例说明,通过软件设置(PMU0CF|= 0x40;)进入挂起(Suspend)模式后,MCU进入了一种等待唤醒的状态,寄存器和端口I/O的状态保持变,这个时候,如果发生了端口匹配事件,MCU将立即唤醒,软件将从进入挂起状态的下一条语句开始执行,而复位是从0x0000开始执行,这是两者最大的区别。

我要投稿
近期活动

Copyright 2008-2018 21dianyuan.com All Rights Reserved 备案许可证号为:津ICP备10002348