图1是传统的LM317恒流源拓扑结构,它通过强制OUTPUT引脚的Vadj=1.25V(相对于ADJ引脚为正电压)来精确调节使Iout=Vadj/Rs。
图1:经典LM317恒流源,Iout=Vadj/Rs+Iadj≃Vadj/Rs=1.25/Rs。
通常情况下,Iout>>Iadj,后者的典型值为50µA,最大值为100µA。按上述流程可以简化计算,因为Iadj偏置电流可以忽略,而不会影响精度。这种方法50年来一直行之有效,但有一个明显的缺点,那就是编程Iout的方式是改变Rs。
图2显示了一种新的拓扑结构,它采用不同的(更灵活的)方法使Iout可被编程。
图2:新的LM317拓扑结构仅需毫安级的Ic即可控制Iout,
Iout = (Vadj – (Ic – Iadj)Rc)/Rs – Ic + Iadj ≃ (Vadj – (Ic – Iadj)Rc)/Rs。
通常情况下,Rc>100Rs,因此图2所示的电路仅需毫安级的Ic就能控制高达1.5A的Iout。当然,现在如果只是忽略Iadj可能就不够了。
图3展示了该方案的具体实现,即一个完整的PWM控制15V、1A、接地负载电流源,其中包含了对Iadj的补偿,具体工作原理如下。
图3:采用新型LM317拓扑的1A、15V、PWM编程接地负载电流源。标有星号的电阻精度为1%或更高,Rs=1.25Ω。
5Vpp PWM输入的频率(Fpwm)假设为10kHz左右。如果不是,则用以下公式对C1进行适当缩放:
C1 = 22µF*10kHz/Fpwm
Q2的PWM开关产生一个可变电阻,该电阻由C1平均为Rc(1+1/Df),其中Df=0至1即PWM占空比。因此,一个(0至2.5v)/2Rc=3.11mA的Ic电流=2.5v/Rc(1+1/Df)流入Z1的求和点。
Z1伺服Q1的V1栅极驱动,使其源极保持在2.5V基准电压,用于PWM转换,并对Ic进行电平转换,以跟踪U1的ADJ引脚。此外,R1提供的Iadj偏置补偿(2.5v/51k=50µA)也与Ic叠加。
需要堆叠六个1N4001来为Q1提供偏置,我承认这不太美观,但是希望图2的新颖性能弥补这一点!
请注意,精度和线性度主要取决于Rc电阻的匹配度以及Z1和U1内部基准电压源的精度。TL431的2.5V和LM317的1.25V电压比为2:1,这样我们就能使用三个相同的Rc电阻,这真是一个有趣的巧合。
如果Rs=1.25Ω,则Iout(max)=1A,且Iout与Df的关系如图4所示。
图4:Iout与Df的关系,其中Df(x轴)是PWM占空比,Iout(y轴)是Vadj/1.25=1A的满量程=1–2/(1+1/Df)。
图5表示了Df与Iout的关系。
图5:Df与Iout的关系,其中Iout(x轴)为1A满量程,Df(y轴)=1/(2/(1–Iout)–1)。
请注意,可能还需要U1消耗如下的功率:
也就是提示我们:散热器千万别吝啬!另外要注意,Rs的额定功率至少要达到1.252/Rs。
然后还要考虑到上电/断电瞬态,系统首次启动时,C1处于放电状态,控制器大约有4到8毫秒的时间将PWM逻辑初始化为1.0,之后C1才能充电到足以让U1启动并开始提供电流。在软件开发过程中,切勿忘记这个细节!断电时,当+5V电压降至~2V以下时,Q3启动,这会使Q1饱和,迫使Iout归零以保护负载,同时为C1放电,为下次上电做好准备。
图6:C3添加了二阶PWM纹波滤波,使稳定时间缩短了约500%。
图7:通过R4减去模拟纹波提供了另一种抑制二阶PWM纹波的方法。
图8:使用电容Cc来改善PSRR,并使Df的编程呈线性,对于对稳定时间不敏感的应用,这是一个有用的修改建议。
(原文刊登于EDN美国版,参考链接:PWM-programmed LM317 constant current source,由Ricardo Xie编译)