原子的串口ISP一键下载研究

举报
ReCclay 发表于 2022/02/22 00:36:51 2022/02/22
【摘要】 昨天把我弄晕了,CH340的DTR和RTS。。。 原子的原ISP一键下载图: 《STM32F1开发指南-库函数版本_V3.1 》中对下载电路的解释: 更直观的解释应该上张图: 总而言之...

昨天把我弄晕了,CH340的DTRRTS。。。

原子的原ISP一键下载图:

这里写图片描述

《STM32F1开发指南-库函数版本_V3.1 》中对下载电路的解释:
这里写图片描述

更直观的解释应该上张图:

这里写图片描述

总而言之,就是对BOOT0BOOT1的赋值,为了简化电路,把BOOT1下拉到地,只需要控制BOOT0即可。

有个问题,不容忽视,复位完之后,进入ISP下载程序,下载完之后,并没有再用上位机控制BOOT0,反而也可以直接执行程序。

网上有人这样解释,
这里写图片描述
说实话不太能懂。

下载完之后,两个三极管断开,BOOT0,BOOT1全部被硬件上的电阻拉低,然后自动进入了运行模式?!~


附一张今天刚列的直观理解图,注意了,刚看的时候,一直有个误区,我以为DTR和RTS的变化是自动的,但是实际上是可以由上位机控制的!

这里写图片描述

但是参考《STM32库开发实战指南》P15页,有提到:

“单片机上电瞬间,CH340的DTR和RTS引脚是变化的。”

刚上电的时候,CH340DTR和RTS的输出电平是什么样的呢?

这个还没实测过,但是看这本书里介绍,“当RTS为低电平的时候,DTR也是低电平”,那也意味着,会处于ISP的边缘,它离ISP只差一个复位脉冲。这两个IO还存在竞争冒险,也有可能出现一个RST的复位情况,此时也会进入ISP模式,但是想着,稳定后RTS和DTR都为高,又定会从程序开始执行。而我们软件控制肯定是等电平稳定之后。似乎这样分析起来没毛病,但是实践才是检验真理的唯一标准。

后期补上DTR和RTS的上电瞬间实测信号,这个应该多测几遍,避免偶然性。(说给自己听)

当然,直观上想避免这种上电的意外不可控情况,我们不想碰到,可以把它给隔过去,如何隔呢?延时


不然DTR和RTS的变化影响到系统复位,换句话来讲就是,复位在1s后再受ch340的变化为变化不就可以了呢!

具体方案也有很多了,延时电路。。。。


参考资料

1、http://www.openedv.com/forum-2-1.html

2、http://www.cnblogs.com/einstein-2014731/p/4885300.html

3、《STM32F1开发指南-库函数版本_V3.1 》

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/81358518

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。