[硬件]单片机下载电路讲解-以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 引脚),实现目标设备的复位操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux入门六:Linux Shell 编程

一、Shell 概述 1. 什么是 Shell? Shell 是 Linux 系统中用户与内核之间的桥梁,作为 命令解析器,它负责将用户输入的文本命令转换为计算机可执行的机器指令。 本质:Shell 是一个程序(如常见的 Bash、Zsh&#xff09…

用shell脚本实现自动监控并封禁连接数超过阈值的IP

写一个 shell 脚本,创建脚本文件 /usr/local/bin/check_conn.sh #!/bin/bash if [[ $EUID -ne 0 ]]; thenecho "This script must be run as root." >&2exit 1 fi # 连接数阈值 THRESHOLD50# 白名单 IP(空格分隔) WHITELIS…

VS 中Git 中本地提交完成,没有推送,修改的内容如何还原

在 Visual Studio 中撤销本地提交但未推送的修改,可以通过以下方法实现: 一、保留修改内容(仅撤销提交记录) 使用 git reset --soft 在 VS 的 Git 终端中执行: git reset --soft HEAD~1作用:撤销最后一次提…

qt中的正则表达式

问题: 1.在文本中把dog替换成cat,但可能会把dog1替换成cat1,如果原本不想替换dog1,就会出现问题 2文本中想获取某种以.txt为结尾的多有文本,普通的不能使用 3如果需要找到在不同的系统中寻找换行符,可以…

Linux命令-vim编辑

用vi或vim命令进入vim编辑器。 基础: u 撤销上一次操作。x剪切当前光标所在处的字符。yy复制当前行。dd剪切当前行。p粘贴剪贴板内容到光标下方。i切换到输入模式,在光标当前位置开始输入文本。:wq保存并退出Vim 编辑器。:q!不保存强制退出Vim 编辑器。 拓展: w光…

VS 基于git工程编译版本自动添加版本号

目录 概要 实现方案 概要 最近在用visual Studio 开发MFC项目时,需要在release版本编译后的exe文件自动追加版本信息。 由于我们用的git工程管理,即需要基于最新的git 提交来打版本。 比如: MFCApplication_V1.0.2_9.exe 由于git 提交信…

nginx入门,部署静态资源,反向代理,负载均衡使用

Nginx在linux上部署静态资源 概念介绍 Nginx可以作为静态web服务器来部署静态资源。这里所说的静态资源是指在服务端真实存在,并且能够直接展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。 相对于Tomcat,Nginx处理…

【字节跳动AI论文】Seaweed-7B:视频生成基础模型的高成本效益培训

摘要:本技术报告介绍了一种经济有效的视频生成基础模型训练策略。 我们提出了一种中等规模的研究模型,大约有70亿个参数(7B),称为Seaweed-7B,使用665,000个H100 GPU小时从头开始训练。 尽管使用适度的计算资…

Java单例模式:实现全局唯一对象的艺术

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、什么是单例模式? 单例模式(Singleton Pattern)是一种创建型设计模式,确保一个类只有一个实例&#xff0c…

Oracle 复制表结构(含索引、主键)操作指南

Oracle 复制表结构(含索引、主键)操作指南 1. 复制基础表结构 -- 创建空表结构(不复制数据) CREATE TABLE new_table AS SELECT * FROM old_table WHERE 10;2. 复制主键约束 -- 查询原表主键信息 SELECT constraint_name, co…

React 更新state中的对象

更新 state 中的对象 state 中可以保存任意类型的 JavaScript 值,包括对象。但是,你不应该直接修改存放在 React state 中的对象。相反,当你想要更新一个对象时,你需要创建一个新的对象(或者将其拷贝一份)…

基于 GoFrame 框架的电子邮件发送实践:优势、特色与经验分享

1. 引言 如果你是一位有1-2年Go开发经验的后端开发者,可能已经熟悉了Go语言在性能和并发上的天然优势,也曾在项目中遇到过邮件发送的需求——无论是用户注册时的激活邮件、系统异常时的通知,还是营销活动中的批量促销邮件,邮件功…

AndroidStudio编译报错 Duplicate class kotlin

具体的编译报错信息如下: Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21) D…

后端面试问题收集以及答案精简版

思路 不要问什么答什么 要学会扩充 比如问你go map的原理 map 是什么 数据结构,字典,k/v 结构map的应用场景有哪些 快速查找、计数器、配置管理、去重、缓存实现map有哪些限制 无序性、非线程安全的读写map的key的访问 v: mp[key] v,ok : mp[key] for…

MicroPython 开发ESP32应用教程 之 I2S、INMP441音频录制、MAX98357A音频播放、SD卡读写

本课程我们讲解Micropython for ESP32 的i2s及其应用,比如INMP441音频录制、MAX98357A音频播放等,还有SD卡的读写。 一、硬件准备 1、支持micropython的ESP32S3开发板 2、INMP441数字全向麦克风模块 3、MAX98357A音频播放模块 4、SD卡模块 5、面包板及…

UE5 物理模拟 与 触发检测

文章目录 碰撞条件开启模拟关闭模拟 多层级的MeshUE的BUG 触发触发条件 碰撞 条件 1必须有网格体组件 2网格体组件必须有网格,没有网格虽然可以开启物理模拟,但是不会有任何效果 注意开启的模拟的网格体组件会计算自己和所有子网格的mesh范围 3只有网格…

微信小程序 - swiper轮播图

官方文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html <swiper indicator-color"ivory" indicator-active-color"#d43c33" indicator-dots autoplay><swiper-item><image src"/images/banner…

深入探究C#官方MCP:开启AI集成新时代

一、引言 在当今数字化时代&#xff0c;.NET 开发领域不断演进&#xff0c;而 C# 官方 MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;的出现&#xff0c;无疑为开发者们带来了全新的机遇与挑战。随着人工智能技术的迅猛发展&#xff0c;将 AI…

二分查找法

使用二分查找法的前提&#xff1a;&#xff08;1&#xff09;数组为有序数组. &#xff08;2&#xff09;数组中无重复元素. 二分的两种写法&#xff1a; 方法一&#xff1a;[left&#xff0c;right] class Solution { public:int search(vector<int>& nums, int …

HarmonyOS:页面滚动时标题悬浮、背景渐变

一、需求场景 进入到app首页或者分页列表首页时&#xff0c;随着页面滚动&#xff0c;分类tab要求固定悬浮在顶部。进入到app首页、者分页列表首页、商品详情页时&#xff0c;页面滚动时&#xff0c;顶部导航栏&#xff08;菜单、标题&#xff09;背景渐变。 二、相关技术知识点…