登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
基于I2C接口的LED驱动器设计与实现
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
基于I2C接口的LED驱动器设计与实现
[复制链接]
1103
0
ad***
管理员
发表在
单片机/DSP
2013-6-7 09:04:14
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
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来驱动。目前,通过芯片本身能驱动的每个LED电流范围为25mA到100mA之间。当然,对于一些大电流的应用场合,我们只需用外加场效应管的方式来实现。
这种基于I2C的LED控制方式,增加了设计的方便性与灵活性,而且也会减少在软硬件方面的投入,使披着神秘面纱的LED对我们来讲顿时显得简单和精彩。下面,我们将会以恩智浦LED驱动器PCA9633为例,通过几个简单的应用来全面阐述这种LED驱动器的优势所在。
PCA9633是四路LED驱动器,且每路可驱动最大25mA电流,并根据封装的不同提供了可选的固定I2C地址和带4位或7位硬件可编硬件地址(图1)。
从图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来控制亮度条。我们知道一般像亮度条这样的应用,往往需要用到大量LED串联来进行。如果用单个接口去控制每个LED,会使成本和软件复杂度大大增加。而通过I2C,在硬件上只需要两条控制线,在软件上只需发一条字节命令,就可以轻松进行操控。除此之外,由于I2C器件地址的唯一性,可以按所驱动LED的数量使用几个PCA9633来进行控制。如果实际应用中PCA9633本身的驱动电流不够,只需在外围加一个FET就可以轻松解决。另外,PCA9633独有的Group PWM使得控制整个亮度条的光强和闪烁变的得心应手。下面是其原理图(见图4),其中I2C master由系统提供,可以是MCU,也可以是逻辑电路。
图4中左半部为I2C的master,不作细述。右边最上为LED限流电阻,通常LED的前向电压为3V左右,根据不同的颜色和制造工艺会有一些差别。我们可以通过所需LED电流去计算这个限流电阻的值: R=(Vsupply-Vfsum)/If。如果所需的LED电流大于25mA,那么图中所加的FET可以轻松解决这一问题。当我们外加了FET以后,只需把PCA9633的相应寄存器的OUTDRV设为高就可以了,以区别于它的默认值。现在我们可以看到用PCA9633去控制如此多的LED,原理图相当简洁,同样在软件设置寄存器上也同样方便。PCA9633提供了简易且完整的内部寄存器,例如LED输出结构设置、节电模式设置、芯片使能模式设置、LED的输出状态设置,以及每个PWM和Group PWM的控制寄存器设置等。除此之外,PCA9633还提供了一个寄存器设置递增位,也就是说如果我们设置了这一位,那么我们可以通过一个指令序列来完成内部所有寄存器的顺序配置,这在一些特定的应用中是非常有用的,能最大程度节省软件和系统资源。下面,我们将通过另外一个例子来说明内部寄存器的设置。
第二个例子是我们用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往PCA9633的寄存器上写点什么了:
START
0xC4 (往PCA9633 I2C设备地址C4写操作)
00h=0x00; 01h=0x00 (设置LED的输出结构为开漏)
08h=0x02 (设置LED由PWM0来控制)
Delay 1 second (延时1秒进行呼吸)
02h=bright; For bright=0; bright&;255;bright++ (LED从0到255渐亮)
Delay 10 ms (完成渐亮延时10毫秒继续)
02h=bright; For bright=255; bright>0;bright- - (LED从255到0渐暗)
STOP
到此,一个完整的呼吸过程就完成了,用几个简单的寄存器设置,就完成了看起来似乎只有用复杂系统或专用芯片才能做的事情。从以上两个例子,我们可以看到用恩智浦的I2C LED驱动器,不论是硬件上还是软件上都是非常简单和易操作的,而且用此类器件所能实现的功能,丝毫不比一些系统和专有芯片逊色。
综上所述,恩智浦I2C LED驱动器提供了高性价比的LED设计方案,相比于用GPIO或专用LED驱动器,不仅节省了系统资源,也使设计的成本和复杂度大大减少,并可以有效提高设计的可靠性和驱动光的均匀性。此外,采用此类LED驱动器,可以很有效地帮助我们减少设计周期并提升设计灵活性。恩智浦目前可以向客户提供从4路到24路不等的I2C LED驱动器,并已应用于汽车、家电、通信等各大领域。
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
模电数电论坛
Allegro论坛
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
产品品牌:永嘉微电/VINKA 产品型号:VK2C21D 封装形式:SOP16 概述 VK2C21D是
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
产品品牌:永嘉微电/VINKA 产品型号:VK2C21C 封装形式:SOP20 概述 VK2C21C是
更多
精华推荐
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
VK2C21B SOP24高抗干扰LCD液晶段码驱动芯片
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶段码
更多
社区学堂
VKL144A TSSOP48 点阵式液晶驱动芯片/
高抗干扰液晶显示驱动/省电液晶驱动IC/
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表