该坚持的时候坚持,该妥协的时候妥协,该放弃的时候放弃
分类: 嵌入式
2017-01-09 23:10:28
内部包含有一个综合了POR/PDR电路,这保证当电源不处于产品正常运行的电压范围(2V~3.6V)时,该电路将产生一个适当的复位。无需外部复位电路在POR和PDR之间有40mV滞后。
通过设置PWR_CR的PVDE位来使能;
使用PWR_CR中的PLS[2:0]位来设定监控电压的门限,通过与设定门限电压比较来监控VDD 电源;
门限值:2.2V~2.9V,步进值:0.1V;
当VDD 降到门限电压以下、或上电时VDD 上升到门限电压(PWR_CSR的PVD0位表明该状态),与此信号向量的外部中断线16(如果开启)将产生中断。
>>可以用于长生警告信息、和/或将MCU运行安全状态。
备份区域包含:
RTC(计数器、分频器和报警机制)用于RTC的独立的32KHz的振荡器(LSE)10个16位的用户被封寄存器RCC的BDSR寄存器:RTC时钟源的选择和使能+LSE设置
>>只有备份区域的复位信号才能复位该区域。
VBAT 独立供电
当系统VDD 低于PDR电压时,将自动切换到VBAT ;
当时用VDD 时,VBAT 上无电流损失。
防入侵检测:复位所有用户的备份寄存器
可设置级别:低/高可设置产生中断
STM32F10x低功耗模式:使用CortexM3的睡眠模式。 睡眠、停止和待机模式 在停止和待机模式下,复位电路、POR/PDR处于激活状态。
睡眠、停止和待机模式
在停止和待机模式下,复位电路、POR/PDR处于激活状态。
由于存在静态功耗(如电压调节器、振荡器、 Flash),在低频率下mA/MHz有点偏高。
代码在SRAM里执行时的功耗比在Flash里低。
内核停止、外设继续运行。通过执行特殊的指令(WFI/WFE)进入该模式;Cortex-M3控制寄存器的中SLEEPONEXIT位决定进入该模式的机制:
Sleep-Now(SLEEPONEXIT为0):当执行WFI/WFE指令时,MCU立即进入睡眠模式。
Sleep-on-Exit(SLEEPONEXIT为1):当从优先级最低的中断向量里退出时,MCU进入睡眠模式。
退出睡眠模式:
WFI(等待中断)
任意可被可嵌套向量的中断控制器(NVIC)确认的外设中断。
WFE(等待事件)
在事件模式下,一个在外设控制寄存器中可设置为中断使能的事件,但是不未在NVIC中使能,或设为事件模式的外部中断线的事件。
无时间损失在进入/退出上。
为了降低功耗,用户可在进入睡眠模式前关闭不工作的外设时钟。
在以下条件下执行WFI或WFE指令进入停止模式:
1. 设置Cortex-M3系统控制寄存器中的SLEEPDEEP位;2. 清除电源控制寄存器(PWR_CR)中的PDDS位;3. 通过设置PWR_CR中LPDS位选择电压调节器的模式。
所有外设时钟、PLL、HSI和HSE都被关闭,保留SRAM和寄存器内的内容。如果RTC和IWDG正在运行,进入停止模式时该外设不会停止(包括时钟)。可将电压调节器设置为低功耗模式,以降低功耗;退出停止模式:
以WFI指令进入时:任意设置为中断模式的外部中断线(相应的中断须在NVIC中使能);以WFE指令进入时:任意设置为事件模式的外部中断线;
从停止模式恢复后,时钟的配置返回到复位时的状态(系统时钟为HSI)。
在以下条件下执行WFI指令:
1. 设置Cortex-M3系统控制寄存器中的SLEEPDEEP位;2. 设置电源控制寄存器(PWR_CR)中的PDDS位;3. 清除电源控制/状态寄存器(PWR_CSR)中的WUF位。
电压调节器关闭、整个1.8v区域断电。除了备份区域和待机电路的寄存器以外,SRAM和寄存器的内容全部丢失;在待机模式下,RTC和IWDG(如果开启)继续运行;除了以下情况,待机模式下所有IO口处于高阻状态:
复位引脚(始终有效);防侵入引脚(若被置为检测侵入或校准);唤醒引脚,如果使能。
唤醒源:
唤醒引脚的上升沿RTC警告复位引脚外部复位信号IWDG复位