关键词:
简 介: 介绍了在Windows7下安装基于MM32-LINK开发软件。设计制作了MM32F3277的测试电路板,并对如何正确从MM32-LINK将调试电缆连接至MM32F3277开发板进行介绍。需要保证编程电流长度以及线序都满足要求,才能够正确完成程序高速下载。
关键词
: MM32F3277,MM32-LINK,下载电缆
§01 MM32F3277
一、背景简介
手边有两款主要的 灵动ARM核单片机 : MM32F3277 ,MM32SPIN27 。由于近期基于灵动单片机完成MicroPython移植版本应用于 全国大学生智能车竞赛 的基础组、专科组等,因此对于该款单片机的使用以及基于MicroPython软件平台的制作需要进行进一步的测试。
二、安装MM32-LINK
1、MM32-LINK
MM32-LINK 仿真器 是对灵动单片机缝针与编程一体的工具。手边有三套来自于灵动公司基于的MM32-LINK。
▲ 图1.2.1 MM32-Link
(1)MM32-LINK特点:
-
支持 Win 10,Win 7 和 Windows XP 操作系统,在 Win10 环境下无须安装驱动程序
-
支持 MM32 Cortex-M 全系列 MCU 代码编程,自动匹配目标芯片
-
支持在线 ICP SWD 方式编程
-
支持在线 ICP 自动编程机接口
-
支持离线 ICP、APM 自动编程机接口
-
在线/离线 ICP / APM 编程方式下,128KB 编程时间小于3秒,16KB 编程时间小于 0.5 秒
-
Micro USB 高速通讯接口,提供供电电源
-
编程适配器选件:ICP-Adapter、ISP-Adapter、APM-Adapter
(2)功能特征
在 MM32-LINK系列产品功能特征表 给出了产品功能特性介绍。
▲ 图1.2.2 MM32-LINK功能特性
可以看到型号MM32-LINK-ISOL是一种带有隔离的量产开发器,应该比较适合对于功率电子系统的开发。现在已经向灵动的苏勇申请看是否能够得到一套这款调试器了。
(3)MM32-LINK接口定义
MM32-LINK有PIN20的接口,这个定义在其封装内说明卡片中给出。
▲ 图1.2.7 MM32-LINK 接头功能定义
▲ 图1.2.4 使用MM32-LINK连接OneOS板
▲ 图1.2.5 使用MM32-LINK连接OneOS板
▲ 图1.2.6 接口PIN定义
2、安装驱动
由于现在我使用开发电脑内的是Windows7,所以需要安装MM32-Link的USB驱动。如果使用的Win10,则无需安装驱动程序。
(1)USB驱动下载与安装
USB驱动程序可以在: MM32-LINK仿真器/编程器USB 驱动程序 下载到。安装过客可以参见:MM32-LINK+Application+Notes中的说明。
下面是下载后文件及其解压缩之后的文件。
MM32-Link+Application+Note.zip
mm32_devkit_setup_v1_60_23.zip
mm32_usb_setup_v1.01.zip
Upgrade+v169.zip
MM32-Link+Application+Note
qs_MM32-LINK_V1.1.pdf
ug_MM32-LINK programmer_V12.1.00.pdf
Win7_Xp下USB驱动安装失败的解决方法.zip
使用前注意.txt
mm32_devkit_setup_v1_60_23
mm32_devkit_setup.exe
mm32_usb_setup_v1.01
mm32_usb_setup.exe
USB驱动安装注意事项.txt
Win7_Xp下USB驱动安装失败的解决方法.zip
Upgrade+v169
└─Upgrade v169
MM32LINKUpgrade.exe
mm_device.dll
mm_driver.dll
MUPGRADE.DAT
winusb.dll
加开压缩包之后运行其中的MM32_usb_setup.exe。在运行过程中需要注意运行Windows安装没有数字签名的驱动程序。
▲ 图1.2.7 安装时请使用“以管理员身份运行”
- mm32_usb_setup.exe
- USB驱动安装注意事项.txt
- Win7_Xp下USB驱动安装失败的解决方法.zip
安装正确之后,会在电脑设备管理中出现“MM32 Device”。
▲ 图1.2.3 安装MM32-LINK之后在电脑设备管理
3、安装开发软件包
(1)下载与安装
MM32-Link编程开发与调试安装包,包含MM32-Link KEIL Debugger驱动组件、MM32-Link IAR Debugger驱动组件、MM32Program PC端软件与使用说明。
请至灵动官网: http://www.mm32.com.cn下载MM32-Link编程开发与调试安装包,解压后点安装文件mm32_devkit_setup.exe完成软件程序的安装(需要右击,选择“以管理员身份运行”)。
在第一次运行MM32-LINK program的时候出现了如下的提示。具体升级过程见下面【§1.2.4:升级MM32-LINK固件】部分内容。
▲ 图1.2.8 安装之后显示版本过低,需要进行升级
(2)确认安装文件
- 确认MindMotion安装:
可以在安装目录:
C:\\Program Files (x86)\\MindMotion\\MM32-LINK\\Programmer
下来找到MM32Program安装程序以及使用说明。
- 确认IAR 编程DLL:
由于我使用是 IAR EW.7.40 进行程序开发,所以在:
C:\\Program Files (x86)\\IAR Systems\\Embedded Workbench 7.2\\arm\\bin
中可以确认ARMM32LINK.dll程序的存在。
▲ 图1.2.9 确认IAR Systems中安装的armmm32link.dll
4、升级MM32-LINK固件
灵动官网:http://www.mm32.com.cn下载MM32-Link固件升级包Upgrade v1.36。插入MM32-LINK,确保MM32-LINK没有被KEIL、IAR或MM32LINK program所占用。右击MM32LINKUpgrade.exe以管理员身份运行。
▲ 图1.2.10 升级MM32-LINK固件结束
MM32-LINK升级完之后,在【§1.2.3.1:下载与安装】遇到的版本问题便可以解决了。
§02 设计测试板
一、参考资料
1、MM32F3277资料
(1)基本信息
手边有LQFP-64封装的MM32F3277G7P芯片。通过 灵动的在线选型工具 可以查到这款MCU的主要参数。
▲ 图2.1.1 灵动单片机在线选型工具
▲ 图2.1.2 MM32F327X 内部资源
(2)数据手册
2、建立AD库
(1)数据手册定义管脚
▲ 图2.1.3 LQFP64的管脚分布
▲ 图2.1.4 LQFP48 管脚分布
(2)AD库文件
▲ 图2.1.5 AD建立LQFP48, LPQP-64
3、测试板设计
(1)调试接口
▲ $#Y 1:调试接口
(2)时钟电路
▲ 图2.1.7 时钟电路
二、测试电路
1、设计实验板
(1)原理图
▲ 图2.2.1 测试电路原理图
(2)快速做板PCB
▲ 图2.2.2 快速制版布线PCB
(3)快速制板
▲ 图2.2.3 快速制版
(4)焊接实验板
▲ 图2.2.4 焊接实验板
2、测试实验板
(1)制作转接线
▲ 图2.2.5 转接线
▲ 图2.2.6 制作的下载转接线
※ 出现的问题:无法使用MM32-LINK下载程序。
三、测试OneOS系统板
1、下载的条件
使用扁平电缆连接MM32-LINK与ONeOS的20PIN的调试端口,可以正常下载程序。
为了确定究竟哪些连接线对于下载起到作用,下面利用杜邦线一一对应将MM32-LINK 的输出口与ONEOS调试版连接。如下所示:
▲ 图2.3.1 使用杜邦线连接调试端口
测试结果:◎ 仍然无法完成读、写操作。
▲ 图2.3.2 下载程序出现错误
2、测试连接方式
▲ 图2.3.3 能够进行下载的配置
经过测试发现,只有将SWD, SWC之间需要相间一个GND才能够正确下载程序。下图给出了能够完成下载的扁平电缆配置。
▲ 图2.3.4 能够完成下载的线序配置
下面是指做的连接下载线。经过测试,它可以正常通过MM32-LINK下载程序了。
▲ 图2.3.5 直接使用杜邦线可以下载程序了
※ 测试总结 ※
首先下载安装了MM32-LINKUSB的驱动程序。由于是在Windows7下安装,所以安装驱动过程需要手动进行。安装完毕之后:
- 可以通过检查IAR System目录、MM32等相关目录查看到安装的文件;
- 在计算机的设备管理中,查看到:
- 通讯串行总线扫支起:MM32 Device
- 端口(COM和LPT): MindMotion Virtual COM Port(COM10)。注:经过测试,不知为何MindMotion对应的串口在Windows7中无法正常打开。
设计制作了MM32F3277的测试电路,设计了基于SWD,SWC的调试端口,定义了调试端口:
- +3.3V,GND,SWC, SWD, nRST
经过测试可以知道,从MM32-LINK对测试电路下载程序,需要保证:
- 下载扁平电缆的长度不超过15mc;
- 在SWD,SWC之间需要增加GND作为隔离;
否则就无法使用MM32进行正常下载程序。
▲ 图3.1 读取单片机内存过程
■ 相关文献链接:
- 灵动ARM核单片机
- MM32F3277
- MM32SPIN27
- 智能车竞赛相关的教高司公函:公函[2005]201号文、教高司[2005]13号
- MM32-LINK仿真器/编程器USB 驱动程序
- MM32-LINK系列产品功能特征表
- 在线选型工具
- MM32F3277 数据手册
- MM32F3277 DATASHEET-English
- 用户手册-User Manual
● 相关图表链接:
- 图1.2.1 MM32-Link
- 图1.2.2 MM32-LINK功能特性
- 图1.2.7 MM32-LINK 接头功能定义
- 图1.2.4 使用MM32-LINK连接OneOS板
- 图1.2.5 使用MM32-LINK连接OneOS板
- 图1.2.6 接口PIN定义
- 图1.2.7 安装时请使用“以管理员身份运行”
- 图1.2.3 安装MM32-LINK之后在电脑设备管理
- 图1.2.8 安装之后显示版本过低,需要进行升级
- 图1.2.9 确认IAR Systems中安装的armmm32link.dll
- 图1.2.10 升级MM32-LINK固件结束
- 图2.1.1 灵动单片机在线选型工具
- 图2.1.2 MM32F327X 内部资源
- 图2.1.3 LQFP64的管脚分布
- 图2.1.4 LQFP48 管脚分布
- 图2.1.5 AD建立LQFP48, LPQP-64
- $#Y 1:调试接口
- 图2.1.7 时钟电路
- 图2.2.1 测试电路原理图
- 图2.2.2 快速制版布线PCB
- 图2.2.3 快速制版
- 图2.2.4 焊接实验板
- 图2.2.5 转接线
- 图2.2.6 制作的下载转接线
- 图2.3.1 使用杜邦线连接调试端口
- 图2.3.2 下载程序出现错误
- 图2.3.3 能够进行下载的配置
- 图2.3.4 能够完成下载的线序配置
- 图2.3.5 直接使用杜邦线可以下载程序了
灵动微m3内核32位单片机lqfp100封装mm32f3277g8p
灵动微MM32F3277G8P使用高性能的ARM®Cortex®M3为内核的32位单片机,ARM®的Cortex®M3微控制器是一个可配置的并具有多级流水线的32位精简指令集处理器,具有高性能和低功耗的特点。MM32F3277G8P包含多达3个12位的ADC、2个比较器、2个16位... 查看详情
测试mm32micropython测试电路板的基本功能(代码片段)
...能。关键词:MicroPython,MM32,逐飞,灵动单片机 §01测试板简介 在测试逐飞的MM32F3277MicroPython开发板的基本功能中对于来自于逐飞的MM32MicroPython测试模块的基本功能进行了初步测试。包括 查看详情
设计带有sd卡的mm32f3277micropython实验板(代码片段)
简介:本文测试了基于MM32F3277下的MicroPython电路板设计。其中包含有SD卡接口,常用外设接口等。验证了现在的移植的MicroPython的对文件的基本操作功能。关键词:MM32F3277,MicroPython,SD卡 §01设计背景一、MM32F32... 查看详情
测试逐飞的mm32f3277micropython开发板的基本功能(代码片段)
简介:对于给定的MicroPython移植版本进行了初步的测试。对比之下,MCU中还有很多的模块尚未支持。这些工作需要近期尽快补充测试完毕。关键词:MM32,MicroPython §01MicroPython开发一、背景介绍 为了能够在第十... 查看详情
设计制作mm32f0144c4测试电路板(代码片段)
01测试电路板一、前言灵动单片机MM32F1044测试电路板二、资料准备 关于MM32F140资源简介,可以参见MM32F140产品选型。 由于手边的芯片样品是TSOP32封装的,现在首先建立该芯片的AD元器件封装。 通过对比,可以... 查看详情
设计制作mm32f0144c4测试电路板(代码片段)
01测试电路板一、前言灵动单片机MM32F1044测试电路板二、资料准备 关于MM32F140资源简介,可以参见MM32F140产品选型。 由于手边的芯片样品是TSOP32封装的,现在首先建立该芯片的AD元器件封装。 通过对比,可以... 查看详情
测试mm32f3277基本模块功能(代码片段)
#mermaid-svg-qzGbzdxmdGRVUe4t.labelfont-family:\'trebuchetms\',verdana,arial;font-family:var(--mermaid-font-family);fill:#333;color:#333#mermaid-svg-qzGbzdxmdGRVUe4t.labeltextfill:#333#mermaid-svg-qzGbzdxmdGRVUe4t.noderect,#mermaid-svg-qzGbzdxmdGRVUe4t.nodecircle,#mermaid-svg-qzGbzdxmdGRVUe4t.nodeel... 查看详情
测试mm32f3277中的micropython的signal功能(代码片段)
简介:通过对这个版本MicroPython中的Signal功能进行测试,可以看到它现在还存在问题。后来经过SuYong修正之后,问题解决了。关键词:MicroPython,MM32,Signal#mermaid-svg-RMEXQrNJ5t4QONFO.labelfont-family:\'trebuchetms\',verd... 查看详情
调试来自于逐飞的mm32f3277移植有micropython开发板(代码片段)
简介:对于从逐飞寄送的MicroPython开发板进行初步测试,建立了基于REPL进行交互式开发的环境。关键词:MicroPython,MM32,Thonny §01开发板信息 今天(2021-10-27)收到逐飞公司发送过来的移植有MicroPyth... 查看详情
测试mm32f3277micropython的定时器功能(代码片段)
简介:对于SuYong发送过来的带有Timer功能版本的MicroPython进行了测试。在新版的MicroPython中,可以最多定义两个不同频率的定时器中断,完成对于周期时间的控制和输出。这一点在很多数字控制系统中应用比较重要。关... 查看详情
mm32f3277micropython移植过程中对应的接口文件(代码片段)
简介:给出了在MM32移植MicroPython过程中基础语法中Pin相关的内容。关键词:MM32F3277,machine,Pin §01MacinePin/*machine_pin.h*/#ifndef__MACHINE_PIN_H__#define__MACHINE_PIN_H__#include"py/runtime.h 查看详情
制作测试mm32f3277-micropython最小电路板(代码片段)
简介:设计制作了基于MM32F3277的MicroPython测试电路,下载了来自于SeekFree已知的MicroPython,证明它可以完成正常使用。关键词:MM32F3277,MicroPython,快速制版 §01参考设计一、设计背景 在前天已经通过以... 查看详情
在mm32f3273上运行micropython,对于性能进行测试(代码片段)
简介:通过设计简单的测试电路,验证了MicroPython在MM32F3273上运行的情况。初步证实它可以运行移植后的MicroPython。关键词:MM32F3273,MicroPython,STM32,Bootloader,ISP §01测试过程 在上午进行了设计带... 查看详情
mindmotionmm32f3277softi2c功能测试(代码片段)
简介:对于从MindMotionSuYong发送过来的带有SoftI2C的移植版本进行测试。初步证明了该SoftI2C移植功能。利用OLED显示测试,可以看到该版本的SoftI2C的外部总线的命令非常慢。经过测试,可以看到该版本的SoftI2C对于输出时... 查看详情
利用seekfree的核心板调试mm32f3277的isp功能(代码片段)
简介:最终,还是没有能够调通ISP的功能。问题出在哪儿?现在还不得而知。关键词:MM32,ISP#mermaid-svg-9ijY2RKvsoSaoeTF.labelfont-family:\'trebuchetms\',verdana,arial;font-family:var(--mermaid-font-family);fill:#333;color:#333#mermaid-svg-9i... 查看详情
mm32f3277micropython的mem函数对于mcu内存访问(代码片段)
简介:通过mem32,mem16,mem8可以使得MicroPython向访问数字一样访问MCU中的任意内存。在ARM模型下,所有的寄存器都是基于RAM地址访问,所以原则上,可以通过memxx编程,在MicroPython层完成对于MCU中所有的... 查看详情
mm32f3277空闲中断+dma接收不定长数据(代码片段)
摘要:在实际项目中经常用到串口接收一些不定长的数据,怎么判断这一帧数据接收完成了呢?通常使用UART非空中断配合简单的数据协议,在数据中加入帧头、帧尾,在程序中判断是否接收到帧尾来确定数据... 查看详情
为什么在mm32中的micropython中无法打开二进制文件呢?(代码片段)
简介:对于在MM32F3277的MicroPython下,对于SD卡中的文件按照二进制方式进行读写进行测试,发现MicroPython下无法支持对于二进制文件的操作。根据现在这种测试,需要找到具体的MM32F3277现在版本上对于文件操作所存... 查看详情