iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 1
2
IoT

熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~系列 第 1

[Day 1]-第二次參戰!【STM32系列介紹】一窺當年的那隻蝴蝶是如何顛覆整個MCU市場的~

終於又到了每年的這個年度盛事啦!

沒錯!你沒聽錯!這是我第二次參賽,去年藉著 Google Developers Machine Learning 報名參加結果意外落選。
看了看前次報名組數812,完賽人數381,通過率連一半都不到,那些成功堅持完30天的人真的好強。
那麼此次再度前來報名鐵人,為的是一雪前恥!希望能記取前次教訓,這次,讓我們一起努力

不知道有沒有人和我一樣,喜歡做很多東西,但興致來的快去的也快

印象中五六年級的時候吧,新的課綱冒出了 Scratch 這個東西,因緣際會之下我也開始接觸寫程式 這件事
有玩過 Scratch 的人應該都知道吧,拉幾個積木就能執行程式,而且馬上看的到效果。
不知道的可以去下面這個網站看看:

https://scratch.mit.edu/
我們老師還一副生氣的臉跟我們說道:「以前我們寫程式都是一行一行的打程式碼,哪像你們現在拉幾個方塊算哪門子(搖頭)。」
雖然我到現在都還是不知道拉拉積木到底算不算寫程式。
不過說實在的,也是多虧了 Scratch 激起了我寫程式的興趣,慢慢地對程式有一定的邏輯與概念。
https://ithelp.ithome.com.tw/upload/images/20201019/20120093JByplmgFIF.png
當時寫的第一支程式就類似這樣!Scratch 版的Hello World (笑
相信各位都不陌生吧,學習語言就該先從 Hello World 開始。

多虧科技的進步,人人都可以是 Maker!

我高中開始接觸8051單晶片,那時候才真正學到那些底層的原理
從認識組合語言(Assembly language)開始一行一行土法煉鋼
要製作專題就得自己學設計電路接著繪製電路板、雕刻、洗板最後至焊接
直至看到成果出來的那瞬間。心中真的是滿滿的成就感。

二年級開始學數位邏輯,就是那些及閘、或閘、反閘啦!
也剛好在國外論壇看到有人在做8位元的電腦
看來看去發現诶?這不就是我們平常上的那些IC,一樣的原理圖嗎?
只是把它組合起來了!於是自己也嘗試如法炮製了一台。

花了我三個月的時間,總算把它給組起來了。
贊同就像博恩說的那樣:「興趣沒有目的地」
過程中會遇到很多阻礙,還有那些你沒去做過就不會知道的問題
但如果突破了,它就是你的,別人沒成功但你做到的,這就是值得驕傲的。
如果有機會的話很想談談這一塊,不過之後找時間再說吧,再說下去就要變成落敗感言了XD

所以話又說回來!(轉得有些生硬!)
現今市面上有許多像 Arduino 和 Raspberry Pi 等等多元的開發板,
甚至是一些已經模組化好的感測套件,讓我們不必為了硬體的部份去煩惱
這塊領域的入門門檻正在降低,但不管再怎麼低,那些基本的原理還是一樣
只要你有創意有耐心,幾乎人人都能實現腦中的夢想藍圖。

想像力就是你的超能力!XD

正文從這裡開始(前面的都是廢話X


開始前先不負責任地淺談基於STM32的晶片核心公司-ARM

介紹之前先超級簡略說明,ARM是一種架構也是英國一家電子公司的名字
而眾所周知,ARM這家公司既不生產晶片也不銷售晶片,它只出售晶片技術授權。
其應用廣泛且根據維基百科的解釋 (诶不是,這樣引用正確嗎X)

自2005年,每年超過一億的手機銷售約98%至少使用了一個ARM處理器。截至2009年,占大約90%的嵌入式32位元RISC處理器和ARM處理器被廣泛使用在消費性電子產品,包括個人數字助理(PDA)、平板電腦、行動電話、數位媒體和音樂播放器、手持式遊戲遊戲機、計算機和電腦外圍裝置(如硬碟機和路由器)。

如今物聯網、汽車電子、人工智慧等新興領域的興起,也給ARM創造了更多的機會。
話又再說回來,ARM公司在ARM11以後的產品都改用Cortex命名,並分成A、R和M三類:

  • Cortex-A - 支援高效能的大型嵌入式系統,例如手機的處理器核心
  • Cortex-R - Real-time處理器,針對實時系統應用如汽車控制
  • Cortex-M - 嵌入式應用的微控制器,來搶8051市場的

更多的核心架構的細節部分可以詳見wiki處理器內核列表這裡就不再多做贅述。
維基百科真好用(誤X

STM32-Introduction

1. 甚麼是STM32?

STM32就是由ARM公司設計,意法半導體(STMicroelectronics)這家公司生產的基于ARM® Cortex®-M内核的32位的MCU系列。合起來就是STM32。

2. STM32能做些甚麼?

就像你使用Arduino開發產品一樣,使是它能做的事更多更強,例如自帶I2CUSARTSPI這些通訊協定外,還能同時控制多個感測元件,生活中小至小米手環,大到遠至外太空的衛星都有它的蹤跡。其他像是四軸機、物聯網的智能家電、移動式pos機、3D列印機等等應用極為廣泛。

3. STM32的特色優點

STM32集高性能、低成本、低功耗於一身,除了自身集程度高、易於開發的特性,專門適合用在嵌入式應用設計。

4. STM32最值得一提的強大的生態系統 (前方高能請注意XD)

下面這張是來自義法半導體他們官方的產品線,可以看到他們型號STM32後綴H7F0~F4G0G4L0L1L4L4+L5WBWL等等這些系列。那我看到比較常用的就是Mainstream這邊的。其他Ultra-low-power就是低功率,High Performance就主打高性能,像是F4的CPU頻率就可以來到180MHz,相較於L0的CPU頻率只有32MHz,速度差了5倍之多,不過畢竟是低功率嘛,如果是我拿來開發的話可能就會拿來做類似小米手環這種東西,因為它耗電低嘛,所以你才會看到小米手環用了1個月才充一次電的ok吧。最後比較特別的就是Wireless,其中STM32WB這顆它其實裡面有兩顆CPU,32MHz和64MHz其中一顆就是讓你來做Bluetooth藍芽5.0的功能。後面會再講到詳細的介紹。

5. 順帶一提Cortex-M處理器家族

依照功能需求分成M0至M4與M7的等級
Cortex-M0用於初階8/16位元應用
Cortex-M3針對中階的16/32位元應用
Cortex-M4主打高階32位元與數位信號控制應用
Cortex-M7是Cortex-M家族最新和最高性能的處理器內核,適合用於旗艦級消費者、工業、醫療和物聯網(IoT)設備。因此,Cortex-M處理器家族包含各式功能的處理器類型來滿足不同的需求。

看到左上角的蝴蝶了嗎?厲害了吧!
圖片來自:STM32 32-bit Arm Cortex MCUs
https://ithelp.ithome.com.tw/upload/images/20210528/20120093r4TEJcm39i.jpg
圖片右邊有寫到幾個它能做的事情,簡單說明就是它可以設計Neural Network,它可以跑比較簡單的神經網路系統,像是之前好像就有人把人臉辨識放到上面,實現物聯網賦予終端AI邊緣計算。再來就是Graphical User Interface,可以像是滑一台手機一樣,滑動、滾動,做及時的控制。有興趣可以參考Graphical User Interface
第三是它可以做一些Motor Control馬達的控制,印象中去年ARM主辦的比賽前三名都使用了STM32微控制器,有興趣的可以到Top 3 Winners of the Arm Design Contest 2019 and How They Used STM32 MCUs這個網站看看,今年3月報導還算滿新的。

說了那麼多!初學者適合哪一塊板子好上手?

就我手上現有的開發板是STM32L053R8!

沒錯!L0系列就是標榜Ultra-low-power,如果你不想跟我一樣也沒關係,因為網路上大多的範例都是F0、F1、F4這系列,L0真的算是滿新的規格所以或許比較難找的到資源,不過只要基本原理了解了,遇到不一樣的情形應該都不會有甚麼太大的問題。

30天讓我們一起努力

這次主題應該就會圍繞在實作開發上
除了兼顧理論也要動手做一些小玩具出來
最重要的是獲得成就感啊!

學習目標是銜接Arduino到STM32的這條路
一開始並不會太深入地去做原理的講解
為了好方便上手,將會帶大家一步一步在實作上

STM32帶你入坑系列,坑挖得有點大讓我們一起跳下去吧!


結語-小的還有許多不足還請各位大人多擔待

要開賽了好緊張啊!第一天光廢話就占一半了,不知道明天怎麼過
如果有甚麼錯誤還請各位鞭小力一點
我會盡量說的讓大家能懂
很少發文的我
一說話就是語無倫次XD
話說前幾天不是聽到ARM被NVIDIA以400億美元收購了
正當各方在發表自己的看法
強強聯合,市場版圖持續擴大中
我們靜觀其變~


下一篇
[Day 2]-【STM32系列】Overview of STM32 Board (上) - NUCLEO 開發板硬體認識
系列文
熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~30

尚未有邦友留言

立即登入留言