[硬件]单片机下载电路讲解-以ch340为例

首先我们明确要实现的效果:

实现 CH340 通过 Type - C 接口下载程序到单片机

1、前置知识

首先我们要知道 ch340 和typec的作用分别是什么

CH340 作用(usb-ttl)

CH340 是一种 USB 转串口芯片 。其主要作用是实现 USB 总线与异步串行接口之间的转换,充当 USB 转串口或 USB 转打印口的桥接器。通过它,计算机能利用 USB 接口与外部串行设备(如单片机开发板、嵌入式系统、工业自动化设备、老式串行设备等 )进行通信。具体表现为:

将设备的串口信号转换为 USB 信号,使没有串口的计算机能通过 USB 与串口设备相连,拓展计算机的连接能力。比如为没有内置 USB 功能的微控制器添加 USB 接口,方便编程和调试 。

Type - C 是一种新一代的 USB 接口标准,是物理层面的。

2、电源接线

略,注意共地就行。

3、数据线连接

3.1   CH340与主机(如电脑 )之间的数据交互

D + 和 D - 差分信号和主机电脑进行交互

CH340 芯片的 D+(一般是 5 号脚 )和 D-(一般是 6 号脚 )引脚,对应连接到 Type - C 接口中的 D + 和 D - 引脚。这两根线用于 USB 数据信号传输,实现芯片与主机(如电脑 )之间的数据交互。

3.2   CH340 芯片和单片机MCU进行通信

CH340 芯片的 TXD和 RXD和主控MCU的串口连接进行通信

TXD 和 RXD 引脚:CH340 芯片的 TXD(串行数据输出,一般是 2 号脚 )和 RXD(串行数据输入,一般是 3 号脚 )引脚,连接到目标设备(如单片机 )对应的串口接收和发送引脚。比如在 STM32 单片机下载程序场景中,若通过串口 1 下载,CH340 的 TXD 连到 STM32 的 PA10(RX ),RXD 连到 PA9(TX ) 。

3.3自动下载电路引脚

RTS# 和 DTR# 

不使用 RTS# 和 DTR# 引脚的情况

手动操作烧录以一些简单的单片机开发板为例,在烧录程序时,你需要手动按下复位按键,让目标设备进入烧录模式,接着再借助上位机软件把程序烧录进去。在这个过程中,数据的传输通过 D+、D - 、TXD 和 RXD 引脚来完成,RTS# 和 DTR# 引脚不发挥作用。

使用 RTS# 和 DTR# 引脚的情况

实现自动下载功能:当你期望实现自动下载功能时,RTS# 和 DTR# 引脚就非常关键了。在烧录程序前,上位机可以通过控制 RTS# 和 DTR# 引脚的电平,自动控制目标设备进入烧录模式并完成复位操作。例如,在使用 CH340 芯片给 STM32 单片机烧录程序时,借助 RTS# 和 DTR# 引脚的配合,上位机能够自动控制 STM32 单片机进入系统存储器引导模式,从而实现程序的自动下载,这极大地提高了烧录效率,特别是在需要频繁烧录程序的开发过程中优势明显。

3.4  RTS# 和 DTR# 引脚的接线

所需器件

为了实现自动下载功能,通常需要用到三极管、电阻等元件,三极管常被用作电子开关,来控制目标设备(如单片机)的复位引脚和启动模式选择引脚。

接线原理

RTS# 引脚:一般用于控制目标设备进入下载模式。通过改变 RTS# 引脚的电平,经过三极管等组成的电路,控制目标设备的启动模式选择引脚(如 BOOT 引脚)的电平,从而使目标设备进入下载模式。

DTR# 引脚:主要用于控制目标设备的复位。当 DTR# 引脚的电平发生变化时,通过三极管等电路,控制目标设备的复位引脚(如 RST 引脚),实现目标设备的复位操作。

### Keil 中配置 USB to UART Type-C 接口用于程序烧录 为了实现通过USB转UART Type-C接口进行程序烧录,在Keil中的设置主要包括几个方面: 对于硬件连接而言,需确保最小系统板的BOOT跳线处于适当位置以便进入引导加载程序模式。具体来说,应将`BOOT0`设为高电平(即接入3V3),而`BOOT1`保持低电平[^2]。 在实际接线上,采用USB转TTL模块时,应当把该模块的RXD针脚连接到目标板上的PA9引脚(通常对应USART1_TX),TXD则对接PA10(通常是USART1_RX)。这种配对允许数据双向传输。至于电源供应,既可以选择由TTL模块提供也可以采取其他方法来给电路板供电[^3]。 针对Keil环境内的配置工作,虽然Keil本身并不直接处理物理层面上的通信端口管理,但在编译项目并准备下载固件之前,确实有必要确认一些选项。这主要涉及到选择正确的调试器/编程器工具以及指定待上传的目标文件格式(如HEX或BIN)。然而,具体的串口号选择和波特率设定等参数调整是在像FlyMcu这样的第三方烧写工具里完成的。 值得注意的是,当一切就绪之后,用户应该打开选定的烧录工具(如FlyMcu),从中找到代表所使用的USB转TTL设备的那个COM端口,并将其选作当前会话的有效通道。接着按照提示加载来自Keil构建过程产生的最终输出文件——一般是一个`.hex`文件。最后按下“开始编程”,同时触发目标单片机复位即可执行整个烧录流程。 ```python # Python代码仅作为示意,实际上这些操作应在相应IDE或工具中手动完成。 print("确保BOOT0=1, BOOT1=0") # 设置启动模式 print("连接TTL: RXD->PA9, TXD->PA10") # 正确连线 print("选择合适的COM端口") print("加载.hex文件至烧录工具") print("点击'开始编程'") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值