老工程師再來玩玩 DIY 。這次來玩 ST-Link V2-1。
我之前已經有提到過 ST-Link V3 版了。這一類的開發工具總共分成四代:
ST-Link V1 :這個我真的就沒接觸過,或許真的年代久遠了。
後來就有出了 ST-Link V2 :這個應該就是市場主流,滿街都是的東西。我在之前文章
也有稍作解釋說明。而這個 ST-Link V2 我還真的買過原廠的:
就是上面照片中中央那一套,你看:我還保留原廠的盒子。只是後來都被市面上:
照片中中央下方那個小USB 裝置所取代....當然原廠也有出了一版 ST-Link V2-1 版。
這一版就是全部附在原廠各個 Nucleo 或 Discovery 開發板上面的那套開發下載工具:
如上圖左邊 Nucleo-64 開發驗證板上方那一部分。雖然原廠也跟你說:你可以把這片
ST-Link V2-1 給切割(簡易的折斷)下來,當作獨立的 ST-Link V2-1 工具使用。
但我想一般人除非真的有那麼強烈的需求,才會幹這件事吧。否則可能就像我一樣
找一片最小的 Nucleo/Discovery 開發版的 ST-Link V2-1 版來用吧:(上上照片中)
就像這片一樣:簡單地把開發版上的MCU 載版拆下,自行接上轉接線就可以了:
這片 ST-Link V2-1 有甚麼特別之處?他除了簡單ST-Link V2 一般功能之外,就是多了
一組虛擬串列接埠(Virtual COM Port) ,也就是我們一般常用的UART 轉USB 的功能。
因為我們一般在系統開發上常常會把系統的一些除錯訊息藉由 UART 給同步顯示出來
(printf指令)。所以如果你是採用 ST-Link V2 的話,你可能還需要外接一組 UART 轉USB
的接頭來達到這個功能。但 ST-Link V2-1 就可以輕易地幫你完成了。也可以讓你的工作
桌面上簡潔乾淨多了。(還可以省去一組電腦USB 占用接頭。 )
------
不過,這片 ST-Link V2-1 在市面上就真的比較難買得到一片獨立的開發工具版了。
老工程師呢?就是喜歡動動手來DIY 一下,找一點樂子來做做,我想:反正就是一顆
STM32F1 系列的MCU 所作工作嘛!我首先想到的就是市面上最常見的 STM32 Blue Pill
那一片板子吧:
但問題是:因為ST-Link V2-1 所燒錄的程式超過 64KB ,他已經不是原來 Blue Pill 上面
所採用的 STM32C8T6,而是STM32CBT6 。所以就買幾顆回來玩玩吧:
(其實你如果去研究一下 ST-Link V2-1 的 燒錄檔的話,你也可以發現:原廠是故意把程式
塞爆 64KB 的,128 KB 容量其實後面都是空白的,而且還故意在 128 KB 最後擺幾個
Bytes 內容來撐大容量的。)
我剛收到這幾顆 STM32CBT6 時,我看到上面那個較為模糊的雷射標示,我還真的
一度以為我買到假貨呢.....其實,市面上有些 STM32 Blue Pill 上面的MCU 還比較多假貨
山寨品。😁😂😄😂😁😀 不過,也是實際要上了版子試試才知道啊。
你看我DIY 置換這種LQFP IC 功力還可以吧?
在社群網路上,充斥很多PCB 焊接或替換 IC 相關類似 DIY 影片,拍起來都會讓你覺得
很羨慕地按讚的拍拍手。其實,這些有些看似職人工作技巧,都只是時間與經驗的
累積而已。大部分的人都可以透過這樣的經驗與時間的累積達到這個境界的。
像我自己創業時,一開始還不是甚麼事情都是自己來:PCB layout,零件上件除錯等,
這些苦差事都做過啊。只要有工具,多練習幾次就可以了,你之所以現在在大公司
上班沒有機會做?那是因為公司分工細、責任重,還有很多固定工作進度報告會議要開,
只要自己獨立創業時,這些時間省下來,當然也夠你好好練習了,並像以前我上大學前,
跟著我老爸學冷作西工,工地捆鋼筋等,我相信我現在那個電弧焊、車床或是捆鋼筋的
技巧應該還是可以混口飯吃的。但我現在也不會拿這些玩意兒出來現寶的要大家
給我按讚的說我好棒棒的~年紀大了,歲月與經驗的累積本來就是一種成就,有甚麼
好愛現的呢?能真正地為你自己默默地帶來輕鬆自在的老年生活比較重要吧。
要賺這種錢都是有嚴酷的年齡限制的啦。人老了就得要認命吧!
然後呢?我們就依照原廠所提供的 ST-Link V2-1 電路圖,把一些應有的周邊電路給補上:
其中最麻煩的就是照片中那一條 USB Re-numeration 控制線:這條線主要應就是拿來
讓ST-Link V2-1 可以用軟體做到USB 插拔重置的功能:主要應該包括了韌體升級功能。
原來 STM32 Blue Pill 版上的 USB 是直接可以直接上USB 而沒有任何軟體插拔功能。
所以我們就得稍微修改與跳線一下:(照片中就是原廠電路圖)
這樣子在硬體方面就完成了,接下來就是 ST-Link V2-1 韌體燒錄了。
網路上只有比較早期的韌體,我們必須先燒錄舊版的,然後再用韌體更新軟體升級。
以下就是一些簡單的操作說明:
第一:還是需要用到舊版的 ST-Link V2 工具燒錄:
第二打開 ST-Link Utility Tools 軟體:
然後就可以把網路上找到的較舊版 ST-Link V2-1 韌體(V2.J31M21)給燒錄進去。
哪裡找得到?我文章最後會提供我所整理的相關電路圖與這個舊版韌體燒錄檔。
然後我們實際把這片我們初步完成的 ST-Link V2-1 插入電腦:
在電腦的裝置管理員裡,就真的出現 ST-Link Debug (V2-1) 及一組 VCP 串列埠,
同時也是支援Udisk 。其實這是提供DFU (Development Firmware Upgrade)功能用的。
----
接下來就要升級韌體到最新版本了:這一部分我試了幾次,發現真的要找一片實際的
STM32 開發平台才可以完成的:
然後打開原廠所提供的 STM32CubeProgrammer 工具軟體:
這裡有個很好玩的系統設計概念:我們首先來看一下我原先使用的STM32C0116-DK上面的 ST-Link V2-1 :
其實原廠真的知道這套 ST-Link V2-1 是來自於哪套開發板上面的,不管韌體更新後,
還是保持這個訊息:可見他韌體更新是不會去動到這個硬體訊息的。
這個做法很簡單:其實就是在韌體某個固定位址擺入這個硬體的簽章(Signature ),
然後韌體更新都不會去更新它的Signature 內容,只是在生產管理上:針對每個
開發版上的 ST-Link V2-1 版本,去控管它的獨立的簽章就可以了。
(從上圖我們也發現 ST-Link V2-1 的最新版本是 V2J45M30 版)
---
然後我們再插入我們DIY 的 ST-Link V2-1 板子:
我們也可以發現網路上的這舊版韌體是沒有綁任何開發平台板子的。
(也順便記得我們DIY 的 ST-Link V2-1 板子的序號:066BFF323447523043254458。)
然後就可以進行韌體的更新升級了:
(左邊的 Firmware upgrade 功能)
控制線的功能了吧?所以我們就可以看到新的Udisk 檔案內所附的文字檔說明。已經是
新版(V2J45M30) 的韌體了。
接下來我們可以實際回到開發平台來使用確認一下:
我們可以透過 Keil 的開發平台所抓取我們的 ST-Link V2-1 的設定內容:序號與版本。
這樣子,就完全大功告成了。
--------------------------------------
好了,來個總結吧。1. 這個東西不難,那你說可不可以拿來開店做生意?見仁見智,我過去文章也講了
很多關於技術與商業模式的許多故事與例子,大家可以參考評估看看。
2. 看到別人搞這種DIY 的東西,也真的不用過於讚賞與羨慕,引用一句歷史用詞:
“不讀歴史的人,看什麼都是前所未見的!”
只要你肯做,也像我從年輕至今累積一些相關工程經驗就可以了。只是凡事有所得,
必有所失,因為我曾經放棄園區IC 設計公司既舒服又收入不錯的職位,為了分擔家庭教育
而選擇另一條自力更生的技術生活:日子裡沒有固定繁縟的例行週會報告,當然就可以有
很多屬於自己的時間來磨練自己,完善自己的技術領域與經驗。
3. 我的貼文都是從工作中去累積許多既實際又好用的技術經驗,沒有高大尚的內容,但卻是
許多工程實務。就像因為我待過 MCU IC 設計公司,對於MCU 開發工具有一定的實務經驗
與感知能力,當然也是有所助益的。只是有些事情就真的要懂得評估,做一次是一種成就。
做第二次之後,那是一種責任與包袱了。(過去的經驗分享) 就得要評估後續的經濟效益了。
尤其是在社群網站上,看到別人貼文內容,都覺得既好玩又新鮮。但是不是每項都值得你
花時間與精力去走一遍?還真的要評估自己投入與後續的價值,尤其當你慢慢上了年紀之後。
4. 大家畢竟都是平凡的工程師。就算你可以在工作上出類拔萃,最終也會回歸到非常現實
的面相:你必須要有一定的類比對照基準:有同事,有同業競爭對手等才能去凸顯你的
"出類拔萃"。但環境會一直改變你原先所擁有的優勢條件。(技術與市場會不斷的改變更新)
你也會逐漸面對歲月的挑戰...這是沒有人可以逃過的自然法則。
最後,你也可以選擇一條屬於你自己的小確幸生活方式,來完善豐滿你工程師的技術人生。
這是我最誠摯的感想。分享給您。
沒有留言:
張貼留言