玩过GD32的小伙伴们都知道,GD32 MCU支持ISP,即在系统编程,前面的常见问题也给大家讲过什么是ISP,什么是IAP?
那有没有小伙伴遇到过ISP失败的情况,失败的原因是什么呢?
我们就以GD32F30x系列为例,来看下用户手册:

通过将BOOT0拉高,BOOT1拉低,上电后,MCU则工作在ISP模式,此时可以通过ALL-IN-ONE软件(或用户自行开发的上位机软件)对MCU进行编程、操作选项字节、flash数据回读等操作,使用的是以下口:

如果用的是容量不超过512K的GD32F303系列(HD产品),则使用USART0(PA9 PA10)进行ISP交互,如果是超过512K的GD32F303系列(XD产品),则除了USART0,还有USART1(PA2 PA3),如果是F305/307系列(CL产品),则还增加了一个USB接口(DFU模式)。
当进入ISP后,实际上MCU是不知道自己该用哪个口进行ISP的,此时需要MCU和上位机(All-IN-ONE等)进行通讯握手,握手信号由上位机发出,也就是说哪个口先接收到上位机的握手信号,则该口被自动设置为ISP口,而其他通讯口则不会再处理ISP过程。
比如使用GD32F303ZKT6(XD产品),当上位机通过PA10(MCU的RX接收脚)向MCU发出握手信号后,则USART0被识别为ISP口,且此时USART0的波特率会根据握手信号进行自适应设置。
那么如果一个板子上,预设的是USART0(PA9 PA10)作为ISP口的,但同时PA3接了另外的芯片,当MCU上电的时候,有芯片往PA3上发了一些脉冲,则MCU会将USART1(PA2 PA3)设置为ISP口,此时,用户再使用USART0的话,则会失败。
根据上述原理,还有一种失败的可能性,就是刚上电时,ISP口上接收到了一些干扰信号,此时USART被设置为异常的波特率,那么在正式进行ISP时,也会失败。
以上就是GD32 MCU ISP失败的两个可能原因,小伙伴知道其他原因的也欢迎在评论区互动哦。
-
单片机
+关注
关注
6074文章
45341浏览量
663689 -
mcu
+关注
关注
147文章
18618浏览量
387345 -
ISP
+关注
关注
6文章
498浏览量
54531 -
GD32
+关注
关注
7文章
429浏览量
26944
发布评论请先 登录
GD32 MCU 入门教程】GD32 MCU 常见外设介绍(12)FMC 模块介绍
GD32的MCU介绍
兆易创新GD32 MCU选型手册,适用于GD32全系列MCU
【GD32 MCU 入门教程】二、GD32 MCU 烧录说明(1)ISP 烧录
【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(14)RTC 模块介绍
【GD32 MCU入门教程】GD32 MCU GPIO 结构与使用注意事项

GD32 MCU ISP失败的原因
评论