2019年12月17日星期二

[STM32]MicroPython 快速建立與初體驗

其實前陣子就想要測試看看 MicroPython,今天想趁著快要跨年了儘早把這事兒完成吧。

MicroPython

是以 Python 3 程式語言語法一種精簡軟體的實現,其中包含 Python標準庫的一部分。並且經過優化可在微控制器和受限環境中運行。雖然如此,它也包含了 Python 的 REPL 交互式提示符的操作模式,可以立即執行語法合法的命令。

MicroPython 支援的開發版

官方有支援很多的開發版,可以自行到官方網站 (https://store.micropython.org/) 瞧瞧。這裡介紹的是使用 ST 的開發板及快速應用,官方版本也許將來有機會再做說明嘍。

在官方網站上有提供已經編譯好了的 dfu 格式燒錄檔,只要用 dfu 燒錄方法就可以導入 MicroPython 。目前提供以下 。



剛好之前有購入 L476RG 的開發板, 正好可以拿來用。所以如果您也剛好有上面的開發板,也可以直接下載 對應的 dfu 燒錄檔使用。


1.開始前

  • 下載 NUCLEO_L476RG-20190529-v1.11.dfu 檔案
  • STM32 DFU 下載軟體 STSW-STM32080 並安裝。如同安裝軟體般 按 Next 繼續,最後會有DfuSeDemo 這個程式。 
  • 準備 終端軟體 , 如 PUTTY 或是 Xshell 等相同軟體。

2.如何連接

連接方式要用 USB 當做主要的連接方法, 而 NUCLEO-L476RG 這個開發板的 USB 接口是 ST-LINK,實際上並沒有直接連接 USB 的接口必須自行做連接。

我手邊只有 USB B type 的連接器 , 我直接焊上排針。 這樣就方便用杜邦線與開發板做連接。 Power 部份我會用 ST-LINK 所帶過來的 5V ,這裡我就不重複接上了。只接 3 PIN


USB
L476RG
D+
PA12
D-
PA11
GND
GND
DFU 模式燒錄和 串口燒錄一樣, STM32 必須要進入系統儲存器啟動模式。上電之前要將 BOOT0=1 ,BOOT1(PB2)= 0 。不過這個開發板只用 BOOT0 所以我預先將 BOOT0 用短接 JUMP 設給 VDD。

所以最後是長這個樣子,參考一下


3.開始燒錄

確認好前面接線是正確的及BOOT0 要設定好後 ,先接入 ST-LINK 讓開發板先上電之後連接 USB B type 端。在裝置管理員會多出一個新的設備出現 "STM Device in DFU Mode" 表示開發板已經有進入 dfu 模式了並準備好燒錄狀態。


打開 DfuSeDemo 軟體 , 並選好之前下載好的檔案 "NUCLEO_L476RG-20190529-v1.11.dfu"。


 點擊 Upgrade 開始執行燒錄。
燒錄完成後,將 ST-LINK 先移除斷電,BOOT0 短接解除。再重新將 ST-LINK 連接上電。
打開串口終端軟體,我使用的是 Xshell 。並選擇好 ST-LINK 所帶出來的虛擬串口。

裝置管理員

Xshell ,注意 Baud Rate 要設定為 115200


按一下開發板的復位鍵,會出現以下 Python 的 REPL 訊息。



寫小段程式碼測試一下



這一段程式碼會將開發版上的 LED 做出明滅閃爍狀態。以上就先做這樣的介紹,其他細節有機會再做分享了。


相關文章