chapter5-LPC2000系列ARM硬件結構(1-4)_第1頁
chapter5-LPC2000系列ARM硬件結構(1-4)_第2頁
chapter5-LPC2000系列ARM硬件結構(1-4)_第3頁
chapter5-LPC2000系列ARM硬件結構(1-4)_第4頁
chapter5-LPC2000系列ARM硬件結構(1-4)_第5頁
已閱讀5頁,還剩95頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第5章LPC2000系列ARM硬件結構第5章目錄1.簡介2.引腳配置3.存儲器尋址4.系統控制模塊5.存儲器加速模塊6.外部存儲器控制器7.引腳連接模塊8.向量中斷控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定時器0/115.脈寬調制器(PWM)16.A/D轉換器17.實時時鐘18.看門狗第5章目錄1.簡介2.引腳配置3.存儲器尋址4.系統控制模塊5.存儲器加速模塊6.外部存儲器控制器7.引腳連接模塊8.向量中斷控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定時器0/115.脈寬調制器(PWM)16.A/D轉換器17.實時時鐘18.看門狗5.1簡介LPC2000系列微控制器概述

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

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

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

后32字節為跳轉地址

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

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

CPU正常工作需要有合適的時鐘信號,包括ARM7內核使用的CCLK時鐘,和芯片外設使用的PCLK時鐘。通過LPC2000系列微控制器的時鐘產生單元產生ARM7內核和芯片外設正常工作所需要的時鐘節拍。系統時鐘系統時鐘概述ARM7核橋外設時鐘產生FCCLKFPCLKFOSCCPU時鐘結構系統時鐘時鐘產生單元

時鐘產生單元包括晶體振蕩器、鎖相環振蕩器(PLL)和VPB分頻器。PLL晶體振蕩器VPB分頻器FCCLKFPCLKFOSC系統時鐘晶體振蕩器

LPC2000微控制器可以使用內部的晶體振蕩器產生時鐘信號,也可以從外部引入時鐘信號。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL從屬模式振蕩模式系統時鐘晶體振蕩器

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

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

由晶體振蕩器輸出的時鐘信號,通過PLL升頻,可以獲得更高的系統時鐘(CCLK)。

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

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

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

FCCLK范圍:10MHz~60MHz;

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

CCLK必須為FOSC的整數倍。

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

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

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

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

VPB分頻器將PLL輸出的時鐘信號分頻后作為芯片外設的時鐘。PLL晶體振蕩器VPB分頻器FCCLKFPCLKFOSCVPB分頻器系統時鐘VPB分頻器

VPB分頻器決定處理器時鐘(CCLK)與外設器件所使用的時鐘(PCLK)之間的關系。VPB用途1:通過VPB總線為外設提供所需的PCLK時鐘,以便外設在合適的速度下工作;VPB用途2:在應用不需要任何外設全速運行時使功耗降低。系統時鐘VPB分頻器相關寄存器位76543210功能--XCLKDIV[1:0]--VPBDIV[1:0]VPB分頻寄存器(VPBDIV):VPBDIV[1:0]:設置分頻值,可以設定3個值;XCLKDIV[1:0]:這些位用于控制LPC2200系列微控制器A23/XCLK引腳上的時鐘驅動,取值編碼方式與VPBDIV相同;系統時鐘VPB分頻器相關寄存器位76543210功能--XCLKDIV[1:0]--VPBDIV[1:0]VPB分頻寄存器(VPBDIV):VPBDIV[1:0]說明00VPB總線時鐘為處理器時鐘的1/4。01VPB總線時鐘與處理器時鐘相同。10VPB總線時鐘為處理器時鐘的1/2。11保留。寫入該值將不改變分頻值。系統時鐘初始化流程使能PLL設置VPB分頻值PLL饋送序列等待PLL鎖定設置PLL分頻值連接PLLPLL饋送序列系統時鐘初始化——啟動代碼實例//應當與實際一至晶振頻率,10MHz~25MHz,應當與實際一至#defineFosc11059200//系統頻率,必須為Fosc的整數倍(1~32),且<=60MHZ#defineFcclk(Fosc*4)//CCO頻率,必須為Fcclk的2、4、8、16倍,范圍為156MHz~320MHz#defineFcco(Fcclk*4)//VPB時鐘頻率,只能為(Fcclk/4)的1、2、4倍#defineFpclk(Fcclk/4)*1將系統內各時鐘的頻率定義為宏,方便用戶操作。設置晶振頻率設置內核工作頻率設置CCO輸出頻率設置外設工作頻率系統時鐘初始化——啟動代碼實例使能PLL設置VPB分頻值PLL饋送序列等待PLL鎖定設置PLL分頻值連接PLLPLL饋送序列使能PLL設置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...注意:在啟動代碼中很多地方使用了條件編譯的方法,根據用戶定義的宏來決定要設置的值,可以方便用戶使用。系統時鐘初始化——啟動代碼實例使能PLL設置VPB分頻值PLL饋送序列等待PLL鎖定設置PLL分頻值連接PLLPLL饋送序列設置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);...系統時鐘初始化——啟動代碼實例使能PLL設置VPB分頻值PLL饋送序列等待PLL鎖定設置PLL分頻值連接PLLPLL饋送序列PLL饋送序列等待PLL鎖定連接PLLPLL饋送序列C代碼分析:...PLLFEED=0xaa;PLLFEED=0x55;while((PLLSTAT&(1<<10))==0);PLLCON=3;PLLFEED=0xaa;PLLFEED=0x55;注意:在修改PLL的控制和配置寄存器后,必須寫入饋送序列,使修改生效。5.4系統控制模塊小節目錄系統控制模塊概述系統時鐘復位外部中斷存儲器映射控制功率控制喚醒定時器復位復位的分類外部復位

—把nRESET引腳拉為低電平,并保持一個最小時間,引發復位看門狗復位

—通過設置看門狗相關寄存器,當看門狗定時器溢出后,引發復位復位外部復位

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

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

AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddr...當發生異常時,程序總是跳轉到地址為0x0000~0x003F的對應入口處,在該地址范圍內存儲有異常向量表。指令未定義中止入口軟件中斷入口取數據中止入口預取指中止入口復位入口

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

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

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

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

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

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

MEMMAP為不同值時,ARM內核發生異常,程序跳轉到異常向量表的來源也不相同。MAP[1:0]映射方式00Boot裝載程序模式。異常向

溫馨提示

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

評論

0/150

提交評論