打印
[STM32F0]

STLINK不能下载程序到STM32F051,谁能帮我看看!!!

[复制链接]
5346|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elecd|  楼主 | 2014-1-10 15:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 elecd 于 2014-1-10 15:20 编辑

开发阶段烧录调试都没问题,这次批量投了几K下去,但发现程序有个BUG,想刷程序,但死活刷不进去。
生产前是先烧录的芯片然后送工厂加工的,产品回来也可以正常工作。

MCU使用 STM32F051C8T6
烧录工具:STM32F0 DSICOVERY
烧录接口:SWD
烧录引脚:电源,数据,地,时钟,复位
芯片供电:AMS1117 3.3V
MCU复位引脚:10K电阻到电源,104到地

在IAR下无法下载,提示如下:



IAR下 STLINK配置如下:


将SWD时钟设置为1K测试,也是如此提示,CPU时钟设置为10M也不行。

怀疑复位时间过长,将电容去掉也不行。复位电阻更改为3.3K也不行。故障依旧

使用STM32 ST-LINK Utility 自动烧录模式,提示如下:



偶然一次发现,用稳压电源在MCU的稳压芯片AMS1117输入端加 3V电压,经AMS1117后供电给MCU估计只有2.5v,
却能通过STM32 ST-LINK Utility 单步擦除,烧录校验,刷程序成功。

但这样太痛苦,也搞不懂到底是哪里的原因,谁遇到过?

沙发
elecd|  楼主 | 2014-1-13 14:00 | 只看该作者
都没有人遇到过吗?芯片也换了以前的能调试的芯片,似乎排除了芯片的原因。

使用特权

评论回复
板凳
airwill| | 2014-1-14 20:13 | 只看该作者
STM32F051C8T6 CPU 时钟最高才 48MHz, 怎么你设置成 72MHz?

使用特权

评论回复
地板
ADaiPlay| | 2014-1-15 09:25 | 只看该作者
坐等结果

使用特权

评论回复
5
elecd|  楼主 | 2014-1-17 13:39 | 只看该作者
airwill 发表于 2014-1-14 20:13
STM32F051C8T6 CPU 时钟最高才 48MHz, 怎么你设置成 72MHz?

烧录是在芯片复位后,还没进入初始化前进入的,与芯片工作时钟没多大关系吧,以前设置72M也可以烧,但现在改10M也不行

使用特权

评论回复
6
明月小厨| | 2014-2-2 00:53 | 只看该作者
上电复位电路有些问题;
上拉的有些强;如果把上拉电阻去掉呢?

使用特权

评论回复
7
elecd|  楼主 | 2014-5-11 20:00 | 只看该作者
上拉电阻都试过,包括复位电容,都没有效果。当时怀疑SWD接口中有过孔,离芯片距离远,后来改了一版离芯片才1CM的距离也是一样的不行。

使用特权

评论回复
8
elecd|  楼主 | 2014-5-11 20:06 | 只看该作者
本帖最后由 elecd 于 2014-5-11 20:21 编辑


使用特权

评论回复
9
elecd|  楼主 | 2014-5-11 20:11 | 只看该作者
后来换了jlink 在IAR环境下也是报错,到现在为止还没找到真正原因。刷程序只能将电源电压降低到3.6以下,再经AMS1117-3.3的ldo给芯片供电。以前用STM32F103系列,和stm8s系列,从没遇到这样的现象,是不是M051系列的芯片设计上就有问题。大家都没遇到过吗?这么见鬼?

使用特权

评论回复
10
elecd|  楼主 | 2014-5-11 20:15 | 只看该作者
并且还有个奇怪的现象,因批量烧录芯片也是用STLINK,自己做的烧录座,同样是用外面输入电压5v经3.3V的LDO给芯片供电,可以烧录进去,不报错,唯一不同的是MCU仅仅连接了烧录引脚,所有io全部悬空。

使用特权

评论回复
11
icecut| | 2014-5-11 20:39 | 只看该作者
elecd 发表于 2014-5-11 20:15
并且还有个奇怪的现象,因批量烧录芯片也是用STLINK,自己做的烧录座,同样是用外面输入电压5v经3.3V的LDO ...

拆下一颗来.放到烧录座上.试试就知道了.
提示看起来比较怪.

使用特权

评论回复
12
mmuuss586| | 2014-5-11 20:43 | 只看该作者
elecd 发表于 2014-5-11 20:15
并且还有个奇怪的现象,因批量烧录芯片也是用STLINK,自己做的烧录座,同样是用外面输入电压5v经3.3V的LDO ...

你的意思是:
在现在的板子上烧录不进去;
而用自己的烧录座可以烧进去???

使用特权

评论回复
13
elecd|  楼主 | 2014-5-12 10:08 | 只看该作者
mmuuss586 发表于 2014-5-11 20:43
你的意思是:
在现在的板子上烧录不进去;
而用自己的烧录座可以烧进去??? ...

是的,就是这个意思,但批量的板子上将3.3V LDO输入电压从5V降低到3-3.3V左右就可以烧录,这样LDO输出就不到3.3V了,MCU真正供电电压只有2.5-2.7V的样子。

使用特权

评论回复
14
icecut| | 2014-5-12 10:10 | 只看该作者
elecd 发表于 2014-5-12 10:08
是的,就是这个意思,但批量的板子上将3.3V LDO输入电压从5V降低到3-3.3V左右就可以烧录,这样LDO输出就 ...

是不是你上电瞬间的电源毛刺让某些io工作不正常呢?
用示波器测量烧录信号是不是正常

使用特权

评论回复
15
elecd|  楼主 | 2014-5-12 10:18 | 只看该作者
不会,先让产品上电,再插上STLINK,并且使用了复位脚,STLINK在烧录的时候应该会让芯片复位,进入SWD状态。

使用特权

评论回复
16
elecd|  楼主 | 2014-5-12 10:20 | 只看该作者
我们这是做的一款1500W的变频器。整个产品都能正常工作,所以肯定不可能IO工作不正常状态。唯一烧录仿真不正常

使用特权

评论回复
17
未曾走远| | 2015-10-15 12:35 | 只看该作者
楼主,解决了吗?我也遇到了,是配置RCC后出现的问题

使用特权

评论回复
18
未曾走远| | 2015-10-15 12:49 | 只看该作者
我的是时钟配置出错了

使用特权

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

本版积分规则

4

主题

40

帖子

1

粉丝