工程师在开发产品的过程中使用调试仿真工具下载程序,用于调试程序是否按预期的业务逻辑实现了产品功能,但在开发过程中可能会遇到一些特殊情况需要对MCU恢复出厂设置。
工程师在开发产品中调试产品功能时出现以下行为时需对MCU恢复出厂设置:
MCU程序运行立刻进入低功耗停机模式或待机模式(注:未配置正确的唤醒源或唤醒引脚唤醒时间不够)。
MCU工程软件程序设置了选项字节对Flash区的固件读保护。
MCU端基于SWD协议的程序下载接口PA13和PA14被复用成其它外设功能,程序运行时下载口被复用的外设功能占用。
用户应用层软件误操作擦除了芯片选项字节导致芯片自锁,导致SWD无法继续下载程序。
本示例应用举例以MM32G0001为例,因为用户程序误操作等情况导致芯片自锁,使得调试器无法调试、读取或下载程序,那么MCU开发过程中遇到以上这些行为现象时,可以通过MM32- Link MINI和MM32-Link Utility上位机软件对MCU进行恢复出厂设置,解决SWD程序下载口被外设功能复用等占用问题。
1►
需准备的工具
MM32-Link MINI调试器
MM32-Link升级工具(MM32-Link MINI调试器固件升级工具)
MM32-Link Utility(MM32-Link MINI调试器上位机软件)
如下图1所示可通过灵动官网www.mindmotion.com.cn下载MCU恢复出厂设置所需工具软件,单击灵动官网导航条中的支持栏,然后单击开发工具栏中的调试与下载工具,如下图2所示,在弹出的网页中,单击MM32-Link MINI仿真器。
图1
图2
如下图3所示,在弹出的网页中分别单击下载MM32-Link升级工具和MM32-Link Utility上位机软件,该软件与MM32-Link MINI配套使用。
图3
MM32-Link升级工具和MM32-Link Utility上位机软件下载完成后,在电脑端分别双击运行MM32-Link升级工具和MM32-Link Utility软件,按照软件安装向导的提示安装好MM32-Link升级工具和MM32-Link Utility软件。
2►
对MM32-Link MINI进行固件升级
如下图4所示,MM32-Link MINI调试仿真器与电脑USB接口连接,然后双击MM32_Link Upgrade快捷方式图标运行MM32-Link Upgrade软件,如下图5所示。
图4
如下图5所示,通过MM32_Link Upgrade V1.01为MM32-Link MINI更新固件,在Choose Version栏中的Version下拉选项选择固件版本为20230608,然后单击Upgrade按钮更新MM32-Link MINI固件,稍等片刻在Upgrade Logs栏会打印输出MM32-Link固件更新成功信息。
图5
3►
SWD口PA13和PA14复用为GPIO功能
如下图6所示,本演示示例以MDK Keil IDE环境打开LibSamples_MM32G0001库函数例程中的GPIO_SWD_Remap例程,该例程把基于SWD协议的程序下载口PA13和PA14复用成GPIO功能,使用该例程为本示例后文用于演示恢复出厂设置做准备。
图6
如下图7和图8所示,分别为MM32-Link MINI接线图以及通过20pin排线与MM32G0001核心板连接实物图,其中MM32-Link MINI调试仿真器的DIO和CLK接口分别连接MM32G0001核心板的SWD接口PA13和SWCLK接口PA14,MM32-LINK MINI调试仿真器的TVCC和GND分别连接MM32G0001核心板的VDD和GND,并把核心板MCU端的VDD连接到MM32-Link MINI的VREF参考脚(注:如果MM32-Link MINI内部短接了VREF脚无需外接VDD),使得MM32-Link MINI识别MM32G0001核心板端的供电电压,以便于匹配SWD时序电平。
图7
图8
在MDK Keil IDE环境中按快捷键F7编译LibSamples_MM32G0001_v0.9.1库函数例程中的GPIO_SWD_Remap为GPIO功能的例程。如下图9 Build Output窗口所示提示编译成功。按快捷键F8把编译的程序通过MM32-Link MINI下载到MM32G0001核心板。如下图10 Build Output窗口打印Logo提示程序下载成功。
图9
图10
MM32G0001需要重新上电,GPIO_SWD_Remap的程序才会执行。然后按快捷键F8重新烧录程序,如下图11所示,提示SWD通信失败,原因是MM32G0001的SWD程序烧录接口PA13和PA14已经被复用为GPIO功能并正在运行GPIO翻转功能的程序,因此提示SWD通信失败。遇到这种情况可以通过MM32-Link MINI结合MM32-Link Utility上位机软件对MM32G0001恢复出厂设置,恢复SWD下载程序功能。
图11
4►
对MM32G0001恢复出厂设置
保持MM32-Link MINI与电脑端和MM32G0001核心板的连接,双击MM32-Link Utility快捷方式图标启动MM32-Link Utility软件,该软件会自动与MM32-Link MINI建立连接。启动后的界面如下图12所示。
图12
如下图13所示,在MM32-Link Utility V1.08上位机软件的菜单栏单击Setting->MM32-Link Config
图13
如下图14所示,在弹出的MM32-Link Config界面可以配置MM32-Link MINI调试器仿真器的TVCC引脚对外输出3.3V或5V电压给目标芯片MCU供电,本示例配置TVCC对外输出5V供电给MM32G0001核心板LDO输入转3.3V输出给MM32G0001供电,同时也可配置是否开启蜂鸣器声音提示和下载程序的Speed。
图14
如下图15所示,单击MM32-Link Utility V1.08软件菜单栏的Project->New Project或按快捷键Ctrl+N键新建MM32-Link Utility恢复出厂设置工程。
图15
如下图16所示,在弹出的New Project窗口中Base选项卡Project栏中Name栏自定义填写待恢复出厂设置的MCU的型号或系列名称,本示例以MM32G0001为例作为填写,在Chip Choose栏Series系列下拉选项卡中选择MM32G0001系列,Part No下拉选项选择MCU的具体型号,本示例选择MM32G0001A6T,在File栏单击“…”按钮,选择MM32G001库函数例程中的任意一个例程,这里以选择GPIO_LED_Toggle例程为例(如果只是恢复出厂设置File栏也可不做加载选择,本示例为了演示新建工程的操作步骤作为选择项)。
图16
如下图17所示,进入GPIO_LED_Toggle例程Objects目标文件夹加载GPIO_LED_Toggle.hex文件,然后单击打开即可。
图17
如下图18所示,在New Project界面的Descript栏中用户可以自定义新建恢复出厂设置的工程描述本示例自定义Factory Reset描述,即恢复出厂设置,然后单击OK。
图18
如下图19所示为新建好的MM32G0001恢复出厂设置的工程,即Factory Reset工程。
图19
如下图20所示,单击MM32-Link Utility V1.08软件菜单栏Operate->Erase Chip使得MM32G0001恢复出厂设置。
图20
如下图21所示,MM32-Link Utility V1.08 上位机软件Logo栏打印信息提示为Chip erase--->Successfully,此时MM32G0001已成功恢复到出厂设置。
图21
如下图22所示在MM32-Link Utility V1.08软件菜单栏单击Operate->Disconnect断开MM32-LINK MINI与MM32-Link Utility软件的连接,然后重新给MCU上电恢复出厂设置即刻生效。
图22
5►
恢复了出厂设置验证
如下图23所示,使用MDK Keil IDE打开LibSamples_MM32G0001库函数例程中的GPIO_LED_Toggle翻转例程,按快捷键F7编译工程。
图23
在MDK Keil IDE环境下按快捷键F8下载MM32G0001库函数例程中的GPIO_LED_Toggle翻转例程到MM32G0001核心板,以验证MM32G0001是否通过MM32-LINK MINI使用MM32-Link Utility上位机软件恢复了出厂设置。如下图24所示,在MDK Keil IDE的Build Output打印的Logo信息提示下载的程序的工程名称为GPIO_LED_Toggle,Programming Done.Verify OK. 说明MM32G0001通过MM32-LINK MINI使用MM32-Link Utility上位机软件恢复了出厂设置,并可以在MDK Keil IDE环境中重新下载新的例程。
图24
审核编辑:刘清
-
mcu
+关注
关注
146文章
17143浏览量
351142 -
仿真器
+关注
关注
14文章
1018浏览量
83739 -
上位机
+关注
关注
27文章
942浏览量
54806 -
调试器
+关注
关注
1文章
304浏览量
23739 -
Flash存储
+关注
关注
0文章
38浏览量
8289 -
SWD
+关注
关注
1文章
57浏览量
11836 -
MM32
+关注
关注
1文章
106浏览量
761
原文标题:灵动微课堂 (第273讲)|使用MM32-Link MINI对MM32G0001恢复出厂设置
文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论