第4章ARM硬件結構4_第1頁
第4章ARM硬件結構4_第2頁
第4章ARM硬件結構4_第3頁
第4章ARM硬件結構4_第4頁
第4章ARM硬件結構4_第5頁
已閱讀5頁,還剩152頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 1.LPC2000系列簡介 2.引腳描述 3.存儲器尋址 4.系統控制模塊 5.存儲器加速模塊 (MAM) 6.外部存儲器控制器(EMC) 7.引腳連接模塊 8. GPIOLPC2000系列ARM硬件結構 9. 向量中斷控制器 10.外部中斷輸入 11.定時器0和定時器1 12. SPI接口 13. I2C接口 14. UART(0、1) 15. A/D轉換器 16. 看門狗 17. 脈寬調制器(PWM) 18. 實時時鐘4.14 UART(0、1) 特性 LPC2000系列微控制器具有兩個功能強大的UART,其特性如下: 16字節(jié)接收FIFO和16字節(jié)發(fā)送FIFO; 寄存器位置符合16C5

2、50工業(yè)標準; 接收FIFO觸發(fā)點可設置為1、4、8或14字節(jié); 內置波特率發(fā)生器; UART1含有標準調制解調器接口信號 。 應用示例LPC2000的I/O電壓為3.3V,連接時須注意電平的匹配。LPC2000其它通信設備TxD0RxD0TxD0RxD0與PC機相連時,由于PC機串口是RS232電平,所以連接時需要使用RS232轉換器。LPC2000PC機串口232電平轉換TxD0RxD0TxD0RxD0RxD1RTSCTSDSR1DTR1TxD1LPC2000ModemTxDRxDDCDRI1RTSCTSDSR1DTR1DCD1RI1RS232電平轉換當使用Modem接口時,需要一個RS2

3、32轉換器將信號轉換為RS232電平后,才能與Modem連接 。移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDn除數鎖存寄存器UnDLL、UnDLMUARTn波特率發(fā)生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)UARTn狀態(tài)寄存器(UnLSR)中斷中斷使能寄存器UnIER中斷標志寄存器UnIIRUARTn高速緩存寄存器UnSCR發(fā)送緩沖寄存器UnTHRUARTn發(fā)送單元TxDn移位寄存器UnTSRMODEMModem控制寄存器U1MCRModem狀態(tài)寄存器U1MSRCTSDSRDCDDTRRIRTSVPB總總線線只有UART1才有Modem接口

4、UART結構圖VPB總總線線AHB-VPB橋ARM7UARTn發(fā)送單元TxDn移位寄存器UnTSR發(fā)送緩沖寄存器UnTHRAHB總線ARM7AHB總線UARTn發(fā)送單元TxDn移位寄存器UnTSR發(fā)送緩沖寄存器UnTHRVPB總總線線AHB-VPB橋CPUUnTSRTXDUnTHRUnTHR描述復位值7 : 0發(fā)送器保持寄存器。寫入該寄存器的值保存到發(fā)送FIFO中,當該字節(jié)到達FIFO底部時,它將被送入發(fā)送移位寄存器(UnTSR)進行發(fā)送。未定義 UART發(fā)送單元 UART0、UART1各含有1個16字節(jié)的發(fā)送FIFO緩沖區(qū)。 UnTHR是UARTn發(fā)送FIFO的最高字節(jié)。 UART的發(fā)送FI

5、FO是一直使能的。發(fā)送FIFOUnTHRUnTSRTXD UART發(fā)送FIFO緩沖區(qū)VPB總總線線AHB-VPB橋ARM7AHB總線移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnVPB總總線線AHB-VPB橋移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnARM7AHB總線RXDUnRBRCPUUnRSRUnRBR描述復位值7 : 0接收緩存寄存器,它包含了接收FIFO中最早接收到的字節(jié)未定義 UART接收模塊 UART0、UART1各含有1個16字節(jié)的接收FIFO緩沖區(qū)。 軟件設置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。 UART FIFO控制寄存器控制寄

6、存器位765 : 3210功能Rx觸發(fā)點設置復位TxFIFO復位RxFIFO使能FIFO接收FIFOUnRSRUnRBRRXDUnFCR UART接收FIFO緩沖區(qū)UARTUART線狀態(tài)寄存器線狀態(tài)寄存器位76543210功能RXFETEMTTHREBIFEPEOERDR UART線狀態(tài)寄存器UnLSR 線狀態(tài)寄存器(UnLSR)為只讀寄存器,它提供UARTn發(fā)送和接收模塊的狀態(tài)信息 。 4.14 UART(0、1) UART波特率發(fā)生器 UART0和UART1各含有一個單獨的波特率發(fā)生器,兩者的功能相同,且相互獨立。 4.14 UART(0、1)名稱描述復位值UnDLL7:0除數鎖存寄存器低

7、字節(jié)兩個寄存器一起構成一個16位的除數,決定UARTn的波特率。未定義UnDLM7:0除數鎖存寄存器高字節(jié) 這兩個寄存器決定波特率時鐘的頻率,而波特率時鐘必須是波特率的16倍。波特率計算公式如下:BaudRate = FPCLK / (U0DLM,U0DLL16) Modem控制寄存器U1MCR位功能功能描述0DTR控制選擇Modem輸出引腳DTR。該位在回寫模式激活時讀出為0。1RTS控制選擇Modem輸出引腳RTS。該位在回寫模式激活時讀出為0。3 : 2保留用戶軟件不要向該位寫入14回寫模式0:禁止modem回寫模式1:使能modem回寫模式modem回寫模式提供了一個執(zhí)行回寫測試的診斷

8、機制。7 : 5保留用戶軟件不要向該位寫入1 該寄存器使能Modem的回寫模式,并控制Modem的輸出信號。4.14 UART(0、1)4.14 UART(0、1) 回寫模式 在Modem回寫模式下,發(fā)送器輸出的串行數據在內部連接到接收器的串行輸入端。輸入腳RxD1對回寫模式無影響,輸出腳TxD1保持總為1的狀態(tài)。4個Modem輸入(CTS, DSR, RI和DCD)與外部斷開。此時,U1MSR的高4位分別由U1MCR的低4位驅動。DSRCTSRIDCDDTRRTSTXDRXDModem接口芯片引腳DSRCTSRIDCDDTRRTSTXDRXDU1MCRBit0Bit1Bit2Bit3位功能功

9、能描述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反映輸入信號CTS的補碼?;貙懩J较略撐贿B接U1MCR的bit1。5DSR反映輸入信號DSR的補碼?;貙懩J较略撐贿B接U1MCR的bit0。6RI反映輸入信號RI的補碼?;貙懩J较略撐贿B接U1MCR的bit2。7DCD反映輸入信號DCD的補碼。回寫模式下該位連接U1MCR的b

10、it1。 Modem狀態(tài)寄存器 該寄存器為只讀,它反映Modem輸入信號的狀態(tài)信息。需要注意的是,Mdoem信號對UART1的操作沒有直接影響,Modem信號的操作是通過軟件來實現的。4.14 UART(0、1)4.14 UART(0、1) 中斷中斷使能寄存器UnIER中斷標志寄存器UnIIRUART0中斷源UART0發(fā)送單元UART0接收單元UART1中斷源UART1發(fā)送單元UART1接收單元Modem模塊 中斷接口 UART0和UART1的中斷接口包含中斷使能寄存器(UnIER)和中斷標識寄存器(UnIIR)。4.14 UART(0、1) 中斷使能寄存器UnIER描述復位值0RBR中斷使能

11、。1:使能RDA中斷;0:禁止RDA中斷。01THRE中斷使能。1:使能THRE中斷;0:禁止THRE中斷。02Rx線狀態(tài)中斷使能。1:使能Rx線狀態(tài)中斷;0:禁止Rx線狀態(tài)中斷;該中斷狀態(tài)可從UnLSR4:1讀出。03Modem中斷使能。 1:禁止Modem中斷;0:禁止Rx線狀態(tài)中斷;該中斷狀態(tài)可從U1MSR3:0讀取。注:只有UART1具有。07 : 4保留,用戶軟件不要向這些位寫入1。未定義 UnIER可以控制UARTn的4個中斷源。其中RBR中斷使能包括兩個中斷,一個是接收數據可用(RDA)中斷,一個是接收超時中斷(CTI)。稍后將對各中斷源作詳細介紹。4.14 UART(0、1)

12、中斷標識寄存器UnIIR描述復位值0中斷掛起。1:沒有掛起的中斷;0:至少有一個中斷被掛起。03 : 1中斷標識。這3位表示了對應于UARTn Rx FIFO的中斷。未列出的其它組合作為保留值。011:1. 接收線狀態(tài)中斷(RLS)0010:2a. 接收數據可用中斷(RDA)0110:2b. 字符超時指示(CTI)001:3. 發(fā)送中斷(THRE)000:4. Modem中斷 注:只有UART1具有7 : 3保留,用戶軟件不要向這些位寫入1。未定義 UnIIR提供狀態(tài)代碼用于指示一個掛起中斷的中斷源和優(yōu)先級。在訪問UnIIR過程中,中斷被凍結。如果在訪問UnIIR時產生了中斷,該中斷將被記錄,

13、在下次訪問UnIIR時可以讀出,避免了中斷的丟失。VIC中斷控制器ARM7TDMI內核Modem中斷(UnIIR3:1=001)UnIERbit2bit1bit0bit3RLS中斷(UnIIR3:1=011)RDA中斷(UnIIR3:1=010)CTI中斷(UnIIR3:1=110)THRE中斷(UnIIR3:1=001)注意:只有UART1才有Modem中斷。4.14 UART(0、1) UART中斷示意圖優(yōu)先級最高第二第二第三RLS中斷RDA中斷CTI中斷THRE中斷VIC中斷控制器ARM7TDMI內核Modem中斷第四UnIERbit2bit1bit0bit3注意:只有UART1才有Mo

14、dem中斷。4.14 UART(0、1) UART中斷優(yōu)先級l RLS中斷:該中斷為最高優(yōu)先級。它在UARTn發(fā)生下面的錯誤時產生中斷:1、溢出錯誤(OE)2、奇偶錯誤(PE)3、幀錯誤(FE)4、間隔中斷(BI)通過查看UnLSR4:1可以了解到產生該中斷的錯誤條件。讀取UnLSR時清除該中斷;4.14 UART(0、1) 中斷源說明 l RDA中斷:該中斷與CTI中斷并列為第二優(yōu)先級。當接收的有效數據到達接收FIFO設置寄存器(UnFCR)中設置的觸發(fā)點時,RDA被激活。當接收FIFO中的有效數據少于觸發(fā)點時,RDA復位;1.移位寄存器(UnRSR)從RxDn引腳接收串行數據后,送入接收F

15、IFO中;2.當接收FIFO中的有效數據數量到達預定的觸發(fā)點時,置位RDA中斷;3.從UnRBR寄存器中讀取FIFO中最早到達的數據,當FIFO中的有效數據小于預定觸發(fā)點時,清零RDA中斷;接收FIFO12345679101112131415168觸發(fā)點設置=8UnRBRUnRSRRxDnUnIIR3:1xxxUnIIR010100 xxx1DATA 中斷源說明 l CTI中斷:當接收FIFO中的有效數據少于預定的觸發(fā)點數量(至少有一個字節(jié))時,如果在一定時間內仍然沒有接收到新的數據,那將觸發(fā)該中斷。這個時間為:3.54.5個字節(jié)所需要的時間。注:對接收FIFO的任何操作都會清零該中斷標志。

16、接收FIFO12345679101112131415168觸發(fā)點設置=8UnRBR1.移位寄存器(UnRSR)從RxDn引腳接收串行數據后,送入接收FIFO中;2.當接收FIFO中的有效數據少于觸發(fā)個數,但至少有一個時,如果長時間沒有數據到達,將觸發(fā)CTI中斷;3.從UnRBR中讀取接收FIFO中的數據,或者有新的數據送入接收FIFO,都將清零CTI中斷;UnRSRDATARxDnUnIIR3:1xxxUnIIR011100 xxx1 中斷源說明 接收FIFO12345679101112131415168觸發(fā)點設置=8UnRBR說明:“3.54.5個字節(jié)的時間”,其意思是在串口當前的波特率下,

17、發(fā)送3.54.5個字節(jié)所需要的時間;UnRSRDATARxDnUnIIR3:1xxxUnIIR011100 xxx1注意:當接收FIFO中存在多個數據,從UnRBR讀取數據,但是沒有讀完所有數據,那么在經過3.54.5個字節(jié)的時間后將觸發(fā)CTI中斷;l CTI中斷:當接收FIFO中的有效數據少于預定的觸發(fā)點數量(至少有一個字節(jié))時,如果在一定時間內仍然沒有接收到新的數據,那將觸發(fā)該中斷。這個時間為:3.54.5個字節(jié)所需要的時間。注:對接收FIFO的任何操作都會清零該中斷標志。 中斷源說明 12345679101112131415168UnRBRU0TSRTxDnUnIIR3:1xxxUnII

18、R01l THRE中斷:該中斷為第三優(yōu)先級。當發(fā)送FIFO為空并且滿足一定的條件時,該中斷將被觸發(fā)。這些條件是:發(fā)送FIFO1.系統啟動時,雖然發(fā)送FIFO為空,但不會產生THRE中斷。DATA1100UnTSR2.在上一次發(fā)生THRE中斷后,向發(fā)送FIFO中寫入1個字節(jié)數據,將在延時一個字節(jié)加上一個停止位后發(fā)生THRE中斷。 這是因為:如果發(fā)送移位寄存器為空,那么寫入發(fā)送FIFO的數據將直接進入發(fā)送移位寄存器; 此時發(fā)送FIFO仍然為空,如果立即產生THRE中斷,就會影響緊接著要寫入發(fā)送FIFO的數據; 所以在發(fā)送完該字節(jié)以及一個停止位后,才產生THRE中斷;3.如果在發(fā)送FIFO中有過兩個

19、字節(jié)以上的數據,但是現在發(fā)送FIFO為空時,將立即觸發(fā)THRE中斷。當THRE中斷為當前有效的最高優(yōu)先級中斷時,往UnTHR寫數據,或者對UnIIR的讀操作,將使THRE中斷復位。 中斷源說明 除數鎖存寄存器UnDLL、UnDLMUARTn波特率發(fā)生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)中斷中斷使能寄存器UnIERMODEMModem控制寄存器U1MCRVPB總總線線4.14 UART(0、1) UART設置使用UART前需要設置的寄存器4.14 UART(0、1) UART設置使用UART前需要設置的寄存器寄存器名稱功能UnLCR設置UARTn的通信格式。UnF

20、CR設置UARTn的接收FIFO緩沖區(qū)。UnDLL、 UnDLM設置UARTn的通信波特率。UnIER設置UARTn的中斷。U1MCRModem接口設置(只有UART1具有)。4.14 UART(0、1) UART設置 使用UART前需要設置的寄存器UnLCR,設置UART通信字符長度、停止位個數、奇偶校驗位等參數。UART控制寄存器位765 : 4621 :0功能除數鎖存間隔奇偶選擇奇偶設置停止位字長UART寄存器地址訪問方式UART0U0RBR0 xE000 C000DLAB=0,對地址:0 xE000 C000進行讀讀訪問U0THRDLAB=0,對地址:0 xE000 C000進行寫寫訪

21、問U0DLLDLAB=1,對地址:0 xE000 C000進行訪問U0IER0 xE000 C004DLAB=0,對地址:0 xE000 C004進行訪問U0DLMDLAB=1,對地址:0 xE000 C004進行訪問UART1U1RBR0 xE001 0000DLAB=0,對地址:0 xE001 0000進行讀讀訪問U1THRDLAB=0,對地址:0 xE001 0000進行寫寫訪問U1DLLDLAB=1,對地址:0 xE001 0000進行訪問U1IER0 xE001 0004DLAB=0,對地址:0 xE001 0004進行訪問U1DLMDLAB=1,對地址:0 xE001 0004進行

22、訪問 UART特殊寄存器位置相同的寄存器 UART應用示例操作流程設置引腳連接模塊將對應IO連接到UARTn設置串口波特率設置串口工作模式發(fā)送或接收數據檢查串口狀態(tài)字或等待串口中斷 UART應用示例初始化代碼UART0初始化代碼:#define UART_BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0 x00000005; U0LCR = 0 x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0 x03;定義表示

23、波特率的宏,方便修改設置引腳連接模塊置位除數鎖存位根據波特率計算分頻值設置除數寄存器(除數鎖存訪問位必須置位)清除除數鎖存位,并設置工作模式 UART應用示例初始化代碼UART0初始化代碼:#define UART_BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0 x00000005; U0LCR = 0 x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0 x03;設置引腳連接模塊將對應IO連接到UART0設置串

24、口波特率設置串口工作模式發(fā)送或接收數據檢查串口狀態(tài)字或等待串口中斷 UART應用示例收發(fā)數據void UART0_SendByte(uint8 data) U0THR = data; while(U0LSR & 0 x40) = 0);uint8 UART0_RcvByte(void) uint8 rcv_data; while(U0LSR & 0 x01) = 0); rcv_data = U0RBR; return(rcv_data);查詢方式發(fā)送一字節(jié)數據:查詢方式接收一字節(jié)數據:將要發(fā)送的一字節(jié)數據寫入U0THR等待數據發(fā)送完畢等待數據到達從U0RBR中讀出接收的數據返

25、回接收的數據UART中斷 UART與VIC的關系 UART0、UART1分別位于VIC的通道6和通道7。中斷使能寄存器VICIntEnable的Bit6和Bit7分別用來控制通道6和通道7的使能。 通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6IRQFIQ通道7UART1VICIntSelect7VICIntEnable7IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配UART中斷 UART0與VIC的關系當VICIn

26、tEnable6 = 0時,通道6中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6 = 0IRQFIQ通道7UART1VICIntSelect7VICIntEnable7 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配UART中斷 UART0與VIC的關系當VICIntEnable6 = 0時,通道6中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6V

27、ICIntEnable6 = 1IRQFIQ通道7UART1VICIntSelect7VICIntEnable7 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配當VICIntEnable6 = 1時,通道6中斷使能。UART中斷 UART1與VIC的關系當VICIntEnable7 = 0時,通道7中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6 = 0IRQFIQ通道7UART1VICIntSelec

28、t7VICIntEnable7 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配UART中斷 UART1與VIC的關系當VICIntEnable7 = 0時,通道7中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6 = 0IRQFIQ通道7UART1VICIntSelect7VICIntEnable7 = 1IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVect

29、Cntl15VICDefVectAddrIRQ通道分配當VICIntEnable7 = 1時,通道7中斷使能。UART中斷 UART中斷LPC2000系列ARM UART中斷分為 四類: 接收中斷 發(fā)送中斷(THRE) 接收狀態(tài)中斷(RLS) Modem中斷 (Modem) 接收超時中斷(CTI) 接收數據可用中斷(RDA)UART中斷 UART中斷示意圖UART中斷使能寄存器UnIERUART中斷標志寄存器UnIIR3:1Bit0:RBR中斷使能 接收中斷 010 :RDA110 :CTIBit1:THRE中斷使能 發(fā)送中斷 001 :THRE Bit2:接收狀態(tài)中斷使能 接收狀態(tài)中斷 01

30、1 :RLSBit3:Modem狀態(tài)中斷使能 Modem中斷 000 :Modem 注意:只有UART1具有Modem中斷。UART中斷 UART中斷示意圖注意:只有UART1具有Modem中斷。UART中斷使能寄存器UnIERUART中斷標志寄存器UnIIR3:1Bit0:RBR中斷使能 接收中斷 010 :RDA110 :CTIBit1:THRE中斷使能 001 :THRE Bit2:接收狀態(tài)中斷使能 011 :RLSBit3:Modem狀態(tài)中斷使能 000 :Modem 1111發(fā)送中斷 接收狀態(tài)中斷 Modem中斷 中斷使能位為1時,對應的中斷使能UART中斷總結 接收中斷數據可用中斷

31、(RDA) LPC2000系列ARM UART接口具有16字節(jié)的接收FIFO,接收觸發(fā)點可以設置為1、4、8、14字節(jié),當接收到的字節(jié)數達到接收觸發(fā)點時,便會觸發(fā)中斷。 UnRBR接收移位寄存器觸發(fā)點設置=8接收FIFO128916觸發(fā)觸發(fā)RDA中斷中斷UART中斷總結 接收中斷接收超時中斷(CTI) 當接收FIFO中的有效數據個數少于觸發(fā)個數時(注:接收FIFO中至少有一個字節(jié)),如果在3.5到4.5個字符的時間內,沒有收到其它數據,將觸發(fā)CTI中斷。UnRBR接收移位寄存器觸發(fā)點設置=8接收FIFO128916觸發(fā)觸發(fā)CTI中斷中斷UART中斷總結 發(fā)送中斷 LPC2000系列ARM UA

32、RT接口具有16字節(jié)的發(fā)送FIFO,當發(fā)送FIFO由非空變?yōu)榭諘r,便會觸發(fā)“發(fā)送中斷”。 發(fā)送移位寄存器UnTHR接收FIFO128916觸發(fā)發(fā)送中斷觸發(fā)發(fā)送中斷注意:前面對“發(fā)送中斷”做了詳細的描述,在這里,為了描述方便,將發(fā)送中斷簡單表示成“發(fā)送FIFO由非空變?yōu)榭铡薄ART中斷總結 接收狀態(tài)中斷 在UART接收數據時,如果出現:溢出錯誤(OE)、奇偶錯誤(PE)、幀錯誤(FE)和間隔中斷(BI)中的任意一個錯誤時,都會觸發(fā)接收狀態(tài)中斷。 +觸發(fā)接收狀態(tài)中斷觸發(fā)接收狀態(tài)中斷溢出錯誤(OE)奇偶錯誤(PE)幀錯誤(FE)間隔中斷(BI)UART中斷總結 Modem中斷 UART1接口具有M

33、odem中斷,當引腳DCD、DSR或CTS上發(fā)生狀態(tài)變化時,都會觸發(fā)Modem中斷。此外,Modem輸入引腳RI上低到高電平的跳變也會產生一個Modem中斷。 +觸發(fā)觸發(fā)Modem中斷中斷DCD引腳狀態(tài)發(fā)生變化DSR引腳狀態(tài)發(fā)生變化CTS引腳狀態(tài)發(fā)生變化RI引腳上升沿 1.LPC2000系列簡介 2.引腳描述 3.存儲器尋址 4.系統控制模塊 5.存儲器加速模塊 (MAM) 6.外部存儲器控制器(EMC) 7.引腳連接模塊 8. GPIOLPC2000系列ARM硬件結構 9. 向量中斷控制器 10.外部中斷輸入 11.定時器0和定時器1 12. SPI接口 13. I2C接口 14. UART

34、(0、1) 15. A/D轉換器 16. 看門狗 17. 脈寬調制器(PWM) 18. 實時時鐘4.15 A/D轉換器 特性 LPC2114/2124具有一個AD轉換器,LPC2200系列具有兩個AD轉換器,它們具有如下特性:10位逐次逼近式模式轉換器;測量范圍:03.3V;10位轉換事件=2.44us;可設置AD轉換觸發(fā)方式;具有掉電模式。4.15 A/D轉換器 A/D轉換器描述 A/D轉換器的基本時鐘由VPB時鐘提供??删幊谭诸l器可將時鐘調整至逐步逼近轉換所需的4.5MHz(最大)。如要要得到10位精度的結果,需要11個A/D轉換時鐘。 A/D轉換器的參考電壓來自V3A和VSSA引腳。4.

35、15 A/D轉換器 A/D轉換器描述引腳名稱類型引腳描述AIN7AIN0輸入模擬輸入。A/D轉換器單元可分時測量這8個引腳上的輸入信號電壓。即使這些引腳設置為GPIO功能,仍可以使用A/D轉換器部件。V3A,VSSA電源模擬電源和地。它們分別與標稱的V3和VSSD的電壓相同,但為了降低噪聲和出錯幾率,兩者應當隔離。轉換器的VrefP和VrefN信號在內部與這兩個電源信號相連。A/D引腳描述4.15 A/D轉換器 A/D轉換器內部結構ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7 A/D轉換器寄存器描述ADDRA/D轉換控制

36、電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7名稱描述訪問復位值ADCRA/D控制寄存器。A/D轉換開始前,必須設置ADCR寄存器來選擇工作模式。讀寫0 x0000001ADDRA/D數據寄存器。該寄存器包含ADC的結束標志位和10位的轉換結果(當結束標志位為1時,轉換結果才是有效的)。讀寫NA A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0

37、AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELSEL:從AIN3AIN0(LPC2114/2124)或AIN7AIN0(LPC2212/2214)中選擇采樣和轉換輸入引腳。Bit0控制AIN0,bit1控制AIN1,依此類推。1:對應輸入端被選中; 0:對應輸入端未選中;注意:軟件模式下只能置位其中一位,硬件模式下可以是任意組合。ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222

38、119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSEL0123456700000000位值AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7 A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELCLKDIV:將VPB時鐘(PCLK)進行分頻,得到AD轉換時鐘。分頻后的時鐘必須小于或等于4.

39、5MHz。通常將CLKDIV編程為允許的最小值,以獲得4.5MHz或稍低于4.5MHz的時鐘。A/D轉換器時鐘 PCLK / ( CLKDIV + 1)CLKDIV ( PCLK / AD轉換時鐘)-1 A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELBURST:BURST/軟件方式控制。當該位為0時,選擇軟件方式啟動AD轉換,需要11個時鐘才能完成。

40、當該位為1時,選擇BURST(突發(fā))模式啟動AD轉換,所需時鐘數由CLK字段控制。 BURST模式下,對所有在SEL字段中置1的位對應的輸入端進行轉換,首先轉換的是最低有效位。然后是更高的位。如此周而復始,直至該位清零。 A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSEL0123456700110110位值AIN0AIN1AIN2AIN3AIN4AIN5

41、AIN6AIN7首先轉換最低有效位再轉換更高的有效位AIN2AIN3AIN5AIN6 A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELCLKS:控制BURST模式下每次轉換需要使用的時鐘數和所得ADDR轉換結果的LS位中可確保精度的位的數目,CLKS可在11個時鐘(10位)4個時鐘(3位)之間選擇:000=11個時鐘/10位,001=10個時鐘/9位,

42、111=4個時鐘/3位。 A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELPDN:控制AD部件是否工作。1:A/D轉換器處于正常工作模式;0:A/D轉換器處于掉電模式; A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:22

43、2119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELTEST1:0:器件測試控制位。00:正常模式;01:數字測試模式;10:DAC測試模式;11:一次轉換測試模式; A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELSTART:該字段用于控制AD轉換的啟動方式,該字段只有在BURST為0時有效。

44、000:不啟動;001:立即啟動轉換;010:P0.16引腳出現預置的電平時,啟動AD轉換。以下值也具有相同特性;011:P0.22引腳;100:MAT0.1引腳;101:MAT0.3引腳;110:MAT1.0引腳;111:MAT1.1引腳; A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELEDGE:當START字段的值為010111時,該位的設置有效

45、。0:在所選CAP/MAT信號的下降沿啟動轉換1:在所選CAP/MAT信號的上升沿啟動轉換 A/D轉換器寄存器描述控制寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:這些位讀出時為0。用于未來擴展功能更強大的AD轉換器。ADDR A/D轉換器寄存器描述數據寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7位313029:2726:2423:1

46、615:65:0功能DONEOVERUN0CHN0V/VddA0V/VddA:當DONE位為1時,該字段包含對SEL字段選中的Ain腳的轉換結果,為一個二進制數。 轉換結果為0時,表示Ain引腳電平小于、等于或接近于VSSA。為0 x3FF時,表示Ain引腳電平等于、大于或接近于VddA。輸入電壓計算公式為:Vin = 結果(VSSA / 0 x3FF)ADDR A/D轉換器寄存器描述數據寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CH

47、N0V/VddA00:這些位讀出時為0。它們允許連續(xù)A/D值的累加,而不需要屏蔽處理,使得至少有256個值不會溢出到CHN字段。ADDR A/D轉換器寄存器描述數據寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0CHN:該字段包含的是LS位的轉換通道。ADDR A/D轉換器寄存器描述數據寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7位3130

48、29:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:這些位讀出為0。用于未來CHN字段的擴展,使之兼容更多通道的轉換值。ADDR A/D轉換器寄存器描述數據寄存器ADDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0OVERUN:在BURST模式下,如果在轉換產生最低位之前,以前轉換的結果丟失或被覆蓋,該位將置位。讀ADDR寄存器時,該位清零。ADDR A/D轉換器寄存器描述數據寄存器A

49、DDRA/D轉換控制電路A/D數據寄存器ADCRA/D控制寄存器FpclkAD轉換時鐘VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0DONE:AD轉換完成標志位。當AD轉換結束時該位置位。在讀取ADDR或ADCR被寫入時,該位清零。如果在轉換過程中,設置了ADCR,那么該位將置位,并啟動一次新的轉換。ADDR A/D轉換器寄存器描述數據寄存器 ADC中斷與VIC的關系ADC中斷向量IRQ通道0向量IRQ通道15非向量IRQ通道通道18ADCVICIntSelect18VICIntEnable18IRQFIQV

50、ICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 ADC處于VIC的通道18,中斷使能寄存器VICIntEnable用來控制VIC通道的中斷使能。 ADC中斷與VIC的關系ADC中斷向量IRQ通道0向量IRQ通道15非向量IRQ通道通道18ADCVICIntSelect18VICIntEnable18IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 ADC處于VIC的通道18,中斷使能寄存器VICI

51、ntEnable用來控制VIC通道的中斷使能。當VICIntEnable18 = 0時,通道18中斷禁止;向量IRQ通道0向量IRQ通道15非向量IRQ通道通道0ADCVICIntSelect18VICIntEnable18IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 ADC中斷與VIC的關系 ADC處于VIC的通道18,中斷使能寄存器VICIntEnable用來控制VIC通道的中斷使能。當VICIntEnable18 = 0時,通道18中斷禁止;ADC中斷當VICIntEnable1

52、8 = 1時,通道18中斷使能; ADC中斷說明ADC中斷 A/D轉換器沒有專門的中斷使能位,這一點是和其它功能部件所不同的。 ADC轉換時間VICDONE = 1ADC啟動轉換(軟件、硬件) 啟動A/D轉換,A/D轉換后,DONE置位,觸發(fā)中斷。4.15 A/D轉換器 使用A/D轉換器的注意要點AD轉換器的時鐘不能大于4.5MHz;使用MAT引腳觸發(fā)AD轉換啟動時,相應的MAT信號不必輸出到引腳。使用MAT引腳觸發(fā)的方法,可以實現AD轉換定時啟動;BURST模式下,每次轉換結束后立即開始下一路的轉換,所以BURST模式具有最高的效率;軟件模式下,SEL字段中只能有一位置位,如果多位置位,將使

53、用最低有效位。 A/D轉換器操作示例操作流程計算ADC部件時鐘設置引腳連接模塊設置AD工作模式啟動AD轉換等待轉換結束讀取轉換結果 A/D轉換器操作示例#define ADCLK 4500000 / 定義AD部件時鐘頻率,單位:Hz#define ADBIT 10 / 定義BURST模式下的轉換精度#define ADBIT2 (10 - ADBIT). PINSEL1 = (PINSEL1 & 0 xFC3FFFFF) | 0 x00400000; ADCR = (0 x01 27) | / EDGE (0 x05 24) | / START (0 x00 22) | / TEST1

54、:0 (0 x01 21) | / PDN (ADBIT2 17)| / CLKS (0 x00 16) | / BUREST (Fpclk/ADCLK + 1) 8) | / CLKDIV (0 x01 0); / SELADCR |= (1 6) & 0 x3FF; .使用軟件方式對Ain0轉換:設置引腳連接模塊硬件觸發(fā)邊沿設置AD啟動設置測試模式設置AD部件上電設置BURST模式精度BURST模式禁止啟動AD轉換等待轉換結束讀取轉換結果轉換通道選擇ADC部件時鐘 1.LPC2000系列簡介 2.引腳描述 3.存儲器尋址 4.系統控制模塊 5.存儲器加速模塊 (MAM) 6.外部存

55、儲器控制器(EMC) 7.引腳連接模塊 8. GPIOLPC2000系列ARM硬件結構 9. 向量中斷控制器 10.外部中斷輸入 11.定時器0和定時器1 12. SPI接口 13. I2C接口 14. UART(0、1) 15. A/D轉換器 16. 看門狗 17. 脈寬調制器(PWM) 18. 實時時鐘4.16 看門狗 看門狗簡介 在嵌入式應用中,CPU必須可靠工作,即使因為某種原因進入了一個錯誤狀態(tài),系統也應該可以自動恢復。看門狗的用途就是使微控制器在進入錯誤狀態(tài)后的一定時間內復位。 其原理是在系統正常工作時,用戶程序每隔一段時間執(zhí)行喂狗動作(一些寄存器的特定操作),如果系統出錯,喂狗間

56、隔超過看門狗溢出時間,那么看門狗將會產生復位信號,使微控制器復位。4.16 看門狗 特性 LPC2000系列微控制器都集成有看門狗部件,其特性為: 帶內部預分頻器的可編程32位定時器; 如果沒有周期性重裝(喂狗)動作,則產生片內復位; 具有調試模式; 看門狗軟件使能后,必須由復位來禁止; 錯誤的喂狗動作,將立即引起復位。中斷信號復位信號4分頻喂狗寄存器WDFEEDPCLK看門狗常數寄存器WDTC計數器WDTV看門狗模式寄存器WDMOD正確喂狗錯誤喂狗溢出 看門狗內部結構圖中斷信號復位信號4分頻喂狗寄存器WDFEEDPCLK看門狗常數寄存器WDTC計數器WDTV看門狗模式寄存器WDMOD正確喂狗

57、錯誤喂狗溢出名稱描述訪問WDMOD看門狗模式寄存器。該寄存器包含看門狗定時器的基本模式和狀態(tài)。讀/設置WDTC看門狗定時器常數寄存器。該寄存器決定超時值。讀寫WDFEED看門狗喂狗寄存器。通過它執(zhí)行特定喂狗時序。只寫WDTV看門狗定時器值寄存器。反映倒計數器當前值。只讀 看門狗寄存器描述 寄存器描述看門狗模式寄存器位7 : 43210功能保留WDINTWDTOFWDRESETWDENWDEN:看門狗中斷使能位,該位只能置位。 該位置位后,將使能看門狗。一旦該位置位,軟件無法將其清零。只有外部復位或看門狗定時器溢出能將其清零。注意:將該位置位后只是使能WDT,但沒有啟動WDT,當第一次喂狗操作時

58、才啟動WDT。中斷信號復位信號4分頻喂狗寄存器WDFEEDPCLK看門狗常數寄存器WDTC計數器WDTV看門狗模式寄存器WDMOD正確喂狗錯誤喂狗溢出位7 : 43210功能保留WDINTWDTOFWDRESETWDEN中斷信號復位信號4分頻喂狗寄存器WDFEEDPCLK看門狗常數寄存器WDTC計數器WDTV看門狗模式寄存器WDMOD正確喂狗錯誤喂狗溢出WDRESET:看門狗復位使能位,該位只能軟件清除。 該位置位后,看門狗溢出將引起復位。一旦該位置位,軟件無法將其清零。只有外部復位或看門狗定時器溢出能將其清零。 寄存器描述看門狗模式寄存器位7 : 43210功能保留WDINTWDTOFWDR

59、ESETWDEN中斷信號復位信號4分頻喂狗寄存器WDFEEDPCLK看門狗常數寄存器WDTC計數器WDTV看門狗模式寄存器WDMOD正確喂狗錯誤喂狗溢出WDTOF:看門狗超時標志。 當看門狗發(fā)生超時,看門狗超時標志置位。該標志由軟件清零。 寄存器描述看門狗模式寄存器位7 : 43210功能保留WDINTWDTOFWDRESETWDEN中斷信號復位信號4分頻喂狗寄存器WDFEEDPCLK看門狗常數寄存器WDTC計數器WDTV看門狗模式寄存器WDMOD正確喂狗錯誤喂狗溢出WDINT:看門狗中斷標志。 當看門狗發(fā)生超時,該位置位。該標志不能由軟件清零,只能通過外部復位或者看門狗復位清零。 寄存器描述

60、看門狗模式寄存器 寄存器描述看門狗常數寄存器 該寄存器決定看門狗超時值,當喂狗時序產生時,該寄存器的內容重新裝入看門狗定時器。該寄存器的復位值為0 xFF,即使寫入更小的值,也會裝入0 xFF。溢出最小時間:tpclk0 xFF4溢出最大時間:tpclk0 xFFFFFFFF4中斷信號復位信號4分頻喂狗寄存器WDFEEDPCLK看門狗常數寄存器WDTC計數器WDTV看門狗模式寄存器WDMOD正確喂狗錯誤喂狗溢出0 xAA 寄存器描述看門狗喂狗寄存器 向該寄存器寫入0 xAA,然后寫入0 x55會使WDTC的值重新裝入看門狗定時器。如果看門狗通過WDMOD寄存器使能,那么第一次喂狗操作還將啟動看門狗運行。在看門狗能夠產生中

溫馨提示

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

評論

0/150

提交評論