技术干货周刊奉上(MOS管,充电器,逆变器)
为什么插拔充电器,电池电量会跳变、跌落?
作者:工程师看海
前两天,有个朋友遇到一个问题:为什么插拔充电器,电池电量会跳变?
这是个挺有趣的问题,现在我整理出来和大家一起交流分享下。
闲话少说,有多种策略来估计电池电量,最简单粗暴的一种方法就是通过两个串联电阻,使用ADC采集电池电压,进而间接估计电量,这种方法估计精度虽然非常低,但是却简单易实现,如下图所示。
放电时,电流从电池流出见图中红色电流路径,此时A点电压最高,因此A点电压要高于B点电压高于E点电压,这个意思说的是,实际中,ADC采集的电压是E点的电压,这个电压其实是小于电池电压A的,而且受负载电流影响很大(后面会更新文章进行深入介绍)。

而充电时,情况就变的不一样了,充电时,电流是流入电池,电流路径见下图绿色路径。此时B点的电压最高,B点的电压要高于A点和E点的电压。
那么问题就来了!
假如现在电池正处于放电状态,即上图所示,A点电池电压最高。
如果此时突然插入充电器,对电池充电,如下图,那么会使得B点位置的电压突然增加,此时ADC感应到电压突然增加(E位置会随着B位置增加),会判断为电量突然增加,而使得电量跳变,俗称电压反弹或电量反弹。
反过来。
如果电池正处于充电状态,见下图,B点电压最高,此时如果突然拔掉充电器,拔掉后,会使得B点和E点电压突然跌落,此时A点电压是最高。那么,ADC感应到拔掉充电器后的电压跌落,那么就会判断为电量突然跌落。
插拔充电器时的电量跳变,就是这么来的……
原文链接:https://www.dianyuan.com/eestar/article-6035.html
光伏微逆变器应用中的拓扑及工作原理分析
作者:电源漫谈
光伏逆变器中使用典型的反激变换器作为DC/DC部分的拓扑,本文简要分析反激变换器在光伏微逆中的应用。
一.反激变换器的应用概要分析
反激变换器一般用于较小功率的降压应用,典型来说低于几百瓦左右,它具有较低的输出电流。在光伏微逆变器应用中,反激变换器作为单极拓扑,它可以把20V-45VDC的PV电池电压,升压到一个对应AC整流后的输出电压,同时通过变压器将PV电池和电网隔离开。正激变换器同样可以升压PV电池电压,并提供隔离,但是其元件数目会多一些。
基于电路简单的优势,选择反激变换器作为微逆变器的主拓扑,但是不可忽略其相应的担心,就是漏感能量的处理。具体来说,当反激MOSFET关断时,有较大的能量留在磁芯中,它不能传递到副边,这个能量导致一个大的电压峰值,加在反激主MOSFET漏极上。传统的电阻,电容,二极管吸收电路(RCD吸收电路)可以加在变压器的原边抑制MOSFET尖峰电压,但是其具有副作用就是,将这个能量只能耗散为热损失。
光伏微逆变器引入了一个有源箝位电路,它本质上是无损吸收电路,漏感尖峰被箝位电容箝位,这些残存能量存储在箝位电容中,这个能量之后就会被电路传递到副边,重新利用这部分能量供给负载。如果正确的设计,有源箝位电路也可以对反激MOSFET提供ZVS开关,减小开关损耗和提升效率。

图1为有源箝位反激变换器的单相结构,其中漏电感显示为一个独立元件显示出来,但是实际上它可以认为是集成到主变压器中的,Q1为反激主控MOSFET.如果箝位MOSFET Q2跨过变压器绕组的话,就必须使用高边驱动电路,这里,PMOS Q2的使用可以避免使用高边驱动电路。

对于驱动电路来说,如图2所示,一个关键问题是驱动PMOS的电路如何设计,为了驱动PMOS需要一个负电压,放在PMOS的门级和源极。门级驱动器MCP14E4的输出是一个具有一定占空比的方波,幅值为12V,其中门级驱动器的输入信号PWM1H和PWM1L是来自控制器的输出信号,一个小陶瓷电容0.1uF放置在PMOS驱动的串联回路上,用于去除直流偏置。
在占空比50%时,方波幅值将为6V到-6V之间,增加一个二极管D22,放在电容后,阳极接到电容,阴极接到地,二极管将箝位正电压到0.7V,则驱动信号幅值被箝位到负电压,图3显示出两个MOSFET的门级驱动波形。

二.有源箝位反激变换器的运行原理分析
光伏微逆变器参考设计用一个交错有源箝位反激变换器实施,交错拓扑可以均流输入输出电流,可以实现低的铜损和铁损,电流均流后输出二极管导通损耗可以减小,可以帮助提升总体效率。
这里还有两个另外的原因去实施交错设计,如减小输出电流纹波,帮助减小THD,因为输入电流纹波同时也减小了,所以可以改善输入bulk电容的寿命。
当设计反激变压器时,必须要确认的一件事情是它工作在CCM还是工作在DCM状态,交错反激变换器可以运行在CCM和DCM两种模式。例如,在轻载阶段,反激运行在DCM模式,在重载阶段,反激运行在CCM模式,在CCM模式,原边和副边的峰值电流将是2倍或者3倍低于DCM模式……
原文链接:https://www.dianyuan.com/eestar/article-6024.html
分享一种灵活性很高的协议格式
作者:嵌入式大杂烩
嵌入式开发中,常常会自定义一些协议格式,比如用于板与板之间的通信、客户端与服务端之间的通信等。
自定义的协议格式可能有很多种,本篇文章我们来介绍一种很常用、实用、且灵活性很高的协议格式——ITLV格式。
什么是ITLV格式?
大家可能看到网络上的很多文章用的是TLV(Tag、Length、Value)格式数据。实际中,可以根据实际需要进行修改。我们这里稍微改一下,实际上也是大同小异的。
我们这里的ITLV各字段的含义:
I:ID或Index,用于区分是什么数据。
T:Type,代表数据类型,如int、float等。
L:Length,表示数据的长度(Value的长度)。
V:Value,表示实际的数据。
其中,I、T、L是固定长度的,在制定具体的数据协议之前,需要评估好当前项目的数据会有多少、数据的最大长度是多少,考虑好后续数据扩展也可以保证协议通用。一般I设置为1~2字节,T设置为1字节,L设置为1~4字节。
下面我们制定一个格式:

实际中,如果在物联网系统中数据传输,我们用户自定义的协议字段可能就只包含如上四个字段就可以了。比如我们公司的云平台上的用户数据格式用的就是类似ITLV这样的格式。用户在制定协议时的协议字段包含如上字段就可以了。
没有包头做一些数据区分,也没有校验字段,只包含如上字段就能保证数据可靠传输吗?
因为端云通信采用MQTT,基于TCP,TCP的特点就是可靠的,网络协议中会带有校验。并且,实际在传输用户数据时,还会再用户数据之前增加一些字段区分这就是用户数据。所以,其实基于它的设备SDK来进行开发,操作的数据就是如上的数据。
但是,如果应用于板与板之间的通信,只包含如上字段自然是有风险的。我们至少还需要还要包头、校验字段。
实际中根据需要还可以增加其它字段,比如如果需要分包发送,还需要增加包号;如果多块板之间进行通信,还需要增加发送数据目标地址等。
这里我们增加包头与校验字段:

其中:
(1)Head固定为0x55、0xAA。
(2)Length为1字节,即Value最大为256B。
ITLV格式数据处理
下面以例子来演示ITLV格式数据的处理。

下面我们以上面我们制定的协议编写A板的组包、解析代码……
原文链接:https://www.dianyuan.com/eestar/article-6032.html
MOS管导通和关断过程
作者:开关电源分析
为了更好的理解MOS管的导通和关断过程,我们一般会将电路中的寄生电感忽略掉,下面我们以一个最简单的钳位感应开关模型来说明。

对于MOS的导通过程我们可以将其划分为4个阶段:首先第一个阶段为输入电容从0开始充电到Vth,在这个过程中,栅极绝大部分电流都用来给电容CGS充电,也有很小的电流流过电容CGS。当电容CGS的电压增加到门的极限时,它的电压就会有稍微的减小;这个过程称为导通延迟,这是因为此时器件的漏极电流和漏极电压均未发生变化;当栅极电压达到开启电压时,MOSFET处于微导通状态。进入第二个阶段。
在第二个阶段中,栅极电压从Vth上升到Miller平坦区,即VGS。这是器件的线性工作区,电流和栅极电压成正比。在栅极的一侧,电流如第一阶段一样流入电容CGS和CGD,电容VGS的的电压将会不断升高。在器件的输出端,漏极电流也不断变大,但是漏源电压基本不变,保持先前水平(VDS,OFF )。当所有电流都流入MOSFET而且二极管完全截止后,漏极电压必须保持在输出电压水平;这时就进入第三个阶段。
进入第三个阶段后,栅极电压已经足够使漏极电流全部通过,而且整流二极管处于完全截止状态。现在允许漏极电压下降。在器件漏极电压下降过程中,栅源电压保持不变。这就是栅极电压波形的Miller平坦区。从驱动得到的可用的所有栅极电流通过电容CGD放电,这将加快漏源电压变化。而漏极电流几乎不变,这是由于此刻它受外部电路限制。
最后一个阶段是MOS沟道增强,处于完全导通状态,这得益于栅极的电压已经足够高。最终的VGS电压幅度将决定器件最终导通阻抗。
而MOS的关断过程恰好和它的导通过程是相反的:首先是关断延迟,这阶段需要电容CISS从最初值电压放电到Miller平坦区水平。这期间栅极电流由电容CISS提供,而且它流入MOSFET的电容CGS和CGD。器件的漏极电压随着过载电压的减小而略微的增大,然后进入第二个阶段,管子的漏源电压从IDC·RDS(On)增加到最终值(VDS(off)),进而促使二极管导通,进入第三个阶段,二极管给负载电流提供另一通路;栅极电压从VGS,Miller降到Vth;大部分的栅极电流来自于电容CGS,在这个阶段的最后漏极电流几乎达到0;但是由于整流二极管的正向偏置,所以漏极电压将维持在VDS(off)……
原文链接:https://www.dianyuan.com/eestar/article-6033.html
16位定点 数字信号处理编程的思考
作者:杨帅锅
如果说要在16bit定点环境上使用DSP算法,如IIR构成的2P2Z,会受到定点编程和量化精度的问题。如果说在float32环境上可以很容易进行编程,那切换到定点环境上就不得不得考虑这些问题。通常情况下单精度浮点在小数点后的精度为1/(2^23),理论上使用32位定点IQ24就可以覆盖单精度浮点的精度问题,但是在16bit上,使用i1.q15的方法来算,仅有1/(2^15)的精度,如果直接使用则会遇到量化精度引起的误差问题。那么该如何把浮点切换到16bit的定点来呢,下面将一步一步的来进行讨论。
S1 传递函数离散

离散化:

带入参数,并出归一化的z域传递函数,这里把分母的z^2提出来,然后全部除以其它的数字,即可得到:

S2 使用IQ15的方法量化:

可见,a1项为最大,即可把全部数字除以a1项,让它用满15bit的字长,可得:

然后乘以2^15,得到:

S3 提升B系数:这里可以看到分子项上B0/B2的数字太小,所以为了提高量化精度,可以在B系数上继续扩大到2^12,这样可以更多的利用字长,最后在输出上除去引入增益即可。

可得B系数更新为。
然后考虑一下分母量化为32786时引入的增益:1.99998,在编程上考虑先左移1位然后再考虑小数点(32709/32678)即可引入增益。然后开始测试定点化后的PR控制器……
原文链接:https://www.dianyuan.com/eestar/article-5973.html
更多精彩内容,尽在电子星球 APP(https://www.eestar.com/)