本实用新型涉及一种STM32芯片串口烧录电路,属于电路技术领域。
背景技术:
单片机(Microcontrollers)是一种集成电路芯片。单片机是采用超大规模集成电路技术把具有数据处理能力的中央处理器(Central Processing Unit,CPU)、随机存储器(random access memory,RAM)、只读存储器(Read-Only Memory,ROM)、多种输入/输出(Input/Output,I/O)口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。STM32芯片是一种功能比较强大的32位的单片机,它不仅可以使用寄存器进行编程,还可以使用官方提供的库文件进行编程,这样不仅编程方便,而且更容易移植。
目前,在STM32芯片中,可以通过设置STM32芯片的BOOT0和BOOT1引脚的电平来选择三种不同的启动模式。当BOOT1=X,BOOT=0时,STM32系统从用户内存启动,这是正常的工作模式;当BOOT1=1,BOOT0=1时,系统从内置静态随机存取存储器(Static Random-Access Memory,SRAM)启动,这种模式一般用于调试;最后当BOOT1=0,BOOT0=1时,系统从存储器启动,这种启动模式下,STM32芯片内部预置的启动程序运行,这段启动程序中提供了利用串口烧录程序的固件,根据这一固件特性,我们设计串口烧录电路,实现串口烧录程序的功能。
然而,在上述串口烧录方式下,烧录电路需要额外占用了一个串口资源。在嵌入式系统串口资源紧张的情况下,单独给烧录电路配置一个串口就会造成资源的浪费。
技术实现要素:
本实用新型的目的在于提供一种STM32芯片串口烧录电路,为达到上述目的,本实用新型提供如下技术方案:
一种STM32芯片串口烧录电路,所述电路包括:通用串行总线USB转接芯片;所述USB转接芯片中的数据终端就绪引脚通过第一电阻与第一三极管的基极相连;所述第一三极管的集电极通过第二电阻与第一电源相连,且所述集电极与所述第二电阻之间通过二极管与第二三极管的发射极相连;所述第一三极管的发射集通过第三电阻与第三三极管的基极相连;所述第三电阻与第一三极管的发射极之间还连接有所述USB转接芯片中的请求发送引脚;
所述第二三极管的集电极引出所述STM32芯片的复位引脚,所述第二三极管的基极通过第四电阻与第二电源相连,且所述基极与所述第四电阻之间引出所述STM32芯片的模式控制引脚;
所述第三三极管的发射极与第三电源相连,所述第三三极管的集电极通过第五电阻引出所述STM32芯片的烧录引脚。
可选地,所述模式控制引脚为浮空输入时,所述STM32芯片为烧录模式;所述模式控制引脚为推挽输出时,所述STM32芯片为通讯模式。
可选地,所述烧录模式下,所述模式控制引脚的输入为浮空输入以使所述第二三极管导通;
上位机烧录软件控制所述数据终端就绪引脚输出高电平、所述请求发送引脚输出低电平,从而使得所述烧录引脚被拉高,所述复位引脚被拉低,实现所述STM32芯片的复位,在所述STM32芯片复位完成之后,所述烧录引脚被锁存;
所述上位机烧录软件重新控制所述数据终端就绪引脚输出低电平、所述请求发送引脚输出低电平,从而使得所述复位引脚被拉高,复位结束,触发所述STM32芯片运行内部预置的启动程序,所述启动程序用于供所述STM32芯片连接的上位机进行程序烧录。
可选地,所述通讯模式下,所述模式控制引脚为推挽输出,且所述模式控制引脚为低电平输出以使所述第二三极管断开。
可选地,所述USB转接芯片还包括数据发送引脚、数据接收引脚、电源提供引脚、接地引脚、电源引脚、正极数据引脚、负极数据引脚、振荡输入引脚和振荡输出引脚;
所述数据发送引脚用于串行数据输出;
所述数据接收引脚用于串行数据输入;
所述电源提供引脚通过第一电容接地,且所述第一电容与所述电源提供引脚之间还连接有第四电源;
所述电源引脚通过第二电容与所述接地引脚相连,且与所述接地引脚相连的连接点接地;
所述正极数据引脚用于与USB总线的正极数据线相连;
所述负极数据引脚用于与所述USB总线的负极数据线相连;
所述振荡输入引脚和所述振荡输出引脚连接有晶体振荡电路。
可选地,所述USB转接芯片为CH340G芯片。
可选地,所述电路还包括:工作状态指示子电路,所述工作状态指示子电路包括子电路电源;
所述子电路电源通过第一子电路电阻与第一子电路二极管相连,且所述第一子电路二极管的输出端与所述数据发送引脚相连;
所述子电路电源还通过第二子电路电阻与第二子电路二极管相连,且所述第二子电路二极管的输出端与所述数据接收引脚相连。
本实用新型的有益效果在于:通过软件控制STM32芯片的DBG引脚的工作方式,实现烧录电路在烧录模式和通讯模式两种工作模式的切换功能;在烧录模式下,串口用于程序烧录;在通讯模式下,串口用于数据通讯;而不需要额外设置串口烧录引脚来实现程序烧录功能;可以解决单独给烧录电路配置一个串口造成资源浪费的问题;可以实现串口资源的共用,节省串口资源。
上述说明仅是本实用新型技术方案的概述,为了能够更清楚了解本实用新型的技术手段,并可依照说明书的内容予以实施,以下以本实用新型的较佳实施例并配合附图详细说明如后。
附图说明
图1为本申请一个实施例提供的STM32芯片串口烧录电路的电路图。
具体实施方式
下面结合附图和实施例,对本实用新型的具体实施方式作进一步详细描述。以下实施例用于说明本实用新型,但不用来限制本实用新型的范围。
图1是本申请一个实施例提供的STM32芯片串口烧录电路的电路图,该电路包括通用串行总线(Universal Serial Bus,USB)转接芯片110。
可选地,USB转接芯片110可以为CH340G芯片。CH340是一个USB总线的转接芯片,用于实现USB转串口、USB转红外数据组织(Infrared Data Association,IrDA)或者USB转打印口。
以USB转接芯片110为CH340G芯片为例,参考图1,CH340G芯片包括如下几个引脚:数据终端就绪(Data Terminal Ready,DTR)引脚和请求发送引脚(Request To Send,RTS)。
USB转接芯片110中的DTR引脚通过第一电阻R88与第一三极管Q11的基极相连;第一三极管Q11的集电极通过第二电阻R87与第一电源相连,且集电极与第二电阻R87之间通过二极管D30与第二三极管Q5的发射极相连;第一三极管Q11的发射集通过第三电阻R89与第三三极管Q10的基极相连;第三电阻R89与第一三极管Q11的发射极之间还连接有USB转接芯片中的RTS引脚。
其中,第一电源的电压可以为3.3伏特(V),当然,也可以为其他电压值,本实施例对此不作限定。
二极管D30的正极与第二三极管Q5的发射极相连;二极管D30的负极连接至第一三极管Q11与第二电阻R87之间。
第一三极管Q11为NPN型三极管,第二三极管Q5为NPN型三极管,第三三极管Q10为PNP型三极管。
可选地,本实施例中仅以第一电阻R88为1千欧姆(KΩ)、第二电阻R87为10KΩ、第三电阻R89为1KΩ为例进行说明,在实际实现时,第一电阻R88、第二电阻R87和第三电阻R89的阻值也可以为其他值,本实施例对此不作限定。
第二三极管Q5的集电极引出STM32芯片的复位引脚RESET,第二三极管Q5的基极通过第四电阻R91与第二电源相连,且该基极与第四电阻R91之间引出STM32芯片的模式控制引脚DBG。
可选地,本实施例中仅以第四电阻R91的阻值为1KΩ为例进行说明,在实际实现时,第四电阻R91的阻值也可以为其他值,本实施例对此不作限定。
第二电源的电压可以为3.3V,当然,也可以为其他电压值,本实施例对此不作限定。
第三三极管Q10的发射极与第三电源相连,第三三极管Q10的集电极通过第五电阻R90引出STM32芯片的烧录引脚BOOT0。
可选地,本实施例中仅以第五电阻R90的阻值为1KΩ为例进行说明,在实际实现时,第五电阻R90的阻值也可以为其他值,本实施例对此不作限定。
第三电源的电压可以为3.3V,当然,也可以为其他电压值,本实施例对此不作限定。
本实施例中,在模式控制引脚DBG为浮空输入时,STM32芯片为烧录模式;模式控制引脚DBG为推挽输出时,STM32芯片为通讯模式。
其中,浮空输入是指信号进入芯片内部后,既没有接上拉电阻也没有接下拉电阻,而是经由触发器输入的输入方式。推挽输出是指将信号分成正负2个部分经由放大器件放大,最后在输出端合成整个信号波形的输出方式。
本实施例中,STM32芯片串口烧录电路的工作原理如下:
烧录模式工作原理:
1、通过软件控制STM32芯片的模式控制引脚DBG为浮空输入,DBG高电平;第二三极管Q5导通,STM32芯片进入烧录模式。
2、上位机烧录软件控制DTR引脚输出高电平、RST引脚输出低电平,此时,烧录引脚BOOT0被拉高,复位引脚RESET被拉低,实现STM32芯片的复位,在STM32芯片复位完成之后,烧录引脚BOOT0被锁存。
3、烧录引脚BOOT0被锁存之后,上位机烧录软件重新控制DTR引脚输出低电平、RST引脚输出低电平,从而使得复位引脚RESET被拉高,复位结束,触发STM32芯片运行内部预置的启动程序,该启动程序用于供STM32芯片连接的上位机进行程序烧录。
通讯模式工作原理:
1、STM32芯片的模式控制引脚DBG为推挽输出,且DBG为低电平输出。此时,第二三极管Q5断开。
2、上位机软件通过串口与STM32芯片进行数据通讯。由于第二三极管Q5断开,此时复位引脚RESET不受烧录电路影响,即无论CH340芯片上电电平如何跳动,都不会造成STM32芯片重启。
可选地,USB转接芯片110还包括数据发送引脚TXD、数据接收引脚RXD、电源提供引脚VCC、接地引脚GND、电源引脚V3.3、正极数据引脚UD+、负极数据引脚UD-、振荡输入引脚XI和振荡输出引脚XO。
其中,数据发送引脚TXD用于串行数据输出;数据接收引脚RXD用于串行数据输入;电源提供引脚VCC通过第一电容C37接地,且第一电容C37与电源提供引脚VCC之间还连接有第四电源。
本实施例仅以第一电容C37的电容值为100纳法(nF)、第四电源的电压值为5V为例进行说明,在实际实现时,本实施例不对第一电容C37的电容值和第四电源的电压值作限定。
电源引脚V3.3通过第二电容C38与接地引脚GND相连,且与接地引脚相连的连接点接地。
本实施例仅以第二电容C38的电容值为100纳法(nF)为例进行说明,在实际实现时,本实施例不对第二电容C38的电容值作限定。
正极数据引脚UD+用于与USB总线的正极数据线相连;负极数据引脚UD-用于与USB总线的负极数据线相连。
振荡输入引脚XI和振荡输出引脚XO连接有晶体振荡电路,比如:图1中振荡输入引脚XI和振荡输出引脚XO连接的振荡电路。
当然,USB转接芯片110还可以包括其它引脚,比如:图1中所示的R232、DCD、RI、DSR、CTS等引脚,这些引脚均悬空,本实施例不对USB转接芯片110包括的引脚类型和各个引脚的连接方式作限定。
可选地,STM32芯片串口烧录电路还包括工作状态指示子电路。工作状态指示子电路包括子电路电源。子电路电源的电压可以为3.3V,也可以为其他其他电压值,本实施例不对子电路电源的电压值作限定。
子电路电源通过第一子电路电阻R3与第一子电路二极管D11相连,且第一子电路二极管D11的输出端与串行数据输出的连接线相连。
子电路电源还通过第二子电路电阻R74与第二子电路二极管D12相连,且第二子电路二极管D12的输出端与串行数据输入的连接线相连。
可选地,本实施例中,仅以第一子电路电阻R3的阻值为1KΩ,第二子电路电阻R74的阻值为1KΩ为例进行说明,本实施例不对第一子电路电阻R3的阻值和第二子电路电阻R74的阻值作限定。
可选地,第一子电路二极管D11的指示灯的颜色与第二子电路二极管D12的指示灯的颜色不同,比如:第一子电路二极管D11的指示灯的颜色为红色,第二子电路二极管D12的指示灯的颜色为绿色。
可选地,第一子电路二极管D11的正极与第一子电路电阻R3相连,第一子电路二极管D11的负极与串行数据输出的连接线相连;第二子电路二极管D12的正极与第二子电路电阻R74相连,第二子电路二极管D12的负极与串行数据输入的连接线相连。
综上所述,本实施例提供的STM32芯片串口烧录电路,通过软件控制STM32芯片的DBG引脚的工作方式,实现烧录电路在烧录模式和通讯模式两种工作模式的切换功能;在烧录模式下,串口用于程序烧录;在通讯模式下,串口用于数据通讯;而不需要额外设置串口烧录引脚来实现程序烧录功能;可以解决单独给烧录电路配置一个串口造成资源浪费的问题;可以实现串口资源的共用,节省串口资源。
另外,在通讯模式下,通过硬件电路控制STM32芯片的RESET引脚,此时,三极管Q5断开,此时RESET引脚不受烧录电路影响;无论CH340芯片上电平如何跳动,都不会造成STM32芯片重启;可以防止因USB芯片上电电平抖动引起的STM32重启问题。
可选地,基于上述实施例,STM32芯片中的程序后续还可以进行软件升级。软件升级是指软件从低版本向高版本的更新。软件升级是厂商修复漏洞、解决兼容性问题的常用手段。同时,软件升级也可改善运行流程和操作方式,为客户提供更加人性化的用户体验。而随着信息时代的来临,技术革新、市场发展迅速,厂商的仪器设计也很难全面的满足客户和市场的需求,厂商需要把软件升级做为附加值来提供给用户,为用户提供更全面的功能和更创新的技术。
目前,基于STM32芯片的激光尘埃粒子计数器厂商都没有主动向用户提供软件升级的服务。由于软件升级需要拆机,厂商会要求客户将仪器返厂进行修复。这种流程消耗的时间成本与费用成本都比较高,且严重影响用户体验。
基于上述技术问题,本申请中还提供一种STM32芯片中的软件升级方法,该方法包括一下几个步骤:
步骤1:建立上位机与基于STM32芯片的激光尘埃粒子计数器之间的通信连接。
示意性地,上位机与激光尘埃粒子计数器之间使用USB数据线连接,以建立通信连接。
步骤2:上位机获取软件升级包。
步骤3:上位机对软件升级包进行校验。
可选地,上位机解压软件升级包,检查软件升级包中是否包括升级程序文件、上位机软件、升级说明书。
步骤2和3可以在步骤1之前执行;或者,也可以在步骤1之后执行;或者,还可以与步骤1同时执行,本实施例对此不作限定。
步骤4:待升级的激光尘埃粒子计数器启动后获取升级指令。
可选地,激光尘埃粒子计数器的厂家设置界面中设置有“升级调试”控件;在接收到作用于“升级调试”控件的触发操作时生成升级指令。
步骤5:上位机运行软件升级包中的上位机软件设置串口号。
步骤6:上位机选择软件升级包中的升级程序文件。
步骤7:上位机中运行的上位机软件在接收到升级指令时开始对激光尘埃粒子计数器进行软件升级。
可选地,上位机软件的用户界面中设置有“开始编程”控件;在接收到作用于该控件的触发操作时确定接收到升级指令,此时,上位机开始进行软件升级。
步骤8:激光尘埃粒子计数器重启仪器,升级完成。
综上所述,本实施例提供的STM32芯片中的软件升级方法,可以解决目前的激光尘埃粒子计数器厂商无法针对软件系统的漏洞或者兼容性问题为客户提供及时的修复服务;无法根据客户需求及时提供定制化的功能升级;软件升级时需要返厂,耗时长;且软件升级时需要拆机等技术问题;可以简化软件升级的步骤、操作;无需用户拥有专业的软件升级知识,可以提高软件升级的效率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本实用新型的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对实用新型专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本实用新型构思的前提下,还可以做出若干变形和改进,这些都属于本实用新型的保护范围。因此,本实用新型专利的保护范围应以所附权利要求为准。