利用GPIO扩展器构建电荷泵,驱动蓝光LED
Abstract
利用I²C GPIO扩展器IC (MAX7315)的I/O端口,以较低的电源电压驱动蓝光LED。
蓝光LED在工业应用领域越来越受欢迎,有时甚至用作控制面板上的彩色指示器。但是,它们的正向电压较高,这与电源电压不断降低的趋势背道而驰。控制面板具有3.3V电源电压时,若要点亮需要高达3.5V驱动电压的LED照明指示灯,就会碰到难题。若要驱动多个蓝光LED,您可能需要一个电荷泵或者升压型调节器。但是如果只驱动单个LED,您可以使用少数几个分立元件和PCB上已有的IC来实现。
控制面板内通常设计有I²C GPIO扩展器,以适应远距离传输。(采用一条串行总线来替代8根或者16根并行连线,实现更加方便;而且采用较小型的电缆和连接器,可节省成本)。您可以使用两路GPIO口线来驱动LED。GPIO扩展器的每个I/O端口内置脉宽调制(PWM)电路,并具备50mA电流吸收能力,因此可以构成一个价格便宜的分立元件电荷泵(图1)。尽管该电荷泵的振荡器开关频率很低(2kHz),但由于LED只需要10mA驱动电流,所以该方法仍可以很好地工作。
图1. GPIO扩展器在执行其它功能的同时,还可以方便地驱动一个蓝光LED
在8路输出中的一路上(P4)接入一个电容和一个肖特基二极管,并将该输出置为PWM模式(占空比约为50%),这样就可以产生足够高的LED驱动电压。第二路输出(P6)用来点亮和关闭LED。如果LED正向电压接近或低于电源电压,则需要开-关控制,因为这时即使振荡器关闭,电流也会流过CR1。当P4输出为低时,电容C1充电至大约3V。当P4输出为高时,电容上的电压加上电源电压可通过R1向LED提供电流。在P4关闭期间(输出为高),C1通过LED电流放电,所以在下一个周期,电容必须重新充满电。
采用3.3V电压供电时,该电路可提供平均值约为15mA的电流,这可以使LED非常明亮。电压为3.0V时,电流降至大约10mA;电压为2.0V时,电流降至大约3mA。通过改变R1和C1的取值,您可以对电流进行调整,以使其适合特定的LED。注意,您必须在P6关闭前,先停掉PWM信号。否则电荷泵在P6端口加载的电压会高达电源电压的两倍,这已经非常接近输出端的极限加载电压了。
类似的设计思想还发表在2005年1月17日出版的EE Times中的“Tips and Tricks”专栏。