zoukankan      html  css  js  c++  java
  • STM32一键下载电路设计原理

    先放原理图(补充:图中的BOOT0通过10K的电阻接到地),再解释为什么这么设计:

    STM32启动方式:BOOT0BOOT1用于设置 STM32的启动方式 ,见下表:

    BOOT0=1,BOOT1=0:串口下载模式;

    BOOT0=0,BOOT1=X:程序启动模式,从内部flash启动。

    设计思路:串口一键下载需要做的就是下载时,为串口下载模式,下载完成后,为启动模式。

    电路设计:一般在使用软件进行串口烧录程序的时候用到这个电路(这不是废话吗),例如使用FlyMCU软件下载程序;CH340G芯片的13脚DTR、14脚RTS的电平是可以被下载软件控制的。通过串口的DTR RTS 信号,来自动配置 BOOT0 RST 信号。他们的状态如下:

      > RTS#和DTR#初始状态时为高电平;

      > 在启用下载的时候,DTR#维持高,RTS#拉低,此时Q3和Q4都导通,那么BOOT0为高电平状态,RESET为低电平复位,然后DTR#变低,Q3不导通,复位结束,此时的BOOT0为高电平,经过4个SYSCLK,BOOT0的状态会被锁存,变成串口下载模式,那么就会启用串口下载程序,开始和FlyMCU下载软件进行通信,进行代码下载;

      > 等到代码下载结束时,RTS#先变高电平,然后DTR#再变高电平,变成程序启动模式。(这个顺序不能变,如果DTR#先变到高电平,Q3会导通,RESET变成低电平,这样又会产生复位。)

      时序如下图:

     

    关于疑问1:启动模式的切换,是在复位后的4个SYSCLK后,再确定的,那么在烧录完成后,为什么没有复位,就切换成了程序启动模式呢?不是应该还是在烧录模式吗?

    小白看了下网上的解答,说是烧录软件已经帮我们配置好了,结果就是在烧写完成后会有报告:“成功从08000000开始运行”。这个回答小白不认同,总之结果是这样,要搞清楚,就只能有时间再用示波器抓下时序看看,这个疑问暂存吧!

    关于疑问2:软件配置为“DTR的低电平复位,RTS高电平进BootLoader”,这样配置不是进入串口下载模式了吗?

    小白看了下网上的解答,说是IC在实际操作时引脚的变化为“DTR#拉高,RTS#拉低”,即软件设置和实际情况是相反的。

  • 相关阅读:
    批量删除.svn文件夹、.svn文件
    Windows 7下Git SSH 创建Key的步骤
    Git:本地项目与远程仓库的git/clone
    git解决二进制文件冲突
    git设置mergetool可视化工具
    redhat7.2配置yum源
    project2016安装与破解
    strace 使用案例
    运维老鸟教你安装centos6.5如何选择安装包
    CSS限制
  • 原文地址:https://www.cnblogs.com/leo0621/p/8478832.html
Copyright © 2011-2022 走看看