打印

GD32 MCU超频后无法再次下载程序的解决办法

[复制链接]
1183|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我们知道,MCU的系统时钟主频就相当于人的心跳或脉搏,为所有的工作单元提供时间基数,所以一般在程序最开始的地方都需要进行主频配置。
GD32固件库中提供了多种宏定义,可以很方便的将系统时钟配置为想要的频率。
GD32固件库中所用的外部晶振配置一般为8M25M,如果想要使用其他频率的晶振,可以参考FAQ《更改晶振后如何修改配置》。
有的小伙伴在做好PCB后,将程序下载进去发现运行异常,想要仿真查下原因时,发现下载不了程序了,这时候就要注意,是不是板子上的晶振和程序中配置的不匹配?比如程序中使用的晶振大小为8M,但板子上的是12M的晶振,结果你以为配置的是120M的主频,实际变成了180M了,这超频可太多了,当然就无法再下载程序啦。
那如何解决这个问题呢?有个方法就是让MCU进入ISP模式,小伙伴们可以参考FAQGD32 MCU进入低功耗模式导致无法再进行程序下载怎么办?》中的方法一,和超频无法下载类似。
我们今天讲述另一种方法,那就是启动MCU的时候,用镊子把外部晶振的OSC_INOSC_OUT脚短接起来,然后把程序擦除即可。没错,就是这么简单粗暴。
原理其实也很简单,使用GD32 固件库时,一般在进入main函数之前都会进行系统时钟配置,配置函数中在开启外部晶振后会有等待晶振稳定的过程,如果在一定时间内无法稳定,则会进入while1)循环(小伙伴们可以自行增加超时退出的操作哦),在这个过程中,MCU实际是使用内部高速晶振在跑的,没超频,当然就可以擦除程序啦,用镊子短接晶振,就是为了让晶振状态无法稳定,是不是很简单呢?
利用类似原理,其实还有其他操作也可以解决,小伙伴们有想到吗?没错,就是把晶振从板子上拆下来,等程序被擦除后,再焊接回去。
其实这个方法也适用于进入低功耗后无法下载的问题,当然前提是用的外部晶振。

本教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462


使用特权

评论回复
沙发
FranklinUNK| | 2024-6-20 17:58 | 只看该作者
短接晶振不会有问题吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

170

主题

190

帖子

9

粉丝