吳紅雪
摘 要:本文從電路設(shè)計(jì)和軟件編程兩個方面詳細(xì)探討了基于NCP5623的RGB-LED驅(qū)動電路設(shè)計(jì)方案。
關(guān)鍵詞:NCP5623;RGB-LED;驅(qū)動電路
1 硬件設(shè)計(jì)
本設(shè)計(jì)采用51單片機(jī)作為核心控制器,選用NCP5623作為驅(qū)動芯片。NCP5623是美國的安森美半導(dǎo)體公司推出的帶I2C接口的LED驅(qū)動器,內(nèi)部有3個獨(dú)立工作的通道,可用于驅(qū)動RGB-LED。由于51單片機(jī)本身沒有集成I2C接口,可任選兩個I/O管腳與NCP5623的SDA和SCL腳相連,用軟件模擬通訊協(xié)議。51單片機(jī)通過I2C總線向NCP5623發(fā)送命令,可實(shí)現(xiàn)RGB-LED三種顏色的亮度單獨(dú)調(diào)整,漸進(jìn)調(diào)光等功能。設(shè)計(jì)硬件電路圖如圖1所示。RSET為基準(zhǔn)電流端的外接電阻,用于設(shè)定LED的最大工作電流ILED(max),工作電流的計(jì)算公式:
式中UREF為NCP5623的內(nèi)部基準(zhǔn)電壓源600mV;n為步進(jìn)量,其值由控制命令中的參數(shù)確定,1?燮n?燮31。需要注意的是當(dāng)n=31時(shí),應(yīng)按照n=30來計(jì)算,以避免電流計(jì)算公式中出現(xiàn)分母為零的情況。
2 軟件設(shè)計(jì)
51單片機(jī)通過普通I/O口模擬I2C總線的技術(shù)已經(jīng)非常成熟,這里不再贅述。對于本設(shè)計(jì)而言,軟件工作的重點(diǎn)是根據(jù)NCP5623的數(shù)據(jù)手冊所提供的命令設(shè)計(jì)子函數(shù),NCP5623的內(nèi)部寄存器各位分配情況如表1所示。
該器件的每一個命令為1個字節(jié),通過I2C總線將這一個字節(jié)傳輸出去即可實(shí)現(xiàn)相應(yīng)的控制功能。在這一個字節(jié)中,最高三位表示命令類型,低五位用來表示命令參數(shù)。比如010表示對紅燈進(jìn)行控制,后五位則表示控制的目標(biāo)亮度相關(guān)參數(shù)n,下面給出每個命令的子程序?qū)崿F(xiàn)流程,其中Start_I2C( )是I2C總線啟動函數(shù),Stop_I2C( )是I2C總線停止函數(shù),ACK( )是I2C總線應(yīng)答函數(shù),SendByte( )是傳輸數(shù)據(jù)函數(shù),data值由表1可得到。
表中的$70代表NCP5623的器件地址。
Start_I2C( );
SendByte(0x70);
ACK( );
SendByte(data);
ACK( );
Stop_I2C( );
其中data=0x00時(shí),實(shí)現(xiàn)三個燈全滅的功能;當(dāng)data取值為0x20~0x3f時(shí),可同時(shí)控制三個燈的亮度;當(dāng)data取值為0x40~0x5f時(shí),可以單獨(dú)控制紅燈的亮度;當(dāng)data取值為0x60~0x7f時(shí),可以單獨(dú)控制綠燈的亮度;當(dāng)data取值為0x80~0x9f時(shí),可以單獨(dú)控制藍(lán)燈的亮度。
NCP5623自帶亮度漸進(jìn)調(diào)整命令,子程序?qū)崿F(xiàn)流程如下:
Start_I2C( );
SendByte(0x70);
ACK();
SendByte(data1);
ACK();
SendByte(data2);
ACK( );
SendByte(data3);
ACK( );
Stop_I2C( );
當(dāng)data1取值為0x20~0x3f,data2取值為0xa0~0xbf時(shí),可實(shí)現(xiàn)燈光漸亮調(diào)整。由于data1表示起始亮度值,data2表示目標(biāo)亮度值,所以data1的低五位值一定要小于data2的低五位值,data3表示亮度調(diào)整的步進(jìn)時(shí)間。
當(dāng)data1取值為0x20~0x3f,data2取值為0xc0~0xdf時(shí),可實(shí)現(xiàn)燈光漸暗調(diào)整,此時(shí)須保證data1的低五位值大于data2的低五位值。
3 總結(jié)
本文設(shè)計(jì)了一種基于單片機(jī)的RGB-LED驅(qū)動電路。根據(jù)功能需求,采用了NCP5623芯片,給出了電路圖和主要命令程序,將不同命令程序組合起來,可以實(shí)現(xiàn)多種顏色變化和多層次亮度調(diào)整,有非常強(qiáng)的實(shí)用價(jià)值。
參考文獻(xiàn)
[1]林立.單片機(jī)原理及應(yīng)用——基于Prot
eus和Keil C(第4版)[M].電子工業(yè)出版社,2018.
[2]NCP5623 Triple Output I2C Controlle
d RGB LED Driver.october.2008.