引言
Maxim Integrated Products为很多应用领域提供PWM (脉宽调制)亮度调节LED (发光二极管)驱动器。典型应用中,通过串口向LED驱动器发送指令改变相应LED的寄存器值进行亮度调节。用于亮度控制的数据通常为4位至8位,对应于16至256个亮度等级;有些Maxim的LED驱动器的亮度控制则通过调整漏极开路LED端口的恒定吸入电流大小来实现。
该应用笔记讨论如何在LED恒流驱动器上加入PWM亮度调节,通过控制LED电源的通、断调节亮度。也可以通过刷新数据位仿真外部PWM亮度控制。内置PWM的LED驱动器也可以通过外部PWM实现亮度调节,只要PWM信号的外部时钟可以同步。
PWM仿真
按照一定周期向LED驱动器发送开/关控制信号,可以仿真PWM亮度调节的效果。因为LED数据接口的传输速率远远高于PWM信号的频率,可以使用微控制器或FPGA (现场可编程门阵列)很容易地仿真PWM调光方式。PWM开关频率、数据传输的时钟频率和PWM亮度等级之间的关系如式1所示:
其中,fCLOCK为数据接口的时钟频率,fPWM为PWM频率,nPORT为控制端口数,nLEVEL为亮度等级。
在该项技术中,PWM仿真数据由控制器连续发送到LED的每个端口,每个端口1位。所有端口更新一次即为PWM的一个台阶。从索引值1开始重复仿真PWM台阶,直至索引值等于设定的亮度等级,形成一个PWM周期。例如,如果亮度等级为256,每个端口刷新数据256次构成一个PWM周期。如果对应端口的亮度等级高于PWM仿真台阶的索引值,数据为1;否则数据为零。只要LED保持点亮状态,则始终重复PWM仿真周期。欢迎转载,本文来自电子发烧友网(www.elecfans.com)
该PWM仿真控制可以由下列C程序实现:
int INTENS[8] = {200, 100, 50, 25, 12, 6, 3, 1};
bool LEDON = true, DATA[8];
while (LEDON) {
for {int i=0, i<256, i++} {
for {int j=0, j<8, j++} {
if INTENS[j]>i
DATA[j]=1;
else
DATA[j]=0;
}
Send(DATA);
}
}
PWM仿真技术适用于MAX6968和MAX6969。MAX6968为8端口LED恒流驱动器,数据接口传输速率可达25Mbps;MAX6969是MAX6968的16端口版本。利用这一方法可以实现16位或65,536级亮度控制,MAX6968的PWM频率可以设置在47Hz,MAX6969的PWM频率可以设置在24Hz。如果只要求12位的亮度控制分辨率,对应的PWM频率可以分别设置在752Hz和376Hz。PWM仿真技术无需对电路进行任何修改即可实现每个驱动口的亮度控制。
LED电源的开关控制
通过对LED电源进行开、关控制也可以实现LED的PWM亮度调节。图1所示电路利用PWM控制电源为LED提供额外的亮度调节。微处理器向LED驱动器发送I2C命令产生PWM信号,PWM波形可以由软件控制。这种方式适用于具有恒流LED端口,但没有内部亮度调节功能的MAX6969,以及带有可调节恒流LED端口的MAX6956。该方案通过一个晶体管控制PWM信号的占空比,达到亮度调节的目的。LED亮度可由微处理器通过LED驱动器间接地控制,也可以由晶体管直接控制。以MAX6956为例,恒流驱动与PWM占空比调节相结合,无需任何其它电路介入。
图1. 采用PWM控制LED电源实现亮度调节
图2所示电路采用MOSFET晶体管作为开关器件,有助于提高效率。
图2. 功率MOSFET作为开关器件
利用下式计算外部晶体管的功耗:
其中,tRISE为晶体管的上升时间,tFALL为晶体管的下降时间,T为PWM周期,tON/T为PWM亮度等级,I为LED总电流,RON为晶体管的导通电阻。欢迎转载,本文来自电子发烧友网(www.elecfans.com)
式2给出了晶体管开关损耗与导通损耗之和,开关损耗由开/关时间决定。当晶体管闭合或断开时,在晶体管两端电压从零上升到VLED的过程中,或者是在反方向变化时,几乎所有电流流过晶体管。
使用高速开关晶体管时,上升时间和下降时间通常为50ns。对于周期(T)为1/1000秒的PWM、LED电压(VLED)为5.5V、LED总驱动电流为200mA时,晶体管总功耗为:
若晶体管导通电阻为0.1Ω,则晶体管在最高亮度时的导通功耗为:
从式4可以看到,合理选择高速开关晶体管,能够将损耗降至最小。
主控与各端口的分层控制
有些LED驱动器的PWM亮度控制可以通过主控与各端口之间的分层控制实现。例如,MAX6964、MAX7313、MAX7314、MAX6965、MAX7315和MAX7316。如图3所示,各端口的PWM亮度控制波形重复多次。每重复一次相当于一次主机控制。由此,如果主机控制15级亮度调节,则控制波形重复15次。LED驱动器各端口的控制信号决定了波形的占空比。主控信号决定控制波形的重复次数。比如:某个端口的占空比为3/16,主控设置为4/15。波形的导通时间占整个周期的3/16,波形在全部15个时隙的前4个时隙重复。
图3. 主控和各端口的PWM亮度分层控制
遗憾的是,一个MAX6964的主控信号不能与另一MAX6964的端口信号相组合,以构成多芯片链路机制。因为,多个MAX6964之间无法实现时钟同步;每个端口的PWM控制导通时间不能与主控制器亮度调节信号的通/断时间窗口保持一致。如果时钟信号的边沿无法对齐则无法同步控制亮度,LED会变暗。由于时钟之间的相位偏差,也会导致LED周期性地闪烁(通、断)。
分层PWM亮度调节方案可以通过LED驱动器避免闪烁问题,适用于MAX7302等具有时钟同步机制和较宽的时钟频率范围的器件。图4给出了利用两片MAX7302和开关晶体管实现PWM亮度分层控制的典型电路。
图4. 利用两片MAX7302实现PWM亮度分层控制
其中一片MAX7302的输出端口连接在LED的阴极,每路输出端口作为一个独立的亮度控制端口。另一片MAX7302的输出通过外部晶体管连接在LED的阳极,这一MAX7302作为亮度主控制器。每个端口的亮度控制由外部1MHz高频时钟驱动,这是MAX7302工作时钟的上限。例如,将一个端口的亮度等级设置为15/33时,P2亮度控制端口输出作为主控制器的时钟输入。得到的主控制器等效时钟频率约为1000000/33 = 30kHz。该应用实例中,每个亮度控制端口可以用于调节RGB LED的颜色,而主控制器用来调节亮度。欢迎转载,本文来自电子发烧友网(www.elecfans.com)