通过这个电源,我们就可以得到12V的电压了,然后我们可以通过线性电源,比如7805把这个电压降压到5V,然后在再通过AMS1117把5V电压降压到3.3V。这种方案适用于产品开发中,我们甚至可以自己开发一块反激电源放在我们的产品的板子上。因为实际的环境中,可能只有AC 220的电源。对于一些极端的情况,比如AC 220V不能够达到的地方,有的物联网产品甚至只能是太阳能供电,当然这个电源是另外一个方案了。
一般情况下开发板则不同,只是大家学习的工具,对吧。那么供电部分的方案,自然也是不同的。比如我们就可以从我们的笔记本或者台式机上的USB口上获取电源。这样我们就利用了电脑自己的电源模块,是吧。AC降压的部分是电脑自己完成的,我们这里的方案是站在它的基础上的。USB电源的输出电压是5V,一般情况下,这个5V电源的输出能力可以达到500mA左右,可见它的功率还是蛮大的。
上面我们只是分析了大体的情况,那么具体到我们这个开发板中,这些大体的方案合适么?我们下面来具体分析一下。
首先我们来看一下,我们的这个模组的供电要求,从下图可以看出这个模块要稳定工作,供电电流要大于500mA。但从这一个数据来看,我们就没有办法仅仅使用一个USB来供电,那样单片机有可能就不可以正常工作,我们这里说得是有可能呀,也不一定不能工作。但是从产品设计的角度来看,如果只用一个USB接口来供电,这样的设计是不稳妥的。
另外一个耗电较大的是继电器,我们这里的继电器选定的是SRA系列的,线圈的开通电压,我们可以选择12V。那么我们来看一下,这个继电器的线圈需要多大的电流。
从上图中可以看出来,这个电流要50mA,是吧。
我们下面来看一下CH340G的功耗情况。从下表可以看出来,它的功耗最大值是在20mA左右,这个器件待机状态的时候,功耗更低,只有0.2mA左右。
SHT20(温湿度检测芯片)和其他一些LED等的模块加起来,功耗应该不会超过10mA。这样算下来,这个开发板需要的总的供电能力,差不多在600mA左右。如果再留有一点余量的话,那么我们选用的反激电源适配器,它的输出能力差不多要在1A左右。
从上面情况来看,USB供电是肯定不合适的。我们这个开发板,不适合USB供电,只能是使用适配器从AC 220V上引电下来。有了12V电源以后,我们第一步要做的事情,就是把12V电压变成5V的,常用的器件就是LM7805。我们来看一下LM7805的输出能力,从下图中可以看出来,它差不多有1A的输出能力,是吧。这个能力是可以满足模组功耗需求的。但是我们可以计算一下它自身的功率。P = (12V – 5V)* 500mA = 3.5W,也就是说仅仅带载ESP-12F这个板子,就需要3.5W的功率。这个对LM7805的封装来说是不可以承受的。即使加上散热片,也难保散热片不烫手,这个功率太大了。那怎么办呢?我们这里只能选择能效比更好的电源方案,比如开关电源。我们可以选择一个buck降压方案。这个buck电路,可以直接从12V降压到3.3V,也可以从12V先降压到5V,然后再通过LDO模块把电压从5V降低到3.3V。这两个方案,我们可以都用一下,看一看哪个更合适。为什么一般情况下,单片机前端电源一般采用LDO(比如AMS1117等)呢?主要是LDO输出的电压精度比较高。还有一个,如果Buck电源坏掉了,buck上的高压信号,一般也不会直接伤到单片机,中间还有一个LDO电源起到了隔离作用。另外,Buck电路输出的电压文波率相对来说也比较大,一般在2%-5%左右,这个波动对单片机的工作也会有影响。但是呢,现在的单片机一般也是宽电压输入,就像我们这个ESP-12F,它的输入电压可以从3.0V-3.6V。Buck的文波率按理说应该是可以满足要求的。我们这里可以把两个方案都试一试,通过跳线帽或者0欧姆电阻的方式选择供电电源。一个是测试一个LDO电源(AMS1117)的发热量怎么样,再一个看看buck电源能不能满足单片机的需求。