ATtiny25/45/85
7,电源管理及睡眠模式
高性能和业界领先的代码效率,使AVR微控制器的理想体例选择适合低功耗应用.
睡眠模式可以使应用程序关闭没有使用的模块的MCU,从而降低功耗. AVR具有不同的睡眠模式,允许用户定制功耗应用的需求.
进入任何的睡眠模式的,在MCUCR的SE位必须写入逻辑1和SLEEP指令必须执行.该SM1 .. 0位MCUCR寄存器选择哪个睡眠模式(空闲,ADC降噪,或掉电)将由休眠激活指令化.看表7-1对于一个总结.如果使能的中断而MCU处于睡眠
模式下,MCU唤醒.该MCU然后停止工作4个周期,除了启动时间,执行中断服务程序,并恢复执行SLEEP的下一条指令.寄存器文件和SRAM的内容不会改变时,该设备从睡眠中唤醒.如果在睡眠过程中发生了复位,则MCU唤醒后从中断向量开始执行.
图6-1第21页呈现出不同的时钟系统的ATtiny25/45/85,及其分布tribution.此图在选择合适的睡眠模式时非常有用.
7.1
MCU控制寄存器 -该MCU控制寄存器包含控制位电源管理.MCUCR
Bit
7BODS
Read/WriteInitial Value
R/W0
6PUDR/W0
5SER/W0
4SM1R/W0
3SM0R/W0
2BODSER/W0
1ISC01R/W0
0ISC00R/W0
MCUCR
?位7 - BODS:生化需氧量睡眠
生化需氧量禁用功能可在某些设备上,只.看
33页的“限制”.
为了睡眠期间禁用生化需氧量(见表7-2第33页)该BODS位必须写入逻辑之一.这是由一个定时序列和使能位,BODSE在MCUCR控制.
首先,无论BODS和BODSE必须被设置为1.第二,在4个时钟周期,BODS必须被设置为1,并BODSE必须被设定为零.该BODS位有效三个时钟周期,它被设置后.睡眠指令必须执行,而BODS是活跃,以关闭BOD的实际睡眠模式.该BODS位后三个时钟周期自动清零.
在睡眠BOD尚未实施的设备该位未使用,总是读为零.
?位5 - SE:休眠使能
SE位必须写入逻辑之一,使MCU进入睡眠模式时,执行SLEEP指令时.为了确保进入休眠模式,除非它是程序员的目的单片机,它是建议写在睡眠使能(SE)位一仅在SLEEP指令执行前和起床后立即清除.
?第4位,3 - SM1 .. 0:休眠模式选择位2 .. 0这些位三个可用的睡眠模式之间进行选择,如图
表7-1.
31
7598H–AVR–07/09
表7-1.
休眠模式选择
SM1SM0睡眠模式00Idle
01ADC噪声抑制10断电1
1
待机模式
?位2 - BODSE:生化需氧量睡眠启用生化需氧量禁用功能可在某些设备上,只.看
33页的“限制”.
该BODSE位使能BODS控制位设置,因为在BODS解释位描述.生化需氧量禁用由时序控制.该位未使用在软件BOD禁止未得到执行,将读为零在这些设备的设备.
7.2空闲模式
当SM1 .. 0为00时,SLEEP指令将使MCU进入空闲模式,停止CPU但允许模拟比较器,ADC,定时器/计数器,看门狗和中断系统继续工作.这个睡眠模式只停止clkCPU和CLK
FLASH
,而
允许其他时钟运行.
空闲模式使MCU从外部触发中断以及内部醒来
那些象定时器溢出.如果不需要唤醒从模拟比较器中断,模拟比较器可通过设置模拟比较器ACD位被断电
控制和状态寄存器 - ACSR.这将降低功耗在空闲模式下.如果ADC使能,进入此模式中的转换会自动启动.
7.3ADC噪声抑制模式
当SM1 .. 0为01时,SLEEP指令将使MCU进入噪声还原模式,停止CPU,而ADC,外部中断,而
看门狗继续工作(如果启用).这个睡眠模式停止clkI/O,CLKCPU
和CLK
FLASH
,
同时允许其他时钟运行.
此模式提高了ADC的噪声环境,使得转换精度更高.如果
ADC使能,进入此模式中的转换会自动启动.除了形成ADC转换结束中断,外部复位,看门狗复位,欠压
复位,SPM / EEPROM准备好中断,INT0外部电平中断或引脚电平变化中断可以从ADC噪声抑制模式唤醒MCU.
7.4掉电模式
当SM1 .. 0为10时,SLEEP指令将使MCU进入
掉电模式.在这种模式下,振荡器停止工作,而外部中断,并且看门狗继续工作(如果启用).只有外部复位,看门狗复位,欠压复位,上INT0外部电平中断,或引脚电平变化中断可以唤醒
单片机.这个睡眠模式停止了所有的时钟,使之只有异步模块可以继续工作.
32
ATtiny25/45/85
7598H–AVR–07/09
ATtiny25/45/85请注意,如果一个电平触发中断用于唤醒从掉电模式下,改变电平必须保持一段时间,以唤醒MCU.请参阅..,有关详细信息表7-2.活动的时钟以及唤醒源在不同睡眠模式活动的时钟振荡器唤醒源第58页上的“外部中断”FLASHCPUADCPCKIO睡眠模式IdleADC噪声减少断电Note:clkclkclkXclkXXclkX启用源主时钟看门狗打断ReadyINT0和SPM/ADC其他I / OUSI启动状态引脚电平变化EEPROMXXX(1)XXXXXXXXXXXXX(1)1.对于INT0,只级中断.7.5限制生化需氧量禁用功能已在下列设备得到落实,只有:ATTINY25,修订版D,和新的ATtiny45,修订版D,和新的ATTINY85,C版本,和新的7.6节电寄存器该节电寄存器,PRR,提供了一种方法来停止时钟individualperipherals,以降低功耗.外围设备的当前状态是frozenand的I / O寄存器不能被读取或写入.停止时钟时,所使用的外围资源仍然被占用,所以外围应该在大多数情况下,停止时钟之前被禁用.醒来一个模块,它是通过清除PRR位完成后,把该模块在相同的状态关机前.模块关机可以在空闲模式和主动模式被用来显著降低整体功耗.在所有其他睡眠模式时,时钟已经停止.Bit7–Read/WriteInitial ValueR06-R05-R04-R03PRTIM1R/W02PRTIM0R/W01PRUSIR/W00PRADCR/W0PRR位7,6,5,4 - Res:保留位这些位为保留位在ATtiny25/45/85,将来也永远读为零.位3 - PRTIM1:节电T/C1的写逻辑之一,该位关闭T/C1的模块.当T/C1的启用,操作将继续像关机前.337598H–AVR–07/09位2 - PRTIM0:节电T/C0的
写逻辑之一,该位关闭T/C0的模块.当T/C0的启用,操作将继续像关机前.
位1 - PRUSI:节电USI
写逻辑之一,该位关闭USI停止时钟模块.当再次醒来的USI,富联国际应重新初始化,以确保正常运行.
位0 - PRADC:降低功耗ADC
写逻辑之一,该位关闭了ADC.之前关闭ADC必须被禁止.模拟比较器不能用在ADC输入MUX当ADC被关闭.
7.7降低功耗
有几个问题,试图降低AVR控制系统的功耗时需要考虑的问题.在一般情况下,睡眠模式应该使用尽可能多,与睡眠模式应选择以使尽可能少的设备的功能运作.所有不需要的功能必须禁止.特别是,下面的模块试图达到的尽可能低的功耗时,需要特别考虑.
7.7.1类比至数位转换器
如果使能时,ADC在睡眠模式下继续工作.为了降低功耗,ADC应该是显示在进入睡眠模式之前禁止.当ADC关闭和再次打开,下一转换将是一个扩展的转换.请参阅第111页上的“模拟到数字转换器”关于ADC操作细节.
7.7.2模拟比较器
在空闲模式时,模拟比较器,如果不使用被禁用.当进入ADC降噪模式下,模拟比较器应该被禁用.在其他睡眠模式模拟比较器是自动禁用.但是,如果模拟比较器是设置为使用内部参考电压作为输入,模拟比较器,可以显示禁止在睡眠模式.否则,内部参考电压将被启用,独立的睡眠模式.请参阅“模拟比较器”第108页关于详细介绍了如何
配置模拟比较器.
7.7.3欠压检测器
如果掉电检测器是没有必要的,这个模块也可以关闭.如果
欠压检测器是由BODLEVEL保险丝启用,它会在睡眠模式下继续工作,因此,总是消耗功率.在深层次的睡眠模式,这将显著贡献总电流消耗.请参阅“欠压检测”第38页关于详细介绍了如何
配置欠压检测器.
7.7.4内部参考电压
需要的欠压检测,当内部参考电压将被启用
模拟比较器或ADC.如果因为在这些模块被禁用
以上,内部参考电压将被停用,它不会被消耗功率.何时再次开启时,用户必须等待基准启动输出用于前.如果定值保持在睡眠模式下,输出可被立即使用.请参阅“内部电压
第40页上的年龄参考“为在启动时间的细节.
34
ATtiny25/45/85
7598H–AVR–07/09
ATtiny25/45/857.7.5看门狗定时器如果看门狗定时器是不是需要在应用程序中,这个模块也可以关闭.如果看门狗定时器使能,它将在各种休眠模式下继续工作,因此,总是消耗电源.在深层次的睡眠模式,这将显著贡献的总电流消耗化.请参阅“看门狗定时器”第41页有关如何配置看门狗定时器.7.7.6端口引脚当进入睡眠模式时,所有的端口引脚都应该配置为只消耗最小的功耗.该最重要的是必须保证没有驱动电阻性负载.在休眠模式下无论是I / O时钟(CLKI/O)和ADC时钟(clkADC)被停止时,该装置的输入缓冲器将被禁用.这将确保没有功率是由输入电路不会消耗电流.在某些情况下,输入逻辑是必要的,用于检测唤醒条件,然后它会启用.请参阅节“数字输入使能和休眠模式”第51页关于细节该引脚被启用.如果输入缓冲器被激活,输入信号被悬空或具有模拟信号电平接近VCC/ 2,否则输入缓冲器会消耗过多的电对于模拟输入引脚,数字输入缓冲应始终被禁用流..一个模拟信号水平接近VCC对一个输入管脚/ 2可引起显著电流,即使在主动模式.数字输入缓冲器可以通过写数字输入禁止寄存器(DIDR0)来禁止.请参阅110页 - “DIDR0数字输入禁止寄存器0”了解详情.8,系统控制和复位8.1复位AVR在复位时,所有的I / O寄存器都被设置为初始值,程序开始执行从复位向量.该指令放置在复位向量必须是RJMP - 相对跳转 - 指令复位处理例程.如果程序永远不使能中断源,中断向量不使用,一般的程序代码可以放置在这些位置.图中的电路图8-1为复位逻辑.表8-1定义了电气复位电路的参数.AVR单片机的I / O端口立即复位为初始状态,当复位源生效.这不需要任何时钟处于正常运行状态.当所有的复位信号消失活跃,一个延迟计数器被激活,从而延长了内部复位.这允许正常工作之前电源达到稳定的水平.超时延迟计数器的周期是由用户通过SUT与CKSEL熔丝位定义.该dif-ferent选择延迟期间都第23页上的“时钟源”.8.2复位源该ATtiny25/45/85有4个复位源:?上电复位. MCU复位当电源电压低于上电复位阈值(VPOT).?外部复位. MCU复位当一个较低的水平上存在的RESET引脚较长大于最小脉冲长度.?看门狗复位.该MCU复位当看门狗定时器期间届满,看门狗被启用.?欠压复位.该MCU复位当电源电压VCC低于欠压复位门限(VBOT)和欠压检测器已启用.7598H–AVR–07/0935