发帖数

43

原创数

43

关注者

16

阅读数

9333

点赞数

2

张角

  • 对RC电路的直观理解

    大家好!我是张飞实战电子张角老师!今天给大家分享对RC电路的直观理解。

    RC电路是较为常见的一种组合电路,在电路设计的过程中,经常用到。目前网上有各种各样RC的资料,但是给RC添加正弦激励实测的波形,其实很难找;能够同时把电容和电阻上的电压放在一起的波形就更少。没有这些波形,其实我们对RC电路就缺少直观的认识。

    本文将站在实测波形的基础上,给大家分析RC电路的正弦波响应,争取给大家带来直觉和感官上的理解。关于RC电路频率响应推导的文章,大家自行百度就好了。

    首先给出,我们实测电路的原理图。大家也看到了这个原理图,其实没有什么稀奇。


    图片4.jpg

    下图蓝色的部分,是我们输入的正弦信号,也就是Ui;黄色部分,是电容上的电源,也就是原理图中的Uo

    图片5.jpg

    从这个波形图中,我们首先可以看出电容电压的相位肯定是滞后于信号源的:①在一个周期内,输入信号Ui领先输出信号Uo达到峰值;②从波形图来看,即使是在启动的第一个周期中,两个信号的相位差和稳态的时候也是一致的。另外,大家可以看到明显的幅值衰减,这个其实就是滤波的效果。随着正弦波信号频率不断增加,当Uo的峰值达到Ui峰值的0.707倍的时候,正弦波的频率就是截止频率。

    图片6.jpg

    我们下面来看第二幅图,图中紫色部分的波形是输入电压波形和输出电压波形相减的结果,实际上这个电压波形是不是就是电阻上的电压呀(一般的示波器里面都有不同通道信号幅值相减的功能)。那么从图上,我们是不是直觉上得出来如下的结论:①电阻上的电压相位是领先于信号电压相位的;②电阻上电压的相位是领先于电容上电压相位的。其实第二个很容易理解,对于电容来说,i=c*du/dt,也就是说电容的电流是电压的微分。微分就意味着相位超前。如果我们把这个超前相位角具体化的话,那就是90度。因为本文不涉及公式推导,其实这就是一个复数旋转的计算,但是大家可以从图形上是不是很直观的看出来紫色和黄色的波形,相位角相差就是90°。

    那么如果我们给RC电路加上一个方波信号呢?下图中的方波信号,是一个高频的方波,

    图片7.jpg

    占空比是50%。大家可以看一下,因为方波的周期太短了,如果大家熟悉电容充放电公式的话,电容的电压一定会充到一个相对高的值以后,再一个周期内充电升高的电压才会等于放电放掉的电压。因为在电容电压比较低的时候,电容充电的速度是比较快的;而放电速度则相对较慢。随着电容电压的提高,充电速度则不断降低,但是放电的速度则不断加快,那么当电容达到某一个电压幅值的时候,充电和放电的时间正好相等。

    从上面这个图可以看出来,高频的交流信号肯定是被滤波了。大家还可以实测下,频率越高,输出的三角波峰峰值之间相差也就越小。

    这个过程还有一个额外的收获,那就是电容的直流电压分量。这个直流电压分量理想情况下,只和方波的占空比有关系。不知道大家有没有联想到buck电路的占空比,其实这里思路是一样的:buck电路输出的直流电压和占空比有关系,交流成分被LC滤波器给滤掉了。LC滤波器,一方面滤波能力比较强,再一个能量损失也小,所以buck电路不使用RC滤波器,而是使用LC滤波器。


    收藏 0 回复 0 浏览 196
  • ESP8266物联网开发板设计2

    大家好,我们今天继续物联网开发板的原理图设计部分的探讨。

    上篇文章,我们着重探讨了电源部分的工作过程,整体上确定了“反激”+  Buck + LDO三种电源配合的方式。反激部分,其实就是我们买的适配器,这部分我们已经确定通过外购的方式进行。LDO这个地方,使用的是AMS1117的方案,它主要的任务是实现5V3.3V的降压。Buck则是实现电压从12V降低到5V的任务。

    大家可能在其他地方也见到过,使用LDO的方案,把电压从12V降低到5V或者3.3V。使用这种方案有一个前提条件,那就是负载不能太重,也就是负载电流不能太大。如果负载电流太大,LDO DCDC的芯片就会发热比较严重。因为LDO这个模块的工作原理,它还是利用半导体器件(比如下图中的T4)的非线性阻抗(Rce))来降压的。压差越大,电流越大,那么LDO上面所消耗的功率也就越高。所以对大电流、高压差的情况,LDO就不太适合了。

    image.png

    那么我们必须采用一种内阻更低的能量传递方式,大家比较熟悉的就是开关电源了。降压开关电源比较常用的拓扑结构就是buck。它的原理,是使用储能器件(电容、电感)代替了耗能器件(电阻)进行能量传递,所以它的能效比非常高。另外,使用开关的开通和管断来调节能量传递的过程,实现了负载动态调节和宽电压输入,比如如果负载比较重,那么开关开通的时间就长一些,关闭的时间就短一些;如果负载毕竟轻,开关开通的时间就短一些,关闭的时间就长一些。

    我们这个开发板的buck电路是使用DCDC的芯片来做的,这样可以做到板子的体积比较小,更加实用化。如果大家想彻底搞明白buck电路的工作原理,还是得想办法自己去搭建分立器件的电源转换电路,这样才能理解得更加深刻一些。如下图所示,我们这个buck电路使用的芯片是SY8120,开关控制的思路都被封装在器件内部了。

    image.png

    如果大家一下子搞不明白这个芯片的工作原理,可以后面找时间慢慢学习。我这里需要强调的是,对于开关电源来说,开发板布局非常重要的。因为开关信号是一个阶跃信号,它可以通过展开成一系列高频的傅里叶级数叠加,也就是展开成各个频率的信号。但是呢,我们需要的其实就是基波信号,其他高频的东西对于我们来说都是干扰。那么我们在布局的时候,就要尽可能减少这些高频信号的对外部的影响,尤其是Id部分,所以Id回路要尽可能的小,一个是减少环形天线对外辐射的影响,一个减小环路上走线寄生电感带来的影响。再一个,Buck电源输出的+5V的地,一定要单点接地,因为这个地相对来说比较脏,我们要通过单点接地的方式来降低它对其他器件的影响。另外在布局的时候,我们尽可能让ESP-12F的天线部分远离buck电路,进一步降buck Id主回路的影响,下图是SY8120 datasheet中给出来的布局参考,大家可以观察一下,IN ---> LX --->L ---> Cout ---> GND 这条线,其实回路已经尽可能的短了。虽然FB引脚也是一个高频回路,但是它的电流不大,相对来说没有那么重要,所以把它放在了相对次要的位置。大家注意呀,这里只是相对而言的。

    image.png

    最小系统中的复位电路,我们前面也提到了。那么我们使用的ESP8266这款单片机的复位过程具体是怎样的呢?我们来看一下datasheet相关的说明:

    image.png

    这里只是说外面加一个RC电路就好了,同时对走线提出了一定的要求,并没有讲清楚单片机是如何实现复位的。其实我们只要按照要求做,就可以了。但是我们还是要想办法尽可能对复位电路加深一些理解。我们可以参考STM32F030系列单片机的复位电路进行对比理解。

    大家看一下下面两幅图,这两幅图说明是单片机上电时的复位过程。

    image.png

    image.png

    大家看一下,Reset信号的波形,上电的时候,Reset保持为低时间可以分为两段。第一段时间,是VCC电位上电到POR电位的时间,第二段时间是Reset temporization的时间。第一段时间相对好理解,只有电压稳定了,单片机才能工作么。第二段时间Reset temporization这段时间大部分的时间应该是晶振起振的时间,还有其他器件reset复位的时间。我们做过一个Reset的测试,从上电开始到一个管脚输出高电平(程序第一行就是这个)的时间,在STM32 F030中,这个时间是2ms左右。具体ESP8266这个片子的上电复位是不是这么一个过程,我想大概是吧。目前还没有找到更多的材料支撑。

    我们下面看一下STM32F030单片机的按键复位的说明。

    image.png

    image.png

    大家可以看一下,产品文档这里并没有对按键复位的时间进行说明,只是说电压要下降到一定的程度才行,比如电压要降低到0.8V。那么这种情况下,我们电路设计的那个RC,其实只是起到了一个滤波作用,对不对,防止外界的干扰导致单片机复位。大家看看,这个作用和ESP8266对外界阻容电路的描述是不是一样的。所以我推测ESP8266的复位过程和STM32F030差不多(这里不打包票),大家如果能有更详细的资料,可以再深入研究下。

    image.png

    具体到外界阻容电路中RC的取值,我们一般是取值R=10KC=104。从上面的分析了来看,这里去其他值应该也没有什么问题,大家可以根据自己的实际情况(比如BOM表器件种类不要太多)进行选取。

    下面我们来看一下晶振是如何起振的。因为模组已经把晶振封装到内部去了,我们不用去操心晶振部分电路的设计。但是其实晶振电路的设计非常关键,晶振毕竟是单片机的心跳呀。没有心跳信号,单片机如何工作。另外一个,我们的USB转串口电路中也用到了晶振电路部分的设计,所以这里我还是打算花一些时间把晶振的工作原理和一些设计的要点给大家讲清楚。

    image.png

    image.png

    如上图所示,这个铁盖子下面其实是集成了不少东西的,其中就包括了一个26Mhz的晶振。只不过因为已经封装过了,我们看不到而已,就像我们前面提到的一样,看不到不代表不存在,是吧,呵呵。受限于篇幅的原因,这篇文章就先到这里。下篇文章,我们重点分析晶振的起振过程还有继电器、温度传感器等外设电路的设计。

     

    ①无源晶振起振条件及其工作原理 http://m.elecfans.com/article/582154.html

    51单片机晶振电路原理是什么  

    https://www.zhihu.com/question/30930577/answer/55822425

    ③ 三点式LC正弦波震荡电路详解

    https://blog.csdn.net/weixin_42415539/article/details/88540709

    ④电容三点式震荡电路波形问题

    http://bbs.eeworld.com.cn/thread-1090538-1-1.html#pid2904297

    ⑤三点式电容震荡电路的工作原理 https://zhuanlan.zhihu.com/p/354627295

    ⑥单片机上电复位时间 https://blog.csdn.net/zyboy2000/article/details/4673955

    ESP8266文档中心 https://docs.ai-thinker.com/esp8266/docs


    收藏 0 回复 0 浏览 186
  • ESP8266物联网开发板设计1

        大家好,我是张飞实战电子张角老师!

    通过这个电源,我们就可以得到12V的电压了,然后我们可以通过线性电源,比如7805把这个电压降压到5V,然后在再通过AMS11175V电压降压到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,这个是南京沁恒公司出品的,属于非常常用的芯片,性能稳定价格相对便宜。具体的电路设计也相对来说比较简单。大体的电路设计如下:

    image.png

    我们这里只是参考示意图,具体电路实现,我们后面再分析。

    第二个是时钟模块,我们这个ESP-12F里面应该已经包含了时钟震荡电路,我们不用再外接震荡电路模块。从模组管脚功能的描述上看,ESP-12F也没有外部晶振的接口,那么我们可以断定这个模组已经自己搞定了震荡器部分,要么是单片机内部的RC震荡器,要么是模组封装的石英震荡器。后面有机会,我们再对这块进行分析。

    image.png

    image.png

    Reset模块和BOOT模块按照芯片给出的说明来就可以了。RESET这个地方一般是低复位,意思也就是说这个管脚在低电平的时候,芯片内部执行复位操作。BOOT引脚,从上图也能看出,IO0为低的时候,单片机处于下载模式。如果要让单片机处于运行模式,这个引脚必须拉高或者悬空。那么我们进行电路设计的时候,按照芯片的说明操作就可以。

    再一个就是电源模块,很显然ESP-12F这个模组要能够正常工作,它一定是需要电源的。那么这个电源电压是多少呢?我们来看一下ESP-12Fdatasheet

    image.png

    这张表里面,我们是不是可以看出来这个模组的供电电压是不是3.3V呀,Io口的最大电流驱动能力是12mA对吧。VilVih表示输入低和高的电平值,从datasheet上可以看出来输入为低的时候,最低值是-0.3V,最大值是0.25倍的Vio;输入为高的时候,最低值是0.75倍的Vio,最大值是3.6VVol的最大值是0.1倍的Vio,也就是说作为输出且输出为低的时候,它的最大值0.1倍的VioVoh的最小值是0.8Vio,这句话的意思是,IO口作为输出,且输出为高的时候,它的最小值是0.8倍的Vio。了解了这些参数,可以对我们进行外围电路的设计起到指导作用。

    那么这个3.3V的电压从哪里来最合适呢?我们这里有两条思路,一条思路是从AC 220V上通过反激电源降压到12V,然后再从12V降压到3.3V;另外一条思路是利用USB接线的5V电压,直接变换成3.3V。第一种方案,我们首先要买一个12V的电源适配器,如下图所示。

    image.pngimage.png

    通过这个电源,我们就可以得到12V的电压了,然后我们可以通过线性电源,比如7805把这个电压降压到5V,然后在再通过AMS11175V电压降压到3.3V。这种方案适用于产品开发中,我们甚至可以自己开发一块反激电源放在我们的产品的板子上。因为实际的环境中,可能只有AC 220的电源。对于一些极端的情况,比如AC 220V不能够达到的地方,有的物联网产品甚至只能是太阳能供电,当然这个电源是另外一个方案了。

    一般情况下开发板则不同,只是大家学习的工具,对吧。那么供电部分的方案,自然也是不同的。比如我们就可以从我们的笔记本或者台式机上的USB口上获取电源。这样我们就利用了电脑自己的电源模块,是吧。AC降压的部分是电脑自己完成的,我们这里的方案是站在它的基础上的。USB电源的输出电压是5V,一般情况下,这个5V电源的输出能力可以达到500mA左右,可见它的功率还是蛮大的。

    上面我们只是分析了大体的情况,那么具体到我们这个开发板中,这些大体的方案合适么?我们下面来具体分析一下。

    首先我们来看一下,我们的这个模组的供电要求,从下图可以看出这个模块要稳定工作,供电电流要大于500mA。但从这一个数据来看,我们就没有办法仅仅使用一个USB来供电,那样单片机有可能就不可以正常工作,我们这里说得是有可能呀,也不一定不能工作。但是从产品设计的角度来看,如果只用一个USB接口来供电,这样的设计是不稳妥的。

    image.png

    另外一个耗电较大的是继电器,我们这里的继电器选定的是SRA系列的,线圈的开通电压,我们可以选择12V。那么我们来看一下,这个继电器的线圈需要多大的电流。

    image.png

    从上图中可以看出来,这个电流要50mA,是吧。

    我们下面来看一下CH340G的功耗情况。从下表可以看出来,它的功耗最大值是在20mA左右,这个器件待机状态的时候,功耗更低,只有0.2mA左右。

    image.png

    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.6VBuck的文波率按理说应该是可以满足要求的。我们这里可以把两个方案都试一试,通过跳线帽或者0欧姆电阻的方式选择供电电源。一个是测试一个LDO电源(AMS1117)的发热量怎么样,再一个看看buck电源能不能满足单片机的需求。

    image.png

    那么我们这里还需要一个5V3.3V的电压变换,我们这里也选择最为常用的AMS1117。这个片子上面的功耗也是蛮大的,P = 5V  3.3V* 500mA = 0.85W。我们需要对这个片子的散热做一些特殊的处理,比如在地上需要大面积敷铜或者加散热片。我们这里AMS1117选择SOT223的封装,等板子搞好之后,实测一下温升能有多少。buck芯片我们采样SY8120 DCDC的片子,具体buck电路的设计,我们有机会展开来讲。

    讲完了单片机的最小系统,我们看一看器件封装的一些问题。

    对于各个器件原理图和PCB的封装,站在开发板这个需求程度上,我们可以直接采用立创上给出来的。但是如果实际做产品的时候,元器件pcb的封装,我们就要格外注意了。pcb的封装要和实际生产工艺匹配起来,这样才能最大程度上降低生产成本,进而能够降低产品总的成本。比如封装不能过大,否则可能就会有立碑现象;再比如,如果封装大小不合适,虚焊的可能性就会加大,进而产品的质量可能就会受到影响。做产品的问题,我们暂且不说,我们先来看一下,如何直接利用立创商城提供的封装。第一步,我们要先把这些封装导出来,我们这里以DHT11为例(目前这样使用有效,后续网站可能会改版,大家留意)。

    比如我们这里首先选择直接使用厂家提供的封装,点击立即使用以后,就会出现schdocpcbdoc两个类型的文件。我们后面把可以把它导出来,变成AD软件支持的格式。这里说一下,我这里习惯使用AD软件,可能和一些同学的习惯不太一样。如果大家直接使用立创的画图软件,也就不需要导出来了。这个地方大家酌情使用。

    image.png

    image.png

    image.png

    这些文件导出来之后,我们就可以在AD软件里面生成相应的lib文件了,以便于我们在画原理图和PCB图的时候使用。

    今天关于这个开发板的分享,就先到这里。我们下篇文章会继续探讨相关原理图模块的设计。

     

    ①基于ESP8266STM32物联网开发板设计

    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

    https://atta.szlcsc.com/upload/public/pdf/source/20210219/C82891_ABD84A460F4F056A2757267CCCA4B508.pdf

    SRA系列继电器说明书

    https://item.szlcsc.com/61221.html

    https://atta.szlcsc.com/upload/public/pdf/source/20180525/C60169_619C103F264B8308190CF1E1CA37960C.pdf

    CH340C datasheet https://item.szlcsc.com/85852.html

    LM7805 datasheet https://item.szlcsc.com/520584.html

     


    收藏 0 回复 0 浏览 178
  • RISC-V鸿蒙开发板单片机简介2(项目连载9)

    这篇文章我们来简要的介绍一下Pygmy-E单片机使用的I2C通信接口,主要内容是通信协议的描述,框图的讲解,以及相关寄存器的介绍等等。本文介绍的时候,尽量把它和主流的STM32单片机对比,这样大家可以对两个I2C的外设都有更清晰的认识。其中红色框框选出来的关键字属于Pygmy-E单片机支持的I2C绿色框框选出来的属于STM32F030C8T6这款单片机

    1. 传输速度

    主流的STM32单片机一样,Pygmy-E系列的单片机的I2C接口,一样支持不同的传输速度,从而适配不同的外设和场景诉求。

    image.png

    image.png

    2. 组成框图

    从框图上来看,两种类型的I2C接口组成单元是类似的。要实现I2C协议相关的信息收发功能,首先必须要有这些相应的功能;再一个,按照这样的模块进行对整个功能模块进行切分,可能在电路设计上相对最为简单。但是整体上,还是STM32这款单片机对I2C各个组成模块及其相互之间的关系描述得更加清晰。

    image.png

    image.png

    image.png

    image.png

    3. 开始信号和信号传输信号

    I2C通信协议,开始信号和结束信号,是在SCLK为低的时候,通过SDA这个引脚的变化来产生的。 SDA由高到低的时候,是start信号;SDA由低到高的时候,是STOP信号。那么既然这两个信号是开始和终止信号,那么在信号传输的过程中一定要避免这样的信号出现。那么从协议上看,在数据传输的过充中,数据信号的采样(保持不变)只能是在SCL为高电平的时候,数据信号的改变只能是在SCL电平为低的时候。另外为了避免,在SCL为高的时候,万一SDA的信号发生了变化,可以适当配置SDA和相对于SCLK信号的先发和延后时间。这个误识别的诱发因素会很多,比如布线的时候,如果不是等长线,就有可能导致默认配置的先发和延后时间失去作用。Pygmy-E单片机和STM32单片机都提供了相应的寄存器来配置这个时间。

    从这个方面上来看,两款I2C电路基本是一致的,只是配置延时时间的寄存器可能是不一样的。


    image.png

    4. 寄存器

    下面是配置两款I2C接口时所使用的寄存器,大家从图上可以看出,Pygmy-E系列的单片机I2C接口所需要配置的寄存器非常复杂,总计有68个寄存器需要配置。相比之下,STM32单片机所需要配置的寄存器就要少很多,明显感觉易用性更好。Pygmy-E单片机的I2C接口使用这么多的寄存器好处也当然是有的,它可以帮助我们对I2C接口模块有相对更为深入的理解。但是需要我们对I2C通信协议以及相关的应用非常熟悉才行,否则这么多的寄存器相当容易把开发者搞晕。

    image.pngimage.png

    image.pngimage.png

    image.png

    5. 从地址

    两个I2C接口模块,都支持7位和10位地址协议。接口的通用性上都差不多。具体的通信内容的格式,这里就不在进行比较了。

    对上述几个关键的方面进行比较后,我们基本上可以感觉到,相比STM32f030C8T6这款单片机,Pygmy-E单片机的I2C接口使用起来难度相对较高。但是它数量庞大的寄存器,同时增强了使用它时的灵活度。两款接口应该是各有所长,但是从通用性上而言,STM32I2C接口可能会更加友好。




    收藏 0 回复 0 浏览 172
  • 讲透有史以来广受欢迎的运算放大器μA741(5)---增强镜像电流源

    大家好,我是张飞实战电子张角老师!

    image.pngimage.png

    这篇文章,我们从T7这个管子说起。T7这个管子的存在主要是增加对称性,减小运算放大器本身不对称带来的误差。这句话怎么说呢?如果没有T7这个管子,那么T5T6这两个管子的基极偏置电流,是不是都来自于Q3Ic。还是沿着上篇文章的例子来分析,如果IN-电压不断抬升,IN-IN+之间的压差不断增大。那么流过T5Ie不断增加,那么T5 E极的电压不断抬升;相对应的,流过T6Ic不断减少,T6 E极的电压不断降低。那么流向T6Ib电流在不断加大,流向T5Ib电流在不断减小。因为T7这个管子的存在,T5T6这两个管子的Ib电流主要来自电源,而对T6Ic造成的影响是最小的,这个时候T6这个管子IcIb之间的关系才逐渐往饱和方向移动。如果没有这个T7呢,那么T5T6Ib电流是不是全部来自Q3Ic了呀。对于T6这个管子而言,它是不是处于临界放大状态。临界放大状态也是放大状态。那么T6 Rce的阻抗也就降低不到更低的水平,那么反过来说,T5T6B极电压也就无法降低到更低的水平,这样会使得T5Ib减少不到更低的水平,那么对于T5IbIc而言,放大程度就不会更深。而我们希望的是不是让T5处于深度放大状态,这样才能尽可能提高F点的输出电压。那么很显然把T7去掉的做法,对这种工作状态是不利的。

    我们再看另外一个状态,如果IN+大于IN-,那么是不是T6Ic大于T5Ic,那么这个时候T5是往饱和状态移动,而T6是往放大状态移动,对吧。我们要想T5的输入增益更大,也就是说T5这个管子C极电压的变化范围更宽,是不是T5的饱和深度越深越好呀。T5要想饱和深度更深,是不是只能T5的基极电压相对来说可以更高一些,或者说在T6C极电压上升的过程中,T5的基极依然可以获得更多的电流。那么如果没有T7这个管子,T5T6的基极电流则主要靠Q3Ie电流分得,如果T5所需的基极电流越大,那么也就会对T6这个管子本身的工作状态造成一定的影响。大家看一下T6这个时候本身就是临界放大状态的接法,二极管当成三极管来使用,那么T6这个管子的Vbe之间的压差也就被锁定了,是零。那么随着T6Ic电流加大,T6这个管子C极的电压也相对难上去,因为B极和C极电压被T5这个管子B极到地的电压钳位住了。如果通过T7这个管子把T5T6的基极和T6C极隔离开,那么T6C极电压也就会高一些。

    那么由于T7的存在,T5T6C极电压变化就会更对称一些,比如当IN+电压大于IN-的时候,T6C极电压可以升高得更高对应着T5C极电压可以降得更低;当IN-大于IN+的时候,T5C极电压会升得更高,对应着T6C极电压可以降得更低。如果没有T7,就没有这样的对称性,如上面两种情况分析,这个时候T6工作在临界饱和状态。但是T7这个器件是不是一定是必须的呢?实际上较新的运算放大器,比如LM324T7都是不存在的。那么也就是说,其实这样严格的对称性,从实践上来说,应该是不是必须的。

    我们下面看一下T5T6这两个三极管的射极电阻。那么第一个问题就是,为什么这里需要下面需要加两个电阻呢?我们说当IN+=IN-的时候,T5这个管子的C极输出应该是刚刚好使得输出为零。T5C极输出信号是驱动后级的达林顿管的,也就是中间的放大级。那么我们可以调整这两个电阻使得输出值达到要求,这里本质上也就是实现阻抗匹配,R4+T5RceT2Q4Rce之和进行合适的分压,R3+T6RceT1Q3Rce之和进行合适的分压。我们今天的分享就先到这里。


    收藏 0 回复 0 浏览 170
×
张角