当前位置: 首页 > news >正文

嵌入式分享合集186

自己的原文哦~         https://blog.51cto.com/whaosoft/14086403

一、MOS管和IGBT管有什么区别

   在电路设计中,MOS管和IGBT管会经常出现,它们都可以作为开关元件来使用,MOS管和IGBT管在外形及特性参数也比较相似,那为什么有些电路用MOS管?而有些电路用IGBT管?

    下面我们就来了解一下,MOS管和IGBT管到底有什么区别吧!

 什么是MOS管?

    场效应管主要有两种类型,分别是结型场效应管(JFET)和绝缘栅场效应管(MOS管)。

  MOS管即MOSFET,中文全称是金属-氧化物半导体场效应晶体管,由于这种场效应管的栅极被绝缘层隔离,所以又叫绝缘栅场效应管。

    MOSFET又可分为N沟耗尽型和增强型;P沟耗尽型和增强型四大类。

   如上图,MOSFET种类与电路符号。

    有的MOSFET内部会有个二极管,这是体二极管,或者叫寄生二极管、续流二极管。

关于寄生二极管的作用,有两种解释:

  • MOSFET的寄生二极管,作用是防止VDD过压的情况下,烧坏MOS管,因为在过压对MOS管造成破坏之前,二极管先反向击穿,将大电流直接到地,从而避免MOS管被烧坏。
  • 防止MOS管的源极和漏极反接时烧坏MOS管,也可以在电路有反向感生电压时,为反向感生电压提供通路,避免反向感生电压击穿MOS管。

    MOSFET具有输入阻抗高、开关速度快、热稳定性好、电压控制电流等特性,在电路中,可以用作放大器、电子开关等用途。

什么是IGBT?

    IGBT (Insulated Gate Bipolar Transistor),绝缘栅双极型晶体管,是由晶体三极管和MOS管组成的复合型半导体器件。

    IGBT作为新型电子半导体器件,具有输入阻抗高,电压控制功耗低,控制电路简单,耐高压,承受电流大等特性,在各种电子电路中获得极广泛的应用。

    IGBT的电路符号至今并未统一,画原理图时一般是借用三极管、MOS管的符号,这时可以从原理图上标注的型号来判断是IGBT还是MOS管。

    同时还要注意IGBT有没有体二极管,图上没有标出并不表示一定没有,除非官方资料有特别说明,否则这个二极管都是存在的。

    IGBT内部的体二极管并非寄生的,而是为了保护IGBT脆弱的反向耐压而特别设置的,又称为FWD(续流二极管)。

    判断IGBT内部是否有体二极管也并不困难,可以用万用表测量IGBT的C极和E极,如果IGBT是好的,C、E两极测得电阻值无穷大,则说明IGBT没有体二极管。

    IGBT非常适合应用于如交流电机、变频器、开关电源、照明电路、牵引传动等领域。

MOS管和IGBT的结构特点

    MOS管和IGBT管的内部结构如下图所示。

    IGBT是通过在MOSFET的漏极上追加层而构成的。

    IGBT的理想等效电路如下图所示,IGBT实际就是MOSFET和晶体管三极管的组合,MOSFET存在导通电阻高的缺点,但IGBT克服了这一缺点,在高压时IGBT仍具有较低的导通电阻。

    另外,相似功率容量的IGBT和MOSFET,IGBT的速度可能会慢于MOSFET,因为IGBT存在关断拖尾时间,由于IGBT关断拖尾时间长,死区时间也要加长,从而会影响开关频率。

选择MOS管还是IGBT?

    在电路中,选用MOS管作为功率开关管还是选择IGBT管,这是工程师常遇到的问题,如果从系统的电压、电流、切换功率等因素作为考虑,可以总结出以下几点:

 也可从下图看出两者使用的条件,阴影部分区域表示MOSFET和IGBT都可以选用,“?”表示当前工艺还无法达到的水平。

    总的来说,MOSFET优点是高频特性好,可以工作频率可以达到几百kHz、上MHz,缺点是导通电阻大在高压大电流场合功耗较大;而IGBT在低频及较大功率场合下表现卓越,其导通电阻小,耐压高。 

    MOSFET应用于开关电源、镇流器、高频感应加热、高频逆变焊机、通信电源等等高频电源领域;IGBT集中应用于焊机、逆变器、变频器、电镀电解电源、超音频感应加热等领域。

二、常见的开关电源拓扑结构

主要讲述常见的开关电源拓扑结构特点和优缺点对比。

    常见的拓扑结构,包括Buck降压、Boost升压、Buck-Boost降压-升压、Flyback反激、Forward正激、Two-Transistor Forward双晶体管正激等。

上图是常见的基本拓扑结构。

基本的脉冲宽度调制波形

    这些拓扑结构都与开关式电路有关。

    基本的脉冲宽度调制波形定义如下:

常见的基本拓扑结构

1 Buck降压

  • 把输入降至一个较低的电压。
  • 可能是最简单的电路。
  • 电感/电容滤波器滤平开关后的方波。
  • 输出总是小于或等于输入。
  • 输入电流不连续(斩波)。
  • 输出电流平滑。

2 Boost升压

  • 把输入升至一个较高的电压。
  • 与降压一样,但重新安排了电感、开关和二极管。
  • 输出总是比大于或等于输入(忽略二极管的正向压降)。
  • 输入电流平滑。
  • 输出电流不连续(斩波)。

3 Buck-Boost降压-升压

  • 电感、开关和二极管的另一种安排方法。
  • 结合了降压和升压电路的缺点。
  • 输入电流不连续(斩波)。
  • 输出电流也不连续(斩波)。
  • 输出总是与输入反向(注意电容的极性),但是幅度可以小于或大于输入。
  • “反激”变换器实际是降压-升压电路隔离(变压器耦合)形式。

4 Flyback反激

  • 如降压-升压电路一样工作,但是电感有两个绕组,而且同时作为变压器和电感。
  • 输出可以为正或为负,由线圈和二极管的极性决定。
  • 输出电压可以大于或小于输入电压,由变压器的匝数比决定。
  • 这是隔离拓扑结构中最简单的。
  • 增加次级绕组和电路可以得到多个输出。

5 Forward正激

  • 降压电路的变压器耦合形式。
  • 不连续的输入电流,平滑的输出电流。
  • 因为采用变压器,输出可以大于或小于输入,可以是任何极性。
  • 增加次级绕组和电路可以获得多个输出。
  • 在每个开关周期中必须对变压器磁芯去磁。常用的做法是增加一个与初级绕组匝数相同的绕组。
  • 在开关接通阶段存储在初级电感中的能量,在开关断开阶段通过另外的绕组和二极管释放。

6 Two-Transistor Forward双晶体管正激

  • 两个开关同时工作。
  • 开关断开时,存储在变压器中的能量使初级的极性反向,使二极管导通。
  • 主要优点:每个开关上的电压永远不会超过输入电压;无需对绕组磁道复位。

7 Push-Pull推挽

  • 开关(FET)的驱动不同相,进行脉冲宽度调制(PWM)以调节输出电压。
  • 良好的变压器磁芯利用率——在两个半周期中都传输功率。
  • 全波拓扑结构,所以输出纹波频率是变压器频率的两倍。
  • 施加在FET上的电压是输入电压的两倍。

8 Half-Bridge半桥

  • 较高功率变换器极为常用的拓扑结构。
  • 开关的驱动不同相,进行脉冲宽度调制以调节输出电压。
  • 良好的变压器磁芯利用率——在两个半周期中都传输功率。而且初级绕组的利用率优于推挽电路。
  • 全波拓扑结构,所以输出纹波频率是变压器频率的两倍。
  • 施加在FET上的电压与输入电压相等。

9 Full-Bridge全桥

  • 较高功率变换器最为常用的拓扑结构。
  • 开关以对角对的形式驱动,进行脉冲宽度调制以调节输出电压。
  • 良好的变压器磁芯利用率——在两个半周期中都传输功率。
  • 全波拓扑结构,所以输出纹波频率是变压器频率的两倍。
  • 施加在 FETs上的电压与输入电压相等。
  • 在给定的功率下,初级电流是半桥的一半。

10 SEPIC单端初级电感变换器

  • 输出电压可以大于或小于输入电压。
  • 与升压电路一样,输入电流平滑,但是输出电流不连续。
  • 能量通过电容从输入传输至输出。
  • 需要两个电感。

11 C’uk(Slobodan C’uk的专利)

  • 输出反相。
  • 输出电压的幅度可以大于或小于输入。
  • 输入电流和输出电流都是平滑的。
  • 能量通过电容从输入传输至输出。
  • 需要两个电感。
  • 电感可以耦合获得零纹波电感电流。

电路工作的细节

    下面讲解几种拓扑结构的工作细节。

1 Buck-降压调整器-连续导电

  • 电感电流连续。
  • Vout是其输入电压(V1)的均值。
  • 输出电压为输入电压乘以开关的负荷比(D)。
  • 接通时,电感电流从电池流出。
  • 开关断开时电流流过二极管。
  • 忽略开关和电感中的损耗,D与负载电流无关。
  • 降压调整器和其派生电路的特征是:输入电流不连续(斩波),输出电流连续(平滑)。

2 Buck-降压调整器-临界导电

电感电流仍然是连续的,只是当开关再次接通时“达到”零。这被称为“临界导电”。输出电压仍等于输入电压乘以D。

3 Buck-降压调整器-不连续导电

  • 在这种情况下,电感中的电流在每个周期的一段时间中为零。
  • 输出电压仍然(始终)是v1的平均值。
  • 输出电压不是输入电压乘以开关的负荷比(D)。
  • 当负载电流低于临界值时,D随着负载电流而变化(而Vout保持不变)。

4 Boost升压调整器

    输出电压始终大于(或等于)输入电压。输入电流连续,输出电流不连续(与降压调整器相反)。

    输出电压与负荷比(D)之间的关系不如在降压调整器中那么简单。在连续导电的情况下:

 在本例中,Vin = 5, Vout = 15, D = 2/3.Vout = 15,D = 2/3.

5 变压器工作(包括初级电感的作用)

   变压器看作理想变压器,它的初级(磁化)电感与初级并联。

6 反激变压器

    此处初级电感很低,用于确定峰值电流和存储的能量。当初级开关断开时,能量传送到次级。

7 Forward 正激变换变压器

  • 初级电感很高,因为无需存储能量。
  • 磁化电流(i1)流入 “磁化电感”,使磁芯在初级开关断开后去磁(电压反向)。

总结

    本文回顾了目前开关式电源转换中最常见的电路拓扑结构。除此之外还有许多拓扑结构,但大多是这些拓扑的组合或变形。

    每种拓扑结构包含独特的设计权衡:施加在开关上的电压,斩波和平滑输入输出电流,绕组的利用率。

    选择最佳的拓扑结构需要研究:输入和输出电压范围,电流范围,成本和性能、大小和重量之比。

三、开关电源纹波、噪声的产生原因及测量方法

简单地介绍开关电源产生纹波和噪声的原因和测量方法、测量装置、测量标准及减小纹波和噪声的措施。

纹波和噪声产生的原因

    开关电源输出的不是纯正的直流电压,里面有些交流成分,这就是纹波和噪声造成的。纹波是输出直流电压的波动,与开关电源的开关动作有关。每一个开、关过程,电能从输入端被“泵到”输出端,形成一个充电和放电的过程,从而造成输出电压的波动,波动频率与开关的频率相同。纹波电压是纹波的波峰与波谷之间的峰峰值,其大小与开关电源的输入电容和输出电容的容量及品质有关。

    噪声的产生原因有两种,一种是开关电源自身产生的;另一种是外界电磁场的干扰(EMI),它能通过辐射进入开关电源或者通过电源线输入开关电源。

    开关电源自身产生的噪声是一种高频的脉冲串,由发生在开关导通与截止瞬间产生的尖脉冲所造成,也称为开关噪声。噪声脉冲串的频率比开关频率高得多,噪声电压是其峰峰值。噪声电压的振幅很大程度上与开关电源的拓扑、电路中的寄生状态及PCB的设计有关。

    利用示波器可以看到纹波和噪声的波形,如图1所示。纹波的频率与开关管频率相同,而噪声的频率是开关管的两倍。纹波电压的峰峰值和噪声电压的峰峰值之和就是纹波和噪声电压,其单位是mVp-p。

上图1 ,纹波和噪声的波形。

纹波和噪声的测量方法

    纹波和噪声电压是开关电源的主要性能参数之一,因此如何精准测量是一个十分重要问题。目前测量纹波和噪声电压是利用宽频带示波器来测量的方法,它能精准地测出纹波和噪声电压值。

    由于开关电源的品种繁多(有不同的拓扑、工作频率、输出功率、不同的技术要求等),但是各生产厂家都采用示波器测量法,仅测量装置上不完全相同,因此各厂对不同开关电源的测量都有自己的标准,即企业标准。

    用示波器测量纹波和噪声的装置的框图如图2所示。它由被测开关电源、负载、示波器及测量连线组成。有的测量装置中还焊上电感或电容、电阻等元件。

  上图2 示波器测量框图。

    从图2来看,似乎与其他测波形电路没有什么区别,但实际上要求不同。测纹波和噪声电压的要求如下:

  ● 要防止环境的电磁场干扰(EMI)侵入,使输出的噪声电压不受EMI的影响;

  ● 要防止负载电路中可能产生的EMI干扰;

  ● 对小型开关型模块电源,由于内部无输出电容或输出电容较小,所以在测量时要加上适当的输出电容。

    为满足第1条要求,测量连线应尽量短,并采用双绞线(消除共模噪声干扰)或同轴电缆;一般的示波器探头不能用,需用专用示波器探头;并且测量点应在电源输出端上,若测量点在负载上则会造成极大的测量误差。为满足第2点,负载应采用阻性假负载。

    经常有这样的情况发生,用户买回的开关电源或模块电源,在测量纹波和噪声这一性能指标时,发现与产品技术规格上的指标不符,大大地超过技术规格上的性能指标要求,这往往是用户的测量装置不合适,测量的方法(测量点的选择)不合适或采用通用的测量探头所致。

几种测量装置

1 双绞线测量装置

    双绞线测量装置如图3所示。采用300mm(12英寸)长、#16AWG线规组成的双绞线与被测开关电源的+OUT及-OUT连接,在+OUT与-OUT之间接上阻性假负载。在双绞线末端接一个4TμF电解电容(钽电容)后输入带宽为50MHz(有的企业标准为20MHz)的示波器。在测量点连接时,一端要接在+OUT上,另一端接到地平面端。

   上图3 双绞线测量装置。

    这里要注意的是,双绞线接地线的末端要尽量的短,夹在探头的地线环上。

2 平行线测量装置

    平行线测量装置如图4所示。图4中,C1是多层陶瓷电容(MLCC),容量为1μF,C2是钽电解电容,容量是10μF。两条平行铜箔带的电压降之和小于输出电压值的2%。该测量方法的优点是与实际工作环境比较接近,缺点是较容易捡拾EMI干扰。

   上图4 平行线测量装置。

3 专用示波器探头

    图5所示为一种专用示波器探头直接与波测电源靠接。专用示波器探头上有个地线环,其探头的尖端接触电源输出正极,地线环接触电源的负极(GND),接触要可靠。

上图5 示波器探头的接法。

    这里顺便提出,不能采用示波器的通用探头,因为通用示波器探头的地线不屏蔽且较长,容易捡拾外界电磁场的干扰,造成较大的噪声输出,虚线面积越大,受干扰的影响越大,如图6所示。

   上图6 通用探头易造成干扰。

4 同轴电缆测量装置

    这里介绍两种同轴电缆测量装置。图7是在被测电源的输出端接R、C电路后经输入同轴电缆(50Ω)后接示波器的AC输入端;图8是同轴电缆直接接电源输出端,在同轴电缆的两端串接1个0.68μF陶瓷电容及1个47Ω/1w碳膜电阻后接入示波器。T形BNC连接器和电容电阻的连接如图9所示。

 上图7 同轴电缆测量装置1。

    上图8 同轴电缆测量装置2。

上图9 T形BNC连接器和电容电阻的连接。

纹波和噪声的测量标准

    以上介绍了多种测量装置,同一个被测电源若采用不同的测量装置,其测量的结果是不相同的,若能采用一样的标准测量装置来测,则测量的结果才有可比性。近年来出台了几个测量纹波和噪声的标准,本文将介绍一种基于JEITA-RC9131A测量标准的测量装置,如图10所示。

  上图10 基于JEITA-RC9131A测量标准的测量装置。

    该标准规定在被测电源输出正、负端小于150mm处并联两个电容C2及C3,C2为22μF电解电容,C3为0.47μF薄膜电容。在这两个电容的连接端接负载及不超过1.5m长的50Ω同轴电缆,同轴电缆的另一端连接一个50Ω的电阻R和串接一个4700pF的电容C1后接入示波器,示波器的带宽为100MHz。同轴电缆的两端连接线应尽可能地短,以防止捡拾辐射的噪声。另外,连接负载的线若越长,则测出的纹波和噪声电压越大,在这情况下有必要连接C2及C3。若示波器探头的地线太长,则纹波和噪声的测量不可能精确。

    另外,测试应在温室条件下,被测电源应输入正常的电压,输出额定电压及额定负载电流。

不正确与正确测量的比较

1探头的选择

   上图11 AAT1121电路测量波形。

    上图12 用普通示波器探头测得的波形。

    上图13 用专用测量探头测得的波。

2 探头与测试点的接触是否良好

    以1W DC/DC电源模块IF0505RN-1W为例,采用专用探头靠测法,排除外界EMI噪声干扰,探头接触良好时,测出的纹波和噪声电压为4.8mVp-p,如图14所示。若触头接触不良时,则测出的纹波和噪声电压为8.4mVp-p,如图15所示。

    上图14 电源模块IF0505RN-1W测试波形(接触良好)。

    上图15 电源模块IF0505RN-1W测试波形(接触不良)。

    这里顺便再用普通示波器探头测试一下,其测试结果是纹波和噪声电压为48mVp-p,如图16所示。 

    上图16 电源模块IF0505RN-1W测试波形(普通探头)。

减小纹波和噪声电压的措施

    上图17 开关电源整流波形

上图18 开关电源PFC电路。

    开关电源或模块的输出纹波和噪声电压的大小与其电源的拓扑,各部分电路的设计及PCB设计有关。例如,采用多相输出结构,可有效地降低纹波输出。现在的开关电源的开关频率越来越高;低的是几十kHz,一般是几百kHz,而高的可达1MHz以上。因此产生的纹波电压及噪声电压的频率都很高,要减小纹波和噪声最简单的办法是在电源电路中加无源低通滤波器。

1减少EMI的措施

    可以采用金属外壳做屏蔽减小外界电磁场辐射干扰。为减少从电源线输入的电磁干扰,在电源输入端加EMI滤波器,如图19所示(EMI滤波器也称为电源滤波器)。  

上图19 开关电源加EMI滤波。

2 在输出端采用高频性能好、ESR低的电容

    采用高分子聚合物固态电解质的铝或钽电解电容作输出电容是最佳的,其特点是尺寸小而电容量大,高频下ESR阻抗低,允许纹波电流大。它最适用于高效率、低电压、大电流降压式DC/DC转换器及DC/DC模块电源作输出电容。例如,一种高分子聚合物钽固态电解电容为68μF,其在20℃、100kHz时的等效串联电阻(ESR)最大值为25mΩ,最大的允许纹波电流(在100kHz时)为2400mArms,其尺寸为:7.3mm(长)×4.3mm(宽)×1.8mm(高),其型号为10TPE68M(贴片或封装)。

    纹波电压ΔVOUT为:

    ΔVOUT=ΔIOUT×ESR (1)

    若ΔIOUT=0.5A,ESR=25mΩ,则ΔVOUT=12.5mV。

    若采用普通的铝电解电容作输出电容,额定电压10V、额定电容量100μF,在20℃、120Hz时的等效串联电阻为5.0Ω,最大纹波电流为70mA。它只能工作于10kHz左右,无法在高频(100kHz以上的频率)下工作,再增加电容量也无效,因为超过10kHz时,它已成电感特性了。

    某些开关频率在100kHz到几百kHz之间的电源,采用多层陶电容(MLCC)或钽电解电容作输出电容的效果也不错,其价位要比高分子聚合物固态电解质电容要低得多。

3 采用与产品系统的频率同步

    为减小输出噪声,电源的开关频率应与系统中的频率同步,即开关电源采用外同步输入系统的频率,使开关的频率与系统的频率相同。

4 避免多个模块电源之间相互干扰

    在同一块PCB上可能有多个模块电源一起工作。若模块电源是不屏蔽的、并且靠的很近,则可能相互干扰使输出噪声电压增加。为避免这种相互干扰可采用屏蔽措施或将其适当远离,减少其相互影响的干扰。

    例如,用两个K7805-500开关型模块组成±5V输出电源时,若两个模块靠的很近,输出电容C4、C2未采用低ESR电容,且焊接处离输出端较远,则有可能输出的纹波和噪声电压受到相互干扰而增加,如图20所示。

    如果在同一块PCB上有能产生噪声干扰的电路,则在设计PCB时要采取相似的措施以减少干扰电路对开关电源的相互干扰影响。

    上图20 K7805-500并联。

5 增加LC滤波器

    为减小模块电源的纹波和噪声,可以在DC/DC模块的输入和输出端加LC滤波器,如图21所示。图21左图是单输出,图21右图是双输出。

  上图21 在DC/DC模块中加入LC滤波器。

    在表1及表2中列出1W DC/DC模块的VIN端和VOUT端在不同输出电压时的电容值。要注意的是,电容量不能过大而造起动问题,LC的谐振频率必须与开关频率要错开以避免相互干扰,L采用μH极的,其直流电阻要低,以免影响输出电压精度。

6 增加LDO

    在开关电源或模块电源输出后再加一个低压差线性稳压器(LDO)能大幅度地降低输出噪声,以满足对噪声特别有要求的电路需要(见图22),输出噪声可达μV级。

 上图22 在电源中加入LDO。

    由于LDO的压差(输入与输出电压的差值)仅几百mV,则在开关电源的输出略高于LDO几百mV就可以输出标准电压了,并且其损耗也不大。

7 增加有源EMI滤波器及有源输出纹波衰减器

    有源EMI滤波器可在150kHz~30MHz间衰减共模和差模噪声,并且对衰减低频噪声特别有效。在250kHz时,可衰减60dB共模噪声及80dB差模噪声,在满载时效率可达99%。

    输出纹波衰减器可在1~500kHz范围内减低电源输出纹波和噪声30dB以上,并且能改善动态响应及减小输出电容。

四、TVS管

对于工程师来说,浪涌保护不仅仅是选择合适的电源板或者拔下几根电缆,主要涉及在 PCB 布局中放置瞬态保护组件并应用明确的接地策略。

TVS 二极管是用于保护PCB布局中组件的常用组件,这些组件放置在数据线上,一旦电路中接收到ESD脉冲,就会通过将电流从受保护组件转移开来。确保 PCB 布局可以对瞬态保护进行优化,并且可以防止炸电路板并且保证一个功能良好的设备。

<1、什么是瞬态抑制二极管及其工作原理?

瞬态电压抑制 (TVS) 二极管是一种常用于保护设备免受与静电放电 (ESD) 相关的瞬态事件影响的组件。(不要将TVS管与齐纳二极管或肖特基二极管混淆。)

它由一个 pn 半导体结组成,该结在瞬态电压尖峰期间变为导通状态。在正常情况下,TVS 二极管具有高阻抗和极低的漏电流,实际上相当于开路。

当瞬态电压抑制器上的电压上升超过其阈值电压时,半导体中的雪崩效应会导致 pn 结开始导电,从而提供一条低阻抗路径,将过大的电流从受保护的设备中导出。

TVS 二极管的响应时间非常快,通常以皮秒表示,因此这些组件可以非常快速地转移强 ESD 脉冲,即使该 ESD 脉冲具有相对较快的上升时间。

<2、PCB设计选择合适的TVS二极管

所有的TVS二极管本质上都是二极管:如果你施加足够大的正向或反向偏置电压,TVS二极管就会开始导通,当然,并不是所有的TVS二极管都是一样的。

如果选择了错误的保护,可能会导致瞬态保护从一开始就失效。选择瞬态抑制二极管时,你需要了解一些参数:

1、反向偏置击穿电压 (VB)

这是 TVS 二极管开始导通时的反向偏置电压。一旦 TVS 二极管开始导通,它会将 ESD 脉冲从受保护的组件转移开。

2、钳位电压 (VC)

钳位电压是 TVS 二极管在超过反向偏置击穿后将显着导通的最小电压。该值定义在指定峰值电流的限制范围内。

通常,较低的 VC 值将为组件提供更多保护,因此应选择 VC,使其小于受保护组件的输入电压限制。

3、额定关断电压 (VWM)

这表示反向偏置电压限制,低于该限制 TVS 二极管将保持绝缘。在额定关断电压内,TVS 二极管具有高阻抗,只有少量泄漏电流。

4、峰值脉冲功率耗散 (PPP)

TVS 二极管需要能够安全地耗散由瞬态电压引起的过大电流,这由峰值脉冲功率耗散表示。

<3、TVS 二极管如何工作?

所有TVS二极管的工作原理都很简单:当电路接收到ESD脉冲时,该脉冲会很快超过二极管的反向偏置击穿电压值。

将其任何导体暴露于外部环境(例如通过连接器)的设备可以在这些导体上接收 ESD 脉冲。如果这些导体是通向组件的信号线的一部分,则接收到的 ESD 脉冲会将高电压/高电流脉冲传输到组件中,这可能会破坏组件。

当 ESD 发生在信号线上并且信号线上存在 TVS 二极管时,二极管将开始导通,脉冲可以通过二极管。这允许二极管将 ESD 脉冲从受保护电路转移开。

典型的连接方式是将阳极接地,这样 ESD 脉冲就会传到地里。只要接地区域存在低阻抗路径,脉冲就会从受保护的组件转移开。

TVS 二极管

<4、双向TVS二极管还是单向TVS二极管?

TVS 二极管有两种类型:双向和单向。这两种类型的 TVS 二极管具有不同的符号,如下所示:

双向和单向TVS二极管

在购买TVS二极管时,要注意一般来说,统称TVS二极管指单向型TVS二极管,如果你需要双向的TVS二极管吗,则需要说明。

那么应该选择哪种类型的TVS二极管?使用双向TVS二极管的主要原因是在电路承载正极性和负极性信号时提供保护。这就是为什么你有时候会在差分对或者在正负极性之间振荡的模拟线路上看到双先锋TVS二极管。

大部分人应该都会更喜欢用双向TVS二极管,以提供全面的故障保护和ESD保护,这是因为接地区域可以接受ESD脉冲,就像要保护的信号线一样。

如果接地故障导致接地路径具有高阻抗,那么阻抗最低的路径可能是通过单向TVS二极管和你要保护的组件。但是如果TVS二极管是双向的,即使存在接地故障,也会有机会保护元器件。

<5、TVS 二极管的 PCB 布局技巧

除了选择合适的 TVS 二极管外,保护的有效性还取决于 PCB 布局本身。下面这个示例中2个双向TVS二极管并联连接到下面的示意图中保护的电路。示意图显示了TVS二极管与MAX3485 收发器的典型连接:

TVS 二极管连接的典型示意图

在此示例中,如果在 D+ 和 D- 线路暴露于外部环境的位置发生 ESD ,并且产生相对于 GND 的正电压,则只要 ESD 电压达到,TVS 二极管就会开始导通超过了 TVS 反向偏置击穿电压。

如果发生导致电流开始在 GND 平面中流动的 ESD ,只要系统中存在低阻抗接地路径,电流就应该完全从组件转移开。

在接地导体接收 ESD 的情况下,最好使用双向 TVS 二极管,因为它仍会提供一些保护,而如果 TVS 二极管是单向的,收发器可能仍会暴露在某些电压下。

双向 TVS 二极管的首选转移发生,因为施加的脉冲需要上升到某个阈值(TVS 二极管上半部分的 VB 值)以上,然后才能从 GND 到迹线进行导通。

在 PCB 布局中,应遵循一些重要准则以使 TVS 二极管正常工作。这些包括放置、接地以及在屏蔽层上使用任何无源元件,如电阻或电容。

1、TVS 二极管的放置

由于 ESD 可能发生在电子设备中暴露的导体附近,因此最好将 TVS 二极管放置在这些导体暴露于外部环境的区域附近。下面显示了一个带有 2 针连接器的简单布局示例。

将 TVS 二极管放置在有接收 ESD 脉冲危险的裸露导体附近

PCB 走线具有一些 寄生电感,可能导致 TVS 二极管的钳位电压增加到其指定限值以上。TVS 二极管的走线也应相对于收发器的走线较短,以最大限度地降低阻抗并确保消散浪涌中的过多能量。这将最大限度地减少通向 TVS 二极管的路径中的寄生电感。

2、接地

如果可能,最好将 TVS 二极管连接到与受保护组件不同的接地网。这并不意味着应该拆分地平面。相反,最安全的连接类型是将 TVS 二极管连接到机箱接地中的金属元件(如果可用),通常通过连接到机箱螺钉或安装孔的迹线进行连接。

如果此连接不可用,则可以连接到内部平面。但是,在存在强 ESD 风险的环境中,设备应封装在具有安全金属底盘接地和接地连接的底盘中。

3、消除屏蔽无源

某些组件(如屏蔽连接器)将具有一些额外的金属屏蔽层来保护裸露的导体。连接器上的屏蔽并不意味着机械或热保护,它实际上是为了防止噪声接收和防止 ESD。

如果存在 ESD 危险,则可以将屏蔽连接器与 TVS 二极管一起使用。TVS 二极管连接到信号线,连接器上的屏蔽层直接接地。

数据线上两个 TVS 二极管的连接示例

上图中,在机箱和信号接地之间放置了一个直接连接。典型的方法是将此连接放在系统中的一个位置,以确保所有导体上的接地电位均匀,但仍然可以控制常规返回电流,使其不会通过机箱。

只要 GND 是低阻抗、低电感接地层,同样适用这个方法。如果这是系统的电隔离区域,最好将该连接置于更靠近连接器主体的位置,如上图所示。

在某些情况下,你可能会看到有人试图通过缓冲电路或并联 RC 电路将屏蔽层接地。这两者都破坏了使用屏蔽连接器的全部目的。

相反,在屏蔽和底盘接地(如果可用)或接地层之间建立直接连接,这将创建一个极低阻抗的接地路径,防止 ESD 事件中的能量到达受保护的组件。

在某些情况下,控制返回电流会遇到麻烦(例如浮动接地),适当的方法是在屏蔽层和接地层之间放置一个大电容,这确保可以分流快速 ESD 脉冲,并且不会由于两个接地之间的任何偏移而从系统辐射高频噪声。

五、在MOS管开关电路设计中使用三极管容易烧坏

MOS管作为一种常用的开关元件,具有低导通电阻、高开关速度和低功耗等优点,因此在许多电子设备中广泛应用。然而,在一些特殊情况下,我们需要在MOS管控制电路中加入三极管来实现一些特殊功能。然而,不同于MOS管,三极管在工作过程中会产生较大的热量,因此容易烧坏。接下来,我将详细解释为什么在MOS管开关电路设计中使用三极管容易烧坏,并提供一些解决方案来避免这个问题。让我们一起来探讨吧!

MOS管开关电路在现在电路设计中十分常见。三极管开关电路分为两大类,一类是经典的TTL三极管开关电路,一类是MOS管开关电路。三极管和MOS管作为开关管时,有很多相似之处,也有不同之处,那么在电路设计时,两者之间该如何选择呢?

三极管有NPN型和PNP型,同理MOS管也有N沟道和P沟道的,三极管的三个引脚分别是基极B、集电极C和发射极E,而MOS管的三个引脚分别是栅极G、漏极D和源极S。

对于MOS管,我们在电路设计中都会遇到,那么应该如何设计一个MOS管的开关电路呢?

MOS管开关电路

我们一般会用一个三极管去控制,如下图!

MOS管开关电路

但是这个电路的缺点也是显而易见,由于MOS管有一个寄生的二极管,如果CD5V的滤波电容过大,或者后端有别的电压串进来,会把前端给烧坏!电流路径如下:

后端电流路径

如何改善这个问题呢?

有两个方式,一种是在后端串联二极管。

防止后端电压电流串扰的电路

优点,电路简单,BOM成本低!缺点,二极管动态负载电阻大,特别不适合后盾负载变化大的!另外一种,便是后端串联一个同规格的MOS管!

防止后端电压电流串扰的电路

优点,MOS管开通电阻极小,对于后端负载电流变化不敏感。缺点,BOM成本高!

六、分析电容降压电路工作原理

 电容降压电路,因其成本低廉、体积小而被广泛地使用,此一优点足以掩盖其它所有缺点:输出电流小(一般控制在100mA以内),与市电直通非隔离而存在安全隐患,输出电压波动大等;这些缺点也限制了其所能使用场所。

补充:常规的AC->DC方案是采用变压器降压后再整流滤波。

1 工作原理

    就是利用电容在一定的交流信号频率下产生的容抗来限制最大工作电流,因负载阻抗不是很大,而认为此时的电容为一个恒流源为负载供电。

    电容的取值一般在0.33~3.3uF之间,争对我国220V/50Hz市电,利用容抗计算公式:Xc=1/(2pifC),可得其容抗在965Ω~9.65kΩ范围内,较一般负载阻抗来说,已远远大于其值。

    最简单的电容降低电路如下图示:

根据负载所需电流大小,来确定C1值的大小。

    此电路我们会发现一个问题:交流的市电输入,在负载两端会产生一个交变的电压,而非我们所需的DC电源,故做如下改进:

利用了二极管的单向导通性。

    但随之又引入了第二个问题:电容C1放电回路问题;当电压从0逐步增大到最大值时,电压对C1进行充电,为负载提供电流;当C1充满电后,C1断路,不再给负责提供电流;而此时,C1没有放电回路,一直保持最大电压,后续不再进行充放电过程;故此电路只有在上电瞬间,才提供给负载pi/4时间的电流。

    还是利用二极管的单向导通性,对上述电路做如下改进,D2为C1提供放电回路。

    我们在来找找问题:在前面我们已经提到,因Xc1很大而认为C1为一个恒流源,故负载上的电压完全由负载阻抗决定,当负载变化时其两端的电压也随之变化,这并不是我们所期望看到的,所以稳压是我们需要考虑的一步。

    此时,稳压二极管又有了它的用武之地,同时考虑到其与普通二极管的共性,故可对上述电路做如下改进,将D2普通二极管改为D3稳压二极管。

    如若再联系下实际,上述电路的设计还未完。一般在进行电路设计时,电源端都会加入开关,当开关断开时,C1又会存在放电回路问题了,此时又该如何避免这个问题呢?是的,直接在C1上并联电阻以提供放电回路,阻值一般为几百K,电路如下图示:

 R1和C1的取值,以下可作为一个参考:

到此,基本上完成了电容降压电路原理图的设计。

2 参数计算

    总体思路是:先根据负载功耗情况,确定负载电流大小,然后再计算所需电容值的大小。

    对稳压管的选择,亦要综合考虑成本、稳压值、 稳压二极管正常工作的反向电流值及能承受的最大反向电流值(要大于总电流值,当负载开路时,才不会烧坏)等

3 注意事项

  • 将压电容为无极性电容,且耐压必须在400V以上;
  • 电容降压不适合动态负载,也不适合容性和感性负载;
  • 因未与市电隔离,需注意安全,严防接触导电,电路应该放在一般接触不到的地方;
  • 维修时不能随意更换电容值;
  • 不能用在大功率场合,及负载变化或者不确定的场合;
  • 降压电容一般要接在火线上(纯交流电路除外),电路的零、火线不能接反,这一点可以用三脚插头来强制或标注清楚;
  • 主要根据负载的电流大小和交流电频率来选择电容;

    题外话,为什么不用电感或电阻来降压?

    电阻降压有但是较少,应用场合和电容降压一样,但电阻功耗大。电感降压呢?原理和电容一样,但估计精确的电感不好做,没有电容容易得到,所以没有用电感。

七、详解太阳能路灯电路图

路灯控制系统工作原理

    白天光伏电池向蓄电池充电,晚上蓄电池提供电力供路灯照明。所以蓄电池将构成一个充放电循环。太阳能路灯照明控制电路包括光伏电池、蓄电池、路灯和控制器四部分。

    1、设计中采用AT89S52单片机,并将其作为智能核心模块。外围电路主要包括太阳能电池电压采样模块、蓄电池电压采样模块、键盘电路模块、LED显示模块、充放电控制模块等。

    2、下图是太阳能路灯控制器结构设计图。

  3、太阳能路灯控制器选择ATMEL公司的8位单片机AT89S52为核心的智能控制模块,在整体上具有低功耗、性能高的特点。

单片机振荡电路

    单片机振荡电路如下图所示。

复位电路

    1、复位电路如下图所示,电路结构简单,稳定可靠。

    2、系统正常工作电压为5V,系统采用12V/24V的铅酸蓄电池供电,蓄电池电压不稳定,所以需要对电源进行稳压。本系统采用LM7805三端稳压器,其输入电压在5~24V时均可以保证输出为稳定的+5V。LM7805组成稳压电源只需要很少的外围元件,使用起来非常方便,工作稳定可靠J。

    系统电源电路如下图所示。

3、太阳能电池采样和蓄电池采样对于系统正常运行起着非常重要的作用。

    3.1、太阳能路灯控制器要对蓄电池充放电进行合理控制,即需对蓄电池、太阳能电池板电压进行采样。为此,AT89S52单片机就要外接A/D转换模块,把电压转换为数字信号,系统选用v/F转换芯片LM331组成数模转换电路J。

    3.2、在系统采样设计中,为了防止因为外部因素导致AT89S52程序跑飞或死机,提高系统稳定性,在LM331与单片机之间还需增加单通道的高速光电隔离器6n137J。下图为太阳能电池板采样电路图。系统蓄电池采样和太阳能电池板采样电路相同。

 4、照明系统框图如下图所示。 

 5、LED太阳能节能灯照明系统框图:

    5.1、单片机经由检测电路检测太阳能发电板所发出来的电压,并由1组A/DCl的转换值来判断是否已天黑。

    5.2、当光线充足时,将太阳能发电板所发出的电送至定电压电路,此时,单片机也会由其A/DC1转换值来监控充电电池的电量,并以绿色、黄色与红色的LED来表示充电电池的电量。单片机以定电压的方式来对充电电池充电,只要定电压电路的最大输出电压值依充电电池的规格来设定,就不会发生电池过充而损坏的情形。

    5.3、当光线不足(天黑)时,单片机经由A/DC1的转换值检测到太阳能发电板发出的电压已接近于零,此时,单片机会依此A/DC1转换后数值来判断是否点亮LED灯,当此A/DC1转换后的值低于某一临界值时,该值越小,则单片机会输出一脉宽越宽的PWM信号,使LED灯的亮度越亮。

    5.4、如果仅靠太阳能电池来对充电电池充电,其充电量可能不足以提供LED灯点亮一整晚。所以我们预计入夜后,此太阳能灯约只点亮6h,此时大约已过深夜12点。

    5.5、另外,我们再加入光敏电阻与人体红外线检测器,当太阳能灯点亮6h而熄灭后,如果光敏电阻检测到有车辆驶近,或者人体红外线检测器侦测到有人靠近时,则LED灯会再点亮数分钟,以作照明之用。如此,仅靠太阳能电池的充电量应足以供此LED灯使用。

    6、定压、稳压电路

    定压、稳压电路如下图所示。

7、设计中,HT7544是1只4.4V的稳压块,把HT7544的GND脚接地,其输入脚(in)输入的电压大于4.4V,其输出脚(out)会固定输出4.4V的电压。因为HT7544的输出脚(out)电压~LGND大于4-4V,所以流过电阻Rl的电流为  

   8、在本设计中,单片机HT46R23需要的5v稳压电源通过集成稳压块HT7551来供给。HT7551的GND脚接地,其输人脚(in)输入大于5V的电压时,输出脚(out)会固定输出5V的电压。两只10k1)的电阻R3与R4作分压电路,其分压后之电压流人单片机HT46R23的A/DC2转换接脚(PB2),以供单片机检测充电电池的电压。

    9、LED驱动电路

    LED的驱动电路如下图所示。 

10、驱动电路中,PWM信号由单片机HT46R23的PWMO端输出。

    10.1、由上图可知,太阳能发电板所发出来的电压通过电阻R5与R6的分压电路取出。因为,使用的太阳能发电板的工作电压为7.5v,而单片机A/DCl转换的类比输入电压最大为5v,使用两只10kQ的电阻R5与R6来作分压电路,使流入单片机A/DC1转换(PB1)的电压为太阳能发电板所输出电压的一半。

    10.2、当A/DC1转换后的数字值小于某1个临界值时,单片机会输出一数字信号c,该信号打开电源控制电路,使电池的电能流人驱动电路中。同时,输出PWM的信号以点亮LED灯。A/Dc1转换后的数字值越小,单片机输出PWM的脉波宽度越宽。

    11、检测电路

    检测电路如下图所示。光敏电阻(Cds)与人体红外线传感器(GDS),分别检测车辆灯光与人体的红外线。 

12、定压、稳压电路

    12.1、上图的最左边是光敏电阻,为检测车灯的电路。光敏电阻受光越强,其电阻值越小。在夜晚时,光敏电阻的电阻值变大,单片机HT46R23的PB0所检测到的电压值较小;当车灯照射到光敏电阻时,光敏电阻的电阻值就会变小,单片机之PB0检测到的电压值就会比较大。

    12.2、因此在夜晚,当单片机的PB0所检测到的电压值大于某临界值时,即表示有车辆接近,则单片机将点亮LED灯。

    12.3、图中的人体红外线传感器的检测电路是当有人进入检测范围时,人体红外线传感器会发出1个小脉波,因为此小脉波的功率很小,需要经过几次放大器(LM324)的放大,其信号才能有效地被单片机接收,所以平时无人进人人体红外线检测器的检测范围时,此电路的输出为低电位;当单片机的PC0收到高电位时,表示有人进人人体红外线传感器的检测范围,单片机将点亮LED照明灯。

    (1)在成品上方的太阳能发电板有受光的情形下,其输出是否有7.5V以上的太阳能发电板之工作电压。

    (2)如果上述测试正常的话,在未接充电电池的情形下,定电压电路.HT7544的输出端应该会有约6V的电压输出。流经1个整流二极管后,约为5.4v的电压,以供充电电池充电之用。

    (3)将充电电池接至电路中稳压电路,HT7551会输出5V的电压给单片机使用。

    (4)以不透光物质遮蔽太阳能发电板,以模拟人夜的情形。当单片机的PB1所检测到的太阳能发电板的输出电压值小于某一临界值时,表示天色已暗。此时,单片机会输出一高电位给控制信号c,以打开电源控制电路,使电池的电能流人LED驱动电路中。同时,单片机会输出FWM信号以点亮LED灯。6h的时间较长,此时让LED灯持续点亮1min,以模拟点亮6h,6h后应已过深夜,人车已少,所以熄灭LED灯。

    (5)当已过6h而LED灯熄灭后,如果有人车接近,则装在PB0的光敏电阻或装在PCO的人体红外线检测器应会感应到车灯或人体所发出来的红外线。此时,单片机会再点亮LED灯约30S,以作警示或照明之用。此情形直到单片机的PB1所检测到的太阳能发电板所输出的电压值大于某1个临界值时,表示天色已亮,程式再回到开始的状态。

接线说明

    1、 先接蓄电池的连接线

    2、 再接蓄电池到控制器的线

    3、 再接太阳能板到控制器的线

    4、 最后接负载到控制器的线  

    5、 负载为低压钠灯时,在做灯具的时候应该先把整流器的输出端接光源的两端的线先连接好(低压钠灯光源无正负极可任意连接)。把整流器的输入端连接两根足够长的线(要能区分正负极)。在最后接负载到控制器的接线时注意正负极不能接反。

八、交流直流电源之间如何进行变换,变压器、整流器、逆变器、DC-DC变换器的区别

电源有交流电和直流电之分,在很多情况下,需要在这些电源之间进行变换。

交流变交流,用的是变压器

    变压器是根据电磁感应原理制成的一种变换交流电压的设备。变压器一般有初级和次级两个互相独立绕组,这两个绕组共用一个铁芯.变压器初级绕组接通交流电源,在绕组内流过交变电流产生磁势,于是在闭合铁芯中就有交变磁通。初、次级绕组切割磁力线,在次级就能感应出相同频率的交流电。变压器既可以降压,也可以升压,甚至用来隔离而不改变电压值。

交流变直流,用的是整流器

    常见的是整流二极管和晶闸管。几乎所有的家用电器和电脑中都有整流器,安装在电器的电源中。如下图所示是桥式整流电路的原理示意图,将交流电转换成直流电。

直流变交流,用的是逆变器

    逆变一般通过MOS管来实现,从原理上可以分为半桥逆变电路和全桥逆变电路。下面以全桥逆变为例,介绍逆变的过程。

   全桥逆变主要由四个MOS管构成,有两个桥臂,在工作时每个桥臂不能同时导通,对边桥臂导通。

    在MOS管的栅极,由控制板所输出的PWM信号来控制,通过改变方波的占空比可以实现正弦波幅度的控制,这里在程序上涉及到比较复杂的矢量控制/磁场导向控制FOC。原理如下动态图所示。

直流变直流,用的是DC-DC变换器

    常用在仪器仪表中,
DC-DC转换器就是重复通断开关,把直流电压或电流转换成高频方波电压或电流,再经整流平滑变为直流电压输出。

九、STM32的Flash写了保护怎么办

关于STM32对内部Flash的保护 

    为了防止对Flash的非法访问,所有STM32的芯片都提供对Flash的保护,具体分为写保护和读保护。

    如果对Flash设置了写保护,那就无法对Flash进行编程和擦除。在开发STM32的时候,如果出现这种情况,通常仿真器都支持对Flash进行解锁,像jlink,stlink等仿真器都支持这个功能。

    在使用MDK进行调试的时候,可能会遇到如下图所示的报错信息,这时候就要排查Flash是不是被保护起来了。 

   读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:

  • 通过调试器(JTAG或SWD)
  • 从RAM中启动并执行的程序

    写保护是以四页(1KB/页) Flash存储区为单位提供写保护,对被保护的页实施编程或擦除操作将不被执行,同时产生操作错误标志,读与写设置的效果见下表: 

  当Flash读保护生效时,CPU执行程序可以读受保护的Flash区,但存在两个例外情况: 

  • 调试执行程序时
  • 从RAM启动并执行程序时 

    STM32还提供了一个特别的保护,即对Flash存储区施加读保护后,即使没有启用写保护,Flash的第 0 ~ 3 页也将处于写保护状态,这是为了防止修改复位或中断向量而跳转到RAM区执行非法程序代码。 

Flash保护的相关函数   

 读保护设置后将不能读出Flash中的内容。

如何设置读保护

    在程序的开头加入“设置读保护”的代码即可,每次运行代码时都检查一下,如果没有开就打开,如果打开了就跳过。其中,设置读保护的代码如下:

上面的代码执行后,使用j-link就不能读出程序了,实现了代码读保护。需要注意的是,芯片读保护后无法再次烧写新的程序到Flash中,必须要解除读保护才可以。但是当解除读保护的时候STM32会自动擦除整个Flash,起到保护数据的作用。

通过代码解除Flash保护

    解除读保护可以设置在按键里面,方便实现解锁,也可以设置在命令中。如下是解除读保护代码:

    程序中设置一个按键或者命令,可以随时解除Flash的读保护,让芯片又可以重新烧录程序。如果没有留,还可以专门写一个程序,下载到RAM中去运行,用来解除读保护。

    注意:执行后,Flash会自动全部擦除。

通过ST-Link Utility来解除Flash保护

    在STLink连接目标板的情况下打开程序烧写软件ST-Link Utility,在菜单栏的Target下选择connect,因为这时候Flash已经被锁住了,能看到如下图所示的错误提示。

   下面来操作如何解除Flash保护。

    请确保当前已经正确连接了STLink和目标板,在菜单栏Target里打开Option Bytes...选项,发现在这里Read Out Protection选项是Enable,这个表示无法通过SWD读取STM32内部Flash的程序。

    将Read Out Protection选项设置为Disable,并点击Apply。

    这时候Flash已经成功解锁了,跟上文提到的解除Flash保护的结果一样,内部Flash已经被擦除了,如下图红框中所示。

 完成以上步骤之后,在菜单栏Target下选择Disconnect断开与目标板连接。

    重新进入MDK,可以正常对目标板烧写程序了。

通过ST-Link Utility来设置Flash保护

    在菜单栏Target里打开Option Bytes...选项,可以看到下面有Flash sector protection选项。选择Select all之后,发现所有Page的Protection项都已经变成Write Protection了,只要选择Apply选项就可以对Flash进行写保护,如下图所示。

十、开关电源缓冲吸收电路

   基本拓扑电路上一般没有吸收缓冲电路,实际电路上一般有吸收缓冲电路,吸收与缓冲是工程需要,不是拓扑需要。

    吸收与缓冲的功效:

  • 防止器件损坏,吸收防止电压击穿,缓冲防止电流击穿
  • 使功率器件远离危险工作区,从而提高可靠性
  • 降低(开关)器件损耗,或者实现某种程度的关软开
  • 降低di/dt和dv/dt,降低振铃,改善EMI品质
  • 提高效率(提高效率是可能的,但弄不好也可能降低效率)

    也就是说,防止器件损坏只是吸收与缓冲的功效之一,其他功效也是很有价值的。

吸收

    吸收是对电压尖峰而言。

    电压尖峰的成因:

  • 电压尖峰是电感续流引起的。
  • 引起电压尖峰的电感可能是:变压器漏感、线路分布电感、器件等效模型中的感性成分等。
  • 引起电压尖峰的电流可能是:拓扑电流、二极管反向恢复电流、不恰当的谐振电流等。

    减少电压尖峰的主要措施是:

  • 减少可能引起电压尖峰的电感,比如漏感、布线电感等
  • 减少可能引起电压尖峰的电流,比如二极管反向恢复电流等
  • 如果可能的话,将上述电感能量转移到别处。
  • 采取上述措施后电压尖峰仍然不能接受,最后才考虑吸收。吸收是不得已的技术措施

拓扑吸

 将开关管Q1、拓扑续流二极管D1和一个无损的拓扑电容C2组成一个在布线上尽可能简短的吸收回路。

    拓扑吸收的特点:

  • 同时将Q1、D1的电压尖峰、振铃减少到最低程度。
  • 拓扑吸收是无损吸收,效率较高。
  • 吸收电容C2可以在大范围内取值。
  • 拓扑吸收是硬开关,因为拓扑是硬开关。

体二极管反向恢复吸收

    开关器件的体二极管的反向恢复特性,在关断电压的上升沿发挥作用,有降低电压尖峰的吸收效应。

RC 吸收

  • RC吸收的本质是阻尼吸收。
  • 有人认为R 是限流作用,C是吸收。实际情况刚好相反。
  • 电阻R 的最重要作用是产生阻尼,吸收电压尖峰的谐振能量,是功率器件。
  • 电容C的作用也并不是电压吸收,而是为R阻尼提供能量通道。
  • RC吸收并联于谐振回路上,C提供谐振能量通道,C 的大小决定吸收程度,最终目的是使R形成功率吸收。
  • 对应一个特定的吸收环境和一个特定大小的电容C,有一个最合适大小的电阻R,形成最大的阻尼、获得最低的电压尖峰。
  • RC吸收是无方向吸收,因此RC吸收既可以用于单向电路的吸收,也可用于双向或者对称电路的吸收。

RC 吸收设计

  • RC吸收的设计方法的难点在于:吸收与太多因素有关,比如漏感、绕组结构、分布电感电容、器件等效电感电容、电流、电压、功率等级、di/dt、dv/dt、频率、二极管反向恢复特性等等。而且其中某些因素是很难获得准确的设计参数的。
  • 比如对二极管反压的吸收,即使其他情况完全相同,使用不同的二极管型号需要的RC吸收参数就可能有很大差距。很难推导出一个通用的计算公式出来。
  • R 的损耗功率可大致按下式估算:
  • Ps = FCU2
  • 其中U为吸收回路拓扑反射电压。
  • 工程上一般应该在通过计算或者仿真获得初步参数后,还必须根据实际布线在板调试,才能获得最终设计参数。

RCD 吸收

特点

  • RCD吸收不是阻尼吸收,而是靠非线性开关D 直接破坏形成电压尖峰的谐振条件,把电压尖峰控制在任何需要的水平。
  • C 的大小决定吸收效果(电压尖峰),同时决定了吸收功率(即R的热功率)。
  • R 的作用只是把吸收能量以热的形式消耗掉。其电阻的最小值应该满足开关管的电流限制,最大值应该满足PWM逆程RC放电周期需要,在此范围内取值对吸收效果影响甚微。
  • RCD吸收会在被保护的开关器件上实现某种程度的软关断,这是因为关断瞬间开关器件上的电压即吸收电容C上的电压等于0,关断动作会在C 上形成一个充电过程,延缓电压恢复,降低dv/dt,实现软关断。

不适应性

  • RCD吸收一般不适合反激拓扑的吸收,这是因为RCD吸收可能与反激拓扑相冲突。
  • RCD吸收一般不适合对二极管反压尖峰的吸收,因为RCD吸收动作有可能加剧二极管反向恢复电流。

RCD 钳位吸收

  • 尽管RCD钳位与RCD吸收电路可以完全相同,但元件参数和工况完全不同。RCD吸收RC时间常数远小于PWM周期,而RCD钳位的RC时间常数远大于PWM周期。
  • 与RCD吸收电容的全充全放工况不同,RCD钳位的电容可以看成是电压源,其RC充放电幅度的谷值应不小于拓扑反射电压,峰值即钳位电压。
  • 由于RCD钳位在PWM电压的上升沿和下降沿都不会动作,只在电压尖峰出现时动作,因此RCD钳位是高效率的吸收。

齐纳钳位吸收

  • 齐纳钳位的几种形式。
  • 齐纳钳位也是在电压尖峰才起作用,也是高效率吸收。
  • 某些场合,齐纳钳位需要考虑齐纳二极管的反向恢复特性对电路的影响。
  • 齐纳吸收需注意吸收功率匹配,必要时可用有源功率器件组成大功率等效电路

无损吸收

无损吸收的条件

  • 吸收网络不得使用电阻。
  • 不得形成LD电流回路。
  • 吸收回路不得成为拓扑电流路径。
  • 吸收能量必须转移到输入侧或者输出侧。
  • 尽量减少吸收回路二极管反向恢复电流的影响。

    无损吸收是强力吸收,不仅能够吸收电压尖峰,甚至能够吸收拓扑反射电压,比如:

缓冲

    缓冲是对冲击尖峰电流而言。

  • 引起电流尖峰第一种情况是二极管(包括体二极管)反向恢复电流。
  • 引起电流尖峰第二种情况是对电容的充放电电流。这些电容可能是:电路分布电容、变压器绕组等效分布电容、设计不恰当的吸收电容、设计不恰当的谐振电容、器件的等效模型中的电容成分等等。

    缓冲的基本方法:

    在冲击电流尖峰的路径上串入某种类型的电感,可以是以下类型:

缓冲的特性:

  • 由于缓冲电感的串入会显著增加吸收的工作量,因此缓冲电路一般需要与吸收电路配合使用。
  • 缓冲电路延缓了导通电流冲击,可实现某种程度的软开通(ZIS)。
  • 变压器漏感也可以充当缓冲电感。

LD 缓冲

特点:

  • 可不需要吸收电路配合。
  • 缓冲释能二极管与拓扑续流二极管电流应力相当甚至更大。
  • 缓冲释能二极管的损耗可以简单理解为开关管减少的损耗。
  • 适当的缓冲电感(L3)参数可以大幅度减少开关管损耗,实现高效率。

LR 缓冲

 特点:

  • 需要吸收电路配合以转移电感剩余能量。
  • 缓冲释能电阻R的损耗较大,可简单理解为是从开关管转移出来的损耗。
  • R、L参数必须实现最佳配合,参数设计调试比较难以掌握。
  • 只要参数适当仍然能够实现高效率。

饱和电感缓冲

  • 饱和电感的电气性能表现为对di/dt敏感。
  • 在一个冲击电流的上升沿,开始呈现较大的阻抗,随着电流的升高逐渐进入饱和,从而延缓和削弱了冲击电流尖峰,即实现软开通。
  • 在电流达到一定程度后,饱和电感因为饱和而呈现很低的阻抗,这有利于高效率地传输功率。
  • 在电流关断时,电感逐渐退出饱和状态,一方面,由于之前的饱和状态的饱和电感量非常小,即储能和需要的释能较小。另一方面,退出时电感量的恢复可以减缓电压的上升速度,有利于实现软关断。
  • 以Ls2为例,5u表示磁路截面积5mm2,大致相当于1颗PC40材质4*4*2的小磁芯。

饱和电感特性

  • 热特性

    饱和电感是功率器件,通过进入和退出饱和过程的磁滞损耗(而不是涡流损耗或者铜损)吸收电流尖峰能量,主要热功率来自于磁芯。

    这一方面要求磁芯应该是高频材料,另一方面要求磁芯温度在任何情况下不得超过居里温度。这意味着饱和电感的磁芯应该具有最有利的散热特性和结构,即:更高的居里温度、更高的导热系数、更大的散热面积、更短的热传导路径。

  • 饱和特性

    显然饱和电感一般不必考虑使用气隙或者不易饱和的低导磁率材料。

  • 初始电感等效特性

    在其他条件相同情况下,较低导磁率的磁芯配合较多匝数、与较高导磁率的磁芯配合较少匝数的饱和电感初始电感相当,缓冲效果大致相当。

    这意味着直接采用1 匝的穿心电感总是可能的,因为任何多匝的电感总可以找到更高导磁率的磁芯配合1 匝等效之。这还意味着磁芯最高导磁率受到限制,如果一个适合的磁芯配合1 匝的饱和电感,将没有使用更高导磁率的磁芯配合更少匝数的可能。

  • 磁芯体积等效特性

    在其他条件相同情况下,相同体积的磁芯的饱和电感缓冲效果大致相当。既然如此,磁芯可以按照最有利于散热的磁路进行设计。比如细长的管状磁芯比环状磁芯、多个小磁芯比集中一个大磁芯、穿心电感比多匝电感显然具有更大的散热表面积。

  • 组合特性

    有时候,单一材质的磁芯并不能达到工程上需要的缓冲效果,采用多种材质的磁芯相互配合或许才能能够满足工程需要。

 无源无损缓冲吸收

  • 如果缓冲电感本身是无损的(非饱和电感),而其电感储能又是经过无损吸收的方式处理的,即构成无源无损缓冲吸收电路,实际上这也是无源软开关电路。
  • 缓冲电感的存在延迟和削弱的开通冲击电流,实现了一定程度的软开通。
  • 无损吸收电路的存在延迟和降低了关断电压的dv/dt,实现了一定程度的软关断。
  • 实现无源软开关的条件与无损吸收大致相同。并不是所有拓扑都能够搭建出一个无源软开关电路。因此除了经典的电路外,很多无源软开关电路都是被专利的热门。
  • 无源无损软开关电路效率明显高于其他缓冲吸收方式,与有源软开关电路效率相差无几。因此只要能够实现无源软开关的电路,可不必采用有源软开关。

吸收缓冲电路性能对

滤波缓

  • 电路中的电解电容一般具有较大的ESR(典型值是百毫欧姆数量级),这引起两方面问题:一是滤波效果大打折扣;二是纹波电流在ESR上产生较大损耗,这不仅降低效率,而且由于电解电容发热直接导致的可靠性和寿命问题。
  • 一般方法是在电解电容上并联高频无损电容,而事实上,这一方法并不能使上述问题获得根本的改变,这是由于高频无损电容在开关电源常用频率范围内仍然存在较大的阻抗的缘故。
  • 提出的办法是:用电感将电解和CBB分开,CBB位于高频纹波电流侧,电解位于直流(工频)侧,各自承担对应的滤波任务。
  • 设计原则:Π形滤波网络的谐振频率Fn应该错开PWM频率Fp。可取Fp=(1.5~2)Fn 。
  • 这一设计思想可以延伸到直流母线滤波的双向缓冲,或者其他有较大滤波应力的电路结构。

振铃

   振铃的危害:

  • MEI测试在振铃频率容易超标。
  • 振铃将引起振铃回路的损耗,造成器件发热和降低效率。
  • 振铃电压幅度超过临界值将引起振铃电流,破环电路正常工况,效率大幅度降低。

    振铃的成因:

  • 振铃多半是由结电容和某个等效电感的谐振产生的。对于一个特定频率的振铃,总可以找到原因。电容和电感可以确定一个频率,而频率可以观察获得。电容多半是某个器件的结电容,电感则可能是漏感。
  • 振铃最容易在无损(无电阻的)回路发生。比如:副边二极管结电容与副边漏感的谐振、杂散电感与器件结电容的谐振、吸收回路电感与器件结电容的谐振等等。

    振铃的抑制:

  • 磁珠吸收,只要磁珠在振铃频率表现为电阻,即可大幅度吸收振铃能量,但是不恰当的磁珠也可能增加振铃。
  • RC 吸收,其中C可与振铃(结)电容大致相当,R 按RC吸收原则选取。
  • 改变谐振频率,比如:只要将振铃频率降低到PWM频率相近,即可消除PWM上的振铃。
  • 特别地,输入输出滤波回路设计不当也可能产生谐振,也需要调整谐振频率或者其他措施予以规避。

吸收缓冲能量再利用

  RCD吸收能量回收电路:

    只要将吸收电路的正程和逆程回路分开,形成相对0 电位的正负电流通道,就能够获得正负电压输出。其设计要点为:

    RCD吸收电路参数应主要满足主电路吸收需要,不建议采用增加吸收功率的方式增加直流输出功率。输出电流由L1、R1控制。逆程回路的阻抗同样应满足吸收回路逆程时间的需要,调整L1、R1的大小可控制输出功率大小,当R1减少到0 时,该电路达到最大可能输出电流和最大输出功率。

    输出电压基本上可由齐纳门槛电压任意设定,需注意齐纳二极管的功率匹配。

十一、总结单片机的基本概念

单片机执行指令

    我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令。

    那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?

    这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。

    为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。

单片机数的本质和物理现象

    我们知道,计算机可以进行数学运算,这令我们非常难以理解,它们只是一些电子元器件,怎么可以进行数学运算呢?

    我们人类做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算最后写出结果,运算的原材料是37和45,结果是82都是写在纸上的,计算机中又是放在什么地方呢?

    为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们可以用‘0’和‘1’来代替这两种状态:规定亮为‘1’、不亮为‘0’。

    现在放上三盏灯,一共有几种状态呢?我们列表来看一下:000 / 001 / 010 / 011 / 100 / 101 / 110 / 111。我们来看,这个000 / 001 / 101 不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一定的顺序排好后,灯的亮和灭就代表了数字了。

    让我们再抽象一步,灯为什么会亮呢?是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。

单片机数位的含义

    通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,可以代表两种状态:0和1,实际上这就是一个二进制位。

    因此我们就把一根线称之为一“位”,用BIT表示。

单片机字节的含义

    一根线可以表示0和1,两根线可以表达00 / 01 / 10 / 11四种状态,也就是可以表达0~3,而三根可以表达0~7,计算机中通常用8根线放在一起,同时计数,就可以表示0~255一共256种状态。

    这8根线或者8位就称之为一个字节(BYTE)。

单片机存储器的构造

    存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了。

    一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉。至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。

    有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了。

    可是问题出来了,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉。这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的。因此,要在结构上稍作变化。

    需要在每个单元上有个控制线,想要把数据放进哪个单元,就把一个信号给这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了。而其它单元控制线上没有信号,所以开关不打开,不会受到影响。

    这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了。同样,如果要从某个单元中取数据,也只要打开相应的控制开关就行了。

单片机存储器的译码

    那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元的控制线都引到集成电路的外面不就行了吗?

    事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。

    有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表8种,256种状态又需要几根线代表?8根线,所以65536种状态我们只需要16根线就可以代表了。

单片机存储器的选片概念

    至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。

    这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就有问题出现了:比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?怎样分辩?

    办法很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关就行了。平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。

    这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。

    读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?

    只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。

单片机的总线概念

    从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的。

    所以我们称之为数据总线,总线英文名为BUS,总即公交车道,谁也可以走。而十六根地址线也是连在一起的,称之为地址总线。

十二、直流电压有效值

电压的有效值是多少?

    最近遇到好多问题,都与基本概念相关。忍不住,就想多说几句。

    研究生面试,我出了一个问题,一个100kHz的方波信号,幅度大约是几伏的数量级,想测量其有效值,用什么仪器,怎么测?多数学生一脸茫然,搞的我不好意思,惭愧题目是不是太难了。我急了,问学生,一个1.5V的电池,其电压有效值是多少?学生问我,直流量有有效值吗?我忍。我不得不忍。

    什么是有效值?一个变化电压的有效值,是指把它加载到一个确定的阻性负载上,在一个周期内的功,与电压为A的直流量作用在相同的负载上,在等长时间内的功相同,那么该变化电压的有效值就是A。广义理解,一个电池的电压有效值就是1.5V,一个幅度为A的方波,如果是单极性方波,占空比50%,有效值为幅值A的0.707倍。这时候,又有人问我,什么是方波啊?

    以前的一个学生,参与的一个题目,用一个10欧姆电阻把一个待测的1uA左右的电流转变成10uV左右的电压,然后用AD620和多级直流放大进入ADC,却发现输出总有很大的偏移量。于是就买了好些个放大器,挑选,想让偏移量小些。查查资料就知道,AD620A级的输入失调电压典型值为30uV,最大值为125uV,已经远大于被测信号10uV。至少应该知道,此处使用被大家广为推崇的AD620是不靠谱的。

    但是,设计者就是不知道这个道理。

    昨晚我的学生来聊天,问我,学这些基础有用吗?其实,不用问我,问问歌唱演员就可以了,问他们,吊嗓子重要吗?问问厨师,刀工重要吗?

    现阶段,很多比赛都是些花里胡哨的作品,很吸引眼球,功能也很强悍。但是面对这些竞赛的孩子,你就是不能问他们问题,一问就露馅了——底子很薄,但成果很强。就像以“满汉全席”夺得厨师大赛冠军一样,回家后做不好一个炒土豆丝。

    所以,我特别希望能多一些比赛,就赛那些基础的东西。比如12V电源,谁能做出动态范围最大的单管放大器,或者做一个最准的电子秤,就比这些指标。噪声最小、频带最宽、带内最平坦、失真度最小、温度稳定性最好等等,可以研究的东西很多。

    但很遗憾,谁也不会对此感兴趣。就比赛一个放大器,外行看起来一点都不拉风,没劲透顶了。

    可是看看身边现状,看看某些日益堕落的教师和学生,好大喜功的媒体,谁能救救我们的基础教育,谁能把孩子们拉回来,静静地在实验室做一些看似枯燥,却蕴含玄机的实验?

下面科普基本概念

一、基本概念:

    交流电的有效值:

    在相同的电阻上分别通以直流电流和交流电流,经过一个交流周期的时间,如果它们在电阻上所损失的电能相等的话,则把该直流电流(电压)的大小作为交流电流(电压)的有效值,正弦电流(电压)的有效值等于其最大值(幅值)的0.707倍。

    交流电的平均值:

    对于交流电来说,数学上的平均值是0(因为是正负是对称的)。但电工技术上我们关心的是其量值(绝对值)的大小。所以电工技术上的平均值指的是电流(电压)的绝对值在一个周期内的平均值。

二、例子:

    1、10V的直流电压加在10Ω电阻的两端,电阻的发热功率是多少?

    这个答案很简单,坛里所有的朋友都会:P=U×U/R=10V×10V/10Ω=10W

    2、如果把上面的10V直流电压改成下图±10V的方波呢,电阻的发热功率又是多少?

    答案是否也不难?因为负半周时电压的平方和正半周时是一样的,所以功率也和上面一样还是10W!

    电压是负的功率还是正的,也就是功率和电压的正负无关。

    图中红色部分是正半周做的功,蓝色部分是负半周作的功。

    问:这个±10V的方波电压的平均值是多少?有效值是多少?峰值是多少?

    根据上面的定义,很明显:

    ①平均值是10V(其电压的绝对值在一个周期内的平均值是10V);

    ②有效值是10V(发热功率相同的等效直流电压是10V);

    ③峰值是10V

    3、如果把上面的方波去掉负半周部分(也就是+10V方波),那电阻上的功率又会是多少呢?

    很明显,只有一半时间在做功,从宏观上看其平均功率只有一半了,也就是5W!

同问:这个+10V的方波电压的平均值是多少?有效值是多少?峰值是多少?

    根据上面的定义,很明显:

    ①平均值是5V(其电压的绝对值在一个周期内的平均值是5V);

    ②有效值是7.07V:(发热功率相同的等效直流电压是:U^2=PR=5W×10Ω,U=根号50≈7.07V);

    ③峰值是10V

    可见:去掉负半周后其电压的平均值是原来的一半,而有效值并不是原来的一半,而是原来的0.707倍!峰值不变。

    以上为了便于理解,用了方波做例子计算。

    如果用正弦波,那么就需要有高等数学的微积分知识,对于某些朋友可能理解困难。

    事实上为什么正弦交流电的峰值和有效值之间是根号2倍的关系,以及平均值之间的关系等都是通过积分计算得出的,对于非正弦波其关系就不一定相同了,所以千万别乱套用。

    对于正弦波现在我们可以用有效值相同的方波去等效,那么也可以得出这样的结论:半波整流后的电压有效值是整流前的有效值的0.707倍,而并不是有些朋友理解的一半。

十三、SMT32的HEX文件里加入固件版本的方法

使用MDK编译器,让STM32程序HEX文件中加入固件版本信息。

代码

    代码如下:

   延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 再回收

//------------------------------------------------------------------------------
#include <absacc.h>
//------------------------------------------------------------------------------
#define VERINFO_ADDR_BASE   (0x8009F00) // 版本信息在FLASH中的存放地址
const char Hardware_Ver[] __attribute__((at(VERINFO_ADDR_BASE + 0x00)))  = "Hardware: 1.0.0";
const char Firmware_Ver[] __attribute__((at(VERINFO_ADDR_BASE + 0x20)))  = "Firmware: 1.0.0";
const char Compiler_Date[] __attribute__((at(VERINFO_ADDR_BASE + 0x40))) = "Date: "__DATE__;
const char Compiler_Time[] __attribute__((at(VERINFO_ADDR_BASE + 0x60))) = "Time: "__TIME__;
//------------------------------------------------------------------------------

    写入到程序中:

    选项配置中:Flash地址与大小不用做任何修改!

    HEX文件:

    串口打印输出:

上述方法的缺点

    上述操作可行, 但是有一个缺点:就是生成的bin文件都是满flash大小的, 造成每次烧录都是整个flash读写。相x关文章:详解STM32在线IAP升级。

    其实这个可以把存放地址放到前面,比如偏移1K的地方,都不用改指定地址。

    按照上述操作,程序末尾到VERINFO_ADDR_BASE地址这一段会被填充成0x00。根据需要可以修改VERINFO_ADDR_BASE减小地址,或者说不强制指定地址,由编译器自动分配,但这样就要去找相应的版本标识字符串了。

优化方法

    不想前面这一段被大量填充0x00,让HEX文件体积小一点的话, 可以把选项配置中Flash的Size改小一点,把VERINFO_ADDR_BASE设置成从FlashSize后面的空间开始,这样生成的HEX文件就小了,且未用空间就不会被大量填充0x00了。

    方法如下:

http://www.lryc.cn/news/602987.html

相关文章:

  • JavaScript 回调函数讲解_callback
  • 关于xshell的一些基本内容讲解
  • tsc命令深入全面讲解
  • jQuery 最新语法大全详解(2025版)
  • python对象的__dict__属性详解
  • 防水医用无人机市场报告:现状、趋势与洞察
  • Java 笔记 serialVersionUID
  • 分布式IO详解:2025年分布式无线远程IO采集控制方案选型指南
  • 生物信息学数据技能-学习系列001
  • 秒级构建消息驱动架构:描述事件流程,生成 Spring Cloud Stream+RabbitMQ 代码
  • Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与误报率降低策略(369)
  • 分布式高可用架构核心:复制、冗余与生死陷阱——从主从灾难到无主冲突的避坑指南
  • redis getshell的三种方法
  • 从释永信事件看“积善“与“积恶“的人生辩证法
  • CMake、CMakeLists.txt 基础语法
  • CTF-Web学习笔记:信息泄露篇
  • docker 入门,运行上传自己的首个镜像
  • 降低焊接机器人保护气体消耗的措施
  • Docker 部署 Supabase并连接
  • 记录自己第n次面试(n>3)
  • DAY-13 数组与指针
  • [ The Missing Semester of Your CS Education ] 学习笔记 Vim篇
  • 前端实现银河粒子流动特效的技术原理与实践
  • Linux 软件包管理详解:从命令到实战
  • 计算机网络编程-Socket通信以及实战
  • STM32 USB HOST 驱动FT232 USB转串
  • 安装anaconda后,如何进入python解释器
  • SSH 远程控制及相关工具
  • 常见的JVM虚拟机的参数详解
  • “量子通信”