免外围电路ESP32/ESP8266系列单片机串口一键下载方案

一、概述

CH340X、CH343、CH342等USB转串口芯片支持免外围电路ESP32/ESP8266等单片机串口一键下载功能,对此类支持多模式启动的单片机,无需外围三极管等逻辑控制电路,将芯片提供的输出信号脚直连MCU的BOOT控制引脚(GPIO0)与CHIP_PU芯片使能引脚(EN)即可实现MCU BOOT和APP模式的控制切换和固件下载。

二、方案特点

  • 电路精简可靠,串口上电、掉电、打开、关闭等操作均不影响MCU运行模式。传统一键下载电路需要2个三极管配合使用以保持BOOT常态低电平以及防止串口软件开关时MCU误复位或误进BOOT下载模式。
  • ESP系列单片机原有下载软件可直接使用,无需更改。
  • 支持自动下载。利用USB的热插拔特性和CH343PT库,可在软件端实现USB设备插入后自动下载。
  • 提供QFN16、ESSOP10、SOP16等封装,还可定制封装。
  • CH340X支持5V耐压和防向内电流倒灌。
  • CH343支持串口IO独立供电,可支持5V/3.3V/2.5V/1.8V等串口通讯,支持防向内电流倒灌。待机模式下最低功耗仅2uA。

三、下载原理及电路说明

ESP系列MCU启动模式:

GPIO0(默认上拉)GPIO2(默认下拉)说明 0 0 下载启动模式 1 X FLASH启动模式

MCU为低电平复位,硬件上需要满足MCU复位后自动进入”串口下载”模式。下载时序示意图:

CH340X/CH343P和MCU串口连接参照:

CH340X/CH343P引脚ESP32/8266系列MCU引脚 DTR GPIO0 RTS CHIP_PU TXD RXD RXD TXD

基于CH340X实现的ESP32/8266系列MCU一键下载电路

基于CH343P实现的ESP32/8266系列MCU一键下载电路

进行一键下载时,计算机端下载软件打开串口,先设置DTR#(IO0)为低电平、设置RTS#(EN)为低电平、再高电平,MCU自动复位进入BOOT下载程序。下载完成后,需恢复DTR为高电平、设置RTS#(RESET)为低电平、再高电平,MCU自动复位后正常运行应用程序。

四、下载软件及演示效果

ESP32系列单片机配合flash_download_tool软件下载演示

Original: https://www.cnblogs.com/WCH-SoftGroup/p/16520758.html
Author: WCH_SoftGroup
Title: 免外围电路ESP32/ESP8266系列单片机串口一键下载方案

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581695/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 嵌入式软件架构设计-消息交互

    1、前言 在熟悉任务调度、程序分层和模块化编程关于软件架构、分层和模块设计后,除了函数调用设计中出现的情况外,还会遇到同层模块之前如何进行消息交互,通常是应用层之间。 比如一个设备…

    Linux 2023年6月7日
    0103
  • 主机存活探测程序

    一、ICMP协议原理 什么是icmp协议 因特网控制报文协议ICMP(Internet Control Message Protocol)是一个差错报告机制,是TCP/IP协议簇中…

    Linux 2023年6月7日
    099
  • C++ 之处理模板化基类的成员名称

    问题描述 假设有下面这么一段简单的代码,其中定义了两个类模板,一个基类 Animal,一个派生类 Dog: #include #include using namespace st…

    Linux 2023年6月7日
    096
  • 操作系统实战45讲- 02 几行汇编几行C:实现一个最简单的内核

    本节源代码位置https://gitee.com/lmos/cosmos/tree/master/lesson02/HelloOS Hello OS 之前,我们先要搞清楚 Hell…

    Linux 2023年6月7日
    089
  • 30道关于linux的基础命令小题,先练练手

    1.修改主机名为yuanlai0224命令是: 2.切换⽬录到/yuchao01/data/,再创建脚本/my_website/scripts/start.sh。 绝对路径、相对路…

    Linux 2023年5月27日
    096
  • Linux系统调用接口

    Linux系统调用接口 进程控制 系统调用 描述 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 终止进程 _exit 立即终止…

    Linux 2023年6月13日
    0100
  • Error: Unable to access jarfile 运行jar包报错

    1、可能是执行路径有误 错误 修改后,需使用绝对路径 2、决解1后,还报以下错误,就是你的安装的JDK与jar包中的JDK不是同一版本。idea中有自带的JDK与我们安装的JDK版…

    Linux 2023年6月14日
    0914
  • 001 研发同学必学哪些 Linux 命令?

    身为研发同学,Linux 是绕不过去的一个小山包,不是说要掌握的十分精通,在程序员界里做个极客,也不是说要抢了 Devops 同学的饭碗,但至少要做到摆脱对 Linux 命令认知的…

    Linux 2023年5月27日
    082
  • Redisson 分布式锁实战与 watch dog 机制解读

    源地址:https://www.cnblogs.com/keeya/p/14332131.html Original: https://www.cnblogs.com/SimonH…

    Linux 2023年5月28日
    0109
  • CentOS 文件管理

    一、目录管理 1.1、目录结构 1.2、切换目录 1.3、查看目录 1.4、创建目录 1.5、复制目录 1.6、剪切目录 1.7、删除目录 二、文件管理 2.1、查看文件 2.2、…

    Linux 2023年5月27日
    0157
  • MySQL主从复制的原理和实现

    垂直扩展: 横向扩展: 复制:使每一个节点都有相同的数据集 MySQL复制的实现:使用二进制日志来实现 提高性能(负载均衡)、 实现读写分离 实现数据备份的功能(实时备份) 高可用…

    Linux 2023年6月7日
    098
  • 前端基础之JavaScript(一)

    一、JavaScript概述 1.1 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者–Netscape公司,决定将Ja…

    Linux 2023年6月14日
    0105
  • 微服务,【容器亚健康状态】问题,研究和解决

    —【前言】— 我问:”程序有『亚健康状态』吗?” 一个正常的人,应该这样回答:”什么?程序,亚健康。。。?你神经病吧?我…

    Linux 2023年6月14日
    082
  • 《分布式系统原理介绍》读书笔记

    1、在大型集群中每日宕机发生的概率为千分之一左右;在实践中,一台宕机的机器恢复时间通常认为是 24 小时。 2、由于网络数据丢失的异常存在,直接决定了分布式系统的协议必须能处理网络…

    Linux 2023年6月16日
    099
  • python 对文件操作

    实现对文件的简单操作 #!/usr/bin/env python -*- coding:utf-8 -*- def Find(class_name): class_list = […

    Linux 2023年6月13日
    0119
  • 百度云虚拟主机BCH安装PHP框架CodeIgniter

    注意:fastcgi_param SCRIPT_FILENAME /home/bae/app/index.php;这一项中的路径,这个百度云虚拟主机的手册有说明。 将该配置文件(b…

    Linux 2023年6月13日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球