版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
嵌入式系統(tǒng)1.LPC2000系列簡介2.引腳描述3.存儲器尋址4.系統(tǒng)控制模塊5.存儲器加速模塊(MAM)6.外部存儲器控制器(EMC)7.引腳連接模塊8.GPIOLPC2000系列ARM硬件結(jié)構(gòu)9.向量中斷控制器10.外部中斷輸入11.定時器0和定時器112.SPI接口13.I2C接口14.UART(0、1)15.A/D轉(zhuǎn)換器16.看門狗17.脈寬調(diào)制器(PWM)18.實時時鐘2SCLSDACPUACPUBLCD驅(qū)動器E2PROMADC4.13I2C接口概述I2C總線是Philips推出的串行傳輸總線,它以2根連線實現(xiàn)了完善的全雙工同步數(shù)據(jù)傳送,可以極方便地構(gòu)成多機系統(tǒng)和外圍器件擴展系統(tǒng)。發(fā)送器:本次傳送中發(fā)送數(shù)據(jù)(不包括地址和命令)到總線的器件;接收器:本次傳送中從總線接收數(shù)據(jù)(不包括地址和命令)的器件;主機:初始化發(fā)送、產(chǎn)生時鐘信號和終止發(fā)送的器件,它可以是發(fā)送器或接收器。主機通常是微控制器。從機:被主機尋址的器件,它可以是發(fā)送器或接收器。3
在數(shù)據(jù)傳送過程中,必須確認數(shù)據(jù)傳送的開始和結(jié)束,這通過起始和結(jié)束信號識別。起始信號結(jié)束信號SDASCLSPS從器件地址R/W…第一字節(jié)
發(fā)送起始信號后傳送的第一字節(jié)數(shù)據(jù)具有特別的意義,其中前七位為從機地址,最后一位為讀寫方向位(0表示寫,1表示讀)??偩€時序4總線時序
I2C總線數(shù)據(jù)傳送時,每傳送一個字節(jié)數(shù)據(jù)后都必須有應(yīng)答信號(A)。主控器接收數(shù)據(jù)時,如果要結(jié)束通信時,將在停止位之前發(fā)送非應(yīng)答信號()。SDASCL應(yīng)答信號非應(yīng)答信號AA4.13I2C接口5I2C總線規(guī)范——傳輸協(xié)議主機發(fā)送數(shù)據(jù)到從機主機從機主機發(fā)送起始信號,開始數(shù)據(jù)傳輸對從機進行尋址,同時R/W=0發(fā)送應(yīng)答信號發(fā)送1字節(jié)數(shù)據(jù)發(fā)送應(yīng)答信號發(fā)送1字節(jié)數(shù)據(jù)發(fā)送停止信號,結(jié)束數(shù)據(jù)通信6I2C總線規(guī)范——傳輸協(xié)議主機讀取從機數(shù)據(jù)主機從機發(fā)送停止信號,結(jié)束數(shù)據(jù)通信主機發(fā)送起始信號,開始數(shù)據(jù)傳輸對從機進行尋址,同時R/W=1發(fā)送應(yīng)答信號發(fā)送1字節(jié)數(shù)據(jù)發(fā)送應(yīng)答信號發(fā)送1字節(jié)數(shù)據(jù)發(fā)送應(yīng)答信號發(fā)送非應(yīng)答信號7復(fù)合格式發(fā)送停止信號,結(jié)束數(shù)據(jù)通信再次發(fā)送起始信號對從機進行尋址,同時R/W=1發(fā)送應(yīng)答信號發(fā)送應(yīng)答信號發(fā)送1字節(jié)數(shù)據(jù)發(fā)送應(yīng)答信號發(fā)送非應(yīng)答信號主機發(fā)送起始信號,開始數(shù)據(jù)傳輸對從機進行尋址,同時R/W=0發(fā)送1字節(jié)數(shù)據(jù)主機從機發(fā)送應(yīng)答信號發(fā)送應(yīng)答信號發(fā)送應(yīng)答信號發(fā)送1字節(jié)數(shù)據(jù)發(fā)送1字節(jié)數(shù)據(jù)84.13I2C接口寄存器描述I2C接口包含7個寄存器。名稱描述訪問復(fù)位值地址I2CONSETI2C控制置位寄存器讀/置位00xE001C000I2STATI2C狀態(tài)寄存器只讀0xF80xE001C004I2DATI2C數(shù)據(jù)寄存器讀/寫00xE001C008I2ADRI2C從地址寄存器讀/寫00xE001C00CI2SCLHSCL占空比寄存器高半字讀/寫0x040xE001C010I2SCLLSCL占空比寄存器低半字讀/寫0x040xE001C014I2CONCLRI2C控制清零寄存器只清零NA0xE001C0189寄存器描述——I2C控制置位寄存器
I2CONSET寄存器用于置位I2C通信的相關(guān)標志位,該寄存器只能對某位置位,而不能清零,清零通過I2CONCLR寄存器完成。位功能描述復(fù)位值1:0保留用戶程序不要向這些位寫入1NA2AA應(yīng)答標志03SII2C中斷標志04STO停止標志05STA起始標志06I2ENI2C接口使能07保留用戶程序不要向該位寫入1NA10寄存器描述——I2C控制清零寄存器
I2CONCLR寄存器與I2CONSET寄存器的功能相反,它用于清零I2C通信的相關(guān)標志位,該寄存器只能對某位清零,而不能置位。位功能描述復(fù)位值1:0保留用戶程序不要向這些位寫入1NA2AA應(yīng)答標志NA3SII2C中斷標志NA4STO停止標志NA5STA起始標志NA6I2ENI2C接口使能NA7保留用戶程序不要向該位寫入1NA11寄存器描述——I2C狀態(tài)寄存器
I2STAT寄存器包含了I2C接口的狀態(tài)代碼,它是一個只讀寄存器。一共有26種可能存在的狀態(tài)代碼。當代碼為0xF8時,無可用的相關(guān)信息,SI位不會置位。所有其它25種狀態(tài)代碼都對應(yīng)一個已定義的I2C狀態(tài)。當進入其中一種狀態(tài)時,SI位將置位。
I2C處理程序就是根據(jù)該寄存器反映的狀態(tài)來進行相應(yīng)的處理。位功能描述復(fù)位值2:0狀態(tài)這3個位總是為007:3狀態(tài)狀態(tài)位112寄存器描述——I2C數(shù)據(jù)寄存器
I2DAT寄存器包含要發(fā)送或剛接收的數(shù)據(jù)。當它沒有處理字節(jié)的移位時,CPU可對其進行讀寫。該寄存器只能在SI置位時訪問。在SI置位期間,I2DAT中的數(shù)據(jù)保持穩(wěn)定。I2DAT中的數(shù)據(jù)移位總是從右至左進行:第一個發(fā)送的位是MSB(位7),在接收字節(jié)時,第一個接收到的位存放在I2DAT的MSB。位功能描述復(fù)位值7:0數(shù)據(jù)發(fā)送/接收數(shù)據(jù)位013寄存器描述——I2C從地址寄存器
I2ADR寄存器只能在I2C設(shè)置為從模式時才能使用。在主模式中,該寄存器無效。I2ADR的LSB為通用調(diào)用位。當該位置位時,通用調(diào)用位(0x00)被識別(即可以對廣播地址0x00作出響應(yīng))。
位功能描述復(fù)位值0GC通用調(diào)用位07:1地址從模式地址014寄存器描述——I2C占空比寄存器
I2SCLH、I2SCLL寄存器用于控制I2C通信的波特率。其中I2SCLH定義SCL高電平所保持的PCLK周期數(shù),而I2SCLL定義SCL低電平所保持的PCLK周期數(shù)。那么位頻率(即總線速率)由下面的公式得出:位頻率=Fpclk/(I2SCLH+I2SCLL)寄存器功能描述復(fù)位值I2SCLH計數(shù)值SCL高電平周期占用PCLK周期數(shù)0x04I2SCLL計數(shù)值SCL低電平周期占用PCLK周期數(shù)0x04I2SCLLI2SCLH154.13I2C接口使用I2C接口的注意要點I2C接口的引腳為開漏輸出,必須在I2C總線上接上拉電阻。通信速率越快,電阻值越小;總線上各器件的地址不能沖突;編程時需要仔細處理每個狀態(tài),注意各狀態(tài)之間的轉(zhuǎn)移關(guān)系。164.13I2C接口I2C應(yīng)用示例LPC2000對于I2C通信的處理是基于狀態(tài)標志進行的,不同的模式之間具有相通的分析方法,這里僅介紹常用的主發(fā)送和主接收模式。17I2C應(yīng)用示例——主模式設(shè)置設(shè)置引腳連接模塊(PINSEL0)設(shè)置通信波特率(I2SCLH、I2SCLL)使能主I2C(I2CONSET)設(shè)置中斷向量(VICxxx)主模式初始化流程18設(shè)置引腳連接模塊(PINSEL0)設(shè)置通信波特率(I2SCLH、I2SCLL)使能主I2C(I2CONSET)設(shè)置中斷向量(VICxxx)主模式初始化流程設(shè)置引腳連接模塊(PINSEL0)設(shè)置通信波特率(I2SCLH、I2SCLL)使能主I2C(I2CONSET)設(shè)置中斷向量(VICxxx)主模式初始化流程VoidI2C_init(uint32fi2c){if(fi2c>400000)fi2c=400000;PINSEL0=(PINSEL0&0xFFFFFF0F)|0x50;I2SCLH=(Fpclk/fi2c+1)/2;I2SCLL=(Fpclk/fi2c)/2;I2CONCLR=0x2C;I2CONSET=0x40;VICIntSelect=0x00000000;VICVectCntl0=0x29;VICVectAddr0=(int)IRQ_I2C;VICIntEnable=0x0200;}初始化代碼傳入?yún)?shù)為I2C時鐘頻率過濾傳入?yún)?shù),最高400K時鐘頻率I2C應(yīng)用示例——主模式設(shè)置19
LPC2000在該模式下作為主控器,向從機發(fā)送數(shù)據(jù)。數(shù)據(jù)流向如下圖所示:LPC2000(主)I2C應(yīng)用示例——主機發(fā)送20主模式數(shù)據(jù)發(fā)送的時序格式S從器件地址WA數(shù)據(jù)A數(shù)據(jù)…A/AP起始位,用于指示傳輸?shù)拈_始。結(jié)束位,用于指示傳輸?shù)慕Y(jié)束。第一字節(jié)的前七位包含接收器件的從地址,第8位表示為寫操作。每發(fā)送完一個字節(jié)數(shù)據(jù),接收數(shù)據(jù)的器件就發(fā)送一個應(yīng)答位每發(fā)送完一個字節(jié)數(shù)據(jù),接收數(shù)據(jù)的器件就發(fā)送一個應(yīng)答位每發(fā)送完一個字節(jié)數(shù)據(jù),接收數(shù)據(jù)的器件就發(fā)送一個應(yīng)答位每發(fā)送完一個字節(jié)數(shù)據(jù),接收數(shù)據(jù)的器件就發(fā)送一個應(yīng)答位I2C應(yīng)用示例——主機發(fā)送21主模式數(shù)據(jù)發(fā)送的時序格式S從器件地址WA數(shù)據(jù)A數(shù)據(jù)…A/AP
(1)(2)(3)(3)(4)通過軟件置位STA進入I2C主發(fā)送模式,I2C邏輯在總線空閑后立即發(fā)送一個起始信號;在起始信號發(fā)送結(jié)束后,SI置位。將從機地址和寫操作位裝入I2DAT,然后清零SI,將第一字節(jié)數(shù)據(jù)發(fā)出;當從機地址和W位發(fā)送結(jié)束并收到應(yīng)答位(A)后,SI位再次置位。此時將要發(fā)送的數(shù)據(jù)裝入I2DAT,開始發(fā)送數(shù)據(jù);在數(shù)據(jù)正確發(fā)送后,SI置位。此時如果要結(jié)束本次操作,那么置位STO位,發(fā)送結(jié)束信號。I2C應(yīng)用示例——主機發(fā)送22主模式數(shù)據(jù)發(fā)送的時序格式S從器件地址WA數(shù)據(jù)A數(shù)據(jù)…A/AP0x080x180x280x280x30正確的狀態(tài)號
在通信過程中,隨著通信階段的不同,I2STAT寄存器中的狀態(tài)號也相應(yīng)的變化,并引起中斷。在中斷服務(wù)程序中,根據(jù)當前的狀態(tài)號來決定下一步的處理。如果當前的狀態(tài)號不符合正常操作的流程,那么就要作出相應(yīng)的錯誤處理,比如重新啟動總線等。0x200x300x38錯誤的狀態(tài)號I2C應(yīng)用示例——主機發(fā)送23你要發(fā)送數(shù)據(jù)調(diào)用函數(shù)ISendStr()ISendStr()I2C中斷IRQ_I2C()設(shè)置I2C中斷處理所需的全局變量(如從機地址)清除STA、SI和AA標志位置位STA,啟動I2C總線讀取I2C操作完成標志I2C_end判斷操作是否正確,然后返回I2C_end=1?YN讀取I2C狀態(tài)碼(即I2CSTAT)根據(jù)狀態(tài)碼進行相應(yīng)的處理(狀態(tài)碼08H、18H、20H、28H、38H)按全局變量的設(shè)置進行數(shù)據(jù)操作及設(shè)置軟件標志清除中斷邏輯,然后中斷返回主模式數(shù)據(jù)發(fā)送流程圖24
LPC2000在該模式下作為主控器,接收從機發(fā)出的數(shù)據(jù)。數(shù)據(jù)流向如下圖所示:LPC2000(主)I2C應(yīng)用示例——主機接收25S從器件地址RA數(shù)據(jù)A數(shù)據(jù)…AP主接收模式:主模式數(shù)據(jù)接收的時序格式起始位,用于指示傳輸?shù)拈_始。結(jié)束位,用于指示傳輸?shù)慕Y(jié)束。第一字節(jié)的前七位包含接收器件的從地址,第8位為1,表示讀操作。每接收完一個字節(jié)數(shù)據(jù),就發(fā)送一個應(yīng)答位。在接收最后一個字節(jié)數(shù)據(jù)后,發(fā)送非應(yīng)答位,通知從機停止發(fā)送數(shù)據(jù)。I2C應(yīng)用示例——主機接收26主模式數(shù)據(jù)接收的時序格式
(1)(2)(3)(4)(4)通過軟件置位STA進入I2C主發(fā)送模式,I2C邏輯在總線空閑后立即發(fā)送一個起始信號;在起始信號發(fā)送結(jié)束后,SI置位。將從機地址和讀操作位裝入I2DAT,然后清零SI,將第一字節(jié)數(shù)據(jù)發(fā)出;當從機地址和R位發(fā)送結(jié)束并收到應(yīng)答位(A)后,SI位再次置位。此時設(shè)置AA位,然后清零SI位,開始接收數(shù)據(jù);每接收到一字節(jié)數(shù)據(jù),SI位再次置位,此時可以再次接收數(shù)據(jù),或者置位STO結(jié)束總線。S從器件地址RA數(shù)據(jù)A數(shù)據(jù)…AP主接收模式:I2C應(yīng)用示例——主機接收270x080x400x500x500x58正確的狀態(tài)號
在通信過程中,隨著通信階段的不同,I2STAT寄存器中的狀態(tài)號也相應(yīng)的變化,并引起中斷。在中斷服務(wù)程序中,根據(jù)當前的狀態(tài)號來決定下一步的處理。如果當前的狀態(tài)號不符合正常操作的流程,那么就要作出相應(yīng)的錯誤處理,比如重新啟動總線等。0x380x580x48錯誤的狀態(tài)號主模式數(shù)據(jù)接收的時序格式S從器件地址RA數(shù)據(jù)A數(shù)據(jù)…AP主接收模式:I2C應(yīng)用示例——主機接收28你要讀取數(shù)據(jù)調(diào)用函數(shù)IRcvStr()IRcvStr()I2C中斷IRQ_I2C()設(shè)置I2C中斷處理所需的全局變量(如從機地址)清除STA、SI和AA標志位置位STA,啟動I2C總線讀取I2C操作完成標志I2C_end判斷操作是否正確,然后返回I2C_end=1?YN讀取I2C狀態(tài)碼(即I2CSTAT)根據(jù)狀態(tài)碼進行相應(yīng)的處理(狀態(tài)碼08H、38H、40H、48H、50H、58H)按全局變量的設(shè)置進行數(shù)據(jù)操作及設(shè)置軟件標志清除中斷邏輯,然后中斷返回主模式數(shù)據(jù)接收流程圖29I2C中斷I2C與VIC的關(guān)系I2C0、I2C1分別位于VIC的通道9和通道19。中斷使能寄存器VICIntEnable的Bit9和Bit19分別用來控制通道9和通道19的使能。通道9I2C0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[9]VICIntEnable[9]IRQFIQ通道19I2C1VICIntSelect[19]VICIntEnable[19]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配30I2C中斷I2C0與VIC的關(guān)系當VICIntEnable[9]=0時,通道9中斷禁止;通道9I2C0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[9]VICIntEnable[9]=0IRQFIQ通道19I2C1VICIntSelect[19]VICIntEnable[19]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配31I2C中斷I2C0與VIC的關(guān)系當VICIntEnable[9]=0時,通道9中斷禁止;通道9I2C0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[9]VICIntEnable[9]=1IRQFIQ通道19I2C1VICIntSelect[19]VICIntEnable[19]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配當VICIntEnable[9]=1時,通道9中斷使能。32I2C中斷I2C1與VIC的關(guān)系當VICIntEnable[19]=0時,通道19中斷禁止;通道9I2C0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[9]VICIntEnable[9]=0IRQFIQ通道19I2C1VICIntSelect[19]VICIntEnable[19]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配33I2C中斷I2C1與VIC的關(guān)系當VICIntEnable[19]=0時,通道19中斷禁止;當VICIntEnable[19]=1時,通道19中斷使能。通道9I2C0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[9]VICIntEnable[9]=0IRQFIQ通道19I2C1VICIntSelect[19]VICIntEnable[19]=1IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配341.LPC2000系列簡介2.引腳描述3.存儲器尋址4.系統(tǒng)控制模塊5.存儲器加速模塊(MAM)6.外部存儲器控制器(EMC)7.引腳連接模塊8.GPIOLPC2000系列ARM硬件結(jié)構(gòu)9.向量中斷控制器10.外部中斷輸入11.定時器0和定時器112.SPI接口13.I2C接口14.UART(0、1)15.A/D轉(zhuǎn)換器16.看門狗17.脈寬調(diào)制器(PWM)18.實時時鐘354.14UART(0、1)特性LPC2000系列微控制器具有兩個功能強大的UART,其特性如下:
16字節(jié)接收FIFO和16字節(jié)發(fā)送FIFO;寄存器位置符合16C550工業(yè)標準;接收FIFO觸發(fā)點可設(shè)置為1、4、8或14字節(jié);內(nèi)置波特率發(fā)生器;
UART1含有標準調(diào)制解調(diào)器接口信號。36應(yīng)用示例LPC2000的I/O電壓為3.3V,連接時須注意電平的匹配。LPC2000其它通信設(shè)備TxD0RxD0TxD0RxD0與PC機相連時,由于PC機串口是RS232電平,所以連接時需要使用RS232轉(zhuǎn)換器。LPC2000PC機串口232電平轉(zhuǎn)換TxD0RxD0TxD0RxD0RxD1RTSCTSDSR1DTR1TxD1LPC2000ModemTxDRxDDCDRI1RTSCTSDSR1DTR1DCD1RI1RS232電平轉(zhuǎn)換當使用Modem接口時,需要一個RS232轉(zhuǎn)換器將信號轉(zhuǎn)換為RS232電平后,才能與Modem連接。37移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDn除數(shù)鎖存寄存器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接口UART結(jié)構(gòu)圖38VPB總線AHB-VPB橋ARM7UARTn發(fā)送單元TxDn移位寄存器UnTSR發(fā)送緩沖寄存器UnTHRAHB總線ARM7AHB總線UARTn發(fā)送單元TxDn移位寄存器UnTSR發(fā)送緩沖寄存器UnTHRVPB總線AHB-VPB橋CPUUnTSRTXDUnTHRUnTHR描述復(fù)位值7:0發(fā)送器保持寄存器。寫入該寄存器的值保存到發(fā)送FIFO中,當該字節(jié)到達FIFO底部時,它將被送入發(fā)送移位寄存器(UnTSR)進行發(fā)送。未定義UART發(fā)送單元39UART0、UART1各含有1個16字節(jié)的發(fā)送FIFO緩沖區(qū)。UnTHR是UARTn發(fā)送FIFO的最高字節(jié)。UART的發(fā)送FIFO是一直使能的。發(fā)送FIFOUnTHRUnTSRUART發(fā)送FIFO緩沖區(qū)40VPB總線AHB-VPB橋ARM7AHB總線移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnVPB總線AHB-VPB橋移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnARM7AHB總線RXDUnRBRCPUUnRSRUnRBR描述復(fù)位值7:0接收緩存寄存器,它包含了接收FIFO中最早接收到的字節(jié)未定義UART接收模塊41UART0、UART1各含有1個16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。UARTFIFO控制寄存器位76[5:3]210功能Rx觸發(fā)點設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCRUART接收FIFO緩沖區(qū)42UART線狀態(tài)寄存器位76543210功能RXFETEMTTHREBIFEPEOERDRUART線狀態(tài)寄存器——UnLSR
線狀態(tài)寄存器(UnLSR)為只讀寄存器,它提供UARTn發(fā)送和接收模塊的狀態(tài)信息。4.14UART(0、1)43UART波特率發(fā)生器UART0和UART1各含有一個單獨的波特率發(fā)生器,兩者的功能相同,且相互獨立。4.14UART(0、1)名稱描述復(fù)位值UnDLL[7:0]除數(shù)鎖存寄存器低字節(jié)兩個寄存器一起構(gòu)成一個16位的除數(shù),決定UARTn的波特率。未定義UnDLM[7:0]除數(shù)鎖存寄存器高字節(jié)
這兩個寄存器決定波特率時鐘的頻率,而波特率時鐘必須是波特率的16倍。波特率計算公式如下:BaudRate=FPCLK/([U0DLM,U0DLL]×16)44Modem控制寄存器——U1MCR位功能功能描述0DTR控制選擇Modem輸出引腳DTR。該位在回寫模式激活時讀出為0。1RTS控制選擇Modem輸出引腳RTS。該位在回寫模式激活時讀出為0。3:2保留用戶軟件不要向該位寫入14回寫模式0:禁止modem回寫模式1:使能modem回寫模式modem回寫模式提供了一個執(zhí)行回寫測試的診斷機制。7:5保留用戶軟件不要向該位寫入1
該寄存器使能Modem的回寫模式,并控制Modem的輸出信號。4.14UART(0、1)454.14UART(0、1)回寫模式
在Modem回寫模式下,發(fā)送器輸出的串行數(shù)據(jù)在內(nèi)部連接到接收器的串行輸入端。輸入腳RxD1對回寫模式無影響,輸出腳TxD1保持總為1的狀態(tài)。4個Modem輸入(CTS,DSR,RI和DCD)與外部斷開。此時,U1MSR的高4位分別由U1MCR的低4位驅(qū)動。DSRCTSRIDCDDTRRTSTXDRXDModem接口芯片引腳DSRCTSRIDCDDTRRTSTXDRXDU1MCRBit0Bit1Bit2Bit346位功能功能描述0DeltaCTS檢測到CTS狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。1DeltaDSR檢測到DSR狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。2后沿RI檢測到RI狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。3DeltaDCD檢測到DCD狀態(tài)發(fā)生變化時,該位置位。讀取U1MSR時清零。4CTS反映輸入信號CTS的補碼?;貙懩J较略撐贿B接U1MCR的bit1。5DSR反映輸入信號DSR的補碼。回寫模式下該位連接U1MCR的bit0。6RI反映輸入信號RI的補碼?;貙懩J较略撐贿B接U1MCR的bit2。7DCD反映輸入信號DCD的補碼?;貙懩J较略撐贿B接U1MCR的bit1。Modem狀態(tài)寄存器
該寄存器為只讀,它反映Modem輸入信號的狀態(tài)信息。需要注意的是,Mdoem信號對UART1的操作沒有直接影響,Modem信號的操作是通過軟件來實現(xiàn)的。4.14UART(0、1)474.14UART(0、1)中斷中斷使能寄存器UnIER中斷標志寄存器UnIIRUART0中斷源UART0發(fā)送單元UART0接收單元UART1中斷源UART1發(fā)送單元UART1接收單元Modem模塊中斷接口
UART0和UART1的中斷接口包含中斷使能寄存器(UnIER)和中斷標識寄存器(UnIIR)。484.14UART(0、1)中斷使能寄存器UnIER描述復(fù)位值0RBR中斷使能。1:使能RDA中斷;0:禁止RDA中斷。01THRE中斷使能。1:使能THRE中斷;0:禁止THRE中斷。02Rx線狀態(tài)中斷使能。1:使能Rx線狀態(tài)中斷;0:禁止Rx線狀態(tài)中斷;該中斷狀態(tài)可從UnLSR[4:1]讀出。03Modem中斷使能。
1:禁止Modem中斷;0:禁止Rx線狀態(tài)中斷;該中斷狀態(tài)可從U1MSR[3:0]讀取。注:只有UART1具有。07:4保留,用戶軟件不要向這些位寫入1。未定義UnIER可以控制UARTn的4個中斷源。其中RBR中斷使能包括兩個中斷,一個是接收數(shù)據(jù)可用(RDA)中斷,一個是接收超時中斷(CTI)。稍后將對各中斷源作詳細介紹。494.14UART(0、1)中斷標識寄存器UnIIR描述復(fù)位值0中斷掛起。1:沒有掛起的中斷;0:至少有一個中斷被掛起。03:1中斷標識。這3位表示了對應(yīng)于UARTnRxFIFO的中斷。未列出的其它組合作為保留值。011:1.接收線狀態(tài)中斷(RLS)0010:2a.接收數(shù)據(jù)可用中斷(RDA)0110:2b.字符超時指示(CTI)001:3.發(fā)送中斷(THRE)000:4.Modem中斷注:只有UART1具有7:3保留,用戶軟件不要向這些位寫入1。未定義UnIIR提供狀態(tài)代碼用于指示一個掛起中斷的中斷源和優(yōu)先級。在訪問UnIIR過程中,中斷被凍結(jié)。如果在訪問UnIIR時產(chǎn)生了中斷,該中斷將被記錄,在下次訪問UnIIR時可以讀出,避免了中斷的丟失。50VIC中斷控制器ARM7TDMI內(nèi)核Modem中斷(UnIIR[3:1]=001)UnIERbit2bit1bit0bit3RLS中斷(UnIIR[3:1]=011)RDA中斷(UnIIR[3:1]=010)CTI中斷(UnIIR[3:1]=110)THRE中斷(UnIIR[3:1]=001)注意:只有UART1才有Modem中斷。4.14UART(0、1)UART中斷示意圖51優(yōu)先級最高第二第二第三RLS中斷RDA中斷CTI中斷THRE中斷VIC中斷控制器ARM7TDMI內(nèi)核Modem中斷第四UnIERbit2bit1bit0bit3注意:只有UART1才有Modem中斷。4.14UART(0、1)UART中斷優(yōu)先級52
RLS中斷:該中斷為最高優(yōu)先級。它在UARTn發(fā)生下面的錯誤時產(chǎn)生中斷:1、溢出錯誤(OE)2、奇偶錯誤(PE)3、幀錯誤(FE)4、間隔中斷(BI) 通過查看UnLSR[4:1]可以了解到產(chǎn)生該中斷的錯誤條件。讀取UnLSR時清除該中斷;4.14UART(0、1)中斷源說明53RDA中斷:該中斷與CTI中斷并列為第二優(yōu)先級。當接收的有效數(shù)據(jù)到達接收FIFO設(shè)置寄存器(UnFCR)中設(shè)置的觸發(fā)點時,RDA被激活。當接收FIFO中的有效數(shù)據(jù)少于觸發(fā)點時,RDA復(fù)位;1.移位寄存器(UnRSR)從RxDn引腳接收串行數(shù)據(jù)后,送入接收FIFO中;2.當接收FIFO中的有效數(shù)據(jù)數(shù)量到達預(yù)定的觸發(fā)點時,置位RDA中斷;3.從UnRBR寄存器中讀取FIFO中最早到達的數(shù)據(jù),當FIFO中的有效數(shù)據(jù)小于預(yù)定觸發(fā)點時,清零RDA中斷;接收FIFO12345679101112131415168觸發(fā)點設(shè)置=8UnRBRUnRSRRxDnUnIIR[3:1]xxxUnIIR[0]10100xxx1DATA中斷源說明54CTI中斷:當接收FIFO中的有效數(shù)據(jù)少于預(yù)定的觸發(fā)點數(shù)量(至少有一個字節(jié))時,如果在一定時間內(nèi)仍然沒有接收到新的數(shù)據(jù),那將觸發(fā)該中斷。這個時間為:3.5~4.5個字節(jié)所需要的時間。注:對接收FIFO的任何操作都會清零該中斷標志。
接收FIFO12345679101112131415168觸發(fā)點設(shè)置=8UnRBR1.移位寄存器(UnRSR)從RxDn引腳接收串行數(shù)據(jù)后,送入接收FIFO中;2.當接收FIFO中的有效數(shù)據(jù)少于觸發(fā)個數(shù),但至少有一個時,如果長時間沒有數(shù)據(jù)到達,將觸發(fā)CTI中斷;3.從UnRBR中讀取接收FIFO中的數(shù)據(jù),或者有新的數(shù)據(jù)送入接收FIFO,都將清零CTI中斷;UnRSRDATARxDnUnIIR[3:1]xxxUnIIR[0]11100xxx1中斷源說明55接收FIFO12345679101112131415168觸發(fā)點設(shè)置=8UnRBR說明:“3.5~4.5個字節(jié)的時間”,其意思是在串口當前的波特率下,發(fā)送3.5~4.5個字節(jié)所需要的時間;UnRSRDATARxDnUnIIR[3:1]xxxUnIIR[0]11100xxx1注意:當接收FIFO中存在多個數(shù)據(jù),從UnRBR讀取數(shù)據(jù),但是沒有讀完所有數(shù)據(jù),那么在經(jīng)過3.5~4.5個字節(jié)的時間后將觸發(fā)CTI中斷;CTI中斷:當接收FIFO中的有效數(shù)據(jù)少于預(yù)定的觸發(fā)點數(shù)量(至少有一個字節(jié))時,如果在一定時間內(nèi)仍然沒有接收到新的數(shù)據(jù),那將觸發(fā)該中斷。這個時間為:3.5~4.5個字節(jié)所需要的時間。注:對接收FIFO的任何操作都會清零該中斷標志。
中斷源說明5612345679101112131415168UnRBRU0TSRTxDnUnIIR[3:1]xxxUnIIR[0]1THRE中斷:該中斷為第三優(yōu)先級。當發(fā)送FIFO為空并且滿足一定的條件時,該中斷將被觸發(fā)。這些條件是:發(fā)送FIFO1.系統(tǒng)啟動時,雖然發(fā)送FIFO為空,但不會產(chǎn)生THRE中斷。DATA1100UnTSR2.在上一次發(fā)生THRE中斷后,向發(fā)送FIFO中寫入1個字節(jié)數(shù)據(jù),將在延時一個字節(jié)加上一個停止位后發(fā)生THRE中斷。
這是因為:如果發(fā)送移位寄存器為空,那么寫入發(fā)送FIFO的數(shù)據(jù)將直接進入發(fā)送移位寄存器;
此時發(fā)送FIFO仍然為空,如果立即產(chǎn)生THRE中斷,就會影響緊接著要寫入發(fā)送FIFO的數(shù)據(jù);
所以在發(fā)送完該字節(jié)以及一個停止位后,才產(chǎn)生THRE中斷;3.如果在發(fā)送FIFO中有過兩個字節(jié)以上的數(shù)據(jù),但是現(xiàn)在發(fā)送FIFO為空時,將立即觸發(fā)THRE中斷。當THRE中斷為當前有效的最高優(yōu)先級中斷時,往UnTHR寫數(shù)據(jù),或者對UnIIR的讀操作,將使THRE中斷復(fù)位。中斷源說明57除數(shù)鎖存寄存器UnDLL、UnDLMUARTn波特率發(fā)生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)中斷中斷使能寄存器UnIERMODEMModem控制寄存器U1MCRVPB總線4.14UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器584.14UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器寄存器名稱功能UnLCR設(shè)置UARTn的通信格式。UnFCR設(shè)置UARTn的接收FIFO緩沖區(qū)。UnDLL、UnDLM設(shè)置UARTn的通信波特率。UnIER設(shè)置UARTn的中斷。U1MCRModem接口設(shè)置(只有UART1具有)。594.14UART(0、1)UART設(shè)置
使用UART前需要設(shè)置的寄存器——UnLCR,設(shè)置UART通信字符長度、停止位個數(shù)、奇偶校驗位等參數(shù)。UART控制寄存器位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長60UART寄存器地址訪問方式UART0U0RBR0xE000C000DLAB=0,對地址:0xE000C000進行讀訪問U0THRDLAB=0,對地址:0xE000C000進行寫訪問U0DLLDLAB=1,對地址:0xE000C000進行訪問U0IER0xE000C004DLAB=0,對地址:0xE000C004進行訪問U0DLMDLAB=1,對地址:0xE000C004進行訪問UART1U1RBR0xE0010000DLAB=0,對地址:0xE0010000進行讀訪問U1THRDLAB=0,對地址:0xE0010000進行寫訪問U1DLLDLAB=1,對地址:0xE0010000進行訪問U1IER0xE0010004DLAB=0,對地址:0xE0010004進行訪問U1DLMDLAB=1,對地址:0xE0010004進行訪問UART——特殊寄存器位置相同的寄存器61UART應(yīng)用示例——操作流程設(shè)置引腳連接模塊將對應(yīng)IO連接到UARTn設(shè)置串口波特率設(shè)置串口工作模式發(fā)送或接收數(shù)據(jù)檢查串口狀態(tài)字或等待串口中斷62UART應(yīng)用示例——初始化代碼UART0初始化代碼:#defineUART_BPS115200VoidUART0_Ini(void){uint16Fdiv;PINSEL0=0x00000005;U0LCR=0x83;Fdiv=(Fpclk/16)/UART_BPS;U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;}定義表示波特率的宏,方便修改設(shè)置引腳連接模塊置位除數(shù)鎖存位根據(jù)波特率計算分頻值設(shè)置除數(shù)寄存器(除數(shù)鎖存訪問位必須置位)清除除數(shù)鎖存位,并設(shè)置工作模式63UART應(yīng)用示例——初始化代碼UART0初始化代碼:#defineUART_BPS115200VoidUART0_Ini(void){uint16Fdiv;PINSEL0=0x00000005;U0LCR=0x83;Fdiv=(Fpclk/16)/UART_BPS;U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;}設(shè)置引腳連接模塊將對應(yīng)IO連接到UART0設(shè)置串口波特率設(shè)置串口工作模式發(fā)送或接收數(shù)據(jù)檢查串口狀態(tài)字或等待串口中斷64UART應(yīng)用示例——收發(fā)數(shù)據(jù)voidUART0_SendByte(uint8data){U0THR=data;while((U0LSR&0x40)==0);}uint8UART0_RcvByte(void){uint8rcv_data;while((U0LSR&0x01)==0);rcv_data=U0RBR;return(rcv_data);}查詢方式發(fā)送一字節(jié)數(shù)據(jù):查詢方式接收一字節(jié)數(shù)據(jù):將要發(fā)送的一字節(jié)數(shù)據(jù)寫入U0THR等待數(shù)據(jù)發(fā)送完畢等待數(shù)據(jù)到達從U0RBR中讀出接收的數(shù)據(jù)返回接收的數(shù)據(jù)65UART中斷UART與VIC的關(guān)系UART0、UART1分別位于VIC的通道6和通道7。中斷使能寄存器VICIntEnable的Bit6和Bit7分別用來控制通道6和通道7的使能。通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[6]VICIntEnable[6]IRQFIQ通道7UART1VICIntSelect[7]VICIntEnable[7]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配66UART中斷UART0與VIC的關(guān)系當VICIntEnable[6]=0時,通道6中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[6]VICIntEnable[6]=0IRQFIQ通道7UART1VICIntSelect[7]VICIntEnable[7]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配67UART中斷UART0與VIC的關(guān)系當VICIntEnable[6]=0時,通道6中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[6]VICIntEnable[6]=1IRQFIQ通道7UART1VICIntSelect[7]VICIntEnable[7]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配當VICIntEnable[6]=1時,通道6中斷使能。68UART中斷UART1與VIC的關(guān)系當VICIntEnable[7]=0時,通道7中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[6]VICIntEnable[6]=0IRQFIQ通道7UART1VICIntSelect[7]VICIntEnable[7]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配69UART中斷UART1與VIC的關(guān)系當VICIntEnable[7]=0時,通道7中斷禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[6]VICIntEnable[6]=0IRQFIQ通道7UART1VICIntSelect[7]VICIntEnable[7]=1IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配當VICIntEnable[7]=1時,通道7中斷使能。70UART中斷UART中斷LPC2000系列ARMUART中斷分為四類:
接收中斷發(fā)送中斷(THRE)接收狀態(tài)中斷(RLS)
Modem中斷(Modem)
接收超時中斷(CTI)接收數(shù)據(jù)可用中斷(RDA)71UART中斷UART中斷示意圖UART中斷使能寄存器UnIERUART中斷標志寄存器UnIIR[3:1]Bit0:RBR中斷使能接收中斷010:RDA110:CTIBit1:THRE中斷使能發(fā)送中斷001:THREBit2:接收狀態(tài)中斷使能接收狀態(tài)中斷011:RLSBit3:Modem狀態(tài)中斷使能Modem中斷000:Modem注意:只有UART1具有Modem中斷。72UART中斷UART中斷示意圖注意:只有UART1具有Modem中斷。UART中斷使能寄存器UnIERUART中斷標志寄存器UnIIR[3:1]Bit0:RBR中斷使能接收中斷010:RDA110:CTIBit1:THRE中斷使能001:THREBit2:接收狀態(tài)中斷使能011:RLSBit3:Modem狀態(tài)中斷使能000:Modem1111發(fā)送中斷接收狀態(tài)中斷Modem中斷中斷使能位為1時,對應(yīng)的中斷使能73UART中斷總結(jié)接收中斷——數(shù)據(jù)可用中斷(RDA)LPC2000系列ARMUART接口具有16字節(jié)的接收FIFO,接收觸發(fā)點可以設(shè)置為1、4、8、14字節(jié),當接收到的字節(jié)數(shù)達到接收觸發(fā)點時,便會觸發(fā)中斷。UnRBR接收移位寄存器觸發(fā)點設(shè)置=8……接收FIFO128916觸發(fā)RDA中斷74UART中斷總結(jié)接收中斷——接收超時中斷(CTI)
當接收FIFO中的有效數(shù)據(jù)個數(shù)少于觸發(fā)個數(shù)時(注:接收FIFO中至少有一個字節(jié)),如果在3.5到4.5個字符的時間內(nèi),沒有收到其它數(shù)據(jù),將觸發(fā)CTI中斷。UnRBR接收移位寄存器觸發(fā)點設(shè)置=8……接收FIFO128916觸發(fā)CTI中斷75UART中斷總結(jié)發(fā)送中斷LPC2000系列ARMUART接口具有16字節(jié)的發(fā)送FIFO,當發(fā)送FIFO由非空變?yōu)榭諘r,便會觸發(fā)“發(fā)送中斷”。發(fā)送移位寄存器UnTHR……接收FIFO128916觸發(fā)發(fā)送中斷注意:前面對“發(fā)送中斷”做了詳細的描述,在這里,為了描述方便,將發(fā)送中斷簡單表示成“發(fā)送FIFO由非空變?yōu)榭铡薄?6UART中斷總結(jié)接收狀態(tài)中斷
在UART接收數(shù)據(jù)時,如果出現(xiàn):溢出錯誤(OE)、奇偶錯誤(PE)、幀錯誤(FE)和間隔中斷(BI)中的任意一個錯誤時,都會觸發(fā)接收狀態(tài)中斷。+觸發(fā)接收狀態(tài)中斷溢出錯誤(OE)奇偶錯誤(PE)幀錯誤(FE)間隔中斷(BI)77UART中斷總結(jié)Modem中斷UART1接口具有Modem中斷,當引腳DCD、DSR或CTS上發(fā)生狀態(tài)變化時,都會觸發(fā)Modem中斷。此外,Modem輸入引腳RI上低到高電平的跳變也會產(chǎn)生一個Modem中斷。+觸發(fā)Modem中斷DCD引腳狀態(tài)發(fā)生變化DSR引腳狀態(tài)發(fā)生變化CTS引腳狀態(tài)發(fā)生變化RI引腳上升沿781.LPC2000系列簡介2.引腳描述3.存儲器尋址4.系統(tǒng)控制模塊5.存儲器加速模塊(MAM)6.外部存儲器控制器(EMC)7.引腳連接模塊8.GPIOLPC2000系列ARM硬件結(jié)構(gòu)9.向量中斷控制器10.外部中斷輸入11.定時器0和定時器112.SPI接口13.I2C接口14.UART(0、1)15.A/D轉(zhuǎn)換器16.看門狗17.脈寬調(diào)制器(PWM)18.實時時鐘794.15A/D轉(zhuǎn)換器特性LPC2114/2124具有一個AD轉(zhuǎn)換器,LPC2200系列具有兩個AD轉(zhuǎn)換器,它們具有如下特性:10位逐次逼近式模式轉(zhuǎn)換器;測量范圍:0~3.3V;10位轉(zhuǎn)換事件>=2.44us;可設(shè)置AD轉(zhuǎn)換觸發(fā)方式;具有掉電模式。804.15A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器描述A/D轉(zhuǎn)換器的基本時鐘由VPB時鐘提供??删幊谭诸l器可將時鐘調(diào)整至逐步逼近轉(zhuǎn)換所需的4.5MHz(最大)。如要要得到10位精度的結(jié)果,需要11個A/D轉(zhuǎn)換時鐘。
A/D轉(zhuǎn)換器的參考電壓來自V3A和VSSA引腳。814.15A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器描述引腳名稱類型引腳描述AIN7~AIN0輸入模擬輸入。A/D轉(zhuǎn)換器單元可分時測量這8個引腳上的輸入信號電壓。即使這些引腳設(shè)置為GPIO功能,仍可以使用A/D轉(zhuǎn)換器部件。V3A,VSSA電源模擬電源和地。它們分別與標稱的V3和VSSD的電壓相同,但為了降低噪聲和出錯幾率,兩者應(yīng)當隔離。轉(zhuǎn)換器的VrefP和VrefN信號在內(nèi)部與這兩個電源信號相連。A/D引腳描述824.15A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器內(nèi)部結(jié)構(gòu)…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…83A/D轉(zhuǎn)換器寄存器描述…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7……ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…名稱描述訪問復(fù)位值A(chǔ)DCRA/D控制寄存器。A/D轉(zhuǎn)換開始前,必須設(shè)置ADCR寄存器來選擇工作模式。讀寫0x0000001ADDRA/D數(shù)據(jù)寄存器。該寄存器包含ADC的結(jié)束標志位和10位的轉(zhuǎn)換結(jié)果(當結(jié)束標志位為1時,轉(zhuǎn)換結(jié)果才是有效的)。讀寫NA84A/D轉(zhuǎn)換器寄存器描述-控制寄存器…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELSEL:從AIN3~AIN0(LPC2114/2124)或AIN7~AIN0(LPC2212/2214)中選擇采樣和轉(zhuǎn)換輸入引腳。Bit0控制AIN0,bit1控制AIN1,依此類推。1:對應(yīng)輸入端被選中;0:對應(yīng)輸入端未選中;注意:軟件模式下只能置位其中一位,硬件模式下可以是任意組合。85…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSEL0123456700000000位值A(chǔ)IN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7A/D轉(zhuǎn)換器寄存器描述-控制寄存器86…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELCLKDIV:將VPB時鐘(PCLK)進行分頻,得到AD轉(zhuǎn)換時鐘。分頻后的時鐘必須小于或等于4.5MHz。通常將CLKDIV編程為允許的最小值,以獲得4.5MHz或稍低于4.5MHz的時鐘。A/D轉(zhuǎn)換器時鐘=PCLK/(CLKDIV+1)CLKDIV=(PCLK/AD轉(zhuǎn)換時鐘)-1A/D轉(zhuǎn)換器寄存器描述-控制寄存器87…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELBURST:BURST/軟件方式控制。當該位為0時,選擇軟件方式啟動AD轉(zhuǎn)換,需要11個時鐘才能完成。當該位為1時,選擇BURST(突發(fā))模式啟動AD轉(zhuǎn)換,所需時鐘數(shù)由CLK字段控制。
BURST模式下,對所有在SEL字段中置1的位對應(yīng)的輸入端進行轉(zhuǎn)換,首先轉(zhuǎn)換的是最低有效位。然后是更高的位。如此周而復(fù)始,直至該位清零。A/D轉(zhuǎn)換器寄存器描述-控制寄存器88…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSEL0123456700110110位值A(chǔ)IN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7首先轉(zhuǎn)換最低有效位再轉(zhuǎn)換更高的有效位AIN2AIN3AIN5AIN6A/D轉(zhuǎn)換器寄存器描述-控制寄存器89…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELCLKS:控制BURST模式下每次轉(zhuǎn)換需要使用的時鐘數(shù)和所得ADDR轉(zhuǎn)換結(jié)果的LS位中可確保精度的位的數(shù)目,CLKS可在11個時鐘(10位)~4個時鐘(3位)之間選擇:000=11個時鐘/10位,001=10個時鐘/9位,…111=4個時鐘/3位。A/D轉(zhuǎn)換器寄存器描述-控制寄存器90…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELPDN:控制AD部件是否工作。1:A/D轉(zhuǎn)換器處于正常工作模式; 0:A/D轉(zhuǎn)換器處于掉電模式;A/D轉(zhuǎn)換器寄存器描述-控制寄存器91…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELTEST1:0:器件測試控制位。
00:正常模式; 01:數(shù)字測試模式;
10:DAC測試模式; 11:一次轉(zhuǎn)換測試模式;A/D轉(zhuǎn)換器寄存器描述-控制寄存器92…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELSTART:該字段用于控制AD轉(zhuǎn)換的啟動方式,該字段只有在BURST為0時有效。000:不啟動; 001:立即啟動轉(zhuǎn)換; 010:P0.16引腳出現(xiàn)預(yù)置的電平時,啟動AD轉(zhuǎn)換。以下值也具有相同特性;011:P0.22引腳; 100:MAT0.1引腳; 101:MAT0.3引腳;110:MAT1.0引腳; 111:MAT1.1引腳;A/D轉(zhuǎn)換器寄存器描述-控制寄存器93…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELEDGE:當START字段的值為010~111時,該位的設(shè)置有效。
0:在所選CAP/MAT信號的下降沿啟動轉(zhuǎn)換
1:在所選CAP/MAT信號的上升沿啟動轉(zhuǎn)換A/D轉(zhuǎn)換器寄存器描述-控制寄存器94…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:這些位讀出時為0。用于未來擴展功能更強大的AD轉(zhuǎn)換器。ADDRA/D轉(zhuǎn)換器寄存器描述-數(shù)據(jù)寄存器95…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0V/VddA:當DONE位為1時,該字段包含對SEL字段選中的Ain腳的轉(zhuǎn)換結(jié)果,為一個二進制數(shù)。轉(zhuǎn)換結(jié)果為0時,表示Ain引腳電平小于、等于或接近于VSSA。為0x3FF時,表示Ain引腳電平等于、大于或接近于VddA。輸入電壓計算公式為:Vin=結(jié)果×(VSSA/0x3FF)ADDRA/D轉(zhuǎn)換器寄存器描述-數(shù)據(jù)寄存器96…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:這些位讀出時為0。它們允許連續(xù)A/D值的累加,而不需要屏蔽處理,使得至少有256個值不會溢出到CHN字段。ADDRA/D轉(zhuǎn)換器寄存器描述-數(shù)據(jù)寄存器97…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0CHN:該字段包含的是LS位的轉(zhuǎn)換通道。ADDRA/D轉(zhuǎn)換器寄存器描述-數(shù)據(jù)寄存器98…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:這些位讀出為0。用于未來CHN字段的擴展,使之兼容更多通道的轉(zhuǎn)換值。ADDRA/D轉(zhuǎn)換器寄存器描述-數(shù)據(jù)寄存器99…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0OVERUN:在BURST模式下,如果在轉(zhuǎn)換產(chǎn)生最低位之前,以前轉(zhuǎn)換的結(jié)果丟失或被覆蓋,該位將置位。讀ADDR寄存器時,該位清零。ADDRA/D轉(zhuǎn)換器寄存器描述-數(shù)據(jù)寄存器100…ADDRA/D轉(zhuǎn)換控制電路A/D數(shù)據(jù)寄存器ADCRA/D控制寄存器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7…位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0DONE:AD轉(zhuǎn)換完成標志位。當AD轉(zhuǎn)換結(jié)束時該位置位。在讀取ADDR或ADCR被寫入時,該位清零。如果在轉(zhuǎn)換過程中,設(shè)置了ADCR,那么該位將置位,并啟動一次新的轉(zhuǎn)換。ADDRA/D轉(zhuǎn)換器寄存器描述-數(shù)據(jù)寄存器101ADC中斷與VIC的關(guān)系A(chǔ)DC中斷向量IRQ通道0向量IRQ通道15非向量IRQ通道通道18ADCVICIntSelect[18]VICIntEnable[18]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配ADC處于VIC的通道18,中斷使能寄存器VICIntEnable用來控制VIC通道的中斷使能。102ADC中斷與VIC的關(guān)系A(chǔ)DC中斷向量IRQ通道0向量IRQ通道15非向量IRQ通道通道18ADCVICIntSelect[18]VICIntEnable[18]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 擠壓模擬課程設(shè)計
- 銀行支行的行政后勤工作綜述
- 寵物服務(wù)員工作總結(jié)
- 港口貨物裝卸合同三篇
- 三年級科學(xué)學(xué)科的教學(xué)工作總結(jié)
- 門診護士年終總結(jié)
- 【八年級下冊歷史】期中達標測試卷
- 2024年統(tǒng)計員年終工作總結(jié)篇
- 2024-2025學(xué)年北京門頭溝區(qū) 初三(上)期末物物理試卷(含答案)
- 分包采購委托合同(2篇)
- 《機修工基礎(chǔ)培訓(xùn)》課件
- 品質(zhì)黃燜雞加盟活動策劃
- DLT 754-2013 母線焊接技術(shù)規(guī)程
- 設(shè)立數(shù)字經(jīng)濟產(chǎn)業(yè)園公司商業(yè)計劃書
- 部編版小學(xué)道德與法治五年級上冊單元復(fù)習(xí)課件(全冊)
- 仙桃市仙桃市2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)檢測卷(含答案)
- 智慧農(nóng)場整體建設(shè)實施方案
- 航空公司個人年終總結(jié)(共12篇)
- 產(chǎn)品供貨方案、售后服務(wù)方案
- 蘇教版小學(xué)數(shù)學(xué)六年級上冊第4單元解決問題的策略重難點練習(xí)【含答案】
- 安徽省池州市貴池區(qū)2023-2024學(xué)年高二數(shù)學(xué)第一學(xué)期期末綜合測試模擬試題含解析
評論
0/150
提交評論