文章目录

  • 1、简介
  • 2、安装USB转串口驱动
  • 3、硬件连接
  • 4、开始下载
  • 5、ISP 一键下载原理分析
    • 5.1、ISP 简介
    • 5.2、ISP 普通下载
    • 5.3、BOOT配置
    • 5.4、ISP 一键下载

1、简介

  开发板自带串口下载电流,配合上位机可实现一键 ISP 下载,不需要修改开发板上的 BOOT 设置。与仿真器相比,ISP只能下载程序,不能在线调试且下载速度慢。

2、安装USB转串口驱动

  STM32开发板用的 USB 转串口的驱动芯片是 CH340,要实验串口得先在电脑中安装USB转串口驱动—CH340版本。驱动可在网上搜索下载。WIN7用户请用管理员身份安装。如果不能安装成功,请先百度赵原因自行解决。

  如果USB转串口驱动安装成功,USB线跟板子连接没有问题,在计算机->管理->设备管理器->端口中可识别到串口。

如果识别不了串口,请检查USB线是否完好,可换一根USB线试试。

3、硬件连接

  用 USB 线连接电脑和开发板的 USB 转串口接口:USB TO UART,给开发板上电。

4、开始下载

  打开 MCUISP 软件,配置如下:

①搜索串口,设置波特率微 115200(尽量不要设置的太高)

②选择要下载的 HEX 文件

③校验、编程后执行

④DTR低电平复位,RTS高电平进入bootloader

⑤开始编程。如果出现一直连接的情况,按一下开发板的复位键即可。

程序下载成功,会自动运行,如果不自动运行,手动按开发板的复位按键即可。

5、ISP 一键下载原理分析

5.1、ISP 简介

  ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用 ISP 方式擦除或再编程。

  ISP 的时候需要用到(bootloader)自举程序,自举程序存储在 STM32 器件的内部自举 ROM 存储器(系统存储器)中。其主要任务是通过一种可用的串行外设( USART、 CAN、 USB、 I2C 等)将应用程序下载到内部 Flash 中。每种串行接口都定义了相应的通信协议, 其中包含兼容的命令集和序列。

5.2、ISP 普通下载

  现在我们针对 USART1 的ISP进行分析,通常的 ISP 的步骤如下:

1、电脑通过 USB 转串口线连接 STM32 的USART1,并打开电脑端的上位机;

2、设置跳线保持 BOOT0 为高电平,BOOT1 为低电平;

3、复位单片机使其进入 bootloader 模式,通过上位机下载程序;

4、下载完毕,设置跳线保持 BOOT0 为低电平,BOOT1 为低电平;

5、复位单片机即可启动用户代码,正常运行。

以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对 ISP 的原理认识,一键 ISP 就诞生了,它需要做的事情就是用上位机去控制 BOOT0 脚和单片机 的复位脚,原理图如下:

5.3、BOOT配置

  在 ISP 下载电路中,我们需要配置 BOOT 引脚,有关 BOOT 引脚不同的配置会产生不 同的启动方式,具体见下表。

5.4、ISP 一键下载

  USB 转串口估计大家都很熟悉,一般都是用到 RXD 和 TXD 这两个口,一键 ISP 电路 中我们需要用 USB 转串口的芯片的 DTR 口和 RTS 口来控制单片机的 BOOT0 和 NRST, 原理如下:

  1. 通过上位机控制 U6(CH340G)的 RTS 脚为低电平,Q1 导通,BOOT0 的电平上拉为高电平。
  2. 通过上位机控制 U6(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 是多余的,用 U6 的 RTS 和 DTR 直接控制也 可以。正常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬 间如果 USB 转串口连接了电脑,DTR 和 RTS 的电平是变化的,如果不处理好,单 片机会一直进入 ISP 模式,或者系统会复位多次,这种情况是不允许的。
  6. 于是,就有了我们全新的一键 ISP 电路。我们主要是分析上电瞬间的逻辑关系,单 片机上电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的,但是也有 一个规律就是:只要 RTS 为低电平的时候,DTR 的电平也是低,因此一般情况 Q2 不会导通,但由于这两个 IO 口的电平存在“竞争冒险”,会出现 RTS 的下降沿的 时候刚好遇到 DTR 的上升沿,这个时候 Q2 导通,导致系统复位,而 BOOT0 此时 有可能也为高电平,就会进入 ISP 模式。这个是不受我们控制的,我们不想系统出 现这样的情况。因此加入了模拟开关来切断这种干扰。
  7. 加入模拟开关 U18,通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面 我们分析一下延时开关电路,上电瞬间,电容 C65 通过电阻 R18 来充电,由于电 阻 100k 很大,电容的充电电流很小,等电容充电达到 U18 的 4 脚的有效电平 2V 时,大概耗时 1S,在这个 1S 时间内 U18 的模拟开关是断开的,因此 RTS 和 DTR 的干扰电平不会影响到系统复位。系统正常运行。

注意:上位机需要这样设置,RTS 低电平进入BootLoader,DTR高电平进入复位

232标准:(MCUISP软件就是按照这个标准设计的)逻辑1:-3 ~ -15V,逻辑0:+3 ~ +15V

低电平进入BootLoader,DTR高电平进入复位**

232标准:(MCUISP软件就是按照这个标准设计的)逻辑1:-3 ~ -15V,逻辑0:+3 ~ +15V
TTL标准: 逻辑1:3.3V,逻辑0:0V,输出 L:<0.8V;H:>2.4V,输入 L:<1.2V;H:>2.0V

02、如何用串口下载程序相关推荐

  1. smart700iev3 程序下载设置_Smart 700 IE 如何用以太网下载程序

    问题描述: Smart 700 IE 如何用以太网下载程序? 最佳回答:Smart700 / Smart1000 / Smart700IE / Smart1000IE 各种下载方法: http://w ...

  2. STM32串口下载程序(官方下载软件)

    ST官方有一款专门用于串口下载程序的下载软件STM32 Flash loader demonstrator (FLASHER-STM32),目前的最新版本是V2.8.0版,下载链接如下: https: ...

  3. 【CH559L单片机】串口下载程序说明

    [CH559L单片机]串口下载程序说明

  4. STM32通过串口下载程序教程

    在STM32下载程序的方法中,通常有两种,一种是通过STLink下载器下载,另外一种是通过串口下载.在这里介绍串口下载的方法. 需要工具有以下三种 1.STM32最小系统 2.USB转TTL模块 3. ...

  5. stm32,STC89C51使用串口下载程序

    1. 使用USB转串口下载 1.1 STC89C51 一般买的开发板会有一键下载的硬件电路,但是有时候我们自己的最小系统版,为了能够下载,可以使用串口的方式现在程序,这个我买的圈圈教你学USB的开发板 ...

  6. STC15W104 8脚单片机串口下载程序

    单片机串口下载是一种常见的单片机程序下载方式,它通过串口线连接单片机的串口引脚和电脑的串口接口实现.下面是单片机串口下载的基本原理和操作方法: 原理 确定下载模式:大多数单片机芯片都支持串口下载模式, ...

  7. CC1310串口下载程序

    首先要在程序里面使能BootLoader模式.CCFG里面的BL_CONFIG寄存器是只读的,只能在ccfg.c文件里面操作此寄存器.打开.../source/ti/devices/startup_f ...

  8. STM32 串口下载hex 串口下载程序 CH340串口

    1 接线 STM32的BOOT0接高电平 BOOT1接低电平 2 接线 串口转TTL模块----STM32 3.3---------------------3.3 GND--------------- ...

  9. 如何用FlyMCU下载程序进STM32

    我写一下我的操作, 1.下载方式选用DTR的低电平复位,RTS高电平进Bottloader 2.   STM32的BOOT0接高电平                  BOOT1接低电平 (有时候BO ...

最新文章

  1. Nginx之让用户通过用户名密码认证访问web站点
  2. 软件測试基本方法(一)之软件測试
  3. svn 安装_Tortoise SVN 安装
  4. 什么是rip协议其优缺点_南京课工场IT培训:常见动态路由协议之———RIP动态路由实验...
  5. 2019ICPC(银川) - Delivery Route(强连通缩点+分块最短路)
  6. java设计模式之UML②类图讲解
  7. Teams Tab的Single Sign-On
  8. WAS 报错 Font '宋体' is not available to the JVM
  9. Day 16 包 json模块和os模块
  10. ubuntu 14.04 环境下打开xls、pdf与png文件
  11. H3C BGP基本配置
  12. 服务器内存傲腾基本参数信息,服务器装傲腾内存
  13. #MAXScript学习# 1批量导出fbx
  14. android robotium测试,Android Robotium的几个小tips
  15. 创业过程中技术真的那么重要吗
  16. S5P4418裸机开发(五):时钟
  17. 论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
  18. Java绘制正态分布统计图
  19. 什么命令能查看服务器的型号,查看服务器型号的命令
  20. Github标签管理

热门文章

  1. 【python】绘制内切圆
  2. vulnhub之VENOM:1
  3. 股票小知识,压盘、洗盘、压单吸筹
  4. android图表ichartjs
  5. cordova打包android apk出现空白页(无法显示)
  6. 基于IDEA的Java学生管理系统
  7. A2W、W2A、A2T、T2A的使用方法(_T、L)
  8. html清除js缓存
  9. 朴素贝叶斯分类的实现
  10. Spring源码下载与编译