打印
[MM32硬件]

MM32F3277 MicroPython 实验板设计和软件测试

[复制链接]
825|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


简 介: 对于截止到(2021-11-08 21:13:44)来自灵动的MicroPython在MM32F3277上的一致的基本功能进行测试。并给除了MicroPython的相关模块的の基本测试调用版本。

关键词: MM32F3277MicroPython


  在 制作测试MM32F3277-MicroPython最小电路板 测试了基于MM32F3277的MicroPython测试板。也可以看到它的时钟是不需要。下面设计一个适应于面包板进行测试实验的MicroPython测试板。

一、资源设置
1、MicroPython支持模块
  下面使用灵动苏勇提供的模块支持类别:

▲ 图1.1.1 MM32F3277中的模块

▲ 图1.1.2 MM32F3277七个UART对应的管脚





使用特权

评论回复
评论
原来是wjc 2023-9-30 11:18 回复TA
———————————————— 版权声明:本文为CSDN博主「卓晴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zhuoqingjoking97298/article/details/121146277 
沙发
原来是wjc|  楼主 | 2023-9-30 11:18 | 只看该作者
设计电路板
1、原理图

▲ 图1.2.1 原理图

使用特权

评论回复
板凳
原来是wjc|  楼主 | 2023-9-30 11:19 | 只看该作者
PCB

▲ 图1.2.2 快速制版单面PCB设计图

使用特权

评论回复
地板
原来是wjc|  楼主 | 2023-9-30 11:19 | 只看该作者
修正版本
  在上面设计中,对于模拟电源部分(VDDA,VSSA)没有能够单独供电,这将会影响ADC,DAC信号的性能。在下面版本中,将VDDA,VSSA单独进行供电。

AD\MM32\TestMM32\TestMM32MicroPythonPIN.SchDoc

使用特权

评论回复
5
原来是wjc|  楼主 | 2023-9-30 11:19 | 只看该作者

▲ 图1.2.3 将VDDA,VSSA采用0Ω电阻进行单独供电部分

使用特权

评论回复
6
原来是wjc|  楼主 | 2023-9-30 11:19 | 只看该作者


图1.2.4 设计的单面快速制版PCB图

使用特权

评论回复
7
原来是wjc|  楼主 | 2023-9-30 11:19 | 只看该作者
  存在的问题:
  在上面设计中,依然存在的问题:就是没有将VSSDA引出,在外部信号输入的时候,没有信号底线。

三、焊接与调试
  使用 一分钟制版法 ,在五分钟之后制作完电路板,进行焊接和调试。

使用特权

评论回复
8
原来是wjc|  楼主 | 2023-9-30 11:20 | 只看该作者
焊接电路板
  焊接测试电路板,如下图所示


▲ 图1.3.1 焊接之后的测试电路板

使用特权

评论回复
9
原来是wjc|  楼主 | 2023-9-30 11:20 | 只看该作者
测试电路板
(1)上电测试
  施加+5V工作电压。测量板内3.3V的电源电压符合要求。

(2)下载MicroPython
  下来来自于苏勇的MicroPython。这个版本需要外部晶体。

使用特权

评论回复
10
原来是wjc|  楼主 | 2023-9-30 11:20 | 只看该作者

▲ 图1.3.2 使用MM32-LINK下载MicroPython

使用特权

评论回复
11
原来是wjc|  楼主 | 2023-9-30 11:20 | 只看该作者


▲ 图1.3.3 下载MicroPython之后在晶体上测量到时钟信号

使用特权

评论回复
12
原来是wjc|  楼主 | 2023-9-30 11:21 | 只看该作者
测试RX1
  MicroPython写入之后,在上电之后会发送出MicroPython的版本信息。可以在TX1上测量到该波形。



▲ 图1.3.4 上电后测量TX1上的波形

使用特权

评论回复
13
原来是wjc|  楼主 | 2023-9-30 11:21 | 只看该作者
测试REPL
  连接测试版上的REPL接口(UART1)到计算机的串口终端,可以在电路板上电之后读取到版本信息。

▲ 图1.3.5 REPL 提示符号

使用特权

评论回复
14
原来是wjc|  楼主 | 2023-9-30 11:22 | 只看该作者
根据苏勇反馈的信息,现在这个版本MicroPython已经支持一下模块:Pin、ADC、UART、SDCard、utime。模块的使用遵循着 MicroPython官网 给出的协议。下面对于现在的版本进行测试。

一、基本信息测试
1、测试代码
from machine import Pin,ADC,UART,freq
import machine
import utime

dir(machine)
dir(utime)

freq()

使用特权

评论回复
15
原来是wjc|  楼主 | 2023-9-30 11:22 | 只看该作者
测试结果
Reset MicroPython...
Wait for MicroPython comeback...
Download MicroPython : 9 lines/109 characters.
Begin to download programm...
-------------------------------------------------------------------------

['__name__', 'ADC', 'Pin', 'SDCard', 'UART', 'freq', 'mem16', 'mem32', 'mem8']
['__name__', 'sleep', 'sleep_ms', 'sleep_us', 'ticks_add', 'ticks_cpu', 'ticks_diff', 'ticks_ms', 'ticks_us']
96000000
>>>

使用特权

评论回复
16
原来是wjc|  楼主 | 2023-9-30 11:22 | 只看该作者
 从上面可以看到,内部的OSC的频率为96MHz。

使用特权

评论回复
17
原来是wjc|  楼主 | 2023-9-30 11:22 | 只看该作者
测试utime
1、测试代码
from machine import Pin,ADC,UART,freq
import utime

while True:
    print('A')
    utime.sleep_ms(100)

使用特权

评论回复
18
原来是wjc|  楼主 | 2023-9-30 11:23 | 只看该作者
测试结果
  REPL接口输出’A’,每隔100ms输出一个数字。

使用特权

评论回复
19
原来是wjc|  楼主 | 2023-9-30 11:23 | 只看该作者
测试Pin
  测试GPIO的输入输出功能。

1、测试输出
  根据苏勇反馈的信息:
from machine import Pin

pin0 = Pin('PB2', mode=Pin.OUT_PUSHPULL)
pin0(1)
pin0.low()

使用特权

评论回复
20
原来是wjc|  楼主 | 2023-9-30 11:23 | 只看该作者
测试GPIO对应的输出功能。

(1)测试代码
from machine import Pin,ADC,UART,freq
import utime

led = Pin('PB2', Pin.OUT_PUSHPULL)

while True:
    led(1)
    utime.sleep_ms(100)
    led(0)
    utime.sleep_ms(100)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

975

帖子

0

粉丝