顯示控制器S680724的接口技術(shù)
摘 要:設(shè)計(jì)點(diǎn)陣液晶屏顯示控制器S680724與嵌入式處理器SEP3203的接口電路,解決3V電壓總線與5 V電壓器件的雙向傳輸問題。介紹使用一個(gè)片選信號(hào)控制多個(gè)顯示控制器的設(shè)計(jì)技巧,同時(shí)給出其初始化程序。
關(guān)鍵詞:SEP3203 S680724 顯示控制器 接口技術(shù)
引 言
S680724是Samsung公司1999年推出的一款大規(guī)模的顯示控制驅(qū)動(dòng)芯片,用于控制和驅(qū)動(dòng)點(diǎn)陣式液晶屏。這款顯示控制芯片將控制電路、RAM和驅(qū)動(dòng)電路集成在單一芯片中,使其在系統(tǒng)成本方面具有優(yōu)勢(shì)。SEP32O3是由東南大學(xué)國(guó)家ASIC工程中心設(shè)計(jì)的一款基于ARM7TDMI內(nèi)核的16/32位嵌入式微處理器。雖然SEP3203自帶LCD控制器,但是其信號(hào)適用于不帶RAM的灰度或彩色液晶屏,不支持在工控系統(tǒng)中常使用的帶RAM的黑白液晶顯示屏,所以工控系統(tǒng)應(yīng)用中需要通過外接顯示控制器來實(shí)現(xiàn)液晶顯示。下面介紹S680724顯示控制器在以SEP3203為核心的工控系統(tǒng)中的應(yīng)用。
1 系統(tǒng)介紹
1.1設(shè)計(jì)要求
系統(tǒng)要求通過總線掛接的方式實(shí)現(xiàn)64×192黑白點(diǎn)陣的顯示。該點(diǎn)陣屏的規(guī)格較特殊,但在電話終端和小型收款機(jī)等工控系統(tǒng)中經(jīng)常使用。常見的幾款中小規(guī)模顯示由DSP自身的硬件來協(xié)調(diào)沖突,因此HPI-8口適用于與單片機(jī)構(gòu)建較好的主從雙CPU處理器平臺(tái)。控制器[2.3]所控制的點(diǎn)陣范圍都比其小(65×132,132×176)。需要用2片S680724控制該液晶屏,同時(shí)要求只使用1個(gè)片選信號(hào)來實(shí)現(xiàn)對(duì)2片S680724的控制。
1.2系統(tǒng)構(gòu)成
系統(tǒng)主要由SEP3203處理器、電平轉(zhuǎn)換芯片74LVXC4245和74HCT541,以及2片S680724顯示控制器組成,如圖1所示。SEP3203是一款16/32位嵌入式微處理器,由東南大學(xué)國(guó)家ASIC工程中心設(shè)計(jì)。采用業(yè)界標(biāo)準(zhǔn)的ARM7TDMI內(nèi)核,AMBA總線結(jié)構(gòu)。SEP3203處理器內(nèi)嵌20 KB零等待的靜態(tài)存儲(chǔ)器(SRAM),提供SDRAM控制器;可支持NOR Flash、NAND Flash啟動(dòng);可擴(kuò)展支持各種SRAM接口的設(shè)備;提供可自由控制的GPIO口,同時(shí)具有多種控制器接口。
S680724是一款顯示控制驅(qū)動(dòng)芯片,最大支持65×132的點(diǎn)陣顯示,同時(shí)提供主從式結(jié)構(gòu)的擴(kuò)展;內(nèi)部帶有RAM,可以支持屏幕自刷新;有65個(gè)common輸出,165個(gè)segment輸出。它的MPU接口可支持8080和6800兩種時(shí)序模式。模式的選擇通過配置外部引腳來實(shí)現(xiàn)。
由于單片S680724只支持65×132點(diǎn)陣的顯示,而設(shè)計(jì)要求實(shí)現(xiàn)64×192點(diǎn)陣的顯示,因此在圖1中使用了2片S680724。另外,由于S680724使用5 V信號(hào),Vm的最小值為4 V(0.8VDD),而SEP3203的總線采用的是3 V信號(hào)(通常的嵌入式CPU使用的都是3 V總線),所以SEP3203無法直接驅(qū)動(dòng)S680724,需要作電平轉(zhuǎn)換。因此圖1中在SEP3203與S680724之間增加了電平轉(zhuǎn)換芯片,以實(shí)現(xiàn)3 V信號(hào)與5 V信號(hào)的雙向轉(zhuǎn)換。
電平轉(zhuǎn)換芯片選用的是74LVXC4245 和74HCT541。這兩款芯片都是普通的邏輯芯片,很多公司都生產(chǎn)。74LVXC4245是雙向電平轉(zhuǎn)換芯片,3 V和5 V兩路電源供電;可以支持3 V到5 V的雙向電平轉(zhuǎn)換,但需要有信號(hào)控制電平轉(zhuǎn)換方向。74HCT541是單向的緩沖芯片,采用5 V電源,可以將輸入的3 V信號(hào)轉(zhuǎn)換成5 V信號(hào)后輸出。
2 硬件設(shè)計(jì)
2.1 總線接口的分析
S680724可與各種MPU相連,具體連接方式取決于MPU所使用的總線類型。其提供兩種MPU的信號(hào)接口協(xié)議:一種是6800系列MPU接口協(xié)議,如圖2所示;另一種是8080系列MPU接口協(xié)議.如圖3所示。將兩種接口協(xié)議與SEP3203的接口協(xié)議對(duì)比,可見SEP3203的接口協(xié)議屬于8080接口協(xié)議,因此采用8080的接口實(shí)現(xiàn)S680724與SEP3203的連接。SEP3203的接口協(xié)議如圖4所示。
根據(jù)8080接口協(xié)議,S680724與MPU接口信號(hào)的定義如表1所列。
S680724的DO~D7信號(hào)應(yīng)與SEP3203的DATAO~DATA7信號(hào)連接;S680724的RD、WR、CS信號(hào)應(yīng)分別與SEP3203的OE、WE、CS信號(hào)連接。RS是訪問控制寄存器與RAM的選擇信號(hào)——RS為低時(shí)訪問S680724的控制寄存器.RS為高時(shí)訪問S680724中的RAM。其作用相當(dāng)于地址信號(hào),因此與SEP3203的地址線連接。RST是S680724的復(fù)位信號(hào),可由SEP3203的GPIO產(chǎn)生。
2.2雙8680724控制器接口設(shè)計(jì)
由于要支持64×192的點(diǎn)陣顯示,所以在該設(shè)計(jì)中需要使用2片S680724(以S680724一A和S680724_B來表示)。圖1中S680724_A控制液晶屏的64×132個(gè)點(diǎn),S680724_B控制剩下的64X 60個(gè)點(diǎn)。由于總線設(shè)備較多,只有1個(gè)片選信號(hào)能用于對(duì)2片S680724芯片的操作;同時(shí)56130724與SEP3203的總線也需要作電平轉(zhuǎn)換,因此在該接口設(shè)計(jì)中利用了電平轉(zhuǎn)換芯片實(shí)現(xiàn)了該功能,并沒有再增加額外的邏輯芯片。分析S680724與MPU的接口信號(hào),發(fā)現(xiàn)其中RD、WR、RST、CS、RS信號(hào)只需單向傳輸(從MFU傳向S680724),只有DO~D7信號(hào)需要雙向傳輸。圖5中,使用74HCT541實(shí)現(xiàn)3 V信號(hào)到5 V信號(hào)的單向電平轉(zhuǎn)換,74LVXC4245實(shí)現(xiàn)3 V信號(hào)與5 V信號(hào)的雙向電平轉(zhuǎn)換。
圖3中CSlB、CS2、RS信號(hào)是同時(shí)變化的(CSlB信號(hào)為低,CS2信號(hào)為高時(shí)S680724被選中)。由于在實(shí)際使用中CS2信號(hào)是固定接高電平,所以CSlB信號(hào)就是文中S680724芯片的CS信號(hào)。圖4中SEP3203總線的地址信號(hào)和片選信號(hào)也是同時(shí)變化的,因此考慮使用地址信號(hào)來代替片選信號(hào)。但如果直接用地址信號(hào)來代替片選信號(hào)會(huì)導(dǎo)致總線對(duì)其他設(shè)備操作時(shí)也選中S680724,即兩個(gè)總線設(shè)備被同時(shí)選中,從而產(chǎn)生錯(cuò)誤。在該設(shè)計(jì)中,利用電平轉(zhuǎn)換芯片的特性解決了這一問題。如圖5所示,使用了ADDR3、ADDR4作為S680724的片選信號(hào)(LCD_CSA、LCD_CSB)。ADDR2作為選擇對(duì)S680724寄存器或RAM操作的信號(hào)(LCD)_RS)。SEP3203的片選信號(hào)ICDnCSF連接74HCT541的使能端()E。當(dāng)LCD_nCSF信號(hào)為低時(shí)74HCT54l被使能,OE、WE、ADDR3、ADDR4、ADDR2信號(hào)被轉(zhuǎn)換成相應(yīng)的5V信號(hào)(LCD/RD、LCD_/WR、LCD_CSA、LCD_CSB、LCD_RS)輸出到S680724;當(dāng)LCD_nCSF信號(hào)為高時(shí)74HCT541停止工作,此時(shí)74HCT54l輸出高阻態(tài),為避免噪聲干擾,輸出端信號(hào)LCD_/RD、LCD_/WR、LCD_CSA、LCD_CSB、LCD_RS應(yīng)被上拉至5 V。在SEP3203的片選LCD_nCSF無效(高電平)時(shí),由于信號(hào)LCD_CSA、LCD_CSB被拉高,所以此時(shí)2片S680724控制器都未被選中,任何操作對(duì)其都是無效的,從而避免了在總線對(duì)其他設(shè)備操作時(shí)可能對(duì)S680724產(chǎn)生的誤操作。
數(shù)據(jù)信號(hào)的電平轉(zhuǎn)換類似于控制信號(hào)的電平轉(zhuǎn)換。74LVXC4245是雙向電平轉(zhuǎn)換芯片,圖5中的LCD_DIR信號(hào)由SEP3203的GPIO產(chǎn)生,用于控制74LVXC4245電平轉(zhuǎn)換方向的信號(hào)。當(dāng)LCD_DIR為低時(shí),信號(hào)由B端傳向A端,即由總線傳向S680724(寫操作);當(dāng)LCD_DIR為高時(shí),信號(hào)由A端傳向B端,即由S680724傳向總線(讀操作)。信號(hào)LCD_DO~LCD_D7也需要上拉,防止當(dāng)74LVXC4245的輸出為高阻時(shí),外部噪聲在其輸出端產(chǎn)生錯(cuò)誤信號(hào)。
值得一提的是,S680724顯示控制器在PCB板上的位置靠近液晶屏,與SEP3203之間的距離很大。在PCB布局時(shí),需要注意電平轉(zhuǎn)換芯片的位置。因?yàn)槠洳坏须娖睫D(zhuǎn)換的作用,而且還能緩沖總線信號(hào),使總線和S680724顯示控制器隔離,避免總線過長(zhǎng)。電平轉(zhuǎn)換芯片的布置應(yīng)該盡量靠近總線,減小總線的長(zhǎng)度,從而避免產(chǎn)生由總線過長(zhǎng)造成的信號(hào)延時(shí)及噪聲干擾問題。
雖然RST信號(hào)也是單向傳輸?shù)?,?/SPAN>RST信號(hào)的電平轉(zhuǎn)換電路卻是單獨(dú)設(shè)計(jì)的。如果使用74HCT541完成電平轉(zhuǎn)換,會(huì)有兩個(gè)問題:①當(dāng)LCD_nCSF失效時(shí)74HCT541不工作,此時(shí)LCD__RESET信號(hào)無法傳遞到RST端,RST端始終是高電平(被上拉至5 V),因此S689724無法被復(fù)位;②在74HCT541工作時(shí),因?yàn)?/SPAN>LCD_nCSF的脈沖寬度等于總線周期(最大值約為幾百ms).所以輸出的RST信號(hào)的最大脈沖寬度也等于總線周期;而S680724要求的RST信號(hào)最小脈沖寬度是1μs,所以用74HCT541無法產(chǎn)生正確的RST信號(hào),此時(shí)S68072同樣無法被復(fù)位。在圖5中,該信號(hào)的電平轉(zhuǎn)換電路是由晶體管和電阻構(gòu)成的。
3 驅(qū)動(dòng)程序
該部分軟件主要是依照S680724的初始化流程、命令參數(shù)列表及其他資料編寫的。S680724的訪問地址只有兩個(gè):一個(gè)是寄存器地址(通過寫入不同的命令字來實(shí)現(xiàn)對(duì)S680724的控制);另一個(gè)是RAM端口(顯示數(shù)據(jù)由此寫入)。
首先需要根據(jù)S6B0724的接口設(shè)計(jì)計(jì)算其各端口的訪問地址。SEP3203的片選信號(hào)LCD_nCSF所對(duì)應(yīng)的基址是0x34000000。圖5中S680724_A、S680724_B的寄存器訪問地址分別是0x340000100、0x34000020;RAM的訪問地址分別是0x34000018、0x34000028。特別是在該接口設(shè)計(jì)允許SEP3203同時(shí)訪問S680724_A和S680724_B,寄存器的訪問地址為0x34000000,RAM的訪問地址為0x34000008。在實(shí)際使用中??梢岳眠@個(gè)特點(diǎn)對(duì)兩個(gè)控制同時(shí)初始化,提高軟件效率。
S680724的初始化流程如圖6所示。先冷復(fù)位S680724,然后將74LVXC4245的電平轉(zhuǎn)換方向設(shè)置為從總線向數(shù)據(jù)線。通過寫S680724的控制寄存器對(duì)S680724軟復(fù)位,然后選擇所用的顯示方式和掃描方向,再選擇背光亮度;通過寫寄存器的方式打開S680724內(nèi)部的電壓反轉(zhuǎn)器,等待10 ms后再打開電壓生成器。延遲10 ms后,打開電壓跟隨器,等所有電壓都穩(wěn)定后(約等待10 ms)再設(shè)定液晶屏的工作電壓,最后開始顯示。圖像的顯示通過函數(shù)void Write_alILCD(void)來實(shí)現(xiàn)。其功能是將所要顯示的點(diǎn)陣數(shù)據(jù)送入2片S680724。
初始化程序如下:
void GPC)_init(void){
RESET_LCD();
//冷復(fù)位
*(RP)PORTB_SEL l=(1<<8);
//設(shè)定74LVXC4245的電平轉(zhuǎn)換方向
*(RP)PORTB_DATA 8L=~(1<<8);
*(RP)PORTB_DIR&=~(1<<8);
*(RPl6)ADDR_LCD_CMD=INTER_RESET;
//2片S6B0724B同時(shí)軟復(fù)位
1NIT_LCD(); //初始化S680724B
*(RPl6)ADDR_LCD_CMD=DISPLAY_ON;
//初始化完畢開始顯示
Clear_LCD(); //清屏
}
4結(jié)論
該設(shè)計(jì)已在以SEP3203為核心的嵌入式系統(tǒng)中被實(shí)際應(yīng)用。采用S680724顯示控制器后,解決了SEP3203微處理器在工控應(yīng)用中使用液晶屏的問題。使用1個(gè)片選信號(hào)實(shí)現(xiàn)了對(duì)2個(gè)顯示控制器的控制。2個(gè)以上顯示控制器的控制也可通過類似方法實(shí)現(xiàn)。該設(shè)計(jì)可以在金融收費(fèi)系統(tǒng)、稅務(wù)管理系統(tǒng)、電話終端等眾多系統(tǒng)中應(yīng)用。