基于Zynq的OLED驅(qū)動(dòng)設(shè)計(jì)_第1頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于zynq的oled驅(qū)動(dòng)設(shè)計(jì) o具備自發(fā)光、不需背光源、對(duì)照度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、用法溫度范圍廣、構(gòu)造及制程較容易等優(yōu)異特性,被認(rèn)為是下一代的平面新興應(yīng)用技術(shù)。目前的驅(qū)動(dòng)大部分都是基于stm系列 芯片和傳統(tǒng)芯片。為適應(yīng)最新平臺(tái)zynq的人機(jī)交互需要,提出一種基于zynq的oled驅(qū)動(dòng)設(shè)計(jì)辦法。文章闡述了oled的特性和spi控制方式,給出了設(shè)計(jì)流程和硬件。利用zynq的pl部分完成了oled驅(qū)動(dòng)的ip核,利用zynq的ps部分實(shí)現(xiàn)了oled的驅(qū)動(dòng)程序設(shè)計(jì)。通過(guò)axi實(shí)現(xiàn)pl和ps的通信。最后通過(guò)測(cè)試程序,實(shí)現(xiàn)了字母、數(shù)字和點(diǎn)陣圖像的實(shí)時(shí)顯示。解決了基于zynq器

2、件在廣電儀器和電力儀表儀器中人機(jī)交互的工程技術(shù),具有集成度高、可移植性強(qiáng)和通用性好等優(yōu)點(diǎn)。1 引言隨著近幾年技術(shù)的飛快進(jìn)展和廣泛應(yīng)用,人機(jī)交互成為嵌入式設(shè)備的迫切需要。為適應(yīng)xilinx最新平臺(tái)zynq的人機(jī)交互需要,提出一種基于zynq的oled驅(qū)動(dòng)設(shè)計(jì)辦法。有機(jī)發(fā)光(organic lightemitting diode,oled)因?yàn)橥瑫r(shí)具備自發(fā)光、不需背光源、對(duì)照度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、用法溫度范圍廣、構(gòu)造及制程較容易等優(yōu)異特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。xilinx最新平臺(tái)zynq將處理器的軟件可編程能力與fpga的硬件可編程能力實(shí)現(xiàn)完善結(jié)合

3、,以低功耗和低成本等系統(tǒng)優(yōu)勢(shì)實(shí)現(xiàn)良好的系統(tǒng)性能、靈便性和可擴(kuò)展性。目前oled的驅(qū)動(dòng)大部分都是基于stm系列arm芯片和傳統(tǒng)fpga芯片。在zynq上,xilinx提供了演示實(shí)例,但無(wú)裸機(jī)源碼,無(wú)法滿足實(shí)時(shí)性比較強(qiáng)的工程實(shí)際需求。文章具體闡述了基于zynq的oled驅(qū)動(dòng)設(shè)計(jì)步驟和辦法,并且在基于zynq的開發(fā)板zedboard上實(shí)現(xiàn)了實(shí)時(shí)顯示字母、數(shù)字和點(diǎn)陣圖像,為zynq在儀器儀表領(lǐng)域?qū)崿F(xiàn)人機(jī)交互提供了技術(shù)支撐。2 oled驅(qū)動(dòng)設(shè)計(jì)流程zynq是一個(gè)armpspl結(jié)構(gòu),其中pl部分就是傳統(tǒng)意義的fpga,可以便利地定制相關(guān)外設(shè)ip,也可以舉行相關(guān)的算法設(shè)計(jì),和用法一般fpga徹低一樣。假如不

4、用法pl,zynq的ps部分和一般的arm開發(fā)一樣。zynq最大的特點(diǎn)是可以利用pl部分靈便地定制外設(shè),掛在ps上,而一般的arm,外設(shè)是固定的。因此,zynq的硬件外設(shè)是不固定的,這也是zynq靈便性的一個(gè)表現(xiàn)。oled在zynq上是銜接在pl上,因此需要把oled對(duì)應(yīng)引腳掛在ps的硬件上,然后設(shè)計(jì)oled ip核,再通過(guò)sdk設(shè)計(jì)驅(qū)動(dòng)程序,oled驅(qū)動(dòng)設(shè)計(jì)流程1所示。zedbozrd控制oled的主要辦法是:自行設(shè)計(jì)一個(gè)ip核,對(duì)oled的6個(gè)控制信號(hào)和電源信號(hào)舉行規(guī)律設(shè)計(jì)和引腳約束,通過(guò)axi總線,把oled的ip核和ps聯(lián)系起來(lái)。在ps部分編寫相應(yīng)的驅(qū)動(dòng)程序,即可實(shí)現(xiàn)對(duì)oled的控制,

5、2所示。圖1 oled驅(qū)動(dòng)設(shè)計(jì)流程圖2 oled系統(tǒng)設(shè)計(jì)圖因此,要實(shí)現(xiàn)oled顯示功 能,主要做以下幾個(gè)方面工作:設(shè)計(jì)zynq硬件系統(tǒng)(ps部分)、設(shè)計(jì)自己的ip核和ps部分驅(qū)動(dòng)程序設(shè)計(jì)。3 建立zynq硬件系統(tǒng)和oled ip核zynq的開發(fā)板zedboard上用法inteltronicwisechip公司的oled顯示模組ug2832hsweg04,辨別率為12832,是一款單色被動(dòng)式顯示屏,驅(qū)動(dòng)采納所羅門科技的ssd1306芯片。詳細(xì)電路3所示。按照原理圖可知,zedboard開發(fā)板用法的oled采納spi方式控制,spi模式用法的信號(hào)線和電源線有如下幾條:rst(res):硬復(fù)位ole

6、d;dc:指令數(shù)據(jù)標(biāo)記(0,讀寫指令;1,讀寫數(shù)據(jù));sclk:串行時(shí)鐘線;sdin:串行數(shù)據(jù)線;vdd:規(guī)律電路電源;vbat:dcdc轉(zhuǎn)換電路電源。在spi模式下,每個(gè)數(shù)據(jù)長(zhǎng)度均為8位,在sclk的升高沿,數(shù)據(jù)從sdin移入到ssd1306,并且是高位在前的。圖3 oled原理圖zynq的硬件系統(tǒng)是指在pl中配置相關(guān)外設(shè),掛載到ps中,作為ps部分的外設(shè)用法。oled驅(qū)動(dòng)主要用到6個(gè)io口,在生成硬件系統(tǒng)時(shí),只需要利用xilinx的嵌入式工具xps生成最小硬件系統(tǒng),然后把oled的相關(guān)引腳添加到最小硬件系統(tǒng)中。主要過(guò)程如下:(1)按照芯片型號(hào),按照xps工具設(shè)計(jì)流程,生成zynq的最小硬件

7、系統(tǒng)。(2)在最小硬件系統(tǒng)中,添加外設(shè)ipmyoled,把oled的spi引腳添加到工程中。添加一個(gè)6位寄存器,每位和spi引腳對(duì)應(yīng)。(3)myoledip核規(guī)律設(shè)計(jì)主要完成ip核引腳添加、端口映射和用戶規(guī)律功能。首先要對(duì)設(shè)計(jì)的ip核添加引腳,在系統(tǒng)生成的mpd文件中,添加oled的相關(guān)引腳端口和方向信息。在mpd文件中,在port下添加oled的相關(guān)引腳和方向信息,詳細(xì)代碼如下:portdc ,diroportres ,diroportsclk ,diroportsdin ,diroportvbat ,diroportvdd ,diro(4)在系統(tǒng)生成的myoled.vhd文件中,用語(yǔ)言舉行

8、端口設(shè)計(jì),主要舉行以下兩個(gè)設(shè)計(jì)。聲明ip和用戶6個(gè)信號(hào)和電源的端口。代碼如下:dc outstdlogic;res outstdlogic;sclk outstdlogic;sdin outstdlogic;vbat outstdlogic;vdd outstdlogic;將用戶端口和ip核端口舉行映射,代碼如下:dc dc,res res,sclk sclk,sdin sdin,vbat vbat,vdd vdd,(5)在系統(tǒng)生成的userlogicv文件中,用語(yǔ)言舉行規(guī)律設(shè)計(jì),實(shí)現(xiàn)寄存器和spi對(duì)應(yīng)端口銜接并實(shí)時(shí)讀取,主要代碼如下。其中slvreg0為ip核寄存器,tmp為用戶定義暫時(shí)寄存

9、器,tmp的每一位和ip端口一一對(duì)應(yīng)。實(shí)現(xiàn)把slvreg0寄存器低6位實(shí)時(shí)傳給tmp寄存器,通過(guò)對(duì)寄存器slvreg0的寫操作達(dá)到控制6個(gè)引腳的時(shí)序。always(posedgebus2ipclk)begintmpslvreg05:0;end4 oled驅(qū)動(dòng)程序設(shè)計(jì)因?yàn)閦edboard開發(fā)板上的oled用法的是spi協(xié)議,并且只支持寫,不支持讀,因此控制oled就是在sclk的時(shí)鐘下,通過(guò)sdin舉行指令和數(shù)據(jù)的傳輸。oled的控制需要經(jīng)過(guò)初始化、傳數(shù)據(jù)和指令以及對(duì)顯存設(shè)置等操作實(shí)現(xiàn)。4.1 初始化驅(qū)動(dòng)ic的初始化代碼,可以參考廠家推舉的設(shè)置,但需要按照開發(fā)板上oled實(shí)際參數(shù)舉行一些修改。按

10、照ssd1306數(shù)據(jù)手冊(cè)的初始化解釋,詳細(xì)步驟4所示。初始化的實(shí)現(xiàn)就是對(duì)ssd1306舉行寫指令。圖4 ssd1306初始化步驟4.2 寫數(shù)據(jù)和指令的實(shí)現(xiàn)在sclk時(shí)鐘下,按照要寫入的數(shù)據(jù)或者指令,設(shè)置sdin引腳的電平,一位一位地把數(shù)據(jù)寫入ssd1306。ssd1306每次傳送的指令和數(shù)據(jù)均為一個(gè)字節(jié),傳送數(shù)據(jù)和指令的區(qū)分是通過(guò)setoleddc宏,設(shè)置該函數(shù)為寫數(shù)據(jù),通過(guò)clroleddc宏,設(shè)置該函數(shù)為寫指令。實(shí)現(xiàn)一個(gè)字節(jié)的數(shù)據(jù)傳輸代碼如下:for(i0;i8;i)clroledsclk;if(data&0x80)setoledsdin;elseclroledsdin;setoledsc

11、lk;data1;4.3 顯存數(shù)據(jù)寫入ssd1306存儲(chǔ)器我們采納的方法是在ps的內(nèi)部建立一個(gè)oled的gram(共128個(gè)字節(jié)),在每次修改的時(shí)候,只是修改ps上的gram(事實(shí)上就是sram),在修改完之后,一次性把ps上的gram寫入到oled的gram。詳細(xì)代碼如下:voidoledrefreshgram(void)u8i,n;for(i0;i4;i)writecmd(0xb0i);設(shè)置頁(yè)地址writecmd(0x00);設(shè)置顯示位置列低地址,偏移了2列writecmd(0x10);設(shè)置顯示位置列高地址for(n0;n128;n)writedata(oledgramni);4.4 顯示結(jié)果系統(tǒng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論