查看: 1370|回复: 0
打印 上一主题 下一主题

I2C接口的LED驱动电路

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-26 21:56:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转载,仅供学习交流

目前,通过芯片本身能驱动的每个LED电流范围为25mA到100mA之间。当然,对于一些大电流的应用场合,我们只需用外加场效应管的方式来实现。LED无疑是当前最热的一个应用,无论是手持设备、游戏机、霓虹灯、广告牌等等,眩目的色彩及高质的光亮,总能第一时间吸引人的眼球。在当前众多的LED控制器面前,如何选择一款功能丰富且性价比又高的产品来迎合自己的设计,无疑是摆在每个设计师面前的问题。
  最简单的LED驱动,我们可以用普通的I/O来实现。但I/O控制只能实现LED 的ON与OFF,无法用来进行混光、闪烁等功能,而且每个LED都需要占用一个单独的I/O资源,无疑性价比很低。我们也可以用专用的大电流LED控制器来设计,但昂贵的成本首先会成为问题,而且设计复杂,程度也会跟着各种干扰的出现相应地提高。基于这些,恩智浦(NXP)推出一系列使用I2C接口的 LED驱动器,它可以通过I2C接口的两根线,去同时控制从4个到24个不等LED的ON/OFF、闪烁及RGB混光。在混光方案里,每个LED都是由一个独立的8bit/256阶PWM来驱动。这种基于I2C的LED控制方式,增加了设计的方便性与灵活性,而且也会减少在软硬件方面的投入,使披着神秘面纱的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驱动器,不仅节省了系统资源,也使设计的成本和复杂度大大减少,并可以有效提高设计的可靠性和驱动光的均匀性。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表