加入星計(jì)劃,您可以享受以下權(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è)計(jì)電路板
    • 二、測(cè)試電路板
    • 三、測(cè)試SD卡
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

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

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

01 設(shè)計(jì)背景

 

一、MM32F3277 MicroPython

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

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

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

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

二、SD卡接口

 

1、SD卡插座

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

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

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

 

2、SD卡接口

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

▲ 圖1.2.2 SD 卡接口定義

 

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

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

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

▲ 圖1.2.4 MM32F3277 端口功能定義

 

三、建立AD元器件庫

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

1、器件尺寸

▲ 圖1.3.1 在圖形上測(cè)量幾何位置

 

2、器件封裝

PCB封裝名稱 :SD-H26MM

▲ 圖1.3.2 元器件封裝

 

3、器件原理圖

原理圖器件名稱 :MINI-SD

▲ 圖1.3.3 原理圖器件定義

 

02 設(shè)計(jì)測(cè)試

 

一、設(shè)計(jì)電路板

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

1、原理圖

▲ 圖2.1.1 電路原理圖

 

2、快速制版PCB

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

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

 

3、焊接電路板

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

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

 

二、測(cè)試電路板

 

1、上電測(cè)試

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

2、下載MicroPython

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

▲ 圖2.2.1  下載MicroPython過程

 

3、測(cè)試MicroPython是否工作

(1)測(cè)試晶體信號(hào)

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

▲ 圖2.2.2 外部晶體上的振蕩信號(hào)

 

(2)測(cè)量REPL上電串口信號(hào)

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

▲ 圖2.2.3 上電后在UART1的TX測(cè)量到的輸出信號(hào)

 

(3)測(cè)量REPL

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

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

 

三、測(cè)試SD卡

 

1、存儲(chǔ)與讀取文件

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

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

 

(1)測(cè)試程序

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)測(cè)試結(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個(gè)字節(jié),對(duì)應(yīng)的 test.txt長度為14。緊接著讀取其中的內(nèi)容并顯示。

(3)在Windows下讀取SD卡

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

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

 

2、測(cè)試其它SD卡

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

▲ 圖2.3.3 測(cè)試一個(gè)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存儲(chǔ) main.py,MicroPython上電后首先執(zhí)行 main.py程序。

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

from machine                import Pin
import utime

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

寫入SD卡那中。將SD卡插入測(cè)試 MicroPython小板:

▲ 圖2.3.4 在SD卡中存儲(chǔ)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
>>> 

※ 測(cè)試總結(jié) ※

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

參考資料

[1]制作測(cè)試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è)計(jì)和軟件測(cè)試: 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卡座 帶偵測(cè)腳內(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用戶手冊(cè): 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è)圖譜

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