基于S3C44B0X的嵌入式系統(tǒng)應用開發(fā)_第1頁
基于S3C44B0X的嵌入式系統(tǒng)應用開發(fā)_第2頁
基于S3C44B0X的嵌入式系統(tǒng)應用開發(fā)_第3頁
基于S3C44B0X的嵌入式系統(tǒng)應用開發(fā)_第4頁
基于S3C44B0X的嵌入式系統(tǒng)應用開發(fā)_第5頁
已閱讀5頁,還剩158頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章基于S3C44B0X的嵌入式系統(tǒng)應用開發(fā)

端口組件原理及應用

6.2中斷組件原理及應用

36.3嵌入式最小系統(tǒng)36.16.4UART組件原理及應用

DMA組件原理及應用

6.5PWM定時器原理及應用

36.6I2C組件原理及應用

36.76.1嵌入式最小系統(tǒng)簡介一個嵌入式處理器自己是不能獨立工作的,必須給它供電、加上時鐘信號、提供復位信號,如果芯片沒有片內程序存儲器,那么還要加上存儲器系統(tǒng),然后嵌入式處理器芯片才可能工作。這些提供嵌入式處理器運行所必須的條件的電路與嵌入式處理器共同構成了這個嵌入式處理器的最小系統(tǒng)。返回嵌入式最小系統(tǒng)組成嵌入式控制器時鐘系統(tǒng)調試測試接口復位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)可選,因為許多面向嵌入式領域的微控制器內部集成了程序和數(shù)據(jù)存儲器最小系統(tǒng)框圖可選,但是在樣品階段通常都會設計這局部電路基于S3C44B0X的典型嵌入式系統(tǒng)硬件體系結構

6.1.2電源模塊的選擇及電路設計

電源系統(tǒng)為整個系統(tǒng)提供能量,是整個系統(tǒng)工作的根底,具有極其重要的地位,但卻往往被忽略。如果電源系統(tǒng)處理得好,整個系統(tǒng)的故障往往減少了一大半??紤]因素:輸出的電壓、電流、功率;輸入的電壓、電流;平安因素;電池兼容和電磁干擾;體積限制;功耗限制;本錢限制。電源模塊的選擇及電路設計為LCD屏及USB接口等供電電源轉換模塊為I/O供電S3C44B0X的內核6.1.3時鐘電源管理與時鐘源的設計

1.時鐘源的設計微處理器X1X2CCXtal使用內部振蕩器使用外部時鐘源微處理器X1X2CClock可以使用穩(wěn)定的時鐘信號源,如有源晶振等。S3C44B0X的時鐘電路連接外部晶振

時鐘源的選擇

2.時鐘與電源管理概述1.時鐘的作用作為CPU及外設定時與同步信號。

S3C44B0X內部的時鐘發(fā)生器可以產生CPU和外設所需要的時鐘信號。

S3C44B0X的時鐘電源管理模塊集中管理時鐘脈沖的發(fā)生與電源。

時鐘管理2.時鐘發(fā)生器的組成外部晶振外部時鐘鎖相環(huán)電路PLL輸出頻率供給CPU的主頻

電源管理S3C44B0X的電源管理方案有五種:正常模式〔Normalmode〕低速模式〔Slowmode〕空閑模式〔Idlemode〕停止模式〔Stopmode〕LCD的SL空閑模式〔SLIdlemode〕3.時鐘及電源管理的特殊功能存放器

與時鐘發(fā)生器及電源管理有關的特殊功能存放器包括時鐘控制存放器、時鐘低速控制存放器和鎖時計數(shù)存放器等。

PLL控制存放器一、PLLCON:控制PLL分頻,決定PLL輸出頻率。位19:12(8位)11:10(2位)9:4(6位)3:2(2位)1:0(2位)PLLCONMDIV保留PDIV保留SDIV含義主分頻控制無意義預分頻控制無意義分頻后控制初始值0x380x0800二、參數(shù)的范圍:

MDIV=0~255;PDIV=0~63,SDIV=0~3三、PLL輸出頻率:fpllo=(m×fin)/(p×2s)

其中:m=MDIV+8,p=PDIV+2,s=SDIV

PLL參數(shù)選擇原那么:〔1〕fpllo×2s<170MHz且S的值應該盡可能的大〔2〕1≤fin/p<2〔3〕20MHz<fpllo<66MHz

PLL值例如1:fin=20MHz,MDIV=100,PDIV=14,SDIV=2,求fpllo解:m=MDIV+8=108,p=PDIV+2=16,s=SDIV=2,那么:PLL輸出頻率:fpllo=(m×fin)/(p×2s)=108×20/(16×4)≈33.75MHz

PLL值例如2:fin=11.0592MHz,fpllo=50MHz試確定PLLCON的值。解:由原那么之一:1≤fin/p<2,知11.0592/2<p≤11.0592,可取值6~11〔整數(shù)〕P=6時,PDIV=p-2=4=000100由原那么之二:fpllo×2s<170MHz,即2S<170/50≈3.4∴s=1,2S=2,SDIV=1=0150MHz=m×11.0592MHz/(6×2)m=50×48/11.0592=54.25取54,因此MDIV=m-8=54-8=46=2EH=00101110因此PLLCON=00101110000001000001=0x2E041作業(yè)現(xiàn)場做〔1〕此題p取7,8,9,10,11PLLCON=?〔2〕此題fin=33MHz,試求PLLCON的值 時鐘控制存放器一、時鐘控制存放器CLKCON決定其它各組件的時鐘。CLKCON共15位,控制IIS、IIC、ADC、RTC、GPIO、UART、DMA、LCD、PWM等組件的時鐘允許。二、時鐘控制存放器的格式CLKCON各位的含義如表6-75所示。CLKCON位名稱位描述初始值IIS14控制ISS時鐘0=禁止;1=允許1IIC13控制I2C時鐘0=禁止;1=允許1ADC12控制ADC時鐘0=禁止;1=允許1RTC11控制RTC時鐘0=禁止;1=允許1GPIO10控制GPIO時鐘0=禁止;1=允許EINT[7:4]中斷1UART19控制UART1時鐘0=禁止;1=允許1UART08控制UART0時鐘0=禁止;1=允許1BDMA0,17控制BDMA0,1時鐘0=禁止;1=允許1LCDC6控制LCD時鐘0=禁止;1=允許1SIO5控制SIO時鐘0=禁止;1=允許1ZDMA04控制ZDMA時鐘0=禁止;1=允許1PWMTIMER3控制PWM定時器時鐘0=禁止;1=允許1IDLE2控制進入IDLE模式0=禁止;1=允許進入IDLE模式0SL_IDLE1控制進入SL_IDLE模式0=禁止;1=允許進入SL_IDLE0STOP0控制進入停止模式0=禁止;1=進入停止模式0

時鐘低速控制存放器時鐘低速控制存放器CLKSLOW控制時鐘在低速模式下開關PLL、低速分頻系數(shù)以及低速控制位。位543:0CLKSLOWPLL_OFFSLOW_BITSLOW_VAL含義關閉PLL0=開PLL1=關PLL(僅限SLOW_BIT=1關閉)低速控制位0:fout=fpllo1:fout=fin(2×SLOW_VAL);SLOW_VAL>0fout=fin;SLOW_VAL=0低速分頻值4位編碼決定SLOW_BIT=1時低速分頻的值初始值000x09

鎖時計數(shù)存放器鎖時計數(shù)存放器CLKTIME存放PLL鎖時的計數(shù)值。共12位。位11:0位名稱LTIMECNT含義PLL鎖時計數(shù)值初始值0x9應用中時鐘的設定

頭文件.h中的宏定義#defineFIN8000000#defineMCLK64000000#if(MCLK==64000000)#defineM_DIV(0x38)#defineP_DIV(0x2)#defineS_DIV(0x1)#elif(MCLK==60000000)#defineM_DIV(0x34)#defineP_DIV(0x3)#defineS_DIV(0x1)#endif在啟動代碼.s文件中對PLLCON值的加載。ldr r0,=PLLCON /*temporarysettingofPLL*/ldr r1,=((M_DIV<<12)+(P_DIV<<4)+S_DIV)/*Fin=8MHz,Fout=64MHz*/str r1,[r0]6.1.4復位電路設計與模式選擇

1.復位電路的作用負責將處理器初始化為某個確定的狀態(tài)。2.S3C44B0X的復位

復位引腳為nRESET,至少保持4個MCLK時鐘周期的低電平,才能復位。接口設計之

復位電路設計與模式選擇(3)OM1=0且OM0=1選擇16位數(shù)據(jù)寬度

大小端格式選擇及數(shù)據(jù)寬度選擇連接電路大端格式

小端格式S3C44B0X的數(shù)據(jù)存儲模式有大端和小端的選擇,由引腳ENDIAN決定。[OM1:OM0]啟動FLASH的數(shù)據(jù)寬度。6.1.5存儲器組件與接口模塊

嵌入式系統(tǒng)使用的存儲器有多種類型,主要包括Flash、EPROM、SDRAM以及SRAM等,為滿足不同類型的存儲器對不同速度、不同類型、不同總路線寬度等的存儲器的管理和控制,存儲控制組件是必不可少的。正是存儲控制器為片外存儲器訪問提供必要的控制信號,管理著片外存儲部件。不同存儲器組織的

存儲器地址線與系統(tǒng)地址總線的連接表6.6S3C44B0X不同存儲器組織的存儲器地址線與系統(tǒng)地址總線的連接存儲器地址線8位存儲器組織下的系統(tǒng)地址總線16位存儲器組織下的系統(tǒng)地址總線32位存儲器組織下的系統(tǒng)地址總線A0A0A1A2A1A1A2A3A2A2A3A4A3A3A4A5::::Am-1Am-1Am-2Am-3存儲器組件中的

特殊功能存放器之一

返回

總線寬度與等待控制存放器—BWSCONSTi寫高/低字節(jié)使能:1=使能;0=禁止〔表示SRAM映射在Banki時寫高/低字節(jié)使能〕WSi等待:1=等待;0=禁止等待〔表示SRAM映射在Banki時等待〕DWi總線寬度:00=8位,01=16位,10=32位,11=不用DW0為Bank0的寬度:00=8位,01=16位,10=32位,11=不用〔DW0只讀,不可寫〕ENDIAN大小端模式:0=小端模式;1=大端模式存儲器組件中的

特殊功能存放器之二

返回

內存通道控制存放器—BANKCONi存儲器類型16:1514:1312:1110:87:65:4321:0ROM或SRAMMT=00TacsTcosTaccTochTcahTacpPMCFPDRAM或EDODRAMMT=01或10TrcdTcasTcpCANSDRAMMT=11TrcdCAN決定BANK6、7的類型nGCSi選擇之前地址時鐘個數(shù)0,1,2,4分頁模式配置1,4,8,16個數(shù)據(jù)訪問時鐘個數(shù)1,2,3,4,6,8,10,14保持nOE時鐘個數(shù)0,1,2,4,nGCSi選擇前的保持時鐘個數(shù)0,1,2,4RAS到CAS的延時時鐘個數(shù)1,2,3,4頁訪問周期〔時鐘個數(shù)〕2,3,4,6CAS脈沖寬度〔時鐘個數(shù)〕1,2CAS預充電時間〔時鐘個數(shù)〕1,2列地址位數(shù)8,9,10,11位選擇nOE時鐘個數(shù)0,1,2,4,RAS到CAS的延時時間1,2,3,4存儲器組件中的

特殊功能存放器之三

返回

刷新控制存放器—REFRESH232221:2019:1817:1615:121110:0REFENTREFMDTrpTrcTchr000RefreshCounterREFEN刷新使能:0=禁止刷新,1=刷新

刷新模式:0=CBR(CASbeforeRAS)/自動刷新1=自刷新〔控制信號為電平〕行預充電時間DRAM:00=1.5個時鐘01=2.5個時鐘10=3.5個時鐘11=4.5個時鐘SDRAM:00=2個時鐘01=3個時鐘 10=4個時鐘11=不支持SDRAMRC最小時間:00=4個時鐘01=5個時鐘10=6個時鐘11=7個時鐘CAS保持時間〔DRAM):00=1個時鐘01=2個時鐘10=3個時鐘11=4個時鐘刷新計數(shù)值:刷新周期=(211-刷新計數(shù)值+1)/MCLK存儲器組件中的

特殊功能存放器之四

返回

Bank容量存放器—BANKSIZE在SDRAM訪問周期SCLK使能位:0=禁止,1=允許。BK76MAPBANK6/7存儲器容量大?。?00=32M100=2M101=4M 110=8M432:0SCLKEN0BK76MAP存儲器組件中的

特殊功能存放器之五

返回

SDRAM模式設置存放器—MRSRB6和MRSRB711:1098:76:432:0保留WBLTMCLBTBLWBL〔writeburstlength〕寫突發(fā)脈沖長度:0為推薦值TM〔Testmode〕測試模式選擇:00:由模式存放器設置01,10,11:保存CL〔CASlatency〕CAS發(fā)送時鐘000=1個時鐘 010=2個時鐘011=3個時鐘 其它=保存BT〔Bursttype〕突發(fā)類型:0:順序〔推薦〕1:未用〔Burstlength〕突發(fā)長度:000:1,其余未用存儲器接口電路設計及應用

S3C44B0X內部沒有存儲器,因此必須采用總線方式擴展外部存儲器,包括程序存儲器和數(shù)據(jù)存儲器,此處主要介紹擴展外部存儲器的方法。NORFlashNandFlashFlash典型Flash芯片及與S3C44B0的連接程序存儲器采用SST39VF160,它是1M*16位的Flash存儲器芯片。

Flash的地址范圍為0x00000000~0x001FFFFF

典型SDRAM芯片及與S3C44B0的連接

SDRAMHY57V651620B內部有4個1M×16的存儲器陣列,所以容量為211*2*16=222*16=4M*16=8MB。SDRAM必須放到BANK6開始的區(qū)域。

SDRAM地址范圍為0x0C000000~0x0C7FFFFF。13個存儲控制存放器的配置例如6.1.6JTAG接口電路設計1.

ARM公司提供的標準20腳JTAG仿真調試接口電路,芯片內部有JTAGCORE。2.S3C44B0X通過外部JTAG/ICE端口支持ARM標準的嵌入式在線仿真,共有四個管腳:3.JTAG接口電路

TMS:測試模式選擇TDI:測試數(shù)據(jù)輸入TDO:測試數(shù)據(jù)輸出TCK:測試時鐘6.2端口組件原理及應用

1.處理器通過I/O口和外圍硬件連接;2.ARM芯片的I/O口通常都是和其他引腳復用的;3.熟悉I/O口的功能,通過特殊功能存放器的配置對I/O口進行編程;4.S3C44B0有71個通用可編程多功能輸入/輸出引腳,共7類端口,如下所示:返回端口組件之

端口功能

一、雙功能端口

A,B、D端口具有兩種功能二、三功能端口

C,E、G端口具有三種功能三、四功能端口

F端口具有四種功能返回端口組件之

端口存放器每個端口都可以通過軟件設置來滿足各種各樣的系統(tǒng)設置和設計要求。每個端口的功能通常都要在主程序開始前被定義。如果一個引腳的多功能沒有使用,那么這個引腳將被設置為I/O端口。在引腳配置以前,需要對引腳的初始化狀態(tài)進行設定來防止一些問題的出現(xiàn)。GPIOIISDIEINT5GPG5引腳配置引腳功能選擇使用例如S3C44B0微控制器的引腳一般是多個功能復用,但是同一引腳在同一引腳在同一時刻只能使用其中一個功能,這可以通過設置PCONx存放器來選擇。通過PCONG控制引腳功能端口組件之

端口存放器(P49)1.端口配置存放器:PCONA~PCONG決定A~G各相應端口每個引腳的功能。2.端口數(shù)據(jù)存放器:PDATA~PDATG存放I/O端口的數(shù)據(jù)。3.端口上拉存放器:PUPC~PUPG 決定端口是否內部接通上拉電阻。 0=上拉;1=禁止4.特殊上拉電阻控制存放器:SPUPR 決定對數(shù)據(jù)總線引腳是否內部接上拉電阻。 0=上拉;1=禁止返回例題:例1:設置A端口均為輸出端口,并設置PGA4,PGA6為1,其他引腳均為0;

答案:PCONA=0x0;PDATA=0x50;例題:例2:設置C端口均為數(shù)據(jù)總線,并讀取數(shù)據(jù)總線的值,當值為0x80時,讓變量i=0,否那么i=1;答案:PCONC=0xAAAAAAAA;if(PDATC==0x80)i=0;elsei=1;練習1.設置D端口的PD0~PD3分別為VD0~VD3功能,其他D端口為輸出引腳,那么PCOND=?2.設置G端口的PG6和PG7分為EINT6和EINT7,PG1為輸出端口,輸出值為1,其他為輸入端口,并且輸出端口使能上拉電阻,其他禁止,那么PCONG=?,PUPG=?,PDATG=?簡易鍵盤接口應用〔查詢方式〕端口初始化及簡單鍵盤I/O方式處理匯編程序:PCONGequ0x01D20040 ;G口配置存放器地址 PDATGequ0x01D20044 ;G口數(shù)據(jù)存放器地址PUPGequ0x01D20048 ;G口上拉電阻存放器地址 MOVR0,#0 LDRR1,=PCONG STRHR0,[R1];GPG口為輸入端口 MOVR1,PUPG STRBR0,[R1];GPG口內部上拉 LDRR0,=PDATG LDRR1,[R0];取鍵值 ANDR1,#0x0FC;提取GP2~GP7 CMPR1,#0x0FC BEQLNOKEY CMPR1,#0x0F8 BEQLKEY1 CMPR1,#0x0F4 BEQLKEY2 :LNOKEYLKEY1LKEY2 :此處沒有消抖處理,如何消抖?鍵盤接口C語言代碼voidPortInit(void){//端口初始化函數(shù),本函數(shù)只針對圖6.17電路進行了鍵盤初始化

rPCONG=rPCONG&0xf;//設置PG2~PG7為輸入功能rPUDG=rPUDG|0xfC; //因為電路中PG2~PG7端口已接外部上拉,所以內部上拉可不使用}uint8GetKey(void)//讀按鍵程序{KeyValue=0;if((rPDATG&(1<<2))==0)//判斷KEY1鍵是否按下

{longdelay(3);//延時函數(shù),用于鍵盤消抖

if((rPDATG&(1<<2))==0)//再次判斷KEY1鍵是否按下

KeyValue=1;}elseif((rPDATG&(1<<3))==0)//判斷KEY2鍵是否按下

{longdelay(3);if((rPDATG&(1<<3))==0)KeyValue=2;}。。。。。。

returnKeyValue;}6.3中斷組件原理及應用

中斷處理過程中斷的定義是什么?什么是中斷?返回什么是中斷效勞程序在響應一個特定中斷的時候,內核會執(zhí)行一個函數(shù),該函數(shù)叫做中斷處理程序〔interrupthandler〕或中斷效勞程序〔interruptserviceroutine(ISR)〕。產生中斷的每個設備都有相應的中斷處理程序。例如,由一個函數(shù)專門處理來自系統(tǒng)時鐘的中斷,而另外一個函數(shù)專門處理由鍵盤產生的中斷。S3C44B0X中斷控制1.中斷模式

FIQ模式和IRQ模式矢量中斷模式2.CPSR的F位和I位

1:表示不接受中斷請求;

0:表示接受中斷請求。

中斷源及中斷向量一、中斷源共有30個中斷源,其中:〔1〕26個中斷源是單獨的直接接到中斷控制器上〔2〕4個外部中斷源〔EINT4/EINT5/EINT6/EINT7〕是通過邏輯或之后加到中斷控制器上的另外兩個UART0/1錯誤中斷也是一個中斷控制器。二、中斷向量各中斷源及向量地址如表6.9所示。返回向量中斷控制器〔VIC〕向量中斷控制器概述ARM7TDMI內核具有兩個中斷輸入,分別為IRQ中斷和FIQ中斷。但是芯片內外部有許多中斷源,最多可以有30個中斷輸入請求。向量中斷控制器的作用就是允許哪些中斷源可以產生中斷、可以產生哪類中斷、產生中斷后執(zhí)行哪段效勞程序。ARM7TDMIIRQFIQVIC中斷請求輸入1中斷請求輸入30...6.3.2中斷功能控制存放器 1.中斷控制存放器 2.中斷掛起存放器 3.中斷模式存放器 4.中斷屏蔽存放器 5.中斷效勞掛起存放器 6.外部中斷控制存放器 7.外部中斷請求存放器

中斷組件之一

中斷控制存放器返回中斷控制存放器INTCON〔4位〕: 決定IRQ和FIQ中斷是否允許。格式:位3210SPUPR保留VIF說明00=矢量中斷模式1=非矢量中斷模式0=IRQ中斷允許1=IRQ中斷禁止0=FIQ中斷允許1=FIQ中斷禁止初始值0111地址:0x01E00000初值:0x07(IRQ和FIQ全部禁止中斷)例如:設定S3C44B0處理器的IRQ中斷允許,采用矢量中斷模式,不允許FIQ中斷,那么INTCON=?

0x01

中斷組件之二

中斷掛起存放器返回INTPND〔26位,表6-62〕,指示中斷請求狀態(tài)位名稱位位名稱位含義初始值EINT025INT_TIMER1120=無請求;1=有請求全為0EINT124INT_TIMER211EINT223INT_TIMER310EINT322INT_TIMER49EINT4/5/6/721INT_TIMER58INT_TICK20INT_URXD07INT_ZDMA019INT_URXD16INT_ZDMA118INT_IIC5INT_BDMA017INT_SIO4INT_BDMA116INT_UTXD13INT_WDT15INT_UTXD02INT_UERR0/114INT_RTC1INT_TIMER013INT_ADC0例如:查詢外部中斷3是否有中斷請求,應該使用什么判斷語句?答案:if〔〔INTPND&0x400000〕!=0〕

中斷組件之三

中斷模式存放器返回INTMOD〔26位〕:設置26個中斷源中斷處于IRQ還是FIQ模式。位名稱位位名稱位含義EINT025INT_TIMER1120=IRQ模式;1=FIQ模式EINT124INT_TIMER211EINT223INT_TIMER310EINT322INT_TIMER49EINT4/5/6/721INT_TIMER58INT_TICK20INT_URXD07INT_ZDMA019INT_URXD16INT_ZDMA118INT_IIC5INT_BDMA017INT_SIO4INT_BDMA116INT_UTXD13INT_WDT15INT_UTXD02INT_UERR0/114INT_RTC1INT_TIMER013INT_ADC0例如:設置S3C44B0處理器中的定時器0為快速中斷模式,其余全為普通中斷,那么INTMOD=?0x1<<13

中斷組件之四

中斷屏蔽存放器返回中斷屏蔽存放器INTMSK〔27位〕: 決定26個中斷源中斷是否允許中斷響應。各位:〔1〕25~0位:1=禁止中斷0=允許中斷〔2〕26位〔全局屏蔽〕:1=禁止0=允許必須滿足:全局允許且各自允許方可進入中斷響應!位名稱位位名稱位含義保留27INT_TIMER013

0=服務允許;1=屏蔽Global26INT_TIMER112EINT025INT_TIMER211EINT124INT_TIMER310EINT223INT_TIMER49EINT322INT_TIMER58EINT4/5/6/721INT_URXD07INT_TICK20INT_URXD16INT_ZDMA019INT_IIC5INT_ZDMA118INT_SIO4INT_BDMA017INT_UTXD13INT_BDMA116INT_UTXD02INT_WDT15INT_RTC1INT_UERR0/114INT_ADC0例如:設置使定時器2中斷效勞允許,其它中斷效勞屏蔽,那么INTMSK=?

1<<11×(1<<26)|(1<<11)×正確答案:~((1<<26)|(1<<11))

中斷組件之五

IRQ/FIQ中斷效勞及去除存放器返回中斷效勞掛起存放器〔26位〕:I_ISPR只讀存放器,反映26個中斷源中斷是否被響應。各位:1=中斷被響應0=中斷未被響應中斷去除存放器〔26位〕:I_ISPC和F_ISPC 去除26個中斷源中某一中斷效勞〔結束〕。各位:1=去除中斷請求0=不變

中斷組件之六

外部中斷控制存放器返回外部中斷控制存放器EXTINT〔12位〕: 決定8個外部中斷源〔EINT0-7〕的觸發(fā)方式每個中斷源3位:

位位名稱描述[30:28]EINT7000=低電平觸發(fā)001=高電平觸發(fā)01X=下降沿觸發(fā)10X=上升沿觸發(fā)11X=雙邊沿觸發(fā)

[26:24]EINT6[22:20]EINT5[18:16]EINT4[14:12]EINT3[10:8]EINT2[6:4]EINT1[2:0]EINT0

中斷組件之七

外部中斷請求存放器返回外部中斷請求存放器EXTINTPND〔4位〕: 記錄4個外部中斷源〔EINT4-7〕的中斷請求狀態(tài): 0=無中斷申請1=有中斷申請位3210EXTINTPNDEXINTPND3EXINTPND2EXINTPND1EXINTPND0含義1=EINT7有中斷同時INTPND21=11=EINT6有中斷同時INTPND21=11=EINT5有中斷同時INTPND21=11=EINT4有中斷同時INTPND21=1例如:如何判斷外部中斷7有中斷產生?

if((EXTINTPND&0x8))!=0S3C44B0X中斷控制器應用①②④⑤⑥③Eint4567IsrpISR_EINT4567Eint4567Isr⑤LDRPC,[PC,#-0xff0]0x000000000xFFFFFFFF用戶程序中斷服務程序異常向量表IRQ中斷的設計實例實例:設置外部中斷4產生向量IRQ中斷后,執(zhí)行中斷效勞程序“Eint4567Isr()〞。...rPCONG=0xffff;rINTMOD=0x0; rINTCON=0x1;rINTMSK=~(1<<26|1<<21);pISR_EINT4567=(int)Eint4567Isr;rEXTINT=rEXTINT|0x22220020;rI_ISPC|=BIT_EINT4567;rEXTINTPND=0xf;...C代碼:1.設置引腳連接模塊,設置端口為外部中斷功能;步驟:2.設置所有中斷為IRQ中斷并允許IRQ中斷;3.翻開全局中斷使能和外部中斷4567使能;4.將外部中斷4的中斷效勞程序寫入對應向量地址存放器中;6.去除外部中斷4的標志(1)(2)(3)(4)(6)(6)(2)5.設置中斷觸發(fā)方式(5)0x000000000xFFFFFFFF用戶程序中斷服務程序異常向量表1.正在執(zhí)行用戶程序;①2.外部中斷4發(fā)生中斷;②3.VIC硬件將中斷效勞程序地址裝入pISR_EINT4567存放器;④4.程序跳轉至異常向量表中IRQ入口0x0018處;5.執(zhí)行指令跳轉至pISR_EINT4567存放器中的中斷效勞地址;⑤⑥6.中斷效勞程序執(zhí)行完畢,返回被中斷的用戶程序繼續(xù)執(zhí)行被中斷的代碼。圖示IRQ中斷的發(fā)生過程③Eint4567Isr???pISR_EINT4567Eint4567Isr⑤LDRPC,[PC,#-0xff0]S3C44B0X中斷控制器應用有一嵌入式系統(tǒng)采用S3C44B0X處理器,系統(tǒng)的外部中斷連接如以下圖所示,請針對此圖,要求KEY1鍵按下,二極管LED1點亮(函數(shù)LedOn());KEY2鍵按下,二極管LED1熄滅(函數(shù)LedOff());KEY3鍵按下LED1閃爍(LedShine()),寫出外部中斷的相關程序片段。

S3C44B0X中斷控制器應用編程外部中斷初始化函數(shù)#defineBIT_EINT1 (0x1<<24)#defineBIT_EINT4567(0x1<<21)#defineBIT_GLOBAL(0x1<<26)voidinit_Eint(void){rINTCON=0x1;//使能IRQ中斷rINTMOD=0x0;//選擇IRQ中斷模式

rINTMSK=~(BIT_GLOBAL|BIT_EINT4567|BIT_EINT1;

pISR_EINT4567=(int)Eint4567Isr;pISR_EINT1=(int)Eint1Isr;

rPCONG=rPCONG&(0x3<<2)&(0xf<<8);rPUPG=0x0;

rEXTINT=rEXTINT|(0x4<<4)|(0x2<<16)|(0x2<<20);rI_ISPC=rI_ISPC|BIT_EINT4567|BIT_EINT1;rEXTINTPND&=0x3;}S3C44B0X中斷控制器應用編程中斷效勞程序voidEint1Isr(void)//外部中斷1效勞程序{ rI_ISPC&=BIT_EINT1; //去除掛起位LedShine();//LED1閃爍}voidEint1Isr(void)//外部中斷4/5/6/7效勞程序{unsignedcharwhich_int;which_int=rEXTINTPND;rEXTINTPND=0xf; //去除EXTINTPND存放器 rI_ISPC&=BIT_EINT4567; //去除掛起位if((which_int&0x1)!=0)//外部中斷4產生中斷LedOn();if((which_int&0x2)!=0)//外部中斷5產生中斷LedOff();}6.4UART組件原理及應用 1.定義:UART(UniversalAsynchronousReceiver/Transmitter)通用異步收發(fā)器,用于控制計算機與串行設備的接口;2.S3C44B0X的UART單元提供兩個獨立的異步串行I/O口,每個通信口均可工作于中斷模式;3.最高傳輸速率115.2kbps;4.特性:可編程波特率,紅外發(fā)送/接收、一個開始位、一個或兩個停止位、5/6/7/8位的數(shù)據(jù)寬度和奇偶校驗;5.組成:波特率發(fā)生器、接收器、發(fā)送器和控制單元

返回UART的硬件組成1.數(shù)據(jù)傳輸2.數(shù)據(jù)接收3.中斷請求的產生4.波特率的產生5.紅外模式操作同步和異步簡單講:

同步是指:發(fā)送方發(fā)出數(shù)據(jù)后,等接收方發(fā)回響應以后才發(fā)下一個數(shù)據(jù)包的通訊方式。

異步是指:發(fā)送方發(fā)出數(shù)據(jù)后,不等接收方發(fā)回響應,接著發(fā)送下個數(shù)據(jù)包的通訊方式。異步傳輸

異步傳輸是以字符為傳輸單位,每個字符都要附加1位起始位和1位停止位,以標記一個字符的開始和結束,并以此實現(xiàn)數(shù)據(jù)傳輸同步。所謂異步傳輸是指字符與字符(一個字符結束到下一個字符開始)之間的時間間隔是可變的,并不需要嚴格地限制它們的時間關系。一個字符占用5~8位,具體取決于數(shù)據(jù)所采用的字符集。此外,還要附加1位奇偶校驗位;發(fā)送端與接收端除了采用相同的數(shù)據(jù)格式,還應當采用相同的傳輸速率。典型的速率有:9600b/s、56kb/s、115.2kb/s等。

同步傳輸同步傳輸是以數(shù)據(jù)塊為傳輸單位。每個數(shù)據(jù)塊的頭部和尾部都要附加一個特殊的字符或比特序列,標記一個數(shù)據(jù)塊的開始和結束,一般還要附加一個校驗序列(如16位或32位CRC校驗碼),以便對數(shù)據(jù)塊進行過失控制。所謂同步傳輸是指數(shù)據(jù)塊與數(shù)據(jù)塊之間的時間間隔是固定的,必須嚴格地規(guī)定它們的時間關系。

使用UART0通信需要兩個引腳,分別為:引腳名稱類型描述RxD0輸入串行輸入,接收數(shù)據(jù)TxD0輸出串行輸出,發(fā)送數(shù)據(jù)使用UART通信S3C44B0的I/O電壓為3.3V〔可承受5V〕,連接時須注意電平的匹配。與PC機相連時,由于PC機串口是RS232電平,所以連接時需要使用RS232轉換器。S3C44B0PC機串口232電平轉換TxD0RxD0TxD0RxD0S3C44B0其它通信設備TxD0RxD0TxD0RxD0

UART組件

UART的特殊功能存放器UART線控制存放器UART控制存放器發(fā)送/接收狀態(tài)存放器UART發(fā)送/接收(緩沖區(qū))存放器UART波特率除數(shù)存放器FIFO控制存放器Modem控制存放器UART錯誤狀態(tài)存放器FIFO狀態(tài)存放器Modem狀態(tài)存放器UART組件之一

UART線控制存放器ULCON0和ULCON1:P11D0D1D2D3D4D5D6D70位6[5:3]2[1:0]功能紅外模式奇偶校驗停止位數(shù)據(jù)位數(shù)停止位(1~2位)數(shù)據(jù)(5~8位)奇偶校驗位(可選)起始位ULCON存放器:

ULCON控制發(fā)送和接收數(shù)據(jù)幀的格式。TXDUART組件之一

UART線控制存放器位6[5:3]2[1:0]功能紅外模式奇偶校驗停止位數(shù)據(jù)位數(shù)數(shù)據(jù)位數(shù):這些位控制數(shù)據(jù)長度。

00:5位字符長度; 01:6位字符長度;

10:7位字符長度; 11:8位字符長度;ULCON0和ULCON1:UART組件之一

UART線控制存放器位6[5:3]2[1:0]功能紅外模式奇偶校驗停止位數(shù)據(jù)位數(shù)ULCON0和ULCON1:停止位:控制每幀數(shù)據(jù)包含的停止位個數(shù)。

0:1位停止位; 1:2位停止位;UART組件之一

UART線控制存放器位6[5:3]2[1:0]功能紅外模式奇偶校驗停止位數(shù)據(jù)位數(shù)ULCON0和ULCON1:校驗位:控制校驗的使能和選擇。

0XX=無校驗100=奇校驗

101=偶校驗110=校驗位強置1111=校驗位強清0

UART組件之一

UART線控制存放器位6[5:3]2[1:0]功能紅外模式奇偶校驗停止位數(shù)據(jù)位數(shù)紅外模式:是否選擇紅外模式。

0:正常模式1:紅外模式ULCON0和ULCON1:例如設置UART1為數(shù)據(jù)傳輸模式為7位數(shù)據(jù)位,1位停止位,偶校驗,正常模式,請問對哪個存放器設置?值為多少?位6[5:3]2[1:0]功能紅外模式奇偶校驗停止位數(shù)據(jù)位數(shù)1001010ULCON1=0x2A UART組件之二

UART控制存放器UCON0和UCON1:位9876543:21:0UCON0UCON1發(fā)送中斷請求類型接收中斷請求類型接收超時中斷使能接收錯誤中斷使能回送模式發(fā)送中止信號發(fā)送模式接收模式含義0=脈沖1=電平0=脈沖1=電平0=禁止1=允許0=禁止1=允許0=正常模式1=回送模式0=正常工作1=發(fā)中止信號00=禁止01=中斷請求10=BDMA0請求11=BDMA1請求00=禁止01=中斷請求10=BDMA0請求11=BDMA1請求例如:存放器UCON0=0x245,表示什么意思? UART組件之三

FIFO控制存放器UFCON0和UFCON1:位7:65:43210UFCON0UFCON1發(fā)送FIFO觸發(fā)電平接收FIFO觸發(fā)電平保留發(fā)送FIFO復位接收FIFO復位FIFO使能含義00=空01=4字節(jié)10=8字節(jié)11=12字節(jié)00=4字節(jié)01=8字節(jié)10=12字節(jié)11=16字節(jié)0=正常1=發(fā)送FIFO復位0=正常1=發(fā)送FIFO復位0=FIFO禁止1=FIFO使能 UART組件之四

Modem控制存放器UMCON0和UMCON1:位7:543:10UMCON0UMCON1保留000自動流控制AFC保留000請求發(fā)送含義0=AFC禁止1=AFC允許若AFC允許該位不起作用若AFC禁止,則0=高電平(不激活nRTS)1=低電平(激活nRTS) UART組件之五

發(fā)送/接收〔緩沖區(qū)〕存放器發(fā)送存放器UTXH0和UTXH1接收存放器URXH0和URXH1正是通過發(fā)送存放器才將數(shù)據(jù)從UART0或UART1的TXD0或TXD1腳發(fā)送出去。外部經(jīng)RXD0或RXD1引腳送來的串行數(shù)據(jù)經(jīng)移位后存在URXH0或URXH1中。例如:從UART1口發(fā)送數(shù)據(jù)0x83,應如何發(fā)送? UART組件之六

UART錯誤狀態(tài)存放器UERSTAT0和UERSTAT1:返回位3210UERSTAT0UERSTAT1間隔中斷數(shù)據(jù)幀錯誤奇偶錯誤溢出錯誤含義0=未收到中止信號1=收到中止信號0=接收無幀錯誤1=接收數(shù)據(jù)幀錯0=無奇偶校驗錯1=奇偶校驗出錯0=無溢出錯1=溢出錯誤 UART組件之七

FIFO狀態(tài)存放器UFSTAT0和UFSTAT1:返回位15:10987:43:0UFSTAT0UFSTAT1保留發(fā)送FIFO滿接收FIFO滿發(fā)送FIFO計數(shù)器接收FIFO計數(shù)器含義無含義0=發(fā)送FIFO數(shù)據(jù)個數(shù)不超過15字節(jié)1=發(fā)送FIFO滿0=接收FIFO數(shù)據(jù)個數(shù)不超過15字節(jié)1=接收FIFO滿編碼表示發(fā)送FIFO數(shù)據(jù)數(shù)量(字節(jié)數(shù))編碼表示接收FIFO數(shù)據(jù)數(shù)量(字節(jié)數(shù)) UART組件之八

Modem狀態(tài)存放器UMSTAT0和UMSTAT1:返回位43:10UMSTAT0UMSTAT1△CTS保留CTS含義0=CTS無變化1=CTS有變化無含義0=CTS未激活(nCTS引腳為高)1=CTS已激活(nCTS引腳為低) UART組件之九

發(fā)送/接收狀態(tài)存放器UTRSTAT0和UTRSTAT1:位210UTRSTAT0UTRSTAT1發(fā)送移位寄存器狀態(tài)發(fā)送緩沖器狀態(tài)接收緩沖器數(shù)據(jù)狀態(tài)含義0=發(fā)送寄存器非空1=發(fā)送寄存器為空0=緩沖寄存器非空1=緩沖寄存器為空0=完全為空,無數(shù)據(jù)1=接收緩沖寄存器中有數(shù)據(jù)例如:用何語句等待發(fā)送緩沖器為空? UART組件之十

UART波特率除數(shù)存放器UBRDIV0和UBRDIV1:存放波特率因子除數(shù)存放器的值與波特率的關系:UBRDIVn=round_off(MCLK/(波特率×16))-1實用公式:UBRDIVn=INT〔MCLK/(波特率×16)+0.5)-1

波特率除數(shù)計算例如題:某系統(tǒng)采用S3C44B0要求UART1的波特率為115200bps,主時鐘50MH時鐘,求UBRDIV1的值答案:UBRDIV1=26UART0應用例如——操作流程設置引腳連接模塊將對應IO連接到UART0設置串口工作模式設置串口波特率發(fā)送或接收數(shù)據(jù)檢查串口狀態(tài)字或等待串口中斷UART0應用例如——初始化代碼UART初始化代碼:voidUART0_Init(intmclk,intbaud){if(mclk==0)mclk=MCLK;rPCONE=0x28;rULCON0=0x3;rUCON0=0x245;rUBRDIV0=((int)(mclk/16./baud+0.5)-1);

}mclk為CPU主頻,baud是波特率設置線控制寄存器設置控制寄存器,接收和發(fā)送根據(jù)波特率計算分頻值設置引腳連接模塊例如:設置UART0波特率為9600bps,那么調用函數(shù)為,

UART0_Init(0,9600);UART0應用例如——初始化代碼UART初始化代碼:voidUART0_Init(intmclk,intbaud){if(mclk==0)mclk=MCLK;rPCONE=0x28;rULCON0=0x3;rUCON0=0x245;rUBRDIV0=((int)(mclk/16./baud+0.5)-1);

}設置引腳連接模塊將對應IO連接到UART0設置串口工作模式設置串口波特率發(fā)送或接收數(shù)據(jù)檢查串口狀態(tài)字或等待串口中斷UART0應用例如——收發(fā)數(shù)據(jù)voidUART0_SendByte(uint8data){rUTXH0=data;while((rUTRSTAT0&0x2)==0);}uint8UART0_RcvByte(void){uint8rcv_data;while((rUTRSTAT0&0x01)==0);rcv_data=

rURXH0;return(rcv_data);}查詢方式發(fā)送一字節(jié)數(shù)據(jù):查詢方式接收一字節(jié)數(shù)據(jù):將要發(fā)送的一字節(jié)數(shù)據(jù)寫入UTXH0等待數(shù)據(jù)發(fā)送完畢等待數(shù)據(jù)到達從URXH0中讀出接收的數(shù)據(jù)返回接收的數(shù)據(jù)UART0應用例如——收發(fā)字符串voidUART0_RcvString(char*string){charc;c=UART0_RcvByte();while((c!='\r'){*string++=c;c=UART0_RcvByte();}*string='\0';}發(fā)送字符串數(shù)據(jù):接收字符串數(shù)據(jù):voidUART0_SendString(char*string){while(*pt!='\0')Uart_SendByte(*pt++);}6.5DMA組件原理及應用

一、DMA概述二、DMA特殊功能存放器BDMA控制存放器BDMA初始源/當前源地址存放器BDMA初始目標/當前目標地址存放器BMDA初始/當前計數(shù)存放器返回

DMA組件之

DMA組件概述1.S3C44B0內部集成了4個通道的DMA控制器?!?〕2個通用DMA控制器〔ZDMA或GDMA〕

連接SSB〔三星系統(tǒng)總線〕 ZDMA:從存儲器到存儲器,從存儲器到固定目標的I/O設備,以及I/O設備到存儲器之間的數(shù)據(jù)傳輸?!?〕2個橋DMA控制器〔BDMA0和BDMA1〕

連接SSB和SPB〔外圍總線〕間的接口層。BDMA0,BDMA1:用于存儲器到I/O或I/O到存儲器之間的數(shù)據(jù)傳輸。這里的I/設備即外設〔SIO,IIS,UART等〕。2.DMA的主要特點 在兩地自動傳輸數(shù)據(jù)而無需CPU干預。 ZDMA最重要的特性:OnTheFly模式。 DMA組件之一

BMDA的控制存放器BDCON0和BDCON1:位7:65:43:21:0BDCON0BDCON1保留DMA通道的狀態(tài)STE禁止/使能外部/內部DMA請求QDS軟件命令CMD含義無00=準備好01=沒有終止計數(shù)10=終止計數(shù)11=未用00=使能其它=禁止00=無命令01=保留10=保留11=取消DMA操作 DMA組件之二BMDA的初始源

/當前源地址存放器初始源地址存放器BDISRC0和BDISRC1當前源地址存放器BDCSRC0和BDCSRC1位31:3029:2827:0BDISRC0,BDISRC1BDCSRC0,BDCSRC1DST數(shù)據(jù)類型DAL載入地址方向ISADDR初始源地址CSADDR當前源地址含義00=字節(jié)(8位)01=半字(16位)10=字(32位)11=未用00=未用01=增加10=減少11=固定28位相應地址思考:DMA尋址范圍? DMA組件之三BMDA的初始源

/當前目標地址存放器初始目標地址存放器BDIDES0和BDIDES1當前目標地址存放器BDCDES0和BDCDES1位31:3029:2827:0BDIDES0,BDIDES1BDCDES0,BDCDES1TMD傳輸方向模式DAS地址方向IDADDR初始目標地址CDADDR當前目標地址含義00=保留01=M→IO(從外部存儲器到內部外設)10=IO→M(從內部外設到外部存儲器)11=IO→IO(從內部外設到外部外設)00=未用01=增加10=減少11=固定28位相應地址

DMA組件之四

BMDA的初始

/當前計數(shù)器初始目標地址存放器BDICNT0和BDICNT1當前目標地址存放器BDCCNT0和BDCCNT1位31:3029:2827:2625:2423:22212019:0BDICNT0BDICNT1BDCCNT0BDCCNT1QSCDMA請求源保留保留保留INS中斷模式設置AR當DMA計到0時自動加載和自動開始ENDMA硬件使能ICNT/CCNTBDMAn的傳輸計數(shù)器含義00=保留01=IIS10=UART11=SIO00握手模式01單元傳輸模式00不支持on-the-fly模式00=查詢模式01=未用10=傳輸時產生中斷11=終止計數(shù)時產生中斷0=禁止1=允許0=禁止1=允許以字節(jié)為單位時,每次減1;以半字為單位時,每次減2以字為單位時,每次減46.6PWM定時器原理及應用

一、PWM概述二、PWM特殊功能存放器定時器配置存放器0定時器配置存放器1定時控制存放器定時器觀察存放器6.6.1PWM功能控制

返回

PWM組件之

PWM概述及組成PWM〔PulseWidthModulation):脈沖寬度調制器。 S3C44B0X有6個16位定時器,每個定時器可以按照中斷模式或DMA模式工作。定時器0,1,2,3和4具有PWM功能并具有輸出功能。定時器5是一個內部定時器不具有對外輸出口線。2.PWM組成如下圖。 PWM組件之一

定時器配置存放器0TCFG0:決定T0~T5的預分頻系數(shù)等。位31:2423:1615:87:0TCFG0DZL死區(qū)長度PRC2預分頻系數(shù)2PRC1預分頻系數(shù)1PRC0預分頻系數(shù)0含義8位確定死區(qū)長度8位決定定時器4,5的預分頻器的值8位決定定時器3,2的預分頻器的值8位決定定時器1,0的預分頻器的值死區(qū):對于開關設備,一個開與另一個關之間的時間間隔。在死區(qū)中,不允許同時開。 PWM組件之二

定時器配置存放器1TCFG1:決定T0~T5的DMA請求及預分頻系數(shù)。位27:2423:2019:1615:1211:87:43:0TCFG1DMAMODEDMA請求通道MUX5選擇定時器5的MUX輸入MUX4選擇定時器4的MUX輸入MUX3選擇定時器3的MUX輸入MUX2選擇定時器2的MUX輸入MUX1選擇定時器1的MUX輸入MUX0選擇定時器0的MUX輸入含義0000=未選擇0001=定時器00010=定時器10011=定時器20100=定時器30101=定時器40110=定時器50111=保留0000=1/20001=1/40010=1/80011=1/1601XX=EXTCLK0000=1/20001=1/40010=1/80011=1/1601XX=TCLK0000=1/20001=1/40010=1/80011=1/1601XX=1/320000=1/20001=1/40010=1/80011=1/1601XX=1/320000=1/20001=1/40010=1/80011=1/1601XX=1/320000=1/20001=1/40010=1/80011=1/1601XX=1/32 PWM組件之三

定時器控制存放器一、TCON功能:控制T0~T5的具體工作。包括:是否自動重裝值、啟動和停止、反轉輸出、死區(qū)使能等。二、各位含義如表6.29所示。 PWM組件之四定時器計數(shù)緩沖存放器

與定時器比較存放器一、定時器計數(shù)緩沖存放器:TCNTB0為T0的定時計數(shù)緩沖存放器TCNTB1為T1的定時計數(shù)緩沖存放器TCNTB2為T2的定時計數(shù)緩沖存放器TCNTB3為T3的定時計數(shù)緩沖存放器TCNTB4為T4的定時計數(shù)緩沖存放器TCNTB5為T5的定時計數(shù)緩沖存放器存放T0~T5的計數(shù)值。二、定時器比較存放器TCMPB0為T0的定時比較存放器TCMPB1為T1的定時比較存放器TCMPB2為T2的定時比較存放器TCMPB3為T3的定時比較存放器TCMPB4為T4的定時比較存放器TCMPB5為T5的定時比較存放器存入T0~T5的計數(shù)比較值。 PWM組件之五

定時器觀察存放器定時器觀察存放器:TCNTO0為T0的觀察存放器TCNTO1為T1的觀察存放器TCNTO2為T2的觀察存放器TCNTO3為T3的觀察存放器TCNTO4為T4的觀察存放器TCNTO5為T5的觀察存放器存放T0~T5的觀察值。6.6.2PWM定時器的應用

1.PWM的作用

利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術。廣泛應用在從測量、通信到功率控制與變換的許多領域中?;赑WM的燈控原理及波形圖

2.PWM定時器產生方波的應用執(zhí)行PWM操作之前,微處理器要求在軟件中完成以下工作:〔1〕設置提供調制方波的片上定時器/計數(shù)器的周期〔2〕在PWM控制存放器中設置接通時間〔3〕啟動定時器通過PWM控制器控制PWM輸出波形即可方便地控制蜂鳴器的發(fā)聲,

//輸出脈沖:頻率從4000HZ到14000HZ,使用2/3的占空比for(freq=4000;freq<14000;freq+=1000) { div=(MCLK/256/4)/freq; rTCON=0x0; rTCNTB0=div; rTCMPB0=(2*div)/3; rTCON=0xa; //手工裝載定時器的計數(shù)值

rTCON=0x9; //啟動定時器

for(index=0;index<100000;index++); rTCON=0x0; //延時并停止定時器}3.PWM定時器的普通定時功能應用定時中斷初始化函數(shù)#defineBIT_TIMER0(0x1<<13)voidtimer_init(void){

rINTMOD=0x0;rINTCON=0x1;rINTMSK=~(BIT_GLOBAL|BIT_TIMER0);pISR_TIMER0=(int)timer_Int;rTCFG0=255;rTCFG1=0x1;rTCNTB0=65535;rTCMPB0=12800;rTCON=0x19;}中斷效勞程序voidtimer_Int(void){Uart_Printf(“Timeison!");rI_ISPC=BIT_TIMER0;}關閉定時voidtimer_close(void){pISR_TIMER0=NULL;rINTMSK=rINTMSK|BIT_TIMER0;rTCON=0x0;}6.7I2C組件原理及應用

一、I2C總線控制器的組成二、I2C總線接口的操作模式三、I2C總線的特殊功能存放器I2C總線控制存放器I2C總線狀態(tài)存放器I2C總線數(shù)據(jù)〔移位〕和地址存放器6.7.1I2C總線控制器原理返回

I2C總線組件之

I2C總線接口工作模式S3C44B0XI2C總線接口有4種操作模式:主傳送模式、主接收模式、從傳送模式以及從接收模式。I2C總線操作時序1010a10a9a8R/只寫:011100SA0R/(SA0為該器件的引腳)只寫:011100SA0R/(SA0為該器件的引腳)從地址:070H讀:0A3H寫:0A2H

1010A2A1A0R/1010A2A1A0R/1010A2A1A0R/CAT1161/2內嵌I2C總線、E2PROM、RESET、WDT功能的電源監(jiān)控器件PCF8576通用低復用率LCD驅動器PCF8562帶32×4位RAM低復用率的通用LCD驅動器ZLG7290鍵盤及LED驅動器PCF8563實時時鐘/日歷時鐘AT24C01-04AT24C16~64FM24CXXX128BE2RPM~512BE2RPM2KBE2RPM~8KBBE2RPM鐵電存儲器FM系列器件地址及尋址字節(jié)型號種類常見I2C總線的器件 I2C總線特殊功能存放器之一

I2C總線控制存放器I2C總線控制存放器IICCON:位76543:0IICCONACKEN應答使能TXCLKSELTX時鐘源選擇TX/RXINTENTX/RX中斷使能INTPNDF中斷掛起位TXCLKVALUE發(fā)送時鐘預分頻值含義0=禁止應答1=允許應答0=IICCLK=fMCLK/161=IICCLK=fMCLK/5120=禁止中斷1=允許中斷0=讀時沒有中斷寫時清除掛起的條件和恢復操作1=讀時中斷掛起寫時無操作這4位決定預分頻值TXCLK=IICCLK/(這4位編碼值+1) I2C總線特殊功能存放器之二

I2C總線狀態(tài)存放器I2C總線狀態(tài)存放器IICSTAT:位7:66543:03:00IICSTATMODESEL模式選擇STOPCON停止條件SOUTEN串行輸出使能ARBSTAFI2C總線仲裁過程狀態(tài)SLAVEADDRSF從地址狀態(tài)標志ADDRZSF0地址狀態(tài)標志LAST_RBSF上次接收的狀態(tài)標志含義00=從接收01=從發(fā)送10=主接收11=主發(fā)送0=讀時不忙寫時產生停止位1=讀時忙寫時產生啟動位0=禁止TX/RX1=允許TX/RX0=仲裁成功1=仲裁失敗0=檢測到START或STOP時清除1=接收到的從地址與ICCADD匹配0=檢測到START或STOP時清除1=接收到的從地址為00000000B0=最后接收位的是0(ACK收到)1=最后接收的位是1(ACK未收到) I2C總線特殊功能存放器之三/四

數(shù)據(jù)和地址存放器I2C總線發(fā)送和接收數(shù)據(jù)移位存放器IICCDS: 存放將要從I2C總線上發(fā)送或從I2C總線上接收的一個字節(jié)〔8位〕數(shù)據(jù)。I2C總線地址存放器IICADD: 存放高7位〔D7~D1〕決定要訪問的I2C總線的地址,低位D0保存。6.7.2I2C總線接口應用1.基于I2C總線的系統(tǒng)連接S3C44B0的引腳上拉電阻2.基于I2C總線E2PROM的應用

-硬件電路的連接

AT24LC02是基于I2C總線的串行E2PROM。地址線寫保護控制引腳2.基于I2C總線E2PROM的應用

-應用程序設計

6.8I2S組件原理及應用

一、I2S總線控制器的組成二、I2S總線接口的操作模式三、I2S總線的特殊功能存放器I2S總線控制存放器I2S總線模式存放器I2S總線預分頻存放器I2S總線隊列控制存放器I2S總線隊列存放器6.8.1I2S總線控制器原理

返回

IIS接口概述1.IIS是一種串行總線設計

溫馨提示

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

評論

0/150

提交評論