第7章LPC2132系統(tǒng)結(jié)構(gòu)資源學(xué)習(xí)資料_第1頁
第7章LPC2132系統(tǒng)結(jié)構(gòu)資源學(xué)習(xí)資料_第2頁
第7章LPC2132系統(tǒng)結(jié)構(gòu)資源學(xué)習(xí)資料_第3頁
第7章LPC2132系統(tǒng)結(jié)構(gòu)資源學(xué)習(xí)資料_第4頁
第7章LPC2132系統(tǒng)結(jié)構(gòu)資源學(xué)習(xí)資料_第5頁
已閱讀5頁,還剩93頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章

LPC2132

系統(tǒng)結(jié)構(gòu)資源

系統(tǒng)控制模塊系統(tǒng)控制模塊概述系統(tǒng)控制模塊包括一些系統(tǒng)構(gòu)件和控制寄存器,它們具有眾多與芯片內(nèi)其它外設(shè)無關(guān)的功能。系統(tǒng)控制模塊包括:系統(tǒng)時鐘單元、復(fù)位、外部中斷輸入、存儲器映射控制、功率控制和喚醒定時器。系統(tǒng)時鐘系統(tǒng)時鐘概述CPU正常工作需要有合適的時鐘信號,包括ARM7內(nèi)核使用的CCLK時鐘,和芯片外設(shè)使用的PCLK時鐘。通過LPC2000系列微控制器的時鐘產(chǎn)生單元產(chǎn)生ARM7內(nèi)核和芯片外設(shè)正常工作所需要的時鐘節(jié)拍。系統(tǒng)時鐘系統(tǒng)時鐘概述ARM7核橋外設(shè)時鐘產(chǎn)生FCCLKFPCLKFOSCCPU時鐘結(jié)構(gòu)系統(tǒng)時鐘晶體振蕩器LPC2000微控制器可以使用內(nèi)部的晶體振蕩器產(chǎn)生時鐘信號,也可以從外部引入時鐘信號。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL從屬模式振蕩模式系統(tǒng)時鐘晶體振蕩器使用從屬模式時,時鐘信號通過X1引腳從外部輸入,輸入頻率范圍:1~50(MHz),其幅度不小于200mVrms。LPC2000X1X2ClockCC從屬模式系統(tǒng)時鐘晶體振蕩器使用振蕩模式時,時鐘信號由內(nèi)部晶體振蕩器和外部連接的晶體振蕩產(chǎn)生,振蕩頻率范圍:1~30(MHz)。LPC2000X1X2CX1CX2XTAL振蕩模式系統(tǒng)時鐘晶體振蕩器注意:如果使用了ISP下載功能或者連接PLL提高頻率,則輸入的時鐘頻率范圍必須在10~25(MHz)之間。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL從屬模式振蕩模式系統(tǒng)時鐘鎖相環(huán)(PLL)由晶體振蕩器輸出的時鐘信號,通過PLL升頻,可以獲得更高的系統(tǒng)時鐘(CCLK)。PLL接受的輸入時鐘頻率范圍為10~25MHz,通過一個電流控制振蕩器(CCO)倍增到10~60MHz。PLL晶體振蕩器VPB分頻器FCCLKFPCLKFOSC10MHz~25MHz10MHz~60MHzPLLPLL內(nèi)部結(jié)構(gòu)相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLK晶體振蕩器輸入時鐘對輸入的兩路時鐘信號進(jìn)行相位頻率檢測,將兩者差值以電流形式輸出電流控制振蕩器,根據(jù)輸入電流控制振蕩頻率對輸入時鐘分頻輸入時鐘2選1開關(guān)PLL內(nèi)部結(jié)構(gòu)相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLKFCCO/2PFCCO/(2P*M)CCO自由振蕩,輸出頻率FCCO根據(jù)兩個輸入時鐘的相位偏差,控制CCO。當(dāng)兩個時鐘相位同步時,回路鎖定。PLL相關(guān)寄存器相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLKPLL控制寄存器(PLLCON):位76543210功能------PLLCPLLEPLLE:PLL使能,該位為1時將激活PLL并允許其鎖定到指定的頻率;PLLC:PLL連接,當(dāng)PLLE為1,并且在PLL鎖定后,該位為1,將把PLL作為時鐘源連接到CPU,否則直接使用振蕩器時鐘。PLLCPLLE相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLK位76543210功能------PLLCPLLE注:其中“-”表示該位保留,用戶不要向該位寫入1,讀取的值將不確定PLLCPLLEPLL相關(guān)寄存器PLL控制寄存器(PLLCON):相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLKPLLCPLLEPLL功能00PLL被關(guān)閉,并斷開連接。01PLL被激活但是尚未連接。可以在PLOCK置位后連接。10與00組合相同。避免PLL已連接,當(dāng)還沒有使能的情況。11PLL已經(jīng)使能,并連接到處理器作為系統(tǒng)時鐘源。PLLCPLLEPLL相關(guān)寄存器PLL控制寄存器(PLLCON):相位頻率檢測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相關(guān)寄存器相位頻率檢測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:讀出反映這幾個參數(shù)的設(shè)置值,寫入無效;PLOCK:反映PLL的鎖定狀態(tài)。為0時,PLL未鎖定;為1時,PLL鎖定到指定頻率。PLL相關(guān)寄存器相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLKPLL饋送寄存器(PLLFEED):PLLFEDD[7:0]:PLL饋送序列必須寫入該寄存器才能使PLL配置和控制寄存器的更改生效;位76543210功能PLLFEED[7:0]PLL相關(guān)寄存器相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLK饋送序列為:1.將值0xAA寫入PLLFEED;2.將值0x55寫入PLLFEED。位76543210功能PLLFEED[7:0]PLL相關(guān)寄存器PLL饋送寄存器(PLLFEED):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;系統(tǒng)時鐘鎖相環(huán)(PLL)計算流程1.選擇處理器的工作頻率(CCLK)2.選擇振蕩器頻率(FOSC)3.計算M值配置MSEL位4.計算P值配置PSEL位根據(jù)處理器的整體要求、UART波特率的支持等因素來決定。外圍器件的時鐘頻率可以低于處理器頻率CCLK必須為FOSC的整數(shù)倍。M=CCLK/FOSC,取值范圍1~32。寫入MSEL的值為(M-1)。選擇合適的P值,使FCCO在限制范圍內(nèi)。P只能取1、2、4或8。寫入PSEL的值為P。系統(tǒng)時鐘鎖相環(huán)(PLL)計算實例系統(tǒng)要求:FOSC=10MHz、CCLK=60MHz1.計算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)時鐘鎖相環(huán)(PLL)注意要點PLL在芯片復(fù)位或進(jìn)入掉電模式時被關(guān)閉并旁路,在掉電喚醒后不會自動恢復(fù)PLL的設(shè)定;PLL只能通過軟件使能;PLL在激活后必須等待其鎖定,然后才能連接;PLL如果設(shè)置不當(dāng)將會導(dǎo)致芯片的錯誤操作。系統(tǒng)時鐘VPB分頻器VPB分頻器將PLL輸出的時鐘信號分頻后作為芯片外設(shè)的時鐘。PLL晶體振蕩器VPB分頻器FCCLKFPCLKFOSCVPB分頻器系統(tǒng)時鐘VPB分頻器VPB分頻器決定處理器時鐘(CCLK)與外設(shè)器件所使用的時鐘(PCLK)之間的關(guān)系。VPB用途1:通過VPB總線為外設(shè)提供所需的PCLK時鐘,以便外設(shè)在合適的速度下工作;VPB用途2:在應(yīng)用不需要任何外設(shè)全速運行時使功耗降低。系統(tǒng)時鐘VPB分頻器相關(guān)寄存器位76543210功能--XCLKDIV[1:0]--VPBDIV[1:0]VPB分頻寄存器(VPBDIV):VPBDIV[1:0]:設(shè)置分頻值,可以設(shè)定3個值;XCLKDIV[1:0]:這些位用于控制LPC2200系列微控制器A23/XCLK引腳上的時鐘驅(qū)動,取值編碼方式與VPBDIV相同;系統(tǒng)時鐘VPB分頻器相關(guān)寄存器位76543210功能--XCLKDIV[1:0]--VPBDIV[1:0]VPB分頻寄存器(VPBDIV):VPBDIV[1:0]說明00VPB總線時鐘為處理器時鐘的1/4。01VPB總線時鐘與處理器時鐘相同。10VPB總線時鐘為處理器時鐘的1/2。11保留。寫入該值將不改變分頻值。系統(tǒng)時鐘初始化流程使能PLL設(shè)置VPB分頻值PLL饋送序列等待PLL鎖定設(shè)置PLL分頻值連接PLLPLL饋送序列系統(tǒng)時鐘初始化——啟動代碼實例//應(yīng)當(dāng)與實際一至晶振頻率,10MHz~25MHz,應(yīng)當(dāng)與實際一至#defineFosc11059200//系統(tǒng)頻率,必須為Fosc的整數(shù)倍(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將系統(tǒng)內(nèi)各時鐘的頻率定義為宏,方便用戶操作。設(shè)置晶振頻率設(shè)置內(nèi)核工作頻率設(shè)置CCO輸出頻率設(shè)置外設(shè)工作頻率系統(tǒng)時鐘初始化——啟動代碼實例使能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...注意:在啟動代碼中很多地方使用了條件編譯的方法,根據(jù)用戶定義的宏來決定要設(shè)置的值,可以方便用戶使用。系統(tǒng)時鐘初始化——啟動代碼實例使能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)時鐘初始化——啟動代碼實例使能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的控制和配置寄存器后,必須寫入饋送序列,使修改生效。復(fù)位復(fù)位的分類外部復(fù)位 —把nRESET引腳拉為低電平,并保持一個最小時間,引發(fā)復(fù)位看門狗復(fù)位 —通過設(shè)置看門狗相關(guān)寄存器,當(dāng)看門狗定時器溢出后,引發(fā)復(fù)位復(fù)位外部復(fù)位 外部復(fù)位引腳(nRESET)連接內(nèi)部的施密特觸發(fā)器,通過施密特觸發(fā)器可以濾除引腳輸入的干擾信號,保證復(fù)位的可靠性。如果外部復(fù)位信號一直有效,芯片將保持復(fù)位狀態(tài)。 注意:如果芯片使用了外部晶體,上電后nRESET引腳的復(fù)位信號必須保持至少10ms,以便產(chǎn)生穩(wěn)定的振蕩信號。如果晶振已經(jīng)穩(wěn)定運行且X1引腳上以出現(xiàn)穩(wěn)定信號時,nRESET引腳的復(fù)位信號只需保持至少300ns時間。1.在芯片未上電時,芯片振蕩器沒有工作;復(fù)位UX1tLPC2xxxnRESET電源輸入X1X2外部復(fù)位復(fù)位振蕩器穩(wěn)定需要一段時間UX1tLPC2xxxnRESET電源輸入X1X2外部復(fù)位2.芯片上電后,晶體振蕩器開始振蕩。因為振蕩從開始到穩(wěn)定需要一過程,所以外部復(fù)位信號至少要保持10ms;>=10ms>=300ns復(fù)位UX1t此時振蕩器穩(wěn)定工作外部復(fù)位LPC2xxxnRESET電源輸入X1X23.在晶體振蕩器保持穩(wěn)定振蕩,或者使用有源鐘振時,外部復(fù)位信號可以縮短到不小于300ns;復(fù)位任何復(fù)位源引起的芯片復(fù)位都會啟動喚醒定時器,當(dāng)計數(shù)到一個固定個數(shù)的時鐘時,處理器開始執(zhí)行指令。這確保振蕩器和芯片所需要的其它模擬電路在處理器開始執(zhí)行指令之前能夠正確工作。外部復(fù)位與內(nèi)部看門狗復(fù)位的共同點復(fù)位外部復(fù)位與內(nèi)部看門狗復(fù)位的區(qū)別外部復(fù)位將把某幾個特定引腳的值鎖存,來決定系統(tǒng)復(fù)位后的狀態(tài),而看門狗(WDT)復(fù)位則無此功能。檢測引腳鎖存狀態(tài)對應(yīng)功能P1.20/TRACESYNC0P1.25~P1.16作為跟蹤端口P1.26/RTCK0P1.31~P1.26作為調(diào)試端口P0.140進(jìn)入ISP狀態(tài)BOOT1、BOOT2全1內(nèi)部Flash啟動,否則外部啟動復(fù)位復(fù)位后的系統(tǒng)狀態(tài)芯片被復(fù)位后,處理器和外設(shè)寄存器都恢復(fù)為默認(rèn)狀態(tài)。程序計數(shù)器(PC)值為0,即CPU復(fù)位后運行的第一條代碼位于0x00000000處。此時位于該地址的程序并不位于片內(nèi)Flash,而是來自BootBlock的異常向量表的重新映射。通過異常向量表的復(fù)位異常入口,程序跳轉(zhuǎn)至BootBlock中執(zhí)行Boot程序。復(fù)位復(fù)位后的系統(tǒng)狀態(tài)FlashSRAMBootBlockAHB&VPB0x000000000xFFFFFFFF0x400000000x80000000地址空間1.復(fù)位后用戶見到的存儲器分布2.BootBlock中的異常向量表重新映射復(fù)位復(fù)位后的系統(tǒng)狀態(tài)FlashSRAMBootBlockAHB&VPB0x000000000xFFFFFFFF0x400000000x80000000地址空間復(fù)位異常入口未定義異常入口軟件中斷入口...0x000000000x000000040x000000080x00000040PC指向3.PC指向0x0000地址處,CPU執(zhí)行復(fù)位后的第一條指令復(fù)位復(fù)位后的系統(tǒng)狀態(tài)FlashSRAMBootBlockAHB&VPB0x000000000xFFFFFFFF0x400000000x80000000地址空間復(fù)位異常入口未定義異常入口軟件中斷入口...0x000000040x000000080x000000404.通過跳轉(zhuǎn)指令,程序跳入BootBlock,執(zhí)行Boot程序。復(fù)位復(fù)位后的系統(tǒng)狀態(tài)PC指向FlashSRAMBootBlockAHB&VPB0x000000000xFFFFFFFF0x400000000x80000000地址空間復(fù)位異常入口未定義異常入口軟件中斷入口...0x000000040x000000080x00000040復(fù)位Boot程序Boot程序是芯片生產(chǎn)廠家固化在芯片中的一段代碼,它完成芯片復(fù)位后的初始化操作,并提供實現(xiàn)Flash編程的方法。Boot裝載程序可啟動對空片的編程、已編程器件的擦除和再編程,以及在運行的系統(tǒng)中由應(yīng)用程序?qū)lash存儲器進(jìn)行編程。Boot程序工作流程——LPC2114/2124復(fù)位運行ISP服務(wù)程序看門狗復(fù)位根據(jù)硬件(P1.20、P1.26)配置進(jìn)入ISP狀態(tài)嗎?(P0.14為低)初始化用戶代碼是否有效執(zhí)行用戶代碼(片內(nèi)Flash:0x00000000)NYYYNN在此檢測特定引腳檢測用戶代碼是否有效Boot程序工作流程——LPC2210/2212/2214復(fù)位看門狗復(fù)位進(jìn)入ISP模式?(P0.14為低)初始化用戶代碼是否有效芯片加密允許調(diào)試外部引導(dǎo)芯片加密運行ISP服務(wù)程序執(zhí)行外部用戶代碼(0x80000000)執(zhí)行內(nèi)部用戶代碼(0x00000000)NNYYNNNNYYYY在此檢測特定引腳檢測用戶代碼是否有效復(fù)位有效用戶代碼的判別LPC2000系列微控制器規(guī)定“內(nèi)部Flash中向量表所有數(shù)據(jù)的32位累加為零”時,判定內(nèi)部Flash中的代碼為有效可執(zhí)行代碼。即只有當(dāng)向量表所有數(shù)據(jù)32位累加和為零時,用戶的程序才能脫機(jī)運行。有效用戶代碼的判別CODE32AREAvectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddr...DCD0xb9205f80LDRPC,[PC,#-0xff0]LDRPC,FIQ_AddrResetAddrDCDResetInitUndefinedAddrDCDUndefined...NouseDCD0IRQ_AddrDCD0FIQ_AddrDCDFIQ_Handler異常向量表前32字節(jié)為異常入口后32字節(jié)為跳轉(zhuǎn)地址有效用戶代碼的判別Reset[0xe59ff018]ldrpc,ResetAddr[0xe59ff018]ldrpc,UndefinedAddr...[0xb9205f80]dcd0xb9205f80[0xe51ffff0]ldrpc,0x7ffff030[0xe59ff018]ldrpc,FIQ_AddrResetAddr[0x8000008c]dcd0x8000008cUndefinedAddr[0x80000040]dcd0x80000040...Nouse[0x00000000]dcd0x00000000IRQ_Addr[0x00000000]dcd0x00000000FIQ_Addr[0x8000004c]dcd0x8000004c異常向量表反匯編代碼指令的機(jī)器碼指令有效用戶代碼的判別Reset[0xe59ff018]ldrpc,ResetAddr[0xe59ff018]ldrpc,UndefinedAddr...[0xb9205f80]dcd0xb9205f80[0xe51ffff0]ldrpc,0x7ffff030[0xe59ff018]ldrpc,FIQ_AddrResetAddr[0x8000008c]dcd0x8000008cUndefinedAddr[0x80000040]dcd0x80000040...Nouse[0x00000000]dcd0x00000000IRQ_Addr[0x00000000]dcd0x00000000FIQ_Addr[0x8000004c]dcd0x8000004c異常向量表反匯編代碼8條指令的機(jī)器碼累加和為0,表示用戶代碼有效Reset[0xe59ff018]ldrpc,ResetAddr[0xe59ff018]ldrpc,UndefinedAddr...[0xb9205f80]dcd0xb9205f80[0xe51ffff0]ldrpc,0x7ffff030[0xe59ff018]ldrpc,FIQ_AddrResetAddr[0x8000008c]dcd0x8000008cUndefinedAddr[0x80000040]dcd0x80000040...Nouse[0x00000000]dcd0x00000000IRQ_Addr[0x00000000]dcd0x00000000FIQ_Addr[0x8000004c]dcd0x8000004c異常向量表反匯編代碼8條指令的機(jī)器碼累加和為0,表示用戶代碼有效有效用戶代碼的判別[0x00000000][0xe59ff018][0xe59ff018]...[0xb9205f80][0xe51ffff0][0xe59ff018]跳轉(zhuǎn)地址數(shù)據(jù)不在累加范圍內(nèi)通過調(diào)整該保留字,使累加和為0實時時鐘RTC內(nèi)部結(jié)構(gòu)時鐘發(fā)生器預(yù)分頻器時間計數(shù)器報警控制=時鐘控制增量中斷控制中斷標(biāo)志報警寄存器PCLK產(chǎn)生秒時鐘時間寄存器組與報警設(shè)定值進(jìn)行比較有兩類中斷,一種是時間增量中斷,一種是報警中斷時鐘發(fā)生器預(yù)分頻器時間計數(shù)器報警控制=時鐘控制增量中斷控制中斷標(biāo)志報警寄存器PCLK寄存器描述時鐘發(fā)生器預(yù)分頻器時間計數(shù)器報警控制=時鐘控制增量中斷控制中斷標(biāo)志報警寄存器PCLK時間計數(shù)器時鐘發(fā)生器預(yù)分頻器時鐘控制報警控制增量中斷控制中斷標(biāo)志報警寄存器所有寄存器大致可以分為三類:時鐘產(chǎn)生寄存器;時間寄存器組;中斷產(chǎn)生控制;寄存器描述時間計數(shù)器=時鐘發(fā)生器預(yù)分頻器時鐘控制報警控制增量中斷控制中斷標(biāo)志報警寄存器PCLK時鐘產(chǎn)生寄存器組控制產(chǎn)生RTC時間計數(shù)器需要的秒時鐘信號?!獣r鐘產(chǎn)生寄存器組名稱有效位描述訪問PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫CCR4時鐘節(jié)拍計數(shù)器讀寫CTC15時鐘控制寄存器只讀寄存器描述——預(yù)分頻寄存器名稱有效位描述訪問PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫CCR4時鐘節(jié)拍計數(shù)器讀寫CTC15時鐘控制寄存器只讀名稱有效位描述訪問PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫CCR4時鐘節(jié)拍計數(shù)器讀寫CTC15時鐘控制寄存器只讀PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫預(yù)分頻器用于將任何頻率高于67.536KHz的PCLK時鐘分頻產(chǎn)生32.768KHz的基準(zhǔn)時鐘。這樣就可以不管外設(shè)時鐘的頻率為多少,RTC總是以正確的速率運行。預(yù)分頻寄存器分為整數(shù)部分和小數(shù)部分,因此有可能某個時鐘節(jié)拍多包含一個PCLK周期,而某個節(jié)拍卻少一個PCLK周期。但是每個時鐘節(jié)拍的周期一定是32768個PCLK周期。寄存器描述預(yù)分頻整數(shù)部分為13位有效位,小數(shù)部分為15位有效位。預(yù)分頻整數(shù)部分的計算公式為:PREINT=int(PCLK/32768)–1預(yù)分頻小數(shù)部分的計算公式為:PREFRAC=PCLK–((PREINT+1)×32768)——預(yù)分頻寄存器名稱有效位描述訪問PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫CCR4時鐘節(jié)拍計數(shù)器讀寫CTC15時鐘控制寄存器只讀PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫寄存器描述——時鐘控制寄存器名稱有效位描述訪問PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫CCR4時鐘節(jié)拍計數(shù)器讀寫CTC15時鐘計數(shù)寄存器只讀時鐘控制寄存器包含4位有效位,它用于控制時鐘分頻電路的操作,包括啟動RTC和復(fù)位時鐘節(jié)拍計數(shù)器(CTC)等功能。CCR4時鐘控制寄存器讀寫位功能描述0CLKEN時鐘使能。當(dāng)該位為1時,時間計數(shù)器使能。為0時,時間計數(shù)器被禁止,這時可對其初始化。1CTCRSTCTC復(fù)位。為1時,時鐘節(jié)拍計數(shù)器復(fù)位。在CCR的bit1變?yōu)?之前,它將一直保持復(fù)位狀態(tài)。3:2CTTEST測試使能。在正常操作中,這些位應(yīng)當(dāng)全為0。寄存器描述——時鐘計數(shù)寄存器名稱有效位描述訪問PREINT13預(yù)分頻值,整數(shù)部分讀寫PREFRAC15預(yù)分頻值,小數(shù)部分讀寫CCR4時鐘節(jié)拍計數(shù)器讀寫CTC15時鐘計數(shù)寄存器只讀時鐘節(jié)拍計數(shù)器對預(yù)分頻器的輸出時鐘進(jìn)行計數(shù),用于產(chǎn)生秒的時鐘節(jié)拍。它是一個只讀寄存器,但它可通過時鐘控制寄存器(CCR)復(fù)位為0。CTC15時鐘計數(shù)寄存器只讀位功能描述0保留用戶程序不要向該位寫入115:1時鐘節(jié)拍計數(shù)器對預(yù)分頻器的時鐘輸出進(jìn)行計數(shù),每計滿32768個時鐘,該寄存器復(fù)位,并向時間計數(shù)器發(fā)送一個秒脈沖寄存器描述時間計數(shù)器=時鐘發(fā)生器預(yù)分頻器時鐘控制報警控制增量中斷控制中斷標(biāo)志報警寄存器PCLK時間計數(shù)器組中包含當(dāng)前的時間,它們分為兩類:完整時間寄存器和分類時間寄存器?!獣r間計數(shù)器寄存器描述時間計數(shù)器=時鐘發(fā)生器預(yù)分頻器時鐘控制報警控制增量中斷控制中斷標(biāo)志報警寄存器PCLK——時間計數(shù)器名稱有效位描述CTIME032包含秒、分、時和星期。CTIME132包含日期(月)、月和年CTIME232包含日期(年)在完整時間寄存器中,時間以一個比較完整的格式存儲,程序只需要3次讀操作即可讀出所有計數(shù)器值。這些寄存器為只讀寄存器。寄存器描述——時間計數(shù)器名稱有效位描述CTIME032包含秒、分、時和星期。CTIME132包含日期(月)、月和年CTIME232包含日期(年)名稱有效位描述CTIME032包含秒、分、時和星期。CTIME132包含日期(月)、月和年CTIME232包含日期(年)(0~59)—(0~59)—(0~23)—(0~6)—取值范圍秒保留分保留小時保留星期保留功能5:07:613:815:1430:1623:2126:2431:27CTIME0(1~28,29,30)—(1~12)—(0~4095)—取值范圍日期(月)保留月保留年保留功能4:07:511:815:1227:1631:28CTIME1(1~365,366)—取值范圍日期(年)保留功能8:031:9CTIME2這兩個寄存器意義不同,(月)表示當(dāng)日在當(dāng)月中的序號,(年)表示當(dāng)日在當(dāng)年中的序號寄存器描述——時間計數(shù)器分類時間寄存器包含8個寄存器,所有寄存器都可讀可寫。名稱有效位描述SEC6秒值。該值的范圍為0~59。MIN6分值。該值的范圍為0~59。HOUR5小時值。該值的范圍為0~23。DOM5日期(月)值。該值的范圍為1~28,29,30或31(取決于月份以及是否為閏年)。DOW3星期值。該值的范圍為1~365(閏年為366)。DOY9日期(年)值。該值的范圍為1~365。MONTH4月值。該值的范圍為1~12。YEAR12年值。該值的范圍為0~4095。名稱有效位描述SEC6秒值。該值的范圍為0~59。MIN6分值。該值的范圍為0~59。HOUR5小時值。該值的范圍為0~23。DOM5日期(月)值。該值的范圍為1~28,29,30或31(取決于月份以及是否為閏年)。DOW3星期值。該值的范圍為1~365(閏年為366)。DOY9日期(年)值。該值的范圍為1~365。MONTH4月值。該值的范圍為1~12。YEAR12年值。該值的范圍為0~4095。注意:這些日期的寄存器只能在適當(dāng)?shù)臅r間間隔處遞增,而在定義的溢出點處復(fù)位。為了使這些值有意義,它們不能進(jìn)行計算且必須正確初始化。其中DOY寄存器需要單獨初始化,也就是說該寄存器的值不會因為對年、月、日寄存器進(jìn)行初始化而自動確定到一個正確的值。寄存器描述時間計數(shù)器=時鐘發(fā)生器預(yù)分頻器時鐘控制報警控制增量中斷控制中斷標(biāo)志報警寄存器PCLKRTC部件的中斷分為兩類,一類為時間計數(shù)器的增量中斷,由增量中斷寄存器控制。另一類為報警匹配產(chǎn)生的中斷,由報警屏蔽寄存器控制?!袛喈a(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫寄存器描述——中斷產(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫位功能描述0RTCCIF為1時,表示計數(shù)器增量中斷模塊產(chǎn)生了中斷。向該位寫入1清除該中斷標(biāo)志。1RTCALF為1時,表示報警寄存器產(chǎn)生了中斷。向該位寫入1清除該中斷標(biāo)志位。中斷位置寄存器是一個2位的寄存器,它指出哪些模塊產(chǎn)生中斷,它實際上是一個中斷標(biāo)志寄存器。寄存器描述——中斷產(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫計數(shù)器增量中斷寄存器可使計數(shù)器每次增加時產(chǎn)生一次中斷,比如設(shè)置秒增加中斷為1,則每秒均產(chǎn)生一次中斷。在清除增量中斷標(biāo)志之前,該中斷一直保持有效。寄存器描述——中斷產(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫CIIR功能描述0IMSEC為1時,秒值的增加產(chǎn)生一次中斷。1IMMIN為1時,分值的增加產(chǎn)生一次中斷。2IMHOUR為1時,小時值的增加產(chǎn)生一次中斷。3IMDOM為1時,日期(月)的增加產(chǎn)生一次中斷。4IMDOW為1時,星期值的增加產(chǎn)生一次中斷。5IMDOY為1時,日期(年)的增加產(chǎn)生一次中斷。6IMMON為1時,月值的增加產(chǎn)生一次中斷。7IMYEAR為1時,年值的增加產(chǎn)生一次中斷。寄存器描述——中斷產(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫報警屏蔽寄存器允許用戶屏蔽任意的報警寄存器,被屏蔽的報警寄存器將不與時間計數(shù)器比較。未被屏蔽的報警寄存器與時間計數(shù)器比較如果匹配,將產(chǎn)生中斷。該中斷只有在從不匹配到匹配時才發(fā)生,可以避免中斷重復(fù)。注意:如果所有屏蔽位都置位,報警將被禁止。寄存器描述——中斷產(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫AMR功能描述0AMRSEC為1時,秒值不與報警寄存器比較。1AMRMIN為1時,分值不與報警寄存器比較。2AMRHOUR為1時,小時值不與報警寄存器比較。3AMRDOM為1時,日期(月)值不與報警寄存器比較。4AMRDOW為1時,星期值不與報警寄存器比較。5AMRDOY為1時,日期(年)值不與報警寄存器比較。6AMRMON為1時,月值不與報警寄存器比較。7AMRYEAR為1時,年值不與報警寄存器比較。寄存器描述——中斷產(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫報警寄存器的值與時間計數(shù)器相比較,如果所有未被屏蔽的報警寄存器都與它們對應(yīng)的時間計數(shù)器相匹配,那么將產(chǎn)生一次中斷。向中斷位置寄存器的bit1寫入1清除中斷。名稱描述訪問ALSEC秒報警值讀寫ALMIN分報警值讀寫ALHOUR小時報警值讀寫ALDOM日期(月)報警值讀寫ALDOW星期報警值讀寫ALDOY日期(年)報警值讀寫ALMON月報警值讀寫ALYEAR年報警值讀寫寄存器描述——中斷產(chǎn)生寄存器名稱描述訪問ILR中斷位置寄存器讀寫CIIR遞增中斷寄存器讀寫AMR報警屏蔽寄存器讀寫報警寄存器組設(shè)定報警時間讀寫7.17實時時鐘使用RTC的注意要點RTC部件使用VPB時鐘,如果該時鐘出現(xiàn)任何的異常都會導(dǎo)致時間值的偏移,所以芯片不能進(jìn)入掉電模式;芯片掉電后RTC不能保持寄存器的內(nèi)容;芯片復(fù)位后只有預(yù)分頻寄存器被硬件初始化,其它寄存器的內(nèi)容不受復(fù)位影響;RTC部件的閏年計算比較簡單,當(dāng)年計數(shù)器的最低兩位為0時,認(rèn)為該年為閏年,這在2100年時會出錯。閏年影響2月份的日期數(shù)和年的日期數(shù)。RTC使用示例設(shè)置RTC基準(zhǔn)時鐘分頻器初始化RTC時鐘值報警中斷設(shè)置啟動RTC讀取當(dāng)前時間或等待中斷操作流程VoidRTCIni(void){PREINT=Fpclk/32768–1;PREFRAC=Fpclk–(Fpclk/32768)*32768;YEAR=200;MONTH=2;DOM=19;DOW=4;HOUR=8;MIN=30;SEC=0;CIIR=0x01;CCR=0x01;}RTC使用示例設(shè)置預(yù)分頻寄存器設(shè)置年設(shè)置月設(shè)置日(月)設(shè)置星期設(shè)置小時設(shè)置分設(shè)置秒設(shè)置增量中斷啟動RTC——RTC初始化示例...ILR=0x03; //清除RTC中斷標(biāo)志CIIR=0x02; //設(shè)置分值增量中斷ALHOUR=12; //設(shè)置小時比較值A(chǔ)LMIN=0; //設(shè)置分比較值A(chǔ)LSEC=0;//設(shè)置秒比價值A(chǔ)MR=0xF8;//設(shè)置報警屏蔽寄存器 //只允許時、分、秒比較...RTC使用示例——RTC定時報警設(shè)置8.1最小系統(tǒng)簡介一個嵌入式處理器自己是不能獨立工作的,必須給它供電、加上時鐘信號、提供復(fù)位信號,如果芯片沒有片內(nèi)程序存儲器,則還要加上存儲器系統(tǒng),然后嵌入式處理器芯片才可能工作。這些提供嵌入式處理器運行所必須的條件的電路與嵌入式處理器共同構(gòu)成了這個嵌入式處理器的最小系統(tǒng)。而大多數(shù)基于ARM7處理器核的微控制器都有調(diào)試接口,這部分在芯片實際工作時不是必需的,但因為這部分在開發(fā)時很重要,所以也把這部分也歸入最小系統(tǒng)中。8.1最小系統(tǒng)簡介嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)可選,因為許多面向嵌入式領(lǐng)域的微控制器內(nèi)部集成了程序和數(shù)據(jù)存儲器——最小系統(tǒng)框圖可選,但是在樣品階段通常都會設(shè)計這部分電路嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)各部件簡介——電源供電系統(tǒng)(電源)電源系統(tǒng)為整個系統(tǒng)提供能量,是整個系統(tǒng)工作的基礎(chǔ),具有極其重要的地位,但卻往往被忽略。如果電源系統(tǒng)處理得好,整個系統(tǒng)的故障往往減少了一大半。各部件簡介——電源嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)供電系統(tǒng)(電源)設(shè)計電源時要考慮的因素:1.輸出的電壓、電流、功率;2.輸入的電壓、電流;3.安全因素;4.輸出紋波;7.電池兼容和電磁干擾;8.體積限制;7.功耗限制;8.成本限制。對于LPC2200系列微控制器,它有4組電源輸入。理想情況下需要提供4組獨立的電源,它們需要單點接地或大面積接地。甚至還有為系統(tǒng)中其它的部件提供更多種類的電源。但如果沒有使用LPC2000內(nèi)部的AD功能,或?qū)D的要求不高,模擬電源和數(shù)字電源可以不分開供電。這樣LPC2200和LPC210x都只需要兩組電源。各部件簡介——電源1.分析需求LPC2000系列微控制所需要的電源類型:電壓型號3.3V1.8VLPC210xV3.3V1.8LPC22xxV3.3D、V3.3AV1.8D、V1.8ALPC213xV3.3D、V3.3A無V3.3D表示數(shù)字電源,V3.3A表示模擬電源。LPC2104/05/06無模擬和數(shù)字之分。各部件簡介——電源2.設(shè)計末級電源電路LPC2000系列微控制1.8V消耗電流的極限值為70mA。為了保證可靠性并為以后升級留下余量,則電源系統(tǒng)1.8V能夠提供的電流應(yīng)當(dāng)大于300mA。整個系統(tǒng)在3.3V上消耗的電流與外部條件有很大的關(guān)系,這里假設(shè)電流不超過200mA,這樣,電源系統(tǒng)3.3V能夠提供600mA電流即可。分析得到以下參數(shù):3.3V電源設(shè)計最大電流:600mA;1.8V電源設(shè)計最大電流:300mA。各部件簡介——電源2.設(shè)計末級電源電路在了解功率消耗之后,需要選擇合適的器件。因為系統(tǒng)對這兩組電壓的要求比較高,且其功耗不是很大,所以不適合用開關(guān)電源,應(yīng)當(dāng)用低壓差模擬電源(LDO)。合乎技術(shù)參數(shù)的LDO芯片很多,Sipex半導(dǎo)體SPX1117是一個較好的選擇,它的性價比較好,且有一些產(chǎn)品可以與它直接替換,減少采購風(fēng)險。各部件簡介——電源SPX1117主要特點: 0.8A穩(wěn)定輸出電流; 1A穩(wěn)定峰值電流; 3V可調(diào)節(jié); 低靜態(tài)電流;

0.8A時低壓差為1.1V; 0.1%線形調(diào)整率; 0.2%負(fù)載調(diào)整率; 過流及溫度保護(hù);

多種封裝供選擇。

各部件簡介——電源3.設(shè)計前級電源電路盡管SPX1117允許的輸入電壓可達(dá)20V(參考芯片數(shù)據(jù)手冊),但太高的電壓使芯片的發(fā)熱量上升,散熱系統(tǒng)不好設(shè)計,同時影響芯片的性能。這樣,就需要前級電路調(diào)整一下。如果系統(tǒng)可能使用多種電源(如交流電和電池),各種電源的電壓輸出不一樣,就更需要前級調(diào)整以適應(yīng)末級的輸入。通過之前的分析,前級的輸出選擇為5V。選擇5V作為前級的輸出有兩個原因:這個電壓滿足SPX1117的要求;目前很多器件還是需要5V供電的,這個5V可以兼做前級和末級了。各部件簡介——電源3.設(shè)計前級電源電路根據(jù)系統(tǒng)在5V上消耗的電流和體積、成本等方面的考慮,前級電路可以使用開關(guān)電源,也可以使用模擬電源。它們的特別如下:開關(guān)電源:效率較高,可以減少發(fā)熱量,因而在功率較大時可以減小電源模塊的體積;模擬電源:電路簡單,輸出電壓紋波較小,并且干擾較開關(guān)電源小得多。各部件簡介——電源模擬電源開關(guān)電源嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)各部件簡介——時鐘目前所有的微控制器均為時序電路,需要一個時鐘信號才能工作,大多數(shù)微控制器具有晶體振蕩器。簡單的方法是利用微控制器內(nèi)部的晶體振蕩器,但有些場合(如減少功耗、需要嚴(yán)格同步等情況)需要使用外部振蕩源提供時鐘信號。時鐘系統(tǒng)各部件簡介——時鐘目前所有的微控制器均為時序電路,需要一個時鐘信號才能工作,大多數(shù)微控制器具有晶體振蕩器。簡單的方法是利用微控制器內(nèi)部的晶體振蕩器,但有些場合(如減少功耗、需要嚴(yán)格同步等情況)需要使用外部振蕩源提供時鐘信號。LPC2000X1X2CCXtalLPC2000X1X2C

溫馨提示

  • 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

提交評論