ATmel 328P 寄存器说明——持续更新
SMCR - Sleep Mode Control Register 睡眠模式控制寄存器
MCUCR - MCU Control Register 微处理器控制寄存器
PRR - Power Reduction Register 功耗节省寄存器
8-bit Timer/Counter 0 with PWM 8比特PWM定时/计数器 0
SMCR - Sleep Mode Control Register 睡眠模式控制寄存器
应用可以通过睡眠模式关闭MCU中没有用到的模块,从而达到节省功耗。
SMCR 寄存器用来控制功耗管理
Bit 7 到 Bit 4 为 保留比特位(Res:Reserved Bits),只读,默认始终读出0
Bit 3 到 Bit 1 名称为SM2到SM1(SM全称Sleep Mode Select Bits),睡眠模式选择位。共五种睡眠模式可供设置:
Bits 0 SE 为睡眠模式开关控制位,当要睡眠指令执行时,SE位必须写入逻辑1让MCU进入睡眠模式。当需要唤醒睡眠模式下的MCU,建议睡眠指令没有执行的时候向SE位写入逻辑1,并在唤醒MCU后立即将改为清除(写入逻辑0)
MCUCR - MCU Control Register 微处理器控制寄存器
Bit 6 - BODS BOD Sleep,BOD (Brown-out Detector,掉电检测),当电压下降到1.8v,有的时2.4v或者4.3V,MCU将复位。在MCU睡眠时必须对BODS写逻辑1,关掉BOD,防止MCU一直复位(这里经常出现有人设置了睡眠模式,但是没有关掉掉电检测,导致MCU一直在复位重启)。BODS位和BODSE位要提前置1,这样才可以在一系列相关的睡眠模式下禁止BOD。在设置BODS位时,BODS首先要被置1,然后BODSE在4个时钟周期内置0。然后BODS位将在3个时钟周期内被激活。此时,在BODS激活的时间内,执行睡眠指令才可以关掉BOD,完成睡眠指令。此时,BODS位将在3个时钟周期后被自动清除。
Bit5 - BODSE BOD Sleep Enable,BOD 睡眠使能位。在上面BODS位的描述说明中,BOD 关闭是被时序控制的。
Bit 4 - PUD Pull-up Disable,当PUD位被置1,即使DDxn 和 PORTxn 寄存器被配置成允许pull-ups,I/O 口也不能将MCU拉起。
Bit 1 - IVSEL Interrupt Vector Select 中断向量选择(中断指针)。当IVSEL位被清零后,中断指针将指向Flash存储的初始地址处。当该位置1时,中断指针将移动到BootLoader区域的开始处。Boot Flash 的起始地址是由BOOTZ 熔断丝(BOOTZ Fuses)的设置绝定的。为了避免误操作中断向量表,需要一些特别定制的编程步骤来修改IVSEL位。具体见官方文档
Bit 0 - IVCE Interrupt Vector Change Enable
PRR - Power Reduction Register 功耗节省寄存器
8-bit Timer/Counter 0 with PWM 8比特PWM定时/计数器 0
持续更新中…