基于MCU的大功率LED驱动电路(大功率白光LED驱动技术。连载三)
作者: Panic 2006年10月12日
连载其他篇目目录:
大功率白光LED介绍(大功率白光LED驱动技术。连载一)
现有的大功率白光LED成品驱动电路(大功率白光LED驱动技术。连载二)
基于MCU的大功率LED驱动电路(大功率白光LED驱动技术。连载三)
基于MCU的大功率LEDPWM驱动电路(大功率白光LED驱动技术。连载四)
关键字:大功率 白光LED 驱动 MCU 单片机
前几篇介绍了一些LED的基本特性和现有的电路,这一篇介绍我自己开始研究和组装的基于MCU的LED驱动电路。
模拟的升压,降压电路,分为PWM和PFM两种基本方式,单片机本身有PWM输出,因而在功能上可以模拟这类模拟电路。
只是因为单片机的PWM一般来说精度比较低,而且不能无级调节,同时在频率和响应速度方面也没有什么优势。但是用在简单的LED照明方面,因为对输出精度的要求比较低,所以个人认为是可行的。
于是有了第一个设想,用单片机模拟一个DC-DC降压电路。
我查阅了一些网上资料,偶尔看到有人曾经做过这类尝试,但是由于反馈速度慢,最终亮度波动明显,并不实用。
于是在一开始就放弃了利用电流反馈动态调节PWM的做法,改用对电源电压做响应,根据不同的电压值,直接确定PWM参数。这样有了第一个电路图:
电路中左侧的两只电阻用来对电源电压分压,提供给ADC口,而PWM则直接驱动场效应管。
现在来考虑这个电路,有三个重大缺陷,
一是LED属于电流控制型负载,电路使用电压反馈本身就是不合理的。
二是电压接近LED额定电压的时候,PWM调节没有办法提升分辨率。
三是回路的逻辑是:电压低,则占空比加宽,由于电池内阻比较大,占空比加宽导致负载加重,电压进一步降低,形成正反馈,极易导致波动。
这三个缺陷导致这个电路最终无法成功,而在实际搭建过程中,由于我对相关技术的不熟悉,问题层出不穷。
第一个问题是最严重也是最容易解决的,就是我首次电路组装完毕,上电竟然发现mcu不工作。
经过仔细检查,修改程序,发现当mcu启动,开启PWM的时候,导致的电源电压降低形成干扰,引发了mcu重置。
于是在mcu的电源脚并联了4.7uF电解电容,问题解决。
第二个问题是,mcu工作之后,对电源电压进行采样,但是由于电源电压在LED这种大负载下波动严重,采样得到的数值是一系列近乎离散的数据,根本就没有办法确认哪些是实际的电压值。
与此同时mcu工作在不稳定的电压下,本身ADC的精度也会大受影响。这个问题导致这个方案几乎陷于瘫痪。于是我只好采用先手动测量电池电压,然后修改程序PWM输出的方式做测试。因为这个,前后烧写程序多达500次。
第三个问题,我改变工作电流,从300mA提升到700mA,mcu重置的问题再次出现,后来使用了1uF电容并联才解决。
提升工作电流之后,第四个问题随之出现,就是提高PWM,没有影响最终输出。这个问题让我疑惑了很久,最终仔细检查发现使用的线路内阻太大(我曾在ednchina论坛发贴说明这个问题)。过高的线路内阻导致PWM提升到一定程度后,电流主要由线路内阻制约而无法进一步提升。
我随便找了一个电动机的电源线,外径2mm左右,内部多股铜线拧成1mm左右,更换电线后,电流输出趋于正常。
这些问题逐步解决,我开始着手处理ADC采样数据过于离散的问题,设计了各种算法,取均值,取最高值,等方法,最终都没有取得可用的效果。
这时候,我在手电论坛(www.shoudian.com)发布了我制作这个电路的消息,有人跟帖说希望能安装在厚度只有4mm的空间。我因为使用了电感元件,无法满足这一要求。
考虑到方案问题太多,而实际应用对空间要求比较苛刻,我决定放弃Dc-DC变换的方式,采用直接PWM驱动。
于是这个方案宣布彻底失败,新的方案随之而来。
PWM直接驱动的缺点是效率相对低(但是比电池串连电阻直驱还是要高的多),但是由于避免了电感元件,带来的体积缩小很明显,是个值得尝试的方式,而且国外厂家也已经推出过这类产品,在可行性上有一定的把握。
我的下一篇介绍,使用PWM直接输出的LED驱动电路。敬请期待
用户44958 2007-10-13 17:01
用户1187881 2007-10-11 22:11
怎么没有看到这篇文章呢,正想了解一下,麻烦有的话,给个链接给我
我的邮箱:chenniao@xsec.com.cn
用户30629 2007-6-14 10:01
用户74109 2006-10-16 10:36