CH03-01-STM32框架分析電子課件_第1頁
CH03-01-STM32框架分析電子課件_第2頁
CH03-01-STM32框架分析電子課件_第3頁
CH03-01-STM32框架分析電子課件_第4頁
CH03-01-STM32框架分析電子課件_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《嵌入式系統(tǒng)原理與開發(fā)設(shè)計(jì)》主講人:賴樹明東莞理工學(xué)院嵌入式基礎(chǔ)知識(shí)01STM32F4xx框架分析STM32F40x模塊框圖STM32F407芯片資源STM32F40x時(shí)鐘系統(tǒng)系統(tǒng)時(shí)鐘相關(guān)寄存器代碼配置系統(tǒng)時(shí)鐘STM32F4xx框架分析STM32F40x模塊框圖018條主控總線:I總線、D總線、S總線、DMA1存儲(chǔ)器總線、DMA2存儲(chǔ)器總線、DMA2外設(shè)總線、以太網(wǎng)DMA總線、USBOTGHSDMA總線;7條被控總線:內(nèi)部FlashICode總線、內(nèi)部FlashDCode總線、主要內(nèi)部SRAM1總線、輔助內(nèi)部SRAM2總線、輔助內(nèi)部SRAM3總線(僅適用STM32F42xx和STM32F43xx系列器件)、AHB1外設(shè)總線、AHB2外設(shè)總線、FSMC總線。STM32F4內(nèi)部總線查看大圖:ch3-STM32F40x模塊框圖.pngSTM32F4xx框架分析STM32F40x模塊框圖01總線是器件之間傳輸信息的通信總線,它由導(dǎo)線組成,按照傳輸?shù)男畔⒎N類,總線可以分為數(shù)據(jù)總線、地址總線和控制總線等,分別用來傳輸數(shù)據(jù)、地址和控制信號(hào)??偩€作用JTAG&SW、MPU、ETM、NVIC、ARMCortex-M4內(nèi)核這幾部分,總線接口標(biāo)準(zhǔn)ARM公司設(shè)計(jì)根據(jù)內(nèi)核的標(biāo)準(zhǔn)作出各種應(yīng)用場(chǎng)景、各種市場(chǎng)定位、具有多種功能如GPIO、UART、ADC、DAC、FLASH、SRAM等的最終芯片。芯片廠商設(shè)計(jì)STM32F4xx框架分析STM32F407ZGT6芯片資源01存儲(chǔ):1MbyteFlash,192KSRAMLCD接口:支持8080/6800時(shí)序總線接口ADC:3x12-bit、2.4MSPSADC轉(zhuǎn)換器,最多可達(dá)24通道DAC:2x12-bitD/A轉(zhuǎn)換器DMA:具有FIFO和突發(fā)支持的16通道DMA控制器定時(shí)器:12個(gè)16位定時(shí)器和2個(gè)高達(dá)168MHz的32位定時(shí)器調(diào)試單元:SWD、JTAG接口、跟蹤宏單元隨機(jī)數(shù)字:1個(gè)真隨機(jī)數(shù)發(fā)生器CRC單元:1個(gè)CRC計(jì)算單元芯片ID:96位唯一ID時(shí)鐘:2個(gè)內(nèi)部時(shí)鐘、2個(gè)外部時(shí)鐘復(fù)位:上電、掉電、欠壓復(fù)位片上外設(shè)資源STM32F4xx框架分析STM32F407ZGT6芯片資源01GPIO引腳:140個(gè)具有中斷功能的I/O端口SPI接口:3個(gè)SPI、2個(gè)帶有多路復(fù)用全雙工I2SI2C接口:3個(gè)I2C接口USART/UART接口:4個(gè)USART、2個(gè)UARTCAN接口:2個(gè)CAN接口SDIO接口:1個(gè)SDIO接口USB接口:帶有片上PHY的USB2.0全速設(shè)備/主機(jī)/OTG控制器MAC以及控制器接口:具有專用DMA的10/100以太網(wǎng)MAC攝像頭接口:8至14位并行相機(jī)接口RTC實(shí)時(shí)時(shí)鐘:1個(gè)RTC外設(shè),亞秒精度,硬件日歷電源管理:1.8V至3.6V電源和I/O片上外設(shè)資源STM32F4xx框架分析STM32F40x時(shí)鐘系統(tǒng)分析01時(shí)鐘系統(tǒng)框架STM32F4xx框架分析STM32F40x時(shí)鐘系統(tǒng)分析01STM32F4系列芯片中,有4條時(shí)鐘源總線,分別為L(zhǎng)SI、LSE、HSI、HSE。從時(shí)鐘頻率來分可以分為高速時(shí)鐘總線和低速時(shí)鐘總線,在這4個(gè)時(shí)鐘總線中HIS、HSE是高速時(shí)鐘總線,LSI和LSE是低速時(shí)鐘總線。LSI:低速內(nèi)部時(shí)鐘,RC振蕩器,頻率為32kHz。主要供給獨(dú)立看門狗和自動(dòng)喚醒單元使用,精度不是非常高,沒有外部時(shí)鐘穩(wěn)定。LSE:低速外部時(shí)鐘,外接頻率為32.768kHz的石英晶體,這個(gè)時(shí)鐘源主要作為RTC的時(shí)鐘源使用,精度比較高,相對(duì)而言,比內(nèi)部低速時(shí)鐘穩(wěn)定。HSE:高速外部時(shí)鐘,可接石英/陶瓷諧振器,或者接外部時(shí)鐘源,芯片規(guī)定頻率范圍為4~26MHz都可以,從上面的系統(tǒng)框架圖可知也可以直接作為系統(tǒng)時(shí)鐘或者PLL輸入。HSI:高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為16MHz,根據(jù)框架圖可知,它可以直接作為系統(tǒng)時(shí)鐘或者用作PLL輸入。時(shí)鐘源總線STM32F4xx框架分析系統(tǒng)時(shí)鐘相關(guān)寄存器01RCC時(shí)鐘控制寄存器(RCC_CR)(只介紹常用的域)HSION:HSI內(nèi)部高速時(shí)鐘使能:

1--打開;0--關(guān)閉;HSIRDY:HSI內(nèi)部高速時(shí)鐘就緒標(biāo)志:1--就緒;

0--未就緒HSEON:HSE外部高速時(shí)鐘使能,1-振蕩器打開,0-振蕩器關(guān)閉HSERDY:HSE外部高速時(shí)鐘就緒標(biāo)志,1--就緒;0--未就緒PLLON:主鎖相環(huán)(MainPLL)使能,1--打開;0--關(guān)閉PLLRDY:主鎖相環(huán)(MainPLL)時(shí)鐘就緒標(biāo)志PLLI2SON:I2S鎖相環(huán)(PLLI2S)使能,1--打開;0--關(guān)閉PLLI2SRDY:I2S鎖相環(huán)(PLLI2S)時(shí)鐘就緒標(biāo)志(PLLI2Sclockreadyflag)CR寄存器STM32F4xx框架分析系統(tǒng)時(shí)鐘相關(guān)寄存器01

此寄存器用于根據(jù)公式配置PLL時(shí)鐘輸出:●f(VCO時(shí)鐘)

=

f(PLL時(shí)鐘輸入)×(PLLN/PLLM)●f(PLL常規(guī)時(shí)鐘輸出)

=f(VCO時(shí)鐘)/PLLP●f(USBOTGFS,SDIO,RNG時(shí)鐘輸出)

=f(VCO時(shí)鐘)/PLLQ位27:24—PLLQ:主PLL(PLL)分頻系

位22—PLLSRC:主PLL(PLL)和音頻PLL(PLLI2S)輸入時(shí)鐘源,用于選擇PLL和PLLI2S時(shí)鐘源,0:選擇HSI時(shí)鐘作為PLL和PLLI2S時(shí)鐘輸入;1:選擇HSE振蕩器時(shí)鐘作為PLL和PLLI2S時(shí)鐘輸入位17:16—PLLP:適用于主系統(tǒng)時(shí)鐘的主PLL(PLL)分頻系數(shù)注意:軟件必須正確設(shè)置這些位,使其在此域中不超過168MHz。RCC時(shí)鐘控制寄存器(RCC_PLLCFGR)(只介紹常用的域)STM32F4xx框架分析系統(tǒng)時(shí)鐘相關(guān)寄存器01位14:6—PLLN:適用于VCO的主PLL(PLL)倍頻系數(shù),用于控制VCO的倍頻系數(shù)。注意:軟件必須正確設(shè)置這些位,確保VCO輸出頻率介于192和432MHz之間。VCO輸出頻率=VCO輸入頻率×PLLN并且192≤PLLN≤432位5:0—PLLM:主PLL(PLL)和音頻PLL(PLLI2S)輸入時(shí)鐘的分頻系數(shù),用于在VCO之前對(duì)PLL和PLLI2S輸入時(shí)鐘進(jìn)行分頻。注意:軟件必須正確設(shè)置這些位,確保VCO輸入頻率介于1和2MHz之間。建議選擇2MHz的頻率,以便限制PLL抖動(dòng)。VCO輸入頻率=PLL輸入時(shí)鐘頻率/PLLM并且2≤PLLM≤63RCCPLL配置寄存器(RCC_PLLCFGR)(只介紹常用的域)STM32F4xx框架分析系統(tǒng)時(shí)鐘相關(guān)寄存器01位20:16—RTCPRE:適用于RTC時(shí)鐘的HSE分頻系數(shù),用于對(duì)HSE時(shí)鐘輸入時(shí)鐘進(jìn)行分頻,進(jìn)而為RTC生成1MHz的時(shí)鐘。00000:無時(shí)鐘;

00001:無時(shí)鐘;

00010:HSE/2;

00011:HSE/3;.....11111:HSE/31位15:13—PPRE2:APB高速預(yù)分頻器(APB2)由軟件置位和清零,用于控制APB高速時(shí)鐘分頻系數(shù)。0xx:AHB時(shí)鐘不分頻;100:AHB時(shí)鐘2分頻;101:AHB時(shí)鐘4分頻;.....;111:AHB時(shí)鐘16分頻注意:軟件必須正確設(shè)置這些位,使其在此域中不超過84MHz。位12:10—PPRE1:APB低速預(yù)分頻器(APB1),用于控制APB低速時(shí)鐘分頻系數(shù)。0xx:AHB時(shí)鐘不分頻;100:AHB時(shí)鐘2分頻;101:AHB時(shí)鐘4分頻;110:AHB時(shí)鐘8分頻;111:AHB時(shí)鐘16分頻位7:4—HPRE:AHB預(yù)分頻器,用于控制AHB時(shí)鐘分頻系數(shù)。0xxx:系統(tǒng)時(shí)鐘不分頻1000:系統(tǒng)時(shí)鐘2分頻1001:系統(tǒng)時(shí)鐘4分頻1010:系統(tǒng)時(shí)鐘8分頻;1011:系統(tǒng)時(shí)鐘16分頻1100:系統(tǒng)時(shí)鐘64分頻1101:系統(tǒng)時(shí)鐘128分頻1110:系統(tǒng)時(shí)鐘256分頻1111:系統(tǒng)時(shí)鐘512分頻注意:當(dāng)使用以太網(wǎng)時(shí),AHB時(shí)鐘頻率必須至少為25MHz。RCC時(shí)鐘配置寄存器(RCC_CFGR)(只介紹常用的域)STM32F4xx框架分析系統(tǒng)時(shí)鐘相關(guān)寄存器01位3:2—SWS:系統(tǒng)時(shí)鐘切換狀態(tài),用于指示用作系統(tǒng)時(shí)鐘的時(shí)鐘源。00:HSI振蕩器用作系統(tǒng)時(shí)鐘01:HSE振蕩器用作系統(tǒng)時(shí)鐘10:PLL用作系統(tǒng)時(shí)鐘11:不適用位1:0—SW:系統(tǒng)時(shí)鐘切換,用于選擇系統(tǒng)時(shí)鐘源。由硬件置1,在退出停機(jī)或待機(jī)模式時(shí)或者在直接或間接用作系統(tǒng)時(shí)鐘的HSE振蕩器發(fā)生故障時(shí)用于強(qiáng)制HSI的選擇。00:選擇HSI振蕩器作為系統(tǒng)時(shí)鐘01:選擇HSE振蕩器作為系統(tǒng)時(shí)鐘10:選擇PLL作為系統(tǒng)時(shí)鐘

11:不允許RCC時(shí)鐘配置寄存器(RCC_CFGR)(只介紹常用的域)STM32F4xx框架分析STM32F40x時(shí)鐘系統(tǒng)分析01STM32F4系列芯片中,有4條時(shí)鐘源總線,分別為L(zhǎng)SI、LSE、HSI、HSE。從時(shí)鐘頻率來分可以分為高速時(shí)鐘總線和低速時(shí)鐘總線,在這4個(gè)時(shí)鐘總線中HIS、HSE是高速時(shí)鐘總線,LSI和LSE是低速時(shí)鐘總線。LSI:低速內(nèi)部時(shí)鐘,RC振蕩器,頻率為32kHz。主要供給獨(dú)立看門狗和自動(dòng)喚醒單元使用,精度不是非常高,沒有外部時(shí)鐘穩(wěn)定。LSE:低速外部時(shí)鐘,外接頻率為32.768kHz的石英晶體,這個(gè)時(shí)鐘源主要作為RTC的時(shí)鐘源使用,精度比較高,相對(duì)而言,比內(nèi)部低速時(shí)鐘穩(wěn)定。HSE:高速外部時(shí)鐘,可接石英/陶瓷諧振器,或者接外部時(shí)鐘源,芯片規(guī)定頻率范圍為4~26MHz都可以,從上面的系統(tǒng)框架圖可知也可以直接作為系統(tǒng)時(shí)鐘或者PLL輸入。HSI:高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為16MHz,根據(jù)框架圖可知,它可以直接作為系統(tǒng)時(shí)鐘或者用作PLL輸入。時(shí)鐘源總線STM32F4xx框架分析STM32F40x時(shí)鐘系統(tǒng)分析01STM32F4系列芯片中,有4條時(shí)鐘源總線,分別為L(zhǎng)SI、LSE、HSI、HSE。從時(shí)鐘頻率來分可以分為高速時(shí)鐘總線和低速時(shí)鐘總線,在這4個(gè)時(shí)鐘總線中HIS、HSE是高速時(shí)鐘總線,LSI和LSE是低速時(shí)鐘總線。LSI:低速內(nèi)部時(shí)鐘,RC振蕩器,頻率為32kHz。主要供給獨(dú)立看門狗和自動(dòng)喚醒單元使用,精度不是非常高,沒有外部時(shí)鐘穩(wěn)定。LSE:低速外部時(shí)鐘,外接頻率為32.768kHz的石英晶體,這個(gè)時(shí)鐘源主要作為RTC的時(shí)鐘源使用,精度比較高,相對(duì)而言,比內(nèi)部低速時(shí)鐘穩(wěn)定。HSE:高速外部時(shí)鐘,可接石英/陶瓷諧振器,或者接外部時(shí)鐘源,芯片規(guī)定頻率范圍為4~26MHz都可以,從上面的系統(tǒng)框架圖可知也可以直接作為系統(tǒng)時(shí)鐘或者PLL輸入。HSI:高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為16MHz,根據(jù)框架圖可知,它可以直接作為系統(tǒng)時(shí)鐘或者用作PLL輸入。時(shí)鐘源總線STM32F4xx框架分析代碼配置系統(tǒng)時(shí)鐘01STM32F4的時(shí)鐘配置代碼,并不需要用戶自己去從0開始寫,ST公司提供的啟動(dòng)代碼中就已經(jīng)寫好配置代碼,我們只需要提供前面分析出來的鎖相環(huán)的Q,M,N,P這幾個(gè)數(shù)值,填寫到代碼工程的宏定義即可。時(shí)鐘配置代碼在

startup_stm32f40_41xxx.s匯編文件中有調(diào)用SystemInit函數(shù),該函數(shù)內(nèi)部就實(shí)現(xiàn)了對(duì)系統(tǒng)時(shí)鐘的配置STM32F4xx框架分析代碼配置系統(tǒng)時(shí)鐘01SystemInit函數(shù)配置了RCC->CR、RCC->CFGR、RCC->PLLCFGR等系統(tǒng)時(shí)鐘寄存器,最后調(diào)用SetSysClock函數(shù),實(shí)現(xiàn)了對(duì)各外設(shè)模塊的時(shí)鐘進(jìn)行配置。SystemInit函數(shù)voidSystemInit(void){…RCC->CR|=(uint32_t)0x00000001;RCC->CFGR=0x00000000;RCC->CR&=(uint32_t)0xFEF6FFFF;RCC->PLLCFGR=0x24003010;RCC->CR&=(uint32_t)0xFFFBFFFF;…SetSysClock();//對(duì)各外設(shè)模塊的時(shí)鐘進(jìn)行配置…}STM32F4xx框架分析代碼配置系統(tǒng)時(shí)鐘01SetSysClock函數(shù)實(shí)現(xiàn)了對(duì)各外設(shè)模塊的時(shí)鐘進(jìn)行配置。SetSysClock函數(shù)st

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論