电流检测电路
电流检测运放连接成差分放大器,以精确测量电流、检测电阻两端的电压。为简化电路要求,在电源返回路径上进行电流测量。R1、R2和C1构成一个低通滤波器,用来降低可能存在的开关噪声。为避免影响控制环的响应,该滤波器的截止频率必须大于电压转换器的开关频率。
稳流电路
稳定LED电流流量的电路由双相位PWM模块、内部比较器和一个参考电压源构成。双相位PWM模块是按置位/复位原理工作的“模拟”式PWM模块。首先,从系统时钟产生的一个时钟信号用来周期性地开启PWM输出。PWM时钟信号确定基本的PWM频率。然后,当达到指定的参考电平时,来自一个片上比较器的复位信号会关断PWM输出。
放大后的电流信号内部连接到PIC16HV785中比较器1的正输入端。PWM模块使用PIC16HV785 器件中的捕捉比较外设(CCP1)来产生比较器所需要的参考电压。采用PWM可以更精细地控制比较器参考电压。利用RC滤波器对PWM信号进行滤波,从而获得一个模拟电压并将它输送给比较器的负输入端。
软件实现方案
这一应用的软件部分非常简单,因为LED电流控制功能是采用模拟方式完成的。一旦所有外设被设为使能,并且正确设置了电流参考值,那么不需要软件干预,LED就会持续发光。
然后,应用程序代码可以测量供电电压(利用片上集成的10位A/D转换器)和供电电流,从而保证驱动LED工作在恒定功率模式。随着电池输入电压的变化,D/A电路(采用CCP外设实现)将产生新的参考电压值进行补偿。
设置LED亮度
由于单片机内核在稳定功率方面仅需要花费很小一部分时间,因此更多的时间可用于用户界面以及提供更多功能,如电池状态监控和亮度控制。利用这一电路及软件调整LED亮度有两种方法。其中一种技术基于LED亮度随驱动电流而变化的原理,事实上,利用这种方法可以实现近似线性的LED亮度控制。然而改变电流实现调光并非控制LED亮度的最高效方法,只有在生产商指定的最大驱动电流水平下,LED才能够达到最高的发光效率。
可利用一个低频PWM信号来调制LED驱动电流。采用这种方法,电流并未减小,即在点亮时,LED始终通过最大电流。但PWM信号的占空比设定了LED点亮的平均时间。PWM频率要选择得足够高,以使LED电流的开关速率足够快,从而使人眼感受不到光在闪烁;同时,PWM频率也要足够低,这样稳流电路在PWM导通时间内就有足够的时间稳定。如果这些条件都能够满足,那么人眼会对一段时间内的LED的光输出进行平均。PWM调光信号的频率通常在60Hz 到 1000Hz之间。
总结
PIC16HV785几乎包含了实现大功率LED驱动电路所需要的元器件。根据输入电压范围,可以方便地配备成升压或降压-升压工作模式。这一应用仅使用了单片机RAM和闪存的一小部分,为其他用户应用程序代码留下了足够的空间。实际上,PIC16HV785单片机中还有足够的未用外设,可用来实现其它LED驱动器、电池充电器或开关电路。