單片機(jī)原理與實(shí)踐-第二章_第1頁
單片機(jī)原理與實(shí)踐-第二章_第2頁
單片機(jī)原理與實(shí)踐-第二章_第3頁
單片機(jī)原理與實(shí)踐-第二章_第4頁
單片機(jī)原理與實(shí)踐-第二章_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2023年1月8日1Cortex-M4原理與實(shí)踐第二章Cortex-M4F微處理器的系統(tǒng)控制主講人:陳朋(博士、副教授)地址:1號樓D325Email:2023年1月8日Cortex-M4原理與實(shí)踐2主要內(nèi)容提綱2.1系統(tǒng)控制相關(guān)信號描述2.2系統(tǒng)控制功能概述2023年1月8日3第二章Cortex-M4F微處理器的系統(tǒng)控制2.1系統(tǒng)控制相關(guān)信號描述2023年1月8日4系統(tǒng)控制相關(guān)信號描述Cortex-M4F微處理器的系統(tǒng)控制確定器件的所有操作,并提供器件的有關(guān)信息。這些操作包括復(fù)位、電源、時(shí)鐘、低功耗模式的控制以及NMI控制。系統(tǒng)控制的具體功能如下:提供器件標(biāo)識信息;局部控制:復(fù)位、電源和時(shí)鐘控制;工作模式控制:運(yùn)行、睡眠和深度睡眠模式控制。Cortex-M4原理與實(shí)踐2023年1月8日5系統(tǒng)控制和時(shí)鐘信號Cortex-M4原理與實(shí)踐管腳名稱管腳編號管腳復(fù)用/管腳賦值管腳類型緩沖區(qū)類型描述DIVSCLK102PQ4(7)輸出TTL基于選定的時(shí)鐘源,輸出一個(gè)可選擇的分頻參考時(shí)鐘NMI128PD7(8)輸入TTL不可屏蔽中斷OSC088固定輸入模擬主振蕩器晶體輸入或外部時(shí)鐘參考輸入。OSC189固定輸出模擬主振蕩器晶體輸出。當(dāng)使用外部單端參考時(shí)鐘源時(shí),此管腳應(yīng)懸空。RST70固定輸入TTL系統(tǒng)復(fù)位輸入2023年1月8日62.2系統(tǒng)控制功能概述第二章Cortex-M4F微處理器的系統(tǒng)控制2023年1月8日72.2.1器件標(biāo)識信息Cortex-M4F微處理器中有些只讀寄存器給軟件提供有關(guān)微處理器的信息,包括版本、元件型號、內(nèi)部存儲器大小和外設(shè)信息等。例如,器件標(biāo)識0寄存器DID0和器件標(biāo)識1寄存器DID1提供器件版本、封裝和工作溫度范圍等信息。從系統(tǒng)控制偏移地址0x300開始和0xFC0開始的寄存器分別提供了外設(shè)詳細(xì)信息,例如偏移地址0x300的寄存器PPWD(WatchdogTimerPeripheralPresent)提供了芯片上是否有看門狗定時(shí)器0或1的信息等。此外,還有4個(gè)唯一標(biāo)識符寄存器n(UNIQUEIDn),為每一個(gè)微處理器提供了一個(gè)128位的獨(dú)一無二的設(shè)備標(biāo)識符,該標(biāo)識符無法被修改。Cortex-M4原理與實(shí)踐2023年1月8日82.2.2復(fù)位控制TM4C1294微處理器有8種復(fù)位方式,包括:上電復(fù)位POR(Power-onreset)外部復(fù)位引腳RST\低電平復(fù)位內(nèi)部掉電復(fù)位BOR(brown-outdetector)軟件引起的復(fù)位看門狗定時(shí)器復(fù)位休眠模式事件復(fù)位軟件通過硬件系統(tǒng)重啟服務(wù)請求復(fù)位(HSSR)MOSC失效復(fù)位Cortex-M4原理與實(shí)踐2023年1月8日9復(fù)位源Cortex-M4原理與實(shí)踐復(fù)位源內(nèi)核是否復(fù)位JTAG是否復(fù)位片上外設(shè)是否復(fù)位上電復(fù)位是是是RST是僅管腳配置是掉電復(fù)位是僅管腳配置是使用APINT寄存器中的SYSRESREQ位進(jìn)行軟件系統(tǒng)請求復(fù)位。是僅管腳配置是使用APINT寄存器中的VECTRESET位進(jìn)行軟件系統(tǒng)請求復(fù)位。是否否軟件外設(shè)復(fù)位否僅管腳配置是看門狗復(fù)位是僅管腳配置是MOSC失敗復(fù)位是僅管腳配置是休眠模式復(fù)位是僅管腳配置是HSSR復(fù)位是僅管腳配置是2023年1月8日10上電復(fù)位PORCortex-M4原理與實(shí)踐當(dāng)外部產(chǎn)生上電復(fù)位時(shí),內(nèi)部上電復(fù)位(POR)電路監(jiān)測電源電壓(VDD),并且在電源達(dá)到閾值(VPOR)時(shí)向包括JTAG在內(nèi)的所有內(nèi)部邏輯產(chǎn)生復(fù)位信號。當(dāng)片上上電復(fù)位脈沖結(jié)束時(shí),微控制器必須在規(guī)定的參數(shù)范圍內(nèi)工作。上電復(fù)位序列如下:微控制器等待內(nèi)部POR變?yōu)闊o效。內(nèi)部復(fù)位釋放,內(nèi)核從存儲器加載初始堆棧指針、初始程序計(jì)數(shù)器以及由程序計(jì)數(shù)器指定的第1條指令,然后開始執(zhí)行。2023年1月8日11上電復(fù)位PORReset(Internal)

R2DigitalPORR1Cortex-M4原理與實(shí)踐2023年1月8日121.如果應(yīng)用中只使用內(nèi)部POR電路,那么(RST)輸入必須通過一個(gè)可選的上拉電阻(0至100K?)連接到電源(VDD),如圖所示。(RST)輸入的濾波功能需要最小脈寬,以便復(fù)位脈沖被識別。外部復(fù)位引腳(RST)低電平復(fù)位Cortex-M4原理與實(shí)踐2023年1月8日132.為提高噪聲免疫和/或延遲上電復(fù)位,(RST)輸入可以連接至一個(gè)RC網(wǎng)絡(luò)外部復(fù)位引腳(RST)低電平復(fù)位Cortex-M4原理與實(shí)踐3.如果如果應(yīng)用中需要使用外部復(fù)位開關(guān),右圖給出了參考電路。RPU和C1元件確定了上電延時(shí)時(shí)間。2023年1月8日14外部復(fù)位引腳(RST)低電平復(fù)位Cortex-M4原理與實(shí)踐2023年1月8日15外部復(fù)位管腳(RST)復(fù)位微控制器,包括內(nèi)核和所有片上外設(shè)。外部復(fù)位步驟如下外部復(fù)位管腳(RST)在TMIN規(guī)定的時(shí)間持續(xù)有效,然后失效。內(nèi)部復(fù)位釋放,內(nèi)核從存儲器加載初始堆棧指針、初始程序計(jì)數(shù)器以及由程序計(jì)數(shù)器指定的第1條指令,然后開始執(zhí)行。外部復(fù)位引腳(RST)低電平復(fù)位Cortex-M4原理與實(shí)踐器件內(nèi)部的BOR檢測器(brown-outdetector)檢測電源電壓VDD(外部)或VDDA(模擬),當(dāng)其低于相對應(yīng)的閾值電壓時(shí),系統(tǒng)將產(chǎn)生一個(gè)中斷或者系統(tǒng)復(fù)位。應(yīng)用程序可以通過讀取Power-TemperatureCause(PWRTC)寄存器來識別BOR類型。BOR檢測電路可以通過設(shè)置Power-OnandBrown-OutControl(PBOCTL)寄存器來產(chǎn)生一個(gè)復(fù)位、系統(tǒng)控制中斷或不可屏蔽中斷(NMI)。2023年1月8日16掉電復(fù)位BORCortex-M4原理與實(shí)踐2023年1月8日17掉電復(fù)位BOR時(shí)序圖Cortex-M4原理與實(shí)踐2023年1月8日18軟件復(fù)位軟件既可以使整個(gè)器件復(fù)位,也可以單獨(dú)使內(nèi)核或者某個(gè)外設(shè)復(fù)位。(1)通過軟件將寄存器APINT的SYSRESREQ位置位,可以使整個(gè)器件復(fù)位;(2)通過軟件將寄存器APINT的VECTRESET位置位,可以使內(nèi)核復(fù)位;(3)通過軟件將特定外設(shè)軟件復(fù)位寄存器(叢偏移地址0x500開始)的對應(yīng)位置位,然后清除,可以使特定外設(shè)復(fù)位。Cortex-M4原理與實(shí)踐2023年1月8日19軟件復(fù)位時(shí)序圖SoftwareResetReset(Internal)R6Cortex-M4原理與實(shí)踐看門狗定時(shí)器的作用是為了避免系統(tǒng)懸掛。TM4C1294微處理器有兩個(gè)看門狗定時(shí)器,一個(gè)工作于系統(tǒng)時(shí)鐘下,另一個(gè)工作于精密內(nèi)部時(shí)鐘PIOSC(PrecisionInternalOscillator)下。每個(gè)看門狗定時(shí)器均可配置為:在第一次溢出時(shí)產(chǎn)生一個(gè)中斷或非屏蔽中斷NMI(當(dāng)看門狗控制寄存器WDTCTL的INTTYPE和INTEN位被設(shè)置時(shí)),在第二次溢出時(shí)產(chǎn)生一個(gè)復(fù)位??撮T狗定時(shí)器第一次溢出后,32位的看門狗計(jì)數(shù)器將重新裝載寄存器WatchdogTimerLoad(WDTLOAD)的值,然后繼續(xù)減數(shù)計(jì)數(shù)。若看門狗復(fù)位被使能了(當(dāng)看門狗控制寄存器WDTCTL的RESEN位被置位時(shí)),則在第二次溢出后將產(chǎn)生復(fù)位信號。2023年1月8日20看門狗定時(shí)器復(fù)位Cortex-M4原理與實(shí)踐2023年1月8日21看門狗定時(shí)器復(fù)位序列看門狗定時(shí)器第二次溢出時(shí)沒有被服務(wù)。內(nèi)部復(fù)位有效。內(nèi)部復(fù)位釋放,微控制器從存儲器加載初始堆棧指針、初始程序計(jì)數(shù)器以及由程序計(jì)數(shù)器指定的第1條指令,然后開始執(zhí)行。Cortex-M4原理與實(shí)踐WatchdogResetReset(Internal)R72023年1月8日22休眠模式復(fù)位休眠模塊被配置且經(jīng)過冷上電初始化,隨后進(jìn)入休眠模式,喚醒事件(不包括外部復(fù)位引腳喚醒)使模塊產(chǎn)生系統(tǒng)復(fù)位,該復(fù)位信號復(fù)位裝置中除休眠模塊外的所有電路。休眠模塊的所有寄存器在復(fù)位后保留原值。Cortex-M4原理與實(shí)踐2023年1月8日23休眠模式復(fù)位當(dāng)休眠模塊的VDD啟用且接收到喚醒事件,會產(chǎn)生如下的系統(tǒng)復(fù)位序列:設(shè)置RESC寄存器中的上電復(fù)位位或EXT位。內(nèi)部復(fù)位生效。內(nèi)部復(fù)位釋放,微控制器從存儲器中加載初始堆棧指針,初始程序計(jì)數(shù)器以及由程序計(jì)數(shù)器指定的第一條指令,然后開始執(zhí)行。休眠模塊中的HIBRIS寄存器可讀,以確定復(fù)位的原因。寫0來清除RESC寄存器中的上電復(fù)位位或EXT位。Cortex-M4原理與實(shí)踐2023年1月8日24HSSR復(fù)位硬件系統(tǒng)服務(wù)請求(HSSR)寄存器可以用來回恢復(fù)設(shè)備到出廠設(shè)置。成功地寫入硬件系統(tǒng)服務(wù)請求(HSSR)寄存器可啟動系統(tǒng)復(fù)位。復(fù)位初始化程序在檢查HSSR寄存器和處理指令之前執(zhí)行。該寄存器只能在特權(quán)模式下訪問。在恢復(fù)出廠設(shè)置之前,設(shè)置RESC寄存器的HSSR位并且執(zhí)行系統(tǒng)復(fù)位序列。在HSSR功能被處理之后,將功能處理結(jié)果寫入HSSR寄存器中的CDOFF位域,同時(shí)執(zhí)行另一個(gè)HSSR系統(tǒng)復(fù)位。RESC寄存器中的HSSR位可通過寫0清除。Cortex-M4原理與實(shí)踐TM4C1294微處理器有6種NMI中斷源,具體是哪一種需要通過軟件讀取NMIC寄存器來判斷:外部NMI信號;主振蕩器驗(yàn)證失敗即MOSC失效;中斷控制和狀態(tài)寄存器INTCTRL(InterruptControlandState)的NMISET位被設(shè)置;看門狗定時(shí)器中斷:控制寄存器WDTCTL(WatchdogControl)的INTTYPE位被設(shè)置;休眠的觸發(fā)事件;BOR的觸發(fā)事件。2023年1月8日252.2.3NMI控制Cortex-M4原理與實(shí)踐2023年1月8日262.2.4電源控制Cortex-M4原理與實(shí)踐2023年1月8日272.2.5時(shí)鐘控制TM4C1294微處理器有四個(gè)時(shí)鐘源,如下表所示。Cortex-M4原理與實(shí)踐時(shí)鐘源驅(qū)動PLL?用作SysClk?精密內(nèi)部振蕩器PIOSC是USEPLL=1,PLLSRC=0x0是USEPLL=0,OSCSRC=0x0主振蕩器MOSC是USEPLL=1,PLLSRC=0x3是USEPLL=0,OSCSRC=0x3低頻內(nèi)部振蕩器LFIOSC否-是USEPLL=0,OSCSRC=0x2休眠模塊時(shí)鐘否-是USEPLL=0,OSCSRC=0x42023年1月8日28精密內(nèi)部振蕩器PIOSC精確內(nèi)部振蕩器是一個(gè)片上時(shí)鐘源,在POR期間和之后,微控制器使用該時(shí)鐘源。它不需要使用任何外部元件,并提供一個(gè)16MHz時(shí)鐘,其校準(zhǔn)精度為±1%,整個(gè)溫度范圍內(nèi)的精度為±3%。PIOSC是為需要精確時(shí)鐘源并減少系統(tǒng)開銷的應(yīng)用而考慮的。如果需要主振蕩器,軟件必須在復(fù)位后使能主振蕩器,并在改變時(shí)鐘參考前讓主振蕩器達(dá)到穩(wěn)定。如果冬眠模塊時(shí)鐘源是32.768KHz振蕩器,也可以通過改變時(shí)鐘參考前讓主振蕩器達(dá)到穩(wěn)定。不論P(yáng)IOSC是否是系統(tǒng)時(shí)鐘源,PIOSC可以被配置為ADC時(shí)鐘源以及UART和SSI的波特率時(shí)鐘。Cortex-M4原理與實(shí)踐2023年1月8日29主振蕩器MOSC主振蕩器可通過兩種方式提供一個(gè)頻率精確的時(shí)鐘源:外部單端時(shí)鐘源連接到OSC0輸入管腳,或者外部晶振串接在OSC0輸入管腳和OSC1輸出管腳間。如果PLL正在使用,晶振的值必須是5MHz到25MHz(含)之間的一個(gè)支持的頻率。如果PLL沒有被使用,晶振可以是4MHz到25MHz之間的任何一個(gè)支持的頻率。注意MOSC:必須為USBPLL提供一個(gè)時(shí)鐘源,并且必須連接到晶體或振蕩器。Cortex-M4原理與實(shí)踐2023年1月8日30低頻內(nèi)部振蕩器LFIOSC低頻內(nèi)部振蕩器(LFIOSC)提供了33KHz的時(shí)鐘頻率,其精度與電氣特性相關(guān)。低頻內(nèi)部振蕩器適用于深度睡眠省電模式。該省電模式受益于精簡的內(nèi)部配電系統(tǒng),同時(shí)也允許MOSC或PIOSC關(guān)閉。此外,通過深度睡眠時(shí)鐘配置寄存器(DSCLKCFG)來控制在節(jié)電模式中內(nèi)部切換和關(guān)閉MOSC或PIOSC。Cortex-M4原理與實(shí)踐2023年1月8日31休眠模塊時(shí)鐘休眠模塊提供了兩個(gè)輸出時(shí)鐘,一個(gè)外部32.768KHz和低頻時(shí)鐘(HIBLFIOSC)。休眠模塊時(shí)鐘由連接至XOSC0引腳的32.768kHz的時(shí)鐘源,32.768KHz振蕩器可以使用系統(tǒng)時(shí)鐘,因此不再需要額外的晶體或振蕩器。另外,休眠模塊包含一個(gè)低頻振蕩器(HIBLFIOSC),旨在為系統(tǒng)提供一個(gè)實(shí)時(shí)時(shí)鐘源,還可以為深度睡眠或休眠模式提供一個(gè)準(zhǔn)確的電源。Cortex-M4原理與實(shí)踐注意:HIBLFIOSC和LFIOSC是兩個(gè)不同的時(shí)鐘源。2023年1月8日32時(shí)鐘配置系統(tǒng)時(shí)鐘SysClk可由以上四種時(shí)鐘源中的任意一個(gè)直接提供,或者通過內(nèi)部主PLL提供,也可由PIOSC的四分頻即4MHz±1%提供。PLL時(shí)鐘源的頻率必須在5MHz到25MHz的范圍之內(nèi)。RunandSleepModeConfigurationRegister(RSCLKCFG)寄存器提供在運(yùn)行和睡眠模式下控制系統(tǒng)時(shí)鐘,DeepSleepClockConfigurationregister(DSCLKCFG)寄存器在深度睡眠模式中,指定時(shí)鐘系統(tǒng)的行為。Cortex-M4原理與實(shí)踐2023年1月8日33時(shí)鐘配置externuint32_tSysCtlClockFreqSet(uint32_tui32Config,uint32_tui32SysClock);Cortex-M4原理與實(shí)踐配置參數(shù)注釋SYSCTL_CFG_VCO_480VCOis480MHz(壓控振蕩器設(shè)置為480MHz)SYSCTL_USE_PLLSystemclockisthePLLclock(使用PLL)SYSCTL_USE_OSCSystemclockistheoscclockSYSCTL_XTAL_1MHZExternalcrystalis1MHz(外部時(shí)鐘為1MHz)SYSCTL_XTAL_25MHZExternalcrystalis25.0MHzSYSCTL_OSC_MAINOscsourceismainoscSYSCTL_OSC_INTOscsourceisint.oscSYSCTL_OSC_INT4Oscsourceisint.osc/4SYSCTL_OSC_INT30Oscsourceisint.30KHzSYSCTL_OSC_EXT32Oscsourceisext.32KHzSYSCTL_INT_OSC_DISDisableinternaloscillatorSYSCTL_MAIN_OSC_DISDisablemainoscillator2023年1月8日34時(shí)鐘配置Cortex-M4原理與實(shí)踐例2.1:設(shè)外部時(shí)鐘為25MHz,需配置系統(tǒng)時(shí)鐘頻率為120MHz,操作程序如下:intmain(void){

////RunfromthePLLat120MHz.//g_ui32SysClock=SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ| SYSCTL_OSC_MAIN| SYSCTL_USE_PLL| SYSCTL_CFG_VCO_480), 120000000);}2023年1月8日35時(shí)鐘配置外設(shè)由系統(tǒng)時(shí)鐘驅(qū)動,ADC的時(shí)鐘由PIOSC、SysClk或者PLL提供,通過寄存器ADCCC(ADCClockConfiguration)設(shè)置;PWM的時(shí)鐘由系統(tǒng)時(shí)鐘SysClk分頻提供,通過寄存器PWMCC(PWMClockControl)控制;USB的時(shí)鐘由主振蕩器通過USBPLL提供,通過寄存器USBCC(USBClockControlRegister)來控制;通信模塊如UART、CAN和SSI也有相應(yīng)的時(shí)鐘控制寄存器,可以設(shè)置模塊時(shí)鐘源和波特率時(shí)鐘源。Cortex-M4原理與實(shí)踐2023年1月8日362.2.6工作模式控制為了進(jìn)行功耗控制,位于系統(tǒng)控制寄存器區(qū)偏移地址為0x600、0x700和0x800開始的外設(shè)專用寄存器RCGCx、SCGCx和DCGCx(其中‘x’代表外設(shè)英文縮寫字母,例如看門狗專用寄存器為RCGCWD)用于在系統(tǒng)運(yùn)行、睡眠、深度睡眠以及休眠時(shí)控制對應(yīng)外設(shè)的時(shí)鐘。TM4C1294微處理器有四種工作模式:運(yùn)行、睡眠、深度睡眠和休眠。Cortex-M4原理與實(shí)踐2023年1月8日37工作模式控制運(yùn)行模式:該模式下,微處理器正常執(zhí)行代碼,所有已被外設(shè)專用寄存器RCGC設(shè)置為使能的外設(shè)正常運(yùn)行,系統(tǒng)時(shí)鐘源可以是任意一種時(shí)鐘源及其PLL分頻。睡眠模式:在睡眠模式,運(yùn)行中的外設(shè)時(shí)鐘頻率不變,但是處理器和存儲器子系統(tǒng)不使用時(shí)鐘,所以不再執(zhí)行代碼。睡眠模式是通過Cortex-M4F內(nèi)核執(zhí)行一條WFI(等待中斷)指令。系統(tǒng)中任何正確配置的中斷事件都可以將處理器帶回到運(yùn)行模式。Cortex-M4原理與實(shí)踐2023年1月8日38工作模式控制深度睡眠模式:處理器通過首先將系統(tǒng)控制寄存器SYSCTRL的SLEEPDEEP位置位,然后執(zhí)行WFI(WaitforInterrupt)指令進(jìn)入深度睡眠模式。該模式下,系統(tǒng)時(shí)鐘源可能改變;外設(shè)的時(shí)鐘頻率也可能改變;處理器和存儲器的

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論