之前有去写过ST的F0和F1系列的电路设计,其实对于ST家的MCU,基础电路设计都差不多一样,只不过一些高性能的MCU可能会额外多一些细节需要注意,比如像今天要聊的F7一样。
当我们确定项目要使用STM32F7系列的MCU后,拿到芯片规格书,按照ST规格书的风格,一般都会在General operation conditicons中罗列出电源轨相关信息,在规格书的第109页的Table 17可以找到这些信息如下。
图1. STM32F7系列MCU电源轨汇总
从这个典型工作的电压范围的约束值中,可以看出,如果没有特殊需求的话,所有电源轨使用3.3V供电没啥问题,剩下就是功耗评估,然后挑个适合的电源方案供电了事。同样功耗信息也在Table 17中有描述,如下图所示。
图2. STM32F7系列不同封装的功耗信息
ST提供了不同封装的最大功耗值,设计可以直接参考评估,如果算下来感觉没必要按照最大裕量来考虑供电,那么可以参考规格书的6.3.7小节 Supply current characteristics中不同模式和不同工作频率的工作电流情况来评估,限于该小节罗列的工作情况较多和篇幅原因,这里就不摘抄放上来,感兴趣可以自行翻阅规格书看该小节。
当然,在做设计时肯定不能真这样草草了事,上面只是理了电源轨,知道了不同电源轨的供电电压范围,对于不同的应用场合,可能会面对不同的情况,所以接下来要仔细看看各个电源轨的作用,根据自己的需求针对性的调整。
在规格书的第28页的3.17小节 Power supply schemes告诉了我们这些电源的相关细节。在该小节开节第一句话中,明确的告诉了我们,VDD这个电源轨除了给IO供电,还给内部稳压器供电。
而对于VDDA、VBAT这两个电源轨,从名字上看我们应该都很熟悉了,分别是给模拟电源和RTC时钟电路供电,功耗都不高,设计时需要特别注意的地方也跟之前一样,如果设计需要用到ADC或DAC,且VDDA跟VDD共用同一个电源,那么需要注意使用一颗磁珠在VDDA和VDD之间隔离,避免VDD上的数字噪声干扰。
对于VDD/VDDA可以使用到最小值电压1.7V供电,但是如果使用1.7V给VDDA供电时,需要特别注意把PDR_ON(power-down reset
)这个功能给关掉,关掉的方法是把PDR_ON这个引脚直接接到GND,如下图所示,如果不做该处理的话,芯片一定不能正常工作起来。
当然这里的1.7V不是真的就指用1.7V供,是我们常规的1.8V电源,因为抖动或者偏差,都容易进入到1.7V的边界,所以使用1.8V电源给VDD/VDDA供电时一定要把PDR_ON接到GND上。
图3. STM32F7系列MCU使用1.8V供电时需要把PDR_ON接到GND上
至于是什么原因,规格书上也描述很清楚,在第31页的3.18.2小节 Internal reset OFF的Figure 7,如下,可以看到内部监视电路在监测到VDD电压上升超过1.7V后,内部复位NRST延时一段时间后会自动复位,然后拉高,如果VDD电压下降超过1.7V后,NRST会直接拉低。所以如果使用1.8V给VDD/VDDA供电,不把PDR_ON功能关掉的话,可能带来的一个结果就是产品研发阶段,板子可能没问题或者偶尔不稳定,到研发后期做各种压测时就开始暴露各种不稳定,芯片反复重启等,原因就是压测中可能环境温度或者功耗变化导致电压时跌到1.7V下,时上升超过1.7V,所以芯片会反复重启。
图3. STM32F7系列MCU的PDR工作波形
刚说到VDD会给芯片内部的稳压器供电,STM32F7系列的部分型号MCU内嵌了个稳压器,这个稳压器会生成一个1.2V的电压给内部电路供电,关于如何知道哪些型号带稳压器我待会再说,这里先看关于这个内部稳压器的一些设计注意事项。
内嵌的稳压器的打开和关闭是通过BYPASS_REG这个引脚设定,当BYPASS_REG引脚拉低时打开内部稳压器,当BYPASS_REG引脚拉高时关闭内部稳压器。
**当设置内部稳压器打开时,需要在VCAP_1和VCAP_2这两个引脚各并上一个2.2uF电容。
**
当设置内部稳压器关闭时,需要使用外部1.2V电源接到VCAP_1和VCAP_2这两个引脚上,并把2.2uF电容换为0.1uF。 要是把BYPASS_REG引脚拉高了不给VCAP_1和VCAP_2供电的话,芯片也一定工作不了。
图4. STM32F7系列MCU内部稳压器关闭时的注意事项
知道了内部稳压器打开和关闭的设计要点后,我们可以从规格书第36页的Table 4知道对于STM32F7系列的MCU,哪些封装支持内部稳压器功能,哪些不支持,如下图所示。
图5. STM32F7系列MCU内部稳压器支持汇总
详解了VDD/VDDA、内部稳压器的电路设计后发现都1.5k的字数了,我们还差VDDSDMMC、VDDDSI、VCAPDSI、VDD12DSI、和VDDUSB没说。VDDSDMMC是给SD卡的信号供电的,如果VDD使用1.8V供电,SD卡工作在3.3V电平模式,那么VDDSDMMC是可以使用符合JESD标准的2.7V-3.6V的电压供电,但需要注意上电时序问题。
在VDD电压没升到VDD的最小阈值1.7V时,VDDSDMMC不可以提前起来且必须小于VDD电压,否则的话会造成芯片的寿命问题,相反,芯片掉电时,VDDSDMMC在VDD小于1.7V后,VDDSDMMC电压必须小于VDD电压,否则也会造成芯片寿命问题。
同样对于VDDUSB的供电也一样的要求,VDDUSB可以独立供电,但必须使用3.0V至3.6V的电压供电,当VDD使用1.8V供电时,也需要注意上电时序问题,如下。当然,如果VDD跟VDDUSB、VDDSDMMC共用一个电压就不用考虑。
图6. STM32F7系列MCU的VDDUSB上电时序注意事项
接下来看VDDDSI、VCAPDSI、和VDD12DSI。VDDDSI是给MIPI D-PHY供电的稳压器供电的,规格书要求必须接到VDD上,按要求接即可,没啥解释的。VCAPDSI就是这个稳压器的输出,会输出一个1.2V的电压,规格书要求接到VDD12DSI上,并且要求在VDD12DSI上放置一个2.2uF的电容,如果设计里不需要用到MIPI接口,那么这个2.2uF放不放都无所谓。
如果用到MIPI接口,也需要注意对VSSDSI做隔离,毕竟是高速信号,VSSDSI是MIPI电路的GND信号。隔离方法有多种,可以用磁珠隔离,或者Layout单点接地隔离也可以的。
了解完这些电源信号,接下来就可以根据需求把电源接上,放上对应的去耦,官方提供了对应的去耦方案在规格书的第105页的Figure 24和Figure 25,如下。
图7. STM32F7系列MCU推荐去耦方案
图8. STM32F7系列MCU推荐去耦方案