嵌入式系統(tǒng)原理及應(yīng)用教程第6章_第1頁
嵌入式系統(tǒng)原理及應(yīng)用教程第6章_第2頁
嵌入式系統(tǒng)原理及應(yīng)用教程第6章_第3頁
嵌入式系統(tǒng)原理及應(yīng)用教程第6章_第4頁
嵌入式系統(tǒng)原理及應(yīng)用教程第6章_第5頁
已閱讀5頁,還剩161頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

主講內(nèi)容第1章嵌入式系統(tǒng)概述第2章ARM微處理器概述與編程模型第3章ARM9指令系統(tǒng)第4章嵌入式程序設(shè)計基礎(chǔ)第5章嵌入式內(nèi)部可編程模塊第6章嵌入式接口技術(shù)應(yīng)用第7章軟件開發(fā)環(huán)境6.1LCD顯示器接口S3C2440A內(nèi)置的LCD控制器能將顯示在LCD上的數(shù)據(jù)從系統(tǒng)內(nèi)部的數(shù)據(jù)緩沖區(qū)通過邏輯單元傳送到外部的LCD驅(qū)動器中。它可以支持不同分辨率的顯示,如:640×480、320×240等,最大可支持24位數(shù)據(jù)的16.7M彩色TFT模塊。用戶可以通過編程設(shè)定LCD控制器中的相關(guān)寄存器,來選擇所需的水平、垂直像素數(shù)、數(shù)據(jù)接口的數(shù)據(jù)線寬度,界面時序以及刷新率等參數(shù)。6.1.1LCD的控制器

要使一塊LCD正常的顯示文字或圖像,不僅需要LCD驅(qū)動器,而且還需要相應(yīng)的LCD控制器。在通常情況下,生產(chǎn)廠商把LCD驅(qū)動器會以COF/COG的形式與LCD玻璃基板制作在一起,而LCD控制器則是由外部的電路來實現(xiàn),現(xiàn)在很多的MCU內(nèi)部都集成了LCD控制器。通過LCD控制器就可以產(chǎn)生LCD驅(qū)動器所需要的控制信號來控制STN或TFT類的LCD屏。其控制器框圖如圖6-1所示。本節(jié)僅以STN-LCD控制器為例來介紹。6.1.1LCD的控制器REGBANKLCDCDMATIMEGENLPC3600LCC3600VIDPRCSVIDEOMUXVCLK/LCD_HCLKVLINE/HSYNC/CPVVFRAME/VSYNC/STVVM/VDEN/TPLCD_LPCOE/LCD_LCCINVLCD_LPCREV/LCD_LCCREVLCD_LPCREVB/LCD_LCCREVBVD[23:0]系統(tǒng)總線圖6-1S3C2440A內(nèi)置LCD控制器框圖6.1.1LCD的控制器STN-LCD控制器操作1.LCDDMA模塊中包含了一個FIFO存儲器組。當(dāng)FIFO寄存器為空或部分為空時,LCDDMA請求從幀存儲器以陣發(fā)存儲器傳輸模式(每一個陣發(fā)請求獲取4字的連續(xù)內(nèi)存單元,并且在總線傳輸過程中不允許總線控制權(quán)讓給其他總線控制器)獲取數(shù)據(jù)。如果微處理器核響應(yīng)傳輸請求,接下來將有連續(xù)的4個字?jǐn)?shù)據(jù)從系統(tǒng)內(nèi)存?zhèn)鬏數(shù)皆揊IFO寄存器組中。FIFO寄存器組總的大小是28個字,分別由FIFO低12字和FIFO高16字組成。S3C2440A芯片內(nèi)有兩個FIFO寄存器組,用來支持雙重掃描顯示模式。如使用單重掃描模式,則僅有一個FIFO寄存器組可使用。6.1.1LCD的控制器2.VFRAME脈沖信號在每幀圖像的第一行數(shù)據(jù)周期間變?yōu)橛行?,它使行指針回到顯示器的頂行重新開始新的一幀。VM信號使LCD驅(qū)動器的行和列電壓極性交替變換,用作對像素的開與關(guān)。VM信號的觸發(fā)速率決定于LCDCON1寄存器中MMODE位和LCDCON4寄存器MVAL區(qū)的設(shè)置。若MMODE位為0,則VM信號每幀觸發(fā)一次。若MMODE位為1,則VM信號在指定數(shù)量的VLINE信號后的觸發(fā),3.VLINE數(shù)量由MVAL[7:0]的值決定。其VM信號的速率與MVAL[7:0]的值有關(guān),公式為:4.VM速率=VLINE速率/(2*MVAL)5. VFRAME和VLINE脈沖的產(chǎn)生取決于LCDCON2/3寄存器中HOZVAL和LINEVAL的配置,它們都與LCD屏的大小和顯示模式有關(guān)。換句話說,HOZVAL和LINEVAL可由LCD屏與顯示模式?jīng)Q定,公式如下:6.HOZVAL=(水平顯示尺寸/有效VD數(shù)據(jù)隊列數(shù))-16.1.1LCD的控制器在彩色顯示模式下,水平顯示尺寸=3*水平像素數(shù)。在4位單掃描模式下,有效VD數(shù)據(jù)隊列數(shù)應(yīng)為4。若用4位雙掃描顯示,有效的VD數(shù)據(jù)隊列數(shù)也應(yīng)為4,但在8位單掃描模式下,有效的VD數(shù)據(jù)隊列數(shù)應(yīng)為8。LINEVAL=(垂直顯示尺寸)-1 單掃描情況LINEVAL=(垂直顯示尺寸/2)-1 雙掃描情況VCLK信號的速率取決于LCDCON1寄存器中CLKVAL的配置。見表6-1定義了VCLK與CLKVAL的關(guān)系。CLKVAL的最小值為2。VCLK(Hz)=HCLK/(CLKVALx2)6.1.1LCD的控制器CLKVAL60MHz/XVCLK260MHz/415.0MHz360MHz/610.0MHz:::102360MHz/204629.3kHz表6-1VCLK與CLKVAL間的關(guān)系(STN,HCLK=60MHz)6.1.1LCD的控制器幀速率就是VFRAM信號的頻率。幀速率和寄存器LCDCON1/2/3/4中WLH[1:0](VLINE脈沖寬度)、WDLY[1:0](VCLK延遲于VLINE脈沖的寬度)、HOZVAL、LINEBLANK和LINEVAL及VCLK和HCLK密切相關(guān)。大多數(shù)LCD驅(qū)動器有它們適合幀頻。幀頻可由下列公式計算得出:幀速率=1/[{(1/VCLK)×(HOZVAL+1)+(1/HCLK)×(A+B+(LINEBLANK×8))}×(LINEVAL+1)]式中:A=2(4+WLH),B=2(4+WDLY)。6.1.1LCD的控制器視頻操作S3C2440A芯片的LCD控制器可支持8位彩色模式(256色模式),12位彩色模式(4096色模式),4級灰度模式,16級灰度模式以及單色模式。對于灰度或彩色模式,需要基于時間抖動和幀速率控制的方法來實現(xiàn)灰度或彩色的分級。可以通過一個可編程的查找表選擇,這個以后會作解釋。6.1.1LCD的控制器視頻操作單色模式則不需要這些模塊(FRC和查找表),基本上通過轉(zhuǎn)換視頻數(shù)據(jù)使FIFOH(如果是雙掃描顯示類型則還有FIFOL)的數(shù)據(jù)串行化為4位(若為4位雙掃描或8位單掃描顯示類型時為8位)數(shù)據(jù)流到LCD驅(qū)動器。6.1.1LCD的控制器

接下來的部分將介紹根據(jù)查找表和FRC在灰度和彩色模式下的操作。(1)調(diào)色板查找表S3C2440A芯片能支持多樣選擇的顏色或灰度映射的顏色查找表,確保用戶使用彈性化。顏色查找表是可以選擇彩色或灰度級別(在4級灰度模式下可選擇16級灰度中的4級,在256色模式下可選擇16級紅色中的8種,16級綠色中的8種和16級藍色中的4種)的調(diào)色板。6.1.1LCD的控制器(2)灰度模式操作S3C2440A芯片的LCD控制器支持2種灰度模式:每像素2位灰色(4級灰度)和每像素4位灰色(16級灰度)。2位/像素灰色模式下使用一個查找表(BLUELUT),允許在16級可能的灰度中選擇4種。2位/像素灰色查找表用的是藍色查找表(BLUELUT)寄存器中BLUEVAL[15:0],就像在彩色模式下的使用藍色查找表一樣。0級灰度由BLUEVAL[3:0]指定。若BLUEVAL[3:0]值為9,則0級灰度就代表16級灰度中的第9級灰度。若BLUEVAL[3:0]值為15,則0級灰度就代表16級灰度中的第15級灰度,如此類推。6.1.1LCD的控制器(3)彩色模式操作S3C2440A芯片的LCD控制器可支持8位/像素的256色顯示模式。利用抖動算法和幀頻控制,彩色顯示模式下可產(chǎn)生256種顏色。每像素的8位可編碼成為3位代表紅色、3位代表綠色和位代表藍色。彩色顯示模式使用單獨的紅色、綠色和藍色查找表。它們分別用寄存器REDLUT中REDVAL[31:0]、寄存器GREENLUT中REENVAL[31:0]和寄存器BLUELUT中BLUEVAL[15:0]作為可編程的查找表項。6.1.1LCD的控制器(4)顯示類型LCD控制器支持3種類型的LCD驅(qū)動器:4位雙掃描4位單掃描8位單掃描顯示模式。6.1.2S3C2440A芯片的LCD專用寄存器S3C2440A芯片內(nèi)部的LCD控制器包括有許多可編程的寄存器,用戶可以通過編程設(shè)置這些寄存器來控制LCD的顯示。下面介紹這些寄存器的格式。1.LCD控制寄存器1LCD控制寄存器1(LCDCON1)是可讀/寫狀態(tài),地址為0x4D000000,復(fù)位后的值為0x00000000。LCDCON1寄存器的具體格式如表6-2所示。6.1.2S3C2440A芯片的LCD專用寄存器引腳名稱位描述初始值LINECNT(只讀)[27:18]行計數(shù)器狀態(tài)位,值由LINEVAL遞減至0。0000000000CLKVAL[17:8]確定VCLK的速率。STN:VCLK=HCLK/(CLKVAL×2)CLKVAL≧2;TFT:VCLK=HCLK/[(CLKVAL+1)×2]

CLKVAL≧0。0000000000MMODE[7]決定VM信號的觸發(fā)速率。0=每幀觸發(fā);1=觸發(fā)速率由MVAL決定。0PNRMODE[6:5]顯示模式選擇位。00=4位雙掃描顯示模式(STN);01=4位單掃描顯示模式(STN);10=8位單掃描顯示模式(STN);11=TFT型LCD顯示。00BPPMODE[4:1]單個像素的位數(shù)選擇。0000=STN型1位/像素,單色模式;0001=STN型2位/像素,4級灰度模式;0010=STN型4位/像素16級灰度模式;0011=STN型8位/像素,彩色模式;0100=STN型12位/像素,彩色模式;1000=TFT型1位/像素;1001=TFT型2位/像素;1010=TFT型4位/像素;1011=TFT型8位/像素;1100=TFT型16位/像素;1101=TFT型24位/像素。0000ENVID[0]LCD視頻輸出和邏輯信號使能位。0=視頻輸出和控制信號無效;1=視頻輸出和控制信號有效。0表6-2LCDCON1寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器2.LCD控制寄存器2LCD控制寄存器2(LCDCON2)是可讀/寫狀態(tài),地址為0x4D000004,復(fù)位后的值為0x00000000。LCDCON2寄存器的具體格式如表6-3所示。6.1.2S3C2440A芯片的LCD專用寄存器引腳名稱位描述初始值VBPD[31:24]TFT:垂直后沿(VBPD)指在一幀開始時,垂直同步時期之后非活動行的數(shù)目;STN:使用STN型LCD時此位應(yīng)為0。0x00LINEVAL[23:14]TFT/STN:確定

LCD屏的垂直尺寸。0000000000VFPD[13:6]TFT:垂直后沿指在一幀結(jié)束時,垂直同步時期后非活動行的數(shù)目;STN:使用STN型LCD時此位應(yīng)為0。00000000VSPW[5:0]顯示模式選擇位。00=4位雙掃描顯示模式(STN);01=4位單掃描顯示模式(STN);10=8位單掃描顯示模式(STN);11=TFT型LCD顯示。00000表6-3LCDCON2寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器3.LCD控制寄存器3LCD控制寄存器3(LCDCON3)是可讀/寫狀態(tài),地址為0x4D000008,復(fù)位后的值為0x00000000。LCDCON3寄存器的具體格式如表6-4所示。6.1.2S3C2440A芯片的LCD專用寄存器引腳名稱位描述初始值HBPD(TFT)[25:19]TFT:在HSYNC信號下降沿和有效數(shù)據(jù)開始之間的VCLK脈沖數(shù)。0x00WDLY(STN)STN:WDLY[1:0]位確定VLINE與VCLK之間的延時。00=16HCLK;01=32HCLK;10=48HCLK;11=64HCLK。WDLY[7:2]為保留位。0000000HOZVAL[18:8]確決LCD顯示屏水平尺寸。HOZVAL必須被指定以滿足一行有4n個字節(jié)的條件。0000000000HFPD(TFT)[7:0]TFT:在HSYNC信號上升沿和有效數(shù)據(jù)結(jié)束之間的VCLK脈沖數(shù)。00000000LINEBLANK(STN)STN:確定行掃描的占空時間.這些位可微調(diào)VLINE的速率。LINEBLANK的最小數(shù)為HCLK*8。如:LINEBLANK=10,占空時間在80個HCLK期間插入VCLK。00000表6-4LCDCON3寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器4.LCD控制寄存器4LCD控制寄存器4(LCDCON4)是可讀/寫狀態(tài),地址為0x4D00000C,復(fù)位后的值為0x00000000。LCDCON4寄存器的具體格式如表6-5所示。6.1.2S3C2440A芯片的LCD專用寄存器引腳名稱位描述初始值MVAL[15:8]STN:當(dāng)MMODE=1時,MVAL位定確定VM信號的速率。0x00HSPW(TFT)[7:0]TFT:通過對VCLK的計數(shù)水平同步脈沖寬度決定著HSYNC脈高電平脈沖的寬度。0x00WLH(STN)STN:WLH[1:0]位確定VLINE脈沖的寬度。00=16HCLK;01=32HCLK;10=48HCLK;11=64HCLK。WLH[7:2]作為保留位。表6-5LCDCON4寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器5.LCD控制寄存器5LCD控制寄存器5(LCDCON5)是可讀/寫狀態(tài),地址為0x4D000010,復(fù)位后的值為0x00000000。LCDCON5寄存器的具體格式如表6-6所示。6.1.2S3C2440A芯片的LCD專用寄存器引腳名稱位描述初始值Reserved[15:8]保留位。0VSTATUS[16:15]TFT:垂直掃描狀態(tài)(只讀).00=VSYNC;01=BACKPorch;10=ACTIVE;11=FRONTPorch。00HSTATUS[14:13]TFT:水平掃描狀態(tài)(只讀)。00=HSYNC;01=BACKPorch;10=ACTIVE;11=FRONTPorch。00BPP24BL[12]TFT:確定24bpp顯示時顯存中數(shù)據(jù)的格式。0=LSB有效;1=MSB有效。0FRM565[11]TFT:確定16bpp顯示時輸出數(shù)據(jù)的格式。0=5:5:5:1格式;1=5:6:5格式。0INVVCLK[10]STN/TFT:確定VCLK信號的有效邊沿。0=CLK信號的下降沿時取數(shù)據(jù);1=VCLK信號的上升沿時取數(shù)據(jù)。0INVVLINE[9]STN/TFT:確定VLINE/HSYNC的脈沖極性。0=正常;1=反轉(zhuǎn)。0表6-6LCDCON5寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器引腳名稱位描述初始值INVVFRAME[8]STN/TFT:確定VFRAME/VSYNC的脈沖極性。0=正常;1=反轉(zhuǎn)。0INVVD[7]STN/TFT:確定VD(視頻數(shù)據(jù))的脈沖極性。0=正常;1=反轉(zhuǎn)。0INVVDEN[6]TFT:確定VDEN信號的脈沖極性。0=正常;1=反轉(zhuǎn)。0INVPWREN[5]STN/TFT:確定PWREN信號的脈沖極性。0=正常;1=反轉(zhuǎn)。0INVLEND[4]TFT:確定LEND信號的脈沖極性。0=正常;1=反轉(zhuǎn)。0PWREN[3]STN/TFT:LCD_PWREN輸出信號使能位。0=不使能;1=使能。0ENLEND[2]TFT:LEND輸出信號使能位。0=不使能;1=使能。0BSWP[1]STN/TFT:字節(jié)交換使能位。0=不使能;1=使能。0HWSWP[0]STN/TFT:半字交換使能位。0=不使能;1=使能。06.1.2S3C2440A芯片的LCD專用寄存器6.幀緩沖起始地址寄存器1

幀緩沖起始地址寄存器1(LCDSADDR1)是可讀/寫狀態(tài),地址為0x4D000014,復(fù)位后的值為0x00000000。LCDSADDR1寄存器的具體格式如表6-7所示。引腳名稱位描述初始值LCDBANK[29:21]指示系統(tǒng)內(nèi)存中視頻緩沖區(qū)的位置A[30:22]。0x00LCDBASEU[20:0]對于雙掃描LCD:指示幀緩沖區(qū)或在雙掃描LCD時的上幀緩沖區(qū)的開始地址A[21:1];對于單掃描LCD:指示幀緩沖區(qū)的開始地址A[21:1]。0x000000表6-7LCDSADDR1寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器7.幀緩沖起始地址寄存器2

幀緩沖起始地址寄存器2(LCDSADDR2)是可讀/寫狀態(tài),地址為0x4D000018,復(fù)位后的值為0x00000000。LCDSADDR2寄存器的具體格式如表6-8所示。6.1.2S3C2440A芯片的LCD專用寄存器引腳名稱位描述初始值LCDBASEL[20:0]對于雙掃描LCD:指示在使用雙掃描LCD時的下幀存儲區(qū)的開始地址A[21:1];對于單掃描LCD:指示幀存儲區(qū)的結(jié)束地址為A[21:1]。0x0000表6-8LCDSADDR2寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器8.幀緩沖起始地址寄存器3

幀緩沖起始地址寄存器3(LCDSADDR3)是可讀/寫狀態(tài),地址為0x4D00001C,復(fù)位后的值為0x00000000。LCDSADDR3寄存器的具體格式如表6-9所示。表6-9LCDSADDR3寄存器的格式引腳名稱位描述初始值OFFSIZE[21:11]實際屏幕的偏移量大小。00000000000PAGEWIDTH[10:0]實際屏幕的頁寬度。0000000006.1.2S3C2440A芯片的LCD專用寄存器例6-1:LCD屏=320*240,16級灰度,單掃描幀起始地址=0x0c500000偏移點數(shù)=2048點(512個半字)LINEVAL=240-1=0xefPAGEWIDTH=320*4/16=0x50OFFSIZE=512=0x200LCDBANK=0x0c500000>>22=0x31LCDBASEU=0x100000>>1=0x80000LCDBASEL=0x80000+(0x50+0x200)*(0xef+1)=0xa2b006.1.2S3C2440A芯片的LCD專用寄存器例6-2:LCD屏=320*240,16級灰度,雙掃描幀起始地址=0x0c500000偏移點數(shù)=2048點(512個半字)LINEVAL=120-1=0x77PAGEWIDTH=320*4/16=0x50OFFSIZE=512=0x200LCDBANK=0x0c500000>>22=0x31LCDBASEU=0x100000>>1=0x80000LCDBASEL=0x80000+(0x50+0x200)*(0x77+1)=0x915806.1.2S3C2440A芯片的LCD專用寄存器9.紅色查找表寄存器紅色查找表寄存器(REDLUT)是可讀/寫狀態(tài),地址為0x4D000020,復(fù)位后的值為0x00000000。REDLUT寄存器的具體格式如表6-10所示。表6-10REDLUT寄存器的格式引腳名稱位描述初始值REDVAL[31:0]定義了選擇16種色度當(dāng)中的哪8種紅色組合。000=REDVAL[3:0];001=REDVAL[7:4];010=REDVAL[11:8];011=REDVAL[15:12];100=REDVAL[19:16];101=REDVAL[23:20];110=REDVAL[27:24];111=REDVAL[31:28]。0x000000006.1.2S3C2440A芯片的LCD專用寄存器10.綠色查找表寄存器綠色查找表寄存器(GREENLUT)是可讀/寫狀態(tài),地址為0x4D000024,復(fù)位后的值為0x00000000。GREENLUT寄存器的具體格式如表6-11所示。引腳名稱位描述初始值GREENVAL[31:0]定義了選擇16種色度當(dāng)中的哪8種綠色組合。000=GREENVAL[3:0];001=GREENVAL[7:4];010=GREENVAL[11:8];011=GREENVAL[15:12];100=GREENVAL[19:16];101=GREENVAL[23:20];110=GREENVAL[27:24];111=GREENVAL[31:28]。0x00000000表6-11GREENLUT寄存器的格式6.1.2S3C2440A芯片的LCD專用寄存器11.藍色查找表寄存器藍色查找表寄存器(BLUELUT)是可讀/寫狀態(tài),地址為0x4D000028,復(fù)位后的值為0x0000。BLUELUT寄存器的具體格式如表6-12所示。表6-12BLUELUT寄存器的格式引腳名稱位描述初始值BLUEVAL[15:0]定義了選擇16種色度當(dāng)中的哪8種藍色組合。00=BLUEVAL[3:0];01=BLUEVAL[7:4];10=BLUEVAL[11:8];11=BLUEVAL[15:12]。0x00006.1.2S3C2440A芯片的LCD專用寄存器12.抖動模式寄存器抖動模式寄存器(DITHMODE)是可讀/寫狀態(tài),地址為0x4D00004C,初始值為0x00000,但用戶可以編程設(shè)置為0x12210。DITHMODE寄存器的具體格式如表6-13所示。表6-13DITHMODE寄存器的格式引腳名稱位描述初始值DITHMODE[18:0]選擇下面2個值之一:0x00000或0x12210。0x000006.1.2S3C2440A芯片的LCD專用寄存器13.臨時調(diào)色板寄存器臨時調(diào)色板寄存器(TPAL)是可讀/寫狀態(tài),地址為0x4D000050,復(fù)位后的值為0x00000000。TPAL寄存器的具體格式如表6-14所示。表6-14TPAL寄存器的格式引腳名稱位描述初始值TPALEN[24]臨時調(diào)色板寄存器使能位。0=不使能;1=使能。0TPALVAL[23:0]臨時調(diào)色板值。TPALVAL[23:16]=紅色;TPALVAL[15:8]=綠色;TPALVAL[7:0]=藍色。0x0000006.1.2S3C2440A芯片的LCD專用寄存器14.LCD中斷未決寄存器

LCD中斷未決寄存器(LCDINTPND)是可讀/寫狀態(tài),地址為0x4D000054,復(fù)位后的值為0x0。LCDINTPND寄存器的具體格式如表6-15所示。表6-15LCDINTPND寄存器的格式引腳名稱位描述初始值INT_FrSyn[1]LCD幀同步中斷未決位。0=未產(chǎn)生中斷請求;1=幀提出中斷請求。0INT_FiCnt[0]LCD的FIFO中斷未決位。0=未產(chǎn)生中斷請求;1=當(dāng)LCDFIFO已達到翻轉(zhuǎn)值時提出中斷請求。06.1.2S3C2440A芯片的LCD專用寄存器15.LCD中斷源未決寄存器

LCD中斷源未決寄存器(LCDSRCPND)是可讀/寫狀態(tài),地址為0x4D000058,復(fù)位后的值為0x0。LCDSRCPND寄存器的具體格式如表6-16所示。表6-16LCDSRCPND寄存器的格式引腳名稱位描述初始值INT_FrSyn[1]LCD幀同步中斷未決位。0=未產(chǎn)生中斷請求;1=幀提出中斷請求。0INT_FiCnt[0]LCD的FIFO中斷未決位。0=未產(chǎn)生中斷請求;1=當(dāng)LCDFIFO已達到翻轉(zhuǎn)值時提出中斷請求。06.1.2S3C2440A芯片的LCD專用寄存器16.LCD中斷屏蔽寄存器

LCD中斷屏蔽寄存器(LCDINTMSK)是可讀/寫狀態(tài),地址為0x4D00005C,復(fù)位后的值為0x3。LCDINTMSK寄存器的具體格式如表6-17所示。引腳名稱位描述初始值FIWSEL[2]確定LCDFIFO的翻轉(zhuǎn)值。0=4字;1=8字。0INT_FrSyn[1]LCD幀同步中斷屏蔽位。0=中斷請求有效;1=中斷請求被屏蔽。1INT_FiCnt[0]LCD的FIFO中斷屏蔽。0=中斷請求有效;1=中斷請求被屏蔽。1表6-17LCDINTMSK寄存器的格式6.1.3S3C2440A芯片LCD寄存器的設(shè)置

下面對STN-LCD控制器的寄存器設(shè)置進行介紹。LCD控制器可支持多種尺寸的LCD屏VCLK的頻率由CLKVAL的值決定。CLKVAL的取值應(yīng)這樣決定:必須使VCLK的值大于數(shù)據(jù)傳輸速率。LCD控制器中VD端口的數(shù)據(jù)傳輸速率決定著CLKVAL寄存器的值。數(shù)據(jù)傳輸速率由以下方程計算:數(shù)據(jù)傳輸速率=HS×VS×FR×MV式中,HS表示LCD屏的水平尺寸;VS表示LCD屏的垂直尺寸;FR表示幀頻;MV表示模式依賴值,具體如表6-18所示。6.1.3S3C2440A芯片LCD寄存器的設(shè)置模式MV值單色,4位單掃描顯示模式1/4單色,8位單掃描顯示模式或4位雙掃描顯示模式1/84級灰度,4位單掃描顯示模式1/44級灰度,8位單掃描顯示模式或4位雙掃描顯示模式1/816級灰度,4位單掃描顯示模式1/416級灰度8位單掃描顯示模式或4位雙掃描顯示模式1/8彩色,4位單掃描顯示模式3/4彩色,8位單掃描顯示模式或4位雙掃描顯示模式3/8表6-18各種顯示模式的MV值6.1.3S3C2440A芯片LCD寄存器的設(shè)置LCDBASEU寄存器的值為幀緩沖區(qū)的首地址值。為了用于陣發(fā)4字存取模式,必須除去地址低4位。LCDBASEL寄存器的值依賴于LCD尺寸和LCDBASEU的值。該值由以下方程計算:LCDBASEL=LCDBASEU+LCDBASEL的偏移量6.1.3S3C2440A芯片LCD寄存器的設(shè)置例6-3:160x160,4級灰度,80幀/秒,4位單掃描顯示HCLK頻率為60MHz,WLH=1,WDLY=1。則:數(shù)據(jù)傳輸速率=160×160×80×1/4=512kHz;CLKVAL=58;VCLK=517kHz;HOZVAL=39;LINEVAL=159;LINEBLANK=10;LCDBASEL=LCDBASEU+3200。對于灰度級別選擇,利用幀速率控制部件(FRC)可產(chǎn)生16級灰度。由于FRC自身的特點是可導(dǎo)致意想不到的灰度類型。這些不希望有的錯誤類型在快速響應(yīng)的LCD上或在比較低的幀速率時可能會顯示出來。因為LCD灰度顯示的質(zhì)量依賴于LCD本身的特點,用戶可先觀察LCD所有的灰度級別,然后才選擇合適的灰度級別。6.1.3S3C2440A芯片LCD寄存器的設(shè)置可通過以下步驟來選擇灰度質(zhì)量。①確定抖動模式寄存器的最佳值。②在LCD上顯示16級灰度條。③選擇一個幀速率的最佳值。④改變VM交替周期以獲得最佳質(zhì)量。⑤觀察完16級灰度條后,可選用LCD正常顯示的灰度,只使用質(zhì)量好的灰度。例6-4對于640×480、8bpp、60幀每秒、數(shù)據(jù)總線寬度為16位、SDRAM的訪問時間為0.25μs、HCLK為60MHz的LCD,計算如下:LCD數(shù)據(jù)速率=8×640×480′60/8=18.432MB/s;LCDDMA陣發(fā)計數(shù)值=18.432/16=1.152M/s;Pdma=(Trp+Trcd+CL+(2×4)+1×(1/60MHz)=0.250ms;LCD系統(tǒng)負(fù)載=1.152×250=0.288;系統(tǒng)總線占有率=(0.288/1)×100=28.8%。6.2I2C總線S3C2440A可以支持多主設(shè)備I2C總線串行接口。專用串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)承載總線主設(shè)備和連接I2C總線的外圍設(shè)備之間的信息。SDA和SCL線都是雙向的。在多主設(shè)備I2C總線模式下,多個S3C2440A微處理器可以從從屬設(shè)備接收或發(fā)送串行數(shù)據(jù)。主設(shè)備S3C2440A可以初始化和終止一個基于I2C總線的數(shù)據(jù)傳輸。在S3C2440A中的I2C總線使用標(biāo)準(zhǔn)總線仲裁步驟。當(dāng)I2C總線空閑時,SDA和SCL線應(yīng)該都是高電平。SDA從高到低的變化能夠初始化一個開始條件。當(dāng)SCL保持穩(wěn)定在高電平下,SDA從低到高的變化可以初始化一個停止條件。開始和停止條件都是由主設(shè)備生成。在第一個字節(jié)中的一個7位的地址值可以決定一個由主設(shè)備選擇的從設(shè)備,其地址值在開始條件初始化后被放到總線上。第8位決定的是傳輸方向(讀或?qū)懀?。在總線傳輸期間,該字節(jié)可以被無限制的發(fā)送或接收。數(shù)據(jù)發(fā)送總是先對MSB,每個字節(jié)應(yīng)該緊跟一個應(yīng)答位(ACK),時序圖如圖6-2所示。6.2I2C總線SDA

確定接收信號確定接收信號128ACKSCL789129字節(jié)結(jié)束,在接收器中斷接收器或傳輸器保持時鐘線為低電平

圖6-2I2C總線的數(shù)據(jù)傳輸時序6.2.1S3C2440A的I2C接口S3C2440A的I2C總線接口有四個操作模式:主設(shè)備發(fā)送模式、主設(shè)備接收模式、從設(shè)備發(fā)送模式及從設(shè)備接收模式。這些操作模式間功能關(guān)系將在下面描述。1.起始和結(jié)束條件當(dāng)I2C總線接口休眠時,其通常是在從設(shè)備模式。換言之,接口在檢測到SDA線上的起始條件之間一直處于從設(shè)備模式。當(dāng)接口狀態(tài)變?yōu)橹髟O(shè)備模式,在SDA線上的數(shù)據(jù)傳輸被初始化且SCL信號生成。6.2.1S3C2440A的I2C接口起始條件可以通過SDA線傳輸一個字節(jié)串行數(shù)據(jù),一個停止條件可以終止一個數(shù)據(jù)傳輸。停止條件是當(dāng)SCL是高電平時,SDA線從低電平到高電平的跳變。起始和停止條件都是由主設(shè)備生成。當(dāng)起始條件生成,I2C總線忙,停止條件將使I2C總線空閑,如圖6-3所示。當(dāng)一個主設(shè)備初始化起始條件,它應(yīng)該發(fā)送一個從地址來停止從設(shè)備。一個字節(jié)的地址域包含7位地址和一位傳輸方向指示(說明讀寫)。如果位8是0,說明是寫操作。如果位8是1,說明是數(shù)據(jù)讀請求。主設(shè)備通過發(fā)送停止條件來完成一個傳輸操作。如果主設(shè)備想繼續(xù)到總線的數(shù)據(jù)傳輸,則必須生成另一個起始條件和從地址。用這個方法,可以執(zhí)行不同形式下的讀寫操作。6.2.1S3C2440A的I2C接口SDASCLSDASCL起始結(jié)束圖6-3起始信號和結(jié)束信號6.2.1S3C2440A的I2C接口S從屬地址7位R/WA數(shù)據(jù)(1APS從屬地址7位數(shù)據(jù)(1字節(jié))PS從屬地址頭7位R/WA從屬地址第二字節(jié)數(shù)據(jù)PS從屬地址頭7位R/WA從屬地址第二字節(jié)rs從屬地址頭7位R/WADPAAAAAA數(shù)據(jù)AAAA數(shù)據(jù)說明:S:起始,rs:重新啟動,P:停止,A:允許“0”“0”“1”“1”“1”(讀)(讀)(讀)(寫)(寫)有7位地址的寫模式格式有10位地址的寫模式格式有7位地址的讀模式格式有10位地址的讀模式格式數(shù)據(jù)傳輸(數(shù)據(jù)+允許位)數(shù)據(jù)傳輸(數(shù)據(jù)+允許位)數(shù)據(jù)傳輸(數(shù)據(jù)+允許位)數(shù)據(jù)傳輸(數(shù)據(jù)+允許位)R/WA圖6-4I2C總線的數(shù)據(jù)傳輸格式6.2.1S3C2440A的I2C接口S起始狀態(tài)控制器的SCLACK的時鐘脈沖輸出時鐘周期12789傳感器數(shù)據(jù)輸出接收器數(shù)據(jù)輸出圖6-5I2C總線上ACK信號6.2.1S3C2440A的I2C接口2.讀寫操作在發(fā)送模式下,如果數(shù)據(jù)傳輸后,I2C總線接口會等待直到I2C總線數(shù)據(jù)移位寄存器(IICDS)收到一個新數(shù)據(jù)。在新數(shù)據(jù)寫入寄存器之前,SCL線將保持低電平,然后在數(shù)據(jù)寫入后釋放。S3C2440A應(yīng)該保持中斷來識別當(dāng)前數(shù)據(jù)發(fā)送是否完成。在CPU收到中斷請求以后,它應(yīng)該再寫一個新數(shù)據(jù)到IICDS寄存器。在接收模式下,當(dāng)數(shù)據(jù)收到后,I2C總線接口應(yīng)該等待直到IICDS寄存器被讀取。在一個新數(shù)據(jù)被讀出之前,SCL線應(yīng)該保持低電平,在數(shù)據(jù)被讀出后再釋放。S3C2440A應(yīng)該保持中斷來識別當(dāng)前數(shù)據(jù)接收是否完成。在CPU收到中斷請求以后,它應(yīng)該從IICDS寄存器讀取數(shù)據(jù)。6.2.1S3C2440A的I2C接口3.總線仲裁當(dāng)在SDA信號線上數(shù)據(jù)有沖突的時候,為了避免兩個及多個控制器之間爭奪總線,則發(fā)生總線仲裁。如果一個設(shè)置SDA線位高電平的主控制器發(fā)現(xiàn)了另一個設(shè)置SDA線為低電平的主控制器,那么就產(chǎn)生了沖突。這時第一個控制器將不再繼續(xù)數(shù)據(jù)的傳輸,因為總線的當(dāng)前條件不與它匹配,換句話說,低電平的優(yōu)先級要高于高電平。但是,當(dāng)2個控制器同時拉低SDA時,每個主控制器應(yīng)該估計是否判斷權(quán)是分配給自己。判斷的方法是檢測其地址位。哪個控制器發(fā)送的地址位為低電平哪個就獲得控制權(quán),若都是低電平,則查詢第2個地址位,依次類推,直到最后一個。6.2.1S3C2440A的I2C接口4.配置I2C總線為了控制串行時鐘(SCL)的頻率,4位的預(yù)定標(biāo)器值可以通過IICCON寄存器來被編程。I2C總線接口地址是存儲在I2C總線地址寄存器(IICADD)中。(默認(rèn)情況下,I2C總線接口地址有一個未知值)。6.2.2I2C總線接口特殊寄存器1.多主設(shè)備I2C總線控制寄存器

I2C總線控制寄存器(IICCON)是可讀/寫狀態(tài),地址為0x54000000,復(fù)位后的值為0x0X。即高四位為0,低四位為1。IICCON寄存器的具體格式如表6-19所示。6.2.2I2C總線接口特殊寄存器引腳名稱位描述初始值A(chǔ)CK[7]I2C總線應(yīng)答使能位。0=不使能;1=使能。在發(fā)送模式下,IICSDA在應(yīng)答時間內(nèi)是空閑;在接收模式下,IICSDA在應(yīng)答時間內(nèi)是低電平。0Tx_sele[6]I2C總線傳輸時鐘預(yù)定標(biāo)器源時鐘選擇位。當(dāng)該位為0時,IICCLK=fPCLK/16;當(dāng)該位為1時,IICCLK=fPCLK/5120Tx/Rx[5]I2C總線接收發(fā)送中斷使能位。0=不使能;1=使能。0Interruptpendingflag[4]I2C總線接收發(fā)送中斷掛起標(biāo)志。該位不能由用戶寫1。當(dāng)該位讀出1時,IICSCL為L且數(shù)據(jù)傳輸停止。為了恢復(fù)操作,清0位。當(dāng)該位為0時,無中斷掛起(讀)或清除未決情況(寫)。當(dāng)該位為1時,中斷掛起(讀)或不允許(寫)。0Transmitclockvalue[3:0]I2C總線發(fā)送時鐘預(yù)定標(biāo)器。I2C總線發(fā)送時鐘頻率由該4位預(yù)定標(biāo)器的值決定,根據(jù)以下公式:Tx的時鐘=IICCLK/(IICCON[3:0]+1)0表6-19IICCON寄存器的格式6.2.2I2C總線接口特殊寄存器2.多主設(shè)備I2C總線控制狀態(tài)寄存器多主設(shè)備IIC總線控制狀態(tài)寄存器(IICSTAT)是可讀/寫狀態(tài),地址為0x54000004,復(fù)位后的值為0x0。IICSTAT寄存器的具體格式如表6-20所示。6.2.2I2C總線接口特殊寄存器引腳名稱位描述初始值Modeselection[7:6]I2C總線主從接收發(fā)送模式選擇位。00=從接收模式;01=從發(fā)送模式;10=主接收模式;11=主發(fā)送模式。0Busysignalstatus/STARTSTOPcondition[5]I2C總線忙狀態(tài)位當(dāng)該位為0時,不忙(讀時)或停止信號生發(fā)生(寫入);當(dāng)該位為1時,忙(讀時)或起始信號產(chǎn)生(寫入)在此信號之后,IICDS中的數(shù)據(jù)自動被傳輸。0Serialoutput[4]I2C總線數(shù)據(jù)輸出使能位。0=不使能;1=使能。0Arbitrationstatusflag[3]I2C總線仲裁過程狀態(tài)標(biāo)志位0:(1)0=總線仲裁成功;1=當(dāng)串行輸入輸出時總線仲裁失敗。0Address-as-slavestatusflag[2]I2C總線address-as-slave狀態(tài)標(biāo)志位。0=當(dāng)檢測到起始或停止時,該位被清除;1=接收到與IICADD中的地址值匹配的從設(shè)備地址。0Addresszerostatusflag[1]I2C總線地址狀態(tài)標(biāo)志位。0=當(dāng)檢測到起始或停止時,該位被清除;1=接收到的從設(shè)備地址是00000000b。0Last-receivedbitstatusflag[0]I2C總線最后接收位狀態(tài)標(biāo)志位。0=最后接收到位為0(ACK被接受);1=最后接收到位為1(ACK不被接受)。0表6-20IICSTAT寄存器的格式6.2.2I2C總線接口特殊寄存器3.多主設(shè)備I2C總線地址寄存器多主設(shè)備I2C總線地址寄存器(IICADD)是可讀/寫狀態(tài),地址為0x54000008,復(fù)位后的初值不確定。IICADD寄存器的具體格式如表6-21所示。引腳名稱位描述初始值Slaveaddress[7:0]I2C總線的7位從設(shè)備地址。XXXXXXXX表6-21IICDS寄存器的格式6.2.2I2C總線接口特殊寄存器4.多主設(shè)備I2C總線接收發(fā)送數(shù)據(jù)移位寄存器多主設(shè)備I2C總線接收發(fā)送數(shù)據(jù)移位寄存器(IICDS)是可讀/寫狀態(tài),地址為0x5400000C,復(fù)位后的初值不確定。IICDS寄存器的具體格式如表6-22示。引腳名稱位描述初始值Datashift[7:0]I2C總線發(fā)送接收操作的8位數(shù)據(jù)移位寄存器。XXXXXXXX表6-22IICADD寄存器的格式6.2.2I2C總線接口特殊寄存器5.多主設(shè)備I2C總線線路控制寄存器多主設(shè)備I2C總線線路控制寄存器(IICLC)是可讀/寫狀態(tài),地址為0x54000010,復(fù)位后的值0x00。IICLC寄存器的具體格式如表6-23所示。引腳名稱位描述初始值FilterEnable[2]I2C總線濾波器使能位。當(dāng)SDA接口作為輸入操作,該位應(yīng)該是高電平。過濾器可以避免在連個PCLK期間干擾時出現(xiàn)錯誤。0=濾波器不使能;1=濾波器使能。0SDAoutputdelay[1:0]I2C總線SDA線路延時長度選擇位。00=0時鐘;01=5時鐘;10=10時鐘;11=15時鐘。00表6-23IICLC寄存器的格式6.2.3I2C編程舉例I2C總線的編程除了需要對I2C總線的專用特殊寄存器進行初始化編程外,還需要按照I2C總線的時序要求編寫傳送程序和接收程序。1.初始化步驟在任何I2C接收發(fā)送操作之前,必須執(zhí)行初始化程序。初始化編程的主要流程是:(1)配置S3C2440A芯片相關(guān)的I/O引腳為I2C總線所需的功能引腳;(2)如果需要,在IICADD寄存器中寫入本芯片的從屬地址。(3)設(shè)置IICCON寄存器,使能中斷,設(shè)定SCL周期。(4)設(shè)置IICSTAT寄存器來使能串行輸出。6.2.3I2C編程舉例2.傳送及接收流程(1)傳送流程

S3C2440A芯片的I2C總線傳送有兩種模式:主設(shè)備傳送模式和從設(shè)備傳送模式。其程序流程圖分別如圖6-6、圖6-7所示。6.2.3I2C編程舉例開始向IICDS寫入從設(shè)備地址配置控制器Tx模式向IICSTAT寫入0xD0傳輸IICDS的數(shù)據(jù)ACK周期,中斷未決否停?向IICDS寫入新數(shù)據(jù)清除未定位,重新開始IICDS的數(shù)據(jù)轉(zhuǎn)移到SDA清除未定位等待向IICSTAT寫入0xF0結(jié)束是開始IIC檢測開始信號IICDS接收數(shù)據(jù)配置從設(shè)備Tx模式IIC地址匹配中斷產(chǎn)生否匹配?清除未定位,重新開始中斷未決結(jié)束是IIC比較IICADD和IICDS(接收從設(shè)備地址)停?IICDS的數(shù)據(jù)轉(zhuǎn)移到SDA向IICDS寫入新數(shù)據(jù)是否圖6-6主設(shè)備傳送模式的流程圖6-7從設(shè)備傳送模式的流程6.2.3I2C編程舉例(2)接收流程

S3C2440A芯片的I2C總線接收有兩種模式:主設(shè)備接收模式和從設(shè)備接收模式。其程序流程圖如圖6-8、圖6-9所示。6.2.3I2C編程舉例開始向IICDS寫入從設(shè)備地址配置控制器Rx模式向IICSTAT寫入0x90傳輸IICDS的數(shù)據(jù)ACK周期,中斷未決否停?向IICDS讀出新數(shù)據(jù)清除未定位,重新開始SDA的數(shù)據(jù)轉(zhuǎn)移到IICDS清除未定位等待向IICSTAT寫入0xB0結(jié)束是開始IIC檢測開始信號IICDS接收數(shù)據(jù)配置從設(shè)備Rx模式IIC地址匹配中斷產(chǎn)生否匹配?清除未定位,重新開始中斷未決結(jié)束是IIC比較IICADD和IICDS(接收從設(shè)備地址)停?SDA的數(shù)據(jù)轉(zhuǎn)移到IICDS向IICDS讀出新數(shù)據(jù)是否圖6-8主設(shè)備接收模式的流程

圖6-9從設(shè)備接收模式的流程

6.3I2S總線當(dāng)前很多音頻系統(tǒng)以CD的形式,數(shù)字音頻帶,數(shù)字音頻處理器和數(shù)字TV音響,在市場上吸引消費者。S3C2440A的Inter-ICSound(IIS)總線接口作為一個編解碼接口連接外部8/16位立體聲音頻解碼IC用于迷你碟機和可攜式應(yīng)用。IIS總線接口支持IIS總線數(shù)據(jù)格式和MSB-justified數(shù)據(jù)格式。該接口對FIFO的訪問采用了DMA模式取代了中斷。它可以在同一時間接收和發(fā)送數(shù)據(jù)。6.3.1發(fā)送接收模式1.通常傳輸I2S控制寄存器有一個FIFO準(zhǔn)備標(biāo)志位用于發(fā)送接收FIFO。當(dāng)FIFO準(zhǔn)備發(fā)送數(shù)據(jù)時,如果FIFO非空,F(xiàn)IFO準(zhǔn)備標(biāo)志位置1;如果FIFO為空,F(xiàn)IFO準(zhǔn)備標(biāo)志位置0。當(dāng)接收FIFO非滿,將接收FIFO的FIFO準(zhǔn)備標(biāo)志位置1,表示FIFO準(zhǔn)備好接收數(shù)據(jù);如果接收FIFO為滿,F(xiàn)IFO準(zhǔn)備標(biāo)志置0。這些標(biāo)志用于決定CPU讀寫FIFO的時間。用這種方法當(dāng)CPU在訪問發(fā)送接收FIFO時,串行數(shù)據(jù)能被發(fā)送和接收。2.DMA傳輸在此模式下,發(fā)送或接收FIFO對DMA控制器是可訪問的。在發(fā)送或接收模式下的DMA服務(wù)請求是由FIFO準(zhǔn)備標(biāo)志自動執(zhí)行。3.發(fā)送和接收模式在此模式下,I2S總線接口可以同時接收和發(fā)送數(shù)據(jù)。6.3.2音頻串行接口格式1.I2S總線格式I2S總線有四線,即串行數(shù)據(jù)輸入(IISDI),串行數(shù)據(jù)輸出(IISDO),左右通道選擇(IISLRCK)和串行位時鐘(IISCLK)??偩€格式如圖6-11所示。LRCKLEFTRIGHTLEFTSCLKMSBSD(1st)2ndBitN-1thBitLSB(last)MSB(1st)2ndBitN-1thBitLSB(last)MSB(1st)

圖6-11IIS總線格式(N=8或16)6.3.2音頻串行接口格式串行數(shù)據(jù)以2的補碼發(fā)送,MSB(MostSignificantBit最高位)先發(fā)。因為發(fā)送器和接收器可能有不同的字長,MSB(最高位)先發(fā)。發(fā)送器不必知道接收器可以處理多少位,接收器也不必知道會收到多少位。當(dāng)系統(tǒng)字長大于發(fā)生器的字長,為了數(shù)據(jù)發(fā)送而將字截斷(最低位被置0)。如果接收器接收大于其字長的位,在LSB(最低位)后的位被忽略。另外,如果接收器收到的位數(shù)小于其字長,缺少的位被置0。因此MSB有一個固定的位置,而LSB的位置取決于字長。只要IISLRCK發(fā)送改變,發(fā)送器在一個時鐘周期內(nèi)發(fā)送下一個字的MSB。由發(fā)送器發(fā)送的串行數(shù)據(jù)可以和時鐘信號的下降沿和上升沿同步。但是,串行數(shù)據(jù)必須在串行時鐘信號的上升沿鎖存到接收器,即當(dāng)同步上升沿的數(shù)據(jù)發(fā)送時有一些限制。6.3.2音頻串行接口格式2.MSBJUSTIFIED格式

MSBJUSTIFIED總線格式在結(jié)構(gòu)上和I2S總線格式。如圖6-12所示。唯一和IIS總線格式的區(qū)別,MSBJUSTIFIED格式實現(xiàn)了只要IISLRCK改變,發(fā)送器總是發(fā)送下一個字的MSB。LRCKLEFTRIGHTSCLKMSBSD(1st)2ndBitN-1thBitLSB(last)MSB(1st)2ndBitN-1thBitLSB(last)

圖6-12MSB格式(N=8或16)6.3.2音頻串行接口格式3.采樣頻率和主設(shè)備時鐘主設(shè)備時鐘頻率(PCLK或MPLLin)可以在如表6-24所示的采樣頻率中選擇。因為主設(shè)備時鐘由I2S預(yù)分頻器(預(yù)定標(biāo)器)產(chǎn)生,預(yù)分頻器(預(yù)定標(biāo)器)的值和主設(shè)備時鐘類型(256或384fs)應(yīng)該合適確定。串行位時鐘頻率類型可以由每個通道的串行位和如表6-25所示的主設(shè)備時鐘中來選擇。6.3.2音頻串行接口格式IISLRCK(fs)8.000KHz11.025KHz16.000KHz22.050KHz32.000KHz44.100KHz48.000KHz64.000KHz88.200KHz96.000KHzCODECLK(MHz)256fs2.04802.82244.09605.64488.192011.289612.288016.384022.579224.5760384fs3.07204.23366.14408.467212.288016.934418.432024.576033.868836.8640表6-24CODEC時鐘(CODECLK=256或384fs)每通道串行位8-bit16-bit串行位時鐘頻率(IISCLK)@CODECLK=256fs16fs,32fs32fs@CODECLK=384fs16fs,32fs,48fs32fs,48fs表6-25可用串行位時鐘頻率(IISCLK=16或32或48fs)6.3.3I2S總線接口特殊寄存器1.IIS控制寄存器

IIS控制寄存器(IISCON)是可讀/寫狀態(tài),小端模式下地址為0x55000000;大端模式下地址為0x55000002,復(fù)位后的值為0x100。

IISCON寄存器的具體格式如表6-26所示。6.3.3I2S總線接口特殊寄存器引腳名稱位描述初始值Left/Rightchannelindex[8]0=左;1=右。1TransmitFIFOreadyflag(Readonly)[7]0=空;1=非空。0ReceiveFIFOreadyflag(Readonly)[6]0=滿;1=非滿。0TransmitDMAservicerequest[5]0=不使能;1=使能。0ReceiveDMAservicerequest[4]0=不使能;1=使能。0Transmitchannelidlecommand[3]在空閑模式下IISLRCK是否激活。0=非閑;1=閑。000Receivechannelidlecommand[2]0=非閑;1=閑。0IISprescaler[1]0=不使能;1=使能。0IISinterface[0]0=不使能;1=使能。0表6-26IISCON寄存器的格式6.3.3I2S總線接口特殊寄存器2.IIS模式寄存器

IIS模式寄存器(IISMOD)是可讀/寫狀態(tài),小端模式下地址為0x55000004;大端模式下地址為0x55000006,復(fù)位后的值為0x0。

IISMOD寄存器的具體格式如表6-27所示。6.3.3I2S總線接口特殊寄存器引腳名稱位描述初始值MasterClockSelect[9]主設(shè)備時鐘選擇位。0=PCLK;1=MPLLin。0Master/slavemodeselect[8]0=主設(shè)備模式(IISLRCK和IISCLK是輸出模式);1=從設(shè)備模式(IISLRCK和IISCLK是輸入模式)。0Transmit/receivemodeselect[7:6]00=沒有傳輸;01=接收模式;10=傳輸模式;11=傳輸和接收模式。00Activelevelofleft/rightchannel[5]0=左聲道低;1=左聲道高。0Serialinterfaceformat[4]0=IIS格式;1=MSB-調(diào)整格式。0Serialdatabitperchannel[3]0=8-bit;1=16-bit。0Masterclockfrequencyselect[2]0=256fs;1=384fs(fs:抽樣頻率)0Serialbitclockfrequencyselect[1:0]00=16fs;01=32fs;10=48fs;11=N/A。00表6-27IISMOD寄存器的格式6.3.3I2S總線接口特殊寄存器3.IIS預(yù)定標(biāo)器寄存器

IIS預(yù)定標(biāo)器寄存器(IISPSR)是可讀/寫狀態(tài),小端模式下地址為0x55000008;大端模式下地址為0x5500000A,復(fù)位后的值為0x0。IISPSR寄存器的具體格式如表6-28所示。表6-28IISPSR寄存器的格式引腳名稱位描述初始值PrescalercontrolA[9:5]數(shù)據(jù)值:0~31。注:預(yù)分頻系數(shù)為N+1。00000PrescalercontrolB[4:0]數(shù)據(jù)值:0~31。注:預(yù)分頻系數(shù)為N+1。000006.3.3I2S總線接口特殊寄存器4.IISFIFO控制寄存器IISFIFO控制寄存器(IISFCON)是可讀/寫狀態(tài),小端模式下地址為0x5500000C;大端模式下地址為0x5500000E,復(fù)位后的值為0x0。IISFCON寄存器的具體格式如表6-29所示。6.3.3I2S總線接口特殊寄存器引腳名稱位描述初始值TransmitFIFOaccessmodeselect[15]0=正常;1=DMA。0ReceiveFIFOaccessmodeselect[14]0=正常;1=DMA。0TransmitFIFO[13]0=不使能;1=使能0。0eceiveFIFO[12]0=不使能;1=使能0。TransmitFIFOdatacount(Readonly)[11:6]數(shù)據(jù)數(shù)量值=0~32。000000ReceiveFIFOdatacount(Readonly)[5:0]數(shù)據(jù)數(shù)量值=0~32。000000表6-29IISFCON寄存器的格式6.3.3I2S總線接口特殊寄存器5.IISFIFO寄存器

IIS總線接口包含兩個64位的FIFO用于發(fā)送和接收模式。每個FIFO有16寬32長的表,其允許FIFO不管有效數(shù)據(jù)大小對每個半字單元操作數(shù)據(jù)。接收和發(fā)送FIFO訪問通過FIFO入口進行,進入地址是0x55000010。該寄存器在小端模式下地址為0x5500000C;大端模式下地址為0x5500000E,復(fù)位后的值為0x0。IISFIFO寄存器的具體格式如表6-30所示。引腳名稱位描述初始值FENTRY[15:0]對于IIS的發(fā)送/接收數(shù)據(jù)。0表6-30IISFIFO寄存器的格式6.4AC97控制器S3C2440A的AC97控制器單元支持AC97的2.0版本特點。AC97控制器使用一個音頻控制器連接(AC-link)來和AC97編解碼器通訊。功能模塊圖如圖6-14所示,控制器發(fā)送立體聲PCM數(shù)據(jù)給編解碼器。編解碼器中的外部數(shù)模轉(zhuǎn)換器轉(zhuǎn)換音頻采樣到模擬音頻波形??刂破饕矎木幗獯a器接收立體聲PCM數(shù)據(jù)說單聲道的MIC數(shù)據(jù),然后將數(shù)據(jù)存儲在內(nèi)存中。切記:AC97控制器和IIS控制器不能同時使用。6.4AC97控制器MIC輸出PCM輸出PCM輸入AC-linkAC-linkI/FFSM&ControlSFR中斷控制DMAEngineAPBAPBI/F

圖6-14AC97功能模塊圖6.4.1AC97控制器操作2.流程圖操作AC97控制器操作流程如圖6-16所示。

禁用編碼器中斷INTMSK/SUBINTMSK位設(shè)置GPIO和復(fù)位DMA操作或PIO中斷操作使能編碼器中斷系統(tǒng)復(fù)位和編碼器復(fù)位編碼器準(zhǔn)備中斷?

控制關(guān)閉

超時狀態(tài)?YesYesNoNo

圖6-16AC97控制器操作流程6.4.1AC97控制器操作3.AC-LINK數(shù)字接口協(xié)議每個AC97編解碼包含一個連接到AC9控制器的五個引腳的數(shù)字串行接口。AC-link是一個全雙工,固定時鐘,PCM數(shù)字流。其有一個時分多路器配置來操作控制寄存器訪問和多路輸入輸出音頻流。AC-link架構(gòu)將每個音頻幀分成12個輸出和12個輸入數(shù)據(jù)流。每個流有一個20位的采樣分辨率和需要最小分辨率16位的一個DAC和一個ADC。一個數(shù)據(jù)處理由256位的信息組成,其信息分解成13組時間槽并稱為幀。時間槽0叫標(biāo)簽段(TagPhase)且有16位長。剩下的12個時間槽叫做數(shù)據(jù)段。標(biāo)簽段包含1位用于識別有效幀,另外12位用于識別數(shù)據(jù)段中的時間槽是否包含有效數(shù)據(jù)。數(shù)據(jù)段中的每個時間槽是20位長。一個幀開始由SYNC信號變高電平。SYNC高電平時間就是相應(yīng)的標(biāo)簽段所占時間。6.4.1AC97控制器操作AC97幀以固定48KHz的時間間隔出現(xiàn)且同步于12.288MHz比特率時鐘BITCLK??刂破骱途幗獯a器使用SYNC和BITCLK來決定何時發(fā)送數(shù)據(jù),何時采樣和接收數(shù)據(jù)。發(fā)送器在每個BITCLK的上升沿發(fā)送串行數(shù)據(jù)流,接收器在每個BITCLK的下降沿采樣串行數(shù)據(jù)流。發(fā)送器必須對串行數(shù)據(jù)流中的有效槽做標(biāo)記。有效槽被標(biāo)記在時間槽0中。AC-link的數(shù)據(jù)是從MSB到LSB。標(biāo)簽段的第一位是位15,每個數(shù)據(jù)段的第一位是位19。每個槽的最后一位是位0。6.4.1AC97控制器操作4.AC97掉電(1)掉電AC-link當(dāng)AC97編解碼器的掉電寄存器(0x26)的PR4位置1時,AC-link信號進入低電源模式。然后主編解碼器驅(qū)使BITCLK和SDATA_IN為邏輯低電壓水平。AC97控制器通過AC-link發(fā)送寫掉電寄存器(0x26)。建立AC97控制器以至于當(dāng)其寫掉電寄存器的PR4位(數(shù)據(jù)0x1000),就不發(fā)送數(shù)據(jù)到槽3-12,當(dāng)它收到掉電請求后,就不需要編解碼器去處理其他數(shù)據(jù)。當(dāng)編解碼器處理請求時,它同時會拉低BITCLK和SDATA_IN。在對AC_GLBCTRL寄存器編程后,AC97控制器也驅(qū)使SYNC和SDATA_OUT為低電平。6.4.1AC97控制器操作(2)喚醒AC-link-由AC97控制器觸發(fā)的喚醒

AC-link協(xié)議提供了一個AC97冷重啟和一個AC97熱重啟。當(dāng)前掉電狀態(tài)最后指出了會使用哪個AC97重啟。在所有的掉電模式期間所有的寄存器都應(yīng)該停留在同一狀態(tài),除非執(zhí)行一個AC97冷重啟。在AC97冷重啟中,AC97寄存器被初始化到默認(rèn)值。在掉電后,在其通過重新使SYNC有效

溫馨提示

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

評論

0/150

提交評論