当前位置: 首页 > news >正文

【STM32笔记】:P03 ISP 一键下载电路详解

目录

  • 【野火】一键下载电路
  • 【原子】一键下载电路


【野火】一键下载电路

ISP 普通下载


现在我们针对 USART1 的 ISP 进行分析,通常的 ISP 的步骤如下:
①、电脑通过 USB 转串口线连接 STM32 的 USART1,并打开电脑端的上位机;
②、设置跳线保持 BOOT0 为高电平,BOOT1 为低电平;
③、复位单片机使其进入 Bootloader 模式,通过上位机下载程序;
④、下载完毕,设置跳线保持 BOOT0 为低电平,BOOT1 为低电平;
⑤、 复位单片机即可启动用户代码,正常运行。


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

在这里插入图片描述
在这里插入图片描述

BOOT 配置


在 ISP 下载电路中,我们需要配置 BOOT 引脚,有关 BOOT 引脚不同的配置会产生不同的启动
方式,见下表。
在这里插入图片描述

ISP 一键下载


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

①、通过上位机控制 U6(CH340G) 的 RTS 脚为低电平,Q1 导通,BOOT0 的电平上拉为高电平。

②、通过上位机控制 U6(CH340G) 的 DTR 脚为高电平,由于 RTS 为低电平,Q2 导通,U18 的 2 脚为低电平,U18 为一个模拟开关,使能端由 4 脚控制,默认高电平,U18 的 1 脚和 2 脚导通,所以 NRST 为低电平系统复位。

③、单片机进入 ISP 模式,此时可以将 DTR 脚设置为低电平,RTS 设置为高电平。Q1 和 Q2 为截至状态,BOOT0 和 NRST 还原默认电平。

④、上位机将程序下载到单片机,下载完毕之后,程序自动运行。

⑤、至此,很多人还会认为 U18、Q1、Q2 是多余的,用 U6 的 RTS 和 DTR 直接控制也可以。正常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬间如果 USB 转串口连接了电脑,DTR 和 RTS 的电平是变化的,如果不处理好,单片机会一直进入 ISP 模式,或者系统会复位多次,这种情况是不允许的。

⑥、于是,就有了我们全新的一键 ISP 电路。我们主要是分析上电瞬间的逻辑关系,单片机上电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的,但是也有一个规律就是:只要 RTS 为低电平的时候,DTR 的电平也是低,因此一般情况 Q2 不会导通,但由于这两个 IO 口的电平存在“竞争冒险”,会出现 RTS 的下降沿的时候刚好遇到 DTR 的上升沿,这个时候 Q2 导通,导致系统复位,而 BOOT0 此时有可能也为高电平,就会进入 ISP 模式。这个是不受我们控制的,我们不想系统出现这样的情况。因此加入了模拟开关来切断这种干扰。

⑦、 加入模拟开关 U18,通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面我们分析一下延时开关电路,上电瞬间,电容 C65 通过电阻 R18 来充电,由于电阻 100k 很大,电容的充电电流很小,等电容充电达到 U18 的 4 脚的有效电平 2V 时,大概耗时 1S,在这个1S 时间内 U18 的模拟开关是断开的,因此 RTS 和 DTR 的干扰电平不会影响到系统复位。系统正常运行。

【原子】一键下载电路

ISP 一键下载


相比与野火,原子的策略其实就没有去解决竞争冒险的这个 bug 问题,因为他知道应该很少人去使用到串口下载程序。所以,在硬件设计这块,我推荐野火,相比较而要,更加严谨,虽然这个竞争冒险问题可能存在比较小的概率,但是这种细致的研究精神值得我们学习。

在这里插入图片描述

http://www.dtcms.com/a/502953.html

相关文章:

  • 江苏省网站建设哪家好php做的购物网站
  • 常见的位运算的总结
  • CSRF(跨站请求伪造)攻击详解:原理、途径与防范
  • 【C++】使用双指针算法习题
  • 全能型 AI 模型新标杆 Qwen2.5-Omni
  • 建设银行佛山分行网站wordpress插件 评分
  • 大数据计算引擎-从源码看Spark AQE对于倾斜的处理
  • 前端基础知识---Ajax
  • 数据结构——多维数组的存储
  • 编译django做的网站网站制作 价格
  • 破解商家客服困局:真人工AI回复如何成为转型核心
  • 【Qt开发】多元素类控件(二)-> QTableWidget
  • 如何建设一个优秀的电商网站自己怎么创建微信公众号
  • 【成长纪实】Flutter中Dart 与Harmony中 ArkTS 异步编程对比:从 Future 到 Promise
  • ARMv7-A 移植 FreeRTOS 栈帧初始化
  • ARMv7-A 移植 FreeRTOS 中断和临界区管理
  • STM32中PB4引脚作普通GPIO使用的一个小问题
  • 网站怎么看哪个公司网站建设海口网站开发制作
  • 【踩坑记录】从“正在还原所需的工具包”说起:一次 .NET 工程包还原失败的完整排查实录
  • 阳山做网站什么网站做视频
  • 虚幻引擎虚拟制片入门教程目录
  • Eclipse 快速修复指南
  • 【从0开始学习Java | 第22篇】反射
  • WEBSTORM前端 —— 第5章:Web APIs —— 第1节:Dom获取属性操作
  • 第 167 场双周赛 / 第 471 场周赛
  • 聊聊 Unity(小白专享、C# 小程序 之 加密存储)
  • 如何推销网站分销商城开发多少钱
  • 大型的营销型网站建设做国外网站翻译中国小说赚钱
  • 论文学习_PalmTree: Learning an Assembly Language Model for Instruction Embedding
  • 基于PSO-BP粒子群优化神经网络+NSGAII多目标优化算法的工艺参数优化、工程设计优化(三个输出目标案例)!(Matlab源码和数据)