USB转串口估计大家都很熟悉,一般都是用到RXD和TXD这两个口,一键ISP电路中我们需要用USB转串口的芯片的DTR口和RTS口来控制单片机的BOOT0和NRST,原理如下:
1. 通过上位机控制U9(CH340G)的RTS脚为低电平, Q1导通,BOOT0的电平上拉为高电平。
2. 通过上位机控制U9(CH340G)的DTR脚为高电平,由于RTS为低电平,Q2导通,U18的2脚为低电平,U18为一个模拟开关, 使能端由4脚控制,默认高电平,U18的1脚和2脚导通,所以NRST为低电平系统复位。
3. 单片机进入ISP模式,此时可以将DTR脚设置为低电平 ,RTS设置为高电平。Q1和Q2为截至状态,BOOT0和NRST还原默认电平。
4. 上位机将程序下载到单片机,下载完毕之后, 程序自动运行。
5. 至此,很多人还会认为U18、Q1、Q2是多余的,用U9的RTS和DTR直接控制也可以。正常情况下,这样理解没有问题,但是我们忽略了一点, 就是单片机上电瞬间如果USB转串口连接了电脑,DTR和RTS的电平是变化的,如果不处理好,单片机会一直进入ISP模式,或者系统会复位多次,这种情况是不允许的。
6. 于是,就有了我们全新的一键ISP电路。我们主要是分析上电瞬间的逻辑关系,单片机上电时我们通过示波器观察波形得知DTR和RTS的电平是变化的, 但是也有一个规律就是:只要RTS为低电平的时候,DTR的电平也是低,因此一般情况Q2不会导通,但由于这两个IO口的电平存在“竞争冒险”, 会出现RTS的下降沿的时候刚好遇到DTR的上升沿,这个时候Q2导通,导致系统复位,而BOOT0此时有可能也为高电平,就会进入ISP模式。 这个是不受我们控制的,我们不想系统出现这样的情况。因此加入了模拟开关来切断这种干扰。
加入模拟开关U18,通过控制U18的4脚的开关来达到隔离干扰电平的目的。下面我们分析一下延时开关电路,上电瞬间,电容C1通过电阻R43来充电, 由于电阻100k很大,电容的充电电流很小,等电容充电达到U18的4脚的有效电平2V时,大概耗时1S,在这个1S时间内U18的模拟开关是断开的, 因此RTS和DTR的干扰电平不会影响到系统复位。系统正常运行。
提示: 更多关于串口下载使用方面的问题请参考此链接内容 .html#
到此这篇jflash下载程序步骤stm32(jflash解锁stm32)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/48816.html