正点原子stm32精英开发板串口一键下载电路原理分析
嵌入式学弱狗 2023-04-24

在上周写的《stm32烧录方法小结》中,已经写了这部分的简单解析(那篇文章参考:stm32烧录方法小结),但是那篇主要是为了讲各类烧录方法,内容太多了,这里我再重新搞一篇单独讨论这个一键下载电路吧,而且这篇将使用逻辑分析仪抓的实际波形来说明实际的烧录过程。

使用串口芯片CH340中的DTR引脚和RTS引脚来控制单片机复位引脚和BOOT0引脚的电平状态,从而实现一键下载。对于这个一键下载电路,重点是这2个地方没问题就足够理解了:1.得有看懂三极管电路开关状态的能力 2.得明白CH340的DTR RTS引脚电平状态是可以由软件来控制的

1.使用串口下载前,如图1,先这样连接:单片机串口1的tx1 rx1分别和ch340的rx tx连接,同时boot0 boot1引脚都10k下拉到地(若直接连地则电平状态无法改变了,也就无法切换boot启动配置了)

图1

2.如图2,10k在这里:boot引脚拉一个10k电阻到排针

图2

3.图3为正点原子精英板usb转串口的ch340电路,使用flymcu软件来进行烧录。烧录软件的工作流程为:

(1)初始:DTR和RTS的初始电平都是高电平,如图3,此时Q2和Q3都不导通

(2)如图5的阶段1,DTR维持高电平,RTS拉低,此时Q2和Q3都导通,boot0拉高,同时单片机进入复位状态

(3)如图5的阶段2,DTR也拉低,此时单片机从复位状态释放进行启动,由于boot0已经拉高,参考图4启动模式,单片机将进入系统存储器。从图6可以看到,这个阶段,主要执行单片机信息查询和程序擦除动作

(4)如图5的阶段3,DTR拉高,RTS维持低电平,此时单片机再次进入复位状态,同时boot0维持拉高状态

(5)如图5的阶段4,DTR再次拉低,单片机从复位状态释放,启动进入系统存储器。从图6来看,这个阶段再次读取单片机信息,然后进行烧录,烧录完成后发送协议命令(系统存储器里面的bootloader程序,从flymcu打印的log来推断,至少包含了芯片信息查询、程序烧录、跳转到flash执行这三大功能)让单片机跳转到闪存地址执行,注意这里是从系统存储器程序里面直接跳转的(这一步需要在软件勾选 编程后执行 复选框才有的)

(6)收尾:以上烧录完成并执行以后,拉高DTR和RTS,恢复到平时的电平状态,断开Q2和Q3

图3

4.BOOT0 BOOT1引脚电平对应的启动模式

图4

5.除了初始和收尾,有四个阶段,用2张图来表示。图5是DTR和RTS的实际波形,图6是flymcu烧录软件打印的log信息。其中图6里面关于DTR和RTS电平的描述和实际波形相反,这是flymcu软件的问题。

图5

图6


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
下载排行榜
更多
评测报告
更多
广告