自己的原文哦~ https://blog.51cto.com/whaosoft/14135123
一、MOS管知识
MOS管,即金属(Metal)—氧化物(Oxide)—半导体(Semiconductor)场效应晶体管,是一种应用场效应原理工作的半导体器件。
和普通双极型晶体管相比,MOS管具有输入阻抗高、噪声低、动态范围大、功耗小、易于集成等优势,在开关电源、镇流器、高频感应加热、高频逆变焊机、通信电源等高频电源领域得到了越来越普遍的应用。
MOS管的种类及结构
MOS管是FET的一种(另一种为JFET结型场效应管),主要有两种结构形式:N沟道型和P沟道型;又根据场效应原理的不同,分为耗尽型(当栅压为零时有较大漏极电流)和增强型(当栅压为零,漏极电流也为零,必须再加一定的栅压之后才有漏极电流)两种。因此,MOS管可以被制构成P沟道增强型、P沟道耗尽型、N沟道增强型、N沟道耗尽型4种类型产品。
图表1 MOS管的4种类型
每一个MOS管都提供有三个电极:Gate栅极(表示为“G”)、Source源极(表示为“S”)、Drain漏极(表示为“D”)。接线时,对于N沟道的电源输入为D,输出为S;P沟道的电源输入为S,输出为D;且增强型、耗尽型的接法基本一样。
图表2 MOS管内部结构图
从结构图可发现,N沟道型场效应管的源极和漏极接在N型半导体上,而P沟道型场效应管的源极和漏极则接在P型半导体上。场效应管输出电流由输入的电压(或称场电压)控制,其输入的电流极小或没有电流输入,使得该器件有很高的输入阻抗,这也是MOS管被称为场效应管的重要原因。
MOS管工作原理
1、N沟道增强型场效应管原理
N沟道增强型MOS管在P型半导体上生成一层SiO2薄膜绝缘层,然后用光刻工艺扩散两个高掺杂的N型区,从N型区引出电极(漏极D、源极S);在源极和漏极之间的SiO2绝缘层上镀一层金属铝作为栅极G;P型半导体称为衬底,用符号B表示。由于栅极与其它电极之间是相互绝缘的,所以NMOS又被称为绝缘栅型场效应管。
当栅极G和源极S之间不加任何电压,即VGS=0时,由于漏极和源极两个N+型区之间隔有P型衬底,相当于两个背靠背连接的PN结,它们之间的电阻高达1012Ω,即D、S之间不具备导电的沟道,所以无论在漏、源极之间加何种极性的电压,都不会产生漏极电流ID。
图表3 N沟道增强型MOS管结构示意图
当将衬底B与源极S短接,在栅极G和源极S之间加正电压,即VGS>0时,如图表3(a)所示,则在栅极与衬底之间产生一个由栅极指向衬底的电场。在这个电场的作用下,P衬底表面附近的空穴受到排斥将向下方运动,电子受电场的吸引向衬底表面运动,与衬底表面的空穴复合,形成了一层耗尽层。
如果进一步提高VGS电压,使VGS达到某一电压VT时,P衬底表面层中空穴全部被排斥和耗尽,而自由电子大量地被吸引到表面层,由量变到质变,使表面层变成了自由电子为多子的N型层,称为“反型层”,如图表3(b)所示。
反型层将漏极D和源极S两个N+型区相连通,构成了漏、源极之间的N型导电沟道。把开始形成导电沟道所需的VGS值称为阈值电压或开启电压,用VGS(th)表示。显然,只有VGS>VGS(th)时才有沟道,而且VGS越大,沟道越厚,沟道的导通电阻越小,导电能力越强;“增强型”一词也由此得来。
图表4 耗尽层与反型层产生的结构示意图
在VGS>VGS(th)的条件下,如果在漏极D和源极S之间加上正电压VDS,导电沟道就会有电流流通。漏极电流由漏区流向源区,因为沟道有一定的电阻,所以沿着沟道产生电压降,使沟道各点的电位沿沟道由漏区到源区逐渐减小,靠近漏区一端的电压VGD最小,其值为VGD=VGS-VDS,相应的沟道最薄;靠近源区一端的电压最大,等于VGS,相应的沟道最厚。
这样就使得沟道厚度不再是均匀的,整个沟道呈倾斜状。随着VDS的增大,靠近漏区一端的沟道越来越薄。
当VDS增大到某一临界值,使VGD≤VGS(th)时,漏端的沟道消失,只剩下耗尽层,把这种情况称为沟道“预夹断”,如图表4(a)所示。继续增大VDS[即VDS>VGS-VGS(th)],夹断点向源极方向移动,如图表4(b)所示。
尽管夹断点在移动,但沟道区(源极S到夹断点)的电压降保持不变,仍等于VGS-VGS(th)。因此,VDS多余部分电压[VDS-(VGS-VGS(th))]全部降到夹断区上,在夹断区内形成较强的电场。这时电子沿沟道从源极流向夹断区,当电子到达夹断区边缘时,受夹断区强电场的作用,会很快的漂移到漏极。
图表5 预夹断及夹断区形成示意图
2、P沟道增强型场效应管原理
P沟道增强型MOS管因在N型衬底中生成P型反型层而得名,其通过光刻、扩散的方法或其他手段,在N型衬底(基片)上制作出两个掺杂的P区,分别引出电极(源极S和漏极D),同时在漏极与源极之间的SiO2绝缘层上制作金属栅极G。其结构和工作原理与N沟道MOS管类似;只是使用的栅-源和漏-源电压极性与N沟道MOS管相反。
在正常工作时,P沟道增强型MOS管的衬底必须与源极相连,而漏极对源极的电压VDS应为负值,以保证两个P区与衬底之间的PN结均为反偏,同时为了在衬底顶表面附近形成导电沟道,栅极对源极的电压也应为负。
图表6 P沟道增强型MOS管的结构示意图
当VDS=0时。在栅源之间加负电压比,由于绝缘层的存在,故没有电流,但是金属栅极被补充电而聚集负电荷,N型半导体中的多子电子被负电荷排斥向体内运动,表面留下带正电的离子,形成耗尽层。
随着G、S间负电压的增加,耗尽层加宽,当VDS增大到一定值时,衬底中的空穴(少子)被栅极中的负电荷吸引到表面,在耗尽层和绝缘层之间形成一个P型薄层,称反型层,如图表6(2)所示。
这个反型层就构成漏源之间的导电沟道,这时的VGS称为开启电压VGS(th),达到VGS(th)后再增加,衬底表面感应的空穴越多,反型层加宽,而耗尽层的宽度却不再变化,这样我们可以用VGS的大小控制导电沟道的宽度。
图表7 P沟道增强型MOS管耗尽层及反型层形成示意图
当VDS≠0时。导电沟道形成以后,D、S间加负向电压时,那么在源极与漏极之间将有漏极电流ID流通,而且ID随VDS而增,ID沿沟道产生的压降使沟道上各点与栅极间的电压不再相等,该电压削弱了栅极中负电荷电场的作用,使沟道从漏极到源极逐渐变窄,如图表7(1)所示。
当VDS增大到使VGD=VGS(即VDS=VGS-VGS(TH)),沟道在漏极附近出现预夹断,如图表7(2)所示。再继续增大VDS,夹断区只是稍有加长,而沟道电流基本上保持预夹断时的数值,其原因是当出现预夹断时再继续增大VDS,VDS的多余部分就全部加在漏极附近的夹断区上,故形成的漏极电流ID近似与VDS无关。
图表8 P沟道增强型MOS管预夹断及夹断区形成示意图
3、N沟道耗尽型场效应管原理
N沟道耗尽型MOS管的结构与增强型MOS管结构类似,只有一点不同,就是N沟道耗尽型MOS管在栅极电压VGS=0时,沟道已经存在。这是因为N沟道是在制造过程中采用离子注入法预先在D、S之间衬底的表面、栅极下方的SiO2绝缘层中掺入了大量的金属正离子,该沟道亦称为初始沟道。
当VGS=0时,这些正离子已经感应出反型层,形成了沟道,所以只要有漏源电压,就有漏极电流存在;当VGS>0时,将使ID进一步增加;VGS<0时,随着VGS的减小,漏极电流逐渐减小,直至ID=0。对应ID=0的VGS称为夹断电压或阈值电压,用符号VGS(off)或Up表示。
由于耗尽型MOSFET在VGS=0时,漏源之间的沟道已经存在,所以只要加上VDS,就有ID流通。如果增加正向栅压VGS,栅极与衬底之间的电场将使沟道中感应更多的电子,沟道变厚,沟道的电导增大。
如果在栅极加负电压(即VGS<0),就会在相对应的衬底表面感应出正电荷,这些正电荷抵消N沟道中的电子,从而在衬底表面产生一个耗尽层,使沟道变窄,沟道电导减小。当负栅压增大到某一电压VGS(off)时,耗尽区扩展到整个沟道,沟道完全被夹断(耗尽),这时即使VDS仍存在,也不会产生漏极电流,即ID=0。
图表9 N沟道耗尽型MOS管结构(左)及转移特性(右)示意图
4、P沟道耗尽型场效应管原理
P沟道耗尽型MOS管的工作原理与N沟道耗尽型MOS管完全相同,只不过导电的载流子不同,供电电压极性也不同。
5、耗尽型与增强型MOS管的区别
耗尽型与增强型的主要区别在于耗尽型MOS管在G端(Gate)不加电压时有导电沟道存在,而增强型MOS管只有在开启后,才会出现导电沟道;两者的控制方式也不一样,耗尽型MOS管的VGS(栅极电压)可以用正、零、负电压控制导通,而增强型MOS管必须使得VGS>VGS(th)(栅极阈值电压)才行。
由于耗尽型N沟道MOS管在SiO2绝缘层中掺有大量的Na+或K+正离子(制造P沟道耗尽型MOS管时掺入负离子),当VGS=0时,这些正离子产生的电场能在P型衬底中感应出足够的电子,形成N型导电沟道;当VGS>0时,将产生较大的ID(漏极电流);如果使VGS<0,则它将削弱正离子所形成的电场,使N沟道变窄,从而使ID减小。
这些特性使得耗尽型MOS管在实际应用中,当设备开机时可能会误触发MOS管,导致整机失效;不易被控制,使得其应用极少。
因此,日常我们看到的NMOS、PMOS多为增强型MOS管;其中,PMOS可以很方便地用作高端驱动。不过PMOS由于存在导通电阻大、价格贵、替换种类少等问题,在高端驱动中,通常还是使用NMOS替代,这也是市面上无论是应用还是产品种类,增强型NMOS管最为常见的重要原因,尤其在开关电源和马达驱动的应用中,一般都用NMOS管。
MOS管重要特性
1、导通特性
导通的意义是作为开关,相当于开关闭合。NMOS的特性,VGS大于一定的值就会导通,适用于源极接地时的情况(低端驱动),只需栅极电压达到4V或10V就可以了。PMOS的特性是,VGS小于一定的值就会导通,适用于源极接VCC时的情况(高端驱动)。
2、损失特性
不管是NMOS还是PMOS,导通后都有导通电阻存在,电流就会被电阻消耗能量,这部分消耗的能量叫做导通损耗。小功率MOS管导通电阻一般在几毫欧至几十毫欧左右,选择导通电阻小的MOS管会减小导通损耗。
MOS管在进行导通和截止时,两端的电压有一个降落过程,流过的电流有一个上升的过程,在这段时间内,MOS管的损失是电压和电流的乘积,这称之为开关损失。通常开关损失比导通损失大得多,而且开关频率越快,损失也越大。
导通瞬间电压和电流的乘积越大,构成的损失也就越大。缩短开关时间,可以减小每次导通时的损失;降低开关频率,可以减小单位时间内的开关次数。这两种办法都可以减小开关损失。
3、寄生电容驱动特性
跟双极性晶体管相比,MOS管需要GS电压高于一定的值才能导通,而且还要求较快的导通速度。在MOS管的结构中可以看到,在GS、GD之间存在寄生电容,而MOS管的驱动,理论上就是对电容的充放电。
对电容的充电需要一个电流,由于对电容充电瞬间可以把电容看成短路,所以瞬间电流会比较大。选择/设计MOS管驱动时第一个要留意的是可提供瞬间短路电流的大小;第二个要留意的是,普遍用于高端驱动的NMOS,导通时需要栅极电压大于源极电压。
而高端驱动的MOS管导通时源极电压与漏极电压(VCC)相同,所以这时栅极导通电压要比VCC高4V或10V,而且电压越高,导通速度越快,导通电阻也越小。
图表10 4种MOS管特性比较示意图
4、寄生二极管
漏极和源极之间有一个寄生二极管,即“体二极管”,在驱动感性负载(如马达、继电器)应用中,主要用于保护回路。不过体二极管只在单个MOS管中存在,在集成电路芯片内部通常是没有的。
图表11 寄生二极管位置示意图
5、不同耐压MOS管特点
不同耐压的MOS管,其导通电阻中各部分电阻比例分布不同。如耐压30V的MOS管,其外延层电阻仅为总导通电阻的29%,耐压600V的MOS管的外延层电阻则是总导通电阻的96.5%。
不同耐压MOS管的区别主要在于,耐高压的MOS管其反应速度比耐低压的MOS管要慢,因此,它们的特性在实际应用中也表现出了不一样之处,如耐中低压MOS管只需要极低的栅极电荷就可以满足强大电流和大功率处理能力,除开关速度快之外,还具有开关损耗低的特点,特别适应PWM输出模式应用;而耐高压MOS管具有输入阻抗高的特性,在电子镇流器、电子变压器、开关电源方面应用较多。
图表12 不同耐压MOS管特点一览表
MOS管与三极管、IBGT的差别
1、MOS管与三极管的差别
三极管全称为半导体三极管,它的主要作用就是将微小的信号中止放大。MOS管与三极管有着许多相近的地方,也有许多不同之处。
首先是开关速度的不同。三极管工作时,两个PN结都会感应出电荷,当开关管处于导通状态时,三极管处于饱和状态,假设这时三极管截至,PN结感应的电荷要恢复到平衡状态,这个过程需求时间。而MOS由于工作方式不同,不需要恢复时间,因此可以用作高速开关管。
其次是控制方式不同。MOS管是电压控制元件,而三级管是电流控制元件。在只允许从信号源取较少电流的情况下,应选用MOS管;而在信号电压较低,又允许从信号源取较多电流的条件下,应选用三极管。
接着是载流子种类数量不同。电力电子技术中提及的单极器件是指只靠一种载流子导电的器件,双极器件是指靠两种载流子导电的器件。MOS管只应用了一种多数载流子导电,所以也称为单极型器件;而三极管是既有多数载流子,也应用少数载流子导电;是为双极型器件。
第三是灵活性不同。有些MOS管的源极和漏极可以互换运用,栅压也可正可负,灵活性比三极管好。
第四是集成能力不同。MOS管能在很小电流和很低电压的条件下工作,而且它的制造工艺可以很方便地把很多MOS管集成在一块硅片上,因此MOS管在大范围集成电路中得到了普遍的应用。
第五是输入阻抗和噪声能力不同。MOS管具有较高输入阻抗和低噪声等优点,被普遍应用于各种电子设备中,特别用MOS管做整个电子设备的输入级,可以获得普通三极管很难达到的性能。
最后是功耗损耗不同。同等情况下,采用MOS管时,功耗损耗低;而选用三极管时,功耗损耗要高出许多。
当然,在使用成本上,MOS管要高于三极管,因此根据两种元件的特性,MOS管常用于高频高速电路、大电流场所,以及对基极或漏极控制电流比较敏感的中央区域;而三极管则用于低成本场所,达不到效果时才会考虑替换选用MOS管。
表13 MOS管与三极管主要差异比较一览
2、MOS管与IBGT的差别
IGBT(Insulated Gate Bipolar Transistor),绝缘栅双极型晶体管,是由BJT(双极型三极管)和MOS绝缘栅型场效应管组成的复合全控型电压驱动式功率半导体器件,兼有MOSFET的高输入阻抗和功率晶体管(GTR)的低导通压降两方面的优点。
GTR饱和压降低,载流密度大,但驱动电流较大;MOSFET驱动功率很小,开关速度快,但导通压降大,载流密度小。IGBT综合了以上两种器件的优点,驱动功率小而饱和压降低。常见的IGBT又分为单管和模块两种,单管的外观和MOS管有点相像,常见生产厂家有富士电机、仙童半导体等,模块产品一般为内部封装了数个单个IGBT,由内部联接成适合的电路。
由于IGBT原理为先开通MOS管,再驱动三极管开通,该原理决定了IGBT的开关速度比MOS管慢,但比三极管快。
制造成本上,IGBT要比MOS管高很多,这是因为IGBT的制作多了薄片背面离子注入、薄片低温退火(如激光退火)工序,而这两个工序都需要专门针对薄片工艺的昂贵机台。
在低压下,低压MOS管的导通压降通常都控制在0.5V以下(基本不会超过1V的),比如IR4110低压MOS管,其内阻为4mΩ,给它100A的导通电流,导通压降是0.4V左右。电流导通压降低,意味着导通损耗小,同时兼具开关损耗小的特性,因此,IGBT相对MOS管在电性能没有优势,加上在性价比上MOS管更具优势,所以基本上看不到低压IGBT。
MOS管的最大劣势是随着耐压升高,内阻迅速增大,所以高压下内阻很大,致使MOS管不能做大功率应用。
在高压领域,MOS管的开关速度仍是最快的,但高压下MOS管的导通压降很大(内阻随耐压升高而迅速升高),即便是耐压600V的COOLMOS管,导通电阻可高达几欧姆,致使耐流很小。
而IGBT在高耐压下,导通压降几乎没明显增大(IGBT的导通电流通过三极管处理),所以高压下IGBT优势明显,既有高开关速度,又有三极管的大电流特性;另外,在新一代IGBT产品中,开关速度高(纳秒级),导通压降、开关损耗等也有了长足进步,使得IGBT耐脉冲电流冲击力更强,且耐压高、驱动功率小等优点更加突出。
在需要耐压超过150V的使用条件下,MOS管已经基本没有优势。以典型的IRFS4115与第四代IGBT型SKW30N60对比中,在150V、20A连续工况下运行,前者开关损耗为6mJ/pulse,而后者只有1.15mJ/pulse,不足前者的1/5;若用极限工作条件,二者功率负荷相差将更悬殊!
目前,诸如冶金、钢铁、高速铁路、船舶等有大功率需求的领域已较少见到MOS管,而是广泛应用IGBT元器件。
总的来说,IGBT更适用于高压、大电流、低频率(20KHZ左右)场所,电压越高,IGBT越有优势,在600v以上,IGBT的优势非常明显;而MOSFET更适用于低电压、小电流、低频率(几十KHz~几MHz)领域,电压越低,MOS管越有优势。
MOS管主要参数
场效应管的参数很多,包括极限参数、动态电特性参数和静态电特性参数,其中重要的参数有:饱和漏源电流IDSS、夹断电压Up、开启电压VT(加强型绝缘栅管)、跨导gM、漏源击穿电压BVDS、最大耗散功率PDSM和最大漏源电流IDSM等。
1、最大额定参数
最大额定参数,要求所有数值取得条件为Ta=25℃。
图表14 MOS管的绝对最大额定值示例
VDS/VDSS 最大漏源电压
在栅源短接,漏源额定电压VDSS[或写作V(BR)DSS]是指漏-源未发生雪崩击穿前所能施加的最大电压。根据温度的不同,实际雪崩击穿电压可能低于额定VDSS。
VGS/ VGSS 最大栅源电压
VGS[或写作V(BR)GSS]额定电压是栅源两极间可以施加的最大电压。设定该额定电压的主要目的是防止电压过高导致的栅氧化层损伤。实际栅氧化层可承受的电压远高于额定电压,但是会随制造工艺的不同而改变,因此保持VGS在额定电压以内可以保证应用的可靠性。
ID 连续漏电流
ID定义为芯片在最大额定结温TJ(max)下,管表面温度在25℃或者更高温度下,可允许的最大连续直流电流。该参数为结与管壳之间额定热阻RθJC和管壳温度的函数:
ID中并不包含开关损耗,并且实际使用时保持管表面温度在25℃(Tcase)也很难。因此,硬开关应用中实际开关电流通常小于ID 额定值@ TC=25℃的一半,通常在1/3~1/4。
注:采用热阻JA可以估算出特定温度下的ID,这个值更有现实意义。
IDM/IDSM 脉冲漏极电流/最大漏源电流
该参数反映了器件可以处理的脉冲电流的高低,脉冲电流要远高于连续的直流电流。定义IDM的目的在于:线的欧姆区。对于一定的栅-源电压,MOSFET导通后,存在最大的漏极电流,如图表15所示,对于给定的一个栅-源电压,如果工作点位于线性区域内,漏极电流的增大会提高漏-源电压,由此增大导通损耗。长时间工作在大功率之下,将导致器件失效。因此,在典型栅极驱动电压下,需要将额定IDM设定在区域之下,区域的分界点在VGS和曲线相交点。
图表15 MOSFET导通后,存在最大的漏极电流
因此需要设定电流密度上限,防止芯片温度过高而烧毁。这本质上是为了防止过高电流流经封装引线,因为在某些情况下,整个芯片上最“薄弱的连接”不是芯片,而是封装引线。
考虑到热效应对于IDM的限制,温度的升高依赖于脉冲宽度,脉冲间的时间间隔,散热状况,RDS(on)以及脉冲电流的波形和幅度。单纯满足脉冲电流不超出IDM上限并不能保证结温不超过最大允许值。可以参考热性能与机械性能中关于瞬时热阻的讨论,来估计脉冲电流下结温的情况。
PDSM 最大耗散功率
亦即容许沟道总功耗,标定了器件可以消散的最大功耗,可以表示为最大结温和管壳温度为25℃时热阻的函数。
TJ、TSTG 工作温度和存储环境温度的范围
这两个参数标定了器件工作和存储环境所允许的结温区间。设定这样的温度范围是为了满足器件最短工作寿命的要求。如果确保器件工作在这个温度区间内,将极大地延长其工作寿命。
EAS 单脉冲雪崩击穿能量
如果电压过冲值(通常由于漏电流和杂散电感造成)未超过击穿电压,则器件不会发生雪崩击穿,因此也就不需要消散雪崩击穿的能力。雪崩击穿能量标定了器件可以容忍的瞬时过冲电压的安全值,其依赖于雪崩击穿需要消散的能量。
定义额定雪崩击穿能量的器件通常也会定义额定EAS。额定雪崩击穿能量与额定UIS具有相似的意义。EAS标定了器件可以安全吸收反向雪崩击穿能量的高低。
L是电感值,ID为电感上流过的电流峰值,其会突然转换为测量器件的漏极电流。电感上产生的电压超过MOSFET击穿电压后,将导致雪崩击穿。雪崩击穿发生时,即使MOSFET处于关断状态,电感上的电流同样会流过MOSFET器件。电感上所储存的能量与杂散电感上存储,由MOSFET消散的能量类似。
MOSFET并联后,不同器件之间的击穿电压很难完全相同。通常情况是:某个器件率先发生雪崩击穿,随后所有的雪崩击穿电流(能量)都从该器件流过。
EAR 重复雪崩能量
重复雪崩能量已经成为“工业标准”,但是在没有设定频率、其它损耗以及冷却量的情况下,该参数没有任何意义。散热(冷却)状况经常制约着重复雪崩能量。对于雪崩击穿所产生的能量高低也很难预测。
额定EAR的真实意义在于标定了器件所能承受的反复雪崩击穿能量。该定义的前提条件是:不对频率做任何限制,从而器件不会过热,这对于任何可能发生雪崩击穿的器件都是现实的。在验证器件设计的过程中,最好可以测量处于工作状态的器件或者热沉的温度,来观察MOSFET器件是否存在过热情况,特别是对于可能发生雪崩击穿的器件。
IAR 雪崩击穿电流
对于某些器件,雪崩击穿过程中芯片上电流集边的倾向要求对雪崩电流IAR进行限制。这样,雪崩电流变成雪崩击穿能量规格的“精细阐述”;其揭示了器件真正的能力。
图表16 雪崩破坏耐量测定电路和波形
SOA 安全工作区
每种MOS管都会给出其安全工作区域,功率MOS管不会表现出二次击穿,因此安全运行区域只简单从导致结温达到最大允许值时的耗散功率定义。
2、静态电特性
图表17 静态电特性及参数一览表
V(BR)DSS/VBDSS 漏源击穿电压(破坏电压)
或叫BVDS,是指在特定的温度和栅源短接情况下,流过漏极电流达到一个特定值时的漏源电压。这种情况下的漏源电压为雪崩击穿电压。
V(BR)DSS是正温度系数,其漏源电压的最大额定值随着温度的下降而降低,在-50℃时,V(BR)DSS大约是25℃时最大漏源额定电压的90%。
BVGS 栅源击穿电压
在增加栅源电压过程中,使栅极电流IG由零开端剧增时的VGS。
VGS(th)阈值电压
也用VT表示,是指加的栅源电压能使漏极开始有电流,或关断MOSFET时电流消失时的电压,测试的条件(漏极电流、漏源电压、结温)也是有规格的。正常情况下,所有的MOS栅极器件的阈值电压都会有所不同。因此,VGS(th)的变化范围是规定好的。VGS(th)是负温度系数,当温度上升时,MOSFET将会在比较低的栅源电压下开启。
VGS(off) 夹断电压
也用Up表示,是指结型或耗尽型绝缘栅场效应管中,使漏源间刚截止时的栅极电压。
RDS(on) 导通电阻
是指在特定的漏电流(通常为ID电流的一半)、栅源电压和25℃的情况下测得的漏-源电阻。
RGS 栅源电阻
即在栅、源极之间加的电压与栅极电流之比,这一特性有时以流过栅极的栅流表示MOS管的RGS能够很容易地超越1010Ω。
IDSS 零栅压漏极电流
也称为饱和漏源电流,是指在当栅源电压VGS=0时,在特定的漏源电压下的漏源之间泄漏电流。既然泄漏电流随着温度的增加而增大,IDSS在室温和高温下都有规定。漏电流造成的功耗可以用IDSS乘以漏源之间的电压计算,通常这部分功耗可以忽略不计。
IGSS 栅源漏电流
是指在特定的栅源电压情况下流过栅极的漏电流。
3、动态电特性
图表18 动态电特性及参数一览表
Ciss 输入电容
将漏源短接,用交流信号测得的栅极和源极之间的电容就是输入电容。Ciss是由栅漏电容Cgd和栅源电容Cgs并联而成,或者Ciss=Cgs+Cgd。当输入电容充电致阈值电压时器件才能开启,放电致一定值时器件才可以关断。因此驱动电路和Ciss对器件的开启和关断延时有着直接的影响。
Coss 输出电容
将栅源短接,用交流信号测得的漏极和源极之间的电容就是输出电容。Coss是由漏源电容Cds和栅漏电容Cgd并联而成,或者Coss=Cds+Cgd,对于软开关的应用,Coss非常重要,因为它可能引起电路的谐振
Crss 反向传输电容
在源极接地的情况下,测得的漏极和栅极之间的电容为反向传输电容。反向传输电容等同于栅漏电容。Cres=Cgd,反向传输电容也常叫做米勒电容,对于开关的上升和下降时间来说是其中一个重要的参数,他还影响这关断延时时间。电容随着漏源电压的增加而减小,尤其是输出电容和反向传输电容。
Eoss 输出电容存储能量
表示输出电容Coss在MOS管存储的能量大小。由于MOS管的输出电容Coss有非常明显的非线性特性,随VDS电压的变化而变化。所以如果Datasheet提供了这个参数,对于评估MOS管的开关损耗很有帮助。并非所有的MOS管手册中都会提供这个参数,事实上大部分Datasheet并不提供。
di/dt 电流上升率
该参数反应了MOSFET体二极管的反向恢复特性。因为二极管是双极型器件,受到电荷存储的影响,当二极管反向偏置时,PN结储存的电荷必须清除,上述参数正反映了这一特性。
图表19 寄生电容结构和电路示意图
Qgs、Qgd和Qg(栅极电荷值)
Qg栅极电荷值,也叫栅极总充电电量,反应存储在端子间电容上的电荷,既然开关的瞬间,电容上的电荷随电压的变化而变化,所以设计栅驱动电路时经常要考虑栅电荷的影响。
Qgs为从0电荷开始到第一个拐点处,Qgd是从第一个拐点到第二个拐点之间部分(也叫做“米勒”电荷),Qg是从0点到VGS等于一个特定的驱动电压的部分。
图表20 Qgs、Qgd和Qg参数含义示意图
漏电流和漏源电压的变化对栅电荷值影响比较小,而且栅电荷不随温度的变化。测试条件是规定好的。栅电荷的曲线图体现在数据表中,包括固定漏电流和变化漏源电压情况下所对应的栅电荷变化曲线。在上图中,平台电压VGS(pl)随着电流的增大增加的比较小(随着电流的降低也会降低)。平台电压也正比于阈值电压,所以不同的阈值电压将会产生不同的平台电压。详解见下图:
图表21 Qgs、Qgd和Qg参数含义分解
td(on) 导通延时时间
是从当栅源电压上升到10%栅驱动电压时到漏电流升到规定电流的90%时所经历的时间。
td(off) 关断延时时间
是从当栅源电压下降到90%栅驱动电压时到漏电流降至规定电流的10%时所经历的时间。这显示电流传输到负载之前所经历的延迟。
Tr 上升时间
上升时间是漏极电流从10%上升到90%所经历的时间。
Tf 下降时间
下降时间是漏极电流从90%下降到10%所经历的时间。
NF 低频噪声系数
单位为分贝(dB),噪声是由管子内部载流子运动的不规则性所引起的,由于它的存在,可使放大器即便在没有信号输人时,输出端也会出现不规则的电压或电流变化。噪声系数NF数值越小,代表管子所产生的噪声越小,场效应管的噪声系数约为几个分贝,比双极性三极管的要小。
gM 跨导
是表示栅源电压VGS对漏极电流ID的控制能力,即漏极电流ID变化量与栅源电压VGS变化量的比值,是权衡场效应管放大才能的重要参数。
4、其他重要参数
除以上介绍的参数之外,MOS管还有很多重要的参数,明细如下:
表22 MOS管其他重要参数列表 - 延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 再回收
二、如何入门单片机
作为一个嵌入式老司机,多年来跟单片机、Keil、C语言、AD、烙铁、风枪、示波器、电子元器件纠缠不清。期间经历了不少磨练,熬过了很多夜晚,也掉了大把头发。
当初熬夜点亮了一个LED,像这样一个个小小成就感让我砥砺前行。
刚开始并不看好这个行业,事儿多工资少,需要不停地学习新知识。前几年熬夜焊板子,一边工作一边咒骂。
多年后,庆幸有这一技之长,让我能吃饱饭、开上车,有个家庭。
刚毕业就转行
当初是自学转行的,学的电梯专业,临近毕业20岁出头,精力旺盛没地方使,一块51开发板配一个视频教程,除了吃饭上厕所,寸步不离房间。
入门的时候,我和很多新手一样,不懂电路,不懂编程,不懂单片机,对单片机开发的任何一个环节都充满了问题。
好在学习能力还行,也有耐心,跟着视频一步一个脚印,看一个章节我就在开发板上试验一下。
很快我就能从点灯到做一个电子时钟了,其实单片机编程比纯软件要简单很多,代码量也少很多,所以还挺好学的,只要你的学习路径正确。干这行如果没有兴趣加持,还是挺难受的。
个人定位,从事软件还是硬件?
一般实际工作开发一款产品的时候,绝对不可能一个人从头到尾把产品做了。一般有的人负责硬件部分、有的人负责软件部分,这也是单片机开发的两大方向。
入行单片机开发,技能要有所倾向,将来要做硬件工程师还是软件工程师?
为什么要有软硬件之分呢?实际上大厂都是分工精细的,这样使工作内容流程化、简单化,提高工作效率。另外也提高了公司业务的稳定性,即使有人突然离职也不会造成太大影响。
有些产品光程序这块就够你折腾一个月了,如果你又做外壳设计,又做硬件设计,又做软件。等产品出来的时候,客户可能都不在了。
所以,一个产品,最低配也是一个硬件工程师和一个软件工程师。
一个全能的人,除非在行业深耕很多年,不然很难所有东西都学精,所以大多数都是只懂皮毛,能把东西做出来,但很难优化到专业的水平。
看完上面你是否已经知道,不管你想从事任何行业,首先定位是非常重要的。
在定位之前你必须要去了解这个行业的现状,有哪些职位?
那单片机开发的职业定位有硬件工程师和单片机软件工程师。
凡是我的徒弟,我都会建议他们从单片机软件开始,性价比最高!大家去招聘平台搜一下工资待遇就知道了。
当然硬件做好了,收入分分钟秒杀软件,但硬件做好还是很难的,至少不是你看视频和看书能做好的,而是要遭受无数实际产品的毒打。
而且现在电路集成化都很高了,新手从事硬件很难接触到核心的技术。
还不如先从软件开始,工资也高,反正做单片机开发,即便你做软件,也是天天在调硬件,调多了,你也就懂了。
搞硬件就不一样了,一般很难接触到程序上的东西,即便接触构不成体系。
学习内容
有了清晰的定位以后,我们接下来就要根据这个定位去制定我们系统的学习路径。制定学习路径的目的有2个:
- 避免走弯路
- 规划好时间,鞭策你执行
结合我的经验直接给大家总结从事单片机开发最重要的几个关键字:
- C51单片机/STM32单片机
- C语言
- 能看懂原理图
- 基本焊接能力
下面说一下为什么很多人在开发板上把每个外设例程都学完了,但是还是感觉自己啥都不会?
你缺乏的是一定的产品思维,就是实现一个功能的思路。要解决这个问题就是做项目,没有别的捷径。
老话说行百里者半九十,单片机外设、C语言、电路原理、焊接能力,实际上这些只是为上手项目做铺垫。
单片机外设的学习相对简单,买一个开发板,把每个外设的例程跑几遍之后心里就有个大致了解。把单片机的每个外设的实际应用场景你都亲手写一遍,下次你再碰到同样的功能需求时就知道怎么去解决了。
三、几张动图搞懂三极管
三极管的电流放大作用应该算是模拟电路里面的一个难点内容,我想用这几个动画简单的解释下为什么小电流Ib能控制大电流Ic的大小,以及放大电路的原理。
我这里的三极管也叫双极型晶体管,模电的放大电路和数电的简单逻辑电路里面都会用到。有集电极c、基极b、发射极e、以及两个PN结:集电结和发射结。集电极面积比较大,基极厚度薄而且载流子浓度比较低。下图是个NPN型的三极管:
当发射结正偏时,电荷分布会发生变化,发射结宽度会变窄;相当于给电子打开了一扇e到b的大门集电结反偏时,电荷分布会也发生变化,集电结宽度会变宽。相当于打开了阻碍电子从c级跑出去的大门,如下方动画所示:
b级会接一个大电阻RB限制电流Ib的大小,跑到b极的那些多余的电子就只好穿越集电结,形成电流Ic,如下方动画所示:
如果基极电压翻倍,电荷分布会继续发生变化,发射结宽度会变得更窄,这扇大门变得更宽了,将会有更多的电子跑到b级。如下方动画所示:
由于RB是大电阻,Ib就算翻倍了也还是很小,所以更多的电子会穿越集电结,让Ic也翻倍。如下方动画所示:
两个直流电源是可以合并到一起的,再加上小信号ui和两个电容,就得到了放大电路,如下图所示。相x关文章推荐:三极管放大电路设计技巧。
如果电阻大小合适,这个放大电路能够将小信号ui放大成相位相反的大信号uCE,如下方动画所示:
红色为输入端,ui的变化会影响UBE,把发射结看成一个小电阻,红色的Q点就会沿黑线运动,然后画出iB的图像;根据iC=βiB,画出iC的图像,纵坐标从μA变成了mA;而输出端有UCE=UCC-ICRC,当UCC、RC不变时,UCE与IC反相。
最后说说这些动画的不足之处吧:
- 喇叭口一样的三极管并不是我的独创,但水箱的比喻容易让人产生一种误解,认为IC最大,其实IE才是最大的电流。
- 动画里完全忽略了电子的热运动速度,那个速度远大于电压作用下电子的漂移速度。
- 动画里并没有体现出能级、能带、费米分布等内容。
.
四、嵌入式C语言2
用预处理指令 #define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题):
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
写一个标准宏MIN,这个宏输入两个参数,并返回较小的一个:
#define MIN(A,B) ((A) <= (B) ? (A):(B))
预处理器标识 #error 的目的是什么:
#error : 停止编译 并显示 错误信息
嵌入式系统中经常要用到无限循环,你怎么样用C语言编写死循环:
用变量a给出下面的定义:
- 整形数:int a;
- 指向整型数的指针:int * a;
- 指向指针的指针,它指向的指针指向整型数:int * * a;
- 有10个整型数的数组:int a[10];
- 有10个指针的数组,它的指针指向整型数:int * a[10];
- 指向有10个整型数的数组的指针:int ( * a ) [ 10 ];
- 指向函数的指针,该函数有一个整型参数,并返回一个整型数:int ( * a)(int);
static的作用,请写出两个:
关键字const的作用:
另外使用const定义变量:
volatile的作用:
定义为volatile的变量可能会被意想不到地改变,优化器在用到这个变量时必须重新读取这个变量的值,而不是保存在寄存器里的备份。
volatile变量的例子:
嵌入式系统总是要用户对变量或寄存器,进行位操作:
嵌入式系统经常具有要求程序员去访问某特定的内存位置,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66:
中断的概念:
当某个事件发生时,CPU 停止运行正在执行的程序,而转去执行处理该事件的程序,处理该事件后,返回原程序继续执行下去的过程。
ISR:中断服务程序(Interrupt Service Routines)。
下面代码输出的结果是什么?
当表达式 中存在 有符号类型 和 无符号类型 时,所有的 操作数 都自动转换为 无符号类型,因此 -20 变成了一个非常大的正整数,该表达式计算出的结果 大于6,答案是输出 > 6。
动态内存分配:
typedef语句用于给基本数据类型和导出数据类型定义一个新的名字:
.
五、蜂鸣器驱动电路详解
蜂鸣器是电路设计中常用的器件,广泛用于工业控制报警、机房监控、门禁控制、计算机 等电子产品作预警发声器件,驱动电路也非常简单,然而很多人在设计时往往随意设计,导 致实际电路中蜂鸣器不发声、轻微发声和乱发声的情况发生。
下面就 3.3V NPN 三极管驱动有源蜂鸣器设计,从实际产品中分析电路设计存在的问题,提出电路的改进方案,使读者能从小小的蜂鸣器电路中学会分析和改进电路的方法,从而设计出更优秀的产品,达到抛砖引玉的效果。
常见错误接法
上图为典型的错误接法,当 BUZZER 端输入高电平时蜂鸣器不响或响声太小。当 I/O 口为高电平时,基极电压为 3.3/4.7*3.3V≈2.3V,由于三极管的压降 0.6~0.7V,则三极管射 极电压为 2.3-0.7=1.6V,驱动电压太低导致蜂鸣器无法驱动或者响声很小。
上图为第二种典型的错误接法,由于上拉电阻R2,BUZZER 端在输出低电平时,由于 电阻R1和R2的分压作用,三极管不能可靠关断。
上图为第三种错误接法,三极管的高电平门槛电压就只有 0.7V,即在 BUZZER 端输入 压只要超过0.7V就有可能使三极管导通,显然0.7V的门槛电压对于数字电路来说太低了, 电磁干扰的环境下,很容易造成蜂鸣器鸣叫。
上图为第四种错误接法,当CPU的GPIO管脚存在内部下拉时,由于 I/O 口存在输入阻抗,也可能导致三极管不能可靠关断,而且和图3一样BUZZER端输入电压只要超过0.7V就有可能使三极管导通。
以上几种用法我觉得也不能说是完全不行,对于器件的各种参数要求会比较局限,不利于器件选型,抗干扰性能也比较差。
NPN三极管控制有源蜂鸣器常规设计
上图为通用有源蜂鸣器的驱动电路。电阻R1为限流电阻,防止流过基极电流过大损坏三极管。关于三极管基础,请移步此文:PNP与NPN两种三极管使用方法。
电阻R2有着重要的作用。
第一个作用:R2 相当于基极的下拉电阻。如果A端被悬空则由于R2的存在能够使三极管保持在可靠的关断状态,如果删除R2则当BUZZER输入端悬空时则易受到干扰而可能导致三极管状态发生意外翻转或进入不期望的放大状态,造成蜂鸣器意外发声。
第二个作用:R2可提升高电平的门槛电压。如果删除R2,则三极管的高电平门槛电压就只有0.7V,即A端输入电压只要超过0.7V 就有可能导通,添加R2的情况就不同了,当从A端输入电压达到约2.2V 时三极管才会饱和导通,具体计算过程如下:
假定β =120为晶体管参数的最小值,蜂鸣器导通电流是15mA。那么集电极电流IC=15mA。则三极管刚刚达到饱和导通时的基极电流是 IB=15mA/120=0.125mA。流经R2的电流是0.7V/3.3kΩ=0.212mA,流经R1的电流 IR1=0.212mA +0.125mA=0.337 mA。最后算出BUZZER端的门槛电压是0.7V+0.337mA× 4.7kΩ=2.2839V≈2.3V。
图中的C2为电源滤波电容,滤除电源高频杂波。C1可以在有强干扰环境下,有效的滤除干扰信号,避免蜂鸣器变音和意外发声,在 RFID射频通讯、Mifare卡的应用时,这里初步选用0.1uF 的电容,具体可以根据实际情况选择。
改进方案
蜂鸣器竟然有EMI 辐射?!在 NPN 3.3V 控制有源蜂鸣器时,在电路的 BUZZER 输入 高电平,让蜂鸣器鸣叫,检测蜂鸣器输入管脚(NPN 三极管的C极处信号,发现蜂鸣器在发声时,向外发生1.87KHz,-2.91V 的脉冲信号,蜂鸣器自身发放脉冲如下图所示。
在电路的BUZZER 输入20Hz的脉冲信号,让蜂鸣器鸣叫,检测蜂鸣器输入管脚处信号,发现蜂鸣器在发声时,在控制电平上叠加了1.87KHz,-2.92V 的脉冲信号,并且在蜂鸣器关断时出现正向尖峰脉冲(≥10V),如下图所示。
上图中1.87KHz,-2.92V 的脉冲信号应该是有源蜂鸣器内部震荡源释放出来的信号。常用有源蜂鸣器主要分为压电式、 电磁震荡式两种, iMX283 开发板上用的是压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成,而多谐震荡器由晶体管或集成电路构成,我们所用的蜂鸣器内部含有晶体管震荡电路(有兴趣的朋友可以自己拆开看看)。
有源蜂鸣器产生脉冲信号能量不是很强,可以考虑增加滤波电容将脉冲信号滤除。在有源蜂鸣器的两端添加一个104的滤波电容,脉冲信号削减到-110mV,减少蜂鸣器自身发放脉冲如下图所示,但顶部信号由于电容充电过慢,有点延时。
消除蜂鸣器EMI辐射,NPN 有源蜂鸣器控制电路改善后电路图如下所示。
兼容性设计
作为标准电路,需要考虑电路的兼容性问题,比如同样耐压不同功率的有源蜂鸣器,有 源蜂鸣器和无源蜂鸣器的兼容性问题。
兼容同样耐压不同功率的有源蜂鸣器电路设计
为了电路的兼容性和可扩展性,电路需要考虑兼容不同厂家和不同功率的蜂鸣器。同一 个耐压的蜂鸣器主要是蜂鸣器的内阻和工作电流不一样,一般 3V~5V 耐压的蜂鸣器,不同功率的蜂鸣器导通电流是 10mA~80mA。我们按照最大功率的蜂鸣器去设计电路即可,即三极管的推动电流按照 80 mA 设计。
假定:β=120 为晶体管参数的最小值,蜂鸣器导通电流是 80 mA。那么集电极电流 IC =80 mA。则三极管刚刚达到饱和导通时的基极电流 IB=80mA/ 120=0.667mA。流经 R2的电流是 0.7V/ 3.3kΩ= 0.212mA,所以流经 R1 的电流应该是 IR1=0.667mA +0.125mA=0.792mA。BUZZER 端的门槛电压是设定在 2.2V,那么 R1=(2.2V-0.7V)/ 0.792mA=1.89K。电阻取常规 2K 即可。
如果电路更换功率稍大一点的有源蜂鸣器,可以按照上面的计算方法计算 R1 的大小。
兼容有源蜂鸣器和无源蜂鸣器电路设计
在电路的设计过程中,往往会碰到需求变更,比如项目前期,对蜂鸣器的发声频率没有 要求,但后期有要求,需要更换为无源蜂鸣器,这时就需要修改电路图,甚至修改 PCB, 这样就增加了改动成本、周期和风险。
有源蜂鸣器和无源蜂鸣器的驱动电路区别主要在于无源蜂鸣器本质上是一个感性元件, 其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣器两端会有反向感应 电动势,产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。而如果电路中工作电压较大,要使用耐压值较大的二极管,而如果电路工作频率高,则要选 用高速的二极管。这里选择的是 IN4148 的开关二极管。NPN 无源蜂鸣器控制电路图如下所示。
.
六、菊厂体脂秤拆解
这块菊厂体脂秤诞生于2016年有些年头了,通过拆解发现,内部线路结构比较简单,主控和测脂芯片均来自一家深圳企业,同时搭配了四颗高精度压力传感器。
之前发过的类似文章:拆解体脂秤,学习其内部电路。
产品外观
外观采用大面积超白钢化玻璃面板,用隐藏式的ITO电镀膜完成人体阻抗测量,取代市面上普遍的金属电极片方案。不仅提升了产品设计美观度,而且用户不必再要求站在指定的电极位置上,测量更自由简单。
隐藏式LED显示屏效果,不必担心破坏秤面设计美感,在偏暗的环境下数值仍然清晰可读。
体脂秤需要4节AAA(七号)电池供电,底部三个小孔是蜂鸣器的出声孔,装上电池后蜂鸣器响起即表示开机。
秤脚采用可活动的“万向式”设计,即便地面有轻微水平差异,也可以更好地过滤掉秤面倾斜造成的测量误差;大秤脚+磨砂设计科学分布中心防滑防侧翻。
最大可支撑150kg的体重,胖子也能放心使用,不必担心踩坏。
菊厂商城官网上的一些参数信息,交流测试,频率50KHz;主控IC是一款MCU+蓝牙的集成芯片。
内部拆解
接下来我们进入重要的拆解环节。
体脂秤的秤体采用卡扣对应进行固定,拆下几颗螺丝钉后,用塑料撬片沿着缝隙划开上下盖板的塑料卡扣即可拆开。
上盖板(即玻璃秤面一侧)完成核心元器件设计,如图左侧所示。
四角的位置分别为四颗高精度压力传感器。
下盖板采用ABS塑料材质,上下塑料盖板内部均使用了大量加强筋做强化处理。
点式传感器测量精度更高。
电路主板,表面涂有明显的防潮油,右上角集成蓝牙天线。
主控IC采用芯海科技的CST34M97集成了称重、蓝牙、LED显示驱动等功能。
据悉为秤领域首颗双核蓝牙SOC体脂秤专用芯片,双核CPU架构,称重测脂与蓝牙通讯独立运行。
主控的右下侧是一颗FLASH芯片,型号为FT25H04S,容量4MB。
测脂IC同样是来自于芯海科技的产品CS1256,采用四电极+正弦波激励的BIA生物电阻抗分析技术。延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 再回收
将主板拆下来,LED显示屏一侧,如图所示可以显示四位数字、蓝牙、百分比以及单位等符号。揭开表层,可以看到盖板下方共有35颗LED。
.
七、单片机中常用的负电压
负电压的产生电路图原理
在电子电路中我们常常需要使用负电压,比如说我们在使用运放的时候常常需要建立一个负电压。下面就简单的以正5V电压到负电压5V为例说一下它的电路。
通常需要使用负电压时一般会选择使用专用的负压产生芯片,但这些芯片都比较贵,比如ICL7600,LT1054等。差点忘了MC34063了,这个芯片使用的最多了,关于34063的负压产生电路这里不说了,在datasheet中有的。下面请看我们在单片机电子电路中常用的两种负电压产生电路。
现在的单片机有很多都带有了PWM输出,在使用单片机的时候PWM很多时候是没有用到的,用它辅助产生负压是不错的选择。
上面的电路是一个最简单的负压产生电路了。使用的原件是最少的了,只需要给它提供1kHz左右的方波就可以了,相当简单。这里需要注意这个电路的带负载能力是很弱的,同时在加上负载后电压的降落也比较大。
由于上面的原因产生了下面的这个电路:
负电压产生电路分析
电压的定义:电压(voltage),也称作电势差或电位差,是衡量单位电荷在静电场中由于电势不同所产生的能量差的物理量。其大小等于单位正电荷因受电场力作用从A点移动到B点所做的功,电压的方向规定为从高电位指向低电位的方向。
说白了就是:某个点的电压就是相对于一个参考点的电势之间的差值。V某=E某-E参。一般把供电电源负极当作参考点。电源电压就是Vcc=E电源正-E电源负。
想产生负电压,就让它相对于电源负极的电势更低即可。要想更低,必须有另一个电源的介入,根本原理都是利用两个电源的串联。电源2正极串联在参考电源1的负极后,电源2负极就是负电压了。
一个负电压产生电路:利用电容充电等效出一个新电源,电容串联在GND后,等效为电源2,则产生负电压。
1、电容充电:当PWM为低电平时,Q2打开,Q1关闭,VCC通过Q2给C1充电,充电回路是VCC-Q2-C1-D2-GND,C1上左正右负。
2、电容C1充满电。
3、电容C1作为电源,C1高电势极串联在参考点。C1放电,从C2续流,产生负电压。
当PWM为低电平时,Q2关闭,Q1打开,C1开始放电,放电回路是C1-C2-D1,这实际上也是对C2进行充电的过程。C2充好电后,下正上负,如果VCC的电势为5点几伏,就可以输出-5V的电压了。
产生负电压(-5V)的方案。
7660和MAX232输出能力有限,做示波器带高速运放很吃力,所以也得用4片并联的方式扩流。第一版是7660两片并联的。
用普通的DC/DC芯片都可以产生负电压,且电压精确度同正电压一样,驱动能力也很强,可以达到300mA以上。
一般的开关电源芯片都能产生负电压,实在不行用开关电源输出的PWM去推电荷泵,也可以产生较大的电流,成本也很低,不知纹波要求多少,电荷泵用LC滤波之后纹波相当小的。7660是电荷泵,所以电流很小。
整个示波器的设计,数字电源的+5V和模拟电源的+5V是分开供电的,但是数字地和模拟地应该怎么处理呢?
数字地和模拟地是一定要连在一起的,不然电路没法工作。
数字部分的地返回电流不能流过模拟部分地,两个地应该在稳定的地参考点连在一起。
负电压的意义
- 人为规定
例如电话系统里是用-48V来供电的,这样可以避免电话线被电化学腐蚀。当然了,反着接电话也是可以工作的,无非是电压参考点变动而已。 - 通讯接口需要
例如RS232接口,就必须用到负电压。-3V~-15V表示1,+3~+15V表示0。这个是当初设计通讯接口时的协议,只能遵守咯。PS:MAX232之类的接口芯片自带电荷泵,可以自己产生负电压。 - 为(非轨到轨)运放提供电源轨
老式的运放是没有轨到轨输入/输出能力的,例如OP07,输入电压范围总是比电源电压范围分别小1V,输出分别小2V。这样如果VEE用0V,那么输入端电压必须超过1V,输出电压不会低于2V。这样的话可能会不满足某些电路的设计要求。为了能在接近0V的输入/输出条件下工作,就需要给运放提供负电压,例如-5V,这样才能使运放在0V附近正常工作。不过随着轨到轨运放的普及,这种情况也越来越少见了。 - 自毁电路
一般来说芯片内部的保护电路对于负电压是不设防的,所以只要有电流稍大,电压不用很高的负电压加到芯片上,就能成功摧毁芯片。
.
八、在晶振两边各接一对地电容的原因
很多开发者对晶振两边要各接一个对地电容的做法表示不理解,因为这个电容有时可以去掉。参考很多书籍,却发现书中讲解的很少,提到最多的往往是:对地电容具稳定作用或相当于负载电容等,都没有很深入地去进行理论分析。
另外一方面,很多爱好者都直接忽略了晶体旁边的这两个电容,他们认为按参考设计做就行了。但事实上,这是振荡电路,又称“三点式电容振荡电路”,如下图所示。
MCU三点式电容振荡电路
其中,Y1是晶体,相当于三点式里面的电感;C1和C2是电容,而5404和R1则实现了一个NPN型三极管(大家可以对照高频书里的三点式电容振荡电路)。
接下来将为大家分析一下这个电路
首先,上面电路图中5404必须搭一个电阻,不然它将处于饱和截止区,而不是放大区,因为R1相当于三极管的偏置作用,能让5404处于放大区域并充当一个反相器,从而实现NPN三极管的作用,且NPN三极管在共发射极接法时也是一个反相器。
其次将用通俗的方法为大家讲解一下这个三点式振荡电路的工作原理。
众所周知,一个正弦振荡电路的振荡条件为:系统放大倍数大于1,这个条件较容易实现;但另一方面,还需使相位满足360°。而问题就在于这个相位:由于5404是一个反相器,因此已实现了180°移相,那么就只需C1、C2和Y1再次实现 180°移相就可以了。恰好,当C1、C2和Y1形成谐振时,就能实现180移相;最简单的实现方式就是以地作为参考,谐振的时候,由于C1、C2中通过的电流相同,而地则在C1、C2之间,所以恰好电压相反,从而实现180移相。
再则,当C1增大时,C2端的振幅增强;当C2降低时,振幅也增强。有时即使不焊接C1、C2也能起振,但这种现象不是由不焊接C1、C2的做法造成的,而是由芯片引脚的分布电容引起,因为C1、C2的电容值本来就不需要很大,这一点很重要。
那么,这两个电容对振荡稳定性到底有什么影响呢?
由于5404的电压反馈依靠C2,假设C2过大,反馈电压过低,这时振荡并不稳定;假设C2过小,反馈电压过高,储存能量过少,则容易受外界干扰,还会辐射影响外界。而C1的作用与C2的则恰好相反。在布板的时候,假设为双面板且比较厚,那么分布电容的影响则不是很大;但假设为高密度多层板时,就需要考虑分布电容,尤其是VCO之类的振荡电路,更应该考虑分布电容。延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 再回收
因此,那些用于工控的项目,建议最好不要使用晶体振荡,而是直接接一个有源的晶振。
很多时候大家会采用32.768K的时钟晶体来做时钟,而不是通过单片机的晶体分频来做时钟,其中原因想必很多人也不明白,其实上这是和晶体的稳定度有关:频率越高的晶体,Q值一般难以做高,频率稳定度也比较差;而 32.768K晶体在稳定度等各方面的性能表现都不错,还形成了一个工业标准,比较容易做高。另外值得一提的是,32.768K是16 bit数据的一半,预留最高1 bit进位标志,用作定时计数器内部数字计算处理也非常方便。
.
九、STM32最小系统电路
STM32最小系统硬件组成
最小系统为单片机工作的最低要求,不含外设控制,原理简单,分析最小系统是STM32入门的基础。
组成:
- 电源
- 复位
- 时钟
- 调试/下载接口
- 启动
电源
3.3V的电源从这里接入,其中电容起到滤波的作用。
复位电路
当RESET引脚被拉低产生外部复位时,产生复位脉冲,从而使系统复位。
有三种复位方式:
- 上电复位
- 手动复位
- 程序自动复位
上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,需求的复位信号持续时间约在1ms左右,计算方式如下:
t = 1.1RC(固定计算公式)
1.1*10K*0.1uF=1.1ms
手动复位:按键按下时,RESET与地导通,从而产生一个低电平,实现复位。
时钟
晶振的作用是为最小系统提供最基本的时钟信号,电容的作用是保证晶振输出的震荡频率更加稳定。
BOOT启动电路
STM32 芯片的 BOOT0 和 BOOT1 引脚,可使用跳线帽设置它们的电平从而控制芯片的启动方式,它支持从内部 FLASH 启动、系统存储器启动以及内部 SRAM 启动方式。
一般使用JTAG或者SWD调试下载程序,会下载到闪存里,所以可以直接将BOOT0引脚和BOOT1引脚置为低电平。
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
- 用户闪存 = 芯片内置的Flash。
- SRAM = 芯片内置的RAM区,就是内存啦。
- 系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区,它是使用USART1作为通信口。
调试接口
STM32有两种调试接口,JTAG为5针,SWD为2线串行(一共四线)。
此外还有采用USB进行程序烧写和数据输出:和电脑USB口连接也可以进行小负载驱动供电
通常采用CH340G的芯片,实现USB转串口。使用该芯片将电脑的USB映射为串口使用,注意电脑上应安装串口驱动程序,否则不能正常识别。
十、I2C总线协议详解
I2C总线物理拓扑结构
I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来 产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。
I2C总线特征
I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址(可以从I2C器件的数据手册得知),主从设备之间就通过这 个地址来确定与哪个器件进行通信,在通常的应用中,我们把CPU带I2C总线接口的模块作为主设备,把挂接在总线上的其他设备都作为从设备。
I2C总线上可挂接的设备数量受总线的最大电容400pF 限制,如果所挂接的是相同型号的器件,则还受器件地址位的限制。
I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉电阻的阻值有关。
I2C总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。
I2C总线协议
I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。总线在空闲状态 时,SCL和SDA都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当SCL为高而SDA由低到高的跳变,表示产生一个 停止条件。在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备 将释放总线,总线再次处于空闲状态。如图所示:
在了解起始条件和停止条件后,我们再来看看在这个过程中数据的传输是如何进行的。前面我们已经提到过,数据传输以字节为单位。主设备在SCL线上产生每个 时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,回传给主设备一个应答位, 此时才认为一个字节真正的被传输完成。当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否 定应答位。数据传输的过程如图所示:
在前面我们还提到过,I2C总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前 要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来 数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。如图所示:
I2C总线操作
对I2C总线的操作实际就是主从设备之间的读写操作。大致可分为以下三种操作情况:
第一,主设备往从设备中写数据。数据传输格式如下:
第二,主设备从从设备中读数据。数据传输格式如下:
第三,主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者是主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据。这种操作在单个主设备系统中,重复的开启起始条件机制要比用STOP终止传输后又再次开启总线更有效率。数据传输格式如下:
.
十一、AD电路设计中的布线教程
1、AD 布蛇形线方法
Tool 里选 Interactive length tuning 要先布好线再改成蛇形,这里用的是布线时直接走蛇形: 先 P->T 布线, 再 Shift A 切换成蛇形走线
按 Tab 可设置属性, 类型了选用圆弧,Max Amplitude 设置最大的振幅,Gap 就是间隔(不知这么翻译对不) ,下面左边是振幅增量,右边是间隔增量。
然后开始布线:
让边缘变"圆" - 按快捷键 "2", 就会增大弧的半径,增到最大就是 两个 1/4 的弧直连就是一个180度的半圆了 快捷键 "," "." 可以调节振幅。
要是不记得快捷键, 没关系,随时按 "`" 可以显示当前支持的操作。
可以看到网络的长度,还不止一个地方哟。
等长可使用调节器完成等长布线。
2、大电流走线中去除阻焊层
这里要注意的两点,首先Paste 层才是真正的喷锡层,但是默认走线上是有阻焊层的,所以单单使用Paste,是没用的,故需要使用Solder,此层中划出的部分是没有阻焊的,故可使用 Paste Solder 的方法达到喷锡线的绘制,若板上本来就有走线,可直接使用对应层的Solder进行开窗。
3、总线画法
Altium Designer 支持多条网络同时布线,布线可以起始于焊盘也可以起始于线路开端。按住 shift键选择多个网络,或者用鼠标框选多个网络,选择菜单命令 PLACE >> Interactive Multi-Routing 再单击布线工具栏上的总线布线工具,既可以开始总线布线,在布线过程中可以放置过孔,切换直线层,可以按逗号,和句号。分支线间距进行调整。
期间按 2 可加过孔,L 可设换层~
4、从原理图到PCB
在原理图中用鼠标框选一块电路或选中若干个器件,按 T—>S,就能马上切换到 PCB 中,同步选中那些器件。
5、走线中换层、操作过孔、操作走线
6、走线推挤与连线方式快速设置
7、简易图元的PCB黏贴
图元文件的粘贴让机械层设计文档的生成更容易完成,通过使用习惯的与 Windows 相同的粘贴命令(Ctrl V),任何来自剪贴板中的图元文件都可以粘贴到 PCB 编辑中。图元文件可以是直线、弧线、简单的填充和 True Type 文本,任何导入的数据将被放置在当前层。
从 Word 或 Excel 中拷贝数据到 PCB 中支持的图元文件包括位图,线,圆弧,简单填充和 true type 文字,允许您简单的粘贴 logos 和其他图形。
8、复杂图元(logo)PCB制作
9、栅格设置与捕获
在 Altium Designer 中可视化网格和电气网格可以按捕获网格的倍数来设置(Design>>Board Options)。
10、丝印文字反色输出及位置设置
PCB 编辑中增添了新的有效字符串属性框选项,新的选项可以为使用了True Type 字体的反转文本定义不同矩形边界范围,而不是如原来使用反转文本本身的边界。
反转尺寸(宽度/高度):设置反转文本矩形框的宽度和高度
版面调整:定义文本框中文字的相对位置
反转文字的偏移:定义反转文字相对矩形框的偏移量
11、各种~多边形填充
使用以选择对象定义多边形形状功能使得用外部资源(如 DXF、AutoCAD 等)来创建公司 Logos 或多边形非常容易。多边形形状的定义分两步:首先从菜单 Tools>>Polygon Pours>>Define From selected objects定义多边形区域,然后右键点击多边形填充区域并从弹出菜单上选择’属性’选项,就可以在对话框中设置填充模式了。
12、PCB中高亮选中网络
13、单层操作与定制操作
对于纷乱的器件布局,已经很是麻烦如果要在混乱中走线,实属不易,在 AD 中可以使用 shift s 解决这一问题(PCB 编辑状态下):
另外从网上学会了定制方法,开始比较麻烦,但是学会了会很实用。
方法是:
只操作顶层走线的表达式为:
expr=IsTrack and OnTopLayer|mask=True|apply=True
只操作底层走线的表达式为:
expr=IsTrack and OnBottomLayer|mask=True|apply=True
只操作电气走线的表达式为:
expr=IsTrack and IsElectrical|mask=True|apply=True
只操作过孔的表达式为:
expr=IsVia|mask=True|apply=True
只操作顶层元件的表达式为:
expr=IsComponent and OnTopLayer|mask=True|apply=True
订制若干种过孔尺寸,以小键盘区的数字键做快捷键,3 表示 0.3 孔径的过孔、4 表示 0.4 孔径的快捷键5…………,这样你想用任一种尺寸的过孔,都可以很方便地调出来。我知道 AltiumDesigner 本身可以通过快捷键“shift v”在走线过程中调用你填写好的各种尺寸过孔,但我单独放置过孔,要想改尺寸的话,要按 Tab 键后改写过孔尺寸的数据,非常麻烦。改用下面的方法:
本来 Altium 放置过孔默认用快捷键“P” “V”,我现在用小键盘区的“.”来实现同样的功能:
14、多层线的操作
有些人问这样的线是怎么画出来的:
答:一根根画出来的。
如 何 设 置 才 可 以 使 线 重 叠 ?Preferences 、 PCB Editor , Interactive Routing ,Interactive Routing Options,Automatically Remove Loops 选项取消即可。
不一根根画的话也可以,Place - Region,放一个多边形区域即可,不过要小心哦,不会自己添加网路的,会变绿。
15、走线切片的操作
16、对等差分线的设置与走线
很多新手会听到“差分线”,其实说起差分线并不难,只是布线方式而已,比起之前说过的等长线,要容易的多,不过设置起来有一定规则:
放 置 元 件 和 绘 制 差 分 对 信 号 。差 分 对 命 名 规 则 是 名 称 相 同 , 后 缀 分 别 标 以 _P 和 _N 。再 选 择Place\directives\differential pairs,放置差分对符号。
更新至 PCB 后:
这样就好啦~
17、3D显示操作
您的主窗口可以同时以 2D 和 3D 的方式显示。在 2D 和 3D 之间切换可以快捷键‘3’来从一个 2D 视图切换到上个 3D 视图;按‘0’拉平。Shift right click drag可以旋转您的 3D 视图。
18、快速放大缩小视图
有很多方法放大窗口,真正比较实用的就 3 种,以下做下介绍:
1、全界面视图
2、ctrl 滚轮(鼠标中心为中心放大与缩小)延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 再回收
3、长时间按住滚轮变为放大镜形态,前后拖动鼠标~即可快速放大缩小
十二、C语言编译过程
C语言的编译链接过程要把我们编写的一个C程序源代码,转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。过程图解如下:
本文讲解C语言编译过程中所做的工作,对我们理解头文件、库等的工作过程是有帮助的。而且清楚的了解编译链接过程还对我们在编程时定位错误,以及编程时尽量调动编译器的检测错误会有很大的帮助的。
编译
编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含预处理与编译优化两个主要阶段。
预处理
第一个阶段是预处理阶段,在正式的编译阶段之前进行。预处理阶段将根据已放置在文件中的预处理指令来修改源文件的内容。如#include指令就是一个预处理指令,它把头文件的内容添加到.cpp文件中。这个在编译之前修改源文件的方式提供了很大的灵活性,以适应不同的计算机和操作系统环境的限制。一个环境需要的代码跟另一个环境所需的代码可能有所不同,因为可用的硬件或操作系统是不同的。在许多情况下,可以把用于不同环境的代码放在同一个文件中,再在预处理阶段修改代码,使之适应当前的环境。
主要是以下几方面的处理:
- 宏定义指令,如 #define a b
对于这种伪指令,预编译所要做的是将程序中的所有a用b替换,但作为字符串常量的 a则不被替换。还有 #undef,则将取消对某个宏的定义,使以后该串的出现不再被替换。
- 条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等。
这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉。
- 头文件包含指令,如#include "FileName"或者#include <FileName>等。
在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在 /usr/include目录下。在程序中#include它们要使用尖括号(< >)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号("")。
- 特殊符号,预编译程序可以识别一些特殊的符号。
例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。
预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出文件将作为编译程序的输出而被翻译成为机器指令。
编译、优化
第二个阶段编译、优化阶段,经过预编译得到的输出文件中,只有常量;如数字、字符串、变量的定义,以及c语言的关键字,如main,if,else,for,while,{,}, +,-,*,\等等。
编译程序所要做的工作就是通过词法分析和语法分析,在确认所有的指令都符合语法规则之后,将其翻译成等价的中间代码表示或汇编代码。
优化处理是编译系统中一项比较艰深的技术。它涉及到的问题不仅同编译技术本身有关,而且同机器的硬件环境也有很大的关系。优化一部分是对中间代码的优化。这种优化不依赖于具体的计算机。另一种优化则主要针对目标代码的生成而进行的。
对于前一种优化,主要的工作是删除公共表达式、循环优化(代码外提、强度削弱、变换循环控制条件、已知量的合并等)、复写传播,以及无用赋值的删除,等等。
后一种类型的优化同机器的硬件结构密切相关,最主要的是考虑是如何充分利用机器的各个硬件寄存器存放的有关变量的值,以减少对于内存的访问次数。另外,如何根据机器硬件执行指令的特点(如流水线、RISC、CISC、VLIW等)而对指令进行一些调整使目标代码比较短,执行的效率比较高,也是一个重要的研究课题。
汇编
汇编实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码。目标文件由段组成。通常一个目标文件中至少有两个段:
代码段:该段中所包含的主要是程序的指令。
该段一般是可读和可执行的,但一般却不可写。
数据段:主要存放程序中要用到的各种全局变量或静态的数据。一般数据段都是可读,可写,可执行的。
UNIX环境下主要有三种类型的目标文件:
- 可重定位文件
其中包含有适合于其它目标文件链接来创建一个可执行的或者共享的目标文件的代码和数据。
- 共享的目标文件
这种文件存放了适合于在两种上下文里链接的代码和数据。第一种是链接程序可把它与其它可重定位文件及共享的目标文件一起处理来创建另一个 目标文件;第二种是动态链接程序将它与另一个可执行文件及其它的共享目标文件结合到一起,创建一个进程映象。
- 可执行文件
它包含了一个可以被操作系统创建一个进程来执行之的文件。汇编程序生成的实际上是第一种类型的目标文件。对于后两种还需要其他的一些处理方能得到,这个就是链接程序的工作了。
链接过程
由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。
例如,某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);在程序中可能调用了某个库文件中的函数,等等。所有的这些问题,都需要经链接程序的处理方能得以解决。
链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够诶操作系统装入执行的统一整体。
根据开发人员指定的同库函数的链接方式的不同,链接处理可分为两种:
- 静态链接
在这种链接方式下,函数的代码将从其所在的静态链接库中被拷贝到最终的可执行程序中。这样该程序在被执行时这些代码将被装入到该进程的虚拟地址空间中。静态链接库实际上是一个目标文件的集合,其中的每个文件含有库中的一个或者一组相关函数的代码。
- 动态链接
在此种方式下,函数的代码被放到称作是动态链接库或共享对象的某个目标文件中。链接程序此时所做的,只是在最终的可执行程序中记录下共享对象的名字以及其它少量的登记信息。在此可执行文件被执行时,动态链接库的全部内容将被映射到运行时相应进程的虚地址空间。动态链接程序将根据可执行程序中记录的信息找到相应的函数代码。
对于可执行文件中的函数调用,可分别采用动态链接或静态链接的方法。使用动态链接能够使最终的可执行文件比较短小,并且当共享对象被多个进程使用时能节约一些内存,因为在内存中只需要保存一份此共享对象的代码。但并不是使用动态链接就一定比使用静态链接要优越。在某些情况下动态链接可能带来一些性能上损害。
.
十三、电流检测电路
电流检测的应用
电路检测电路常用于:高压短路保护、电机控制、DC/DC换流器、系统功耗管理、二次电池的电流管理、蓄电池管理等电流检测等场景。
对于大部分应用,都是通过感测电阻两端的压降测量电流。
一般使用电流通过时的压降为数十mV~数百mV的电阻值,电流检测用低电阻器使用数Ω以下的较小电阻值;检测数十A的大电流时需要数mΩ的极小电阻值,因此,以小电阻值见长的金属板型和金属箔型低电阻器比较常用,而小电流是通过数百mΩ~数Ω的较大电阻值进行检测。
测量电流时, 通常会将电阻放在电路中的两个位置。第一个位置是放在电源与负载之间。这种测量方法称为高侧感测。通常放置感测电阻的第二个位置是放在负载和接地端之间。这种电流感测方法称为低侧电流感测。
两种测量方法各有利弊,低边电阻在接地通路中增加了不希望的额外阻抗;采用高侧电阻的电路必须承受相对较大的共模信号。低侧电流测量的优点之一是共模电压,即测量输入端的平均电压接近于零。这样更便于设计应用电路,也便于选择适合这种测量的器件。低侧电流感测电路测得的电压接近于地, 在处理非常高的电压时、或者在电源电压可能易于出现尖峰或浪涌的应用中,优先选择这种方法测量电流。由于低侧电流感测能够抗高压尖峰干扰, 并能监测高压系统中的电流。
电流检测电路
低侧检测
低侧电流感测的主要缺点是采用电源接地端和负载、系统接地端时,感测电阻两端的压降会有所不同。如果其他电路以电源接地端为基准,可能会出现问题。为最大限度地避免此问题,存在交互的所有电路均应以同一接地端为基准, 降低电流感测电阻值有助于尽量减小接地漂。
如上图,如果图中运放的 GND 引脚以 RSENSE 的正端为基准,那么其共模输入范围必须覆盖至零以下,也就是GND - (RSENSE × ILOAD)。Rsensor将地(GND)隔开了。
高侧检测
随着大量包含高精度放大器和精密匹配电阻的IC的推出,在高侧电流测量中使用差分放大器变得非常方便。高侧检测带动了电流检测IC 的发展,降低了由分立器件带来的参数变化、器件数目太多等问题,集成电路方便了我们使用。下图为一种高侧检测的 IC 方案:
检测电路连出方式
对电流通过电阻器时的压降进行检测,需要从电阻器的两端引出用于检测电压的图案。电压检测连接如下图(2)所示,建议从电阻器电极焊盘的内侧中心引出。这是因为电路基板的铜箔图案也具备微小的电阻值,需要避免铜箔图案的电阻值所造成的压降的影响。如果按照下图(1)所示,从电极焊盘的侧面引出电压检测图案,检测对象将是低电阻器电阻值加上铜箔图案电阻值的压降,无法正确地检测电流。
PCB Layout参考: