官术网_书友最值得收藏!

第4章 初識STM32

4.1 什么是STM32

STM32,從字面上來理解,ST是指意法半導體公司,M是Microelectronics的縮寫,32表示32位,合起來理解,STM32就是指ST公司開發的32位微控制器。在如今的32位控制器當中,STM32可以說是最璀璨的新星,它深受工程師和市場的青睞,無其他芯片能出其右。

STM32誕生的背景

51單片機是嵌入式學習中一款入門級的經典MCU,因其結構簡單,易于教學,且可以通過串口編程而不需要額外的仿真器,所以在單片機教學中被大量采用,至今很多大學在嵌入式教學中用的還是51單片機。它誕生于20世紀70年代,屬于傳統的8位單片機,如今,久經歲月的洗禮,既有其輝煌又有其不足。現在的市場產品競爭越來越激烈,對成本極其敏感,相應地對MCU的性能要求也更苛刻:更多功能,更低功耗,易用界面和多任務。面對這些要求,51單片機現有的資源就顯得得力不從心。所以無論是高校教學還是市場需求,都急需一款新的MCU來為這個領域注入新的活力。

基于這樣的市場需求,ARM公司推出了其全新的基于ARMv7架構的32位Cortex-M3微控制器內核。緊隨其后,ST公司推出了基Cortex-M3內核的MCU-STM32。STM32憑借其產品線的多樣化、極高的性價比、簡單易用的庫開發方式,迅速在眾多Cortex-M3 MCU中脫穎而出,成為最閃亮的一顆新星。STM32一上市就迅速占領了中低端MCU市場,受到了市場和開發人員的無比青睞,頗有星火燎原之勢。

作為一名合格的嵌入式工程師,面對新出現的技術,我們不是充耳不聞,而是要盡快契合市場的需要,跟上技術的發展潮流。如今STM32的出現就是一種趨勢,一種潮流,我們要做的就是搭上這趟快車,讓自己的技術更有競爭力。

4.2 STM32能做什么

STM32屬于一個微控制器,自帶了各種常用通信接口,比如USART、I2C、SPI等,可連接非常多的傳感器,可以控制很多的設備。現實生活中,我們接觸到的很多電器產品中都有STM32的身影,比如智能手環、微型四軸飛行器、平衡車、移動POST機、智能電飯鍋、3D打印機等。下面我們以近兩年最為火爆的兩個產品來講解下:一個是手環,一個是飛行器。

4.2.1 智能手環

三星Gear Fit智能手環見圖4-1。

圖4-1 三星Gear Fit智能手環

①STM32F439ZIY6S處理器,2048k B Flash,256k B RAM,WLCSP143封裝。

② Macronix MX69V28F6416MB閃存,基于MCP封裝的存儲器,是一種包含了NOR和SRAM的閃存,在手環、手機這種移動設備中經常使用,其優點是體積小,可以減小PCB的尺寸。這個閃存用439的FSMC接口驅動。

③Inven Sense MPU-6050陀螺儀/加速度計,用439的I2C接口驅動。

④博通BCM4334WKUBG芯片,支持802.11n,藍牙4.0+HS以及FM接收芯片,用439的SDIO或者SPI接口驅動。

⑤ 1.84"可彎曲屏幕(Super AMOLED),432×128像素。觸摸部分用439的I2C接口驅動,OLED顯示部分用LTDC接口驅動。

三星Gear Fit和秉火STM32F103資源對比見表4-1。

表4-1 三星Gear Fit和秉火STM32F103資源對比

除了這幾個重要資源以外,STM32F103指南者開發板上還板載了EEPROM、USB轉串口、蜂鳴器、LED、普通按鍵、電容按鍵等外設資源,還可以擴展VS1053 MP3模塊、W5500以太網模塊,利用這些可以更充分地學習STM32F103VET6這個芯片。在板子上面,還可以運行系統μcosiii,學習圖形界面emwin,見圖4-2。如果功夫所至,學完之后,甚至可以自己做一個類似Gear Fit這樣的手環。可很多人又會說,Gear Fit涉及硬件和軟件,整個系統這么復雜,并不是一個人可以完成的。說的沒錯,我們可能做不了手環,但是我們的能力可以無限接近,多學點不無裨益,俗話說:技多不壓身。

圖4-2 μcosiii+emwin做的系統界面(指南者的開機界面)

4.2.2 微型四軸飛行器

現在無人機在業內非常火,高端的無人機用STM32做不了,但是微型四軸飛行器用STM32做還是綽綽有余的。如圖4-3所示的飛行器基本都可以用STM32完成。

圖4-3 微型四軸飛行器

上面的是屬于產品,如果想自己DIY,可以在入門STM32之后,買一本飛行器DIY的書,邊學邊做。入門級的書籍推薦《四軸飛行器DIY——基于STM32微控制器》。

4.2.3 淘寶眾籌

學會了STM32,想自己做產品,如何實現自己的夢想呢?淘寶眾籌吧,見圖4-4。自己做出產品原型,用別人的錢為自己的夢想買單。

圖4-4 淘寶眾籌科技類

淘寶眾籌科技類網址如下,這里面有很多小玩意都可以用STM32實現,只要你有創意,就會有人買單,前提是我們要先學會STM32。

https://hi.taobao.com/market/hi/list.php?spm=a215p.1596646.1.8.Lb Vy Jk#type=121288001

4.3 STM32怎么選型

4.3.1 STM32分類

STM32有很多系列,可以滿足市場的各種需求,從內核上分有Cortex-M0、M3、M4和M7這幾種,每個內核又大概分為主流、高性能和低功耗,具體見表4-2。

表4-2 STM8和STM32分類

單純從學習的角度出發,可以選擇F1和F4,F1代表了基礎型,基于Cortex-M3內核,主頻為72MHz;F4代表了高性能,基于Cortex-M4內核,主頻180MHz。

與F1相比,F4(429系列以上)除了內核不同和主頻的提升外,升級的明顯特色就是帶了LCD控制器和攝像頭接口,支持SDRAM,這個區別在項目選型上會被優先考慮。但是就大學教學和用戶初學而言,還是首選F1系列,目前在市場上資料最多、產品占有量最多的就是F1系列的STM32。

4.3.2 STM32命名方法

我們以秉火F103指南者用的型號STM32F103VET6,來講解下STM32的命名方法,見表4-3。

表4-3 STM32F103VET6命名解釋

更詳細的命名方法見圖4-5,摘自《STM8和STM32選型手冊》。

圖4-5 STM8和STM32命名方法

4.3.3 選擇合適的MCU

了解了STM32的分類和命名方法之后,就可以根據項目的具體需求先大概選擇哪類內核的MCU。普通應用、不需要接大屏幕的一般選擇Cortex-M3內核的F1系列;如果追求高性能,需要大量的數據運算,且需要外接RGB大屏幕的則選擇Cortex-M4內核的F429系列。

明確了大方向之后,接下來就是細分選型。先確定引腳數,引腳多的功能就多,價格也貴,具體得根據實際項目中需要使用到什么功能,夠用就好。確定好了引腳數目之后再選擇Flash大小,相同引腳數的MCU會有不同的Flash大小可供選擇,這個也是根據實際需要選擇,程序大的就選擇大點的Flash,也是夠用就好。有些月出貨量以KK(百萬數量級)為單位的產品,不僅是MCU,連電阻、電容能少用就少用,更有甚者連PCB的過孔的多少都要算計。項目中的元器件的選型很有學問。

1.如何分配原理圖IO

在畫原理圖之前,一般的做法是先把引腳分類好,然后才開始畫原理圖。引腳分類具體見表4-4。

表4-4 畫原理圖時的引腳分類

2.如何尋找IO的功能說明

要想根據功能來分配IO,那就得先知道每個IO的功能說明,這個可以從官方的數據手冊里面找到。在學習的時候,有兩個官方資料我們會經常用到,一個是參考手冊(Reference Manual),另外一個是數據手冊(Data Sheet),兩者的具體區別見表4-5。

表4-5 參考手冊和數據手冊的內容區別

一句話概括:數據手冊主要在芯片選型和設計原理圖時參考,參考手冊主要在編程的時候查閱。官方的這兩個文檔可以從官方網址下載:http://www.stmcu.org/document/list/index/category-150,也可以從我們配置的資料里面找到。

在數據手冊中,有關引腳定義的部分在Pinouts and pin description小節中,具體定義見表4-6,更詳細的解釋見表4-7。

表4-6 數據手冊中對引腳定義

表4-7 對引腳定義的解讀

3.開始分配原理圖I/O

比如我們的F103指南者使用的MCU型號是STM32F103VET6,封裝為LQFP100。我們在數據手冊中找到這個封裝的引腳定義,然后根據引腳序號,一個一個復制出來,整理成Excel表。具體整理方法按照表4-4畫原理圖時的引腳分類即可。分配好之后就開始畫原理圖。

主站蜘蛛池模板: 芦山县| 迁西县| 正阳县| 饶阳县| 苏州市| 汉阴县| 菏泽市| 兴安县| 石柱| 通榆县| 博罗县| 慈利县| 赤壁市| 宜章县| 朝阳市| 肇东市| 新民市| 阿拉善盟| 依兰县| 南皮县| 延边| 商洛市| 常宁市| 张掖市| 赫章县| 湖南省| 玉林市| 茌平县| 黎城县| 获嘉县| 炎陵县| 宁晋县| 项城市| 五峰| 通化市| 大新县| 合水县| 浦县| 都昌县| 如东县| 呈贡县|