这篇文章给大家介绍一下STM32F7的电源控制器。
F7的工作电压也就是VDD要求为1.8V~3.6V,通过VDD引脚给整个芯片供电,VDD再通过主电压调节器给I/O口和内核逻辑提供1.2V工作电压。当内部复位电路关闭并工作在0~70度时,可以工作在1.7V下。
当主电源VDD断电的时候,可以通过VBAT电压为实时时钟,还有RTC的备份寄存器和备份SRAM供电。
为了提高ADC的转换精度,ADC配有独立的电源,可以单独滤波并屏蔽PCB上的噪音,ADC的电源从单独的VDDA引脚输入,VSSA引脚则提供了独立的电源接地连接。为了提高DR输入的精度,用户还可以在VREF上接单独的ADC外部参考电压输入,VREF上电压的范围位1.8V~VDDA的电压值。F7还有一个单独的VDD_USB引脚,可以单独给USB模块提供电源,它可以连接到VDD或者是USB收发器的外部独立电源。
除了LQFP100,F7的大部分封装上都有VDD_USB供电引脚。VDD_USB引脚可以连接到VDD,也可以通过外部电源单独给USB模块供电吗,这样做的好处是当芯片工作在较低电压的情况的时候,使用USB功能不需要外接一个外部PHY,而且当MCU工作在1.8V的时候,通过外部单独提供一个3.3V的电压给USB,这样USB的连接也可以正常工作。
对于全速USB或者是工作于全速模式的高速USB,相关的GPIO由VDD_USB供电,即使应用仅使用一个USB收发器,与另一个USB收发器相关的GPIO仍由VDD_USB供电。
电源检测和复位电路
F7内部集成有上电复位和掉电复位的电路,可以从1.8V开始正常工作,当VDD低于指定阈值的时候,不需要外部的复位电路,芯片会保持在复位模式。
在上电期间,欠压复位将使器件保持复位状态,直到电源电压达到指定的VBOR阈值。欠压复位可以通过选项字进行配置,默认是关闭状态,可以选择三个可以变成的阈值级别。
可编程电压检测可以检测VDD的电源,将VDD的电源与设置的阈值进行比较,当VDD降到阈值以下,或者是当VDD升到阈值以上的时候,它可以产生PVD的输出中断,具体要取决于所对应的中断线上升沿或者下降沿的配置。这个功能的用处之一就是可以在中断服务程序中执行一些紧急的关闭系统的任务。
内部复位功能的开关可以通过PDR_ON引脚的状态来进行配置,当这个引脚连接到VDD的时候,内部复位电路打开;当这个引脚连接到VSS的时候,内部复位电路关闭。
F7的备份域包括RTC和4KB的备份RAM以及给备份RAM供电的低功耗电压调节器。对于备份域的部分,当VDD低于PDR值的时候,会自动切换到VBAT的独立供电电源。在VBAT供电的模式下,映射到PC13和PI.8脚的RTC功能在Bbat模式下仍然可用。
下图是不同的封装下,对于调压器和内部复位功能的支持情况
调压器的工作模式
在运行和睡眠模式下,调压器可以工作在两种模式:正常模式和过驱动模式。
正常模式下,CPU和内核逻辑在给定电压级别下以最大频率工作。
在过驱动模式下,它允许CPU和内核逻辑在电压级别1和级别2下以高于正常模式的频率工作,F7可以通过这种模式达到最高216MHz的工作频率。
在停止模式下,调压器也有正常模式和欠驱动模式。
正常模式在正常泄漏模式下保留1.2V域。当主调压器或低功耗调压器使能时,该模式为默认模式。
欠驱动模式是指低泄漏模式下保留1.2V域。
在待机模式下调压器掉电,除待机电路和备份域外,寄存器和SRAM的内容都将丢失,可以通过将6 WKUP引脚配置成上升沿或下降沿退出待机模式。
下图列出来了在器件不同的工作模式下,电压调节器可选择的工作状态。
电压调节
F7有三个电源级别:级别1,级别2和级别3。这三个级别在电源控制寄存器中进行修改,但是只能在选择HSI或HSE为系统时钟源并且PLL处于关闭状态时进行修改。
当PLL重新开启后新的值才有效。
当PLL关闭后,系统将自动选择电源级别3。
退出停止模式后,系统也将自动选择电压级别3。
下图是在不同的电压级别下可以达到的最高系统频率。
下面的图片显示的是最大系统频率和电压级别以及驱动模式的关系图。在电压级别3下,最高可以跑到144MHz;在电压级别2下,如果Over-drive模式打开,最高可以到180MHz;在电压级别1,如果Over-drive模式打开,最高可以到216MHz。
下图是F4和F7功耗的对比。在低功耗模式下,STOP、Standby或者是外部电池供电的模式下,F4和F7的功耗都是差不多的。
F7的外部驱动时钟,LSE的驱动能力可以通过寄存器进行调节,一共有四个级别:低驱动能力、中低驱动能力、中高驱动能力和高驱动能力。在不同的驱动能力下,所带来的功耗是不一样的。下图是对于不同驱动能力下所带来的功耗比较。