Nucleo開發板配置都差不多,不同就是板載的芯片不同,所以我也花了很大的篇幅去介紹STM32F410和同系列芯片的相同點和不同點,但限于時間和個人水平限制不能面面俱到,如果你有興趣詳細了解可以下載我附件里面的芯片參考手冊,那是ST對這個芯片最權威和詳細的評測了!
很幸運從ST社區拿到了最新的NUCLEO-STM32F410開發板,板載的STM32F410是F4系列的一款新的芯片,作為M4內核的一個新的成員,STM32F410采用動態功耗調整、新型智能DMA優化數據批處理等技術用來實現了功低耗新的里程碑,在功耗和性能高度平衡方面獨樹一幟。下面通過對STM32F410的認識和NUCLEO板子的簡單測試使用來簡單了解下這個新的芯片。
205300dcsmqms60secs0mi.jpg (1010.69 KB, 下載次數: 102)
下載附件
2016-6-17 22:12 上傳
1、STM32F410介紹 自從ST采用Cortex-M內核進入ARM單片機領域,相繼推出了M0/M0+/M3/M4/M7內核的多個系列多款芯片,每款芯片都有自己獨特的特性和使用行業。縱觀ST的32位MCU的產品線已經完全覆蓋了消費品、工業、醫療、物聯網、可穿戴設備等各個行業和領域,無論高性能或者低功耗等需求,幾乎都能找到一款適合的芯片。
205434xvhoec010xv5oowz.png (194.6 KB, 下載次數: 103)
下載附件
2016-6-17 22:12 上傳
和M3內核相比由于M4內核帶有DSP和FPU這些優點,所以ST很多性能強勁或者低功耗系列都采用M4這個內核,比如F4和L4系列。作為目前ST產品線最為豐富和成熟的F4系列產品線分為3個類別:
205729akygfyvyffkd5xjf.png (79.47 KB, 下載次數: 93)
下載附件
2016-6-17 22:12 上傳
各個系列主要的參數對比如下:
205801xdmgd3fds9k4g344.png (276.5 KB, 下載次數: 112)
下載附件
2016-6-17 22:12 上傳
STM32F410作為F4系列入門級的產品線(Access Line),主要用于醫療、工業、消費品等需要性能和功耗相平衡的行業,其內嵌高度集成的內存和外設使芯片封裝縮小到2.553 x 2.579 mm,從上面的圖片中可以看到這在整個入門級系列中都是最好的。主要參數如下: ●性能:主頻為100MHZ,典型性能為125 DMIPS/339 CoreMark ●功耗:運行模式:89 uA/MHz,STOP模式:6uA ●外設:專用的音頻PLL和3個雙工I2S 3個高達10.5Mbit/s的USART 3個高達42 Mbit/s的SPI 3個I2C,其中一個FMPI2C,速度高達1MHZ 1個12bit的ADC和一個12bit的DAC 9個定時器,包括一個LPTIM,Systick時鐘高達100MHZ 真隨機數發生器
從上面的配置來看,豐富的外設接口,可以滿足一般的使用都沒有問題,比較遺憾的是芯片沒有USB接口和FSMC/FMC,但是借助速度很高的SPI和USART能擬補些這些不足。芯片整體架構如下:
210539v86idkiv6lxuuoko.png (158.35 KB, 下載次數: 98)
下載附件
2016-6-17 22:12 上傳
目前提供的封裝和類別如下:
210941a775zp5rnm8bwtbr.png (57 KB, 下載次數: 103)
下載附件
2016-6-17 22:12 上傳
STM32F410產品線主要采用Dynamic Efficiency來實現性能和功耗的完美平衡。Dynamic Efficiency 技術包括ST專用的 ART Accelerator、Prefetch Queue和 Branch Cache,這些可以0等待的從Flash執行代碼,最大的程度的提升性能。除此之外,90nm的工藝技術不但提高了性能而且還降低了動態功耗,同時動態電壓調整優化了工作電壓來滿足性能需求并且盡量減少泄漏來降低功耗。ST形象的將Dynamic Efficiency這種技術比作“化圓為方”(square the circle),并做了下面的解釋: How the new STM32 Dynamic Efficiency™ microcontrollers “square the circle”:
Squaring the circle – constructing a square of the same area as a given circle - has become a metaphor for attempting the impossible. There is no plane solution to this ancient problem, since the square root of PI cannot be constructed geometrically.
In creating STM32 Dynamic Efficiency, ST has achieved a reduction in Power consumption with a simultaneous increase in Performance and Integration (P2I). Just as PI holds the key to the problem of squaring the circle, realizing P2I overcomes one of today’s toughest and most important challenges in microcontroller design.
211116nsyauwuystuaa6xu.jpg (178.63 KB, 下載次數: 100)
下載附件
2016-6-17 22:12 上傳
STM32F410為了實現低功耗特別設計了新的Batch Acquisition Mode (BAM)低功耗模式,這種低功耗模式配合新型智能DMA可較大程度的優化功耗。在Sleep模式下,Flash被關閉,需要工作的外設繼續運行,數據通過DMA傳輸繼續有效!
211159pbrcfmf3fu4p3x38.png (65.74 KB, 下載次數: 100)
下載附件
2016-6-17 22:12 上傳
各種低功耗模式對比如下:
211221dstow22wotww2wlw.png (162.82 KB, 下載次數: 105)
下載附件
2016-6-17 22:12 上傳
2、NUCLEO-STM32F410 相信很多小伙伴都很熟悉NUCLEO開發板了,鐵打的外設流水的主芯片MCU,見到過一次再遇到就倍感親切。仔細觀察發現,STM32F410-Nucleo開發板的絲印采用了新的亮藍色,和之前的深藍色相比更能感覺到年輕和活力! STM32F410-Nucleo開發板繼承了NUCLEO系列前輩的優良基因,簡約而不簡單,和高大上的EVAL/Discovery系列對比平凡而不平庸。擴展簡單方便,不論Arduino或者Morpho 都能直接配套使用,除此之外板上引出的IO口更可方便的擴展自己的外圍模塊。 板載的STLINK使下載調試程序方便簡單,一塊NUCLEO開發板配上一條數據線和一臺電腦就可以開始學習STM32,是新手入門學習走向高手之路的必備神器,至于高手嘛,也可以用NUCLEO打發無聊的周末。^_^
205316ve4crjj2cnertn74.jpg (981.83 KB, 下載次數: 96)
下載附件
2016-6-17 22:12 上傳
STM32F410-Nucleo 開發板板載資源如下: ● ST-LINK/V2.1調試器,可以在PC上枚舉出虛擬串口和虛擬U盤,前者可以用于調試時通信,后者可用于配合mbed下載使用 ●2個按鍵,藍色的是用戶按鍵,黑色的是復位按鍵 ●3個LED,一個多色LED用于顯示stlink和PC的通信狀態,一個紅色的LED用于顯示電源狀態,一個綠色的LED用于用戶折騰玩耍使用 ●支持Keil,IAR,GCC,ARM mbed online 開發工具 先在電腦安裝Nucleo板子需要的stlink驅動和虛擬串口的驅動,然后將開發板通過USB線和電腦相連接,在設備管理器里面可以看到枚舉出了下面的設備:
213418r9xfxxuej5imikzp.png (51.26 KB, 下載次數: 116)
下載附件
2016-6-17 22:12 上傳
在資源管理器里可以看到多出來一個U盤設備:
213807as2kngs3199gfin3.png (24.22 KB, 下載次數: 96)
下載附件
2016-6-17 22:12 上傳
打開U盤設備里面的鏈接可以直接進入mbed網站,在這里可以看到可以看到該NUCLEO-STM32F410功能特性說明:
214159ykmmtbzdf3zeq0fm.png (197.78 KB, 下載次數: 102)
下載附件
2016-6-17 22:12 上傳
214243gtq12i22u9i0ux2x.png (141.26 KB, 下載次數: 95)
下載附件
2016-6-17 22:12 上傳
相應的擴展接口;
214308gu0uoppoppx1a9u1.png (579 KB, 下載次數: 102)
下載附件
2016-6-17 22:12 上傳
214309yomytlbvde2nalda.png (493.82 KB, 下載次數: 79)
下載附件
2016-6-17 22:12 上傳
mbed網站資源豐富,很多開源的代碼可以參考學習,在線的編譯器能快速便捷進行功能驗證和測試:
214822afxj079s0020rrxl.png (91.24 KB, 下載次數: 99)
下載附件
2016-6-17 22:12 上傳
3 、NUCLEO-STM32F410測試 除了上面提到的mbed,ST也提供STMCubeMX和STM32Cube開發包用于快速開發測試評估。STMCubeMX是一個圖形界面的代碼配置工具,能讓用戶根據需要一步一步的進行配置外設、時鐘、最后根據需要輸出工程代碼。這個工具功能強大上手簡單,現在可以看到很多使用STMCubeMX的教程可以參考。為了更詳細的測試,我使用STM32CubeF4開發包手動建一個keil工程并寫一個簡單的測試驗證程序。自己建立工程的好處就是能很清楚自己的工程里面包含了那些代碼,能有效的控制整個全局的程序結構,如果程序出了問題會比較便于查找。 1)STM32CubeF4開發包介紹: STM32CubeF4包括F4系列的HAL驅動庫、DSP庫、各種官方的開發板測試代碼、第三方代碼(FATFS/EMWIN/FreeRTOS)等等,總的來說這個開發包是開發人員能得到的最權威最詳細的官方參考代碼、使用文檔、底層庫的一個集合,是一個名副其實的聚寶盆,各種簡單的外設使用比如IO口、USART、SPI、IIC等等都能找到如何配置和是使用的例子,復雜的比如USB、FreeRTOS、EMWIN等也有相應的測試DEMO。這里面的代碼注釋都很清晰明了,即使之前沒有接觸過也可以很快上手。 整體結構如下:
215833p6iere69ziebb0ir.png (29.44 KB, 下載次數: 120)
下載附件
2016-6-17 22:12 上傳
Drivers文件夾下是我們要使用的HAL庫源文件和說明文檔:
215924pyajxb6johxxmx6x.png (15.12 KB, 下載次數: 115)
下載附件
2016-6-17 22:12 上傳
Project文件夾下的各種評估板測試代碼(大寶藏),有了這個還要啥自行車....
220022g205an7aa40v44zn.png (46.51 KB, 下載次數: 107)
下載附件
2016-6-17 22:12 上傳
STM32F410-Nucleo測試代碼:
220153k5svpwlv55wwrn2p.png (26.31 KB, 下載次數: 101)
下載附件
2016-6-17 22:12 上傳
整個CubeF4開發包結構清晰分類合理,上面的每個測試代碼都可以使用keil、IAR等IDE打開,每個工程都有詳細的Readme進行描述該測試代碼的目的和使用方法。 當我們使用keil開發時要下載一個F4對應的PACK,這個Pack就是打包的STM32Cube的文件然后加入芯片的一些架構信息用于keil生成工程使用,我們可以在keil的安裝目錄下看到這個被打包的STM32Cube。
220434q1ld5hd8d15252nq.png (40.41 KB, 下載次數: 98)
下載附件
2016-6-17 22:12 上傳
所以如果從ST網站下STM32Cube如果很慢時可以直接把從keil網站上下載的PACK后綴修改為rar壓縮文件直接使用即可,不過有可能KEIL的PACK更新慢于STM32Cube。
220543xlmm4k9tlk5m9aib.png (75.21 KB, 下載次數: 102)
下載附件
2016-6-17 22:12 上傳
2)使用keil建立一個測試工程 1、新建工程選擇STM32F410
220706v4rrxcitw4kxxiek.png (41.45 KB, 下載次數: 96)
下載附件
2016-6-17 22:12 上傳
2、點擊OK后勾選彈出的CORE內核,這樣就可以包含需要的內核頭文件了
220741ekfdufdfqwb1kv5r.png (44.75 KB, 下載次數: 98)
下載附件
2016-6-17 22:12 上傳
3、然后在建立幾個文件夾放置HAL庫,mian函數、硬件外設
220844wi7oxnniixn6io8a.png (30.38 KB, 下載次數: 106)
下載附件
2016-6-17 22:12 上傳
4、將文件夾加入到工程中
220909wg6ygseyysop5sg6.png (21.38 KB, 下載次數: 105)
下載附件
2016-6-17 22:12 上傳
5、建立LED,UART、SYS,MIAN等文件并添加到工程中
220942e9xnneuj9qhdeuyn.png (39.77 KB, 下載次數: 99)
下載附件
2016-6-17 22:12 上傳
6、最后完善mian函數,完成LED閃爍和串口輸出信息,編譯下載即可看到預設的現象。 - #include "main.h"
- //Nucleo_STM32F410 Test By creep
- //ST社區:www.stmcu.org
- int main(void)
- {
- uint8_t led_sta = OFF;
- HAL_Init();
- SystemClock_Config();
- LED_Init();
- USART2_Init();
- while(1)
- {
- LED(led_sta);
- HAL_Delay(1000);
- led_sta = !led_sta;
- printf("ST社區:www.stmcu.orgNucleo-STM32F410 Test by creep");
- }
- }
復制代碼
手動建立工程時有幾個地方需要注意: 1)添加必要的庫函數并包含需要的有文件 2)stm32f4xx_hal_conf.h文件中配置需要的庫文件包含關系 3)建立工程時選中RTE的CORE用于直接調用keil5安裝下的內核頭文件 4)時鐘配置函數可以從參考DEMO中的配置 最后輸出測試信息:
221334j5aun4z25yc6d58u.png (35.88 KB, 下載次數: 103)
下載附件
2016-6-17 22:12 上傳
總結: 整體來說STM32F410繼續保持著F4系列的超強性能而且通過動態功耗調整和新型智能DMA及新的BAM休眠等技術使功耗達到了一個新的里程碑,對于需要性能和功耗兼顧的行業是個不錯的選擇。 ST采用差異配置在不斷完善著各個產品線,給不同行業不同需求的都能提供理想的選擇,也有越來越來的開發人員和產品使用ST的芯片,在這個良性的循環下可以預見到ST的ARM系列會越做越好,產品線也會越來越豐富。由于各個產品線系列的類似開發平臺,這樣最后也會讓我們開發人員能很簡單容易的去掌握使用新的芯片和技術。
測試代碼及相應文檔:
|