用戶自定制LED驅(qū)動器的設(shè)計
隨著計算機技術(shù)和電子技術(shù)的飛速發(fā)展和廣泛應(yīng)用,電器設(shè)備的輸出顯示技術(shù)也變得復(fù)雜多樣,諸如crt顯示、lcd顯示、多位led顯示及發(fā)光二極管顯示等應(yīng)運而生。在這些顯示當(dāng)中,led及發(fā)光二極管顯示電路較為簡單,成本也較低,在功能單一的儀器儀表與機電設(shè)備中應(yīng)用較廣。但當(dāng)設(shè)備顯示的點或位較多時,就需要采用一定的驅(qū)動電路與相應(yīng)的驅(qū)動方式。
在led的驅(qū)動和顯示單元的設(shè)計中,采用的方式有許多種:利用計算機芯片的端口作為led的驅(qū)動口,并通過軟件編程加外部驅(qū)動實現(xiàn),缺點是占用計算機芯片的時間和相關(guān)資源;利用專用接口芯片如intel8155、8255等作為計算機芯片的端口擴展,并通過軟件編程加外部驅(qū)動實現(xiàn),缺點是電路較復(fù)雜,功耗較大,也要占用計算機芯片的時間和相關(guān)資源;利用顯示用專用芯片如intel8279、max7219、ps7219等,可實現(xiàn)較復(fù)雜的功能,但其占用計算機芯片端口還是較多,并且芯片價格較高。大多數(shù)顯示驅(qū)動器都沒有嚴(yán)格的總線時序,在強干擾環(huán)境下容易造成時序混亂,使顯示不正常。本文討論的led顯示方案是利用philips公司的lpc系列單片機芯片的電路特性,從另一種形式來定制專用的led顯示驅(qū)動控制器芯片。主要利用基于i2c總線的通訊接口,使連接可靠;且基于軟件編程控制顯示,使顯示方式及種類多樣。由于lpc系列芯片的端口驅(qū)動能力較強,一般的led可直接連接,在不外加元件的情況下,可實現(xiàn)多位led或大量發(fā)光二極管的顯示,與其它芯片連接時,占用的i/o口較少。
1 4位7段led顯示器
通常的4位led顯示器如圖1所示,其內(nèi)部由多只發(fā)光二極管構(gòu)成,按連接方式不同可分為共陽極led與共陰極led。其電路特性基本一致:發(fā)光二極管導(dǎo)通壓降為1.2v~1.8v、正向工作電流為2ma~15ma。在顯示驅(qū)動方式中,采用動態(tài)掃描。當(dāng)掃描到n1~n4公共端時,led驅(qū)動器分別對應(yīng)輸出a~dp的顯示段,led就能正常顯示。在自定制led顯示驅(qū)動器芯片中,lpc系列中的p87lpc762單片機芯片具有較好的端口設(shè)置與較強的內(nèi)部功能,因此可以通過編程設(shè)置其引腳功能作為led顯示器的驅(qū)動芯片。
2 定制4位7段led顯示驅(qū)動器芯片
要實現(xiàn)4位7段led的顯示,只要使流過發(fā)光二極管每段的電流達到要求就可以了。在這里選用philips公司lpc系列的p87lpc762單片機實現(xiàn)顯示驅(qū)動電路。p87lpc762是一款增強型51系列的單片機,除具有一般單片機的功能外,還具有驅(qū)動led的性能:
·i/o口具有上拉輸出模式或開漏輸出模式設(shè)置,可作為共陰極或共陽極led的段輸出與位輸出。
·具有較大的端口拉電流或灌電流,內(nèi)部有短路保護功能,可實現(xiàn)led的電流驅(qū)動。
·當(dāng)設(shè)計4位led驅(qū)動器時,芯片其余引腳可作i2c總線地址設(shè)置、led的極性選擇。
·內(nèi)部有2k的opt,可作為程序存儲器,用以實現(xiàn)接口與顯示程序化。
·自帶i2c硬件接口,便于接口編程與多芯片連接。
·內(nèi)部看門狗與內(nèi)部復(fù)位,可提高驅(qū)動顯示的可靠性。
·內(nèi)部設(shè)有rc振蕩器,減少了外部元件。
p87lpc762芯片的引腳功能如圖2所示。它有三個端口:port0、port1、port2。當(dāng)選擇內(nèi)部振蕩和內(nèi)部復(fù)位時,最大的i/o端口數(shù)目可達到18個。大多數(shù)端口均可以通過軟件配置成準(zhǔn)雙向、上拉、輸入、開漏輸出四種類型之一。對于上拉輸出模式,p87lpc762在標(biāo)準(zhǔn)的準(zhǔn)雙向口基礎(chǔ)上增加了第三只三極管以提供強上拉功能,在高電平時可輸出很大的拉電流;對于開漏輸出模式,端口對外可提供很大的灌電流;對于輸入模式,端口引腳電平由外部電壓決定。
根據(jù)4位動態(tài)led的顯示特性,在此對p87lpc762的端口作定義,定義引腳如表1所示。p0.0~p0.7作為4位led的段輸出,根據(jù)led極性不同,端口可設(shè)為上拉輸出或開漏輸出;p1.0、p1.1、p1.6、p1.7作為4位led的位輸出,根據(jù)led極性不同,端口可設(shè)為開漏輸出或上拉輸出;p1.5作為led的極性選擇,設(shè)置為輸入模式;p2.1、p2.0、p1.4作為i2c總線外部地址,便于多芯片連接時對i2c總線地址設(shè)定,設(shè)置為輸入模式;p1.2、p1.3保持i2c總線接口功能不變。定義后的芯片引腳如圖3所示。
要實現(xiàn)以上的芯片設(shè)置,p87lpc762的部分內(nèi)部特殊功能寄存器及引腳設(shè)置如表2所示。pxmx為端口模式設(shè)置,配合led極性進行選擇。ucfg1為芯片系統(tǒng)配置字,在芯片編程時需寫入,在程序運行后便不可以設(shè)置了。當(dāng)配置字為fbh時,其意義為:啟動看門狗、內(nèi)部復(fù)位、復(fù)位后口線為高電平、欠壓電壓為2.5v、六個clock時鐘,內(nèi)部rc振蕩器。
3 定制6位“米”字段led顯示驅(qū)動器芯片
通常,1位“米”字段led顯示器外形圖如圖4所示,其內(nèi)部由多只發(fā)光二極管構(gòu)成。如要組成6位“米”字段led顯示器,需將相同的段、位分別連接起來,每位公共端引出以便進行動態(tài)掃描。根據(jù)發(fā)光二極管連接極性不同,可分為共陽極與共陰極兩種方式。6位“米”字段led顯示器由于輸出段、位較多,可選用lpc系列的p89lpc932芯片實現(xiàn)顯示驅(qū)動電路,其引腳為28腳封裝,最大的i/o端口數(shù)目可達到26個,功能引腳如圖5所示。p89lpc932具有與p87lpc762相同的端口電氣特性,并且具有較多的i/o端口,因此可以將它作為6位“米”字段led顯示器的驅(qū)動器芯片。新定制的驅(qū)動器芯片引腳如圖6所示:a~n為驅(qū)動段輸出,n1~n6為驅(qū)動位輸出;a/k作為共陽極與共陰極的選擇端;a0~a2作為i2c總線外部地址選擇,最多可連接8只外部芯片;sda、scl保持i2c總線接口功能不變。
4 定制的led顯示驅(qū)動器芯片的應(yīng)用
以定制的4位7段led顯示驅(qū)動器芯片為例,設(shè)計的led顯示驅(qū)動器的原理圖如圖7所示。它采用89c52單片機的通用i/o口p1.0、p1.1作為模擬i2c總線;led顯示器為4位共陰極led,a/k引腳接電源;顯示驅(qū)動芯片采用p87lpc762作定制,命名為led-762。第一塊芯片的i2c總線外部地址為000,用a0、a1、a2引腳接地來實現(xiàn),其余芯片地址依次設(shè)置,最多可連接8只外部芯片(圖中未畫出)。從電路圖來看,led-762可以不加任何外部元件就可以作為led的驅(qū)動器,由于采用i2c總線連接,占用系統(tǒng)資源最少,電路較簡單。如在i2c總線上連接8只led-762,
led擴展位數(shù)可達到32位。對于“米”字段led顯示驅(qū)動器芯片的應(yīng)用,可采用同樣的連接方式。在同樣的i2c總線上,最多可擴展的“米”字段led可達到48位,足可以滿足一般使用要求。
為了提高i2c總線驅(qū)動能力,在實現(xiàn)多片連接時,scl、sda需接總線匹配上拉電阻。
5 定制的led顯示驅(qū)動器芯片的軟件編程
由于lpc系列芯片內(nèi)部帶有支持i2c總線硬件接口,用戶可以直接把它作為i2c總線的主控器或i2c總線的被控器。被控器通過i2c硬件中斷處理可實現(xiàn)從總線上接收或發(fā)送數(shù)據(jù);主控器操作i2c總線可實現(xiàn)起始時序、數(shù)據(jù)時序、應(yīng)答時序、停止時序來檢測i2c總線被控器,并實現(xiàn)相應(yīng)的數(shù)據(jù)傳送。i2c總線上的被控器是以i2c總線地址來區(qū)別的。i2c總線地址統(tǒng)一由i2c總線委員會實現(xiàn)分配,芯片地址共7位(它占據(jù)了d7~d1位),高4位(d7~d4)決定芯片種類,用戶也可以自定義芯片種類,低3位(d3~d1)通過芯片a0、a1、a2引腳設(shè)置。
當(dāng)使用帶有i2c總線接口的lpc系列芯片定制led顯示驅(qū)動器芯片時,定制的led顯示驅(qū)動器芯片設(shè)置為被控器,而要發(fā)送顯示數(shù)據(jù)的cpu設(shè)置為i2c總線主控器。定制的led顯示驅(qū)動芯片通過i2c中斷接收數(shù)據(jù)的流程圖如圖8所示。當(dāng)從i2c總線上接收第一個數(shù)據(jù)時,判斷是否與本芯片地址相同,如相同并且為寫顯示數(shù)據(jù),則發(fā)送應(yīng)答時序接收4位顯示數(shù)據(jù),然后i2c接口恢復(fù)到空閑狀態(tài)。要實現(xiàn)led動態(tài)顯示,可對led顯示驅(qū)動器編制顯示程序,根據(jù)led極性輸入,分別送出要顯示的段和位,led就能正常顯示。
根據(jù)i2c總線協(xié)議要求,對主控器發(fā)送來的數(shù)據(jù)有一定的響應(yīng)時間要求。最短時間可由rc振蕩器的倍頻頻率和中斷響應(yīng)時間來決定,最高速率可達到400kbs/s。最低速率可由lpc系列內(nèi)部專用i2c定時器i來控制,為了適應(yīng)非標(biāo)準(zhǔn)的低速率的i2c總線操作,可關(guān)閉定時器i。
6 芯片測試及主要性能指標(biāo)
按照定制要求,將完整的led顯示驅(qū)動程序與芯片設(shè)置參數(shù)通過編程器固化后,要制作芯片測試連接圖,如圖7所示。這里采用89c52的p1.0與p1.1作為模擬i2c總線控制線,編寫模擬i2c驅(qū)動程序。而且,89c52主機重新復(fù)位、i2c總線通訊斷線等情況下均不能影響顯示驅(qū)動器的下一次正常數(shù)據(jù)接收。如果關(guān)閉定制的led驅(qū)動器中的定時器i,模擬i2c程序暫停、單步調(diào)試定制的led驅(qū)動器也能正常驅(qū)動顯示。由于philips公司的lpc系列芯片端口輸出電流能力較強,在驅(qū)動0.5英寸共陰極與共陽極led時,led亮度均達到要求。在長期全亮顯示時,定制的led驅(qū)動芯片溫升正常,能夠長期連續(xù)工作。在實際使用時,控制端口a/k及a0、a1、a2由于編程時設(shè)置成輸入模式,故其懸空時輸入電平為不確定狀態(tài),并隨機變化,有可能造成不正常顯示,應(yīng)根據(jù)地址設(shè)定要求,強制接vcc或gnd。
評論