改造DSO138示波器(二):在Windows Linux子系統(WSL)中燒錄STM32微控器的韌體

DSO138示波器的核心是意法半導體公司(簡稱STM)生產的STM32F103C8微控器,最新官方版韌體是2016年10月10日發布的113-13801-061,而我購入時內建的韌體是113-13801-060版。

根據今越電子官方的更新韌體說明書,燒錄韌體之前,需要在DSO138板子的TX和RX腳連接一個USB轉TTL序列通訊模組,並且把JP1和JP2接點短路,讓STM32微控器在開機時進入更新韌體狀態。

韌體更新完畢後,JP1和JP2接點要恢復成斷路狀態。

雖然我已將DSO138示波器的電源改成5V供電,但DSO138板子的USB介面是目前少見的mini USB款式,再加上我將測試安裝不同官方和開放原始碼版本的韌體,為了方便操作,我直接把USB轉TTL序列通訊模組的5V電源輸出腳和DSO138的+5V腳焊接在一起:

在DSO138示波器上焊接USB轉TTL序列通訊模組

因為此USB轉TTL序列通訊模組採用Micro USB介面(也有採用Type C介面的款式),只要此模組插上USB電源,也就能啟動DSO138示波器。

JP1和JP2接腳分別焊上兩針母排,燒錄韌體之前用導線連接兩個接點,燒錄完畢之後再拆除。

為了把USB轉TTL序列通訊模組塞入原本的示波器外殼,底部的壓克力需要裁切幾個孔。

DSO138示波器外殼

使用STM原廠的工具軟體燒錄韌體

DSO138官方文件示範使用STM原廠的STM32 Flash loader demonstrator燒錄韌體,它的執行畫面如下:

STM32 Flash loader demonstrator

這個燒錄軟體已經被另一個官方燒錄軟體STM32CubeProgrammer取代,它的執行畫面如下:

STM32CubeProgrammer

上面兩個工具軟體都能燒錄DSO138示波器的韌體。

在Windows Linux子系統中燒錄STM32微控器的韌體

stm32flash是開放原始碼、文字命令式STM32微控器燒錄軟體,比起上面兩個STM官方燒錄軟體來得輕巧,支援Linux, Windows和macOS系統。

Windows 10具備Linux子系統(簡稱WSL),可直接執行Linux應用程式,目前也已支援Linux圖形操作介面(GUI)軟體,相關操作說明請參閱微軟官方「Windows 10 上適用於 Linux 的 Windows 子系統安裝指南」。

這是透過Windows Terminal,在Debian Linux系統中成功燒錄STM32微控器韌體的畫面:

使用stm32flash燒錄韌體

操作步驟如下:

1. 先在Windows的裝置管理員,確認USB轉TTL序列通訊模組的COM編號,此處為COM6。

裝置管理員

2. 在WSL的Linux系統中,執行底下的命令安裝stm32flash:

sudo apt-get install stm32flash

3. 執行底下命令解鎖STM32的快閃記憶體,這個步驟只需要執行一次。

sudo stm32flash /dev/ttyS6 -k -b 115200
sudo stm32flash /dev/ttyS6 -u -b 115200

上面的/dev/ttyS6是我的USB轉TTL序列通訊裝置所在的序列埠編號,在Windows系統下,序列埠的識別名稱是COM加上編號,例如COM6;在Linux子系統下,則是/dev/ttyS加上編號,例如/dev/ttyS6。

4. 把DSO138的韌體寫入指定序列埠裝置:

sudo stm32flash /dev/ttyS6 -w /mnt/d/113-13801-061.hex -b 115200

為了便於操作,我先把從今越電子官網下載的113-13801-061.hex韌體檔複製到D磁碟根目錄,所以在WSL子系統中,這個檔案的路徑是:/mnt/d/113-13801-061.hex;假設你的檔案位於C磁碟根目錄,路徑將是:/mnt/c/113-13801-061.hex。

燒錄完畢後,拔開DSO138板子JP1和JP2的接線,重新開機,即可看到韌體的編號:

燒錄新韌體的DSO138示波器
Posts created 470

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top