caft
【EV Board (MM32L0136C7P)测评】+ ESP32做无线串口 + keil环境部署
评测品牌:灵动微电子
评测型号:MM32EVBL0136
申请理由(产品应用):智能家居主控芯片 接入homeassistant
发布时间:2024-10-20 15:39:29
前言
感谢灵动微电子的 MM32L0136C7P 开发板样片,本文介绍了使用ESP32做无线串口连接arm keil部署开发环境,希望能帮到大家
开源口碑分享内容

1. 背景

首先非常感谢灵动公司提供的MM32L0136C7P开发板,笔者非常荣幸的获得了测评机会。之前一直在ESP32上做micropython开发,偶然间从B站刷到灵动微电子样片测评的消息,刚好想尝试下其他开发环境于是发起了申请,万分幸运申请通过获得了样片。本文面向micropython从业者从0开始搭件arm keil c语言开发环境,简单给MM32L0136C7P开发板亮个灯。

2. ESP32无线烧录器准备

为什么需要准备ESP32无线烧录器?上文有提到笔者是做ESP32开发的,当前市面上的ESP32大都集成了串口芯片具备烧录功能做到了USB一线通,因此手头没有额外的芯片烧录器,而本文提到的 MM32L0136C7P 样片本身并未集成串口烧录功能,正当笔者一筹莫展时在论坛里看到了一篇好文: 链接  ,手头恰好有大量的ESP32C3能解燃眉之急。

2.1 编译固件

用到windowsair大佬开发的神固件: https://github.com/windowsair/wireless-esp8266-dap


笔者选用最简单的构建方式: Build-with-Github-Action

【fork仓库】-> 【修改main/wifi_configuration.h添加自己家里的wifi密码信息】-> 【git提交触发github action构建】

一套简单的操作之后便获得了适用于ESP32C3(笔者手里是ESP32C3,根据自己ESP32类型选择相应的包)做无线串口的神固件:firmware_esp32c3.zip


解压这个zip后里面长这样:

$tree firmware_esp32c3.zip/
firmware_esp32c3.zip/
├── bootloader
│   └── bootloader.bin
├── partition_table
│   └── partition-table.bin
├── wireless_esp_dap_app.bin
└── wireless_esp_dap_full.bin

我们需要的是all in one的固件:wireless_esp_dap_full.bin

2.2 烧录固件

笔者选用操作简单的 Thonny 做烧录

接着在弹窗里选中准备好的 wireless_esp_dap_full.bin 固件,点击【安装】等待片刻便完成了ESP32无线串口烧录器的制作

2.3 ESP32连接 MM32L0136C7P 开发板 SWD 口

按照这个表格的IO口接线

SWDESP32
SWCLKGPIO6
SWDIOGPIO7
TVCC3V3
GNDGND


SWD口引脚图灵动官网有给出: pdf


连完线后长这样

2.4 查看ESP32无线烧录器的IP

这里依然用 Thonny 获取烧录器IP

【运行】->【配置解释器】->【确认】后会看到左下角shell并未显示我们想要的IP信息

别急,按下ESP32板子上的RST,等待重启后即可看到

2.5 准备无线烧录器客户端elaphureLink

依然用到windowsair大神的工具: elaphureLink

直接下载已经编译好的binary: releases


注意:在安装完keil IDE之后再运行 elaphureLink,否则“安装”按钮会提示路径不对(因为Keil安装好后会创建路径)

解压后双击运行:elaphureLink.Wpf.exe

按照截图操作后,一切顺利的话会看到Thonny的串口输出里提示 "Socket accepted",OK 无线烧录器准备完成

3. arm keil环境搭件

3.1 keil官网下载最新的安装程序

https://www.keil.com/demo/eval/arm.htm#/DOWNLOAD

之后按照提示装好keil IDE即可。要注意的是,首次安装好keil运行后会弹窗安装开发板对应的pack,默认这里是搜不到 MM32L0136C7P 的,这里先关闭Installer窗口

3.2 获取支持keil开发的pack

灵动官网: https://www.mindmotion.com.cn/support/software/keil_pack/

下载解压后,找到:MindMotion.MM32L0130_DFP.1.1.2.pack,双击自动安装到keil


3.2 获取examples

很贴心,灵动官网已经准备好了丰富的示例程序,在这里:

https://www.mindmotion.com.cn/development_tools/info.aspx?itemid=3535

3.3 用keil打开示例程序

注意:确保 elaphureLink 已开启并配置完成,再打开 Keil 否则后续加载不到 debugger

3.3.1 选中SLCD_Basic示例

在左侧边栏里找到要运行的 "SLCD_Basic"示例,右键选择"Set as Active Project"


3.3.2 配置示例环境

Device选择 MM32L0136C7P


Target里需要选下arm编译器版本,选 "V6.22"


Debug配置 elaphureLink

注意:确保 elaphureLink 已开启并配置完成后再打开 Keil 否则这里加载不到 elaphureLink Debugger

下面这里很关键,Max Clock一定要选小于 10MHz的,否则识别不到设备;下面Reset方式一定要改 SYSRESETREQ ,elaphureLink不支持默认的Auto

3.3.3 编译 & 烧录

3.3.4 运行

回到 MM32L0136C7P 开发板上,点击右上角的【nRST】触发运行。

上文一切配置正确的话,恭喜你,成功运行了官方示例!

5. 总结

作为micropython开发者,第一次接触到其他开发环境,由于缺少现成的烧录器,笔者额外完成了ESP32无线烧录器的制作。本文总结了笔者在arm keil环境搭件过程中遇到的坑,希望能帮助到和笔者一样初次接触非micropython开发环境的朋友。

后续笔者会在 MM32L0136C7P 上接入更多传感器,尝试用做智能家居终端。


一个小建议:每次按开发板上的【nRST】后,都会有扬声器响,大半夜的我每按一次reset,楼下的狗就会狂叫几声🤣,这个对夜猫子很不友好!希望灵动能给个关闭reset后扬声器响的开关🙏