PART ONE
方案講解
- 效果展示 -
1硬件選擇
1. 顯示屏:0.96寸OLED顯示屏
2. 國產(chǎn)FPGA:HME_P1P060_EVB開發(fā)板(米聯(lián)客)
	
2FUXI工程建立
1. 軟件安裝
FUXI軟件安裝可以通過京微齊力官網(wǎng)下載安裝包,并申請License。
注意一下:FUXI軟件在導入License碼的時候,最后一格可能會自動出現(xiàn)一個空格,這個空格要去掉,不然會注冊失敗。
2. 建立工程(初學者指南)
1)雙擊圖標,點擊Create Project,建立新工程
	
2)完成三個地方,路徑,工程名,頂層模塊。
	
3)選P1系列、32417芯片。點擊finish
	
4)工程建完,編寫Verilog文件
	
5)添加PLL IP核
注意:FUXI跟其他軟件不一樣,PLL IP在列表里面是全稱:Phase-Locked Loop (v1.0b)。不要傻傻的找PLL,找不到的。
	
這個就是PLL IP。
	
6)例化IP核
開發(fā)板底板那個100Mhz的時鐘是用不了的,得用核心板的25Mhz的。工程需要50Mhz的,所以例化了一根PLL IP。
	
7)綜合RTL文件
	
8)分配IP約束
	
9)按第7步,選Rerun Project,綜合整個工程
10)燒錄
	
記得點擊Refresh刷新燒錄文件。
	
PART TWO
OLED顯示流程
其實很多人看文章,都是想弄清楚流程,但是很多博主寫文章又是這一塊那一塊,有頭沒尾的,筆者也是深有體會,這里就跟大家大概捋一下流程:
上電做初始化(配置一些寄存器)→寫IIC驅動模塊(讀寫操作)→清屏→點亮屏幕→寫入數(shù)據(jù)
	FPGA模塊:
	 頂層模塊:JWQL_oled_v2_top
	 屏幕清除模塊:Oled_Clear
	 IIC驅動模塊:I2C_Master
	 屏幕全亮模塊:Oled_On
	 顯示控制模塊:Oled_Show_control
	 信息緩存區(qū)模塊:font_data
1IIC驅動 >>
IIC即Inter-Integrated Circuit(集成電路總線),是由Philips半導體公司(現(xiàn)在的NXP半導體公司)在八十年代初設計出來的一種簡單、雙向、二線制總線標準。多用于主機和從機在數(shù)據(jù)量不大且傳輸距離短的場合下的主從通信。主機啟動總線,并產(chǎn)生時鐘用于傳送數(shù)據(jù),此時任何接收數(shù)據(jù)的器件均被認為是從機。
I2C總線由數(shù)據(jù)線SDA和時鐘線SCL構成通信線路,既可用于發(fā)送數(shù)據(jù),也可接收數(shù)據(jù)。在主控與被控IC之間可進行雙向數(shù)據(jù)傳送,數(shù)據(jù)的傳輸速率在標準模式下可達100kbit/s,在快速模式下可達400kbit/s,在高速模式下可達3.4Mbit/s,各種被控器件均并聯(lián)在總線上,通過器件地址識別。
I2C_SCL是串行時鐘線,I2C_SDA是串行數(shù)據(jù)線,由于I2C器件一般采用開漏結構與總線相連,所以I2C_SCL和I2C_SDA均需接上拉電阻,也正因此,當總線空閑時,這兩條線路都 處于高電平狀態(tài),當連到總線上的任一器件輸出低電平,都將使總線拉低,即各器件的SDA及 SCL都是“線與”關系。
I2C總線支持多主和主從兩種工作方式,通常工作在主從工作方式,我們的開發(fā)板就采用主從工作方式。在主從工作方式中,系統(tǒng)中只有一個主機,其它器件都是具有I2C總線的外圍從機。在主從工作方式中,主機啟動數(shù)據(jù)的發(fā)送(發(fā)出啟動信號)并產(chǎn)生時鐘信號,數(shù)據(jù)發(fā)送完成后,發(fā)出停止信號。
I2C總線結構雖然簡單,使用兩線傳輸,然而要實現(xiàn)器件間的通信,需要通過控制SCL和SDA的時序,使其滿足I2C的總線傳輸協(xié)議,方可實現(xiàn)器件間的數(shù)據(jù)傳輸。那么I2C協(xié)議的時序是怎樣的呢?
在I2C器件開始通信(傳輸數(shù)據(jù))之前,串行時鐘線SCL和串行數(shù)據(jù)線SDA線由于上拉的原因處于高電平狀態(tài),此時I2C總線處于空閑狀態(tài)。如果主機(此處指FPGA)想開始傳輸數(shù)據(jù),只需在SCL為高電平時將SDA線拉低,產(chǎn)生一個起始信號,從機檢測到起始信號后,準備接收數(shù)據(jù),當數(shù)據(jù)傳輸完成,主機只需產(chǎn)生一個停止信號,告訴從機數(shù)據(jù)傳輸結束,停止信號的產(chǎn)生是在SCL為高電平時,SDA從低電平跳變到高電平,從機檢測到停止信號后,停止接收數(shù)據(jù)。
I2C整體時序如下圖。起始信號之前為空閑狀態(tài),起始信號之后到停止信號之前的這一段為數(shù)據(jù)傳輸狀態(tài),主機可以向從機寫數(shù)據(jù),也可以讀取從機輸出的數(shù)據(jù),數(shù)據(jù)的傳輸由雙向數(shù)據(jù)線(SDA)完成。停止信號產(chǎn)生后,總線再次處于空閑狀態(tài)。
	
2屏幕清除 >>
	

3字符獲取 >>
使用PCtoLCD2002完美版軟件,設置按下面的設置。(字符提取軟件作者跟工程放一起,下載了,既可用)
	
4字符顯示 >>
16x16大小的字符會占用兩個page,每個page占用16列。所以可以將OLED看成只有2x16大小,這就和OLED清屏是一樣的了。
設置page之后,再設置列地址,每輸入一個數(shù)據(jù),列地址會自動加一,字符數(shù)據(jù)的顯示可以分為以下過程:
設置page,設置列地址,寫入16個數(shù)據(jù)
設置page+1,設置列地址,寫入16個數(shù)據(jù)。一共是寫入2+16+2+16個數(shù)據(jù),這樣就完成了一個字符的顯示。show_page的值為0或1。
	
PART THREE
完整工程獲取
FPGA:0.96寸oled字符顯示(可直接運行)
工程獲取
工程是用國產(chǎn)京微齊力的HME_P1P060板子做的,可以做移植,只需要在quartus或者vivado建立工程,把代碼放進去綜合即可。(除了源碼工程,還有字符提取軟件)
鳴謝:本工程參考FPGA之旅開源工程,在此特地鳴謝,希望FPGA之旅越來越好。
審核編輯:湯梓紅
- 
                                FPGA
                                +關注
關注
1652文章
22231瀏覽量
628547 - 
                                OLED
                                +關注
關注
121文章
6318瀏覽量
231978 - 
                                顯示屏
                                +關注
關注
30文章
4658瀏覽量
78338 - 
                                開發(fā)板
                                +關注
關注
25文章
6051瀏覽量
111282 - 
                                字符顯示
                                +關注
關注
0文章
4瀏覽量
5108 
原文標題:京微齊力:基于HME_P060的OLED字符顯示(及FUXI工程建立演示)
文章出處:【微信號:HME-FPGA,微信公眾號:HME京微齊力】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
蜂鳥E203驅動OLED顯示
基于STM8/32的12832OLED點陣字符顯示
60W輔助電源演示板CRD-060DD12P
OLED標準ASCII字符串顯示函數(shù)重定義
基于stm32f103與IIC的0.96OLED屏幕顯示字符與平滑滾動顯示 精選資料推薦
OLED 7針接口演示例程
如何用STM32建立工程實現(xiàn)OLED的數(shù)據(jù)顯示
怎樣使用STM32在0.96寸OLED顯示屏上實現(xiàn)字符滾動呢
STM32開發(fā)基于SPI接口的OLED數(shù)據(jù)顯示
    
          
        
        
基于HME_P060的OLED字符顯示及FUXI工程建立演示
                
 
    
           
            
            
                
            
評論