在我们平时设计一个电子系统时,供电方案往往是最重要且最容易被忽视的环节。一个电路供电系统的好坏,直接影响了整个电路的性能,这些影响包括电路的驱动能力,温升,EMC等方面。而对于MCU电路来说,电源电路设计的缺陷,可能会引起程序跑飞,MCU损坏等后果,本文就针对MCU供电电路的设计分享一些经验。
对于一个MCU电路来说,其电源电路的需求主要来源于两个方面。
第一个方面为输入电源的参数,比如,当一个MCU电路电源的输入与其他电路系统的输入为同一个时,那么此时就需要考虑这个输入电源的电压,电流范围,假设这个电源输入是宽范围输入时,如输入范围为5V~12V,那么我们在选用电源芯片时也需要考虑这个电源芯片或者电路可以满足宽范围电压输入的要求。
考虑完电源输入的电压范围之后,还需要看一下,这个输入电源除了给MCU供电之外,还给其他哪些电路进行供电。如果输入MCU电源的电压还给其他的一些感性系统供电时,应考虑增加一些EMI电路(如电感,磁珠,电容)以消除这个感性系统带来的电压串扰。当然,这些措施的预防性能有限,最好的办法还是通过电源隔离和信号隔离来根除。
第二个方面需要考虑的是MCU电源电路的负载。由于MCU电源电路可能不仅仅只给MCU一个器件进行供电,因此需要估算一下这个电源电路负载的大致范围,有些MCU可能有不止一个电源,因此需要考虑每一路输出电源的电压,电压的上电顺序等,还需要考虑MCU电压的稳定程序,纹波等一系列的因素。
MCU电源电路的负载其实很好估算,我们可以轻松的从这个电源电路负载的每个数据手册中找出每个器件的最大功率,然后将这个电源后面器件的总功率加起来就是这个电源电路大致估算的设计功率。如下图所示,一个MCU电源电路需要分别给MCU,温湿度传感器,LCD,和5个LED灯供电,这些器件的电压都是3.3V的,而其最大工作电流很容易从数据手册上面得知,因此可以估算使用3.3V/800mA输出的MCU电源电路肯定可以满足设计需求。
MCU电源电压的稳定性一般常用的电源芯片都能满足,而纹波则可以使用输出电容进行滤除,另外,给MCU增加退耦电容,以及退耦电容的布局和Layout也是非常重要的一个措施,退耦电容布局和Layout不当,对于一些高频MCU,会出现一些意想不到的后果,这个内容我们以后可以专门讲一下高频电路的那些事。
这里还需要注意一点的是,电源稳定度高,并不代表电源的精度就高,所以如果你想尽可能地提高MCU内置ADC模拟参考电压的精度,那么对于ADREF这样子的电压,一定要用TL431之类的高精度电源参考电压芯片。
目前来说,对于MCU的电源解决方案主要分成三大类。
第一类即为我们最常见的使用LDO(低压差线性稳压器)或者线性稳压器来得到一个稳定的5V或者3.3V输出,然后供给MCU。这里我们常见到的LDO有AMS1117-3.3V,这个是专门用来产生一个3.3V电压的LDO芯片,还有我们之前常用的一代经典芯片7805,这时专门用来产生一个5V电压的线性稳压器芯片。
线性稳压器使用在其线性区域内运行的晶体管或 FET,从应用的输入电压中减去超额的电压,产生经过调节的输出电压。所谓压降电压,是指稳压器将输出电压维持在其额定值上下 100mV 之内所需的输入电压与输出电压差额的最小值。正输出电压的 LDO(低压降)稳压器通常使用功率晶体管(也称为传递设备)作为 PNP.这种晶体管允许饱和,所以稳压器可以有一个非常低的压降电压,通常为 200mV 左右;与之相比,使用 NPN 复合电源晶体管的传统线性稳压器的压降为 2V 左右。
上面的那段话其实不难理解,比如当一个线性稳压器电路输入电压为12V,输出电压为5V时,那么这个线性稳压器的输入与输出之前就有7V的压差,这个压差是线性稳压器通过调节内部的三极管的Vce电压来实现分压的(对应图中的VDO)。因此,对于一个线性稳压器来说,它的VDO控制就是三极管的线性放大区域,是一个非常稳定的电压控制环路,它最大的好处就是线性电路的波动比较小,因此可以很容易地得到一个稳定的输出电压。除了这个好处之外,还有一个好处就是线性稳压器组成的电源电路非常简单,只需要输入输出各加或者不加旁路电容即可正常工作。
除了上述两个好处之外,线性稳压器几乎就没有其他好处了,首先,线性稳压器对输入电压和输出电压之间的电压差值是很敏感的,在早期的LDO没被广泛使用时,线性稳压器需要的输入输出压差至少大于2V才能使电路正常工作。换句话说,如果你想得到一个3.3V的电压,那么输入电压至少要5.3V以上才能正常工作。而LDO的出现也只是将这个压差减小而已。第二点线性稳压电路的问题是,由于这个压差是被内部的三极管自身消耗掉的,而被三极管消耗的这些能量最终都是以热的形式释放掉,所以线性稳压器自身的发热也很严重,哪怕很轻的负载,你的手都能感觉到它的热量。而这也导致了另外一个问题,即线性稳压器的能量密度太低,哪怕TO-220这样封装的7805,其输出电流也才1A。
第二类就是现在非常流行的DC-DC芯片了。DC-DC芯片说到底,其内部就是一个开关电路,根据不同的拓扑BUCK,BOOST,BUCK-BOOST即可实现降压,升压,升压降压等电源转换。DC-DC芯片除了电压变换灵活以外还有一个非常优秀的性能,即功率密度很高,以我常用的MP2161芯片来说,SOT23封装(贴片三极管大小)的芯片就可以满足最大2A的电流输出,而且输出电压最低可以达到0.6V。
现在的绝大多数DC-DC芯片都有内置MOS,因此无需外扩任何开关器件,如MP2161,你只需外扩一个功率电感,两颗输出反馈电阻和两颗电容即可完成这个电源电路的设计。有些早期的DC-DC芯片可能需要外置一个功率二极管来完善其拓扑,不过这种元器件现在已经很少了。当然,如果你觉得这个2A电流还不够,你可以使用一个外部开关器件来扩充。
DC-DC芯片也存在一些问题,由于它是基于开关电源的芯片,因此如果布线不当,反而影响其输出电压的质量,甚至干扰MCU的正常工作,因此在使用的时候一定要仔细地阅读其数据手册,因为每个DC-DC的芯片手册上面都有推荐的PCB Layout。
第三种方案,我个人觉得是最好的,只不过价格有点令人担忧,这种方案就是使用第三方厂家的电源模块,你可以选择任何的电源模块,如单路输入,多电压输出,隔离电源模块,隔离稳压模块等,一般在做一些大型设备,高利润设备等控制电路板时,优先推荐大家使用这种方案。平时就算了,因为它的价格可能可以抵得上你一块廉价电路板和元器件的价格。