免外围电路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)

大家都在看

  • SQL55 分页查询employees表,每5行一页,返回第2页的数据

    LIMIT子句 本题链接表结构如下所示。 +——–+————+——&#8…

    Linux 2023年6月13日
    092
  • 函数指针的重要用途——回调函数

    什么是回调函数? 粗暴的说,如果一个函数作为另一个函数的参数传入,这种函数就可以称为回调函数(这句话并不严谨,但为了说明问题可以这么理解)。C语言里面,一般就是一个函数的参数列表中…

    Linux 2023年6月8日
    0103
  • 2021年3月-第02阶段-前端基础-移动WEB开发-移动WEB开发_rem布局

    移动web开发之rem布局 rem基础 rem单位 rem (root em)是一个相对单位,类似于em,em是父元素字体大小。 不同的是rem的基准是相对于html元素的字体大小…

    Linux 2023年6月8日
    0110
  • Nginx基础入门篇(3)—返回状态码详解

    一般常见返回状态码 200 – 服务器成功返&a…

    Linux 2023年6月6日
    0102
  • 阿里云函数-爱奇艺签到

    简介 是否支持多账号:是消息推送平台:PUSHPLUS 代码 -*- coding: utf8 -*- import requests,random,string,hashlib,…

    Linux 2023年6月7日
    089
  • Python schedule 库定时任务

    Python schedule 库定时任务 schedule的使用 用于scrapy定时任务设置 import schedule import time def job(): pr…

    Linux 2023年6月13日
    0101
  • MySQL slow log 慢日志

    sql慢日志用于记录执行时间超过指定阈值的SQL,对于系统性能和故障排错非常有帮助 1.如何开启sql慢日志 –开启slow log …

    Linux 2023年6月6日
    079
  • Go-channel

    (1)channel本质就是一个数据结构——队列 (2)数据先进先出 (3)线程安全,多goroutine访问时,不需要加锁,channel本身就是线程安全的 (4)channel…

    Linux 2023年6月8日
    0109
  • MYSQL快速安装整理

    【检查是否已安装过】 find / -name mysql 【快速安装开始】 groupadd mysql ;useradd -g mysql mysql;cd /usr/loca…

    Linux 2023年6月6日
    071
  • LAXCUS授权开源协议

    LAXCUS 授权许可证 第1版 本许可证仅针对LAXCUS分布式操作系统和衍生子版本,围绕LAXCUS分布式操作系统设计开发的硬件、硬件驱动程序、应用软件不受本许可证约束。 您对…

    Linux 2023年6月6日
    0125
  • 【深度学习】PyTorch Dataset类的使用与实例分析

    Dataset类 介绍 当我们得到一个数据集时,Dataset类可以帮我们提取我们需要的数据,我们用子类继承Dataset类,我们先给每个数据一个编号(idx),在后面的神经网络中…

    Linux 2023年6月13日
    099
  • Linux 进程卡住了怎么办?

    在我们使用 Linux 系统时,如果网络或者磁盘等 I/O 出问题,会发现进程卡住了,即使用 kill -9 也无法杀掉进程,很多常用的调试工具,比如 strace, pstack…

    Linux 2023年5月27日
    089
  • 给你的计算机集群加一道安全屏障

    之前的LAXCUS集群操作系统系列文章介绍过,LAXCUS把集群分成内外两个网络环境。内网归管理员掌控,外网由用户操作,中间由网关连接,网关起着反向代理的作用,负责转发内外网络的通…

    Linux 2023年6月6日
    0100
  • Linux命令篇-curl 命令

    curl 查看网页源码 自动跳转 显示头信息 通信过程 下载文件 断点续传 获取天气 curl 查看网页源码 直接在curl命令后加上网址,就可以看到网页源码。 $ curl ww…

    Linux 2023年6月13日
    0111
  • Linux内核驱动–硬件访问I/O【转】

    寄存器与内存 寄存器和内存之间有什么区别? [En] What is the difference between registers and memory? 寄存器和RAM的主要…

    Linux 2023年5月27日
    075
  • 1. 文件与I/O

    内核是如何处理系统调用 每个系统调用被赋予了一个系统调用号 在i386平台上,执行一个系统调用是通过int 0X80指令完成的 eax存放系统的调用号 ebx,ecx,edx,es…

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