你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

外部晶振会导致无法下载程序

[复制链接]
allemdddd 提问时间:2020-4-9 11:23 /
产品需要改版,
新打的板子发现下载程序经常下载不进去,然后用一个新板子尝试只焊了F103的芯片,下载一切正常,然后焊上晶振,供电后用示波器看晶振工作正常,就会出现和我之前焊的板子一样的问题,无法下载,error:flash Program fail, cortex-M3 。

移除晶振,下载又正常了。 焊上晶振,下载又不正常了?
换了好几次芯片问题依旧。

我发现在下载的时候按下板子上的芯片复位按键,只有在这个瞬间操作,可以下载成功,但是多次之后,烧写器无法识别芯片了。。。

然后用st-link unity 下载了一次程序,芯片就报废了,下载器再也找不到芯片了。。。。。
收藏 1 评论18 发布时间:2020-4-9 11:23

举报

18个回答
aiherong 回答时间:2020-4-10 21:28:43
所有ST芯片都有保护机制: 一旦外部晶振出问题,立刻启动HSI->LSI等,好让系统运行起来!所以,缺省状态下芯片首先开启HSI,由软件再切换到HSE; 同理,低速也是缺省启动LSI,若需要再由软件启动LSE。

楼主按复位键能侥幸成功,因为此时是上电缺省状态(HSI)!而你一接晶振就有问题说明你的下载程序还没有成功切换到HSE,导致二者冲突!而一去掉又正常了,此时是HSI在工作
库函数将这一过程帮大家自动完成的!



七哥 回答时间:2020-4-10 10:58:37
SWD接口最好引出复位管脚,在复位状态下,不论boot0、boot1是什么设置,可以进入SWD调试模式。
大多数仿真器可以通过内部复位,瞬间连接目标芯片,进入SWD调试模式。
如果没有引出复位管脚,并且SWD还被程序给禁用了,那么就只好自求多福。在某次按下复位按键,快速释放复位键的时候,与仿真器连接相配合,有可能会连接成功。
如果引出了USART1串口的话,可以进ISP模式下载程序。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

allemdddd 回答时间:2020-4-9 20:10:04
我们旧的板子待机是200毫安,新板子的待机也是200毫安,说明没有短路,这次改版的一个重要原因就是之前使用的是内部晶振,这次想使用上外部晶振。

以最小系统的原则精简硬件,板子 上只有一个芯片,晶振,和boot脚跳线上拉或者下拉的电阻。。
boot脚悬空或者下拉,晶振是工作的,但是不能正常下载,boot脚上拉之后,晶振就不工作了。下载正常。。。
芯片的型号是stm32f103rc,64脚的。
allemdddd 回答时间:2020-4-9 11:27:29
芯片型号是 stm32f103RC
mylovemcu 回答时间:2020-4-9 17:57:20
应该不是晶振的问题  
查看一下加上晶振  有电路短路没有  主要看一下硬件和 BOOT引脚电平
不能识别芯片的原因有很多

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

allemdddd 回答时间:2020-4-9 20:36:27
外部晶振和在线下载不能共存了。。。boot0和boot1上下拉都试过了。。。。。
还有没有其他的可能性?
七哥 回答时间:2020-4-9 21:34:53
把你的原理图、PCB、晶振数据手册发上来。一般是人为原因,从没遇到过此问题。
废鱼 回答时间:2020-4-9 21:51:39
楼主在boot模式下,是不是可以通过STLINK读取到设备?你外部晶振焊接的多大的?系统配置的外部时钟是多大的?
allemdddd 回答时间:2020-4-9 21:58:24
我怀疑试是芯片设计的问题,boot0拉高,外部晶振不工作,(如果外部晶振在工作,复位后晶振就不工作了),这个时候下载就正常了,boot0拉低,下载不了(外部晶振在工作),只要把外部晶振移除了,就可以正常工作了,
这个现像就是外部晶振和在线下载不兼容,
导致我现在调试软件用内部晶振,跑程序就用外部晶振。。。这样确实很麻烦。。。
allemdddd 回答时间:2020-4-9 22:02:24
有时候可以读到,8M的村田晶振,为了省电,主频32M,apb1,apb2都是16M
wenyangzeng 回答时间:2020-4-10 09:23:49
应该是楼主把SWD下载端口初始化成输出口所致。检查一下代码,
mcboy 回答时间:2020-4-10 09:46:49
10楼说的有道理,建议换一个别的程序下载试试看,或者直接用个空程序下载试试。还有我之前遇到过复位电路的电容出现异常而导致无法下载程序的现象,提供一下参考。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

zhjb1 回答时间:2020-4-10 15:32:02
我也遇到过此问题.KEIL中必须按Reset键 松手后开始下载,但在秒日下就不需要.原因未明.
allemdddd 回答时间:2020-4-10 20:02:01
swd的下载口没有设置,我是用了stm32cube自动生成的代码。刚才也检查了生成的代码,没有初始化swd接口的两个io口
allemdddd 回答时间:2020-4-10 20:52:14
问题解决了,还是mcboy说的对,我用空程序发现下载正常了,然后就在外设初始化里找,发现把wakepu的引脚重新配置了,就好了,但是好了之后想再次确认问题到底出在那里了,把wakeup引脚重新配置成原来的,问题却复现不了。。。。就这样莫名其妙的好了。。

toofree 说的也对,程序下载完之后,系统提示
**JLink Warning: Could not set S_RESET_ST
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版