STM32程序的DAP下载方式和串口下载方式分析

  • 前提简述
    • DAP下载方式
    • 串口下载方式

前提简述

本人学习的是STM32F1系列这款单片机。标准库对于新手来说作用还是非常大的,所以接下来关于这款单片机的学习基本都是基于标准库的。本节主要讲DAP和串口下载的原理和接口,关于KEIL的设置就不再细说,网上都可以找到。

DAP下载方式

DAP仿真器遵循ARM公司的标准,基于Cortex内核的单片机都是适用的(如:M3、M4、M7)。需要注意的是:DAP仿真器内含特殊的通信协议去下载程序,我们也不需要管太多,所以使用的时候stm32的BOOT0和BOOT1接地(启动方式1)直接从Flash处启动即可。

DAP仿真器是支持下载和程序的在线仿真的(这可以说是DAP仿真和串口仿真最大的区别)。

DAP仿真器的下载接口可以有分为JTAG接口和SWD接口。如果不深究仿真器的接口引脚功能,只需要把对应的引脚接到单片机上即可。
JTAG接口是高速的(5M的速度),SWD接口是全速的(1M的速度)。JTAG接口有10pin、14pin、20pin的,SWD接口一般是5pin的(就是JTAG接口的其中的3.3V、TMS、GND、TCK、NRST)。尽管接口的引脚数不同,但是大部分的引脚都是一样的。引脚定义如下:

引脚定义
Test Clock Input (TCK) -----强制要求1
TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。

Test Mode Selection Input (TMS) -----强制要求2
TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标准里是强制要求的。TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。

Test Data Input (TDI) -----强制要求3
TDI在IEEE1149.1标准里是强制要求的。TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。

Test Data Output (TDO) -----强制要求4
TDO在IEEE1149.1标准里是强制要求的。TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。

Test Reset Input (TRST) ----可选项1
这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。TRST可以用来对TAPController进行复位(初始化)。因为通过TMS也可以对TAP Controll进行复位(初始化)。所以有四线JTAG与五线JTAG之分。

(VTREF) -----强制要求5
接口信号电平参考电压一般直接连接Vsupply。这个可以用来确定ARM的JTAG接口使用的逻辑电平(比如3.3V还是5.0V?)

Return Test Clock ( RTCK) ----可选项2
可选项,由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地。

System Reset ( nSRST)----可选项3
可选项,与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。

USER IN
用户自定义输入。可以接到一个IO上,用来接受上位机的控制。

USER OUT
用户自定义输出。可以接到一个IO上,用来向上位机的反馈一个状态

由于JTAG经常使用排线连接,为了增强抗干扰能力,在每条信号线间加上地线就出现了这种20针的接口。但事实上,RTCK、USER IN、USER OUT一般都不使用,于是还有一种14针的接口。对于实际开发应用来说,由于实验室电源稳定,电磁环境较好,干扰不大。

20pin的JATG接口如下图:

20pin的(实际上只有5个有用,这个是5pin扩展成了20pin)SWD接口如下图:

串口下载方式

我们首先要知道利用串口下载程序需要CH340这款芯片(因为电脑的电平是高:-12V,低:+12V的),而STM32这款单片机它的电平是高:3.3V,低:0V。因此为了匹配电平就需要这款芯片的帮助,当然其他的芯片也可以实现,不过CH340是我们最常用的。我学习使用的串口是USART1:

然后我们需要知道ISP,ISP指电路板上的器件不需要取下来就可以进行就可以进行程序擦除或者再编程。(使用ISP的时候其实利用了ARM公司提供的一种自举程序(BootLoader),它存储在系统存储器中,它的任务就是通过串行外设把程序下载到内部Flash中)。

ISP普通下载:
1、连接好电脑和单片机后.
2、将BOOT0和BOOT1分别设置为高电平和低电平(启动方式2从系统存储器启动,因为自举程序在这里)。
3、复位单片机,就可以进行下载程序。
4、下载完成后,把将BOOT0和BOOT1都设置为低电平,然后复位单片机启动(让单片机从启动方式1方式从Flash处启动)。

ISP一键下载:
首先了解下载一键下载的原理图(这里默认BOOT0和BOOT1是接了地,通过上位机改变BOOT0即可改变启动方式)

可以发现通过改变DTR和RTS就可以实现程序下载和单片机复位。这里要知道改变DTR和RTS是通过mcuisp这个软件,本来我们是设置DTR高电平让单片机复位、RTS设置低电平让单片机去下载程序,但是由于注意这个软件默认的电平是232电平,和TTL电平是反过来的。所以我们在这个软件处选择DTR低电平复位,RTS高电平下载程序。原理图中的U18这块芯片是为了防止刚刚上电的瞬间因为电流的不稳定,让电路多次进行ISP下载。

上面提到了启动方式:

1:方式1是最常用是启动方式
2:方式2是串口下载的启动方式
3:方式3是SRAM的调试和启动

STM32程序DAP下载方式和串口下载方式分析相关推荐

  1. STM32程序的常用的两种烧录方式

    STM32有两种常用的烧录方式,一是利用JLink和STLink调试下载,二是利用串口线直接下载 一.ISP(In-System Programming) 在系统编程,使用引导程序(Bootloade ...

  2. 基于STM32的TFDU4101红外通信IRDA+串口DMA方式

    最近项目开发要求用到近距离红外通信,需要实现两个红外设备的数据传输.于是开发完成后,简单对过程进行一个记录. 一.关于IRDA红外串口通信 IrDA是红外数据组织(Infrared Data Asso ...

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

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

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

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

  5. STM32程序下载——ISP下载

    ISP (Iin-System Programming)在系统可编程,ISP是一种通用的程序下载方式. 串口下载方式即ISP方式.在PC端可以通过专用软件,比如FlyMCU.MCUISP等,通过串口将 ...

  6. 中科蓝讯蓝牙: DownLoader下载调试及串口模块注意事项

    目录 1. DownLoader功能简述 2. 软件打印配置IO选择 (更改后请重新编译) 3. CP2102 串口模块使用注意事项(建议安装蓝讯提供的串口驱动) 4. 芯片如何进入串口升级模式 4. ...

  7. STM32开发板串口 ISP 方式下载程序

    STM32开发板无下载电路也可以下载程序方法 自己设计的stm32开发板,手上无下载器,也没有板载的一键下载电路的情况下解决下载程序方法? 必须具备的条件:USB-TTL模块一个,板上预留有boot0 ...

  8. 通过USB转TTL串口下载stm32程序

    文章目录 前言 一.硬件及其接线 二.使用步骤 1.主芯片STM32F103C8T6开发板 2.转串口模块接线 3.CH340驱动及安装方法 4.CH340驱动及安装方法 4.下载测试 5.0.91寸 ...

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

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

最新文章

  1. python中文意思k-对python中的*args与**kwgs的含义与作用详解
  2. 50个直击灵魂的问题_直击保险人灵魂的五个问题,你怎么回答?
  3. 身份证识别——iOS端实现身份证检测
  4. Android的Gson的使用方法,实现Json结构间相互转换
  5. js md5加密脚本
  6. pandas read_csv 出现中文乱码
  7. android手机评测,Android手机 三大浏览器对比评测
  8. java xmlutil_XmlUtil工具类(toxml()和toBean())
  9. 阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军
  10. Windows10下VB6.0开发——ini文件存储参数信息
  11. 解决keil注册机在win10无法打开问题
  12. EMeeting会议预约系统软件,会议预约新方案
  13. FishC笔记—21 讲 函数:lambda表达式
  14. 机械电子计算机哪个更适合创业,二本 电气工程及其自动化,和机械电子工程 哪个专业技术性很强,更好就业,更适合考研。...
  15. 计算机管理软件禁止玩游戏,电脑有没有禁止玩网络游戏,但可以上网的软件?...
  16. 无限的可能的投资回报率
  17. 年薪60w的程序员与年薪6w的极品程序员,差距怎么这么大呢?
  18. Airpods Pro连接Macbook Pro偶尔会没有声音
  19. 解决:Notepad++搜索不到(无法安装)Finger Text插件
  20. android 机器人动画,画一个可以动的Android 小机器人

热门文章

  1. 教你上电脑课怎么摆脱老师的控制
  2. PHP goto语句加密的解密全过程(实战)
  3. 夜间灯光影像区域稳定像元提取
  4. Nowcoder B. 找山坡
  5. 怎么把一个excel拆分成多个
  6. Solidworks安装SW2URDF插件安装后无法正常加载问题
  7. 冻干机温度验证的重要性
  8. mac http_load的安装和使用
  9. 管家婆分销ERPV3A8本币科目余额表和凭证明细数据不平衡,不能结账!
  10. 手把手教你如何使用labview电脑自己玩微信跳一跳,刷分最高1300