新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32-內(nèi)部結(jié)構(gòu)

STM32-內(nèi)部結(jié)構(gòu)

作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
為了進一步明確STM32103系列MCU的內(nèi)部資源。我們可以從兩份資料著手學(xué)習。一份是《STM32中文資料》,一份是 《STM32F103中文資料》,您的英文水平如果還可以,那么您就使用原版的英文資料。但是因為中文資料是廠家提供的。那我們基本可以放心使用了。

我們查看《STM32中文資料》的第二節(jié)《存儲器和總線架構(gòu)》,也就是資料的第25頁。《STM32中文資料》相當詳細,總共754頁。如果打印出來非常多。因為一般厚一點的書也就500頁左右。我們不必一次看完。因為有些功能您可能暫時用不著。比如您如果不做變頻,PWM也許就用不著。如果您做調(diào)壓控制USB也許永遠用不著。但是前面幾個章節(jié)還是有必要了解一下。一般來說半年熟悉一個MCU應(yīng)用已經(jīng)很好了。

本文引用地址:http://butianyuan.cn/article/201611/323218.htm

我們先來看看下圖,下圖來源于《STM32中文資料》。我們只是初識一下。這是STM32的內(nèi)部結(jié)

構(gòu)。

Cortex-M3是處理器核,其余是外設(shè)。通過總線與外設(shè)通訊,形成系統(tǒng)。首先是ICode是指令總線,falsh通過flash接口與 Cortex-M3連接。完成指令的讀取。DCode總線通過總線矩陣與其他外設(shè)相連。也就是說任意設(shè)備包括串口、ADC、DMA等數(shù)據(jù)可以直接通過DCode總線到達Cortex-M3。在這里我們可以發(fā)現(xiàn) 唯獨Icode總線不經(jīng)過總線矩陣。為什么?我以為可能是指令都是存儲在flash中。而一個系統(tǒng)中指令數(shù)量應(yīng)該是最多的,所以為了提高效率icode總線不經(jīng)過總線矩陣。SRAM是數(shù)據(jù)區(qū)。原子使用的是STM32F103RBT6,有20KRAM,128Kflash。8bit的51是永遠達不到的。在我見過的51單片最大RAM也就4K,flash64K.當要做一個圖形驅(qū)動時常常捉襟見肘。 DMA通道合計有12個。可以在座ADC項目時使用DMA??梢蕴岣叱绦蛐?。因為不用再從ADC寄存器中讀取值。System總線通過總線矩陣完成DMA與外設(shè)通訊。AHB總線通過橋接1、與橋接2將低速設(shè)備與總線矩陣連接起來。和明顯一部分外設(shè)是掛接在APB1和APB2上。通過RCC時鐘可以控制AHB總線上外設(shè)工作和不工作。這樣可以節(jié)省一部分功率。FSMC總線可以用來連接存儲設(shè)備或者TFT屏幕。

以上只是STM32的內(nèi)部基本功能。下面我們看看上節(jié)STMF103的內(nèi)部基本框圖

這幅圖就更加詳細,Cortex-M3處理器可以工作的頻率是72M。這當然是通過PLL實現(xiàn)的。同樣的外部晶振通過PLL您就有很多選擇。比如1倍頻、2倍頻等。自由度是很大的。NVIC是嵌套中斷向量控制器。SW/JTAGE是調(diào)試端口。到底選擇JTAGE還是SW作為調(diào)試方法,其中優(yōu)缺點原子有介紹。JTAGE占的端口多一些。TPIU與Trace/trig以及pbus、TraceControl我還不了解其用途。歡迎大家和我分享。POWER可以將3.3V轉(zhuǎn)換1.8V,提供給其他設(shè)備使用,可以降低能耗。OSC_IN、OSC_OUT接入外部時鐘后可以產(chǎn)生各種時鐘。當然您如果對時鐘精度要求不嚴,比如您不做串口通訊??梢允褂脙?nèi)部時鐘,這樣可以節(jié)省成本。OSC32_IN、OSC_OUT接入32K時鐘后可以作為RTC使用。在以前如果需要時鐘必須使用DS1302等芯片來實現(xiàn)。

在APB1、APB2總線上掛接了所有的外設(shè),定時器4個、串口3個、SPI 2個、I2C 2個、GPIO 5組、ADC 2個、溫度傳感器 1個。

資源如此豐富,讓我們一起來學(xué)習吧!



關(guān)鍵詞: STM32內(nèi)部結(jié)

評論


技術(shù)專區(qū)

關(guān)閉