本实用新型涉及软件部署技术领域,特别涉及一种基于stm32的isp下载电路。
背景技术:
众所周知,stm32单片机在其内部有一个自举程序,该自举程序为芯片出厂设置,用户无法更改,且该自举程序默认连接在外设usart1上。所以在有些情况下(比如没有外部下载器接口)用户可以通过改变stm32的启动区域(通过boot引脚的配置,stm32的启动区域不一样)使单片机从内部自举程序启动并结合usart1给设备烧写程序。该方法统称为“isp下载”。
现有的下载方案有两种,一种是手动下载,另一种则是isp一键下载;
此处主要讨论isp一键下载,它需要做的事情就是用上位机去控制boot0脚和单片机的复位脚,通过上位机实现isp一键下载;一键isp电路中我们需要用usb转串口的芯片的dtr口和rts口来控制单片机的boot0和reset。下载电路如说明书附图的图3以及图4所示;其主要实现的原理在于:1、通过上位机控制u17(ch340g)的rts脚为低电平,q4导通,boot0的电平上拉为高电平;2、通过上位机控制u17(ch340g)的dtr脚为高电平,由于rts为低电平,q3导通,reset引脚拉低,芯片复位进入自举模式;3、单片机进入isp模式,此时可以将dtr脚设置为低电平,rts设置为高电平。q3和q4为截至状态,boot0和reset还原默认电平;4、上位机将程序下载到单片机,下载完毕之后,程序自动运行。
以上传统的方案会产生一个问题:单片机上电瞬间如果usb转串口连接了电脑,dtr和rts的电平是变化的,如果不处理好,单片机会一直进入isp模式,或者系统会复位多次,这种情况是不允许的。
技术实现要素:
本实用新型的目的在于,提供一种基于stm32的isp下载电路,来解决背景技术中提及到的问题。
本实用新型的技术方案:一种基于stm32的isp下载电路,包括单片机以及isp一键下载模块;所述isp一键下载模块与单片机连接,还包括上电延迟模块,所述上电延迟模块连接在单片机的reset引脚与isp一键下载模块之间,所述上电延迟模块用于隔离单片机上电时产生的干扰电平。
上述的一种基于stm32的isp下载电路中,所述上电延迟模块包括模拟开关u1。
前述的一种基于stm32的isp下载电路中,所述模拟开关u1的vcc引脚与en引脚之间连接有二极管d1,所述二极管d1上并联有电阻r2,所述模拟开关u1的en引脚、二极管d1的正极以及电阻r2的第一端均连接至电容c1的第一端,所述电容c1的第二端接地,所述模拟开关u1的vcc引脚、二极管d1的负极以及电阻r2的第二端均连接至电压+3.3v,所述模拟开关的y引脚连接至电阻r1的第一端,所述电阻r1的第二端连接至单片机的nrst引脚,所述模拟开关的z引脚连接至电阻r3的第一端以及三级管q1的集电极,所述电阻r3的第二端连接至电压+3.3v,所述三级管q1的基极连接至电阻r4的第一端,所述电阻r4的第二端连接至芯片u17的dir引脚,所述三级管q1的发射极连接至电阻r5的第一端以及芯片u17的ris引脚,所述电阻r5的第二端连接至三极管q2的基极,所述三极管q2的发射极接至电压+3.3v,所述三极管q2的集电极连接至电阻r6的第一端,所述电阻r6的第二端连接至单片机的booto引脚。
前述的一种基于stm32的isp下载电路中,所述单片机的型号为stm32,所述芯片u17的型号为:ch340g,所述模拟开关的型号为:74hc1g66gw。
本实用新型的优点在于:1、相对于手动isp下载,本发明为一键下载,简单方便,下载过程中不需要拨动任何拨码开关或者跳线帽,只需要接上usb连接线即可;
2、接口简单,复用单片机usart1,需要下载时该接口可以下载,不需要下载时该接口也可以作为日志输出接口使用,硬件实现简单方便;
3、无需下载器和仿真器,一根usb连接线即可解决下载问题;
4、相比较传统的一键下载方式,避免了设备上电瞬间的反复重启和进入其他模式的风险,下载稳定。
附图说明
图1是本实用新型上电延迟模块的电路原理图;
图2是本实用新型usb转ttl的电路原理图;
图3是背景技术中提及的传统isp一键下载模块的电路原理图;
图4是背景技术中提及的下载电路与pc机以及单片机之间的连接关系;
图5是本实用新型与pc机以及单片机之间的连接关系。
具体实施方式
下面结合附图和实施例对本实用新型作进一步的说明,但并不作为对本实用新型限制的依据。
实施例:参照1-3;
根据在背景技术中提及到的问题,进行如下分析:由于问题出现在上电启动的瞬间,因此主要是分析上电瞬间的逻辑关系。单片机上电时我们通过示波器观察波形得知dtr和rts的电平是变化的。
上述变化中有一个规律就是:只要rts为低电平的时候,dtr的电平也是低,因此一般情况q2不会导通,但由于这两个io口的电平存在“竞争冒险”,会出现rts的下降沿的时候刚好遇到dtr的上升沿,这个时候q2导通,导致系统复位,而boot0此时有可能也为高电平,就会进入isp模式。这个是不受我们控制的。
综合以上分析,本实施例的技术方案是加入了模拟开关u1来切断这种干扰。
具体的:一种基于stm32的isp下载电路,包括单片机(即stm32)、isp一键下载模块(该模块的电路原理图参照图3所示,为传统的一键下载电路);所述isp一键下载模块与单片机连接,
在此基础上添加了上电延迟模块,所述上电延迟模块连接在单片机的reset引脚与isp一键下载模块之间,所述上电延迟模块用于隔离单片机上电时产生的干扰电平;
上电延迟模块的电路原理图参照图1所示:主要包括模拟开关u1(型号为:74hc1g66gw),所述模拟开关u1的vcc引脚与en引脚之间连接有二极管d1,所述二极管d1上并联有电阻r2,所述模拟开关u1的en引脚、二极管d1的正极以及电阻r2的第一端均连接至电容c1的第一端,所述电容c1的第二端接地,所述模拟开关u1的vcc引脚、二极管d1的负极以及电阻r2的第二端均连接至电压+3.3v,所述模拟开关的y引脚连接至电阻r1的第一端,所述电阻r1的第二端连接至单片机的nrst引脚,所述模拟开关的z引脚连接至电阻r3的第一端以及三级管q1的集电极,所述电阻r3的第二端连接至电压+3.3v,所述三级管q1的基极连接至电阻r4的第一端,所述电阻r4的第二端连接至芯片u17(型号为:ch340g)的dir引脚,所述三级管q1的发射极连接至电阻r5的第一端以及芯片u17的ris引脚,所述电阻r5的第二端连接至三极管q2的基极,所述三极管q2的发射极接至电压+3.3v,所述三极管q2的集电极连接至电阻r6的第一端,所述电阻r6的第二端连接至单片机的booto引脚;
工作原理为:通过模拟开关u1的使能脚(4脚en)来控制输入(2脚z)输出(1脚y)的通断,如果使能脚为高电平(高于2v),则输入输出连接,如果使能脚为低电平(小于2v),则输入输出断开。
上电瞬间,电容c1通过电阻r2来充电,由于电阻r2的阻值100k很大,电容的充电电流很小,等电容充电达到u1的4脚的有效电平2v时,大概耗时1s,在这个1s时间内u1的模拟开关是断开的,因此芯片u17的引脚rts和dtr的干扰电平不会影响到系统复位,系统正常运行。系统断电时,电容c1通过二极管d1来放电,达到快速放电的目的,在系统再次上电时能保持充电,继续提高延时的功能,达到隔离干扰的目的。
最后,在使用过程中需要连接外部usb转ttl接口,参照图5所示以及图2所示,u17的txd和rxd分别接单片机的usart1的rxd和txd引脚,以此来完成数据的传输。