二 GD32 MCU 烧录说明

GD32 MCU提供了多种烧录方法,可在调试和生产等阶段进行便捷的烧录。GD32目前主要烧录方法有ISP烧录、SWD/JTAG在线下载、脱机烧录三种类型。

ISP烧录:使用串口或USB即可烧录,无需特殊工具支持。可根据协议自行定制下载方式,需要控制BOOT0引脚电平选择启动模式。

SWD/JTAG在线下载:无需切换MCU启动方式,使用仿真器等可进行下载。需使用仿真器和上位机进行操作。

脱机烧录:适用于大批量的产线生产,烧录过程无需PC和软件,可脱机进行烧录,批量烧录效率高。

本章对三种烧录方法有以下三个方面介绍。

1 烧录工具和硬件连接:介绍各烧录方法需使用的工具,以及硬件所需接口。

2 软件操作和烧录流程:介绍烧录软件的操作方法和烧录流程。

3 注意事项:介绍烧录注意事项和烧录失败的常见原因。

1. ISP 烧录

ISP:In System Programing,在系统编程,通过MCU片内的引导程序进行Flash编程。 GD32片内有一个只读信息块,用于存放引导装载程序,引导程序在MCU出厂前就会提前烧录好。复位时MCU通过BOOT0引脚电平状态选择进入Flash启动模式还是ISP升级模式。目前所有系列均支持通过UART对Flash进行编程,有USBFS外设的系列同时支持通过USB DFU协议进行下载。

1.1 ISP 烧录工具

ISP烧录对工具以及形式没有特殊要求,只需按照约定的协议,使用上位机软件或其他CPU通过指定的通信方式(UART&USB)和MCU间进行通信传输即可。

  1. UART ISP可使用PC上位机软件通过串口线、USB转串口、485等连接至MCU指定的串口引脚。UART的ISP软件:
  • 官方工具GD32 All In One Programmer;
  • 第三方工具FlyMCU。
  1. USB DFU可直接通过USB连接目标MCU或PCB,使用上位机软件即可下载。USB DFU的ISP软件:
  • 官方工具GD32 All In One Programmer。

1.2 ISP 引脚分配

不同系列的GD32MCU支持的ISP下载接口有所不同,但除GD32W515外所有型号均可以支持PA9、PA10进行ISP下载。各系列ISP下载外设及引脚如下表。

1.3 ISP 下载电路

ISP下载模式需要让MCU执行System区域中的boot loader代码,不同于用户模式从Flash启动,故而下载前需要让MCU进入System启动模式,因此除通信引脚外还需要将BOOT0引脚引出,如需要热启动下载模式还需预留复位引脚接口或按键。所需预留接口参考图如下图,BOOT0引脚可通过跳线帽或拨码开关控制,也可以通过其他控制器同时控制BOOT0引脚和Reset引脚让MCU进入下载模式。

1.4 ISP 下载流程介绍

ISP模式需要从System区域启动,所以需要让MCU复位时BOOT0引脚状态为高电平。可通过跳线帽、拨码开关、按键或其他控制器控制拉高BOOT0引脚电平,对MCU进行一次复位或上电即可进入ISP模式;进入ISP模式后便可释放BOOT1引脚,此时可使用上位机软件或控制器通过UART或USB的方式进行烧录;当下载完成后需要切换回Flash运行模式,同样让BOOT0引脚拉低为低电平,然后复位或重启可进入Flash运行模式并运行用户代码。 使用ISP模式下载的操作流程图见下图。

ISP UART下载流程

ISP的UART下载可使用GD32 All In One Programmer,如需自制上位机或用其他控制器烧录MCU,可参考文档GD ISP PROTOCOL-USART。本文以GD32 All In One Programmer下载为例进行介绍,下载流程如图所示。

GD32 All In One Programmer 下载步骤:

1.让MCU进入ISP模式,将开发板串口连接到PC,运行GD32 All-In-One Programmer.exe,选择对应的COM口,奇偶校验和波特率等设置,并点击Connect按钮。如图所示。

2.出现Disconnect按钮则表示连接成功,上位机会识别MCU的型号,Flash以及SRAM大小。

  1. 按照以下说明进行上位机软件的操作

(1)点击Browse选择所需要下载的bin文件路径;

(2)输入bin文件需要下载的起始地址;

(3)勾选Jump to run the App Program,程序下载完成后MCU会产生一个系统复位;

(4)点击Download按钮下载程序;

(5)出现Finish并且进度条进行到100%表示下载成功,如图所示。

1.5 ISP烧录注意事项

  1. 确保启动(复位、上电)前BOOT0为高电平。
  2. 确保电源稳定,避免较大纹波影响MCU稳定性。
  3. 保证通信接口稳定,下载失败可降低波特率复位重新开始。
  4. 部分型号支持多组引脚进行UART下载以及USB下载,所以在下载开始时会有下载引脚的检测握手, USB模块和三个串口中有任何一个收到有效的握手信号后就会进入使用该模块的升级模式并停止检测其他的升级方式。因此使用UART下载时,在MCU上电到开始下载前,需要注意其他支持ISP下载的UART RX引脚不能有电平变化,USB的PA12引脚禁止下拉。

2. SWD/JTAG在线下载

GD32系列MCU支持SWD和JTAG(部分型号不支持)接口进行下载调试,这些功能通过ARM CoreSight组件的标准配置和链状连接的TAP控制器来实现的。调试和跟踪功能集成在ARM Cortex-M内核中。调试系统支持串行(SW)调试和跟踪功能,部分型号也支持JTAG调试。调试和跟踪功能具体请参考下列文档:

Cortex-M4技术参考手册;

ARM调试接口V5结构规范。

目前GD32 MCU主要支持的调试下载设备有:J-linkV8/V9、U-link、标准的CMSIS-DAP调试工具如GD-link。SWD/JTAG的优势在于及下载和调试功能一体,可直接在集成开发环境IDE(如MDK、IAR)中进行下载和在线仿真。同时还有丰富的下载以及调试上位机,如J-flash和GD-link Programmer工具。J-flash可使用6.3版本及以上可选择GD MCU型号,也可在网盘->共享文件夹->软件中下载绿色版J-flash。GD-link Programmer请使用官网发布的最新版本。

注意:M23内核型号的E23x系列仅支持J-linkV9、U-link2、GD-link。

2.1 SWD/JTAG引脚定义

同时支持SWD/JTAG的系列有GD32A50x、GD32C10x、GD32C11x、GD32F10x、GD32F20x、GD32F30x、GD32F4xx、GD32E10x、GD32E11x、GD32E50x、GD32FFPR,仅支持SWD的系列为:GD32L23x、GD32F1x0、GD32F3x0、GD32E23x,仅支持JTAG的系列为GD32VF103。 SWD/JTAG调试下载引脚定义如下表所示,GD32A50x引脚不同于以下定义,请参考用户手册。

2.2 SWD/JTAG烧录软件

J-link烧录需使用J-flash上位机,Jflash6.2版本及以上可选择到GD MCU型号。J-flash支持擦除、烧录、读取Flash、读保护、去读保护等操作。同时使用J-flash还可以进行Bin文件的截取、合并等操作。 GD-link烧录需使用GD-link Programmer,可支持擦除、烧录、读取、读保护、去读保护等功能,同时还可以将Bin装载到GD-link中实现脱机离线烧录功能,离线烧录在第4章节会详细介绍。

2.3 SWD/JTAG下载电路

SWD/JTAG下载电路如下图所示,如使用4线的SWD下载方式保留下图中SWDIO(PA13)、SWDCLK(PA14)、VCC、GND即可。注意:SWD/JTAG下载模式需要BOOT0拉低为正常的Flash启动模式。

2.4 Jlink仿真器接口

Jlink仿真器是标准的Jtag接口,同时支持Jtag/SWD模式下载,其中除调试信号线外,还有Reset、VCCvref(Pin1)、VCCoutput(Pin2)引脚、GND引脚,引脚定义如下表所示。使用SWD模式下载时调试信号只需SWDIO(Pin7)、SWDCLK(Pin9)即可。一般可以做一个转接板方便连接和调试,如图所示。

需注意有的Jlink硬件必须连接VCCvref(Pin1)获取MCU的工作电压,一般在Jlink内部有一个跳线帽可以选择VCCoutput(Pin2)是否对外供电。

Jlink引脚定义Jlink 仿真器接口

Jlink引脚定义

Jtag接口转接板

2.5 GD-link仿真器接口

GD-link仿真器接口为10针,支持Jtag/SWD模式下载和调试,接口定义如下图。使用SWD时只需使用Pin2、Pin4连接目标板PA13、PA14即可,Pin1电源引脚可以对目标板进行供电。为方便连接和调试可以使用转接板,如下图。

GDlink接口

Dlink引脚定义 

GDlink转接板

2.6 J-flash下载流程

  1. 使用Jlink连接到目标板,Jlink上的指示灯状态为绿灯常亮。

  2. 打开J-flash软件,在Options菜单栏下点击Project setting进入设置界面,如图。

  1. 在Project Settings界面中的MCU选项卡下设置Device选项选择需要下载的MCU型号,如图1。在Target Interface选项卡下选择调试口的类型和速度,如图2。

J-flash软件MCU型号选择

J-flash软件调试口设置

  1. 选择好型号后,相关操作便都在Jflash首页面的Target菜单栏下,首先点击Connect进行连接,连接成功后下方Log框会有信息提示,如图。

J-flash软件连接目标板

J-flash打开Bin文件

  1. 在Target菜单栏下Manual Programming选项下有上锁(读保护)、解锁(去读保护)、擦除、编程、读等操作可选,如图3-23。如需下载只需点击Target菜单栏下Production Program或按下F7即可下载,下载成功后会有弹窗提示,如图,如果下载失败下方Log会显示详细错误信息。

Jflash用户操作选项

Jflash下载成功

2.7 GD-link Programmer下载流程

1 使用GD-link连接到目标板,连接成功后GD-link上的LED2快速闪烁。

2 打开GD-link Programmer软件,在菜单栏Target下点击Connect连接MCU。在右边信息栏可以显示GD-link固件信息、MCU信息,同时可选择SWD/JATG以及设置通信速率。在下方STATUS栏中会显示MCU选项字节信息,如果选项字节前两个字节不是A5 5A 则表示MCU有安全保护,需要点击Insecurity后才能操作。如图所示。

GD-link Programmer软件连接目标板

3 在菜单栏File下点击OPEN可以打开Bin或Hex,如果是打开Bin会有弹窗需要输入Bin的起始地址。打开Bin或Hex都会在下方Status栏中显示文件的校验和。如图所示。

GD-link Programmer打开Bin或Hex

4 在菜单栏Target下选择Program可以把打开的Bin或Hex烧录到MCU中,在此菜单栏下还可以进行擦除、读取Flash、运行代码、添加安全保护、去除安全保护等操作。如图所示。

GD-link Programmer用户操作选项

5 需注意安全保护选项内有High等级和Low等级,部分GD MCU型号有高级别Flash保护,添加后将无法解锁,不能再通过外部操作Flash。一般情况选择Low进行安全保护即可。如图。

GD-link Programmer添加安全保护

2.8 SWD/JTAG烧录注意事项

  1. MCU无法连接时需注意检查MCU中是否有程序禁用了SWD/Jtag调试端口,MCU是否处在睡眠等状态下。如果都不是可以降低SWD/Jtag通信速率、降低调试连接线的长度再进行测试;

  2. 调试器的RESET引脚建议和MCU的复位PIN连接,这样能较好的时序匹配;

  3. SWDIO内部已经上拉, SWCLK已内部下拉,不外接相应的上下拉电阻一般可以使用,但是建议SWDIO外接10K上拉, SWCLK外接10K下拉,以提高SWD接口信号驱动能力;

  4. SWD/Jtag信号线避免串入较多干扰,PCB走线注意不要靠电感等感性器件过近。工业级应用中可以增加上下拉处理对地并pF级电容,提高调试接口的抗干扰能力;

  5. PB3为SWO输出信号,使用到该功能才需要将SWO接出来,否则可以不用引出。

    3. 脱机烧录

    大部分主流的烧录器厂商均支持GD32 MCU的烧录,如ELNEC、致远电子、贷铺科技、希尔特、迈斯威志、轩微、天津威磊、Segger、芯园电子、北极星电子等烧录器厂商。烧录方式分别有SWD和ISP,具体以烧录器型号为准。 GD官方的GD-link烧录工具也支持离线烧录功能,装载好代码后通过按键即可进行脱机烧录,需注意GD-link脱机烧录只能装载768K大小的文件。以下主要介绍GD-link的脱机烧录方法。所需工具和软件:GD-link、官网获取最新版本GD-link Programmer上位机。

    3.1 GD-link脱机烧录硬件连接

    GD-link脱机烧录的硬件连接方式与在线下载相同,硬件接口和连接方式请参考2.5章节说明。使用GD-link脱机烧录时GD-link无需连接到PC,但需要使用5V充电器或电源等通过USB接口对GD-link供电,需注意GD-link的接口目前仅支持3.3V输出供电。GD-link脱机烧录时的连接方式如图所示。

3.2 GD-link脱机烧录流程

1.使用GD-link通过USB连接到电脑,连接成功后GD-link上的LED2会快速闪烁。

2.在菜单栏File下点击OPEN可以打开Bin或Hex,如果是打开Bin会有弹窗需要输入Bin的起始地址。如图所示

3.在菜单栏GD-link下选择Configuration可设置脱机烧录和在线烧录选项。脱机烧录在offline-program中可以选择脱机烧录添加安全保护(Low等级);擦除方式可选择全片或按Page擦除,如果分多次烧录的场景可选择page擦除避免擦除此前下载的内容;脱机烧录还可以勾选Program Limit const选项并填入烧录次数限定脱机烧录次数,达到该烧录次数后Bin将自动删除需要重新装入。如图所示。

4.在菜单栏GD-link下选择Updata file可以把打开的Bin或Hex装载到GD-link中,点击后会有弹窗确认装载,点击“是”即可将文件装入GD-link内。如图所示。

 

5.装入代码成功后即可使用GD-link连接至目标板,点击GD-link上的按键K1后LED1开始闪烁则表示开始脱机烧录,烧录成功后LED1会常亮,如图所示。若LED1闪烁后长灭则代表烧录失败需重新烧录或检查硬件连接。

6.烧录成功后可直接更换目标板继续烧录下一块设备。

3.3 GD-link固件更新

当打开GD-link Programmer后提示GD-link固件需要更新等情况,可长按住GD-link按键重新插上USB连接电脑进入GD-link升级模式,此时LED3会长亮。进入升级模式后可松开按键,在菜单栏GD-link选项卡下点击Updata Firmware更新GD-link固件,进度条结束后提示更新成功。

3.4 GD-link脱机烧录注意事项

  1. MCU无法连接时需注意检查MCU中是否有程序禁用了SWD/Jtag调试端口,MCU是否处在睡眠等状态下。如果都不是可以降低调试连接线的长度再进行测试,注意调试线不能过长。

  2. 如果下载不够稳定的情况可以尝试在SWDIO和SWDCLK上添加上下拉电阻,降低调试连接线的长度。

  3. SWD/Jtag信号线避免串入较多干扰,PCB走线注意不要靠电感等感性器件过近,如干扰较多可以增加上下拉处理对地并pF级电容。

  4. 如烧录一定次数后无法继续烧录请注意装载代码前GD-link是否设置了限定离线烧录次数。可重新设置后再次装入文件重新下载。

更多GD32 MCU相关咨询:https://www.gd32bbs.com/

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/800337.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

请你谈谈:AnnotatedBeanDefinitionReader 显式地注册一个Bean到Spring容器,以及注册并解析配置类

为了深入探讨Spring框架中的beanDefinition对象,我们不可避免地要提及BeanFactoryPostProcessor这一核心类,它作为Spring的bean工厂后置处理器发挥着关键作用。接下来,我们将详细讨论BeanFactoryPostProcessor的执行时机,这是一个…

人工智能 (AI) 应用:一个高精度ASD 诊断和照护支持系统

自闭症谱系障碍(ASD)是一种多方面的神经发育状况,影响全球大约1/100的儿童,而在中国,这一比例高达1.8%(引用自《中国0~6岁儿童孤独症谱系障碍筛查患病现状》),男童为2.6%…

ns3-gym入门(三):在opengym基础上实现一个小小的demo

因为官方给的"opengym""opengym-2"这两个例子都很简单,所以自己改了一个demo,把reward-action-state相互影响的关系表现出来 一、准备工作 在ns3.35/scratch目录下创建一个文件夹: (后续的运行指令后面都需要…

C++字体库开发之字符显示四

freetype提取路径&#xff0c;转svg显示 std::string FontPath::toSvg(const Segment &seg) const {if (seg.pts.empty())return "";std::ostringstream strStream;for (const auto &pt : seg.pts) {if (!strStream.view().empty())strStream << &quo…

【linux】服务器重装系统之系统盘写入准备

【linux】服务器重装系统之系统盘写入准备 【创作不易&#xff0c;求点赞关注收藏】&#x1f600; 文章目录 【linux】服务器重装系统之系统盘写入准备一、前期准备1、准备一个U盘&#xff0c;并进行格式化2、下载UltralSO工具3、下载对应的Ubuntu版本 二、写入操作教程 一、…

gorm多表联合查询 Joins方法 LEFT JOIN , RIGHT JOIN , INNER JOIN, FULL JOIN 使用总结

gorm中多表联合查询&#xff0c;我们可以使用Joins来完成&#xff0c;这个Joins方法很灵活&#xff0c;我们可以非常方便的多多表进行联合查询&#xff0c; 我们先来看看这个方法的官方定义和使用示例&#xff1a; Joins方法定义和使用示例 当然我们这里要说的使用方式是官方示…

nginx生成自签名SSL证书配置HTTPS

一、安装nginx nginx必须有"--with-http_ssl_module"模块 查看nginx安装的模块&#xff1a; rootecs-7398:/usr/local/nginx# cd /usr/local/nginx/ rootecs-7398:/usr/local/nginx# ./sbin/nginx -V nginx version: nginx/1.20.2 built by gcc 9.4.0 (Ubuntu 9.4.0…

Vue.js 中的 immediate: true的作用

在使用 Vue.js 时&#xff0c;监听器 (watchers) 是一种非常重要的工具&#xff0c;它允许我们观察和响应数据的变化。 immediate: true 的作用 默认情况下&#xff0c;监听器只有在所监视的数据属性发生变化时才会触发回调函数。然而&#xff0c;有时候我们需要在组件初始化时…

Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器

章节内容 上节我们完成了&#xff1a; ZNode的基本介绍ZNode节点类型的介绍事务ID的介绍ZNode实机测试效果 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&#xff…

LVS+Nginx高可用集群---keepalived原理与实战

1.高可用集群架构keepalived双机主备原理 高可用&#xff1a;(HA) 部署nginx存在两台nginx。当主节点的nginx宕机停止服务的时候&#xff0c;nginx备用机起到跟nginx(主) keepalived的概念&#xff1a;解决单点故障&#xff1b;组件免费&#xff1b;可以实现高可用HA机制&…

《0基础》学习Python——第十一讲

一、lambda 匿名函数 lambda函数是一种匿名函数。它是一种快速定义单行函数的方法。与常规函数不同&#xff0c;lambda函数没有名称&#xff0c;也没有使用def关键字来定义。lambda函数通常用于一些简单的函数&#xff0c;可以在代码中快速定义和使用&#xff0c;而不需要为其定…

Hive的基本操作(查询)

1、基础查询 基本语法 select 字段列表|表达式|子查询 from 表(子查询|视图|临时表|普通表) where [not] 条件A and|or 条件B --先&#xff1a;面向原始行进行筛选 group by 字段A[,字段B,...] > 分组【去重处理】 having 聚合条件(非原始字段条件) --再&#x…

《梦醒蝶飞:释放Excel函数与公式的力量》12.3 DMIN函数

第12章&#xff1a;数据库函数 第三节 12.3 DMIN函数 12.3.1 简介 DMIN函数是Excel中的一个数据库函数&#xff0c;用于返回数据库或数据表中特定条件下某字段的最小值。DMIN函数在处理大规模数据、数据筛选和分析时非常有用。 12.3.2 语法 DMIN(database, field, criteri…

MYSQL 四、mysql进阶 9(数据库的设计规范)

一、为什么需要数据库设计 二、范 式 2.1 范式简介 在关系型数据库中&#xff0c;关于数据表设计的基本原则、规则就称为范式。 可以理解为&#xff0c;一张数据表的设计结 构需要满足的某种设计标准的 级别 。要想设计一个结构合理的关系型数据库&#xff0c;必须满足一定的…

LLM量化--AWQ论文阅读笔记

写在前面&#xff1a;近来大模型十分火爆&#xff0c;所以最近开启了一波对大模型推理优化论文的阅读&#xff0c;下面是自己的阅读笔记&#xff0c;里面对文章的理解并不全面&#xff0c;只将自己认为比较重要的部分摘了出来&#xff0c;详读的大家可以参看原文 原论文地址&am…

Leetcode—146. LRU 缓存【中等】(shared_ptr、unordered_map、list)

2024每日刷题&#xff08;143&#xff09; Leetcode—146. LRU 缓存 先验知识 list & unordered_map 实现代码 struct Node{int key;int value;Node(int key, int value): key(key), value(value) {} };class LRUCache { public:LRUCache(int capacity): m_capacity(capa…

axios以post方式提交表单形式数据

某些后端框架请求接口必须走form表单提交的那种形式&#xff0c;但前端很少有<form action"接口地址" method"post"></form>这种写法去提交表单数据&#xff0c;所以前端需要用axios模拟一个表单提交接口。 Content-Type 代表发送端&#xff0…

【.NET全栈】ASP.NET开发web应用——ASP.NET中的样式、主题和母版页

文章目录 前言一、在ASP.NET中应用CSS样式1、创建CSS样式&#xff08;1&#xff09;内联样式&#xff08;2&#xff09;内部样式表&#xff08;3&#xff09;外部样式表 2、应用CSS样式&#xff08;1&#xff09;菜鸟教程-简单例子&#xff08;2&#xff09;菜鸟教程-用户界面&…

零售门店收银系统源码

php收银系统源码-CSDN博客文章浏览阅读268次&#xff0c;点赞6次&#xff0c;收藏4次。收银系统源码https://blog.csdn.net/qh716/article/details/140431477 1.系统开发语言 核心开发语言: PHP、HTML5、Dart后台接口: PHP7.3后合管理网站: HTML5vue2.0element-uicssjs线下收…

【区块链 + 智慧政务】涉税行政事业性收费“e 链通”项目 | FISCO BCOS应用案例

国内很多城市目前划转至税务部门征收的非税收入项目已达 17 项&#xff0c;其征管方式为行政主管部门核定后交由税务 部门征收。涉税行政事业性收费受限于传统的管理模式&#xff0c;缴费人、业务主管部门、税务部门、财政部门四方处于 相对孤立的状态&#xff0c;信息的传递靠…