STM32F5
簡(jiǎn)介
ARM公司的高性能”Cortex-M3”內(nèi)核1.25DMips/MHz,而ARM7TDMI只有0.95DMips/MHz一流的外設(shè)1μs的雙12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻轉(zhuǎn)速度低功耗
在72MHz時(shí)消耗36mA(所有外設(shè)處于工作狀態(tài)),待機(jī)時(shí)下降到2μA最大的集成度復(fù)位電路、低電壓檢測(cè)、調(diào)壓器、精確的RC振蕩器等簡(jiǎn)單的結(jié)構(gòu)和易用的工具
12V-36V供電兼容5V的I/O管腳優(yōu)異的安全時(shí)鐘模式帶喚醒功能的低功耗模式內(nèi)部RC振蕩器內(nèi)嵌復(fù)位電路
工作溫度范圍:
-40°C至+85°C或105°C
101性能
36MHz CPU 多達(dá)16K字節(jié)SRAM 1x12位ADC溫度傳感器
103性能
特點(diǎn)
內(nèi)核:ARM32位Cortex-M3 CPU,最高工作頻率72MHz,1.25DMIPS/MHz。單周期乘法和硬件除法。
存儲(chǔ)器:片上集成32-512KB的Flash存儲(chǔ)器。6-64KB的SRAM存儲(chǔ)器。
時(shí)鐘、復(fù)位和電源管理:2.0-3.6V的電源供電和I/O接口的驅(qū)動(dòng)電壓。上電復(fù)位(POR)、掉電復(fù)位(PDR)和可編程的電壓探測(cè)器(PVD)。4-16MHz的晶振。內(nèi)嵌出廠前調(diào)校的8MHz RC振蕩電路。內(nèi)部40 kHz的RC振蕩電路。用于CPU時(shí)鐘的PLL。帶校準(zhǔn)用于RTC的32kHz的晶振。
低功耗:3種低功耗模式:休眠,停止,待機(jī)模式。為RTC和備份寄存器供電的VBAT。
調(diào)試模式:串行調(diào)試(SWD)和JTAG接口。
DMA:12通道DMA控制器。支持的外設(shè):定時(shí)器,ADC,DAC,SPI,IIC和UART。
3個(gè)12位的us級(jí)的A/D轉(zhuǎn)換器(16通道):A/D測(cè)量范圍:0-3.6V。雙采樣和保持能力。片上集成一個(gè)溫度傳感器。
2通道12位D/A轉(zhuǎn)換器:STM32F103xC,STM32F103xD,STM32F103xE獨(dú)有。
最多高達(dá)112個(gè)的快速I/O端口:根據(jù)型號(hào)的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16個(gè)外部中斷向量。除了模擬輸入,所有的都可以接受5V以內(nèi)的輸入。
最多多達(dá)11個(gè)定時(shí)器:4個(gè)16位定時(shí)器,每個(gè)定時(shí)器有4個(gè)IC/OC/PWM或者脈沖計(jì)數(shù)器。2個(gè)16位的6通道高級(jí)控制定時(shí)器:最多6個(gè)通道可用于PWM輸出。2個(gè)看門狗定時(shí)器(獨(dú)立看門狗和窗口看門狗)。Systick定時(shí)器:24位倒計(jì)數(shù)器。2個(gè)16位基本定時(shí)器用于驅(qū)動(dòng)DAC。
最多多達(dá)13個(gè)通信接口:2個(gè)IIC接口(SMBus/PMBus)。5個(gè)USART接口(ISO7816接口,LIN,IrDA兼容,調(diào)試控制)。3個(gè)SPI接口(18 Mbit/s),兩個(gè)和IIS復(fù)用。CAN接口(2.0B)。USB 2.0全速接口。SDIO接口。
ECOPACK封裝:STM32F103xx系列微控制器采用ECOPACK封裝形式。
系統(tǒng)作用
1、集成嵌入式Flash和SRAM存儲(chǔ)器的ARM Cortex-M3內(nèi)核。和8/16位設(shè)備相比,ARM Cortex-M3 32位RISC處理器提供了更高的代碼效率。STM32F103xx微控制器帶有一個(gè)嵌入式的ARM核,所以可以兼容所有的ARM工具和軟件。
2、嵌入式Flash存儲(chǔ)器和RAM存儲(chǔ)器:內(nèi)置多達(dá)512KB的嵌入式Flash,可用于存儲(chǔ)程序和數(shù)據(jù)。多達(dá)64KB的嵌入式SRAM可以以CPU的時(shí)鐘速度進(jìn)行讀寫(xiě)(不待等待狀態(tài))。
3、可變靜態(tài)存儲(chǔ)器(FSMC):FSMC嵌入在STM32F103xC,STM32F103xD,STM32F103xE中,帶有4個(gè)片選,支持四種模式:Flash,RAM,PSRAM,NOR和NAND。3個(gè)FSMC中斷線經(jīng)過(guò)OR后連接到NVIC。沒(méi)有讀/寫(xiě)FIFO,除PCCARD之外,代碼都是從外部存儲(chǔ)器執(zhí)行,不支持Boot,目標(biāo)頻率等于SYSCLK/2,所以當(dāng)系統(tǒng)時(shí)鐘是72MHz時(shí),外部訪問(wèn)按照36MHz進(jìn)行。
4、嵌套矢量中斷控制器(NVIC):可以處理43個(gè)可屏蔽中斷通道(不包括Cortex-M3的16根中斷線),提供16個(gè)中斷優(yōu)先級(jí)。緊密耦合的NVIC實(shí)現(xiàn)了更低的中斷處理延遲,直接向內(nèi)核傳遞中斷入口向量表地址,緊密耦合的NVIC內(nèi)核接口,允許中斷提前處理,對(duì)后到的更高優(yōu)先級(jí)的中斷進(jìn)行處理,支持尾鏈,自動(dòng)保存處理器狀態(tài),中斷入口在中斷退出時(shí)自動(dòng)恢復(fù),不需要指令干預(yù)。
5、外部中斷/事件控制器(EXTI):外部中斷/事件控制器由用于19條產(chǎn)生中斷/事件請(qǐng)求的邊沿探測(cè)器線組成。每條線可以被單獨(dú)配置用于選擇觸發(fā)事件(上升沿,下降沿,或者兩者都可以),也可以被單獨(dú)屏蔽。有一個(gè)掛起寄存器來(lái)維護(hù)中斷請(qǐng)求的狀態(tài)。當(dāng)外部線上出現(xiàn)長(zhǎng)度超過(guò)內(nèi)部APB2時(shí)鐘周期的脈沖時(shí),EXTI能夠探測(cè)到。多達(dá)112個(gè)GPIO連接到16個(gè)外部中斷線。
6、時(shí)鐘和啟動(dòng):在啟動(dòng)的時(shí)候還是要進(jìn)行系統(tǒng)時(shí)鐘選擇,但復(fù)位的時(shí)候內(nèi)部8MHz的晶振被選用作CPU時(shí)鐘??梢赃x擇一個(gè)外部的4-16MHz的時(shí)鐘,并且會(huì)被監(jiān)視來(lái)判定是否成功。在這期間,控制器被禁止并且軟件中斷管理也隨后被禁止。同時(shí),如果有需要(例如碰到一個(gè)間接使用的晶振失敗),PLL時(shí)鐘的中斷管理完全可用。多個(gè)預(yù)比較器可以用于配置AHB頻率,包括高速APB(PB2)和低速APB(APB1),高速APB最高的頻率為72MHz,低速APB最高的頻率為36MHz。
7、Boot模式:在啟動(dòng)的時(shí)候,Boot引腳被用來(lái)在3種Boot選項(xiàng)種選擇一種:從用戶Flash導(dǎo)入,從系統(tǒng)存儲(chǔ)器導(dǎo)入,從SRAM導(dǎo)入。Boot導(dǎo)入程序位于系統(tǒng)存儲(chǔ)器,用于通過(guò)USART1重新對(duì)Flash存儲(chǔ)器編程。
8、電源供電方案:VDD ,電壓范圍為2.0V-3.6V,外部電源通過(guò)VDD引腳提供,用于I/O和內(nèi)部調(diào)壓器。VSSA和VDDA,電壓范圍為2.0-3.6V,外部模擬電壓輸入,用于ADC,復(fù)位模塊,RC和PLL,在VDD范圍之內(nèi)(ADC被限制在2.4V),VSSA和VDDA必須相應(yīng)連接到VSS和VDD。VBAT,電壓范圍為1.8-3.6V,當(dāng)VDD無(wú)效時(shí)為RTC,外部32KHz晶振和備份寄存器供電(通過(guò)電源切換實(shí)現(xiàn))。
9、電源管理:設(shè)備有一個(gè)完整的上電復(fù)位(POR)和掉電復(fù)位(PDR)電路。這條電路一直有效,用于確保從2V啟動(dòng)或者掉到2V的時(shí)候進(jìn)行一些必要的操作。當(dāng)VDD低于一個(gè)特定的下限VPOR/PDR時(shí),不需要外部復(fù)位電路,設(shè)備也可以保持在復(fù)位模式。設(shè)備特有一個(gè)嵌入的可編程電壓探測(cè)器(PVD),PVD用于檢測(cè)VDD,并且和VPVD限值比較,當(dāng)VDD低于VPVD或者VDD大于VPVD時(shí)會(huì)產(chǎn)生一個(gè)中斷。中斷服務(wù)程序可以產(chǎn)生一個(gè)警告信息或者將MCU置為一個(gè)安全狀態(tài)。PVD由軟件使能。
10、電壓調(diào)節(jié):調(diào)壓器有3種運(yùn)行模式:主(MR),低功耗(LPR)和掉電。MR用在傳統(tǒng)意義上的調(diào)節(jié)模式(運(yùn)行模式),LPR用在停止模式,掉電用在待機(jī)模式:調(diào)壓器輸出為高阻,核心電路掉電,包括零消耗(寄存器和SRAM的內(nèi)容不會(huì)丟失)。
11、低功耗模式:STM32F103xx支持3種低功耗模式,從而在低功耗,短啟動(dòng)時(shí)間和可用喚醒源之間達(dá)到一個(gè)最好的平衡點(diǎn)。休眠模式:只有CPU停止工作,所有外設(shè)繼續(xù)運(yùn)行,在中斷/事件發(fā)生時(shí)喚醒CPU;停止模式:允許以最小的功耗來(lái)保持SRAM和寄存器的內(nèi)容。1.8V區(qū)域的時(shí)鐘都停止,PLL,HSI和HSE RC振蕩器被禁能,調(diào)壓器也被置為正?;蛘叩凸哪J?。設(shè)備可以通過(guò)外部中斷線從停止模式喚醒。外部中斷源可以使16個(gè)外部中斷線之一,PVD輸出或者TRC警告。待機(jī)模式:追求最少的功耗,內(nèi)部調(diào)壓器被關(guān)閉,這樣1.8V區(qū)域斷電。PLL,HSI和HSE RC振蕩器也被關(guān)閉。在進(jìn)入待機(jī)模式之后,除了備份寄存器和待機(jī)電路,SRAM和寄存器的內(nèi)容也會(huì)丟失。當(dāng)外部復(fù)位(NRST引腳),IWDG復(fù)位,WKUP引腳出現(xiàn)上升沿或者TRC警告發(fā)生時(shí),設(shè)備退出待機(jī)模式。進(jìn)入停止模式或者待機(jī)模式時(shí),TRC,IWDG和相關(guān)的時(shí)鐘源不會(huì)停止。
STM32的輸入有4種輸入模式:
模擬輸入 GPIO_AIN
用于AD轉(zhuǎn)換
浮空輸入 GPIO_IN_FLOATING
引腳處于浮空模式,電平狀態(tài)是不確定的。外部信號(hào)輸入什么,IO口就是什么狀態(tài)。
上拉輸入 GPIO_IPU
防止IO口出現(xiàn)不確定的狀態(tài),比如,當(dāng)IO口懸空時(shí),就會(huì)通過(guò)內(nèi)部的上拉電阻將該點(diǎn)鉗位在高電平。
下拉輸入 GPIO_IPD
功能與上拉電阻類似,防止IO口出現(xiàn)不確定的狀態(tài),比如,當(dāng)IO口懸空時(shí),就會(huì)通過(guò)內(nèi)部的下拉電阻將該點(diǎn)鉗位在低電平。
STM32中空的I/O管腳是高電平還是低電平取決于具體情況。
1、IO端口復(fù)位后處于浮空狀態(tài),也就是其電平狀態(tài)由外圍電路決定。
2、STM32上電復(fù)位瞬間I/O口的電平狀態(tài)默認(rèn)是浮空輸入,因此是高阻。做到低功耗。
3、STM32的IO管腳配置口默認(rèn)為浮空輸入,把選擇權(quán)留給用戶,這是一個(gè)很大的優(yōu)勢(shì):一方面浮空輸入確保不會(huì)出現(xiàn)用戶不希望的默認(rèn)電平(此時(shí)電平取決于用戶的外圍電路);另一方面降低了功耗,因?yàn)椴还苁巧侠€是下拉都會(huì)有電流消耗。從另一個(gè)角度來(lái)看,不管I/O管腳的默認(rèn)配置如何,還是需要在輸出的管腳外加上拉或下拉,這是為了保證芯片上電期間和復(fù)位時(shí)輸出的管腳始終處于已知的電平。
4、在沒(méi)有任何操作的情況下,STM32通用推挽輸出模式的引腳默認(rèn)低電平,也就是有電的狀態(tài)。所以在配置的時(shí)候通常會(huì)先把引腳的電平設(shè)置拉高,讓電路不產(chǎn)生電流。有電到?jīng)]電這一過(guò)程也就是引腳電平從低到高的過(guò)程。
5、STM32的I/O管腳有兩種:TTL和CMOS,所有管腳都兼容TTL和CMOS電平。也就是說(shuō)從輸入識(shí)別電壓上看,所有管腳不管是TTL管腳還是CMOS管腳都可以識(shí)別TTL或CMOS電平。c
評(píng)論