STM32接入CH340芯片的升级电路及初始化进入升级模式(死机)问题处理

1. 问题描述

我所用的CH340G(CH340K也用过)接在MCU的电路中,在插入CH340G/K 的接插件(TYPE-C或其他)后MCU就会卡死,这种现象实际上是MCU进入了升级模式导致的。
解决方式从CH340G/K 的升级电路入手。

2. 问题分析

2.1 CH340G/K 的初始化波形

初始化波形:

  1. RST#,CH340G的RST#引脚,低电平有效(正常情况是高电平);
  2. DTR#,CH340G的DTR#引脚,低电平有效(正常情况是高电平);

在这里插入图片描述

2.2 第1种USB升级电路

此电路简单:

  1. CH340G/K 的DTR# 接-> MCU-BOOT0
  2. CH340G/K 的RTS# 接-> MCU-REST
  3. CH340G/K 的 RST# 直连 MCU-REST,并上拉直3.3V;
  4. CH340G/K 的 DTR# 直连 MCU-BOOT0,并下拉直地;

升级,时配置:

在这里插入图片描述

出现问题:
MCU正常工作时,插入TYPE-C瞬间,CH340G/K 初始化,初始化波形如第2.1章节。
此时,在RST#上升沿结束时,即MCU复位完成时,DTR为高电平,即BOOT0为高电平,MCU进入升级模式,问题出现了。

这种电路可以正常升级,只要不插入TYPE-C 或其他CH340G/K 的接口 可以正常工作。

2.3 第2种USB升级电路

把第一种电路反过来连接,也不行,原因是,DTR#和RST#是同时完成上升沿动作的。

这种电路可以正常升级,只要不插入TYPE-C 或其他CH340G/K 的接口 可以正常工作。

2.4 第3种USB升级电路

在第1种电路的基础上,将DTR#反向,即利用PNP三极管电路:

这样做的目的是在 MCU-REST 完成上升沿后检测到的 MCU-BOOT0 电平为低电平,R51不焊。

CH340G/K 的 RST# 直连 MCU-REST,并上拉直3.3V;

在这里插入图片描述

结果,发现也不行,现象同上。

这种电路可以正常升级,只要不插入TYPE-C 或其他CH340G/K 的接口 可以正常工作。

2.5 第4种USB升级电路

如2.4章节,CH340G/K 的 RST#结束上升沿时,MCU-BOOT0检测到的电平为低电平,问题依旧,故问题应该在波形另一端,波形开始位置,MCU-REST 应该最先拉低???
试一下,在2.4章节的基础上,将CH340G/K 的 RST# 与 DTR# 反接:

CH340G/K 的 DTR# 直连 MCU-REST,并上拉直3.3V;
在这里插入图片描述
上电,插入TYPE-C ,MCU不再死机,继续正常工作。

注:这种电路存在一个问题,插入TYPE-C时 ,MCU虽不再死机,但是会重启,这是因为 DTR# 直连MCU的RESET引脚,一旦CH340G/K初始化,MCU将会复位。

此时,CH340G/K 的升级配置应为:

在这里插入图片描述

升级时,CH340G/K 的 引脚状态:

在这里插入图片描述

2.6 第5种USB升级电路

由第4种升级电路可知,在CH340G/K 初始化时,CH340的DTR#脚控制MCU的RESET引脚,因为MCU完成复位时,MCU的BOOT0为低电平,MCU不会进入升级模式,但问题在于在CH340G/K 初始化时,MCU依旧会复位,也就是插入TYPE-CMCU就会重启,在某些情况下,这个不是我们想要的结果。

由章节2.1中的初始波形图片可知,CH340G/K 的 DTR# 先拉低,DTR# 和 RTS# 同时拉高,DTR# 低电平保持时间较长,为防止 DTR# 的低电平造成MCU复位,可以通过 RTS# 控制 DTR#,也就是在 RTS# 为低电平器件,使 DTR# 无法下拉至低电平。

在章节2.5中的电路基础上增加PNP三极管,如下图:

在这里插入图片描述

  1. 在 RTS# 为高的情况下,MCU的NRST无法被拉低,因为三极管无法截止,MCU不会复位;
  2. 在 RTS# 为低的情况下,DTR# 为低,三极管无法截止,MCU不会复位;

在这里插入图片描述

其他部分电路:

BOOT0控制部分:

在这里插入图片描述

复位部分:复位里面的电容可能对启动造成延时,导致MCU启动失败,必要时去掉或者选择容值较小的电容

在这里插入图片描述

插入TYPE-C 后,MCU引脚电平变化:

在这里插入图片描述
可知,RESET不会被拉低,MCU不会复位;
经过观察,插拔TYPE-C数据收发正常,不会中断。

此时,CH340G/K 的升级配置应为:

在这里插入图片描述

注: 如果电路走线过长可能导致电平略微延时造成误触发,可在下图位置加入100nF(可调)的电容;

在这里插入图片描述

2.7 整理一下最终的电路形态

图1

在这里插入图片描述

图2

在这里插入图片描述

3. 总结

在 CH340G/K 初始化时:

  1. MCU-REST 在 MCU-BOOT0 处于低电平状态下,进行下拉操作,在MCU-REST 与 MCU-BOOT0 恢复正常电平时,将导致MCU死机,MCU-REST 先于 MCU-BOOT0 下拉可解决该问题;
  2. MCU-REST 在 上升沿结束时将判断 MCU-BOOT0 的状态,MCU-BOOT0 处于高电平,MCU死机,MCU-BOOT0 处于低电平 MCU 正常;
  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: STM32 CH340C是一种常见的单片机开发板,它具有USB转串口功能。一键下载电路是指通过一个简单的操作就可以将程序下载到STM32芯片中。 在STM32 CH340C开发板上,一键下载电路一般由两部分组成:USB转串口芯片和串口下载电路。USB转串口芯片CH340C)将电脑的USB信号转换成串口信号,使得开发板可以与电脑进行通信。串口下载电路包含了下载复位电路和BOOT0电平切换电路。 一键下载电路的工作原理如下: 1. 首先,将开发板连接到电脑的USB接口上。此时,USB转串口芯片会自动识别,电脑会安装相关的驱动程序。 2. 在电脑上打开开发环境(如Keil或Arduino),编写好程序并编译生成二进制文件。 3. 在下载之前,需要在开发板上设置好BOOT0电平。一般情况下,将BOOT0电平设置为高电平,以选择从系统存储器(Flash)运行。这可以通过开发板上的跳线或按钮进行设置。 4. 点击开发环境的下载按钮,软件会自动将二进制文件发送给USB转串口芯片。 5. USB转串口芯片接收到二进制文件后,会将其传输到开发板上的串口下载电路中。 6. 串口下载电路会负责将接收到的二进制文件写入STM32芯片的Flash存储器中。 7. 下载完成后,系统会自动复位,并从Flash存储器中运行程序。 通过使用一键下载电路,我们可以方便地将程序下载到STM32 CH340C开发板中,实现了快速开发和调试的功能。 ### 回答2: STM32 CH340C一键下载电路是一种特殊的电路设计,用于在将程序烧录到STM32芯片时简化操作步骤。 常规的STM32芯片下载需要连接多个引脚和设备,如SWD引脚、串口线以及ST-Link下载器等。而CH340C是一种USB转UART芯片,可以将USB接口转换为串口通信接口。一键下载电路利用CH340C芯片可以直接通过USB接口与计算机进行通信,从而简化了下载过程。 一键下载电路的工作原理如下:首先,将STM32芯片的BOOT0引脚接地,将芯片设置为下载模式;然后,通过USB线将CH340C芯片与计算机连接;接下来,使用串口助手或其他下载软件选择正确的串口号和波特率;最后,将需要烧录的程序文件发送给STM32芯片CH340C芯片会将接收到的数据解码并通过SWD接口将程序烧录到芯片中。 这种一键下载电路能够简化STM32芯片下载的步骤,方便了开发者和工程师。通过仅需连接一个USB线即可完成下载的操作,提高了开发效率。而且该电路设计成本较低,具有较好的可靠性和稳定性。 总的来说,STM32 CH340C一键下载电路通过利用CH340C芯片将USB接口转换为串口通信接口,简化了STM32芯片下载的操作步骤,提高了开发效率和便利性。 ### 回答3: STM32 CH340C一键下载电路是一种用于STM32单片机CH340CUSB转串口芯片之间的下载电路。它的主要功能是通过USB接口实现电脑与STM32单片机之间的通信和程序下载。 该电路主要由以下几个部分组成: 1. CH340C芯片CH340C是一种USB转串口芯片,它具有USB转串口和USB转I2C功能。它可以将PC机上的串口数据转换为STM32单片机能够识别的串口信号。 2. USB接口:该电路使用USB接口连接电脑和下载电路,实现电脑与STM32单片机之间的通信。USB接口提供了数据传输和电力供应的功能,通过USB线缆将数据发送到STM32单片机。 3. 下载线:下载线连接CH340C芯片STM32单片机,用于传输程序到STM32单片机。下载线上的引脚按照标准规定连接STM32单片机的BOOT0、BOOT1和NRST引脚上,以实现下载功能。 在使用STM32 CH340C一键下载电路时,首先需要通过USB线缆将电脑和下载电路连接起来。然后,使用合适的下载软件配置相关参数并选择下载模式,比如串口或I2C。接下来,将STM32单片机连接到下载线上,将下载线的引脚正确插入到STM32单片机的BOOT0、BOOT1和NRST引脚上。最后,点击下载软件上的下载按钮,软件会将程序通过下载线传输到STM32单片机,完成程序下载。 总而言之,STM32 CH340C一键下载电路通过USB接口实现了电脑与STM32单片机之间的通信和程序下载功能,方便了开发人员进行STM32单片机的开发和调试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuDvei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值