西安工業(yè)大學(xué)電信學(xué)院嵌入式課件chapter_5(第9-10節(jié))_第1頁
西安工業(yè)大學(xué)電信學(xué)院嵌入式課件chapter_5(第9-10節(jié))_第2頁
西安工業(yè)大學(xué)電信學(xué)院嵌入式課件chapter_5(第9-10節(jié))_第3頁
西安工業(yè)大學(xué)電信學(xué)院嵌入式課件chapter_5(第9-10節(jié))_第4頁
西安工業(yè)大學(xué)電信學(xué)院嵌入式課件chapter_5(第9-10節(jié))_第5頁
已閱讀5頁,還剩121頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第5章 目錄q1.簡介q2.引腳配置q3.存儲器尋址q4.系統(tǒng)控制模塊q5.存儲器加速模塊q6.外部存儲器控制器q7.引腳連接模塊q8. 向量中斷控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定時器0/1q15.脈寬調(diào)制器(PWM)q16.A/D轉(zhuǎn)換器q17.實(shí)時時鐘q18.看門狗5.9 GPIO 特性 GPIO是通用型之輸入輸出是通用型之輸入輸出(General Purpose I/O)的簡稱的簡稱,功能類似功能類似8051的的P0P3,其接腳可以供使用者其接腳可以供使用者由程序控制自由使用由程序控制自由使用 。 LPC2000系列作為

2、“微控制器”,其GPIO特性就顯得很重要。它具有如下的特性:可以獨(dú)立控制每個GPIO口的方向(輸入/輸出模式);可以獨(dú)立設(shè)置每個GPIO的輸出狀態(tài)(高/低電平);所有GPIO口在復(fù)位后默認(rèn)為輸入狀態(tài)。5.9 GPIO 應(yīng)用R310KRSTC16104LED1POWER+3.3VR310K+3.3VQB1QC2QD3QE4QF5QG6QH7GND8SQH9SCLR10SCK11RCK12OE13SI14QA15VCC16U1174HC595+3.3VLPC2000檢測數(shù)字輸入,如鍵盤或開關(guān)信號驅(qū)動LED或其它指示器控制片外器件5.9 GPIO 引腳描述 LPC2114/2124微控制器具有兩個端

3、口P0和P1,可以作為GPIO使用的引腳數(shù)為46個。 LPC2210/2212/2214微控制器還包含另外兩個端口P2和P3,這個兩個端口與外部存儲器總線復(fù)用,當(dāng)它們?nèi)孔鳛镚PIO使用時,GPIO引腳數(shù)多達(dá)112個。5.9 GPIO 引腳描述GPIO與控制寄存器的關(guān)系PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10引腳PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10通用名稱描述訪問類型復(fù)位值IOPINGPIO引腳值寄存器,不管方向模式如何,引腳的當(dāng)前狀態(tài)都可以從

4、該寄存器中讀出讀/寫NAIOSETGPIO輸出置位寄存器。該寄存器控制引腳輸出高電平讀/置位0 x0000 0000IOCLRGPIO輸出清零寄存器。該寄存器控制引腳輸出低電平只清零0 x0000 0000IODIRGPIO方向控制寄存器。該寄存器單獨(dú)控制每個IO口的方向讀/寫0 x0000 0000 GPIO相關(guān)寄存器描述PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相關(guān)寄存器描述IOxPINIOxPIN描述復(fù)位值31 : 0GPIO引腳值。IOxPIN0對應(yīng)于Px.0 IOxPIN31對應(yīng)于Px.31引腳未定義 該寄存器反映了當(dāng)前引腳的狀態(tài)。IOxP

5、IN中的x對應(yīng)于某一個端口,如P1口對應(yīng)于IO1PIN。所以芯片存在多少個端口,就有多少個IOxPIN分別與之對應(yīng)。 寫該寄存器會將值保存到輸出寄存器,具體使用稍后介紹。注意:無論引腳被設(shè)置為輸入還是輸出模式,都不影響引腳狀態(tài)的讀出。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相關(guān)寄存器描述IOxDIRIOxDIR描述復(fù)位值31 : 0方向控制位。IOxDIR0對應(yīng)于Px.0 IOxDIR31對應(yīng)于Px.31引腳未定義 當(dāng)引腳設(shè)置為GPIO輸出模式時,可使用該寄存器控制引腳的方向。向某位寫入1使對應(yīng)引腳作為輸出功能,寫入0時作為輸入功能。 作為輸入功能

6、時,引腳處于高阻態(tài)。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相關(guān)寄存器描述IOxSETIOxSET描述復(fù)位值31 : 0輸出置位。IOxSET0對應(yīng)于Px.0 IOxPIN31對應(yīng)于Px.31引腳未定義 當(dāng)引腳設(shè)置為GPIO輸出模式時,可使用該寄存器從引腳輸出高電平。向某位寫入1使對應(yīng)引腳輸出高電平。寫入0無效。 從該寄存器讀回的數(shù)據(jù)為GPIO輸出寄存器的值。該值不反映外部環(huán)境對引腳的影響。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相關(guān)寄存器描述IOxCLRIOxCLR描述復(fù)位值31 : 0輸出清零。IO

7、xCLR0對應(yīng)于Px.0 IOxCLR31對應(yīng)于Px.31引腳未定義 當(dāng)引腳設(shè)置為GPIO輸出模式時,可使用該寄存器從引腳輸出低電平。向某位寫入1使對應(yīng)引腳輸出低電平。寫入0無效。注意:讀取該寄存器無效,不能讀回輸出寄存器的值。5.9 GPIO 使用GPIO注意要點(diǎn)引腳設(shè)置為輸出方式時,輸出狀態(tài)由IOxSET和IOxCLR中最后操作的寄存器決定;大部分GPIO輸出為推挽方式(個別引腳為開漏輸出),正常拉出/灌入電流均為4mA(短時間極限值40mA);復(fù)位后默認(rèn)所有GPIO為輸入模式。 . PINSEL0 &= 0 xFFFFFFFC; IO0DIR |= 0 x00000001; IO0SET

8、 = 0 x00000001; .C代碼:PINSEL0IO0DIRIO0CLRIO0PINIO0SETinout10 GPIO應(yīng)用示例設(shè)置P0.0輸出高電平P0.0(1) 設(shè)置引腳連接模塊,P0.0為GPIO(2) 設(shè)置P0.0口方向,設(shè)置為輸出(3) 設(shè)置P0.0口狀態(tài),輸出高電平1 . uint32 PinStat; PINSEL0 &= 0 xFFFFFFFC; IO0DIR &= 0 xFFFFFFFE; PinStat = IO0PIN; .C代碼:PINSEL0IO0DIRIO0CLRIO0PINIO0SETinout10 GPIO應(yīng)用示例讀取P0.0引腳狀態(tài)P0.0(1) 設(shè)置

9、引腳連接模塊,P0.0為GPIO(2) 設(shè)置P0.0口方向,設(shè)置為輸入(3) 從IO0PIN讀取引腳狀態(tài)IO0PIN#define DataBus 0 xFF PINSEL0 &= 0 xFFFF0000; IO0DIR |= DataBus; IO0CLR = DataBus; IO0SET = Data; .使用IOxSET和IOxCLR實(shí)現(xiàn): GPIO應(yīng)用示例輸出多位數(shù)據(jù)至IO口(1) 設(shè)置引腳連接模塊,P0.07為GPIO(2) 設(shè)置P0.0口方向,設(shè)置為輸出(3) 清零8位IO口的輸出狀態(tài) 在需要將多位數(shù)據(jù)同時輸出到某幾個IO口線時,通常使用IOxSET和IOxCLR來實(shí)現(xiàn),在某些情

10、況下也可以使用IOxPIN寄存器實(shí)現(xiàn)。后者可以在多個IO口上直接輸出0和1電平。 本例將8位無符號整數(shù)變量Data的值輸出到P0.0P0.7。(4) Data變量中為1的位將輸出高電平0 x?0 x00Data數(shù)據(jù)輸出線:#define DataBus 0 xFF PINSEL0 &= 0 xFFFF0000; IO0DIR |= DataBus; IO0PIN = (IO0SET & 0 xFFFFFF00) | Data; . GPIO應(yīng)用示例輸出多位數(shù)據(jù)至IO口(1) 設(shè)置引腳連接模塊, P0.0P0.7為GPIO(2) 設(shè)置P0.0P0.7口方向,設(shè)置為輸出(3) 寫IO0PIN,輸出

11、數(shù)據(jù) 在需要將多位數(shù)據(jù)同時輸出到某幾個IO口線時,通常使用IOxSET和IOxCLR來實(shí)現(xiàn),在某些情況下也可以使用IOxPIN寄存器實(shí)現(xiàn)。后者可以在多個IO口上直接輸出0和1電平。 本例將8位無符號整數(shù)變量Data的值輸出到P0.0P0.7。使用IOxPIN實(shí)現(xiàn):0 x?Data數(shù)據(jù)輸出線:0 x?0 x00Data與前者對比:第5章 目錄q1.簡介q2.引腳配置q3.存儲器尋址q4.系統(tǒng)控制模塊q5.存儲器加速模塊q6.外部存儲器控制器q7.引腳連接模塊q8. 向量中斷控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定時器0/1q15.脈寬

12、調(diào)制器(PWM)q16.A/D轉(zhuǎn)換器q17.實(shí)時時鐘q18.看門狗5.10 UART0 特性 LPC2000系列微控制器具有兩個功能強(qiáng)大的UART,其中UART0具有如下的特性:16字節(jié)接收FIFO和16字節(jié)發(fā)送FIFO;接收FIFO觸發(fā)點(diǎn)可設(shè)置為1、4、8或14字節(jié);內(nèi)置波特率發(fā)生器。(Universal Asynchronous Receiver/Transmitter)通用異步收發(fā)傳輸器通用異步收發(fā)傳輸器 使用UART0通信需要兩個引腳,分別為:引腳名稱類型描述RxD0輸入串行輸入,接收數(shù)據(jù)TxD0輸出串行輸出,發(fā)送數(shù)據(jù) 使用UART0通信LPC2000的I/O電壓為3.3V(可承受5V

13、),連接時須注意電平的匹配。與PC機(jī)相連時,由于PC機(jī)串口是RS232電平,所以連接時需要使用RS232轉(zhuǎn)換器。LPC2000其它通信設(shè)備LPC2000PC機(jī)串口232電平轉(zhuǎn)換TxD0RxD0TxD0RxD0TxD0RxD0TxD0RxD0U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL1.在使用UART之前需要設(shè)置的寄存器 UART0內(nèi)部結(jié)構(gòu)示意圖U0LCRU0IERU0FCRU0DLM U0DLLFIFO控制中斷使能UART0格式設(shè)置波特率設(shè)置U0THRU0TSRTxD0U0RBRU0

14、RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL2.發(fā)送數(shù)據(jù)的通道 UART0內(nèi)部結(jié)構(gòu)示意圖U0THRU0TSRVPB接口CPU內(nèi)核通過VPB接口對UART0的寄存器進(jìn)行讀寫訪問發(fā)送緩存發(fā)送移位寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL3.接收數(shù)據(jù)的通道 UART0內(nèi)部結(jié)構(gòu)示意圖U0RBRU0RSRVPB接口接收緩存接收移位寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIR

15、U0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL4.通信過程中可能影響的標(biāo)志位 UART0內(nèi)部結(jié)構(gòu)示意圖U0LSRU0IIR中斷標(biāo)志UART0當(dāng)前狀態(tài) UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLLU0RBRU0RBR描述復(fù)位值7 : 0接收緩存寄存器,它包含了接收FIFO中最早接收到的字節(jié)未定義 U0RSR移位寄存器從RxD0引腳接收的有效數(shù)據(jù)將被送到接收FIFO中。通過讀取U0RBR寄存器可以將接收FIFO中最早接收到的字節(jié)讀出,當(dāng)FIFO

16、中不再包含有效數(shù)據(jù)時,該寄存器反映接收到的最后一個有效字節(jié)數(shù)據(jù)。接收的數(shù)據(jù)不足8位時,高位用0填充。注意: U0RBR只讀。訪問該寄存器時,U0LCR的除數(shù)鎖存訪問位(DLAB)必須為0。接收緩存寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLLU0THR描述復(fù)位值7 : 0發(fā)送器保持寄存器,寫入該寄存器的值

17、保存到發(fā)送FIFO中,當(dāng)該字節(jié)到達(dá)FIFO底部時,它將被送入發(fā)送移位寄存器(U0TSR)進(jìn)行發(fā)送。未定義 寫入該寄存器的值將是發(fā)送FIFO中的最高字節(jié)。訪問該寄存器時,U0LCR的除數(shù)鎖存訪問位(DLAB)必須為0。注意: U0THR只寫。它的地址與U0RBR相同,通過讀/寫操作予以區(qū)分。U0THR發(fā)送器保持寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLLU0THRU0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相關(guān)寄存器

18、描述名稱描述復(fù)位值U0DLL7:0除數(shù)鎖存寄存器低字節(jié)兩個寄存器一起構(gòu)成一個16位的除數(shù),決定UART0的波特率。未定義U0DLM7:0除數(shù)鎖存寄存器高字節(jié) 這兩個寄存器決定波特率時鐘的頻率,而波特率時鐘必須是波特率的16倍。波特率計(jì)算公式如下:BaudRate = FPCLK / (U0DLM,U0DLL16)除數(shù)鎖存寄存器U0DLM U0DLL注意:由于U0DLL、U0DLM寄存器與其它寄存器的地址重疊,所以在訪問它們時,U0LCR的除數(shù)鎖存訪問位(DLAB)必須為1。U0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相關(guān)寄存器描

19、述U0IER描述復(fù)位值0RBR中斷使能。1:使能RDA中斷;0:禁止RDA中斷。01THRE中斷使能。1:使能THRE中斷;0:禁止THRE中斷。02Rx線狀態(tài)中斷使能。1:使能Rx線狀態(tài)中斷;0:禁止Rx線狀態(tài)中斷;該中斷狀態(tài)可從U0LSR4:1讀出。07 : 3保留,用戶軟件不要向這些位寫入1。未定義中斷使能寄存器U0IER U0IER可以控制UART0的4個中斷源。其中RBR中斷使能包括兩個中斷,一個是接收數(shù)據(jù)可用(RDA)中斷,一個是接收超時中斷(CTI)。稍后將對各中斷源作詳細(xì)介紹。U0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL U

20、ART0相關(guān)寄存器描述中斷使能寄存器中斷源和中斷使能的關(guān)系U0IIRRLS中斷(U0IIR3:1=011)RDA中斷(U0IIR3:1=010)CTI中斷(U0IIR3:1=110)THRE中斷(U0IIR3:1=001)VIC中斷控制器ARM7TDMI內(nèi)核U0IERbit2bit1bit0優(yōu)先級最高第二第二第三U0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相關(guān)寄存器描述中斷使能寄存器U0IIRRLS中斷RDA中斷CTI中斷THRE中斷VIC中斷控制器ARM7TDMI內(nèi)核U0IERbit2bit1bit0中斷源和中斷使能的關(guān)系U0

21、THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相關(guān)寄存器描述U0IIR描述復(fù)位值0中斷掛起。1:沒有掛起的中斷;0:至少有一個中斷被掛起。03 : 1中斷標(biāo)識。這3位表示了對應(yīng)于UART0 Rx FIFO的中斷。未列出的其它組合作為保留值。011:1. 接收線狀態(tài)中斷(RLS)0010:2a. 接收數(shù)據(jù)可用中斷(RDA)0110:2b. 字符超時指示(CTI)001:3. 發(fā)送中斷(THRE)7 : 3保留,用戶軟件不要向這些位寫入1。未定義中斷標(biāo)識寄存器 U0IIR提供狀態(tài)代碼用于指示一個掛起中斷的中斷源和優(yōu)先級。在訪問U0IIR過

22、程中,中斷被凍結(jié)。如果在訪問U0IIR時產(chǎn)生了中斷,該中斷將被記錄,在下次訪問U0IIR時可以讀出,避免了中斷的丟失。U0IIR UART0相關(guān)寄存器描述中斷源說明l RLS中斷:該中斷為最高優(yōu)先級。它在UART0產(chǎn)生了四個錯誤條件(溢出錯誤(OE)、奇偶錯誤(PE)、幀錯誤(FE)和間隔中斷(BI))中的任意一個時置位。通過查看U0LSR4:1可以了解到產(chǎn)生該中斷的錯誤條件。讀取U0LSR時清除該中斷; UART0相關(guān)寄存器描述中斷源說明lRDA中斷:該中斷與CTI中斷并列為第二優(yōu)先級。當(dāng)接收的有效數(shù)據(jù)到達(dá)接收FIFO設(shè)置寄存器(U0FCR)中設(shè)置的觸發(fā)點(diǎn)時,RDA被激活。當(dāng)接收FIFO中的

23、有效數(shù)據(jù)少于觸發(fā)點(diǎn)時,RDA復(fù)位;1.移位寄存器(U0RSR)從RxD0引腳接收串行數(shù)據(jù)后,送入接收FIFO中;2.當(dāng)接收FIFO中的有效數(shù)據(jù)數(shù)量到達(dá)預(yù)定的觸發(fā)點(diǎn)時,置位RDA中斷;3.從U0RBR寄存器中讀取FIFO中最早到達(dá)的數(shù)據(jù),當(dāng)FIFO中的有效數(shù)據(jù)小于預(yù)定觸發(fā)點(diǎn)時,清零RDA中斷;接收FIFO12345679101112131415168觸發(fā)點(diǎn)設(shè)置=8U0RBRU0RSRRxD0U0IIR3:1xxxU0IIR010100 xxx1DATA UART0相關(guān)寄存器描述中斷源說明lCTI中斷:該中斷為第二優(yōu)先級。當(dāng)接收FIFO中的有效數(shù)據(jù)少于預(yù)定的觸發(fā)點(diǎn)數(shù)量,但至少有一個字節(jié)時,如果超過

24、接收3.54.5個字節(jié)所需要的時間仍沒有接收到數(shù)據(jù),那將觸發(fā)該中斷。對接收FIFO的任何操作都會清零該中斷標(biāo)志;接收FIFO12345679101112131415168觸發(fā)點(diǎn)設(shè)置=8U0RBR1.移位寄存器(U0RSR)從RxD0引腳接收串行數(shù)據(jù)后,送入接收FIFO中;2.當(dāng)接收FIFO中的有效數(shù)據(jù)少于觸發(fā)個數(shù),但至少有一個時,如果長時間沒有數(shù)據(jù)到達(dá),將觸發(fā)CTI中斷;3.從U0RBR中讀取接收FIFO中的數(shù)據(jù),或者有新的數(shù)據(jù)送入接收FIFO,都將清零CTI中斷;U0RSRDATARxD0U0IIR3:1xxxU0IIR011100 xxx1 UART0相關(guān)寄存器描述中斷源說明lCTI中斷:

25、該中斷為第二優(yōu)先級。當(dāng)接收FIFO中的有效數(shù)據(jù)少于預(yù)定的觸發(fā)點(diǎn)數(shù)量,但至少有一個字節(jié)時,如果超過接收3.54.5個字節(jié)所需要的時間仍沒有接收到數(shù)據(jù),那將觸發(fā)該中斷。對接收FIFO的任何操作都會清零該中斷標(biāo)志;接收FIFO12345679101112131415168觸發(fā)點(diǎn)設(shè)置=8U0RBR說明:“3.54.5個字節(jié)的時間”,其意思是在串口當(dāng)前的波特率下,發(fā)送3.54.5個字節(jié)所需要的時間;U0RSRDATARxD0U0IIR3:1xxxU0IIR011100 xxx1注意:當(dāng)接收FIFO中存在多個數(shù)據(jù),從U0RBR讀取數(shù)據(jù),但是沒有讀完所有數(shù)據(jù),那么在經(jīng)過3.54.5個字節(jié)的時間后將觸發(fā)CTI

26、中斷;12345679101112131415168U0THRU0TSRTxD0U0IIR3:1xxxU0IIR01 UART0相關(guān)寄存器描述中斷源說明lTHRE中斷:該中斷為第三優(yōu)先級。當(dāng)發(fā)送FIFO為空并且滿足一定的條件時,該中斷將被觸發(fā)。這些條件是:發(fā)送FIFO1.系統(tǒng)啟動時,雖然發(fā)送FIFO為空,但不會產(chǎn)生THRE中斷。DATA1100U0TSR2.在上一次發(fā)生THRE中斷后,向發(fā)送FIFO中寫入1個字節(jié)數(shù)據(jù),將在延時一個字節(jié)加上一個停止位后發(fā)生THRE中斷。 這是因?yàn)椋喝绻l(fā)送移位寄存器為空,那么寫入發(fā)送FIFO的數(shù)據(jù)將直接進(jìn)入發(fā)送移位寄存器; 此時發(fā)送FIFO仍然為空,如果立即產(chǎn)生

27、THRE中斷,就會影響緊接著要寫入發(fā)送FIFO的數(shù)據(jù); 所以在發(fā)送完該字節(jié)以及一個停止位后,才產(chǎn)生THRE中斷;3.如果在發(fā)送FIFO中有過兩個字節(jié)以上的數(shù)據(jù),但是現(xiàn)在發(fā)送FIFO為空時,將立即觸發(fā)THRE中斷。當(dāng)THRE中斷為當(dāng)前有效的最高優(yōu)先級中斷時,往U0THR寫數(shù)據(jù),或者對U0IIR的讀操作,將使THRE中斷復(fù)位。 UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位765 : 3210功能Rx觸發(fā)點(diǎn)設(shè)置復(fù)位TxFIFO復(fù)位RxFIFO使能FIFOFIFO控制

28、寄存器U0FCR U0FCR控制UART0接收和發(fā)送FIFO的操作。EnFIFO:FIFO使能。該位的任何變化都將清空UART0的FIFO。 1:使能UART0的接收和發(fā)送FIFO,并且允許訪問U0FCR7:1。 0:禁止接收FIFO,此時接收緩存只有1個字節(jié)。而發(fā)送FIFO不會被關(guān)閉。 UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位765 : 3210功能Rx觸發(fā)點(diǎn)設(shè)置復(fù)位TxFIFO復(fù)位RxFIFO使能FIFOFIFO控制寄存器U0FCR復(fù)位RxFIFO:接

29、收FIFO復(fù)位。當(dāng)該位置位時,UART0接收FIFO中的所有字節(jié)被清零并復(fù)位指針邏輯。注意:該位會自動清零。 UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位765 : 3210功能Rx觸發(fā)點(diǎn)設(shè)置復(fù)位TxFIFO復(fù)位RxFIFO使能FIFOFIFO控制寄存器U0FCR復(fù)位TxFIFO:發(fā)送FIFO復(fù)位。當(dāng)該位置位時,UART0發(fā)送FIFO中的所有字節(jié)被清零并復(fù)位指針邏輯。注意:該位會自動清零。 UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RS

30、RRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位765 : 3210功能Rx觸發(fā)點(diǎn)設(shè)置復(fù)位TxFIFO復(fù)位RxFIFO使能FIFOFIFO控制寄存器U0FCR:這些位保留,用戶程序不要向這些位寫入1。 UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位765 : 3210功能Rx觸發(fā)點(diǎn)設(shè)置復(fù)位TxFIFO復(fù)位RxFIFO使能FIFOFIFO控制寄存器U0FCRRx觸發(fā)點(diǎn)設(shè)置:通過設(shè)置這兩位可以調(diào)整接收FI

31、FO中觸發(fā)RDA中斷的有效字節(jié)數(shù)量。00:觸發(fā)點(diǎn)0(1字節(jié));01:觸發(fā)點(diǎn)1(4字節(jié));10:觸發(fā)點(diǎn)2(8字節(jié));11:觸發(fā)點(diǎn)3(14字節(jié));U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLLU0THRU0TSRTxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLLP11D0D1D2D3D4D5D6D70 UART0相關(guān)寄存器描述線狀態(tài)控制寄存器U0LCR位765 : 4621 :0功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長UART數(shù)據(jù)幀結(jié)構(gòu)停止位(12位)數(shù)據(jù)(58位)奇偶

32、校驗(yàn)位(可選)起始位U0LCR寄存器: U0LCR控制發(fā)送和接收數(shù)據(jù)幀的格式。U0THRU0TSRTxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLLU0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL UART0相關(guān)寄存器描述線狀態(tài)控制寄存器位765 : 4621 :0功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長字長:這些位控制數(shù)據(jù)長度。00:5位字符長度;01:6位字符長度;10:7位字符長度;11:8位字符長度;位765 : 4621 :0功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置

33、停止位字長U0LCR UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL線狀態(tài)控制寄存器U0LCR位765 : 4621 :0功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長停止位:控制每幀數(shù)據(jù)包含的停止位個數(shù)。0:1個停止位;1:2個停止位; UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL線狀態(tài)控制寄存器U0LCR位765 : 4621 :0

34、功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長奇偶使能:控制是否進(jìn)行奇偶校驗(yàn)。如果使能,發(fā)送時將添加一位校驗(yàn)位。0:禁止奇偶產(chǎn)生和校驗(yàn);1:使能奇偶產(chǎn)生和校驗(yàn);奇偶選擇:設(shè)置奇偶校驗(yàn)類型。00:奇數(shù)(數(shù)據(jù)位+校驗(yàn)位奇數(shù));01:偶數(shù)(數(shù)據(jù)位+校驗(yàn)位偶數(shù));10:校驗(yàn)位強(qiáng)制為1;11:校驗(yàn)位強(qiáng)制為0; UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL線狀態(tài)控制寄存器U0LCR位765 : 4621 :0功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長間隔:當(dāng)該位為1時,輸出引腳

35、(TxD0)強(qiáng)制為邏輯0,可以引起通信對方(LPC2000)產(chǎn)生間隔中斷。在某些通信方式中,使用間隔中斷作為通信的起始信號(如:LIN Bus)。0:禁止間隔發(fā)送;1:使能間隔發(fā)送; UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL線狀態(tài)控制寄存器U0LCR位765 : 4621 :0功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長除數(shù)鎖存:因?yàn)閁0DLL和U0RBR/U0THR的地址重疊,通過設(shè)置該位可以指定其中某個寄存器操作。0:禁止訪問除數(shù)鎖存寄存器;1:使能訪問除

36、數(shù)鎖存寄存器; UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器 U0LSR為只讀寄存器,它反映了UART0接收和發(fā)送模塊的狀態(tài)信息。RDR:接收數(shù)據(jù)就緒。判斷該位是否置一,決定能否從FIFO中讀取數(shù)據(jù)。 0:U0RBR為空; 1:U0RBR中包含有效數(shù)據(jù)。從接收FIFO中讀走所有數(shù)據(jù)后,恢復(fù)為0。U0LSR UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD

37、0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器OE:溢出錯誤標(biāo)志。當(dāng)U0RBR寄存器中已經(jīng)有新的字符就緒,而接收FIFO已滿時,該位置位。 0:接收緩存區(qū)沒有溢出; 1:接收緩存區(qū)發(fā)生溢出錯誤。U0LSR UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器P

38、E:奇偶校驗(yàn)錯誤。在使能奇偶校驗(yàn)位之后,對所有接收的數(shù)據(jù)都進(jìn)行奇偶校驗(yàn),如果與U0LCR中的設(shè)置不符,將引起奇偶校驗(yàn)錯誤。 0:沒有發(fā)生奇偶校驗(yàn)錯誤; 1:發(fā)生奇偶校驗(yàn)錯誤。讀操作使該位恢復(fù)為0。U0LSR UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器FE:幀錯誤標(biāo)志。當(dāng)接收字符的停止位為0時,產(chǎn)生幀錯誤。 0:沒有發(fā)生幀錯誤; 1:發(fā)生幀錯誤。讀取該位時恢復(fù)為0。U0LSR UAR

39、T0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器BI:間隔中斷標(biāo)志。在接收數(shù)據(jù)時,如果RXD0引腳保持低電平,將產(chǎn)生間隔中斷。發(fā)生間隔中斷后,接收模塊停止數(shù)據(jù)接收。 0:沒有發(fā)生間隔中斷; 1:發(fā)生間隔中斷。U0LSR UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DL

40、L位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器THRE:反映U0THR是否為空,也可以認(rèn)為發(fā)送FIFO是否為空。 0:不為空; 1:空。對U0THR進(jìn)行寫操作,使該位恢復(fù)為0。U0LSR UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器TEMT:當(dāng)發(fā)送移位寄存器和U0THR均為空時,該位置位。 0:不為空; 1:空。對U0THR進(jìn)行寫操作,使該位恢復(fù)為

41、0。U0LSR UART0相關(guān)寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CPU內(nèi)核相連U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR線狀態(tài)寄存器RXFE:如果一個帶有接收錯誤(如幀錯誤、奇偶錯誤或間隔中斷)的字符裝入U(xiǎn)0RBR時,該位置位。 0:U0RBR中沒有接收錯誤,或U0FCR0為0; 1:U0RBR中包含至少一個UART0 Rx錯誤。U0LSR5.10 UART0 使用UART0注意要點(diǎn) U0RBR與U0THR在同一地址上,但實(shí)際上是兩個獨(dú)立的寄存器,讀操作

42、時選擇U0RBR,寫操作時選擇U0THR; U0DLL與U0RBR/U0THR、U0DLM與U0IER在同一地址上,通過除數(shù)訪問位DLAB選擇。當(dāng)該位為1時,選擇U0DLL和U0DLM。為0時,選擇U0RBR/U0THR和U0IER; 無論在U0FCR中是否使能FIFO,接收FIFO不能被禁止。關(guān)閉FIFO后,接收FIFO只有一個字節(jié)緩沖; 波特率計(jì)算公式:U0DLM、U0DLL = FPCLK/(16baud); UART0應(yīng)用示例操作流程設(shè)置引腳連接模塊將對應(yīng)IO連接到UART0設(shè)置串口波特率設(shè)置串口工作模式發(fā)送或接收數(shù)據(jù)檢查串口狀態(tài)字或等待串口中斷 UART0應(yīng)用示例初始化代碼UART0

43、初始化代碼:#define UART_BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0 x00000005; U0LCR = 0 x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0LLM = Fdiv % 256; U0LCR = 0 x03;定義表示波特率的宏,方便修改設(shè)置引腳連接模塊置位除數(shù)鎖存位根據(jù)波特率計(jì)算分頻值設(shè)置除數(shù)寄存器(除數(shù)鎖存訪問位必須置位)清除除數(shù)鎖存位,并設(shè)置工作模式 UART0應(yīng)用示例初始化代碼UART0初始化代碼:#define UART_

44、BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0 x00000005; U0LCR = 0 x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0LLM = Fdiv % 256; U0LCR = 0 x03;設(shè)置引腳連接模塊將對應(yīng)IO連接到UART0設(shè)置串口波特率設(shè)置串口工作模式發(fā)送或接收數(shù)據(jù)檢查串口狀態(tài)字或等待串口中斷 UART0應(yīng)用示例收發(fā)數(shù)據(jù)void UART0_SendByte(uint8 data) U0THR = data; while(U0LSR & 0

45、 x40) = 0);uint8 UART0_RcvByte(void) uint8 rcv_data; while(U0LSR & 0 x01) = 0); rcv_data = U0RBR; return(rcv_data);查詢方式發(fā)送一字節(jié)數(shù)據(jù):查詢方式接收一字節(jié)數(shù)據(jù):將要發(fā)送的一字節(jié)數(shù)據(jù)寫入U(xiǎn)0THR等待數(shù)據(jù)發(fā)送完畢等待數(shù)據(jù)到達(dá)從U0RBR中讀出接收的數(shù)據(jù)返回接收的數(shù)據(jù)第5章 目錄q1.簡介q2.引腳配置q3.存儲器尋址q4.系統(tǒng)控制模塊q5.存儲器加速模塊q6.外部存儲器控制器q7.引腳連接模塊q8. 向量中斷控制器q9.GPIOq10.UART0q11.UART1q12.I2C接

46、口q13.SPI接口q14.定時器0/1q15.脈寬調(diào)制器(PWM)q16.A/D轉(zhuǎn)換器q17.實(shí)時時鐘q18.看門狗5.11 UART1 特性 UART1與UART0基本功能相同,但是增加了一個調(diào)制解調(diào)器(Modem)接口。所以UART1具有UART0的所有特性。16字節(jié)接收FIFO和16字節(jié)發(fā)送FIFO;寄存器位置符合16C550工業(yè)標(biāo)準(zhǔn);接收FIFO觸發(fā)點(diǎn)可設(shè)置為1、4、8或14字節(jié);內(nèi)置波特率發(fā)生器。UART1具有一個標(biāo)準(zhǔn)的Modem接口,這些引腳為:引腳名稱類型描述RxD1輸入串行輸入,接收數(shù)據(jù)TxD1輸出串行輸出,發(fā)送數(shù)據(jù)CTS1輸入清除發(fā)送,指示外部modem的接收是否已經(jīng)準(zhǔn)備就

47、緒。低電平有效,表示UART1數(shù)據(jù)可通過TxD1發(fā)送。DCD1輸入數(shù)據(jù)載波檢測,指示外部modem是否已經(jīng)與UART1建立了通信連接。低電平有效,表示可以進(jìn)行數(shù)據(jù)交換。DSR1輸入數(shù)據(jù)設(shè)備就緒,指示外部modem是否準(zhǔn)備建立與UART1的連接,低電平有效。DTR1輸出數(shù)據(jù)終端就緒,有效低電平指示UART1準(zhǔn)備建立與外部modem的連接。RI1輸入鈴響指示,指示modem檢測到電話的響鈴信號,低電平有效。RTS1輸出請求發(fā)送,指示UART1打算向外部modem發(fā)送數(shù)據(jù),低電平有效。 使用UART1通信 使用UART1通信LPC2000PC機(jī)串口RS232電平轉(zhuǎn)換TxD1RxD1TxD0RxD0R

48、TSCTSDSR1DTR1DCD1RI1RTSCTSDSR1DTR1DCD1RI1 通過PINSEL0寄存器設(shè)置來決定是否使用UART1的Modem接口,當(dāng)使用Modem接口時,需要一個RS232轉(zhuǎn)換器將信號轉(zhuǎn)換為RS232電平后,才能與Modem連接。如果不使用Modem接口功能,UART1與UART0的操作是一樣,那么其它的接口可作為GPIO使用。UART0內(nèi)部結(jié)構(gòu) UART1的結(jié)構(gòu)與UART0類似,在其基礎(chǔ)上增加了控制MODEM接口的寄存器。 UART1內(nèi)部結(jié)構(gòu)示意圖U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR與CP

49、U內(nèi)核相連U0DLM U0DLLU1THRU1TSRTxD0U1RBRU1RSRRxD0U1LCRU1LSRU1IIRU1IERVPB接口U1FCR與CPU內(nèi)核相連U1DLM U1DLLMODEMU1MSRU1MCRCTSDSRRIDCDDTRRTS5.11 UART1位76543210U1IER0000使能Modem中斷使能Rx線狀態(tài)中斷使能THRE 中斷使能Rx數(shù)據(jù)可用中斷U1MCR000回送00RTSDTRU1MSRDCDRIDSRCTSDelta DCD后沿RIDelta DSRDelta CTS UART1包含12個8位寄存器,其中大部分寄存器與UART0類似,所以僅介紹不同之處。

50、UART1寄存器描述位76543210U1IER0000使能Modem中斷使能Rx線狀態(tài)中斷使能THRE 中斷使能Rx數(shù)據(jù)可用中斷使能Modem中斷:當(dāng)該位置位時,允許Modem中斷。 Modem中斷為最低優(yōu)先級中斷,只要在Modem輸入引腳DCD、DSR或CTS上發(fā)生任何狀態(tài)變化,該中斷就會激活。此外,Modem輸入口RI上出現(xiàn)由低到高的電平跳變會產(chǎn)生一個Modem中斷。Modem中斷源可通過檢查U1MSR3:0得到。讀取U1MSR將清除Modem中斷。 Mdoem中斷在U0IIR中的標(biāo)志為0 x00。5.11 UART1中斷使能寄存器 UART1寄存器描述5.11 UART1Modem控制

51、寄存器 UART1寄存器描述位功能功能描述0DTR控制選擇Modem輸出引腳DTR。該位在回寫模式激活時讀出為0。1RTS控制選擇Modem輸出引腳RTS。該位在回寫模式激活時讀出為0。3 : 2保留用戶軟件不要向該位寫入14回寫模式0:禁止modem回寫模式1:使能modem回寫模式modem回寫模式提供了一個執(zhí)行回寫測試的診斷機(jī)制。7 : 5保留用戶軟件不要向該位寫入1 該寄存器使能Modem的回寫模式,并控制Modem的輸出信號。5.11 UART1回寫模式 UART1寄存器描述 在Modem回寫模式下,發(fā)送器輸出的串行數(shù)據(jù)在內(nèi)部連接到接收器的串行輸入端。輸入腳RxD1對回寫模式無影響,

52、輸出腳TxD1保持總為1的狀態(tài)。 4個modem輸入(CTS, DSR, RI和DCD)與外部斷開,并在內(nèi)部與4個modem輸入連接。這樣連接的結(jié)果是U1MSR的高4位由U1MCR的低4位驅(qū)動。這樣在回寫模式下,寫U1MCR的低4位就可產(chǎn)生modem狀態(tài)中斷。 位功能功能描述0Delta CTS檢測到CTS狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。1Delta DSR檢測到DSR狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。2后沿 RI檢測到RI狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。3Delta DCD檢測到DCD狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。4CTS反映輸

53、入信號CTS的補(bǔ)碼?;貙懩J较略撐贿B接U1MCR的bit1。5DSR反映輸入信號DSR的補(bǔ)碼?;貙懩J较略撐贿B接U1MCR的bit0。6RI反映輸入信號RI的補(bǔ)碼?;貙懩J较略撐贿B接U1MCR的bit2。7DCD反映輸入信號DCD的補(bǔ)碼。回寫模式下該位連接U1MCR的bit1。Modem狀態(tài)寄存器 UART1寄存器描述 該寄存器為只讀,它反映Modem輸入信號的狀態(tài)信息。需要注意的是,Mdoem信號對UART1的操作沒有直接影響,Modem信號的操作是通過軟件來實(shí)現(xiàn)的。第5章 目錄q1.簡介q2.引腳配置q3.存儲器尋址q4.系統(tǒng)控制模塊q5.存儲器加速模塊q6.外部存儲器控制器q7.引腳連接

54、模塊q8. 向量中斷控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定時器0/1q15.脈寬調(diào)制器(PWM)q16.A/D轉(zhuǎn)換器q17.實(shí)時時鐘q18.看門狗5.12 I2C接口 特性 LPC2000系列微控制器具有一到兩個標(biāo)準(zhǔn)的I2C接口,它具有如下特性:可配置為主機(jī)(主控器)、從機(jī)(被控器);可編程時鐘可實(shí)現(xiàn)通訊速率控制;主機(jī)從機(jī)之間雙向數(shù)據(jù)傳輸;同時發(fā)送的主機(jī)之間進(jìn)行自動仲裁,避免了總線數(shù)據(jù)的沖突。5.12 I2C接口 I2C簡介 I2C接口是Philips推出的一種串行總線方式,用于IC器件之間的通信。它通過SDA(串行數(shù)據(jù)線)和SC

55、L(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并通過軟件尋址識別每個器件,而不需要片選線。 I2C接口的標(biāo)準(zhǔn)傳輸速率為100Kbit/s,最高傳輸速率可達(dá)400Kbit/s。5.12 I2C接口 I2C簡介電氣連接 I2C總線接口均為開漏或開集電極輸出,因此需要為總線增加上拉電阻Rp。RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2C BUS總線速率越高,總線上拉電阻就越小,100Kbit/s總線速率,通常使用5.1K歐姆的上拉電阻 I2C簡介總線時序 在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束,這通過起始和結(jié)束信號識別。起始信號結(jié)束信號SDA

56、SCLSPS從器件地址 R/W第一字節(jié) 發(fā)送起始信號后傳送的第一字節(jié)數(shù)據(jù)具有特別的意義,其中前七位為從機(jī)地址,最后一位為讀寫方向位(0表示寫,1表示讀)。 I2C簡介總線時序 I2C總線數(shù)據(jù)傳送時,每傳送一個字節(jié)數(shù)據(jù)后都必須有應(yīng)答信號(A)。主控器接收數(shù)據(jù)時,如果要結(jié)束通信時,將在停止位之前發(fā)送非應(yīng)答信號( )。_ASDASCL應(yīng)答信號非應(yīng)答信號AA I2C簡介總線時序 LPC2000在I2C通信中可以配置為主控器也可以作為被控器,那么它就具有4種操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式和從接收模式。S從器件地址WA數(shù)據(jù)A數(shù)據(jù)A/ AP主發(fā)送模式:S從器件地址RA數(shù)據(jù)A數(shù)據(jù)AP主接收模式:

57、S從器件地址WA數(shù)據(jù)A數(shù)據(jù)A/ AP/RS從接收模式:S從器件地址RA數(shù)據(jù)A數(shù)據(jù)AP從發(fā)送模式:主機(jī)到從機(jī)從機(jī)到主機(jī)A = 應(yīng)答(SDA為低)A = 非應(yīng)答(SDA為高)S = 起始信號P = 停止信號RS = 重復(fù)起始信號5.12 I2C接口 寄存器描述 I2C接口包含7個寄存器。名稱描述訪問復(fù)位值地址I2CONSETI2C控制置位寄存器讀/置位00 xE001C000I2STATI2C狀態(tài)寄存器 只讀0 xF80 xE001C004I2DATI2C數(shù)據(jù)寄存器 讀/寫00 xE001C008I2ADRI2C從地址寄存器 讀/寫00 xE001C00CI2SCLHSCL占空比寄存器高半字讀/寫

58、0 x040 xE001C010I2SCLLSCL占空比寄存器低半字 讀/寫0 x040 xE001C014I2CONCLRI2C控制清零寄存器 只清零NA0 xE001C018 寄存器描述I2C控制置位寄存器(I2CONSET) I2CONSET寄存器用于置位I2C通信的相關(guān)標(biāo)志位,該寄存器只能對某位置位,而不能清零,清零通過I2CONCLR寄存器完成。位功能描述復(fù)位值1:0保留用戶程序不要向這些位寫入1NA2AA應(yīng)答標(biāo)志03SII2C中斷標(biāo)志04STO停止標(biāo)志05STA起始標(biāo)志06I2ENI2C接口使能07保留用戶程序不要向該位寫入1NA 寄存器描述I2C控制置位寄存器(I2CONSET)

59、位功能描述復(fù)位值1 : 0保留用戶程序不要向這些位寫入1NA2AA應(yīng)答標(biāo)志03SII2C中斷標(biāo)志04STO停止標(biāo)志05STA起始標(biāo)志06I2ENI2C接口使能07保留用戶程序不要向該位寫入1NA位7654321 : 0功能保留I2ENSTASTOSIAA保留AA:為聲明應(yīng)答標(biāo)志。 主模式時,該位置零。 從模式時,該位置1。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能保留I2ENSTASTOSIAA保留SI:為I2C中斷標(biāo)志。 當(dāng)進(jìn)入25種可能的I2C狀態(tài)中的任何一個后,該位置位。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能

60、保留I2ENSTASTOSIAA保留STO:為停止標(biāo)志。 當(dāng)STO為1時,在主模式中,向I2C總線發(fā)送一個停止條件或在從模式中使總線從錯誤狀態(tài)中恢復(fù)。當(dāng)總線檢測到停止條件時,STO自動清零。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能保留I2ENSTASTOSIAA保留STA:為起始標(biāo)志。 當(dāng)STA=1時,I2C接口進(jìn)入主模式并發(fā)送一個起始條件,如果已經(jīng)處于主模式,則發(fā)送一個重復(fù)起始條件。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能保留I2ENSTASTOSIAA保留I2EN:為I2C接口使能。 當(dāng)該位置位時,使能I2C接

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論