——看了這篇文章,覺得不錯,雖然是2410 時代的文章了,現在s5pv210 早已經把vga 1024*768 做的很生猛成熟了,但是這篇文章還有學習作用的。
大多數嵌入式產品的顯示終端都選擇lcd,但在某些需要大螢幕顯示的應用中,工業級lcd的**比較昂貴,且現有的大螢幕顯示器(包括crt顯示器和lcd顯示器)一般都採用統一的15針vga顯示介面。三星公司arm9晶元s3c2410以其強大的功能和高價效比在目前嵌入式產品中得到廣泛的應用。
1 vga介面介紹
近年來,業界制定出了眾多數位化的顯示介面協議,較為典型的是dvi(digital visual inte***ce)。由於數字介面的標準還未統一,廠商支援各自的標準,導致數字介面的標準遲遲未定。vga介面是乙個模擬訊號介面。作為在顯示領域多年的介面標準,直到今天它仍是所有顯示終端最為成熟的標準介面,現在某些高階的電視也支援vga介面。
15針vga介面訊號定義如表1所列。除了2個nc訊號、3根顯示資料匯流排和5個gnd訊號,比較重要的訊號是3個rgb彩色分量訊號和2個掃瞄同步訊號 hsync和vsync。vga介面中彩色分量採用rs343電平標準。rs343電平標準的峰峰值電壓為1 v。該標準定義的4個電平範圍是:
白電平--+0.714 v;
黑電平--+0.054 v;
消隱電平--0 v;
同步電平---0.286 v。
2 s3c2410 lcd控制器簡介
三星公司的arm9晶元s3c2410功能強大,價效比高,在目前的嵌入式產品中得到了廣泛的應用。s3c2410帶有lcd控制器,可以很方便地控制驅動掃瞄式介面的lcd顯示。
2.1 引腳功能資訊
lcd控制器提供了掃瞄式資料傳輸引腳和時序控制引腳,具體描述如下:
vframe/vsync--lcd控制器和lcd驅動器之間的幀同步訊號。該訊號告訴lcd屏新一幀開始了。lcd控制器在一幀顯示完成後立即插入乙個vframe訊號,開始新一幀的顯示。
vline/hsync--lcd控制器和lcd驅動器之間的行同步脈衝訊號。該訊號用於lcd驅動器將水平線(行)移位暫存器的內容傳送給lcd屏顯示。lcd控制器在整行資料移人lcd驅動器後,插入乙個vline訊號。
vclk--lcd控制器和lcd驅動器之間的畫素時鐘訊號。lcd控制在vclk的上公升沿處送出資料,lcd驅動器在vclk的下降沿處取樣。
vm/vden--lcd驅動器的ac訊號。vm訊號被lcd驅動器用於改變行和列的電壓極性,從而控制畫素點的顯示。vm訊號可以與每幀同步,也可以與可變資料的vline訊號同步。
vd[23:0]--lcd畫素資料輸出埠。
2.2 暫存器
s3c2410的lcd控制暫存器主要有:lcdcon1暫存器、lcdcon2暫存器、lcdcon3暫存器、lcdcon4暫存器、lcdcon5暫存器。這些暫存器的設定與顯示屏資訊、控制時序和資料傳輸格式等密切相關,在設計中需要根據顯示裝置的具體資訊正確設定這些暫存器才能使s3c2410正常控制驅動不同的顯示屏。
2.3 內部結構
3 vga介面設計
3.1 adv7120簡介
3.2 原理圖設計
vga介面的同步訊號和lcd掃瞄式介面的同步訊號是一致的。利用adv7120可以方便地將s3c24l0的lcd掃瞄式介面轉換成vga介面,電路原理所示。
s3c2410處理器介面中的同步掃瞄訊號hsync和vsync直接接到vga介面,vden訊號(顯示資料有效訊號)則被用於控制adv7120晶元。由於adv7120對參考電平的要求精度很高,不能以電阻分壓電路代替。在此採用了1.2 v電壓基準晶元ad589來產生參考電壓。該電路設計中需要注意的是,在pcb布板時要將模擬地和數字地分開。
4 s3c2410相關暫存器設定
以解析度為640×480、重新整理頻率為60 hz、16位彩色顯示模式為例,根據圖3所示vga介面同步訊號時序,介紹s3c2410中lcdcon1~lcdcon5暫存器的設定。
4.1 lcdconl暫存器
linecnt:行計數器的狀態位。唯讀,不用設定。
clkval:確定vclk頻率的引數。公式為vclk=hclk/[(clkval+1)×2],單位為hz。筆者所用的硬體系統hclk=100 mhz,640×480的顯示屏需要vclk=20 mhz,故需設定clkval=1。
mmode:確定vm的改變速度。在此選擇mmode=o,為每幀變化模式。
pnrmode:確定掃瞄方式。選擇pnrmode=0x3,為tft lcd面板掃瞄模式。
bppmode:確定bpp(每畫素位數)模式。在此選擇bppmode=0xc,為tft 16位模式。
envid:資料輸出和邏輯訊號使能控制位。選擇envid=1,為允許資料輸出和邏輯控制。
4.2 lcdcon2暫存器
vbpd:確定幀同步訊號和幀資料傳輸前的一段延遲時間,是幀資料傳輸前延遲時間和行同步時鐘間隔寬度的比值,,vbpd=t3/t6=1.02 ms/31.77μs=32。
lineval:確定顯示的垂直方向尺寸。公式:lineval=ysize-1=479。
vspw:確定幀同步時鐘脈衝寬度,是幀同步訊號時鐘寬度和行同步時鐘間隔寬度的比值。,vspw=t2/t6=0.06 ms/31.77μs=2。
4.3 lcdcon3暫存器
hbpd:確定行同步訊號和行資料傳輸前的一段延遲時間,描述行資料傳輸前延遲時間內vclk脈衝個數,,vbpd=t7×vclk=1.89 μs×25mhz=47。
hozal:確定顯示的水平方向尺寸。公式hozal=xsize-1=639。
4.4 lcdcon4暫存器
hspw:確定行同步時鐘脈衝寬度。描述行同步脈衝寬度時間內vclk脈衝個數,,hspw=3.77μs×25 mhz=94。
4.5 lcdcon5暫存器
vstatus:垂直方向狀態。唯讀,不用設定。
hstatus:水平方向狀態。唯讀,不用設定。
bpp24bl:確定顯示資料儲存格式。此處設定bpp24bl=0x0,為小端模式存放。
frm565:確定16位資料輸出格式。此處設定frm565=0x1,為5:6:5格式輸出。
invvclk:確定vclk脈衝有效邊沿極性。根據螢幕資訊確定,此處選擇invvclk=0xl,vclk上公升沿到來時資料傳輸開始。
invvllne:確定hsync脈衝的極性。由圖3可知,為負極性,設定invvline=0x1選擇負極性脈衝。
invvframe:確定vsync脈衝的極性。由圖3可以看出,為負極性,故設定invvframe=0x1選擇負極性脈衝。
invvd:確定資料輸出的脈衝極性。根據螢幕資訊確定,此處設定invvd=0x0選擇正極性脈衝。
invvden:確定vden訊號極性。根據螢幕資訊確定,此處設定invvden=0x0為正極性脈衝。
invpwren:確定pwren訊號極性。根據螢幕資訊確定,此處設定nvpwren=0x0為正極性脈衝。
invlend:確定lend訊號極性。根據螢幕資訊確定,此處設定invlend=0x0為正極性脈衝。
pwren:pwren訊號輸出允許。設定pwren=0xl,允許pwren輸出。
enlend:lend輸出訊號允許。設定enlend=0x1,允許lend輸出。
bswp:位元組交換控制位。根據各自需要設定,此處設定bswp=0x0,禁止位元組交換。
hwswp:半字交換控制位。根據各自需要設定,此處設定hwswp=0xl,使能半位元組交換。
5 討論
s3c2410處理器能夠驅動24位顏色模式的vga介面,但當處理器資料匯流排負載過大時,顯示效果就不太理想。具體分析所需資料頻寬如下:
s3c2410處理器工作在640×480×60 hz×24位(解析度為640×480、重新整理頻率為60 hz、24位色彩)模式下的資料頻寬為:640×480×60×4/(1 024×1 024)=70.3mb/s(24位顏色實際占用32位資料量),這些資料都需要利用dma方式通過系統的資料匯流排從sdram中獲得。而s3c2410 處理器在100 mhz的匯流排頻率下,32位記憶體的峰值頻寬是100×32/8=400mb/s,實際頻寬也就100~200 mb/s。那麼70.3 mb/s的顯示資料對於s3c2410處理器過於沉重了,顯示器的螢幕經常會出現短暫的黑屏。這是因為系統匯流排太忙,lcd掃瞄式介面的資料跟不上,掃瞄時鐘的頻率暫時變慢導致crt顯示器的同步訊號不符合規範所致。若用16位顏色模式,則資料頻寬減為640×480×60×2/(1 024×1 024)=35.2mb/s。實際測試中,工作在16位顏色模式下,可以正常顯示60 hz下的640×480的vga圖形。
6 總結
綜上分析,如果要支援高解析度和高重新整理率的顯示,需要比較大的資料頻寬,對處理器的頻率和匯流排頻率要求較高。本設計可以完全支援16位色彩下640×480×60 hz顯示模式的crt顯示,並且如果採用lcd作為顯示介面,lcd對重新整理率的要求和crt顯示器不同,lcd可以在重新整理率為30 hz的情況下正常顯示。
ARM嵌入式平台的VGA介面設計
1 vga介面介紹 近年來,業界制定出了眾多數位化的顯示介面協議,較為典型的是dvi digital visual inte ce 由於數字介面的標準還未統一,廠商支援各自的標準,導致數字介面的標準遲遲未定。vga介面是乙個模擬訊號介面。作為在顯示領域多 年的介面標準,直到今天它仍是所有顯示終端最為...
嵌入式,ARM掃盲
炮製了一篇,基本是拿來主義,不算技術,只能算雜談。注 此處正常模式和普通模式是我生造的術語,沒有確定是否存在,各位請暫且忽略。arm異常處理過程 arm的異常,包括復位 未定義指令 軟體中斷 資料訪問中止 外部中斷請求 快 速中斷請求。處理過程 1 儲存現場,包括處理器當前狀態 中斷遮蔽位 cpsr...
ARM嵌入式實驗
問題 在startup.s中增加函式,由c程式呼叫,以此取得彙編中相關引數的設定值。獲取pll中m,p值,c程式呼叫彙編函式 在c語言中,要extern 乙個函式宣告即可,然後這個函式在彙編裡面實現。在彙編裡面,用export 把c語言定義的函式名引進來,再開始編寫函式名開始的段 實現 c程式呼叫 ...