0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

手工打造基于MM32F5微控制器的MicroPython開發(fā)板

CHANBAEK ? 來源:安德魯?shù)脑O(shè)計筆記本 ? 作者:安德魯蘇 ? 2023-06-16 10:57 ? 次閱讀

引言

為MicroPython啟用LittleFS文件系統(tǒng)的想法在我的腦袋里已經(jīng)醞釀了大半年。隨著MindSDK中QSPI驅(qū)動的完善,以及基于flash存儲芯片的sfud組件和LittleFS組件的成功集成(感謝同事Hao的出色工作),使我得以在MM32F5微控制上運行的MicroPython項目中,使用基于flash存儲芯片的LittleFS文件系統(tǒng),替換掉基于SD卡的FatFS文件系統(tǒng)。經(jīng)過剛剛過去兩天一夜的編碼和調(diào)試,終于大功告成!

在早期的MicroPython項目中使用的SD卡,本身也是一個獨立的小零件,很容易丟失或者損壞,并且因為物理連接件的問題,有接觸不良的風(fēng)險,另外在開發(fā)板之外再購買SD卡也需要一定經(jīng)濟花銷。使用開發(fā)板上集成的flash存儲芯片取代SD卡存儲設(shè)備,可以大大降低整個MicroPython開發(fā)板的成本,并且易于維護。至于用戶體驗,無論腳本文件存放在SD卡還是flash芯片上,開發(fā)板都能正常運行Python腳本,并且能夠適配Thonny IDE,用戶不會感到一絲絲的不快。借用星爺?shù)囊痪湓挘骸耙粋€字,絕!”

在本文中,將講述如何自己動手制作基于MM32F5微控制的最小系統(tǒng)板,并獲取與之配套的預(yù)先編譯好的MicroPython固件,以及使用圖形界面開發(fā)環(huán)境Thonny IDE在MM32F5微控制器上使用Python進行開發(fā)的基本用法。幫助MicroPython的開發(fā)者自己動手制作一塊基于微控制器的開發(fā)板。

MM32F5微控制器簡介

MM32F5270 是上海靈動微電子第一款搭載了安謀科技 Arm China STAR-MC1 內(nèi)核的 MCU 產(chǎn)品,也是MM32F5系列的第一款產(chǎn)品,其工作頻率可達(dá) 120MHz,內(nèi)置256KB Flash 和 192KB RAM,配置浮點運算單元(Floating Point Unit, FPU)、數(shù)字信號處理單元(Digital Signal Processing,DSP)、信號間互聯(lián)矩陣 MindSwitch、可配置邏輯單元 CLU、三角函數(shù)加速單元 CORDIC等算法加速單元,并集成了豐富的外設(shè)模塊和充足的 I/O 端口。MM32F5270 相較于靈動原有產(chǎn)品全面提升了性能、存儲容量、總線架構(gòu)和外設(shè)配置,旨在覆蓋更廣泛的工業(yè)、汽車和 IoT 應(yīng)用。

圖片

figure_mm32f5270_product_selection

圖1 MM32F5270系列微控制器選型## 制作MicroPython開發(fā)板

基于MM32F5270微控制器,搭建一個可以運行MicroPython的最小系統(tǒng),除了以MM32F5270微控制為核心的最小系統(tǒng)外,只要外接一個SPI接口的flash存儲芯片即可(例如復(fù)旦微的FM25Q128)。當(dāng)然,如果能附加一個USB轉(zhuǎn)串口的電路,將會顯著提升開發(fā)者的使用體驗。我手頭上有一塊內(nèi)部使用的小板子,剛好滿足這樣的要求。如圖2所示。如果有開發(fā)者愿意自己設(shè)計MM32F5270的最小系統(tǒng)板,也是非常容易的。

圖片圖2 MM32F5270電路板

預(yù)編譯的固件使用了特定的引腳,用于支持REPL通信UART,和連接flash存儲芯片的QSPI。對于不愿意重新改寫代碼編譯MicroPython固件的開發(fā)者們,在自行制作電路板時,必須要使用同樣的引腳。實際上,這里的限制并不是很苛刻,對于使用了144引腳的芯片來說,僅綁定2個UART引腳和6個QSPI引腳并不是一件麻煩的事情,而搭建編譯MicroPython的環(huán)境并改寫源碼重新編譯固件,則將會是一個比較繁瑣并且需要一定調(diào)試能力去解決各種瑣碎麻煩的過程。關(guān)于綁定引腳的清單,可見表1。

PS:甚至外擴的flash存儲芯片都是不是必須的!如果你不打算讓芯片上電之后自動運行一個自行編寫Python程序文件,僅使用基于UART的REPL同MicroPython內(nèi)核進行交互的話,那么使用flash存儲芯片作為存儲介質(zhì)的文件系統(tǒng)也可以精簡掉。

表1 MicroPython綁定MM32F5270最小系統(tǒng)板的引腳| MCU引腳 | 綁定功能 | 備注 |

| --------- | ----------- | ------ |

| PB6 | UART1_TX | 必需 |

| PB7 | UART1_RX | 必需 |

| PA6 | QSPI1_CS | 可選 |

| PG7 | QSPI1_SCK | 可選 |

| PG6 | QSPI1_D0 | 可選 |

| PA3 | QSPI1_D1 | 可選 |

| PB3 | QSPI1_D2 | 可選 |

| PG8 | QSPI1_D3 | 可選 |

MM32F5270電路板上有通過UART外接USB轉(zhuǎn)串口芯片部分的原理圖。如圖3所示。

圖片

figure-cubic-f5270-uart-sch

圖3 MM32F5270電路板的UART電路MM32F5270電路板上有通過QSPI外接flash存儲芯片部分的原理圖。如圖4所示。

圖片

figure-cubic-f5270-qspi-sch

圖4 MM32F5270電路板的QSPI電路我手上的另一塊MM32F5270微控制器的開發(fā)板,PLUS-F5270開發(fā)板,板子上集成了一顆W25Q64的flash存儲芯片和USB轉(zhuǎn)串口電路,也能滿足運行MicroPython的條件。PLUS-F5270開發(fā)板是成都逐飛科技有限公司設(shè)計生產(chǎn)的一款基于MM32F5270微控制器的開發(fā)板,這也是靈動官方軟件MindSDK支持的開發(fā)板。這塊開發(fā)板已經(jīng)對外出售,開發(fā)者可以在市面上買到。PLUS-F5270開發(fā)板的外觀如圖5所示。

圖片

圖5 PLUS-F5270開發(fā)板

獲取并下載MicroPython固件到開發(fā)板

為了獲取MicroPython的預(yù)編譯固件或者源代碼,可能需要一個CSDN或者gitee的賬號,登錄到網(wǎng)站上下載對應(yīng)的文件。

獲取預(yù)編譯的可執(zhí)行文件

本例中使用的MM32F5270最小系統(tǒng)板:使用12MHz外部晶振,串口波特率115200。

https://download.csdn.net/download/suyong_yq/86246621

PLUS-F5270開發(fā)板:使用12MHz外部晶振,串口波特率115200。QSPI1_CS引腳綁定到PB10引腳,其余引腳同本例相同。

https://download.csdn.net/download/suyong_yq/86246723

開源的完整項目的代碼倉庫

包含對MM32F5270微控制器支持的MicroPython項目代碼倉庫:

git@gitee.com:suyong_yq/micropython-su.git

下載可執(zhí)行文件到MM32微控制器

可以使用DAPLink或者JLink作為調(diào)試器,使用Keil或者Segger Ozone作為PC端軟件。

《使用DAP-Link單獨下載可執(zhí)行文件到MM32F5微控制器》一文中介紹了使用Keil和Ozone作為PC端軟件配合DAPLink調(diào)試器下載獨立的可執(zhí)行文件到MM32微控制器上,同樣的方法也適用于使用JLink調(diào)試器的情況。

但若是使用JLink調(diào)試器,必須使用JLink v9以后的版本,之前市面上流行的老款JLink v8(俗稱“黑磚頭”)已經(jīng)不支持Arm Cortex-M33,以及MM32F5微控制器所使用的ArmChina STAR-MC1內(nèi)核。

單片機上運行Python小程序

MM32F5270最小系統(tǒng)板上設(shè)計了一個可編程LED燈,對應(yīng)主控芯片的PC8引腳。接下來以編寫Python程序控制這個LED燈為例,展示在電路板上運行MicroPython的玩法。

MM32F5270電路板上有通過QSPI外接flash存儲芯片部分的原理圖。如圖6所示。

圖片

figure-cubic-f5270-led-sch

圖6 MM32F5270電路板的LED電路### 使用基于UART串口終端的REPL

將MM32F5270微控制器上的串口通過USB轉(zhuǎn)串口電路同電腦相連,啟動串口終端軟件Tera Term,在終端界面中通過串口輸入Python腳本,如圖7所示。

圖片圖片

圖7 通過REPL編寫MicroPython程序### 使用圖形開發(fā)環(huán)境Thonny IDE

Thonny是由愛沙尼亞的Tartu大學(xué)開發(fā),非常適合初學(xué)者和教學(xué)的一款輕量級IDE,提供可視化的編程界面,并可逐句調(diào)試運行Python程序??蓮墓倬W(wǎng)上下載適配多操作系統(tǒng)平臺的安裝包(https://thonny.org/)。如圖8所示。

圖片

figure-thonny-overview

圖8 Thonny概覽啟用圖形開發(fā)環(huán)境Thonny IDE中,指定串口同MM32F5270電路板相連,然后在代碼編輯區(qū)中輸入Python程序,或從電腦上導(dǎo)入預(yù)先寫好的Python程序文件。然后通過Thonny IDE運行腳本,在Thonny內(nèi)置的串口終端界面中可以產(chǎn)生輸出。Thonny內(nèi)置的串口終端界面也可以像REPL一樣,直接輸入Python語句立即執(zhí)行。如圖9所示。

圖片

demo-micropython-thonny

圖9 在Thonny中運行Python程序### 將Python程序保存在文件系統(tǒng)中上電自啟

如果希望編寫的Python程序能在開發(fā)板上電復(fù)位后自動運行,可以將Python腳本文件保存在MicroPython掛載的文件系統(tǒng)中。之后,通過電路板的硬件復(fù)位或者MicroPython的軟件復(fù)位,都可以激活已經(jīng)存入文件系統(tǒng)中的腳本運行。如圖10所示。

圖片

demo-micropython-thonny-2

圖10 保存程序文件到文件系統(tǒng)中## 總結(jié)

作者將早期開發(fā)MicroPython項目中的文件系統(tǒng)從SD卡遷移到開發(fā)板的flash存儲器上,在完全不影響用戶使用體驗的情況下,簡化了電路系統(tǒng),降低了整個MicroPython電路系統(tǒng)的成本,提高了系統(tǒng)的可靠性。

當(dāng)然,如果進一步考慮,還可以將文件系統(tǒng)從片外flash遷入片內(nèi)flash,利用未使用的flash存儲空間做文件系統(tǒng),可以繼續(xù)降低成本。但是,使用片內(nèi)文件系統(tǒng)也要面臨一些麻煩:

  • 程序的可移植性變差了,每個不同的微控制器芯片可能使用不同的片內(nèi)flash,對應(yīng)的操作方式不同。
  • 需要足夠大的片內(nèi)flash,并不是每款微控制器芯片都有很大的片內(nèi)flash。
  • 單位空間的片內(nèi)flash比片外flash貴。
  • 操作片內(nèi)flash比操作片外flash麻煩,可能需要將存放在片內(nèi)flash上操作flash的函數(shù)搬運到RAM中才能正常工作。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7394

    瀏覽量

    150629
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    283

    瀏覽量

    19860
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4834

    瀏覽量

    96836
  • Micropython
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    4691
  • MM32F5
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    524
收藏 人收藏

    評論

    相關(guān)推薦

    帶靈動微MM32F5的Plus-F5270開發(fā)板怎么玩?

    雖然你現(xiàn)在可以使用Keil MDK,但Keil MDK此刻還不認(rèn)得搭載靈動微MM32F522E芯片的開發(fā)板。咱們需要安裝靈動微官網(wǎng)MM32F522E系列的開發(fā)支持包。
    的頭像 發(fā)表于 08-18 15:21 ?1056次閱讀
    帶靈動微<b class='flag-5'>MM32F5</b>的Plus-<b class='flag-5'>F</b>5270<b class='flag-5'>開發(fā)板</b>怎么玩?

    基于MM32F5微控制器的FSMC接口外接SRAM存儲的用法

    MM32F5微控制器基于Arm STAR-MC1微控制器,最高主頻可達(dá)120MHz,集成了FPU單元和DSP擴展指令集,有不錯的算力。
    發(fā)表于 07-17 15:08 ?1354次閱讀
    基于<b class='flag-5'>MM32F5</b><b class='flag-5'>微控制器</b>的FSMC接口外接SRAM存儲<b class='flag-5'>器</b>的用法

    MicroPython入門|開發(fā)板種類那么多,哪塊才適合你玩?

    MicroPython開發(fā)板  TPYBoard是一款MicroPython開發(fā)板,它是Python語言的一種精益和快速的實現(xiàn),將Python經(jīng)過優(yōu)化運行在
    發(fā)表于 06-20 18:13

    MicroPython入門:能跑MicroPython開發(fā)板大盤點!

    MicroPython開發(fā)板 TPYBoard是一款MicroPython開發(fā)板,它是Python語言的一種精益和快速的實現(xiàn),將Python經(jīng)過優(yōu)化運行在
    發(fā)表于 07-06 14:43

    MicroPython開發(fā)板—TPYBoard開發(fā)板測評分享!

    的 LED 保持長亮。 至此編寫和運行第一個 MicroPython 程序就完成了,加油!那么TPYBoard開發(fā)板和傳統(tǒng)的微控制器相比怎么樣?正如它的創(chuàng)造者所說的:和Arduino
    發(fā)表于 08-14 00:18

    MM32F522E芯片的Plus-F5270開發(fā)板怎么玩?

    盒子,里面一共有5件東西:1、 Plus-F5270開發(fā)板2、 創(chuàng)芯工坊PWLINK2(DAP)3、 母對母杜邦線12根4、 USB Type-C數(shù)據(jù)線5
    發(fā)表于 08-16 15:35

    【BPI-Pico-RP2040 開發(fā)板】+MicroPython初體驗

    為了突破Python不能再單片機上運行的限制,他花費了六個月的時間來打造Micro Python。是跑在MCU(微控制器)上的Python,通過內(nèi)置的解釋執(zhí)行py文件或者py命令,就可以讓
    發(fā)表于 03-18 18:42

    如何設(shè)計微控制器開發(fā)板

     您可以在接口上添加芯片使用您選擇的微控制器來增強您的開發(fā)板為其用戶提供的可用性或功能。
    的頭像 發(fā)表于 08-29 11:04 ?3726次閱讀
    如何設(shè)計<b class='flag-5'>微控制器</b><b class='flag-5'>開發(fā)板</b>

    使用微控制器開發(fā)板來作為單板計算機

    半導(dǎo)體供應(yīng)商利用評估和演示開發(fā)板為其微控制器提供支持。這些的預(yù)期用途是讓工程師能夠首先熟悉目標(biāo)
    的頭像 發(fā)表于 10-30 05:42 ?451次閱讀

    [長文干貨]MicroPython移植到野火STM32F429開發(fā)板

    [長文干貨]MicroPython移植到野火STM32F429開發(fā)板
    發(fā)表于 12-05 18:51 ?27次下載
    [長文干貨]<b class='flag-5'>MicroPython</b>移植到野火STM32<b class='flag-5'>F</b>429<b class='flag-5'>開發(fā)板</b>

    PY32F003系列微控制器開發(fā)板的詳細(xì)說明

    開發(fā)板支持PY32F003和PY32F030兩種系列單片機??梢郧巴詫毣蛘?688購買。 PY32F003系列微控制器采用高性能的32位
    的頭像 發(fā)表于 06-29 17:07 ?4404次閱讀
    PY32<b class='flag-5'>F</b>003系列<b class='flag-5'>微控制器</b><b class='flag-5'>開發(fā)板</b>的詳細(xì)說明

    PIC18 PIN (16F628A) 微控制器開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《PIC18 PIN (16F628A) 微控制器開發(fā)板.zip》資料免費下載
    發(fā)表于 07-27 10:34 ?0次下載
    PIC18 PIN (16<b class='flag-5'>F</b>628A) <b class='flag-5'>微控制器</b><b class='flag-5'>開發(fā)板</b>

    基于STM8S105K6微控制器的sduino UNO開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《基于STM8S105K6微控制器的sduino UNO開發(fā)板.zip》資料免費下載
    發(fā)表于 08-24 10:26 ?3次下載
    基于STM8S105K6<b class='flag-5'>微控制器</b>的sduino UNO<b class='flag-5'>開發(fā)板</b>

    使用arduino開發(fā)板對89S52微控制器進行編程

    電子發(fā)燒友網(wǎng)站提供《使用arduino開發(fā)板對89S52微控制器進行編程.zip》資料免費下載
    發(fā)表于 12-09 10:01 ?0次下載
    使用arduino<b class='flag-5'>開發(fā)板</b>對89S52<b class='flag-5'>微控制器</b>進行編程

    MicroPython應(yīng)用基礎(chǔ)-準(zhǔn)備基于MM32F5MicroPython開發(fā)板

    本文主要面向 **2023年全國大學(xué)生物聯(lián)網(wǎng)設(shè)計競賽安謀科技命題** ,使用星辰處理的靈動MM32F5微控制器開發(fā)板,基于MicroPython
    的頭像 發(fā)表于 10-19 18:27 ?1037次閱讀
    <b class='flag-5'>MicroPython</b>應(yīng)用基礎(chǔ)-準(zhǔn)備基于<b class='flag-5'>MM32F5</b>的<b class='flag-5'>MicroPython</b><b class='flag-5'>開發(fā)板</b>