I2C接口的LED驱动电路设计与应用攻略

网友投稿 369 2022-11-20

I2C接口的LED驱动电路设计与应用攻略

PCA9633是四路LED驱动器,且每路可驱动最大25mA电流,并根据封装的不同提供了可选的固定I2C地址和带4位或7位硬件可编硬件地址。如下图所示。

从图1我们可以看到,每一路LED都是由一个单独的8bit/256阶的PWM来控制,且由于PWM足够快,使其理论上可以通过它所驱动的四个LED混出任意颜色的光。除了每一路单独的PWM,PCA9633还提供了一个Group PWM,通过它我们可以用来控制所调混色光的亮度及频率,弥补了只调单个PWM不能实现的一些功能。那么PCA9633究竟如何来实现调光呢?秘密还是在 PWM上面。如果不使用PWM,那么它只能完成开和关的动作;低速的PWM只能实现LED闪烁,并不足以达到混色的目的;高速的PWM就可以实现RGB混色;如果PWM速度可控,那么就可以实现闪烁和混色的双重功能。而且通过可控的8bit/256阶PWM,加大了色阶提升了色彩的层次感。见下图2所示。

知道了混色的原理,那么一个具体的色彩又是如何产生的呢?我们知道人眼对色彩的感知是各种色彩亮度均值的叠加,我们可以通过控制 PCA9633每个PWM的占空比,去控制所驱动LED的亮度。根据三基色原理,如果我们驱动的是RGB(或者RGBA)LED,那么通过调节这三个 LED的不同光亮,就可以得到所要的色彩。图3是PCA9633控制RGB三个LED来调粉色光的例子。

通过以上的描述,我们基本知道了PCA9633的内部结构和驱动原理。下面我们将会以PCA9633固定I2C地址的几个应用,来进一步理解这种LED控制器的优势所在。

第二个例子是我们用PCA9633来完成呼吸灯的功能。虽然PCA9633内部不带呼吸灯模块,但我们可以通过一些简单的寄存器设置来实现这个功能,这样相比于专用的呼吸灯芯片在成本上无疑有很大的优势。为了便于说明,我们只用PCA9633来控制一个LED的呼吸动作,原理图很简单,在此略去,通过控制这一个LED的渐亮与渐暗过程以达到呼吸的目的。要实现这个功能,PCA9633的独立PWM将是最主要的因素。如前我们已经提到每个 LED都是由一个8bit/256阶PWM来控制,那么也就是说,每个灯有256段亮暗色阶可调,可以完美实现呼吸功能。具体,我们通过控制PWM的占空比来完成。如果我们的LED是由PCA9633的PWM0来控制,那么PWM0的占空比将决定这个LED的亮度:Bright(duty cycle)=PWM0[7:0]/256.到此,一个完整的呼吸过程就完成了,用几个简单的寄存器设置,就完成了看起来似乎只有用复杂系统或专用芯片才能做的事情。从以上两个例子,我们可以看到用恩智浦的I2C LED驱动器,不论是硬件上还是软件上都是非常简单和易操作的,而且用此类器件所能实现的功能,丝毫不比一些系统和专有芯片逊色。

总之,I2C LED驱动器提供了高性价比的LED设计方案,相比于用GPIO或专用LED驱动器,不仅节省了系统资源,也使设计的成本和复杂度大大减少,并可以有效提高设计的可靠性和驱动光的均匀性。此外,采用此类LED驱动器,可以很有效地帮助我们减少设计周期并提升设计灵活性。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:DAMA-CDMP真题详解_第一套试卷_046~050题
下一篇:Docker部署Hadoop集群
相关文章

 发表评论

暂时没有评论,来抢沙发吧~