引言
其中,fCLOCK为数据接口的时钟频率,fPWM为PWM频率,nPORT为控制端口数,nLEVEL为亮度等级。
在该项技术中,PWM仿真数据由控制器连续发送到LED的每个端口,每个端口1位。所有端口更新一次即为PWM的一个台阶。从索引值1开始重复仿真PWM台阶,直至索引值等于设定的亮度等级,形成一个PWM周期。例如,如果亮度等级为256,每个端口刷新数据256次构成一个PWM周期。如果对应端口的亮度等级高于PWM仿真台阶的索引值,数据为1;否则数据为零。只要LED保持点亮状态,则始终重复PWM仿真周期。
该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驱动器发送I²C命令产生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为晶体管的导通电阻。
式2给出了晶体管开关损耗与导通损耗之和,开关损耗由开/关时间决定。当晶体管闭合或断开时,在晶体管两端电压从零上升到VLED的过程中,或者是在反方向变化时,几乎所有电流流过晶体管。