我這經驗分享適用剛入這行的人,不適合已經會有很多開發經驗的人,我最後一天來談談我學習這單晶片嵌入式系統的路程,最一開始是先學做stm32開發板DAY2,先選擇stm32f030cc,那時候這顆是F0系列最高階的,想說先拿這入門級MCU,這顆也比F103便宜。
選了要用的MCU後,在來就學如何做開發板DAY2,完全沒方向不知道怎麼去做原理可以先去arduino官網看nano板的原理圖,這樣就大概就了解需要哪些東西,主要差在VDD電壓準位不同和BOOT腳,自己做arduino要用UART的TX RX做燒入,arduino nano板是有接了CH340 TTL轉換IC這樣才能用USB的D+和D-來做轉換成TX RX燒入。
畫好原理圖再來是PCB layout,PADS為免費的layout軟體,layout完我就送洗電路板廠商,台灣跟大陸我都送過,大陸的是用淘寶來找廠商,我就不透漏哪家廠商不然以為我在葉配,有很多廠商都可以洗大家就自己去找,我大概說一下價錢,我在台灣送洗最少10片600塊。淘寶最少可洗5片2xx塊,加了運費也比台灣送洗的便宜一些些。
板子送回來後就來焊接了貼片零件我也大部分都淘寶定大量的貼片電阻和電容,我目前都用0603的貼片規格,焊接完就可以插上燒錄器來測試,不能燒錄就先檢查是不是沒焊好,用電表量看看是否腳位都有接上VCC、GND、燒入腳、BOOT腳,基本上不能燒入都先懷疑是自己焊接問題,MCU壞掉機率不高。
再來就可以學寫韌體了,我在燒入STM32F030就有先拿STM32F103C8T6的最小開發板來練習過了,這開發板在電子零件行有賣是很常見的型號,這顆的開發資料在google是最多的,基本上沒有找不到的範例,先隨便找個GPIO控制範例,照同樣方式來用別顆MCU實現同樣功能,我是這樣學習的,這樣不但能看出兩顆的差別更重要能加強配置函式的觀念,這樣一直交叉著看會讓自己進步很快!,這是我個人經驗。
這樣先把功能用F103實現出來,再想辦法用F030來實現同樣動作,這樣自己寫.c、.h會更有感覺,前提是不要用STM32CubeMX,自己來寫.c、.h檔,我前20天有講到程式的方式都是利用這樣的方式,學會後會對這個韌體就不會有陌生的感覺,GPIO都練習完就可以開式練習其他進階的功能了~。
剛開始是我的指導老師推薦這比賽,要我們自己評估是否能參賽,第一次看到這比賽蠻驚訝的!,是要連續發技術文章30天不中斷來比賽,一開始看到ARM平台分類,我就覺得我這個學習經驗可以分享上來,應該不難吧....
我錯了,這連續發文真的蠻累人的,每天都一定要撥個時間來整理文章,我會很在意我打的文章夠不夠清楚,會不會讓人覺得我很草率,連假還要撥空來打文章!!我有幾次有想放棄的念頭,但還是堅持了下來。
這邊還是要提一下,我在第二天開法板的原理圖介紹蠻詳細的,還有I2C的協議介紹[DAY9]!!,有張圖是我自己做的:
這個是我在學會I2C後所做的整理,這裡提到I2C很重要的觀念,資料的方向。
20天前是我的經驗,剩下的九天我還在學習的東西,邊學邊整理上來。
謝謝看到最後這裡的大家