IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 调试来自于逐飞的MM32F3277移植有MicroPython开发板 -> 正文阅读

[嵌入式]调试来自于逐飞的MM32F3277移植有MicroPython开发板

简 介: 对于从逐飞寄送的MicroPython开发板进行初步测试,建立了基于REPL进行交互式开发的环境。

关键词 MicroPythonMM32Thonny

?

§01 发板信息


??天(2021-10-27)收到逐飞公司发送过来的移植有MicroPython开发板。

一、基本信息

1、电路板

??开发板的正面图片与反面见封面图片以及下面图片。

▲ 图1.1.1 电路板的背面

▲ 图1.1.1 电路板的背面

2、示例程序

(1)下载地址

(2)示例程序文件

  • CCD.py
  • ENCODER.py
  • GPIO.py
  • LCD180.py
  • main.py
  • MicroPython驱动层接口定义.xlsx
  • PWM.py
  • SERVO.py
  • TIMER.py
  • UART.py
  • ADC.py

3、MicroPython驱动层接口定义

??本版本所有模块都归纳在seekfree模块下,需要先import seekfree才能通过seekfree.的方式调用,或者使用 from seekfree import 。且本版本并不作为最终版本发布 最终版本与灵动方协商推出 可能最终接口名与形式并不与本版本兼容。

??本演示固件仅实现读取SD卡中main.py文件执行功能,暂不支持自动或代码打开其他文件。本演示固件并不与最终支持大赛固件接口相同,仅为演示功能完整性与可实施性。本演示固件暂有许多局限性,受限于时间烦请查看附带的演示例程,其中各个模块可通过 .help() 查看说明。

??可通过核心板下载接口的串口进行的REPL调试,使用循环时请务必设置退出条件,否则将无法执行新的Python语句,需要重启单片机。使用舵机时请务必使用电源T头供电,红色正极,黑色负极,供电电压推荐8V。可用接口为舵机接口、ADC、电机接口PWM、编码器接口、CCD接口、屏幕TFT1.8、主板右下方(有来标识)串口、按键等。

▲ 图1.1.2  芯片外设模块接口

▲ 图1.1.2 芯片外设模块接口

二、上电测试

1、电源接口

??在地板一段具有电源接入引线,可以施加2C,3C锂电池。通过开关可以控制电源通断。开关旁边有 SPX2940 5V稳压电源。 SPX2940为低压差(0.28V@1A输出电流)稳压电源。

??在SPX2940前有一个肖特基防止反接二极管。

电源部分:
接入电压:7V
SPX2940输入:6.68V
SPX2940输出:5.025V

▲ 图1.2.1 在电源线引入电源

▲ 图1.2.1 在电源线引入电源

??测量输入电压与SPX2940输出电压曲线,如下图所示。可以看到如果输入电压超过5.4V,电路便可以正常工作了。

▲ 图1.2.2 输入电压与SPX2940输出电压

▲ 图1.2.2 输入电压与SPX2940输出电压

from headm import *
from tsmodule.tsvisa        import *
from tsmodule.tsstm32       import *

inv = linspace(0, 7, 50)
outv = []
for v in inv:
    dh1766volt(v)
    time.sleep(1.5)
    meter = meterval()
    outv.append(meter[1])

    printff(v, meter[1])

    tspsave('power', inv=inv, outv=outv)

plt.plot(inv, outv)
plt.xlabel("Input(V)")
plt.ylabel("Output(V)")
plt.grid(True)
plt.tight_layout()
plt.show()

2、测量TX输出

??测量电路板上面的下载程序口TX在上电后的输出波形。这个信息应该是MicroPython REPL在上电后的输出信号。

▲ 图1.2.3  测量下载板上的TX输出波形

▲ 图1.2.3 测量下载板上的TX输出波形

??可以看到在TX 上电后输出脉冲波形。

▲ 图1.2.4 测量TX在上电后输出波形

▲ 图1.2.4 测量TX在上电后输出波形

??展开输出波形可以大体看到输出波形的波特率在115200。

▲ 图1.2.5 展开输出波形可以大体看到输出波形的波特率在115200

▲ 图1.2.5 展开输出波形可以大体看到输出波形的波特率在115200

3、制作Thonny调试接口

??在 ESP32-S模块转接板设计与实现 定义了ESP32调试接口定义。 可以看到其中对应的 GND-RXD0,TXD0的顺序与MM32调试接口的TXD,RXD的顺序相反。需要通过一个转接头,对TXD-RXD进行交替。

▲ 图1.2.6 ESP32调试接口定义

▲ 图1.2.6 ESP32调试接口定义

??如下是制作的由ESP32调试接口道MM32核心板3PIN连接线。它将RX-TX对调。

▲ 图1.2.7 制作专用调试接口

▲ 图1.2.7 制作专用调试接口

4、Thonny调试

??设置Thonny中Option的Interpreter选项,设置为CH340对应的调试接口。

▲ 图1.2.8 Thonny 的Option中的Interpreter的选项设置

▲ 图1.2.8 Thonny 的Option中的Interpreter的选项设置

??上电后,可以看到Thonny接收到 MM32发送出的信息。

Found and execute /sd/main.py!

Set callback function success.

▲ 图1.2.9 Thonny调试界面

▲ 图1.2.9 Thonny调试界面

??但是直接在Thonny内部输入命令,MM32并没有回应。

??通过示波器直接查看串口调试接口的波形,可以看到它的输出幅值只有2V左右。与正常的串口通信幅值相差很大。

▲ 图1.2.10 编程接口RX波形

▲ 图1.2.10 编程接口RX波形

??解决方法: 在MM32的开发板上使用1k欧姆连接RX至 3.3V。

▲ 图1.2.11 在RX,3.3V之间焊接1kΩ上拉电阻

▲ 图1.2.11 在RX,3.3V之间焊接1kΩ上拉电阻

??焊接上拉电阻之后,可以看到在Thonny输入回车之后,发送的RX信号变得正常了。

▲ 图1.2.12 改善后的RX波形

▲ 图1.2.12 改善后的RX波形

??但是仍然MM32没有REPL回应。

??现在存在的问题:MM32没有能够进行REPL响应。

5、去除SD卡中的程序

??根据 TX返回的信息,看到上电后的主板应该是执行了SD卡中的 main.py程序。需要将该程序去除,让MicroPython 返回到REPL状态。

▲ 图1.2.13 使用SD卡读写器去除SD卡中的程序

▲ 图1.2.13 使用SD卡读写器去除SD卡中的程序

(1)SD卡中的文件

??可以看到 SD卡中的文件

▲ 图1.2.14 SD卡中的文件

▲ 图1.2.14 SD卡中的文件

(2)说明文件内容

??MM32F3270系列单片机MicroPython固件使用说明

??1、本演示固件仅实现读取SD卡中main.py文件执行功能,暂不支持自动或代码打开其他文件;

??2、本演示固件并不与最终支持大赛固件接口相同,仅为演示功能完整性与可实施性;

??3、本演示固件暂有许多局限性,受限于时间烦请查看附带的演示例程,其中各个模块可通过 .help() 查看说明

??4、可通过核心板下载接口的串口进行的REPL调试,使用循环时请务必设置退出条件,否则将无法执行新的Python语句,需要重启单片机

??5、使用舵机时请务必使用电源T头供电,红色正极,黑色负极,供电电压推荐8V

??6、可用接口为舵机接口、ADC、电机接口PWM、编码器接口、CCD接口、屏幕TFT1.8、主板右下方(有来标识)串口、按键等

(3)移除SD卡之后

??将SD卡移除,或者将其中的main.py删除之后,重新上电。Thonny平台出现以下问题:

▲ 图1.2.15 连接Thonny之后出现的问题

▲ 图1.2.15 连接Thonny之后出现的问题

??利用STM32BL打开 COM8进行调试,可以看到在上电之后,MM32 MicroPython 给出:

▲ 图1.2.16  STM32BL 接收到MM32发送的信息

▲ 图1.2.16 STM32BL 接收到MM32发送的信息

??※ 错误:现在无法确定,MM32现在的MicroPython是否能够支持REPL!

三、问题解决

1、使用STM32进行交互

??重新编写 STM32BL ,使其在ECHO设置为:Return情况下,可以发送CTRL+B信息,这样便可以在上面的MicroPython粘贴状态下返回REPL交互模式。

▲ 图1.3.1 可以实现简单的交互开发

▲ 图1.3.1 可以实现简单的交互开发

??上面的交互开发模式仍然无法使用Thonny环境完成程序交互式开发。

?

§02 STM32交互界面


??据前面测试,可以看到使用 Thonny 直接连接 开发板会出现错误,下面通过自行编写的 STM32程序 ,使得它能够通过REPL界面完成MicroPython软件的下载。

一、STM32 Bootloader 改造

1、增加UDP命令

??在STM32中增加UDP命令:MPDLD,它可以吧剪切板中的程序通过MicroPython的REPL命令下载到开发板。REPL关于粘贴软件参见 The MicroPython Interactive Interpreter Mode (aka REPL)

??通过输入CTRL-E(0x5),使得REPL进入粘贴模式,然后发送程序ASCII内容。通过CTRL-D(0x4)退出并执行。

if(strncmp(szString, "MPDLD", 5) == 0) {   // MicroPython Dlownload
    char szString[0x8000];

    ClearInfor();
    strcpy(szString, "");
    Clipboard()->GetTextBuf(szString, sizeof(szString) - 1);
    MessageBeep(0);
    SendChar(0x5, PORT1);       // Send CTRL+A
    int nLength = strlen(szString);
    int i;
    for(i = 0; i < nLength; i ++)
        SendChar(szString[i], PORT1);

    SendChar(0x4, PORT1);      // Send CTRL+B

    return;
}

2、设置RETURN

▲ 图2.1.1 设置RETURN,使得STM32的信息框成为交互窗口

▲ 图2.1.1 设置RETURN,使得STM32的信息框成为交互窗口

二、改造runpython_shift

??对于TEASOFT软件的副主程序 runpython_shift.py中增加关于STM32下载的检测。

title = tspgetwindowtitle()
for t in title:
    if t.find('Thonny') == 0:
        ThonnyExec()
        exit()

    if t.find('远程桌面') >= 0:
        ThonnyExec(1)
        exit()

    if t.find("STM32 BOOTLOADER") >= 0:
        tspcopyclipboard()
        stm32cmd("MPDLD")
        exit()

三、测试工具链

1、测试代码

a = 1
b = 2
print(a+b)

for _ in range(10):
    print(a)

2、下载执行结果

▲ 图2.3.1 下载执行结果

▲ 图2.3.1 下载执行结果

?

试总结 ※


??于来自于逐飞的改造的MM32开发板,如果将其后面的SD卡拔掉,便可以直接进入REPL交互开发状态。

??利用开发板上的串口,与STM32相连,形成程序下载,结果显示的界面。

??很可惜,现在为止直接使用Thonny软件还无法对MM32 MicroPython进行REPL交互式开发。具体原因尚不清楚。一种可以的查询故障的方法,就是通过UART T-型通道对Thonny环境与REPL模块之间的交互信息进行截取对比,可以找到问题所在。

▲ 图3.1 UART T-型器

▲ 图3.1 UART T-型器


■ 相关文献链接:

● 相关图表链接:

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:13:03  更:2021-10-29 13:14:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:17:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码