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间进行通信传输即可。
- UART ISP可使用PC上位机软件通过串口线、USB转串口、485等连接至MCU指定的串口引脚。UART的ISP软件:
- 官方工具GD32 All In One Programmer;
- 第三方工具FlyMCU。
- 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)点击Browse选择所需要下载的bin文件路径;
(2)输入bin文件需要下载的起始地址;
(3)勾选Jump to run the App Program,程序下载完成后MCU会产生一个系统复位;
(4)点击Download按钮下载程序;
(5)出现Finish并且进度条进行到100%表示下载成功,如图所示。
1.5 ISP烧录注意事项
- 确保启动(复位、上电)前BOOT0为高电平。
- 确保电源稳定,避免较大纹波影响MCU稳定性。
- 保证通信接口稳定,下载失败可降低波特率复位重新开始。
- 部分型号支持多组引脚进行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下载流程
-
使用Jlink连接到目标板,Jlink上的指示灯状态为绿灯常亮。
-
打开J-flash软件,在Options菜单栏下点击Project setting进入设置界面,如图。
- 在Project Settings界面中的MCU选项卡下设置Device选项选择需要下载的MCU型号,如图1。在Target Interface选项卡下选择调试口的类型和速度,如图2。
J-flash软件MCU型号选择
J-flash软件调试口设置
- 选择好型号后,相关操作便都在Jflash首页面的Target菜单栏下,首先点击Connect进行连接,连接成功后下方Log框会有信息提示,如图。
J-flash软件连接目标板
J-flash打开Bin文件
- 在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烧录注意事项
-
MCU无法连接时需注意检查MCU中是否有程序禁用了SWD/Jtag调试端口,MCU是否处在睡眠等状态下。如果都不是可以降低SWD/Jtag通信速率、降低调试连接线的长度再进行测试;
-
调试器的RESET引脚建议和MCU的复位PIN连接,这样能较好的时序匹配;
-
SWDIO内部已经上拉, SWCLK已内部下拉,不外接相应的上下拉电阻一般可以使用,但是建议SWDIO外接10K上拉, SWCLK外接10K下拉,以提高SWD接口信号驱动能力;
-
SWD/Jtag信号线避免串入较多干扰,PCB走线注意不要靠电感等感性器件过近。工业级应用中可以增加上下拉处理对地并pF级电容,提高调试接口的抗干扰能力;
-
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脱机烧录注意事项
-
MCU无法连接时需注意检查MCU中是否有程序禁用了SWD/Jtag调试端口,MCU是否处在睡眠等状态下。如果都不是可以降低调试连接线的长度再进行测试,注意调试线不能过长。
-
如果下载不够稳定的情况可以尝试在SWDIO和SWDCLK上添加上下拉电阻,降低调试连接线的长度。
-
SWD/Jtag信号线避免串入较多干扰,PCB走线注意不要靠电感等感性器件过近,如干扰较多可以增加上下拉处理对地并pF级电容。
-
如烧录一定次数后无法继续烧录请注意装载代码前GD-link是否设置了限定离线烧录次数。可重新设置后再次装入文件重新下载。
更多GD32 MCU相关咨询:https://www.gd32bbs.com/