STM32-內(nèi)部結構
我們查看《STM32中文資料》的第二節(jié)《存儲器和總線架構》,也就是資料的第25頁?!禨TM32中文資料》相當詳細,總共754頁。如果打印出來非常多。因為一般厚一點的書也就500頁左右。我們不必一次看完。因為有些功能您可能暫時用不著。比如您如果不做變頻,PWM也許就用不著。如果您做調(diào)壓控制USB也許永遠用不著。但是前面幾個章節(jié)還是有必要了解一下。一般來說半年熟悉一個MCU應用已經(jīng)很好了。
本文引用地址:http://m.butianyuan.cn/article/201611/323218.htm我們先來看看下圖,下圖來源于《STM32中文資料》。我們只是初識一下。這是STM32的內(nèi)部結
構。
Cortex-M3是處理器核,其余是外設。通過總線與外設通訊,形成系統(tǒng)。首先是ICode是指令總線,falsh通過flash接口與 Cortex-M3連接。完成指令的讀取。DCode總線通過總線矩陣與其他外設相連。也就是說任意設備包括串口、ADC、DMA等數(shù)據(jù)可以直接通過DCode總線到達Cortex-M3。在這里我們可以發(fā)現(xiàn) 唯獨Icode總線不經(jīng)過總線矩陣。為什么?我以為可能是指令都是存儲在flash中。而一個系統(tǒng)中指令數(shù)量應該是最多的,所以為了提高效率icode總線不經(jīng)過總線矩陣。SRAM是數(shù)據(jù)區(qū)。原子使用的是STM32F103RBT6,有20KRAM,128Kflash。8bit的51是永遠達不到的。在我見過的51單片最大RAM也就4K,flash64K.當要做一個圖形驅(qū)動時常常捉襟見肘。 DMA通道合計有12個??梢栽谧鵄DC項目時使用DMA。可以提高程序效率。因為不用再從ADC寄存器中讀取值。System總線通過總線矩陣完成DMA與外設通訊。AHB總線通過橋接1、與橋接2將低速設備與總線矩陣連接起來。和明顯一部分外設是掛接在APB1和APB2上。通過RCC時鐘可以控制AHB總線上外設工作和不工作。這樣可以節(jié)省一部分功率。FSMC總線可以用來連接存儲設備或者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,提供給其他設備使用,可以降低能耗。OSC_IN、OSC_OUT接入外部時鐘后可以產(chǎn)生各種時鐘。當然您如果對時鐘精度要求不嚴,比如您不做串口通訊??梢允褂脙?nèi)部時鐘,這樣可以節(jié)省成本。OSC32_IN、OSC_OUT接入32K時鐘后可以作為RTC使用。在以前如果需要時鐘必須使用DS1302等芯片來實現(xiàn)。
在APB1、APB2總線上掛接了所有的外設,定時器4個、串口3個、SPI 2個、I2C 2個、GPIO 5組、ADC 2個、溫度傳感器 1個。
資源如此豐富,讓我們一起來學習吧!
評論