精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

CHANBAEK ? 來源:安德魯的設計筆記本 ? 作者:安德魯蘇 ? 2023-06-16 10:57 ? 次閱讀

引言

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

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

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

MM32F5微控制器簡介

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

圖片

figure_mm32f5270_product_selection

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

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

圖片圖2 MM32F5270電路板

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

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

表1 MicroPython綁定MM32F5270最小系統板的引腳| 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轉串口芯片部分的原理圖。如圖3所示。

圖片

figure-cubic-f5270-uart-sch

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

圖片

figure-cubic-f5270-qspi-sch

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

圖片

圖5 PLUS-F5270開發板

獲取并下載MicroPython固件到開發板

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

獲取預編譯的可執行文件

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

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

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

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

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

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

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

下載可執行文件到MM32微控制器

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

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

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

單片機上運行Python小程序

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

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

圖片

figure-cubic-f5270-led-sch

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

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

圖片圖片

圖7 通過REPL編寫MicroPython程序### 使用圖形開發環境Thonny IDE

Thonny是由愛沙尼亞的Tartu大學開發,非常適合初學者和教學的一款輕量級IDE,提供可視化的編程界面,并可逐句調試運行Python程序。可從官網上下載適配多操作系統平臺的安裝包(https://thonny.org/)。如圖8所示。

圖片

figure-thonny-overview

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

圖片

demo-micropython-thonny

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

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

圖片

demo-micropython-thonny-2

圖10 保存程序文件到文件系統中## 總結

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

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

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

    關注

    48

    文章

    7336

    瀏覽量

    150120
  • 文件系統
    +關注

    關注

    0

    文章

    280

    瀏覽量

    19831
  • 開發板
    +關注

    關注

    25

    文章

    4771

    瀏覽量

    96184
  • Micropython
    +關注

    關注

    0

    文章

    68

    瀏覽量

    4681
  • MM32F5
    +關注

    關注

    0

    文章

    12

    瀏覽量

    522
收藏 人收藏

    評論

    相關推薦

    ARM系列微控制器:GD32 Colibri-F150R8開發板評測

    。##GD32 Colibri-F150R8開發板控制器搭載的是兆易創新的GD32F150R8T6,其實,對于這顆主控我們并不陌生,這和愛
    發表于 04-27 17:26 ?2344次閱讀

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

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

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

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

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

    MicroPython開發板  TPYBoard是一款MicroPython開發板,它是Python語言的一種精益和快速的實現,將Python經過優化運行在
    發表于 06-20 18:13

    MicroPython入門:能跑MicroPython開發板大盤點!

    MicroPython開發板 TPYBoard是一款MicroPython開發板,它是Python語言的一種精益和快速的實現,將Python經過優化運行在
    發表于 07-06 14:43

    MM32F522E芯片的Plus-F5270開發板怎么玩?

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

    【BPI-Pico-RP2040 開發板】+MicroPython初體驗

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

    如何設計微控制器開發板

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

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

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

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

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

    PY32F003系列微控制器開發板的詳細說明

    開發板支持PY32F003和PY32F030兩種系列單片機。可以前往淘寶或者1688購買。 PY32F003系列微控制器采用高性能的32位
    的頭像 發表于 06-29 17:07 ?4316次閱讀
    PY32<b class='flag-5'>F</b>003系列<b class='flag-5'>微控制器</b><b class='flag-5'>開發板</b>的詳細說明

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

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

    基于STM8S105K6微控制器的sduino UNO開發板

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

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

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

    MicroPython應用基礎-準備基于MM32F5MicroPython開發板

    本文主要面向 **2023年全國大學生物聯網設計競賽安謀科技命題** ,使用星辰處理的靈動MM32F5微控制器開發板,基于MicroPython
    的頭像 發表于 10-19 18:27 ?880次閱讀
    <b class='flag-5'>MicroPython</b>應用基礎-準備基于<b class='flag-5'>MM32F5</b>的<b class='flag-5'>MicroPython</b><b class='flag-5'>開發板</b>