STM32自己从零开始实操05:接口电路原理图
一、TTL 转 USB 驱动电路设计
1.1指路
延续使用芯片 CH340E 。



1.2数据手册重要信息提炼
1.2.1概述
CH340 是一个 USB 总线的转接芯片,实现 USB 与串口之间的相互转化。
1.2.2特点
- 支持常用的 MODEM 联络信号 RTS(请求发送)、DTR(数据终端就绪)、DCD(数据载波检测)、RI(振铃指示)、DSR(数据设备就绪)、CTS(清除发送)。
- 通过外加电平转换器件,提供 RS232、RS485、RS422 等接口。
- 支持 5V 电源电压和 3. 3V 电源电压。
- CH340C/N/K/E/X/B 内置时钟,无需外部晶振。
1.2.3引脚
引脚号 | 引脚名称 | 类型 | 引脚说明 |
1 | UD+ | USB信号 | 直接连到 USB 总线的 D+ 数据线,不要串联电阻 |
2 | UD- | USB信号 | 直接连到 USB 总线的 D- 数据线,不要串联电阻 |
3 | GND | 电源 | 公共接地端,直接连到 USB 总线的地线 |
5 | |||
6 | |||
7 | VCC | 电源 | 3.3V 正电源输入端,需要外接 0.1uF 电源退耦电容 |
8 | TXD | 输出 | 串行数据输出 |
9 | RXD | 输入 | 串行数据输入,内置可控的上拉和下拉电阻 |
10 | V3 | 电源 | 在 3.3V 电源电压时连接 VCC 输入外部电源 在 5V 电源电压时外接容量为 0.1uF 退耦电容 |
1.2.4其他说明
- CH340 未用到的 I/O 引脚可以悬空。
- CH340 芯片支持 5V 电源电压或者 3.3V 电源电压。
当使用 5V 工作电压时,CH340 芯片的 VCC 引脚输入外部 5V 电源,并且 V3 引脚应该外接容量为 0.1uF 的电源退耦电容。当使用 3.3V 工作电压时,CH340 芯片的 V3 引脚应该与 VCC 引脚相连接,同时输入外部的 3.3V 电源,并且与 CH340 芯片相连接的其它电路的工作电压不能超过 3.3V。 - CH340 芯片内置了 USB 上拉电阻,UD+ 和 UD- 引脚应该直接连接到 USB 总线上。
- 异步串口方式下 CH340 芯片的引脚包括:数据传输引脚、MODEM 联络信号引脚、辅助引脚。
- 数据传输引脚包括: TXD 引脚和 RXD 引脚。串口输入空闲时,RXD 应为高电平。串口输出空闲时,CH340G/C/N/E/X/B/T 芯片的 TXD 为高电平。
- TNOW 引脚以高电平指示 CH340 正在从串口发送数据,发送完成后为低电平,在 RS485 等半双工串口方式下,TNOW 可以用于指示串口收发切换状态。
1.3原理图
1.3.1 v1.0
存在的错误:
(1)5V 供电
- 你的依靠原理不成立:虽然之前电源原理图中 USB 口进行了 5V 供电,但是 5V 供电是为了全局供电,其中的 TTL_D+、TTL_D- 是单纯的数据传输。
- 元器件浪费:5V 供电除了 0.1uF 电容滤波之外(数据手册的意思),还需要 100uF 铝电解大电容或10uF 电容滤波。
- 数据手册中说:3.3V 供电时与 CH340 芯片相连接的其它电路的工作电压不能超过 3.3V。
信息传输后一级的 STM32 和其他主要组件工作在 3.3V,应当选择3.3V供电,而不是 5V 。
(2)TNOW 引脚
无需进行串口正在发送状态指示,可以悬空,不用接电阻耗能。
1.3.2 v2.0
1.4 USB信号的全局理解
- USB 的 “写” 是 STM32 的 “读串口”,USB 的 “读” 是 STM32 的 “写串口”。
- STM32 原理图部分应该是通过跳线帽的方式来确认数据的路线。
- USB 部分既可以用来供电,又可以用来数据的两方向传输。
二、RS-485 接口设计
2.1指路
延续使用芯片 SP3485EEN,封装为SOP-8。


2.2数据手册
一定一定要去看之前的笔记,详细的讲解了这款芯片。UART、RS232、RS485基础知识+硬件知识_uart rs485-CSDN博客
2.2.1功能
将外界采用 RS485 通信的设备转成 串口 通信,得以和单片机进行通信。
2.2.2引脚
序号 | 引脚名称 | 功能介绍 |
1 | RO | 接收器输出 当 |
2 | 接收器输出使能控制 当 | |
3 | DE | 驱动器输出使能控制 当DE为高电平时,驱动器输出可用。 当DE为低电平时,输出处于高阻抗状态。 |
4 | DI | 驱动器输入 当DE为高电平时, DI低电平迫使非反相驱动器输出A为低电平,反相驱动器输出B为高电平; Dl高电平迫使非反相驱动器输出A为高电平,反相驱动器输出B为低电平。 |
5 | GND | 地面 |
6 | A | 非反相接收器输入和非反相驱动器输出 |
7 | B | 反相接收器输入和反相驱动器输出 |
8 | VCC | 电源供应 |
2.3原理图V1.0
自己根据之前的笔记设计:
(见UART、RS232、RS485基础知识+硬件知识_uart rs485-CSDN博客)
2.4原理图V2.0
2.4.1滤波电容
我知道你肯定好奇:都是3.3V供电,为什么有的模块滤波要 0.1uf ,10uf,0.1uf +10uf 滤波?
在这里我只解释这个模块的原因,后面再写博客统一归纳总结。
- 0.1μF电容:通常用于高频滤波,抑制高频噪声。它们具有较低的等效串联电感(ESL),适合滤除电源线上高频噪声和瞬态干扰。
- 10μF电容:主要用于低频滤波,提供较大的电流储备,能够平滑电压波动,稳定电源供应。
- 组合使用 0.1μF 和 10μF 电容:RS-485 通信需要稳定的电源来保证长距离传输的可靠性。0.1μF 电容用于高频滤波,而 10μF 电容则提供低频稳定性和电流储备,从而避免电源波动影响通信质量。
2.4.2引脚
单片机的引脚足够,不需要 V1.0 的方案来节约引脚,DI 直接接到单片机引脚上,在电路 V1.0 中我选择是 1K ,老师选择的是 10K ,分析如下:
2.4.3上下拉电阻
上拉和下拉电阻用于在 RS-485 总线空闲时将总线保持在一个已知的状态。
(1)10KΩ电阻
陈氏:电阻大,电流小,影响小,功耗低。远距离或设备多时,可能不足以提供足够的电流。
优点:功耗较低,适用于大多数情况下的偏置电阻。由于阻值较大,它不会对通信信号产生明显的负载影响。缺点:在长距离传输或总线电容较大时,可能不足以提供足够的偏置电流,导致总线状态不稳定。
(2)1KΩ电阻
陈氏:电阻小,电流大,影响大,功耗高。远距离或设备多时,提供更足够的电流。
优点:提供更强的偏置电流,在长距离和较大电容负载情况下能更好地保持总线稳定。缺点:功耗较高,并且在总线上的负载影响更大,可能在某些情况下影响通信信号的质量。
根据该项目的具体情况,485 设备少,距离近,选择 10K。
2.4.4 阻抗匹配
见:UART、RS232、RS485基础知识+硬件知识_uart rs485-CSDN博客
2.4.5 TVS管
参考老师建议使用 PSM712-LF-T7 (STO-23封装),该 TVS 管专用于静电和浪涌保护。数据手册中说明常应用于 RS485 端口。
三、CAN 总线接口设计
3.1指路
延续使用芯片 TJA1040T-JSM,封装为SOP-8。


3.2数据手册
3.2.1概述
TJA1040T 是 CAN 收发器,能够为信号传输速率高达 1Mbps 的 CAN 控制器提供差分传输和接收。
3.2.2引脚说明
引脚 | 符号 | 说明 |
1 | TXD | 传输数据输入。TXD 为高 CAN 总线输出为隐性态,TXD 为低 CAN 总线输出为显性态。 |
2 | GND | 地。 |
3 | VCC | 供电电压。 |
4 | RXD | 接收器数据输出。当 CAN 总线处于隐性态时候,RXD 为高电平。当 CAN 总线处于显性态时候,RXD 为低电平。 |
5 | SPLIT | 共模稳定输出端口。 |
6 | CANL | 低电平 CAN 总线端口。 |
7 | CANH | 高电平 CAN 总线端口。 |
8 | STB | 待机模式控制输入端口。 |
3.2.3 STB
STB 输入 (引脚 8 ) 用于在两个不同的运行模式之间做出选择,即高速模式或低速模式,使用中可通过将 STB 引脚接地来选择高速运行模式。
(1)正常模式
通过将 STB 引脚设置为低,选择芯片的正常工作模式。CAN 总线驱动器和接收器完全工作,CAN 总线双向通信。驱动器将 TXD 引脚的数字输入信号转换为 CANH 和 CANL 引脚的差分输出电平。接收器将来自 CANH 和 CANL 引脚的差分电平转换为 RXD 引脚的数字输出信号。
(2)待机模式
在此模式下,驱动器和接收器关闭,低功耗差分接收器监控总线状态。引脚 STB 上的高电平激活低功耗接收器和唤醒滤波器,在 tus 时间之后,CAN 总线的状态会反映在引脚 RXD 上。VCC 上的电源电流降低到最小值,以降低电磁干扰( EM ),同时对总线上唤醒标识进行辨识。在这种模式下,总线接地可将供电电流 ( lcc ) 降至最低。
(3)唤醒
在待机模式下,芯片通过低功耗差分比较器监测总线。一旦低功耗差分比较器检测到显性总线电平超过时间 tBus,引脚 RXD 将变为低电平。
3.2.4 SPLIT
CAN 总线大量节点需要 TJA1040T 这类具有高输入阻抗和宽共模范围的收发器收发器。
- 高输入阻抗意味着收发器对总线信号的负载很小,减少了每个节点对总线的影响。在大规模网络中,如果每个节点的输入阻抗较低,会显著增加总线的负载,导致信号衰减和失真,进而影响通信的可靠性。高输入阻抗的收发器允许更多节点同时连接到总线而不会导致上述问题。
- 共模范围是指收发器能够接受的信号电压范围。宽共模范围意味着收发器能够在较大的电压范围内正确地接收信号。CAN总线通信使用差分信号线,但由于不同节点的接地电位可能存在差异,信号线上的电压可能会有共模偏移。具有宽共模范围的收发器能够在存在这些偏移的情况下仍然可靠工作,确保在复杂电气环境中的稳定通信。

ISO11898 标准规定互连为 120Ω 的双绞线缆 ( 屏蔽或非屏蔽 ) 特性阻抗 ( Zo ) ,应在线缆终端的两端使用等于线缆阻抗特性的电阻以防止信号反射,连接节点未端的接入线到总线的距离应保持尽可能短,以最小化信号反射。
总线两端的匹配终端通常是 120Ω 电阻,如果需要对总线的共模电压进行滤波和稳定,可使用拆分终端方案(见下图)。拆分终端方案使用两个 60Ω 电阻,两个电阻中间有一个电容接地。拆分终端方案可以消除信号传输开始和结束时总线共模电压的波动,从而改善总线网络的电磁辐射。
3.3原理图V1.0
加上参考笔记画的:CAN总线基础知识+硬件知识_can总线技术基础-CSDN博客
3.4原理图V2.0
第一版设计的电路并没有什么问题,只是老师设计的电路在实际调试时可能更佳。
根据老师的原理图有以下改进:
(1)47uF的电源滤波电容:更好地滤除低频噪声,稳定电源电压,尤其是在电流变化较大的情况下更为有效。
(2)STB:接入单片机引脚,可以由单片机选择高速模式或低速模式。
(3)47nF 电容:进一步滤除信号中的高频噪声。这种电容提供了更好的高频滤波效果,可以减少电磁干扰,提高总线的信号完整性。
(4)30pF 电容:这些电容用于滤除CAN总线中的高频噪声,保护总线的信号完整性。高频噪声可能来自于外部的电磁干扰或者内部的高频开关动作,这些电容可以有效地滤除这些干扰信号,确保CAN总线通信的稳定性。
(5)

四、TF卡座
4.1指路
延续使用芯片 MICRO-SD 。


相关文章:

STM32自己从零开始实操05:接口电路原理图
一、TTL 转 USB 驱动电路设计 1.1指路 延续使用芯片 CH340E 。 实物图 实物图 原理图与封装图 1.2数据手册重要信息提炼 1.2.1概述 CH340 是一个 USB 总线的转接芯片,实现 USB 与串口之间的相互转化。 1.2.2特点 支持常用的 MODEM 联络信号 RTS(请…...

git子模块
1 子模块管理的关键文件和配置 在 Git 中使用子模块时,Git 会利用几个特殊的文件和配置来管理子模块。以下是涉及子模块管理的关键文件和配置: 1.1 .gitmodules 这是一个文本文件,位于 Git 仓库的根目录下。它记录了子模块的信息ÿ…...

stm32编写Modbus步骤
1. modbus协议简介: modbus协议基于rs485总线,采取一主多从的形式,主设备轮询各从设备信息,从设备不主动上报。 日常使用都是RTU模式,协议帧格式如下所示: 地址 功能码 寄存器地址 读取寄存器…...

基于 Transformer 的大语言模型
语言建模作为语言模型(LMs)的基本功能,涉及对单词序列的建模以及预测后续单词的分布。 近年来,研究人员发现,扩大语言模型的规模不仅增强了它们的语言建模能力,而且还产生了处理传统NLP任务之外更复杂任务…...

证照之星是一款很受欢迎的证件照制作软件
证照之星是一款很受欢迎的证件照制作软件,证照之星可以为用户提供“照片旋转、裁切、调色、背景处理”等功能,满足用户对证件照制作的基本需求。本站证照之星下载专题为大家提供了证照之星电脑版、安卓版、个人免费版等多个版本客户端资源,此…...

不定时更新 解决无法访问GitHub github.com 打不开 dns访问加速
1 修改hosts Windows 10为例,文件C:\Windows\System32\drivers\etc\hosts 管理员打开记事本来修改 文件-打开-“C:\Windows\System32\drivers\etc\hosts” 20.205.243.168 api.github.com 185.199.108.154 github.githubassets.com 185.199.108.133 raw.githubusercontent.…...

单向环形链表的创建与判断链表是否有环
单向环形链表的创建与单向链表的不同在于,最后一个节点的next需要指向头结点; 判断链表是否带环,只需要使用两个指针,一个步长为1,一个步长为2,环状链表这两个指针总会相遇。 如下示例代码: l…...

JVM堆栈的区别、分配内存与并发安全问题、对象定位
一、堆和栈的区别 堆(Heap)和栈(Stack)是两种基本的数据结构,它们在内存管理、程序执行流程控制等方面扮演着重要角色。在编程语言尤其是Java这样的高级语言环境中,堆和栈的概念被用来描述程序运行时的内存…...

Python教程:机器学习 - 百分位数(4)
什么是百分位数? 统计学中使用百分位数(Percentiles)为您提供一个数字,该数字描述了给定百分比值小于的值。 例如:假设我们有一个数组,包含住在一条街上的人的年龄。 ages [5,31,43,48,50,41,7,11,15,3…...

数据结构习题(快期末了)
一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。 从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。 数据的存储结构是数据的逻辑结构的存储映像。 数据的物理结构是指数据在计算机内实际的存储形式。 算法是对解题方法和…...

Http协议:Http缓存
文章目录 Cookie和Session缓存有效性检查整体流程总结Cookie和Session Cookie 客户端的缓存 Session 服务端的缓存,存储服务器与客户端一次会话的过程中的数据/资源 两者区别 是服务端与客户端的不同需求造成的 有效期 Cookie的有效期很长,Session的较短 原因:服务…...

idea插件开发之hello idea plugin
写在前面 最近一直想研究下自定义idea插件的内容,这样如果是想要什么插件,但又一时找不到合适的,就可以自己来搞啦!这不终于有时间来研究下,但过程可谓是一波三折,再一次切身体验了下万事开头难。那么&…...

Sm4【国密4加密解密】
当我们开发金融、国企、政府信息系统时,不仅要符合网络安全的等保二级、等保三级,还要求符合国密的安全要求,等保测评已经实行很久了,而国密测评近两年才刚开始。那什么是密码/国密?什么是密评?本文就关于密…...

git如果将多次提交压缩成一次
将N个提交压缩到单个提交中有两种方式: git reset git reset的本意是版本回退,回退时可以选择保留commit提交。我们基于git reset的作用,结合新建分支,可以实现多次commit提交的合并。这个不需要vim编辑,很少有冲突。…...

android用Retrofit进行网络请求和解析
Retrofit 的原理 Retrofit的核心原理包括动态代理与Service Method的构建、注解解析与请求配置、网络请求执行与响应处理等。它是一个类型安全的HTTP客户端,用于Android和Java平台,通过将HTTP API转化为Java接口的方式,简化了网络请求的编写…...

list容器的基本使用
目录 前言一,list的介绍二,list的基本使用2.1 list的构造2.2 list迭代器的使用2.3 list的头插,头删,尾插和尾删2.4 list的插入和删除2.5 list 的 resize/swap/clear 前言 list中的接口比较多,与string和vector类似&am…...

34万汉语词语成语反义词ACCESS\EXCEL数据库
反义词就是两个意思相反的词,包括:绝对反义词和相对反义词。分为成对的意义相反、互相对立的词。如:真——假,动——静,拥护——反对。这类反义词所表达的概念意义互相排斥。或成对的经常处于并举、对待位置的词。如&a…...

yum方式更新Jenkins
目的 使用yum方式更新Jenkins。 步骤 查看最新可用版本 $ yum list jenkins Last metadata expiration check: 0:03:44 ago on Fri Jun 14 06:10:01 2024. Installed Packages jenkins.noarch 2.452.1-1.1 jenkins Available Pa…...

欢乐钓鱼大师保姆级教程,云手机辅助攻略解析!
在这份攻略中,我们将为大家详细介绍如何在《欢乐钓鱼大师》中快速提升钓鱼技能和游戏进展,避免常见的新手误区和不必要的资源浪费。无论是钓鱼点的选择、装备的合理使用还是技能的优化,我们都会一一为您详细解析,帮助您成为一名优…...

数据结构:手撕代码——顺序表
目录 1.线性表 2.顺序表 2.1顺序表的概念 2.2动态顺序表实现 2.2-1 动态顺序表实现思路 2.2-2 动态顺序表的初始化 2.2-3动态顺序表的插入 检查空间 尾插 头插 中间插入 2.2-4 动态顺序表的删除 尾删 头删 中间删除 2.2. 5 动态顺序表查找与打印、销毁 查找 …...

jenkins使用注意问题
1.在编写流水线时并不知道当前处在哪个目录,导致名使用不当,以及文件位置不清楚 流水线任务默认路径是,test4_mvn为jenkins任务名 [Pipeline] sh (hide)pwd /var/jenkins_home/workspace/test4_mvn maven任务也是,看来是一样的…...

Kaggle -- Titanic - Machine Learning from Disaster
新手kaggle之旅:1 . 泰坦尼克号 使用一个简单的决策树进行模型构建,达到75.8%的准确率(有点低,但是刚开始) 完整代码如下: import pandas as pd import numpy as npdf pd.read_csv("train.csv&quo…...

蓝牙音频解码芯片TD5163介绍,支持红外遥控—拓达半导体
蓝牙芯片TD5163A是一颗支持红外遥控、FM功能和IIS音频输出的蓝牙音频解码芯片,此颗芯片的亮点在于同时支持真立体声&单声道、TWS功能、PWM、音乐频谱和串口AT指令控制等功能,芯片在支持蓝牙无损音乐播放的同时,还支持简单明了的串口发送A…...

windows 下 docker 入门
这里只是具体过程,有不清楚的欢迎随时讨论 1、安装docker ,除了下一步,好像也没有其他操作了 2、安装好docker后,默认是运行在linux 下的,这时我们需要切换到windows 环境下, 操作:在右下角d…...

《别让“想太多”挡了你的骑行路,对比一下更丝滑》
在探索骑行的世界时,我们往往会被一些先入为主的想法所束缚。本文将带你对比骑行与其他运动和生活方式,揭示那些阻碍你爱上骑行的认知误区。 一、年龄不是界限:骑行与跑步的比较与跑步相比,骑行同样适合所有年龄段,但它…...

hadoop和hbase对应版本关系
https://hbase.apache.org/book.html#configuration...

现代X86汇编-C和ASM混合编程举例
端午假期安装好了vs c2022,并写了个简单的汇编代码,证明MASM真的可以运行。今天需要搞一个实实在在的C和ASM混合编程的例子,因为用纯汇编的求伯君写WPS的时代一去不复返了。个别关键函数用汇编,充分发挥CPU的特色功能,偶尔还是需要…...

485. 最大连续 1 的个数
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.示例 2: 输入:nums […...

席卷的B站《植物大战僵尸杂交版》V2.0.88整合包,PC和手机可用,含通关存档和视频教程!
今天给大家安利一款席卷B站,火爆全网的游戏——《植物大战僵尸杂交版》2.0.88整合包。 这个是网络上现存植物大战僵尸杂交版的最全整合,包含了修改工具,超强通关存档和高清工具。工具包有安装视频教程,支持手机版和pc多端使用&am…...

液晶拼接屏企业应该采取哪些措施来提升整体竞争力和市场地位呢?
步入智能科技时代以来,商显行业面对着各式各样的挑战,人工智能、AI大模型等整合中,液晶拼接屏企业应该采取哪些措施以提升整体竞争力和市场地位。下面小编个人观点简单说一下;下是一些关键的措施: 首先,加…...