基于TMS320LF2407A控制SED1335液晶顯示方案
1 硬件設(shè)計(jì)
本文引用地址:http://butianyuan.cn/article/168270.htm1.1 TMS320LF2407A的特點(diǎn)
TMS320LF2407A芯片作為DSP控制器24x系列的新成員,是TMS320C2000平臺(tái)下的一種定點(diǎn)DSP芯片,也是目前TMSC2000家族中集成度高,性能最強(qiáng)的芯片[1],它與現(xiàn)存的24xDSP控制器芯片代碼兼容,但是資源更加豐富、功能更強(qiáng),其特點(diǎn)是:采用高性能靜態(tài)CMOS技術(shù),使得供電電壓將為3.3V,減小了控制器的功耗,40MIPS(百萬條指令每秒)的執(zhí)行速度使得指令周期縮短到25ns,從而提高了控制器的實(shí)時(shí)控制能力,片內(nèi)有32KB的Flash程序存儲(chǔ)器,高達(dá)1.5KB的數(shù)據(jù)/程序RAM,544B雙口RAM(DRAM)和2KB的單口RAM(SARAM)。TMS320LF2407A芯片集成了16通道10位500ns的高性A/D轉(zhuǎn)換器;CAN2.0模塊;串行通信接口(SCI)模塊,16位SPI(串行外部設(shè)備接口)模塊,WD(看門狗)定時(shí)器模塊,基于PLL(鎖相環(huán))的時(shí)鐘發(fā)生器,高達(dá)41個(gè)可單獨(dú)編程和復(fù)用的GPIO(通用輸入/輸出)引腳,5個(gè)外部中斷(2個(gè)驅(qū)動(dòng)保護(hù)、復(fù)位和2個(gè)可屏蔽中斷),電源管理具有3種低功耗模式等。并且,TMS320LF2407A具有2個(gè)事件管理器模塊EVA和EVB,每個(gè)事件管理器包括:2個(gè)16位通用定時(shí)器,8個(gè)16位PWM(脈寬調(diào)制)通道,可以實(shí)現(xiàn)三相反相器控制、PWM的中心或邊緣校正,當(dāng)外部引腳PDPINTX出現(xiàn)低電平時(shí)快速關(guān)閉PWM通道,防止擊穿故障的可編程的PWM死區(qū)控制,對(duì)外部事件進(jìn)行定時(shí)捕捉的3個(gè)捕獲單元,片內(nèi)光電編碼器接口電路,如此功能強(qiáng)大使得TMS320LF2407A大大簡化了外部硬件電路的設(shè)計(jì)。
1.2 SED1335的性能特點(diǎn)
SED1335是SEIKDEPSON公司出品的LCD控制器,具有較強(qiáng)功能的I/O緩沖器,指令功能豐富,4位數(shù)據(jù)并行發(fā)送,在同類產(chǎn)品中是功能最強(qiáng)大的,SED1335硬件結(jié)構(gòu)可分為MPU接口、控制部分和驅(qū)動(dòng)LCM部分,結(jié)構(gòu)如圖1所示。
DSP或單片機(jī)可以隨時(shí)訪問SED1335而不需要判別其當(dāng)前的工作狀態(tài),SED1335及時(shí)地把DSP送來的指令代碼和參數(shù)或顯示數(shù)據(jù)到位,或把顯示數(shù)據(jù)送到系統(tǒng)的數(shù)據(jù)總線供DSP讀取,SD3335的忙標(biāo)志寄存器僅有1位忙標(biāo)志位BF,當(dāng)BF=1時(shí),表示SED1335正在向LCD模塊傳送有效顯示數(shù)據(jù),在傳送完一行有效顯示數(shù)據(jù)到下一行傳送開始之間的間歇時(shí)間內(nèi)BF=0,在向SED1335進(jìn)行大數(shù)據(jù)量傳輸時(shí),還需要加入判忙狀態(tài)位BF的檢測,否則有可能使顯示出現(xiàn)雪花現(xiàn)象。
SED1335的軟件功能非常強(qiáng),共有14條指令,且多數(shù)指令都帶有若干參數(shù),參數(shù)值由使用者根據(jù)需要設(shè)置[2],DSP訪問SED1335首先將指令代碼寫入指令緩沖器(A=1),隨后將該指令所需參數(shù)按順序通過數(shù)據(jù)輸入緩沖器(A=0)寫入相應(yīng)的功能寄存器內(nèi)。SED1335指令代碼既可設(shè)置功能位、又是參數(shù)寄存器的選通碼。除了SLEEP IN指令,CSRDIR指令,CSRR指令和MREAD指令外,所有的指令執(zhí)行都將在其參數(shù)的輸入完成后。SED1335控制部擁有一個(gè)內(nèi)部字符發(fā)生器,具有160種5×7點(diǎn)陣字體的字符,控制部能分區(qū)管理64KB的顯示存儲(chǔ)器,可以同時(shí)管理3個(gè)或4個(gè)顯示區(qū),并同時(shí)管理自定義字符發(fā)生器。
1.3 硬件接口電路
SED1335控制部是SED1335的核心,主要作用是接收主機(jī)的指令和數(shù)據(jù),產(chǎn)生相應(yīng)的時(shí)序及數(shù)據(jù)來控制LCD模塊,TMS320LF2407A與SED1335的接口電路如圖2所示,其中D0-D7為數(shù)據(jù)中線,WR為寫選通信號(hào),RD為讀選通信號(hào),CS為器件選通信號(hào),RST為復(fù)位信號(hào),A0決定是數(shù)據(jù)還是指令,VO為LCD驅(qū)動(dòng)電壓,TMS320LF2407A是3.3V電源器件,而MSPG320240是5V電源供電,所以它們不能直接相連。
由于在顯示過程中,TMS320LF2407A需要將數(shù)據(jù)寫入控制器,有時(shí)又要從控制器中讀數(shù)據(jù),因此數(shù)據(jù)總線上的信號(hào)流是雙向的,如果把兩者直接相連,數(shù)據(jù)的流向可能會(huì)對(duì)TMS320LF2407A造成損害,所以在設(shè)計(jì)中采用74LVC4245進(jìn)行總線電平轉(zhuǎn)換,為解決此問題,也可以使用兼容3.3V和5V的CPLD(復(fù)雜可編程邏輯器件),例如MAX7000,通過它來連接SED1335與TMS320LF2407A,同時(shí)為了提高TMS320LF2407對(duì)控制器的驅(qū)動(dòng)能力,且適合電平要求,SED1335的5個(gè)控制端口通過非門74HC04分別與TMS320LF2407A的輸入/輸出端口A相連,通過對(duì)這個(gè)控制口不同的信號(hào)組合可以實(shí)現(xiàn)寫指令代碼、 寫參數(shù)、讀參數(shù)及顯示數(shù)據(jù)等,由于LCD模塊需要負(fù)電壓驅(qū)動(dòng)才能工作,所以必須有負(fù)壓產(chǎn)生電路,常用的負(fù)電源產(chǎn)生方法有以下2種,一種是采用79系列三端集成穩(wěn)壓器,可產(chǎn)生-18V(7918)、-24V(7924)等電源,另一種是再生DC/DC模塊或采用DC/DC集成電路制造負(fù)電源。SD1335有時(shí)需要配有CCFL(冷陰極發(fā)光)器件,有背光燈管,在點(diǎn)背光時(shí)需要逆變器,型號(hào)為CAX L10A或QPY-L10A,逆變器供點(diǎn)為5V直流電源,輸出交流電壓在驅(qū)動(dòng)背景光,輸出管腳OUT1、OUT2中任選一腳與OUT GND組成兩端接至LCD的背光引腳。
2 軟件設(shè)計(jì)
2.1 訪問I/O空間的方法
由于TMS320LF2407A的速度最高可達(dá)到40MIPS,而SEED1335的晶振頻率在1M赫茲到10M赫茲之間,所以DSP全速訪問SED1335是不可行的,解決的方法有2種:一種是可以設(shè)置DSP中的等待狀態(tài)寄存器WSGR,通用增加等待狀態(tài)的方法解決2個(gè)器件的速度匹配問題,另一種是在每一條指令間加入一定的延時(shí),一般為1μs為以上,把SED1335地址放在TMS320LF2407A的I/O空間,所以必須知道如何訪問它訪問DSP的I/O空間為匯編語言中有專門的指令,從程序的可移植性和通用性方面考慮,選用C語言編程有極大的優(yōu)越性,這里介紹如何在C語言編譯環(huán)境CCS2.2(C2000)中訪問DSP的I/O空間,在TI公司針對(duì)24XX系列DSP的優(yōu)化C語言中有一個(gè)關(guān)鍵字ioport,可以在C語言環(huán)境中方便訪問I/O空間,具體定義如下:
2.2 初始化SED1335
初始化的作為是根據(jù)LCD結(jié)構(gòu)對(duì)LCD模塊進(jìn)行參數(shù)設(shè)置,因?yàn)閰?shù)設(shè)置是根據(jù)LCD模塊的結(jié)構(gòu)來決定的,所以同一種類LCD模塊的參數(shù)設(shè)置基本上大同小異[3]。對(duì)于MSPDDG320240,下面給出它的SYSTEM SET和SCROLL參數(shù),SYSTEM SET指令是SED1335的軟件初始化指令,該指令有8個(gè)參數(shù);SCROLL指令用來設(shè)置顯示RAM區(qū)的起始地址及所占有的顯示行數(shù),該指令有10個(gè)參數(shù),這2條指令參數(shù)設(shè)定值為:SYSTEM SET:0x30,0x87,0x07,0x28,0x2f,0x0f0,0x28,0x00;SCROLL:0x00,0x00,0x0f0,0x00,0x40,0x0f0,0x00,0x80,0x00,0x00。
SED1335可顯示文本、圖形和字符。顯示特性有些區(qū)別,但是實(shí)質(zhì)上是一樣的,都是對(duì)LCD屏上特定的區(qū)域?qū)懭胂嚓P(guān)的數(shù)據(jù),這些數(shù)據(jù)以數(shù)組的形式事先建立在程序的開頭處,在現(xiàn)實(shí)這些漢字、字符與圖形時(shí)把數(shù)據(jù)寫入顯示RAM中,軟件流程見圖3,具體顯示特性和顯示合成方式通過設(shè)置OVLAY指令確定。
不失一般性,下面給出顯示漢字和字符的子程序:
在子程序中x,y為顯示字符在LCD屏上的位置坐標(biāo),以LCD屏左上角為原點(diǎn),左邊正方向?yàn)橄蜃?、向下,codeno為字符代碼號(hào),從0x80-0xbf,每個(gè)漢字占用4個(gè)序號(hào),如0x80所表示的漢字占用x80,0x81,0x82,0x83這4個(gè)序號(hào),0x80-0x9f序號(hào)共有8個(gè)漢字,字模占用1335中用戶自定義字庫一區(qū),0xa0-0xbf序號(hào)共有8個(gè)漢字,字模占用1335中用戶自定義字庫二區(qū),Return為返回值。PSystemSet[6]為SYSTEM SET指令的第7個(gè)參數(shù)值,表示顯示屏一行作占顯示緩沖區(qū)的低位字節(jié)數(shù)。
4 結(jié)束語
本文以TMS320LF2407A為處理機(jī),發(fā)送指令和數(shù)據(jù)給LCD模塊的控制器,該模塊由程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和其他外圍芯片構(gòu)成,主要介紹二者的硬件組成和接口設(shè)計(jì),如何通過軟件在LCD屏上顯示本文、圖形和字符等方面的應(yīng)用,本文設(shè)計(jì)的系統(tǒng)具有成本低、硬件簡單、運(yùn)行穩(wěn)定可靠、傳輸速度快、開發(fā)周期短的優(yōu)點(diǎn)。適用于短距離無線傳輸和數(shù)據(jù)采集領(lǐng)域,有著廣泛的應(yīng)用前景,特別是在智能家電等設(shè)備上。
評(píng)論