基于CH343的一种自动烧录模式电路设计分析

目录

前言

一、硬件基础

二、烧录模式时序

总结

前言

这段时间学习ESP32,手里有一块微雪的ESP-32P4的开发板,对其中的串口烧录电路产生了一些疑惑。经过多种分析,找到了一种自洽方案,记录一下,同时也有一定的参考意义。


一、硬件基础

USB串口信号主要是一对差分信号,想要实现和芯片之间的通信,需要转换成UART串口信号。而CH343是一款由沁恒微电子(WCH)推出的USB转串口芯片,主要用于实现USB接口与UART(通用异步收发传输器)之间的双向通信。该芯片内置USB控制器和UART控制器,支持多种波特率配置,适用于工业控制、嵌入式设备调试等场景。

CH343不仅可以用来实现芯片和计算机之间的双向通信,还可以复位芯片并选择使其进入下载模式,从而烧录新的固件。这 一功能可通过设置虚拟串口的 RTS 和 DTR 线来实现。下图是CH343的外围电路图。

第一张图很好理解,只要用过这类芯片的同学都看得懂。D+和D-接到USB的差分信号上;RXD和TXD接到芯片的UART串口IO上。所以这就能实现通信了,但第二张图是RTS 和 DTR外围设计图,来看一下如何实现的。

二、烧录模式时序

ESP_EN是芯片的复位引脚,GPIO35是芯片的BOOT引脚。ESP32-P4 进入下载模式的必要条件是:

  • 先拉低 BOOT (GPIO35=L)(让芯片复位时采样到下载模式)
  • 再拉低 EN (ESP_EN=L)(触发芯片复位)
  • 保持两者同时为低至少 10ms
  • 先释放 EN (ESP_EN=H)(芯片重启,采样 BOOT 电平)
  • 最后释放 BOOT (GPIO35=H)

其中最重要的是当ESP_EN 上升沿后检测BOOT的电平,如果是低电平则进入下载模式。

那对我们这个电路分析一下RTS 和 DTR电平对应ESP_EN和GPIO35的电平。如下图。

DTR RTS Q3 状态 ESP_EN Q4 状态 GPIO35
H H 截止 H 截止 H
H L 导通 L 截止 H
L H 截止 H 导通 L
L L 截止 H 截止 H

芯片的RTS 和 DTR时序如下

那么此时的BOOT和ESP_EN电平变化如下,怎么看都不符合进入下载模式的电平要求。

我们再回看第二张图,发现ESP_EN和GPIO35是通过RC电路实现电平变化的。时间常数如下。

引脚 电容 上拉电阻 时间常数 τ = R×C
ESP_EN 1uF 10kΩ 10k×1uF = 10ms
GPIO35 NC/100nF 4.7kΩ 4.7k×100nF = 0.47ms(甚至更小)

因为电容两端电压不能突变,电平变化时间为2.2RC,所以ESP_EN的一个跳变沿的时间是22ms,实际中GPIO35的电容没有接,可以看成瞬间变化。那么把这一部分时间加入到上图时序中如下:

再ESP_EN从低电平跳变到高电平需要花费至少22ms,按芯片高电平压阈值一般在2.3V左右,也就是需要上升到3.3V的70%,按公式,计算得 t = 1.2RC = 12ms。加上三极管还有结电容和开关速度,最后的值只会大于这个数。从而满足:保持两者同时为低至少 10ms,的要求。电路能够实现进入下载模式实现烧录。


总结

以上电路设计从理论上能实现烧录功能,实际上更是没问题。但电路设计的有些复杂和极限,不知道是不是还有其他角度的问题需要考虑。

本文我不确保我分析角度的一定准确,只是找到了我自己知识点的一种自洽,这种自洽足够说服我自己。但仅供大家参考

相关推荐
iCxhust5 小时前
8086/8088单板机VSCode集成自动下载功能(完善串口接收显示版)
ide·vscode·单片机·编辑器·微机原理·8088单板机·8086单板机
振南的单片机世界6 小时前
从数码管到点阵屏:动态扫描加595,3个IO驱动256个LED
stm32·单片机·嵌入式硬件
listhi5206 小时前
STC8 16通道模拟采集 + 4路串口 + 8路PWM 程序
stm32·单片机·嵌入式硬件
星夜夏空996 小时前
STM32单片机学习(4)——嵌入式概述
stm32·单片机·学习
Deitymoon7 小时前
STM32——OLED显示字符串
单片机·嵌入式硬件
Graceful_scenery8 小时前
龙芯2k0300 - 走马观碑组按键驱动移植
单片机·嵌入式硬件
d111111111d8 小时前
MQTT+STM32+ESP8266网络程序分层+韦老师
笔记·stm32·单片机·嵌入式硬件·学习·php
长安第一美人8 小时前
RT-Thread 工业屏驱动开发实战:UART 串口屏协议解析 + 数据实时刷新 + 设备驱动框架完整实现
驱动开发·嵌入式硬件·rt-thread·工业控制·uart通信·串口屏驱动
LDR0068 小时前
突破快充壁垒,赋能全场景体验——LDR6600 2C1A快充协议芯片重磅来袭
嵌入式硬件
weixin_457943308 小时前
arduino-舵机驱动
单片机·嵌入式硬件