加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    •  
    • 一、MM32F3277 MicroPython
    • 二、SD卡接口
    • 三、建立AD元器件庫
    •  
    • 一、設(shè)計電路板
    • 二、測試電路板
    • 三、測試SD卡
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

從裸片到MicroPython電路板設(shè)計

2021/11/08
898
閱讀需 14 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本文測試了基于MM32F3277下的MicroPython電路板設(shè)計。其中包含有SD卡接口,常用外設(shè)接口等。驗(yàn)證了現(xiàn)在的移植的MicroPython的對文件的基本操作功能。

01 設(shè)計背景

 

一、MM32F3277 MicroPython

利用MicroPython開發(fā)嵌入式,是在犧牲一定的性能的基礎(chǔ)上增加了開發(fā)的靈活性。MicroPython的解釋執(zhí)行代碼,可以將嵌入式底層的硬件差異性進(jìn)行屏蔽。

在 制作測試MM32F3277-MicroPython最小電路板[1] 設(shè)計了基于MM32F3277的MicroPython的實(shí)驗(yàn)板。來自于靈動(MindMotion)的MM32F3277具有豐富的資源。經(jīng)過測試一下兩款不同的MicroPython的移植版本,都可以很好地運(yùn)行。

調(diào)試來自于逐飛的MM32F3277移植有MicroPython開發(fā)板[2]

來自靈動的MM32F3277 MicroPython 實(shí)驗(yàn)板設(shè)計和軟件測試[3]

二、SD卡接口

 

1、SD卡插座

根據(jù)  pyBoard v1.1-CN STM32F405RG單片機(jī)開發(fā)板 MicroPython編程[4] 板上的配置,它使用了 MICRO SD卡座 迷你短體TF卡座 帶偵測腳內(nèi)存卡槽 8P 高H2.6/3.0MM[5] 。這款SD卡組具有三種尺寸:

  • 短體H2.6MM 不帶有偵測腳;短體H3.0MM 帶有偵測腳;短體H3.75MM 帶有偵測腳;

▲ 圖1.2.1 短體H2.6MM卡座尺寸

 

2、SD卡接口

根據(jù)OneOS(來自于SeekFree)的評估板上的SD卡接口設(shè)計,來設(shè)計基于MM32F3277的SD卡的接口。由于這款主板上的SD卡已經(jīng)在 前面兩個版本的MicroPython中得到的驗(yàn)證。

▲ 圖1.2.2 SD 卡接口定義

 

根據(jù)上面卡槽的定義,可以知道SD卡的管腳定義順序如下圖所示:

▲ 圖1.2.3 SD 卡以及卡槽的管腳順序定義

根據(jù)  MM32F3277用戶手冊[6] 中關(guān)于管腳的定義,可以看到,SD卡的接口使用了MCU的 SDIO(安全數(shù)字輸入輸出接口),兼容 SD/SDIO/MMC的設(shè)備控制器, 作為控制外部的SD/SDIO/MMC 卡通信接口。

▲ 圖1.2.4 MM32F3277 端口功能定義

 

三、建立AD元器件庫

根據(jù)前面給出的SD卡槽的數(shù)據(jù),在AltumDesign中檢查對應(yīng)的元器件庫。根據(jù)  MICRO SD卡座[8] 網(wǎng)頁上給出的基本幾何參數(shù),設(shè)計AD中的元器件庫。對于兩旁的金屬外殼固定焊盤的尺寸不詳,通過圖片測量到各部分的具體尺寸。

1、器件尺寸

▲ 圖1.3.1 在圖形上測量幾何位置

 

2、器件封裝

PCB封裝名稱 :SD-H26MM

▲ 圖1.3.2 元器件封裝

 

3、器件原理圖

原理圖器件名稱 :MINI-SD

▲ 圖1.3.3 原理圖器件定義

 

02 設(shè)計測試

 

一、設(shè)計電路板

在MM32F3277 MicroPython 實(shí)驗(yàn)板設(shè)計和軟件測試[4]基礎(chǔ)上,增加SD卡座電路,設(shè)計測試電路。

1、原理圖

▲ 圖2.1.1 電路原理圖

 

2、快速制版PCB

為了適合一分鐘制版,如下設(shè)計了適應(yīng)單面板制作的PCB。

▲ 圖2.1.2 設(shè)計快速制版PCB

 

3、焊接電路板

下面是經(jīng)過一分鐘制版,焊接形成測試電路板。

▲ 圖2.1.3 經(jīng)過一分鐘制板,焊接形成測試電路板

 

二、測試電路板

 

1、上電測試

施加+5V工作點(diǎn),測量電路板上的3.3V穩(wěn)壓輸出3.3V。靜態(tài)耗電量大約:6mA左右。

2、下載MicroPython

使用 MM32-LINK[7]  將來自于靈動的MicroPython(2021-11-5版本)下載到MM32F3277中。

▲ 圖2.2.1  下載MicroPython過程

 

3、測試MicroPython是否工作

(1)測試晶體信號

來自于靈動的MicroPython使用到外部的晶體時鐘,所以應(yīng)該能夠測量在外部晶體上的8MHz晶體振蕩信號。

▲ 圖2.2.2 外部晶體上的振蕩信號

 

(2)測量REPL上電串口信號

因?yàn)镸icroPython在啟動后,會在REPL端口輸出版本信息,因此應(yīng)該能夠在UART1的TX測量輸出信號。

▲ 圖2.2.3 上電后在UART1的TX測量到的輸出信號

 

(3)測量REPL

使用 STM32-Bootloader[8] 連接到REPL端口,測試REPL相互的操作。

▲ 圖2.2.4 在STM32-BOOLOADER接收到的REPL的提示符

 

三、測試SD卡

 

1、存儲與讀取文件

在SD卡中預(yù)先存儲 “test1.py” 文本文件。然后在 MicroPython進(jìn)行讀取。如下是靈動蘇勇演示對于文件的讀取和寫入的示例過程。

▲ 圖2.3.1 蘇勇給出的演示示例程序

 

(1)測試程序

from machine                import Pin
import utime

with open('test.txt', 'w') as f:
    f.write('Hello SD file.')

with open('test.txt', 'r') as f:
    print(f.read())

(2)測試結(jié)果

程序下載與執(zhí)行過程,REPL界面顯示如下:

Reset MicroPython...
Wait for MicroPython come back...
Download MicroPython : 24 lines/576 characters.
Begin to download program...

14
Hello SD file.
>>> 

上面顯示了寫入SD file:14個字節(jié),對應(yīng)的 test.txt長度為14。緊接著讀取其中的內(nèi)容并顯示。

(3)在Windows下讀取SD卡

使用SD讀寫器,可以看到SD中存在著剛才有MicroPython寫入的文件。

▲ 圖2.3.2 Windows下查看SD卡內(nèi)部的內(nèi)容

 

2、測試其它SD卡

使用另外一款只有512MB的SD卡,測試在MicroPython下是否能夠讀取該卡中的內(nèi)容。

▲ 圖2.3.3 測試一個512M的SD卡

使用相同的程序,MicroPython顯示如下信息:

Reset MicroPython...
Wait for MicroPython come back...
Download MicroPython : 24 lines/576 characters.
Begin to download program...

Traceback (most recent call last):
  File "<stdin>", line 13, in <module>
OSError: 19
>>> 

3、寫入main.py

在SD存儲 main.py,MicroPython上電后首先執(zhí)行 main.py程序。

下面是main.py的測試內(nèi)容:

from machine                import Pin
import utime

for _ in range(10):
    print(_)
    utime.sleep_ms(100)

寫入SD卡那中。將SD卡插入測試 MicroPython小板:

▲ 圖2.3.4 在SD卡中存儲main.py

 

上電后,程序輸出:

[Y] sdcard ready.

[Y] file system on sdcard ready.

[Y] run the main.py on disk ...

0
1
2
3
4
5
6
7
8
9
[Y] done. 1

MicroPython v1.16 on 2021-11-05; MB_F3270 with MM32F3277G7P
>>> 

※ 測試總結(jié) ※

本文測試了基于MM32F3277下的MicroPython電路板設(shè)計。其中包含有SD卡接口,常用外設(shè)接口等。驗(yàn)證了現(xiàn)在的移植的MicroPython的對文件的基本操作功能。

參考資料

[1]制作測試MM32F3277-MicroPython最小電路板: https://zhuoqing.blog.csdn.net/article/details/121131867

[2]調(diào)試來自于逐飛的MM32F3277移植有MicroPython開發(fā)板: https://zhuoqing.blog.csdn.net/article/details/120997254

[3]MM32F3277 MicroPython 實(shí)驗(yàn)板設(shè)計和軟件測試: https://zhuoqing.blog.csdn.net/article/details/121146277

[4]pyBoard v1.1-CN STM32F405RG單片機(jī)開發(fā)板 MicroPython編程: https://item.taobao.com/item.htm?spm=a1z09.2.0.0.69092e8dBgj4Qc&id=624223471577&_u=6nvskcd0517

[5]MICRO SD卡座 迷你短體TF卡座 帶偵測腳內(nèi)存卡槽 8P 高H2.6/3.0MM: https://detail.tmall.com/item.htm?id=606944990541&spm=a1z09.2.0.0.69092e8dBgj4Qc&_u=6nvskcd69a1

[6]MM32F3277用戶手冊: https://www.mindmotion.com.cn/download/products/DS_MM32F3270_SC.pdf

[7]MM32-LINK: https://zhuoqing.blog.csdn.net/article/details/121131071

[8]STM32-Bootloader: https://gitee.com/tsinghuajoking/programming-technology/tree/master/C/STM32%20Bootloader

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號TsinghuaJoking主筆。清華大學(xué)自動化系教師,研究興趣范圍包括自動控制、智能信息處理、嵌入式電子系統(tǒng)等。全國大學(xué)生智能汽車競賽秘書處主任,技術(shù)組組長,網(wǎng)稱“卓大大”。