allemdddd 发表于 2020-4-9 11:23:18

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

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

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

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

然后用st-link unity 下载了一次程序,芯片就报废了,下载器再也找不到芯片了。。。。。

allemdddd 发表于 2020-4-9 11:27:29

芯片型号是 stm32f103RC

mylovemcu 发表于 2020-4-9 17:57:20

应该不是晶振的问题
查看一下加上晶振有电路短路没有主要看一下硬件和 BOOT引脚电平
不能识别芯片的原因有很多

allemdddd 发表于 2020-4-9 20:10:04

我们旧的板子待机是200毫安,新板子的待机也是200毫安,说明没有短路,这次改版的一个重要原因就是之前使用的是内部晶振,这次想使用上外部晶振。

以最小系统的原则精简硬件,板子 上只有一个芯片,晶振,和boot脚跳线上拉或者下拉的电阻。。
boot脚悬空或者下拉,晶振是工作的,但是不能正常下载,boot脚上拉之后,晶振就不工作了。下载正常。。。
芯片的型号是stm32f103rc,64脚的。

allemdddd 发表于 2020-4-9 20:36:27

外部晶振和在线下载不能共存了。。。boot0和boot1上下拉都试过了。。。。。
还有没有其他的可能性?

toofree 发表于 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下载端口初始化成输出口所致。检查一下代码,
页: [1] 2
查看完整版本: 外部晶振会导致无法下载程序