个人成就
- 发布了43篇内容
- 获得了2次赞同
- 获得了5次收藏
个人简介
擅长领域
暂时没有设置哦~
-
ESP8266物联网开发板设计1
大家好,我是张飞实战电子张角老师!
通过这个电源,我们就可以得到12V的电压了,然后我们可以通过线性电源,比如7805把这个电压降压到5V,然后在再通过AMS1117把5V电压降压到3.3V。这种方案适用于产品开发中,我们甚至可以自己开发一块反激电源放在我们的产品的板子上。因为实际的环境中,可能只有AC 220的电源。对于一些极端的情况,比如AC 220V不能够达到的地方,有的物联网产品甚至只能是太阳能供电,当然这个电源是另外一个方案了。
一般情况下开发板则不同,只是大家学习的工具,对吧。那么供电部分的方案,自然也是不同的。比如我们就可以从我们的笔记本或者台式机上的USB口上获取电源。这样我们就利用了电脑自己的电源模块,是吧。AC降压的部分是电脑自己完成的,我们这里的方案是站在它的基础上的。USB电源的输出电压是5V,一般情况下,这个5V电源的输出能力可以达到500mA左右,可见它的功率还是蛮大的。
上面我们只是分析了大体的情况,那么具体到我们这个开发板中,这些大体的方案合适么?我们下面来具体分析一下。
首先我们来看一下,我们的这个模组的供电要求,从下图可以看出这个模块要稳定工作,供电电流要大于500mA。但从这一个数据来看,我们就没有办法仅仅使用一个USB来供电,那样单片机有可能就不可以正常工作,我们这里说得是有可能呀,也不一定不能工作。但是从产品设计的角度来看,如果只用一个USB接口来供电,这样的设计是不稳妥的。
我们今天使用ESP8266这款芯片设计一块物联网开发板,使用的模组是ESP-12F,这款模组我们在上篇文章已经给大家介绍过,生产厂家是深圳是安信可科技有限公司。我们这款开发板,只是使用这个模组内部的单片机ESP8266,实现的功能来说也相对较为简单,换句话说,也就是没有外挂单片机。
那么总体上要实现什么功能呢?
第一个要实现的功能是温湿度的采集,这个是物联网场景中最为常见的。远程而且在线的数据采集功能,能够为系统决策提供实时的决策依据。我们这里主要是以温湿度的采集以及往云端上传为例,给大家演示一下物联网开发板的流程是什么样子的。
第二个要实现的功能是远程控制继电器的开关。我们从物联网的数据终端获得了数据之后,自然需要根据数据做出决策。那么这个决策执行,一个最简单的示例就是继电器的开通和关断。我们可以通过继电器的开通和关断,来决定相应的模块是不是需要运行。
ESP-12F这个模组要想能够正常工作,首先就是要搭建一个单片机的最小系统。这个最小系统包括如下模块,比如电源模块,程序烧录模块,时钟模块,Reset模块,boot选择模块等等。只有这些模块工作正常了,ESP-12F内部的单片机才有可能工作起来。
我们下面分别来看一下,这些小模块用什么样的方案实现比较合适。
第一个是程序烧录模块,我们这里使用的是USB转串口,芯片是CH340G,这个是南京沁恒公司出品的,属于非常常用的芯片,性能稳定价格相对便宜。具体的电路设计也相对来说比较简单。大体的电路设计如下:
我们这里只是参考示意图,具体电路实现,我们后面再分析。
第二个是时钟模块,我们这个ESP-12F里面应该已经包含了时钟震荡电路,我们不用再外接震荡电路模块。从模组管脚功能的描述上看,ESP-12F也没有外部晶振的接口,那么我们可以断定这个模组已经自己搞定了震荡器部分,要么是单片机内部的RC震荡器,要么是模组封装的石英震荡器。后面有机会,我们再对这块进行分析。
Reset模块和BOOT模块按照芯片给出的说明来就可以了。RESET这个地方一般是低复位,意思也就是说这个管脚在低电平的时候,芯片内部执行复位操作。BOOT引脚,从上图也能看出,IO0为低的时候,单片机处于下载模式。如果要让单片机处于运行模式,这个引脚必须拉高或者悬空。那么我们进行电路设计的时候,按照芯片的说明操作就可以。
再一个就是电源模块,很显然ESP-12F这个模组要能够正常工作,它一定是需要电源的。那么这个电源电压是多少呢?我们来看一下ESP-12F的datasheet。
这张表里面,我们是不是可以看出来这个模组的供电电压是不是3.3V呀,Io口的最大电流驱动能力是12mA对吧。Vil和Vih表示输入低和高的电平值,从datasheet上可以看出来输入为低的时候,最低值是-0.3V,最大值是0.25倍的Vio;输入为高的时候,最低值是0.75倍的Vio,最大值是3.6V。Vol的最大值是0.1倍的Vio,也就是说作为输出且输出为低的时候,它的最大值0.1倍的Vio;Voh的最小值是0.8Vio,这句话的意思是,IO口作为输出,且输出为高的时候,它的最小值是0.8倍的Vio。了解了这些参数,可以对我们进行外围电路的设计起到指导作用。
那么这个3.3V的电压从哪里来最合适呢?我们这里有两条思路,一条思路是从AC 220V上通过反激电源降压到12V,然后再从12V降压到3.3V;另外一条思路是利用USB接线的5V电压,直接变换成3.3V。第一种方案,我们首先要买一个12V的电源适配器,如下图所示。
通过这个电源,我们就可以得到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电源能不能满足单片机的需求。
那么我们这里还需要一个5V到3.3V的电压变换,我们这里也选择最为常用的AMS1117。这个片子上面的功耗也是蛮大的,P = (5V – 3.3V)* 500mA = 0.85W。我们需要对这个片子的散热做一些特殊的处理,比如在地上需要大面积敷铜或者加散热片。我们这里AMS1117选择SOT223的封装,等板子搞好之后,实测一下温升能有多少。buck芯片我们采样SY8120 DCDC的片子,具体buck电路的设计,我们有机会展开来讲。
讲完了单片机的最小系统,我们看一看器件封装的一些问题。
对于各个器件原理图和PCB的封装,站在开发板这个需求程度上,我们可以直接采用立创上给出来的。但是如果实际做产品的时候,元器件pcb的封装,我们就要格外注意了。pcb的封装要和实际生产工艺匹配起来,这样才能最大程度上降低生产成本,进而能够降低产品总的成本。比如封装不能过大,否则可能就会有立碑现象;再比如,如果封装大小不合适,虚焊的可能性就会加大,进而产品的质量可能就会受到影响。做产品的问题,我们暂且不说,我们先来看一下,如何直接利用立创商城提供的封装。第一步,我们要先把这些封装导出来,我们这里以DHT11为例(目前这样使用有效,后续网站可能会改版,大家留意)。
比如我们这里首先选择直接使用厂家提供的封装,点击立即使用以后,就会出现schdoc和pcbdoc两个类型的文件。我们后面把可以把它导出来,变成AD软件支持的格式。这里说一下,我这里习惯使用AD软件,可能和一些同学的习惯不太一样。如果大家直接使用立创的画图软件,也就不需要导出来了。这个地方大家酌情使用。
这些文件导出来之后,我们就可以在AD软件里面生成相应的lib文件了,以便于我们在画原理图和PCB图的时候使用。
今天关于这个开发板的分享,就先到这里。我们下篇文章会继续探讨相关原理图模块的设计。
①基于ESP8266的STM32物联网开发板设计
https://blog.csdn.net/weixin_42107954/article/details/97494269
②物联网开发板-ESP8266 https://lceda.cn/jixin003/iot_board_esp12
③ ESP8266教程-技小新 https://www.yuque.com/lingyao/jing/ob5wia
④ ESP-12F 规格书
https://item.szlcsc.com/84052.html
⑤ SRA系列继电器说明书
https://item.szlcsc.com/61221.html
⑥ CH340C datasheet https://item.szlcsc.com/85852.html
⑦ LM7805 datasheet https://item.szlcsc.com/520584.html
-
讲透有史以来广受欢迎的运算放大器μA741(4)---输入阻抗及输入级差动放大
大家好,我是张飞实战电子张角老师!
我们来看下T1、T2这两个管子的作用,这两个管子主要是用来提高输入阻抗增益的。由于Q2本身的Ic电流很小(假定是20uA),我们假定VB和VC是相等的,那么T1和T2的Ic也是相同的,这个每个管子的Ic只有10uA。假定这个这两个管子每个管子的放大倍数是200,那么T1和T2这两个管子每个管子分配的Ib电流只有 10uA/200 = 0.05uA = 50nA。
那么对于输入信号而言,只有有500nA的通流能力,那么信号的输入就不会失真。当然这里只是估算,但是它从本质上说明了这个运放对输入信号的内阻基本上是没有要求的,不是说内阻一定要多小,需要多高的驱动能力,这样也就提高了这个运放的通用性。当然现在新型的晶体管运放,使用的是两级三极管去提高运放的输入阻抗,这样信号就更不容易失真。
再一个这个运放使用的是N管来提高输入阻抗的,那么这里就有一个问题,也就是如果N管是站在地上的。那么信号也就必须要具备驱动N管的能力,至少信号在A点处产生的电压值呀大于0.7V才行。这样其实也就是提高了对信号的要求,大家想一想,对于一个本来就很微弱的信号,再对它的电压幅值提要求,是不是有点不切实际。uA741为了解决这个问题,使用了一个什么方案呢?它是使用双电源供电来解决这个问题的,它给运放提供了正负两路电源,也就是说T1、T2这两个三极管它的E极电位其实并不是0V,而是负压,这样是不是就解决了输入信号电平电位的问题。但是这个动作又带来了新的问题,那就是必须得有负压电源,那么也就从另外一个方面增加了电路的成本。
目前较新的运放,对内阻的提高上,主要是使用双P管的方案。这样一方面提高了输入阻抗,另外一方面对放大信号的电压幅值没有什么要求,相当于对uA741这款运放的输入级进行了改进。
T5、T6这两个管子起到什么作用呢?我们再来回顾一下这个运放的工作过程,当IN-大于IN+的时候,T2的Ic电流是不是大于T1的Ic电流,那么自然T5的Ic电流大于T6的Ic电流。我们是T5、T6这两个管子,他们的基极电位是相同的,由于它们的Ic电流不同,所以它们的E极电位是不同的。由于T5的Ic大于T6的Ic,所以T5的Ve大于T6的Ve,所以Ibt5<Ibt6。大家注意一下T5和T6两个管子的电流状态,Ict6 < Ict5, 然而Ibt6>ibt5,那说明T5这个管子在往放大的状态移动,而T6这个管子在往饱和的方向移动。当IN-和IN+两个管子的压差达到一定程度的时候,T6这个管子也就达到深度饱和状态。所以说T5、T6这两个管子的存在提高了差分的增益,使得T5这个管子的Vc输出的电压更高。如果没有这两个管子,只有两个电阻,那么输入端的增益就要相对小不少,我们再从另外一个角度说明一下,T5本身的Rce也是一个可变电阻,它集电极到源之间的电流也就是Ic电流越大,那么也就是从源到T5集电极的内阻越小;反过来说,也就是T5的Rce变得越来越大,这样T5的Vc电压也就越来越大。从这个角度上也可以看出来T5、T6这两个管子的存在提高了输入级的放大增益。
T7这个管子的存在主要是增加对称性,减小运算放大器本身不对称带来的误差。这个我们下节课再分析。
-
讲透压敏电阻的工作原理、选型以及相关计算
大家好,我是张飞实战电子张角老师!
我们今天分享一下压敏电阻的选型以及相关计算的知识。
首先我们需要回答一个问题,为什么需要压敏电阻。压敏电阻,顾名思义,对电压很敏感的电阻;中文这个“敏感”对应到电路中,应该就是一个非线性的变化:当电压达到一定的数值的时候,器件的阻抗呈现出剧烈的变化,这个剧烈的变化应该是量级上的。我们之所以会需要这种特性的电阻,肯定是电气设备中会遇到这样的源,需要这样的响应;反过来说,如果没有这样的响应,电路中的其他相邻或者相关器件就会出问题。
大自然的起电方式,其实主要有两种,一个是感应起电,一种是摩擦起电。我们常用的水电、风电、火电等等,本质上属于感应起电,发电的过程本质上属于机械能通过电磁感应现象转化成电能的过程。这些电能经过升压之后,进行远距离传输,然后再经过降压,最后变成我们日常使用的220V的交流电。摩擦起电,我们比较熟悉的就是静电现象,以及雷电现象。静电,大家很多人肯定都有切实的感受,尤其是在冬天的时候。雷电,其实蕴含着非常巨大的能量,可是因为它的位置飘忽不定以及瞬间非常高的电能释放,人类到目前为止也没有办法驯服雷电,让它为人类所用。目前能做的,还是想办法避免它造成的灾害。
感应起电
静电
雷电
其实压敏电阻这个器件之所以被发明出来,就是为了在雷击的发生的时候,防护器件的。雷电的存在是不以人的意志为转移的,对于这个电源,我们利用不了它,但是总不能被其所害。由于雷电产生的高压高能量具有瞬间性,那么必然要求防护器件也具有这样的响应特性。压敏电阻也就应运而生了。
压敏电阻外观上,大体就是这个样子。它的内部结构是什么样子的呢?实际上压敏电阻是使用陶瓷工艺制作而成,它内部的微观结构中包含氧化锌的晶粒以及晶界。晶粒因为内部晶体分子排列非常整齐,所以电阻率很低;晶界则不然,它的电阻率却很高。相互接触的两个晶粒之间相当于形成了一个齐纳二极管的势垒,这个其实就是一个压敏单元。每个压敏单元的击穿电压差不多是在3.5V。压敏电阻的基体就是很多这样的单元进行串联和并联而成。串联的单元越多,它的击穿电压也就越高;并联的单元越多,它的通流量也就越大。压敏电压在工作的时候,它的每个单元都在承受浪涌电能量,而不像齐纳二极管那样,只有结区才承受电功率,这也就是压敏电阻能够承受大得多的浪涌能量的原因。
我们先来看一下压敏电阻的位置,一般在开关电源中,压敏电阻处在接线端子的后面,和LN之间的负载是并联的。
我们看一下雷击能量过来的时候,压敏电阻是如何实现对相关器件保护的。正常工作的时候,压敏电阻两端之间的阻抗是非常大的,可以近似地看成是开路的(实际上存在着非常微小的漏电流,一般10-20uA)。一旦雷击能量来了,会有瞬间高压加载压敏电阻上,这个时候压敏电阻就会被击穿,呈现出非常低的阻抗。这个内阻在雷电这个能量源的内阻Re面前,相对来说非常小,那么根据电阻分压的原理压敏电阻上的电压就会非常小。压敏电阻和后级负载是并联关系,因为压敏电阻相对负载电阻来说也非常小,所以大量能量都是从压敏电阻流过,被压敏电阻吸收了。通过这样的方式,就实现了对负载的保护。
讲完了压敏电阻的基本原理,我们来看一下压敏电阻该如何选型,既然要提到选型,肯定离不开压敏电阻的各种参数,只有深刻理解了这些参数,我们才能对压敏电阻的选型更加自如。我们先来看一下,常用的471KD10和471KD20这两款压敏电阻。
我们首先需要回答的是,这个命名是什么意思,一般情况下命名标记上往往会一个器件最关键的信息。这个名字可以分为两个部分,第一个部分是471K:471,表示压敏电压是47*10^1 = 470V; K表示精度误差在+/-10%左右。第二部分,D10(或者20),表示压敏电阻的直径是10mm还是20mm,从数据上来看,肯定直径越大,压敏电阻的个头越大。
下面,我们就从名字入手来解释压敏电阻的一些指标。第一个关键词就是压敏电压,那什么是压敏电压呢?压敏电压是指在压敏电阻上加上一个直流电压,如果流过压敏电阻的电流达到1mA,这个时候的直流电压就被称之为压敏电压,所以有时候压敏电压也用U1mA或者V1mA来表示。比如对于471KD10,这款压敏电阻,它的压敏电压就是470V。因为器件的一致性问题,或者说误差的存在,K级别的压敏电阻的压敏电压在423V(470V*0.9)到517V(470V*1.1)之间。
我们下面来看一下最大允许工作电压,这个指标的意思其实是压敏电阻能够长时间承受的最大电压,这个电压分为交流电压和直流电压。一般最大允许的交流电压是压敏电压的0.64倍,最大允许的直流电压是压敏电压U1mA的0.82倍。
最大钳位电压也就是我们说的残压或者说最大限制电压,是指给压敏电阻施加规定的8/20us波冲击电流时它两端的电压。这个8/20us冲击电流是什么意思呢?也就是8us中达到峰值电流的90%,20us后电流降低到峰值电流的50%,这个冲击电流是模仿雷电的冲击电流来设计的。从这个电流的波形上就可以看出,压敏电阻其实并不需要太快的响应速度,这个器件更重要的使命是能够能量吸收掉,当然这个都是相对于TVS二极管而言的。我们选择压敏电阻的时候,它的残压一定要小于被保护电器的耐压水平,否则就达不到保护的目的。
我们这里要注意呀,有些产品的datasheet中,在这一栏里面有一个和钳位电压相对应的电流值。其实这个电流值的意义不大,我们只需要关注最大钳位电压这个值。
最大通流量,是指最大脉冲电流的峰值是指环境温度为25°情况下,对于规定的冲击电流波形和规定的冲击电路次数而言,压敏电压变化不超过+/-10%的最大脉冲电流。大家可以看一下,471KD10的最大通流量可以达到2500A,这个电流是超级大的。用这么大的电流去冲击压敏电阻的话,会对压敏电阻这个器件本身造成伤害的。基本上打个10来次,压敏电阻就损坏掉了。我们选择压敏电阻的时候,器件本身所能够承受的最大通流量一定要大于实际工作中所承受的通流量。
我们这里需要注意了,在datasheet里面,最大限制电压这个值是在一定的电流值下测出来的,比如我们这个471KD10就是在25A的时候,最大限制电压为775V。实际进行EMC测试的时候,冲击电流肯定是大于这个的,比如我们进行4000V雷击测试的时候,考虑走线上的电阻、压敏本身的电阻、NTC的电阻,差不多有5R左右,那么冲击电流就有800A左右。那么此时的限制电压或者说钳位电压是多少呢?实际上压敏电阻通流越大,肯定限制电压也就越高,但是这个升高的幅值没有那么大,也就是说电流越大,压敏电阻的阻抗越低。U = I*R,有增长,但是增长的速度是放缓的。25A的时候,最大限制电压是775V,压敏电阻的等效内阻差不多是31R;我们假定800A的时候,它的限制电压是1500V,此时压敏电阻的等效内阻是1.875R,为什么这个地方是假定呢,因为实际测试的时候,很少会去测这个值。大家可以看到一半压敏电阻的后面,还有X电容、Y电容等吸收措施,这个电压其实是上不去的。实际测试的时候,比如我们做8000V的雷击实验,实测X电容上端的电压大约在500V左右,大概就是这个样子。
讲完了这个,后面还有一个最大能量值,其实这个最大能量值也是和压敏电阻的直径强相关的。我们说雷击的电压虽然高,但是毕竟时间短暂是吧,所以能量总值不是很大是吧。我们这里可以来算一下,比如4000V的雷击,回路的总阻抗还是以5R来算,那电流值差不多是800A,我们说雷击的持续时间一般是20us是吧。那么我们来算一下,这么短的时间内,雷击总共释放了多少能量呢?
E = U * I * t = 4000V * 800A * 20S ÷ 1000000 = 64J
我们这里采用了估算的方式是吧,实际上电流不是一直都是800A的,具体波形上面我们也画出来的,那这样算的话,实际雷电释放的能量差不多只有30J左右。这里面有不少能量被电线、保险丝、NTC电阻吸收掉了,实际上压敏电阻吸收的能量还要少一些。
我们来看一下,最后一个指标,压敏电阻的额定功率。471KD10的额定功率是不是只有0.4W呀,也就是说压敏电阻不能持续通过很小的电流是吧。这个从它的封装大小也能看出来,实际上压敏电阻不工作(没有雷击)的时候,它的漏电流是很小的,一般小于20uA,所以正常工作的时候,这个封装功率都是可以满足要求的。但是供电电压是不稳定的,那么流过压敏电阻的电流值也会变大,但是长期工作下,471KD10所能承受的最大功率也就是0.4W。
讲完了压敏电阻的各个参数,我们具体选型的时候,最主要的两个指标。一个就是压敏电压,一个就是通流量。我们国内市电的电压是220V,但是这个电压是有波动的,尤其是在供电质量相对较差的农村。我们假定正常情况下,电压有20%的波动,那么市电的有效值也就变成了264V。我们根据有效值和峰值的关系,可以推算出来市电的峰值电压在373V。这个373V也是一个大体的估计值,实际上峰值电压可能比这个还高。我们选择的471KD10这个压敏电阻,我们计算下来它的开启电压是在423V到517V之间,是吧。但是我们说这个+/- 10%其实是正态分布的,也就是说存在极个别的压敏电阻开启开启电压小于423V的。综合考虑电网的不稳定性和压敏电阻精度的问题,选择开启电压大于470V是相对合适的。最大通流量这个指标,根据刚才我们的算法,大体评估一下就可以了,这里很难有精确的计算。实际进行EMC测试的时候,如果不能通过,就换大一号的。如果空间不够,我们还可以选择加强型的。
如果我们想降低残留电压,可以使用压敏电阻和气体放电管串联的办法,如下图所示。
上图的方案采用的是391压敏电阻+600V的气体放电管,因为气体放电管导通之后残余电压非常低,压敏电阻这里选择391的,动作之后它的残余电压相比471也要低不少。391的钳位电压是650V左右,471的钳位电压是775V。R1、R2的作用是为了减少气体放电管上的电压,因为陶瓷放电管电容只有几个pF,但是压敏电阻有几百个pF,根据电容分压,陶瓷放电管上的电压基本就等于电源电压。
讲完压敏的好处,我们来看一看压敏电阻的缺点。我们前面提到过,压敏电阻主要是用来防止雷击的,雷击的能量其实是us级别的,实际上压敏电阻的反映时间差不多是ns级别。另外它的个头也相对较大,那么要实现对芯片器件更为精细的保护,这个时候压敏电阻就有点吃力了。这个时候,一般使用TVS二极管,它的反应时间更为迅速,响应时间为ps级别的,而且它的体积也相对比较小,比如0603或者0402封装。当然TVS二极管不能流过较大能量,所以它一般处于防护的最后级。
我们关于压敏电阻的分享,就先到这里。
-
RISC-V鸿蒙系统开发板SPI通信模块调试2(项目连载5)
上篇文章中,我们提到了使用读取SPI Flash ID这个程序段,来测试SPI的通信是不是成功。
目前程序运行的结果,是无法正确读取Flash 芯片的ID的。那问题出现在哪里呢?如何去分析这个问题,或者说去尝试解决这个问题呢?
在进行波形分析之前,我们首先要做的就是查看一下芯片有没有虚焊,还有选用的SPI Flash芯片是不是我们需要的。
经过仔细比对,确认我们购买的W25Q128芯片,就是睿思芯科公司提供的例程所使用的芯片。那么在芯片的选型上应该没有问题。
那芯片有没有虚焊呢?这里总共涉及到3块芯片,一个是我们的单片机,一个1.8V转3.3V的电平转换芯片,另外一个就是SPI Flash芯片。因为单片机引脚之间距离只有0.2mm,芯片重新焊接的难度太大。所以,我这边就重新把电平转换芯片和SPI Flash芯片吹下来,重新焊接了一次。确保电路的焊接是没有问题的。
芯片焊接的重新焊接的过程中,发生了一件非常可怕的事情,电平转化芯片TXB0104的焊盘被整体损坏掉了。如果不是有同事帮忙调试焊接,这块板子有可能就废掉了。
如果是个别焊盘损坏掉,还可以飞线进行操作,现在整排焊盘都掉了,该怎么办呢?
实际调试的过程中,对焊盘的修复,我们使用的办法是把损坏掉的焊盘附近的铜线上过油刮掉,使用裸露的铜线作为新“焊盘”进行焊接。然后,再使用非常细小的铜丝把芯片的引脚和板子上的铜线连接起来。如下所示,这个操作过程比较麻烦,需要有娴熟的焊接功底才行。
但是现在有一个重要的事情需要总结,为什么焊接的过程中,自己会把这个电平转换芯片的焊盘一整排全部搞掉?自己确实没有在给焊盘加锡的过程中,使用烙铁头去剐蹭焊接。最后的总结是,在给焊盘加锡的过程中,烙铁头的温度过高,同时由于烙铁头使用的时间太长了之后,氧化严重。上面两个因素导致了烙铁头上的锡非常粘稠,同时温度非常高。那么在加锡的过程中,很容易就会把焊盘带掉。而且因为是加锡的过程,会同时对很多焊盘进行操作,所以一掉就是一整排!!!
这块开发板,在实际焊接芯片引脚的过程中,我们设定的烙铁温度,高达450度,如下图所示。
我们为什么会使用到这么高温度的呢?主要是我们这个板子是四层板,TOP层和BOTTOM层之间的两层,进行了大量的敷铜。导致散热非常快。把烙铁头的温度调高,可以增加焊锡的流动性。如果按照平时300-350度左右的温度来焊板子,我们所熟悉的拖锡动作是没有办法实现的,锡一下子就凉掉了。
但是如果有芯片压在焊盘上,使用这么高的温度进行拖锡,并不会造成焊盘的脱落!
在这块,我们调试的经验就是,给电路板的焊盘进行加锡的过程中,一定不能把温度调节得太高,否则会造成一排焊盘脱落的人间悲剧!这种情况下,大概率,这块板子就废掉了。
上面也提到了,电平转换芯片TXB0104和SPI Flash重新焊接之后,SPI通信依然没有成功。那说明大概率并不是芯片虚焊的问题。那个单片机的引脚,我们目前只能假设它的焊接是完全成功的(太难焊了,拆下重焊成本太高)。那么接下来,只能是先对波形详细分析了。
首先,我们需要做的就是去查看CLK这个引脚的波形,看看CLK的波形输出是不是合理的。SPI,需要在一定的频率范围内才能正常工作。如果频率太高的话,MOSI和MISO这两个接口的波形,可能还没有达到芯片规定的“高”或者“低”,时钟沿就进行了下一次的跳变,这种情况下,很显然单片机和SPI Flash之间是无法进行通信的。
先给大家看一下,我这边第一次抓到的CLK引脚的波形。
大家看到这个波形的时候,是不是觉得有点奇怪。在这个波形中,猛一看CLK的频率信号只有60Hz左右。而实际上,我们的CLK的频率至少要是几Mhz呀。那这个频率是怎么回事呢?
后来分析得到结论,上面图中的高脉冲应该是程序的延时之间的间隔,也就是两个测试程序之间的时间间隔,或者是两次发送数据之间的间隔。真正的CLK波形,需要使用单片机的触发功能,去捕获相应的波形。所谓的触发功能,就是可以设定一个比较值,如果输出信号的波形大于了这个值,示波器就会显示出来这个信号的波形。这里有一个信号比较的过程存在。
通过示波器,捕获出来真正的CLK信号之后,它的波形是如下形状的。
大家看一下,这个波形的频率高达12Mhz。这个12Mhz是怎么来的呢,我们前面提到了这个单片机的时钟晶振是24Mhz,那么这个SPI的通信速率12Mhz应该是时钟信号24Mhz二分频之后得到的。现在,我们就有一个怀疑,SPI通信的失败是不是由于这么高频的通信速率导致的呢?
还有一个问题,大家有没有发现这个CLK的波形,它的最小值并没有到参考地。同时它的最大幅值,我们使用示波器测量之后,只有2.2V。可是SPI这边的工作电压是3.3V呀,而且我们的电平转换芯片输出的电压也是3.3V。那是不是这个CLK信号,本身就是有问题呀?或者说在这个电压幅值区间,Flash芯片能不能识别CLK信号呢?
我们这片文章,就先分析到这里。下一篇,我们继续SPI通信的调试。
-
ESP8266物联网开发板设计4 ---继电器和温湿度检测模块的设计
大家好,我们今天继续物联网开发板硬件电路设计相关的探讨。
电源和单片机最小外围电路都设计完成了以后,按照我们的规划,剩下还有两个模块需要去考虑,一个是继电器控制电路,一个是温湿度检测模块。
继电器是一个开关型器件,而且是一个隔离型的开关器件。开关器件相对来说比较好理解,我们可以通过控制触点的开通和管断,来实现开关的效果。就比如继电器开通的时候,相应的模块就可以工作了,因为通上电了么;继电器关断的时候,那么模块就不工作了。因为我们的开发板是联网的,我们是不是就可以实现远程对设备进行操作呀。
为什么说继电器是隔离型的开关器件呢?一个最直观的感受,就是原副边可以不站在一个地上是吧,也就是说原副边可以没有任何电气上的连接。继电器工作原理,大家估计都比较熟悉了。原边线圈通上电之后,就变成了电磁铁。既然是电磁铁,那么就会有吸引力,有了吸引力,弹片就会被吸附。按照下面的示意图来看,受控电气就会开始工作。
大家看一下,原边和副边之间是不是完全没有电气上的连接。两边发生关系的渠道其实就是电磁力。这个东西有点像光耦,光耦的原副边发生关系是原边的光信号,是吧。继电器和光偶一个比较大的区别是继电器的副边可以通大电流,因为整体的阻抗小,所以一般用于大功率器件。但是光耦就不同了,它本质上还是流控型的半导体器件,所以通不了大功率,一般是当做开关信号来使用。
明白了继电器的工作原理,我们来选择一个常用的继电器,看看该如何设计它的驱动电路。我们看一款松乐的继电器的线圈规格,它的线圈功耗有两种,一个是0.6W,一个是0.8W。
相比之下,0.8W的吸附力相对强一些,继电器的工作也会更稳定。为什么这么说呢?大家看一下,如果继电器线圈使用得是+5V电压驱动,0.6W的时候,流过线圈的电流是120mA,但是0.8W的时候,这个电路有160mA。流过线圈的电流大,电磁铁的吸附力也就更强;电磁铁的吸附力更强,接触电阻也就更小,副边通大电流的时候就更加稳定。
我们这里以0.6W,12V线圈来举例,这个时候,流过线圈的电流是不是有50mA。那么继电器的驱动电路该如何设计呢?首先这个肯定是一个开关,所谓的开关就是导通的时候阻抗无穷小,断开的时候阻抗无穷大。再一个这个开关应该是一个受控开关,而且受控信号应该是从单片机发出来的。单片机发出来的信号肯定是非常微弱的。那么结合上述两点,这个开关应该是一个电子开关。我们熟悉的电子开关,主要有两个,一个是三极管,一个是MOS管。三极管和MOS管的一个主要区别是MOS管导通的Rdson更低,可以通过更大的电流。但是整体上相对来说,价格更高一些。我们这里使用三极管就够了,一般三极管Ice可以轻松达到100mA。三级饱和导通的时候,Vce是0.3V,这样三极管的功耗才有0.03W,SOT23封装的三极管可以轻松搞定。
思路理顺了之后,我们来看一下驱动电路是如何进行设计的。
T1这个三极管就是我们刚才提到的开关管,M点连接到单片机的引脚,当M点的电位为高的时候,三极管T1就开通了,饱和导通的时候T1的Rce很小,那么从+12V这条回路的内阻完全有继电器来决定,从规格书上可以看出来,这个内阻在240R,那么流过继电器的电流是12V/240R = 50mA,也就达到了我们的设计目的。D4这个管子起到什么作用呢?它主要是续流的时候,起作用。继电器在关断的时候,内部的线圈必须有续流回路。如果没有续流回路,就会产生严重的dv/dt,也就是线圈两端会产生尖峰电压,可能就会把三极管的CE端击穿。整体上也就是说,电感的能量是以电流来维持的,电流是必须要有回路才能存在。不管怎么说,能量都是不可以突变的。我们就得想办法给继电器的电感提供一个续流回路。最上面的两个电容,大电容主要是稳压的作用,相等于能量资源池,进一步降低了电源端的阻抗;小电容,主要是滤波作用。这个是电容的基本工作原理。
分析完了继电器的驱动电路,我们来看一下温湿度检测的电路设计,温湿度检测这块,我们使用的是SHT20这块芯片,这个芯片大概的样子如下图所示。
这个芯片内部有一个I2C的通信模块,单片机和这个芯片之间可以通过I2C协议进行通信。关于I2C通信的协议,大家可以自己去搜索一下,它就是一个同步通信协议,和SPI类似。只不过它的寻址是靠地址码来实现的,SPI通信模块,则是通过片选线来实现的。具体指令类型,可以参见它的datasheet说明。
如果我们自己用GPIO口来模拟I2C通信时序,一定要严格按照它的通信要求来,这里一个是命令格式,一个是通信速率相关的设定,比如通信的频率最高是400Khz,SCL和SDA的高是多长时间等等,这些都要符合规定,这样才能通信成功。
我们以湿度测量来举例,看看它的通信过程是一个什么样子的。SCL时钟信号时钟由主机控制,SDA绿实线为主机发送数据,SDA绿虚线为从机发送数据。具体的操作说明,可以从截图中就看出来,我这里就不再进一步解释了。
第一步,发送湿度测量指令。
第二步,读取测量到的温湿度数据。
因为这个模块完全是数字接口,内部的温度检测部分的模拟电路,我们也不用管,所以实现起来相对比较简单。我们又不需要进行芯片设计,只是去使用它,所以考虑问题也不需要那么复杂。但是I2C协议的实现是建立在开关器件是开漏输出的前提下的,所以SCL和SDA这两条线都需要上拉电阻。
关于物联网开发板原理图的设计,我们就先到这里。
