chapter5-LPC2000系列ARM硬件結(jié)構(gòu)(1-4)_第1頁(yè)
chapter5-LPC2000系列ARM硬件結(jié)構(gòu)(1-4)_第2頁(yè)
chapter5-LPC2000系列ARM硬件結(jié)構(gòu)(1-4)_第3頁(yè)
chapter5-LPC2000系列ARM硬件結(jié)構(gòu)(1-4)_第4頁(yè)
chapter5-LPC2000系列ARM硬件結(jié)構(gòu)(1-4)_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章LPC2000系列ARM硬件結(jié)構(gòu)第5章目錄1.簡(jiǎn)介2.引腳配置3.存儲(chǔ)器尋址4.系統(tǒng)控制模塊5.存儲(chǔ)器加速模塊6.外部存儲(chǔ)器控制器7.引腳連接模塊8.向量中斷控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定時(shí)器0/115.脈寬調(diào)制器(PWM)16.A/D轉(zhuǎn)換器17.實(shí)時(shí)時(shí)鐘18.看門狗第5章目錄1.簡(jiǎn)介2.引腳配置3.存儲(chǔ)器尋址4.系統(tǒng)控制模塊5.存儲(chǔ)器加速模塊6.外部存儲(chǔ)器控制器7.引腳連接模塊8.向量中斷控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定時(shí)器0/115.脈寬調(diào)制器(PWM)16.A/D轉(zhuǎn)換器17.實(shí)時(shí)時(shí)鐘18.看門狗5.1簡(jiǎn)介L(zhǎng)PC2000系列微控制器概述

LPC2000系列微控制器基于ARM7TDMI-SCPU內(nèi)核。支持ARM和Thumb指令集,芯片內(nèi)集成豐富外設(shè),而且具有非常低的功率消耗。使該系列微控制器特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機(jī)等場(chǎng)合。器件型號(hào)引腳數(shù)片內(nèi)RAM片內(nèi)Flash10位AD通道數(shù)CAN控制器備注LPC21146416KB128KB4--LPC21246416KB256KB4--LPC221014416KB-8-帶外部存儲(chǔ)器接口LPC221214416KB128KB8-LPC221414416KB256KB8-LPC21196416KB128KB42-LPC21296416KB256KB42-LPC21946416KB256KB44-LPC229014416KB-82帶外部存儲(chǔ)器接口LPC229214416KB256KB82LPC229414416KB256KB84LPC2131648KB32KB8--LPC21326416KB64KB8-帶1路DACLPC21346416KB128KB雙8路-LPC21366416KB256KB雙8路-LPC21386432KB512KB雙8路-LPC2000系列器件信息芯片內(nèi)部框圖LPC2000系列微控制器包含四大部分:ARM7TDMI-SCPUAHBToVPB橋EMCVICI2C串行接口SPI串行接口UART0&1CAN看門狗定時(shí)器系統(tǒng)控制外部中斷TIMER0/1ADC通用I/OPWM0實(shí)時(shí)時(shí)鐘SRAMFlashAHB總線ARM7局部總線系統(tǒng)功能ARM7TDMI-SCPUARM7局部總線及相關(guān)部件AHB高性能總線及相關(guān)部件VLSI外設(shè)總線及相關(guān)部件芯片內(nèi)部框圖ARM7TDMI-SCPUAHBToVPB橋EMCVICI2C串行接口SPI串行接口UART0&1CAN看門狗定時(shí)器系統(tǒng)控制外部中斷TIMER0/1ADC通用I/OPWM0實(shí)時(shí)時(shí)鐘SRAMFlashAHB總線ARM7局部總線系統(tǒng)功能LPC2000系列微控制器將ARM7TDMI-S配置為小端模式(Little-endian)。ARM7TDMI-SCPUAHB外設(shè)分配了2M字節(jié)的地址范圍,它位于4G字節(jié)ARM尋址空間的最頂端。每個(gè)AHB外設(shè)都分配了16KB的地址空間。EMCVICLPC2000系列微控制器的外設(shè)功能(除中斷控制器)都連接到VPB總線。AHB到VPB的橋?qū)PB總線與AHB總線相連。VPB外設(shè)也分配了2M字節(jié)的地址范圍,從3.5GB地址點(diǎn)開始。每個(gè)VPB外設(shè)都分配了16KB的地址空間。I2C串行接口SPI串行接口UART0&1CAN看門狗定時(shí)器系統(tǒng)控制外部中斷TIMER0/1ADC通用I/OPWM0實(shí)時(shí)時(shí)鐘AHBToVPB橋芯片內(nèi)部各單元簡(jiǎn)介ARM7TDMI-SCPUAHBToVPB橋EMCVICI2C串行接口SPI串行接口UART0&1CAN看門狗定時(shí)器系統(tǒng)控制外部中斷TIMER0/1ADC通用I/OPWM0實(shí)時(shí)時(shí)鐘SRAMFlashAHB總線ARM7局部總線系統(tǒng)功能SRAMFlash內(nèi)部存儲(chǔ)器包括無等待SRAM和Flash;外部存儲(chǔ)器控制器(EMC)支持4個(gè)BANK的外部SRAM或Flash,每個(gè)BANK最多16MB;系統(tǒng)功能包括維持芯片工作的一些基本功能,如系統(tǒng)時(shí)鐘、復(fù)位等;向量中斷控制器(VIC)可以減少中斷的響應(yīng)時(shí)間,最多可以管理32各中斷請(qǐng)求;I2C串行接口為標(biāo)準(zhǔn)的I2C總線接口,支持最高速度400kb;EMC系統(tǒng)功能VICI2C串行接口芯片內(nèi)部各單元簡(jiǎn)介ARM7TDMI-SCPUAHBToVPB橋EMCVICI2C串行接口SPI串行接口UART0&1CAN看門狗定時(shí)器系統(tǒng)控制外部中斷TIMER0/1ADC通用I/OPWM0實(shí)時(shí)時(shí)鐘SRAMFlashAHB總線ARM7局部總線系統(tǒng)功能具有兩個(gè)完全獨(dú)立的SPI控制器,遵循SPI規(guī)范,可配置為SPI主機(jī)或從機(jī);具有兩個(gè)UART接口,均包含16字節(jié)的接收/發(fā)送FIFO,內(nèi)置波特率發(fā)生器。其中UART1具有調(diào)制解調(diào)器接口功能;在LPC2119/2129/2290/2292等芯片中包含CAN總線接口;看門狗定時(shí)器帶有內(nèi)部分頻器,可以方便設(shè)置溢出時(shí)間,在軟件使能看門狗后只有復(fù)位可以禁止(具有調(diào)試模式);SPI串行接口UART0&1CAN看門狗定時(shí)器芯片內(nèi)部各單元簡(jiǎn)介ARM7TDMI-SCPUAHBToVPB橋EMCVICI2C串行接口SPI串行接口UART0&1CAN看門狗定時(shí)器系統(tǒng)控制外部中斷TIMER0/1ADC通用I/OPWM0實(shí)時(shí)時(shí)鐘SRAMFlashAHB總線ARM7局部總線系統(tǒng)功能系統(tǒng)控制模塊包括一些與其它外設(shè)無關(guān)的功能,如功率控制等;外部中斷有4路多引腳輸入,可用于CPU掉電喚醒;定時(shí)器0/1為兩個(gè)獨(dú)立的帶可編程32位預(yù)分頻器的32位定時(shí)器/計(jì)數(shù)器,具有捕獲和匹配輸出功能;具有4/8路10位ADC,可以設(shè)置為多路循環(huán)采樣模式。10位轉(zhuǎn)換時(shí)間最短為2.44us;系統(tǒng)控制外部中斷TIMER0/1ADC芯片內(nèi)部各單元簡(jiǎn)介ARM7TDMI-SCPUAHBToVPB橋EMCVICI2C串行接口SPI串行接口UART0&1CAN看門狗定時(shí)器系統(tǒng)控制外部中斷TIMER0/1ADC通用I/OPWM0實(shí)時(shí)時(shí)鐘SRAMFlashAHB總線ARM7局部總線系統(tǒng)功能不同封裝的芯片具有數(shù)目不等的IO口,它們可以承受5V電壓。每個(gè)IO口可以獨(dú)立設(shè)置為輸入/輸出模式,在作為輸出模式時(shí)可以分別置位或清零;脈寬調(diào)制器可以靈活設(shè)置,以適應(yīng)不同的場(chǎng)合??梢栽O(shè)置為單邊沿或雙邊緣輸出方式,可以靈活的設(shè)置頻率和占空比;實(shí)時(shí)時(shí)鐘具有可編程的積存時(shí)鐘分頻器,以適應(yīng)不同的晶振頻率。帶日歷和時(shí)鐘功能,提供秒、分、時(shí)、日、月、年和星期,同時(shí)具有非常的功耗。通用I/OPWM0實(shí)時(shí)時(shí)鐘第5章目錄1.簡(jiǎn)介2.引腳配置3.存儲(chǔ)器尋址4.系統(tǒng)控制模塊5.存儲(chǔ)器加速模塊6.外部存儲(chǔ)器控制器7.引腳連接模塊8.向量中斷控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定時(shí)器0/115.脈寬調(diào)制器(PWM)16.A/D轉(zhuǎn)換器17.實(shí)時(shí)時(shí)鐘18.看門狗5.2引腳配置LPC2000系列芯片外形LPC2210/2212/2214LPC2114/2124GPIOTXD0PWM1輸出P0.05.2引腳配置引腳功能選擇使用示例

LPC2000系列微控制器的引腳一般是多個(gè)功能復(fù)用,但是同一引腳在同一引腳在同一時(shí)刻只能使用其中一個(gè)功能,這可以通過設(shè)置PINSELx寄存器來選擇,詳細(xì)介紹見“引腳連接模塊”小節(jié)。通過PINSEL0控制引腳功能第5章目錄1.簡(jiǎn)介2.引腳配置3.存儲(chǔ)器尋址4.系統(tǒng)控制模塊5.存儲(chǔ)器加速模塊6.外部存儲(chǔ)器控制器7.引腳連接模塊8.向量中斷控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定時(shí)器0/115.脈寬調(diào)制器(PWM)16.A/D轉(zhuǎn)換器17.實(shí)時(shí)時(shí)鐘18.看門狗5.3存儲(chǔ)器尋址地址空間0xFFFFFFFF0x00000000內(nèi)部Flash0x40000000內(nèi)部SRAM0x80000000外部存儲(chǔ)器0x7FFFE000BootBlock片外存儲(chǔ)器片內(nèi)存儲(chǔ)器一個(gè)具體應(yīng)用可能存在的物理存儲(chǔ)器5.3存儲(chǔ)器尋址片內(nèi)Flash編程方法:JTAG串口1.通過內(nèi)置JTAG接口;2.通過在系統(tǒng)編程(ISP),使用UART0通信;3.通過在應(yīng)用編程(IAP);5.3存儲(chǔ)器尋址片外Flash編程方法(LPC2200):在CPU上運(yùn)行一個(gè)裝載程序(Loader,一般由用戶編寫),該程序通過串口接收要燒寫的數(shù)據(jù),然后擦除編程Flash。串口Loder程序外部Flash5.3存儲(chǔ)器尋址存儲(chǔ)器映射基本概念

ARM處理器產(chǎn)生的地址叫虛擬地址,把這個(gè)虛擬地址按照某種規(guī)則轉(zhuǎn)換到另一個(gè)物理地址去的方法稱為地址映射。這個(gè)物理地址表示了被訪問的存儲(chǔ)器的位置。它是一個(gè)地址范圍,該范圍內(nèi)可以寫入程序代碼。通過地址映射的方法將各存儲(chǔ)器分配到特定的地址范圍后,這時(shí)用戶所看見的存儲(chǔ)器分布為存儲(chǔ)器映射。5.3存儲(chǔ)器尋址芯片復(fù)位后用戶看見的地址空間128KBFlash(LPC2114/2212)256KBFlash(LPC2124/2214)16KBSRAM8KBBootBlock2MBVPB外設(shè)2MBAHB外設(shè)0x000000000xFFFFFFFF保留給片內(nèi)存儲(chǔ)器使用保留給片內(nèi)存儲(chǔ)器使用保留給外部?jī)?chǔ)器使用0x400000000xE00000000x800000000xF00000000x00020000地址空間5.3存儲(chǔ)器尋址異常向量表對(duì)于每一個(gè)異常事件,都有一個(gè)與之相對(duì)應(yīng)的處理程序,它們是關(guān)聯(lián)在一起的,并以一張一維表的格式存儲(chǔ)在存儲(chǔ)器的固定單元中。這張指定了各異常中斷及其處理程序的對(duì)應(yīng)關(guān)系的表,稱為異常向量表。5.3存儲(chǔ)器尋址異常向量表地址異常0x00000000復(fù)位0x00000004未定義指令0x00000008軟件中斷0x0000000C預(yù)取指中止(從存儲(chǔ)器取指出錯(cuò))0x00000010數(shù)據(jù)中止(訪問存儲(chǔ)器數(shù)據(jù)出錯(cuò))0x00000014保留*0x00000018IRQ0x0000001CFIQ各異常向量的固定位置該位置被Boot裝載程序用作有效用戶程序的檢測(cè)標(biāo)志。通過定義此保留值,使向量表所有數(shù)據(jù)32位累加和為0,芯片復(fù)位后才能脫機(jī)運(yùn)行用戶程序。5.3存儲(chǔ)器尋址位于啟動(dòng)代碼中的異常向量表什么是啟動(dòng)代碼?一般在32位ARM應(yīng)用系統(tǒng)中,大多數(shù)采用C語(yǔ)言進(jìn)行軟件編程。但是在運(yùn)行應(yīng)用代碼前需要進(jìn)行系統(tǒng)初始化。常用一個(gè)匯編文件作啟動(dòng)代碼,它可以實(shí)現(xiàn)異常向量表定義、堆棧初始化、系統(tǒng)變量初始化、中斷系統(tǒng)初始化、I/O初始化、外圍部件初始化、地址重映射等操作。位于啟動(dòng)代碼中的異常向量表CODE32AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddr...DCD0xb9205f80LDRPC,[PC,#-0xff0]LDRPC,FIQ_AddrResetAddrDCDResetInitUndefinedAddrDCDUndefined...NouseDCD0IRQ_AddrDCD0FIQ_AddrDCDFIQ_Handler前32字節(jié)為異常入口

后32字節(jié)為跳轉(zhuǎn)地址

異常向量表位于啟動(dòng)代碼中的異常向量表CODE32AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddr...DCD0xb9205f80LDRPC,[PC,#-0xff0]LDRPC,FIQ_AddrResetAddrDCDResetInitUndefinedAddrDCDUndefined...NouseDCD0IRQ_AddrDCD0FIQ_AddrDCDFIQ_Handler異常向量表例如:發(fā)生未定義異常時(shí)1.程序計(jì)數(shù)器(PC)指向0x00000004;2.執(zhí)行當(dāng)前的指令,將Undefined地址值裝入PC,實(shí)現(xiàn)至未定義異常處理程序的跳轉(zhuǎn)。裝入第5章目錄1.簡(jiǎn)介2.引腳配置3.存儲(chǔ)器尋址4.系統(tǒng)控制模塊5.存儲(chǔ)器加速模塊6.外部存儲(chǔ)器控制器7.引腳連接模塊8.向量中斷控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定時(shí)器0/115.脈寬調(diào)制器(PWM)16.A/D轉(zhuǎn)換器17.實(shí)時(shí)時(shí)鐘18.看門狗5.4系統(tǒng)控制模塊小節(jié)目錄系統(tǒng)控制模塊概述系統(tǒng)時(shí)鐘復(fù)位外部中斷存儲(chǔ)器映射控制功率控制喚醒定時(shí)器5.4系統(tǒng)控制模塊系統(tǒng)控制模塊概述

系統(tǒng)控制模塊包括一些系統(tǒng)構(gòu)件和控制寄存器,它們具有眾多與芯片內(nèi)其它外設(shè)無關(guān)的功能。系統(tǒng)控制模塊包括:系統(tǒng)時(shí)鐘單元、復(fù)位、外部中斷輸入、存儲(chǔ)器映射控制、功率控制和喚醒定時(shí)器。5.4系統(tǒng)控制模塊小節(jié)目錄系統(tǒng)控制模塊概述系統(tǒng)時(shí)鐘復(fù)位外部中斷存儲(chǔ)器映射控制功率控制喚醒定時(shí)器系統(tǒng)時(shí)鐘小節(jié)目錄系統(tǒng)時(shí)鐘概述晶體振蕩器(5.4.4)PLL(5.4.9)VPB分頻器(5.4.10)系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘概述

CPU正常工作需要有合適的時(shí)鐘信號(hào),包括ARM7內(nèi)核使用的CCLK時(shí)鐘,和芯片外設(shè)使用的PCLK時(shí)鐘。通過LPC2000系列微控制器的時(shí)鐘產(chǎn)生單元產(chǎn)生ARM7內(nèi)核和芯片外設(shè)正常工作所需要的時(shí)鐘節(jié)拍。系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘概述ARM7核橋外設(shè)時(shí)鐘產(chǎn)生FCCLKFPCLKFOSCCPU時(shí)鐘結(jié)構(gòu)系統(tǒng)時(shí)鐘時(shí)鐘產(chǎn)生單元

時(shí)鐘產(chǎn)生單元包括晶體振蕩器、鎖相環(huán)振蕩器(PLL)和VPB分頻器。PLL晶體振蕩器VPB分頻器FCCLKFPCLKFOSC系統(tǒng)時(shí)鐘晶體振蕩器

LPC2000微控制器可以使用內(nèi)部的晶體振蕩器產(chǎn)生時(shí)鐘信號(hào),也可以從外部引入時(shí)鐘信號(hào)。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL從屬模式振蕩模式系統(tǒng)時(shí)鐘晶體振蕩器

使用從屬模式時(shí),時(shí)鐘信號(hào)通過X1引腳從外部輸入,輸入頻率范圍:1~50(MHz),其幅度不小于200mVrms。LPC2000X1X2ClockCC從屬模式系統(tǒng)時(shí)鐘晶體振蕩器

使用振蕩模式時(shí),時(shí)鐘信號(hào)由內(nèi)部晶體振蕩器和外部連接的晶體振蕩產(chǎn)生,振蕩頻率范圍:1~30(MHz)。LPC2000X1X2CX1CX2XTAL振蕩模式系統(tǒng)時(shí)鐘晶體振蕩器注意:如果使用了ISP下載功能或者連接PLL提高頻率,則輸入的時(shí)鐘頻率范圍必須在10~25(MHz)之間。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL從屬模式振蕩模式系統(tǒng)時(shí)鐘小節(jié)目錄系統(tǒng)時(shí)鐘概述晶體振蕩器(5.4.4)PLL(5.4.9)VPB分頻器(5.4.10)系統(tǒng)時(shí)鐘鎖相環(huán)(PLL)

由晶體振蕩器輸出的時(shí)鐘信號(hào),通過PLL升頻,可以獲得更高的系統(tǒng)時(shí)鐘(CCLK)。

PLL接受的輸入時(shí)鐘頻率范圍為10~25MHz,通過一個(gè)電流控制振蕩器(CCO)倍增到10~60MHz。PLL晶體振蕩器VPB分頻器FCCLKFPCLKFOSC10MHz~25MHz10MHz~60MHzPLL相位頻率檢測(cè)CCO102P分頻M分頻0101FOSCFCCOFCLKPLL配置寄存器(PLLCFG):位76543210功能-PSEL[1:0]MSEL[4:0]MSEL[4:0]:PLL倍頻器值,在PLL頻率計(jì)算中其值為(M-1);PSEL[1:0]:PLL分頻器值,在PLL頻率計(jì)算中其值為P

。PLL相關(guān)寄存器相位頻率檢測(cè)CCO102P分頻M分頻0101FOSCFCCOFCLKPLL狀態(tài)寄存器(PLLSETA):位15:11109876:54:0功能-PLOCKPLLCPLLE-PSEL[1:0]MSEL[4:0]MSEL[4:0]、PSEL[1:0]、PLLE、PLLC:讀出反映這幾個(gè)參數(shù)的設(shè)置值,寫入無效;PLOCK:反映PLL的鎖定狀態(tài)。為0時(shí),PLL未鎖定;為1時(shí),PLL鎖定到指定頻率。PLL相關(guān)寄存器PLL頻率計(jì)算回路鎖定后:FOSC=FCCO/(2P×M)FCLK=FOSC

×M相位頻率檢測(cè)CCO102P分頻M分頻0101FOSCFCCOFCLKFCCO/2PFCCO/(2P*M)FOSC:晶振頻率;FCCO:CCO振蕩器輸出頻率FCCLK:處理器時(shí)鐘頻率;M:PLL倍頻值P:PLL分頻值必須滿足的條件:FOSC范圍:10MHz~25MHz;

FCCLK范圍:10MHz~60MHz;

FCCO范圍:156MHz~320MHz;系統(tǒng)時(shí)鐘鎖相環(huán)(PLL)計(jì)算流程1.選擇處理器的工作頻率(CCLK)2.選擇振蕩器頻率(FOSC)3.計(jì)算M值配置MSEL位4.計(jì)算P值配置PSEL位根據(jù)處理器的整體要求、UART波特率的支持等因素來決定。外圍器件的時(shí)鐘頻率可以低于處理器頻率

CCLK必須為FOSC的整數(shù)倍。

M=CCLK/FOSC,取值范圍1~32。寫入MSEL的值為(M-1)。選擇合適的P值,使FCCO在限制范圍內(nèi)。P只能取1、2、4或8。寫入PSEL的值為P。系統(tǒng)時(shí)鐘鎖相環(huán)(PLL)計(jì)算實(shí)例系統(tǒng)要求:FOSC=10MHz、CCLK=60MHz1.計(jì)算M值:M=CCLK/FOSC=6

;2.設(shè)置MSEL位:寫入值為(M-1)=5;3.設(shè)置PSEL位:P=FCCO/(CCLK×2)

=(156~320)/120=1.3~2.67

所以P取整數(shù)2,PSEL寫入值為2。系統(tǒng)時(shí)鐘小節(jié)目錄系統(tǒng)時(shí)鐘概述晶體振蕩器(5.4.4)PLL(5.4.9)VPB分頻器(5.4.10)系統(tǒng)時(shí)鐘VPB分頻器

VPB分頻器將PLL輸出的時(shí)鐘信號(hào)分頻后作為芯片外設(shè)的時(shí)鐘。PLL晶體振蕩器VPB分頻器FCCLKFPCLKFOSCVPB分頻器系統(tǒng)時(shí)鐘VPB分頻器

VPB分頻器決定處理器時(shí)鐘(CCLK)與外設(shè)器件所使用的時(shí)鐘(PCLK)之間的關(guān)系。VPB用途1:通過VPB總線為外設(shè)提供所需的PCLK時(shí)鐘,以便外設(shè)在合適的速度下工作;VPB用途2:在應(yīng)用不需要任何外設(shè)全速運(yùn)行時(shí)使功耗降低。系統(tǒng)時(shí)鐘VPB分頻器相關(guān)寄存器位76543210功能--XCLKDIV[1:0]--VPBDIV[1:0]VPB分頻寄存器(VPBDIV):VPBDIV[1:0]:設(shè)置分頻值,可以設(shè)定3個(gè)值;XCLKDIV[1:0]:這些位用于控制LPC2200系列微控制器A23/XCLK引腳上的時(shí)鐘驅(qū)動(dòng),取值編碼方式與VPBDIV相同;系統(tǒng)時(shí)鐘VPB分頻器相關(guān)寄存器位76543210功能--XCLKDIV[1:0]--VPBDIV[1:0]VPB分頻寄存器(VPBDIV):VPBDIV[1:0]說明00VPB總線時(shí)鐘為處理器時(shí)鐘的1/4。01VPB總線時(shí)鐘與處理器時(shí)鐘相同。10VPB總線時(shí)鐘為處理器時(shí)鐘的1/2。11保留。寫入該值將不改變分頻值。系統(tǒng)時(shí)鐘初始化流程使能PLL設(shè)置VPB分頻值PLL饋送序列等待PLL鎖定設(shè)置PLL分頻值連接PLLPLL饋送序列系統(tǒng)時(shí)鐘初始化——啟動(dòng)代碼實(shí)例//應(yīng)當(dāng)與實(shí)際一至晶振頻率,10MHz~25MHz,應(yīng)當(dāng)與實(shí)際一至#defineFosc11059200//系統(tǒng)頻率,必須為Fosc的整數(shù)倍(1~32),且<=60MHZ#defineFcclk(Fosc*4)//CCO頻率,必須為Fcclk的2、4、8、16倍,范圍為156MHz~320MHz#defineFcco(Fcclk*4)//VPB時(shí)鐘頻率,只能為(Fcclk/4)的1、2、4倍#defineFpclk(Fcclk/4)*1將系統(tǒng)內(nèi)各時(shí)鐘的頻率定義為宏,方便用戶操作。設(shè)置晶振頻率設(shè)置內(nèi)核工作頻率設(shè)置CCO輸出頻率設(shè)置外設(shè)工作頻率系統(tǒng)時(shí)鐘初始化——啟動(dòng)代碼實(shí)例使能PLL設(shè)置VPB分頻值PLL饋送序列等待PLL鎖定設(shè)置PLL分頻值連接PLLPLL饋送序列使能PLL設(shè)置VPB分頻值C代碼分析:

PLLCON=1;#if(Fpclk/(Fcclk/4))==1VPBDIV=0;#endif#if(Fpclk/(Fcclk/4))==2VPBDIV=2;#endif#if(Fpclk/(Fcclk/4))==4VPBDIV=1;#endif...注意:在啟動(dòng)代碼中很多地方使用了條件編譯的方法,根據(jù)用戶定義的宏來決定要設(shè)置的值,可以方便用戶使用。系統(tǒng)時(shí)鐘初始化——啟動(dòng)代碼實(shí)例使能PLL設(shè)置VPB分頻值PLL饋送序列等待PLL鎖定設(shè)置PLL分頻值連接PLLPLL饋送序列設(shè)置PLL分頻值C代碼分析:...#if(Fcco/Fcclk)==2PLLCFG=((Fcclk/Fosc)-1)|(0<<5);#endif#if(Fcco/Fcclk)==4PLLCFG=((Fcclk/Fosc)-1)|(1<<5);#endif#if(Fcco/Fcclk)==8PLLCFG=((Fcclk/Fosc)-1)|(2<<5);#endif#if(Fcco/Fcclk)==16PLLCFG=((Fcclk/Fosc)-1)|(3<<5);...系統(tǒng)時(shí)鐘初始化——啟動(dòng)代碼實(shí)例使能PLL設(shè)置VPB分頻值PLL饋送序列等待PLL鎖定設(shè)置PLL分頻值連接PLLPLL饋送序列PLL饋送序列等待PLL鎖定連接PLLPLL饋送序列C代碼分析:...PLLFEED=0xaa;PLLFEED=0x55;while((PLLSTAT&(1<<10))==0);PLLCON=3;PLLFEED=0xaa;PLLFEED=0x55;注意:在修改PLL的控制和配置寄存器后,必須寫入饋送序列,使修改生效。5.4系統(tǒng)控制模塊小節(jié)目錄系統(tǒng)控制模塊概述系統(tǒng)時(shí)鐘復(fù)位外部中斷存儲(chǔ)器映射控制功率控制喚醒定時(shí)器復(fù)位復(fù)位的分類外部復(fù)位

—把nRESET引腳拉為低電平,并保持一個(gè)最小時(shí)間,引發(fā)復(fù)位看門狗復(fù)位

—通過設(shè)置看門狗相關(guān)寄存器,當(dāng)看門狗定時(shí)器溢出后,引發(fā)復(fù)位復(fù)位外部復(fù)位

外部復(fù)位引腳(nRESET)連接內(nèi)部的施密特觸發(fā)器,通過施密特觸發(fā)器可以濾除引腳輸入的干擾信號(hào),保證復(fù)位的可靠性。如果外部復(fù)位信號(hào)一直有效,芯片將保持復(fù)位狀態(tài)。 注意:如果芯片使用了外部晶體,上電后nRESET引腳的復(fù)位信號(hào)必須保持至少10ms,以便產(chǎn)生穩(wěn)定的振蕩信號(hào)。如果晶振已經(jīng)穩(wěn)定運(yùn)行且X1引腳上以出現(xiàn)穩(wěn)定信號(hào)時(shí),nRESET引腳的復(fù)位信號(hào)只需保持至少300ns時(shí)間。1.在芯片未上電時(shí),芯片振蕩器沒有工作;復(fù)位UX1tLPC2xxxnRESET電源輸入X1X2外部復(fù)位復(fù)位振蕩器穩(wěn)定需要一段時(shí)間UX1tLPC2xxxnRESET電源輸入X1X2外部復(fù)位2.芯片上電后,晶體振蕩器開始振蕩。因?yàn)檎袷帍拈_始到穩(wěn)定需要一過程,所以外部復(fù)位信號(hào)至少要保持10ms;>=10ms>=300ns復(fù)位UX1t此時(shí)振蕩器穩(wěn)定工作外部復(fù)位LPC2xxxnRESET電源輸入X1X23.在晶體振蕩器保持穩(wěn)定振蕩,或者使用有源鐘振時(shí),外部復(fù)位信號(hào)可以縮短到不小于300ns;復(fù)位Boot程序

Boot程序是芯片生產(chǎn)廠家固化在芯片中的一段代碼,它完成芯片復(fù)位后的初始化操作,并提供實(shí)現(xiàn)Flash編程的方法。Boot裝載程序可啟動(dòng)對(duì)空片的編程、已編程器件的擦除和再編程,以及在運(yùn)行的系統(tǒng)中由應(yīng)用程序?qū)lash存儲(chǔ)器進(jìn)行編程。Boot程序工作流程——LPC2114/2124復(fù)位運(yùn)行ISP服務(wù)程序看門狗復(fù)位根據(jù)硬件(P1.20、P1.26)配置進(jìn)入ISP狀態(tài)嗎?(P0.14為低)初始化用戶代碼是否有效執(zhí)行用戶代碼(片內(nèi)Flash:0x00000000)NYYYNN在此檢測(cè)特定引腳檢測(cè)用戶代碼是否有效5.4系統(tǒng)控制模塊小節(jié)目錄系統(tǒng)控制模塊概述系統(tǒng)時(shí)鐘復(fù)位外部中斷存儲(chǔ)器映射控制功率控制喚醒定時(shí)器外部中斷外部中斷外部中斷是通過引腳輸入符合要求的信號(hào)而觸發(fā)的中斷。LPC2114/2124/2212/2214含有4個(gè)外部中斷輸入(作為可選引腳功能,通過PINSEL0/1寄存器設(shè)置相應(yīng)管腳為外部中斷功能)。外部中斷輸入可用于將處理器從掉電模式喚醒。管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷外部中斷內(nèi)部示意圖2.控制某幾個(gè)引腳作為外部中斷輸入;管腳連接控制1.可作為外部中斷輸入的引腳;外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志3.控制觸發(fā)外部中斷的信號(hào)波形;4.控制外部中斷產(chǎn)生后是否喚醒CPU;5.外部中斷產(chǎn)生后設(shè)置的標(biāo)志位;(2)(1)(3)(3)(4)(5)外部中斷相關(guān)寄存器外部中斷極性控制寄存器(EXTPOLAR):位7:43210功能-EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0該寄存器控制著外部中斷輸入信號(hào)的極性,其中低四位(EXTPOLAR[3:0])分別對(duì)應(yīng)外部中斷3~0。管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷極性控制外部中斷相關(guān)寄存器外部中斷3外部中斷2外部中斷1外部中斷0(EINT3)(EINT2)(EINT1)(EINT0)分別控制著外部中斷相關(guān)寄存器外部中斷極性控制寄存器(EXTPOLAR):位7:43210功能-EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE當(dāng)EXTPOLARx設(shè)置為1時(shí)EINTx引腳輸入信號(hào)高電平或上升沿有效。當(dāng)EXTPOLARx設(shè)置為0時(shí)EINTx引腳輸入信號(hào)低電平或下降沿有效。外部中斷相關(guān)寄存器外部中斷相關(guān)寄存器外部中斷極性控制寄存器(EXTPOLAR):位7:43210功能-EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷相關(guān)寄存器外部中斷方式控制寄存器(EXTMODE):位7:43210功能-EXTMODE3EXTMODE2EXTMODE1EXTMODE0該寄存器控制著外部中斷輸入信號(hào)的有效觸發(fā)方式,其中低四位(EXTMODE[3:0])分別對(duì)應(yīng)外部中斷3~0。外部中斷相關(guān)寄存器管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷方式控制當(dāng)EXTMODEx設(shè)置為0時(shí)輸入信號(hào)為電平觸發(fā)有效。當(dāng)EXTMODEx設(shè)置為1時(shí)輸入信號(hào)為邊沿觸發(fā)有效。外部中斷相關(guān)寄存器外部中斷方式控制寄存器(EXTMODE):位7:43210功能-EXTMODE3EXTMODE2EXTMODE1EXTMODE0外部中斷相關(guān)寄存器管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷相關(guān)寄存器極性與方式控制的組合關(guān)系:外部中斷相關(guān)寄存器管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷極性控制寄存器(EXTPOLAR)外部中斷方式控制寄存器(EXTMODE)外部中斷觸發(fā)信號(hào)波形說明00低電平01下降沿10高電平11上升沿外部中斷相關(guān)寄存器外部中斷喚醒寄存器(EXTWAKE):位7:43210功能-EXTWAKE3EXTWAKE2EXTWAKE1EXTWAKE0設(shè)置該寄存器允許相應(yīng)的外部中斷將處理器從掉電模式喚醒。實(shí)現(xiàn)掉電喚醒不需要在向量中斷控制器(VIC)中使能相應(yīng)的中斷。該寄存器的低四位(EXTWAKE[3:0])分別對(duì)應(yīng)外部中斷3~0。管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE掉電喚醒控制外部中斷相關(guān)寄存器當(dāng)EXTWAKEx設(shè)置為1時(shí)對(duì)應(yīng)的外部中斷將處理器從掉電模式喚醒。外部中斷喚醒寄存器(EXTWAKE):位7:43210功能-EXTWAKE3EXTWAKE2EXTWAKE1EXTWAKE0管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷相關(guān)寄存器外部中斷標(biāo)志寄存器(EXTINT):位7:43210功能-EINT3EINT2EINT1EINT0若引腳上出現(xiàn)了符合要求的信號(hào),EXTINT寄存器中對(duì)應(yīng)的中斷標(biāo)志將被置位。向該寄存器的EINT0~EINT3位寫入1,可將其清零。管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE中斷標(biāo)志注意:在電平觸發(fā)方式下,清除中斷標(biāo)志只有在引腳處于無效狀態(tài)時(shí)才可實(shí)現(xiàn)。比如設(shè)置為低電平中斷,則只有在中斷引腳恢復(fù)為高電平后才能清除中斷標(biāo)志。外部中斷相關(guān)寄存器外部中斷標(biāo)志寄存器(EXTINT):位7:43210功能-EINT3EINT2EINT1EINT0管腳連接控制外部中斷極性控制外部中斷方式控制掉電喚醒控制中斷標(biāo)志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中斷外部中斷引腳設(shè)置通過軟件設(shè)置引腳選擇寄存器(PINESLEx),可以將多個(gè)引腳同時(shí)作為同一個(gè)外部中斷的輸入引腳。EINT3~EINT0外部中斷的邏輯電路接收所有與之相連引腳的狀態(tài)和信號(hào)。外部中斷外部中斷引腳設(shè)置根據(jù)其方式位和極性位的不同,外部中斷邏輯處理如下:低電平觸發(fā)方式:作為EINT功能的全部引腳的狀態(tài)相與后作為輸入信號(hào);高電平觸發(fā)方式:作為EINT功能的全部引腳的狀態(tài)相或后作為輸入信號(hào);邊沿觸發(fā)方式:只使用GPIO端口號(hào)最低的那個(gè)引腳,并且與極性設(shè)置無關(guān)。外部中斷外部中斷應(yīng)用示例1——設(shè)置EINT0為低電平觸發(fā)中斷...PINSEL1=(PINSEL1&0xFFFFFFFC)|0x01;EXTMODE&=0x0E;EXTPOLAR&=0x0E;...C代碼:1.設(shè)置引腳連接模塊,將P0.16設(shè)置為外部中斷功能;2.設(shè)置中斷方式寄存器,將外部中斷0設(shè)置為電平觸發(fā);3.設(shè)置中斷極性寄存器,將外部中斷0設(shè)置為低電平觸發(fā);步驟:(1)(2)(3)外部中斷外部中斷應(yīng)用示例2——設(shè)置EINT0為下降沿觸發(fā)中斷...PINSEL1=(PINSEL1&0xFFFFFFFC)|0x01;EXTMODE|=0x01;EXTPOLAR&=0x0E;...C代碼:1.設(shè)置引腳連接模塊,將P0.16設(shè)置為外部中斷功能;2.設(shè)置中斷方式寄存器,將外部中斷0設(shè)置為邊沿觸發(fā);3.設(shè)置中斷極性寄存器,將外部中斷0設(shè)置為下降沿觸發(fā);步驟:(1)(2)(3)5.4系統(tǒng)控制模塊小節(jié)目錄系統(tǒng)控制模塊概述系統(tǒng)時(shí)鐘復(fù)位外部中斷存儲(chǔ)器映射控制功率控制喚醒定時(shí)器存儲(chǔ)器映射控制存儲(chǔ)器映射控制的作用“存儲(chǔ)器映射控制”用于控制地址范圍為0x0000~0x003F存儲(chǔ)區(qū)域的重新映射。該區(qū)域存放著異常向量表。

AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddr...當(dāng)發(fā)生異常時(shí),程序總是跳轉(zhuǎn)到地址為0x0000~0x003F的對(duì)應(yīng)入口處,在該地址范圍內(nèi)存儲(chǔ)有異常向量表。指令未定義中止入口軟件中斷入口取數(shù)據(jù)中止入口預(yù)取指中止入口復(fù)位入口

...存儲(chǔ)器映射控制的必要性異常向量表

AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddr...存儲(chǔ)器映射控制的必要性復(fù)位后用戶看見的地址空間FlashSRAMBootBlockVPB外設(shè)AHB外設(shè)0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存儲(chǔ)器可能存在的程序存儲(chǔ)器FlashSRAMBootBlock片外存儲(chǔ)器異常向量表

AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddr...FlashSRAMBootBlockVPB外設(shè)AHB外設(shè)0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存儲(chǔ)器異常向量表內(nèi)部Flash可以來自存儲(chǔ)器映射控制的必要性復(fù)位后用戶看見的地址空間內(nèi)部SRAM

AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddr...FlashSRAMBootBlockVPB外設(shè)AHB外設(shè)0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存儲(chǔ)器異常向量表可以來自存儲(chǔ)器映射控制的必要性復(fù)位后用戶看見的地址空間BootBlock

AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddr...FlashSRAMBootBlockVPB外設(shè)AHB外設(shè)0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存儲(chǔ)器異常向量表可以來自存儲(chǔ)器映射控制的必要性復(fù)位后用戶看見的地址空間外部存儲(chǔ)器

AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddr...FlashSRAMBootBlockVPB外設(shè)AHB外設(shè)0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存儲(chǔ)器異常向量表可以來自存儲(chǔ)器映射控制的必要性復(fù)位后用戶看見的地址空間為了讓運(yùn)行在不同存儲(chǔ)器空間中的程序?qū)Ξ惓_M(jìn)行控制。可以通過存儲(chǔ)器映射控制,將位于不同存儲(chǔ)空間的異常向量表重新映射至固定地址0x00~0x3F處,以實(shí)現(xiàn)異常向量表的來源控制。存儲(chǔ)器映射控制寄存器(MEMMAP)是一個(gè)可讀可寫的寄存器。MAP[1:0]:用于存儲(chǔ)器映射控制,實(shí)現(xiàn)部分地址的重新映射;-:表示該位保留。位76543210功能------MAP[1:0]PLL控制寄存器(PLLCON):存儲(chǔ)器映射控制存儲(chǔ)器映射控制寄存器描述

MEMMAP為不同值時(shí),ARM內(nèi)核發(fā)生異常,程序跳轉(zhuǎn)到異常向量表的來源也不相同。MAP[1:0]映射方式00Boot裝載程序模式。異常向

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論