娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

s5pv210 LCD編程原理

發(fā)布者:快樂航程最新更新時間:2024-12-05 來源: elecfans關(guān)鍵字:s5pv210  LCD編程  LCD控制器 手機看文章 掃描二維碼
隨時隨地手機看文章

1:LCD基本工作原理

(1)  LCD(Liquid Crystal Display)液晶顯示,液晶特性:在電信號的驅(qū)動下液晶分子進行旋轉(zhuǎn),旋轉(zhuǎn)會影響透光性,因此整個液晶面板

后面用白光(背光)來照射,通過不同的電信號讓液晶分子進行旋轉(zhuǎn)性透光,此時液晶面板就會看到顯示不同的顏色。液晶本身不發(fā)光,而是

位于后面的背光發(fā)的光。

(2)  白光是由多種顏色的光組合而成,光的實質(zhì)是一種波,不同波長/頻率的波具有不同的顏色,人眼可見光波長在390~780NM,RGB色彩模式是工業(yè)界的一種顏色標準,

是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視

力所能感知的所有顏色,是目前運用最廣的顏色系統(tǒng)之一。

(3)  210控制器可以采用RGB888顏色編碼模式,紅綠藍各8位,紅色綠色藍色又稱為三原色光,用英文表示就是R(red)、G(green)、B(blue)。在電腦中,RGB的所謂“多少”

就是指亮度,并使用整數(shù)來表示。通常情況下,RGB各有256級亮度,用數(shù)字表示為從0、1、2...直到255。共256級。計算機所能表達的顏色種類個數(shù),這個參數(shù)叫:像素深度bpp。

 (4)   LCD顯示圖像原理:LCD屏幕是由一個個像素點組成的矩陣(如resolution 1024*768,橫向有1024個像素點,縱向有768個

像素點),每個像素點都可以被單獨控制亮或者不亮或者亮度強弱等,LCD圖像就是通過不同的顏色強度的像素點組合而成。我們可采用RGB888編碼來表示每個像素

點的顏色模式(強弱、顏色等等),一幀數(shù)據(jù)就表示在LCD矩陣的每個像素點對應(yīng)的顏色模式。

(5)  SoC如何控制LCD顯示原理:

  LCD驅(qū)動器:LCD驅(qū)動器一般與LCD面板集成在一起,面板需要一定的模擬電信號來控制液晶分子,LCD驅(qū)動器芯片負責(zé)給面板提供控制液晶分子的模擬電

信號,驅(qū)動器的控制信號(數(shù)字信號)來自于LCD控制器的提供的接口。

  LCD控制器:LCD控制器集成在SoC內(nèi)部,它負責(zé)通過數(shù)字接口向外部的LCD驅(qū)動器提供要顯示的像素數(shù)字信號。它必須按照一定的時序和LCD驅(qū)動器通信,LCD

控制器受SoC控制,SoC會從內(nèi)存中拿出像素數(shù)據(jù)給LCD控制器并最終傳給LCD驅(qū)動器。

  顯存:SoC在內(nèi)存中選一段內(nèi)存,用來存放顏色數(shù)據(jù),然后通過配置將LCD控制器和這一段內(nèi)存連接起來,構(gòu)成一個映射關(guān)系,一旦這個關(guān)系建立以后

,LCD控制器就會自動從顯存中讀取像素數(shù)據(jù)傳給LCD驅(qū)動器,LCD驅(qū)動器會自動的控制每個像素點的液晶分子,以形成最終的圖像,建立這個映射以后

就不需要SoC在來參與任何行為了。

  總結(jié)一下:SoC控制LCD液晶顯示的過程分為兩個部分:

    (1) SoC的LCD控制器引出一定的引腳與LCD驅(qū)動器連接,按照標準設(shè)置一定的時序;

    (2) 把LCD要顯示的像素信息放入內(nèi)存中,在通過設(shè)置LCD控制器中的寄存器,與LCD控制器建立映射;

之后過程就是LCD控制器芯片與驅(qū)動器芯片自動完成的事情了,整個LCD圖像的顯示過程就是這樣。

 

(6)  LCD接口技術(shù):從電平角度來講LCD都是TTL電平,TTL缺陷是容易受到外界影響,傳輸距離近,一般像手機平板等直接用軟排線

連接即可,而遠距離則需要轉(zhuǎn)換,轉(zhuǎn)換方式為:TTL--》VGA--》TTL。

(7)  補充

虛擬屏幕疊加:

(1)虛擬屏幕的意思是,我們平時看到的屏幕上顯示出來的場景實際是很多個屏幕顯示疊加在一起的效果(譬如新聞圖像、電視臺臺標、下方飄動的字幕新聞)
(2)像S5PV210的LCD控制器中有5個虛擬屏幕Window0到Window4,虛擬屏幕不存在于真實而存在于內(nèi)存中。(之前講過,LCd顯示時實際是顯示的是對應(yīng)的內(nèi)存中的顯存區(qū)域的數(shù)值)

虛擬屏幕其實就是一個內(nèi)存中的顯存區(qū)域,有幾個顯存區(qū)域就有幾個虛擬屏幕,但是這些虛擬屏幕都被映射到一個真實的顯示屏上面,所以將來真實的現(xiàn)實效果實際是這幾個虛擬屏幕的顯示內(nèi)容的疊加。

(疊加時要注意上面一層會覆蓋下面一層,所以要注意誰在前誰在后,設(shè)置寄存器時有這個選項)
(3)使用虛擬屏幕而不是整個LCD使用一個顯存是有一定好處的:第一,可以保證不污染源圖像,方便程序處理;第二,可以減少屏幕刷新,提高顯示效率,減少CPU工作量。

虛擬顯示

(1)如何實現(xiàn)在小分辨率的屏幕上(真實)顯示大分辨率的圖像
(2)細節(jié)上,我們需要屏幕上看到不同圖像時,需要對顯存區(qū)域進行刷新。即使我們只需要屏幕顯示移動一點點,整個屏幕對應(yīng)的顯存空間也需要整個重新刷新,工作量和完全重新顯示一幅圖像是一樣的。

這個顯然不好,這樣CPU刷新屏幕的工作量太大了,效率很低。
(3)如何能夠在顯示一個大圖片的不同區(qū)域時讓CPU刷新屏幕工作量減少?有,方法就是虛擬顯示。具體做法就是在內(nèi)存中建立顯示緩存的時候?qū)嶋H建立一個很大的區(qū)域,然后讓LCD去對應(yīng)其中的一部分

區(qū)域作為有效的顯示區(qū)域。將來要顯示大圖像時,直接將大圖像全部一次性加載入顯示緩存區(qū),然后通過移動有效顯示區(qū)域就可以顯示大圖像的不同區(qū)域了。

 

2:S5PV210 LCD時序

看一下核心板原理圖:LCD接線為24條VD數(shù)據(jù)輸出線,用來傳輸RGB888 24位顏色數(shù)據(jù),VCLK時鐘線,HSYNC:水平同步信號線;VSYNC:垂直同步信號線,VDEN:數(shù)據(jù)使能線;

 

HSPW+1:HSYNC線上不工作是為低電平,拉高HSPW+1時鐘,在拉低,表示要準備開始傳輸顏色數(shù)據(jù);(這個時間可以理解為切換到下一行所消耗的時間)

HBPD+1:在經(jīng)過HBPD+1時鐘,VDEN線拉高,表示VD線上之后的都是RGB顏色數(shù)據(jù),所以只有當VDEN信號線為高電平是,才認為是發(fā)送的真實數(shù)據(jù),

開始發(fā)送水平顏色信息以后就會連續(xù)發(fā)送,如1024*768分辨率LCD,會一直把水平的1024個像素點的顏色數(shù)據(jù)都發(fā)送完以后才會拉低VDEN。(這個時間理解為

準備傳輸水平數(shù)據(jù)所要消耗時間)

HOZVAL+1:1024-1不表示時鐘,而是表示水平像素個數(shù)-1

表示傳輸橫線顏色數(shù)據(jù)的總時鐘,如一個時鐘頻率傳輸1個bit位,每個顏色數(shù)據(jù)設(shè)置為32位,橫向共傳輸1024個b顏色數(shù)據(jù),總的時鐘為1024*32;

HFPD+1:數(shù)據(jù)傳輸完以后首先把VDEN拉低HFPD+1時鐘,整個水平傳輸周期完成;(這個時間可以理解為,結(jié)束數(shù)據(jù)傳輸所消耗時間)

VSPW+1:同樣可以理解為切換整幀圖像數(shù)據(jù)所消耗時間;

VBPD+1:準備傳輸整幀數(shù)據(jù)消耗時間;

LINEVAL+1:768-1;

VFPD+1:結(jié)束傳輸整幀數(shù)據(jù)的同步時間;

      要注意,這幾個時序參數(shù)本身是LCD屏幕本身的參數(shù),與LCD控制器無關(guān)。所以同一個主板如果接的屏幕不一樣則時序參數(shù)設(shè)置也會不同。

 3:相關(guān)寄存器

寄存器:DISPAY_CONTROL 設(shè)置為10或11;RGB模式可行即可;

 

VIDCON0:Video Main Control 0 Register

bit18-26選擇為RGB模式

bit18:設(shè)置RGB數(shù)據(jù)傳輸為并行還是串行,因為有24根數(shù)據(jù)線所以為并行;

bit2選擇時鐘源,選HCLK 連的是HCLC_DSYS 為166MHz

bit4:開啟分頻;

 

bit13-6設(shè)置時鐘大小,時鐘頻率要小于控制器的最大時鐘,也要小于LCD驅(qū)動器的最大時鐘。

 

bit0 bit1為使能控制信號都使能

VIDCON1寄存器 Video Main Control 1 Register

bit5 bit6設(shè)置HSYNC和VSYNC的極性,如果LCD的高低電平脈沖是相同的話,則Normal,如果極性相反則Invert。

VIDTCON0:設(shè)置時序,根據(jù)LCD數(shù)據(jù)手冊中的時序來設(shè)置

 

VIDTCON1

 

VIDTCON2

 

WINCON0寄存器

bit1:使能window0 

 

bit5-2選擇RGB888模式

bit15:設(shè)置輸出順序為 red green blue還是 blue green red  設(shè)置為1:BGR  設(shè)置為0:RGB

VIDOSD0A VIDOSD0B這兩個寄存器是用來設(shè)置內(nèi)存中window0的大小;

比如設(shè)置為LCD屏幕的尺寸(即左上坐標為(0, 0) 右下坐標為(1023, 767))

VIDOSD0C也是設(shè)置內(nèi)存中window0的大小

比如設(shè)置為LCD屏幕的尺寸=1024*768

VIDW0xADD0Bx設(shè)置內(nèi)存中window0的起始地址的

VIDW0xADD1Bx設(shè)置內(nèi)存中window0的結(jié)束地址的

 

 SHODOWCON寄存器來設(shè)置虛擬windows顯示的;

以下位可以分別設(shè)置哪個windows顯示;

補充:看核心板、地板原理圖相應(yīng)引腳要設(shè)置為LCD的引腳模式,LCD背光要打開;


以下位詳細代碼:


#include 'lyq.h'

#define     _ZLS_MODE_

#define RED             (0xFF0000)

#define GREEN            (0x00FF00)

#define BLUE            (0x0000FF)

#define WHITE            (0xFFFFFF)

    


//配置相關(guān)引腳

#define    GPF0CON            0xE0200120

#define    GPF1CON            0xE0200140

#define    GPF2CON            0xE0200160

#define    GPF3CON            0xE0200180

#define GPD0CON            0xE02000A0

#define GPD0DAT            0xE02000A4

#define DISPLAY_CONTROL        0xE0107008


//配置控制器

#define VIDCON0            0xF8000000

#define VIDTCON0        0xF8000010

#define VIDCON1            0xF8000004

#define VIDTCON1        0xF8000014

#define VIDTCON2        0xF8000018

#define WINCON0            0xF8000020

#define VIDOSD0A        0xF8000040

#define VIDOSD0B        0xF8000044

#define VIDOSD0C        0xF8000048

#define VIDW00ADD0B0    0xF80000A0

#define VIDW00ADD1B0    0xF80000D0

#define SHODOWCON        0xF8000034


#define    _RGB_GPF0CON    (*(unsigned int*)0xE0200120)

#define    _RGB_GPF1CON    (*(unsigned int*)0xE0200140)

#define    _RGB_GPF2CON    (*(unsigned int*)0xE0200160)

#define    _RGB_GPF3CON    (*(unsigned int*)0xE0200180)

#define    _RGB_GPD0CON    (*(unsigned int*)0xE02000A0)

#define    _RGB_GPD0DAT    (*(unsigned int*)0xE02000A4)

#define    _RGB_DISPLAY_CONTROL    (*(unsigned int*)0xE0107008)


//配置控制器

#define    _RGB_VIDCON0    (*(unsigned int*)0xF8000000)

#define    _RGB_VIDTCON0    (*(unsigned int*)0xF8000010)

#define    _RGB_VIDCON1    (*(unsigned int*)0xF8000004)

#define    _RGB_VIDTCON1    (*(unsigned int*)0xF8000014)

#define    _RGB_VIDTCON2    (*(unsigned int*)0xF8000018)

#define    _RGB_WINCON0    (*(unsigned int*)0xF8000020)

#define    _RGB_VIDOSD0A    (*(unsigned int*)0xF8000040)

#define    _RGB_VIDOSD0B    (*(unsigned int*)0xF8000044)

#define    _RGB_VIDOSD0C    (*(unsigned int*)0xF8000048)

#define    _RGB_VIDW00ADD0B0    (*(unsigned int*)0xF80000A0)

#define    _RGB_VIDW00ADD1B0    (*(unsigned int*)0xF80000D0)

#define    _RGB_SHODOWCON    (*(unsigned int*)0xF8000034)


#define FB_ADDR            (0x23000000)


//Horizontal Pulse Width        20

//Horizontal Back Porch            140

//Horizontal Front Porch           160    

//Horizontal effective Time        1024

    

//Vertical Pulse Width            3

//Vertical Back Porch            20

//Vertical Front Porch            12

//Vertical Valid                600


#ifdef                    _ZLS_MODE_

#define HSPW             (40)                // 1~40 DCLK

#define HBPD            (10 - 1)            // 46

#define HFPD             (240 - 1)            // 16 210 354

#define VSPW            (20)                // 1~20 DCLK

#define VBPD             (10 - 1)            // 23

#define VFPD             (30 - 1)            // 7 22 147

#else 

#define HSPW             (20)                // 1~40 DCLK

#define HBPD            (140)            // 46

#define HFPD             (160)            // 16 210 354

#define VSPW            (3)                // 1~20 DCLK

#define VBPD             (20)            // 23

#define VFPD             (12)            // 7 22 147

#endif


#define ROW                (600)

#define COL                (1024)

#define FB_ADDR            (0x23000000)

#define HOZVAL            (COL-1)

#define LINEVAL            (ROW-1)

#define LeftTopX        (0)

#define LeftTopY        (0)

#define RightBotX        (COL - 1)

#define RightBotY        (ROW - 1)

unsigned int *pfb = (unsigned int *)FB_ADDR;




void lcd_init(void)

{

    //設(shè)置相應(yīng)引腳為LCD模式

    _RGB_GPF0CON = 0x22222222;

    _RGB_GPF1CON = 0x22222222;

    _RGB_GPF2CON = 0x22222222;

    _RGB_GPF3CON = 0x22222222;

    

    //設(shè)置背光開啟,輸出低電平

    _RGB_GPD0CON &= ~(0xF << 0);

    _RGB_GPD0CON |= (0x1 << 0);

    _RGB_GPD0DAT &= ~(0x1 << 0);

    

    //設(shè)置FIMD的輸出為RGB模式輸出

    _RGB_DISPLAY_CONTROL &= ~(3 << 0);

    _RGB_DISPLAY_CONTROL |= (2 << 0);

[1] [2]
關(guān)鍵字:s5pv210  LCD編程  LCD控制器 引用地址:s5pv210 LCD編程原理

上一篇:[S5PV210] 網(wǎng)絡(luò)掛載文件系統(tǒng)
下一篇:arm匯編偽指令詳解

推薦閱讀最新更新時間:2025-05-23 10:45

s5pv210 LCD編程原理
1:LCD基本工作原理 (1)  LCD(Liquid Crystal Display)液晶顯示,液晶特性:在電信號的驅(qū)動下液晶分子進行旋轉(zhuǎn),旋轉(zhuǎn)會影響透光性,因此整個液晶面板 后面用白光(背光)來照射,通過不同的電信號讓液晶分子進行旋轉(zhuǎn)性透光,此時液晶面板就會看到顯示不同的顏色。液晶本身不發(fā)光,而是 位于后面的背光發(fā)的光。 (2)  白光是由多種顏色的光組合而成,光的實質(zhì)是一種波,不同波長/頻率的波具有不同的顏色,人眼可見光波長在390~780NM, RGB色彩模式 是工業(yè)界的一種顏色標準, 是通過對紅(R)、綠(G)、藍(B)三個顏色 通道 的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的
[單片機]
<font color='red'>s5pv210</font> <font color='red'>LCD</font><font color='red'>編程</font>原理
單片機控制器改善大屏幕LCD的TV圖像質(zhì)量
雖然LCD背光有多種方式,例如LED、EL、CCFL等,但對于大尺寸LCD屏來說,由于CCFL發(fā)光效率高而成為主流背光光源。傳統(tǒng)的LCD屏主要用于筆記本電腦或臺式電腦,背光組件在有一定亮度的前提下,還要尺寸小和重量輕等,大多采用側(cè)面背光方式(CCFL燈管安裝在屏的二邊或四周,通過導(dǎo)光板將光漫射到整個屏幕后面);而LCDTV特別是大尺寸LCDTV,由于對顯示亮度(450cd/m2)、視角廣角(170°)、圖像對比度(500:1)等有更高的要求,因而需要采用光源利用率更高的垂直背光技術(shù)。 1、垂直背光 垂直背光,顧名思義,是將CCFL燈管直接安裝在LCD屏后面,并利用全反射膜將發(fā)散到其他方向的光線反射到屏幕發(fā)光面,以提高光源到利用
[單片機]
S5PV210之溫度傳感器DS18B20 linux3.0.8驅(qū)動
一 Ds18b20功能描述  FEATURES(特點) 1) Unique 1-WireTM interface requires only oneport pin for communication 獨特的單總線接口,使用一個引腳實現(xiàn)雙線通線 2) Multidrop capability simplifies distributed temperature sensing applications 多分功能簡化分布式溫度傳感器的應(yīng)用 3) Requires no external components 不需要外部器件 4) Can be powered from data line. Power supply range is
[單片機]
嵌入式開發(fā)學(xué)習(xí)(6)<S5PV210開發(fā)板刷系統(tǒng)那點破事兒之二>
刷系統(tǒng):利用刷機工具,向開發(fā)板中燒錄預(yù)先編譯好的鏡像。使之在開發(fā)板上跑起來。 一、刷android4.0.4   S5PV210廠家默認安裝的是android4.0.4。   1、安裝usb轉(zhuǎn)串口驅(qū)動(如果電腦上有串口,則跳過這一步)。   2、安裝串口監(jiān)聽軟件:secureCRT、超級終端、minicom(linux系統(tǒng)),我使用的cecureCRT。注意   3、打開secureCRT軟件,按下圖設(shè)置:(注意端口要與串口端口一致)      4、用串口線連接電腦與開發(fā)板。   5、打開開發(fā)板電源,可以看到secureCRT中有啟動新輸出,這就是開發(fā)板的控制臺,可以使用linux命令操作你的開發(fā)板系統(tǒng)。      6、破壞開
[單片機]
嵌入式開發(fā)學(xué)習(xí)(6)<<font color='red'>S5PV210</font>開發(fā)板刷系統(tǒng)那點破事兒之二>
S5PV210 啟動流程
S3C6410啟動流程 首先,看一下S3C6410啟動流程 ① iROM supports initial boot up : initialize system clock, D-TCM, device specific controller and booting device. ② iROM boot codes can load 4KB of bootloader to stepping stone. The 8KB boot loader is called BL1. ③ BL1: BL1 can initialize system clock, UART, and SDRAM for user. After ini
[單片機]
<font color='red'>S5PV210</font> 啟動流程
S5PV210地址尋址能力映射
1.S5PV210是32位SoC,尋址能力為4G,0x0000 0000~0xFFFF FFFF。 DRAM地址為0x1FFF FFFF~0x5FFF FFFF,即只支持外掛1G內(nèi)存。 映射如下: 2.下圖是iROM和SRAM的地址映射
[單片機]
<font color='red'>S5PV210</font>地址尋址能力映射
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 兰州市| 郓城县| 丹寨县| 崇文区| 平安县| 青田县| 施秉县| 武威市| 凤阳县| 徐闻县| 龙州县| 汕头市| 沾益县| 乐清市| 安溪县| 建宁县| 涟水县| 嫩江县| 伊金霍洛旗| 商城县| 登封市| 抚顺市| 临漳县| 宽城| 九龙城区| 时尚| 香格里拉县| 平利县| 德阳市| 衡阳县| 长岛县| 喀喇沁旗| 岱山县| 高邑县| 乃东县| 巩义市| 苗栗县| 嘉祥县| 综艺| 大英县| 朔州市|