野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23644|回复: 36

STM32 ISP 一键下载电路,加原理分析,已改良网上其他ISP电路bug

[复制链接]
发表于 2016-7-19 14:15:15 | 显示全部楼层 |阅读模式
1、STM32 ISP 一键下载电路,加原理分析,已改良网上网上流传的其他ISP一键下载电路的 BUG,其他的一键下载电路要么会不断的进入ISP,要么是下载程序后会复位几次,我在这些电路的基础上经过改良,消除了这些bug了。
2、具体的点亮图如下,其中红色框中是我为了消除ISP时会重启这个BUG而加的一个模拟开关。
3.jpg

根据STM32的BOOT配置,下面我们来分析下这个ISP一键下载电路的原理

BOOT配置,开发板默认BOOT0和BOOT1接GND
1.jpg

MCUISP 下载电路配置,如下:有个重要的选项就是:DTR低电平复位,RTS高电平进入BOOTLOADER,(这里要特别注意的是,MCUISP是根据232的电平逻辑写的,跟我们单片机上用的CH340芯片的TTL电平完全是相反的,即上位机说的:DTR低电平复位,RTS高电平进入BOOTLOADER,实际控制CH340的时候是输出:DTR高电平复位,RTS低电平进入BOOTLOADER)。
4.jpg

进入正题,对ISP一键下载的原理进行分析:
1.      通过上位机控制U6(CH340G)的RTS脚为低电平,Q1导通,BOOT0的电平上拉为高电平。


2.      通过上位机控制U6(CH340G)的DTR脚为高电平,由于RTS为低电平,Q2导通,U8的2脚为低电平,U18为一个模拟开关,使能端由4脚控制,默认高电平,U18的1脚和2脚导通,所以NRST为低电平系统复位。


3.      单片机进入ISP模式,此时可以将DTR脚设置为低电平,RTS设置为高电平。Q1和Q2为截至状态,BOOT0和NRST还原默认电平。


4.      上位机将程序下载到单片机,下载完毕之后,程序自动运行。
5.      至此,很多人还会认为U18、Q1、Q2是多余的,用U6的RTS和DTR直接控制也可以。正常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬间如果USB转串口连接了电脑,DTR和RTS的电平是变化的,如果不处理好,单片机会一直进入ISP模式,或者系统会复位多次,这种情况是不允许的。


6.      于是,就有了我们全新的一键ISP电路。我们主要是分析上电瞬间的逻辑关系,单片机上电时我们通过示波器观察波形得知DTR和RTS的电平是变化的,但是也有一个规律就是:只要RTS为低电平的时候,DTR的电平也是低,因此一般情况Q2不会导通,但由于这两个IO口的电平存在“竞争冒险”,会出现RTS的下降沿的时候刚好遇到DTR的上升沿,这个时候Q2导通,导致系统复位,而BOOT0此时有可能也为高电平,就会进入ISP模式。这个是不受我们控制的,我们不想系统出现这样的情况。因此加入了模拟开关来切断这种干扰。


7.加入模拟开关U18,通过控制U18的4脚的开关来达到隔离干扰电平的目的。下面我们分析一下延时开关电路,上电瞬间,电容C65通过电阻R18来充电,由于电阻100k很大,电容的充电电流很小,等电容充电达到U18的4脚的有效电平2V时,大概耗时1S,在这个1S时间内U18的模拟开关是断开的,因此RTS和DTR的干扰电平不会影响到系统复位。系统正常运行。




回复

使用道具 举报

发表于 2016-7-19 14:19:27 | 显示全部楼层
哎,之前自己做的一个ISP一键下载就是参考网上的,结果超级不稳定,谢火哥了,收下了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 14:20:20 | 显示全部楼层
红思雨 发表于 2016-7-19 14:19
哎,之前自己做的一个ISP一键下载就是参考网上的,结果超级不稳定,谢火哥了,收下了

你根据我这个电路来做,应该就很稳定了,网上的其他电路有BUG。
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:20:31 | 显示全部楼层
谢谢大神,收藏先,后续公司为了降低成本会用ISP一键下载。前晚不要让我来负责就好,我把资料给他么自己弄就好
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:21:10 | 显示全部楼层
红思雨 发表于 2016-7-19 14:19
哎,之前自己做的一个ISP一键下载就是参考网上的,结果超级不稳定,谢火哥了,收下了

我还以为火哥的跟网上的是一样的,没想到是升级过后的
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:22:32 | 显示全部楼层
真的是追求极致啊,我看到其他卖开发板的电路都是一样的,都没有像火哥说的经过改进,那也应该存在火哥说的重启的问题了,真的是天下电路一大抄啊,把问题也抄进去了,也不改良下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 14:24:19 | 显示全部楼层
仲楚楚 发表于 2016-7-19 14:20
谢谢大神,收藏先,后续公司为了降低成本会用ISP一键下载。前晚不要让我来负责就好,我把资料给他么自 ...

你只要按照我这个电路图来画板子就不会出现不稳定的现象,记住,千万不要用网上他们自己说的独创啊,原创 啊啥的,都是大家互相抄,bug都没有解决。
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:24:58 | 显示全部楼层
火大神牛逼                             ,电路收下了,估计以后用得着
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:26:59 | 显示全部楼层
火哥,429的改善了嘛?
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:27:11 | 显示全部楼层
这么多字不想看,希望火哥录个视频讲解下
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:28:02 | 显示全部楼层
公西听然 发表于 2016-7-19 14:22
真的是追求极致啊,我看到其他卖开发板的电路都是一样的,都没有像火哥说的经过改进,那也应该存在火哥说的 ...

哈哈,天下电路一般抄,学学火哥改良下也好啊
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:28:45 | 显示全部楼层
我不管,先下载了再说,硬盘快不够装资料了,火哥什么时候搞个送硬盘的活动啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 14:29:14 | 显示全部楼层
濮黛娥 发表于 2016-7-19 14:26
火哥,429的改善了嘛?

429已经去掉了ISP一键下载,MCUISP这个软件只支持到F407,不支持F429,如果还是一定要用的话,会把F429锁住。而且在F7上面,芯片已经去掉了ISP功能,从这个趋势来看,串口ISP已经没有必要了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 14:29:26 | 显示全部楼层
魏秋月 发表于 2016-7-19 14:27
这么多字不想看,希望火哥录个视频讲解下

等下就准备录视频
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:29:42 | 显示全部楼层
火哥经过测试了没?测试好的话我直接拿来用了啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 14:30:20 | 显示全部楼层
丌官娅硕 发表于 2016-7-19 14:29
火哥经过测试了没?测试好的话我直接拿来用了啊

在F103 霸道 和指南者 这两个板子上用的就是升级过的,你可以直接拿去用
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:31:07 | 显示全部楼层
野火,有没有可以通过hex文件读取源码的软件?
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:32:05 | 显示全部楼层
很好,最近资料更新的真是够多,受益了
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:35:14 | 显示全部楼层
火哥,我买的是zet6的那款板子,也可以用这个下载的吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 15:47:57 | 显示全部楼层
解凝然 发表于 2016-7-19 14:31
野火,有没有可以通过hex文件读取源码的软件?

你这个不是想破解人家的源码吗,哪有这么简单的软件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 15:48:13 | 显示全部楼层
段甘泽 发表于 2016-7-19 14:32
很好,最近资料更新的真是够多,受益了

记得常来                             
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 15:48:24 | 显示全部楼层
段海歌 发表于 2016-7-19 14:35
火哥,我买的是zet6的那款板子,也可以用这个下载的吧?

是的,用的就是这个电路                     
回复 支持 反对

使用道具 举报

发表于 2016-7-20 09:15:50 | 显示全部楼层
火哥威武...
回复

使用道具 举报

发表于 2016-7-20 09:16:19 | 显示全部楼层

会的,下载资料都是来你们这里的
回复 支持 反对

使用道具 举报

发表于 2016-7-20 09:16:58 | 显示全部楼层
fire 发表于 2016-7-19 15:47
你这个不是想破解人家的源码吗,哪有这么简单的软件

好吧,总觉得会有这种牛逼的软件,应该有大神做出来了,可能就是分享出来不是很好
回复 支持 反对

使用道具 举报

发表于 2016-7-20 09:17:32 | 显示全部楼层
fire 发表于 2016-7-19 14:30
在F103 霸道 和指南者 这两个板子上用的就是升级过的,你可以直接拿去用

ok,周末就拿来直接使用了,真是省心
回复 支持 反对

使用道具 举报

发表于 2016-7-20 09:18:02 | 显示全部楼层
fire 发表于 2016-7-19 14:29
429已经去掉了ISP一键下载,MCUISP这个软件只支持到F407,不支持F429,如果还是一定要用的话,会把F429锁 ...

那就只能用仿真器了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 09:51:23 | 显示全部楼层
濮黛娥 发表于 2016-7-20 09:18
那就只能用仿真器了

是的
回复 支持 反对

使用道具 举报

发表于 2016-7-29 10:08:02 | 显示全部楼层
火哥,关于第三步和第四步有点疑问。
我这样理解看看对不对:
一开始B0 B1设为10,复位信号来了。然后进入ISP模式,装载ISPloader程序。这个时候BOOT0和BOOT1是什么已经无所谓了?。所以可以把B0还原。就是这句有点疑问是不是这样。然后通过ISP下载程序。
下载完之后,因为B0B1是00,所以从FLASH执行程序。
回复 支持 反对

使用道具 举报

发表于 2016-8-18 10:17:52 | 显示全部楼层
火哥我有个疑问,如果我想在ISP结束后正常使用串口通信的功能,在不重新接线的情况下,是不是只要串口助手不使能 DTR RTS的控制就可以不进入bootloader了 。想做一个工装夹具,一键烧录并串口测试,提高生产线产能。。。
回复 支持 反对

使用道具 举报

发表于 2016-9-3 23:32:40 | 显示全部楼层
怪不得ISP  下载不了 ~~~~~现在改为DTR低电平复位,RTS高电平进入BOOTLOADER  可以下载了~!~!
回复 支持 反对

使用道具 举报

发表于 2016-9-4 19:24:03 | 显示全部楼层
我操,牛逼,拿去用了,谢谢火哥
回复 支持 反对

使用道具 举报

发表于 2016-11-17 22:38:36 | 显示全部楼层
回复

使用道具 举报

发表于 2016-12-18 23:57:08 | 显示全部楼层
火良的意思是火哥改良
回复 支持 反对

使用道具 举报

发表于 2016-12-26 14:07:57 | 显示全部楼层
这个电路在F429上不能使用吗?但是我觉得怎么下载有点慢了?是不是我搞错了。
回复 支持 反对

使用道具 举报

发表于 2019-11-24 18:37:00 | 显示全部楼层
野火老师,自己做的板子为什么每次烧程序的时候,都需要手动复位一下才能拷进去?电路是按照您这个来做的
回复 支持 反对

使用道具 举报

发表于 2023-1-31 10:24:51 | 显示全部楼层
那个二极管有什么用处啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-24 12:05 , Processed in 0.066376 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表