5V串口接3.3V单片机串口怎么搞?

写在前面:两个单片机由于电平不同,串口通信可能会失败,这时候需要通过电平转换电路来解决,本文给出了两种方法,一种是通过三极管搭建,另一种是MOS管搭建,在硬件工程师的笔试中也经常会出现这样的题目。

3.3V单片机和5V单片机通信的思路

3.3V单片机通信方向5V单片机
发送逻辑1(对应电压3.3V)接受逻辑1(对应电压5V)
发送逻辑0(对应电压0V)接受逻辑0(对应电压0V)
接受逻辑1(对应电压3.3V)发送逻辑1(对应电压5V)
接受逻辑0(对应电压0V)发送逻辑0(对应电压0V)

MOS管转换电路

工作原理:

1、当3V3单片机发送逻辑1,即3V3_TX=3.3V,Ugs=0V,MOS管截止,5V_RX通过R2上拉到+5V,5V_RX=5V;

2、当3V3单片机发送逻辑0,即3V3_TX=0V,Ugs=3V,MOS管导通,5V_RX会被拉低,5V_RX=0V;

438c28ab4524bdf7b7f689df32e9b490.png
3V3_TX发送给5V_RX

那有人说了,5V的数据怎么发送给3V3单片机呢?是不是将信号方向及电源更换即可,我们来看一下。

工作原理:

1、当5V单片机发送逻辑1,即5V_TX=5V,Ugs=0V,MOS管截止,3V3_RX通过R1上拉到3V3,3V3_RX=3.3V;

2、当5V单片机发送逻辑0,即5V_TX=0V,Ugs=5V,MOS管导通,3V3_RX被拉低,所以3V3_RX=0;

以上分析似乎合情合理,其实如下电路不可用,上面的第2点其实是没有问题的,主要是第1点,当MOS管截止时,5V_TX的5V电压会经过MOS管的体二极管到达3V3_RX,使3V3_RX的电压高于3.3V(4V多,取决于体二极管的导通压降)。这样的话,一方面4V多的电压与3.3V有压差,经过R1电阻会有耗电;另一方面,4V多的电压也可能损坏3.3V单片机的RX管脚。

12412600372692b31ef7f7a7ca9f491d.png

此电路不可用

利用仿真软件仿真,可以看到MOS管截止时,输出是4.44V,明显高于3.3V,验证了上述的观点。a5f643d66091bd390081955214fffa6a.png

仿真上述不可用电路

那如何设计5V发送到3.3V单片机呢?其实也简单,两个器件搞定,如下是电路图。

1、5V_TX=5V时,二极管D1截止,3V3_RX=3.3V;

2、5V_TX=0V时,二极管D1导通,3V3_RX≈0.6V;实际3V3_RX是多少,取决于D1的正向导通压降,因为要得到更低的电压,一般D1选择肖特基二极管,肖特基优点就是导通压降小。

690a960feeb46d3b5f3fea3cf584b244.png
5V_TX发送给3V3_RX

三极管转换电路

工作原理:

1、当3V3单片机发送逻辑1,即3V3_TX=3.3V,NPN三极管截止,5V_RX通过R2上拉到+5V,5V_RX=5V;

2、当3V3单片机发送逻辑0,即3V3_TX=0V,NPN三极管导通,5V_RX会被拉低,所以5V_RX=0V;

ce89fcfe050934087e50c9f93e93538f.png
3V3_TX发送给5V_RX

利用三极管,5V单片机发送给3.3V单片机,是不是电源和信号互换就可以,和MOS管电路一样,如下电路同样不能用

原因是当5V_TX为5V时,发射极反偏,但是5V通过电阻R1由三极管的基极到达三极管的集电极,造成集电极正偏,和MOS管电路一样,使3V3_RX电压高于3.3V(4V多),大家可以仿真一下,这里我就不仿真了。

30d04320d8038fcfaf89bc64c96747c3.png
此电路不可用

如下,给出了5V单片机向3.3V单片机发送的电路图,用两个NPN三极管搭建。

工作原理:

1、当5V单片机发送逻辑1,即5V_TX=5V,Q1导通,Q2的基极被拉低,Q2截止,所以3V3_RX=3.3V;

2、当5V单片机发送逻辑0,即5V_TX=0V,Q1截止,Q2导通,所以3V3_RX=0V;

3c69f52ecf05db1d3aedf0aaa72accb9.png
5V_TX发送给3V3_RX

可以看到,我并没有画两个NMOS管搭建5V单片机向3.3V单片机发送的电路,其实将上图中的三极管换成NMOS管,就能实现,在实际的电路设计中,为减少成本,应尽量考虑用较少的器件搭电路,所以一般就用二极管方案。

今天的文章到这里就结束了。。。


哦不,上面的问题并没有结束

我转发这篇文章的原因是晚上和朋友讨论到这个问题,我们还因为这个问题开了个腾讯会议。

如果要连接的是3.3V的单片机串口,我们第一时间应该想到我们也用3.3V的单片机,两个3.3V的单片机供电上肯定是不会有问题的。而现在市面上很多ARM芯片,都是3.3V的GPIO口电压,5V单片机作为初级入门电平,已经慢慢被取代,当然,之后还有1.8V的单片机。

ed8a48992992f1816b9a2808395d8372.jpeg

—— The End ——


6fc2b58dfb9004a7b0995cb0441d40cf.jpeg

4d866c238cd9f18c4bef60eb169dcff3.gif

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

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

相关文章

Django之缓存、信号和图片验证码

一、 缓存 1、 介绍 缓存通俗来说:就是把数据先保存在某个地方,下次再读取的时候不用再去原位置读取,让访问速度更快。 缓存机制图解 2、Django中提供了6种缓存方式 1. 开发调试   2. 内存   3. 文件   4. 数据库   5. Memcache缓存&…

这焊接技术在班里排名第一没问题吧?

晚上和朋友讨论PCB LAYOUT,然后自己也动手起来了,刚好看到宇哥的一篇焊接的文章,这焊接技术这么厉害的人,layout那不得是吊炸天啊。作者:晓宇,排版:晓宇微信公众号:芯片之家&#xf…

Yocto,嵌入式开发者不可不知的强大工具【附资料与活动】

各个嵌入式开发团队出于不同的原因,都希望构建适合自己开发需求的嵌入式系统。Yocto正是这样一个工具,任何一个厂商都可以根据Yocto定制属于自己的系统。 Yocto 是什么 Yocto 是一种伞式项目,侧重于通过开放式嵌入内核,打造嵌入式…

第四次过程性考核

https://gitee.com/liuji1/fourth_process_assessment (一) 问题:使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中 (二) 要求: 1.客户端从控制台进行…

劝你不要转行

在知乎收到一个咨询,问题如下您好,想向您请教一些问题。想转行做嵌入式工程师个人基本信息29岁,电子与通信工程专业硕士,毕业后就职于某车企,主要从事类似项目管理一职。去年考入某事业单位,业余时间相对较…

linux下DHCP的安装配置

今天在整理以前的资料的时候,看到了这篇过去积攒的资料,过程详细所以拿来给大家一块分享,同时我也在做,提高一下熟练度。 【实验名称】Linux下DHCP服务的配置与安装【实验拓扑】【实验目标】了解DHCP服务的工作原理,掌…

浅谈一下嵌入式中的强符号和弱符号

__attribute__ 是一个编译器指令,其实是 GNU C 的一种机制,本质是一个编译器的指令,在声明的时候可以提供一些属性,在编译阶段起作用,来做多样化的错误检查和高级优化。用于在 C、C、Objective-C 中修饰变量、函数、参…

POJ_1862 Stripies 【贪心】

一、题面 POJ1862 二、分析 反省一下,自己英语水平着实不行,该题其实就是问若给出若干个这种生物,根据这种体重变换方式,最终合并成一个后,体重最少是多少。根据公式 $m 2\sqrt{m_{1}m_{2}}$ 我们可以发现&#xff0c…

想成为硬件工程师,难不?

有很多朋友经常会问,成为高级嵌入式系统硬件工程师,需要做到哪些呢?那么,我们就先从嵌入式硬件工程师是个什么概念入手。一、如何理解“嵌入式”的概念呢?1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部&#x…

.Net/C#中Cache的用法

Cache 即高速缓存,使用合理可以提高网站访问速度,减少服务器压力 什么是缓存?Web 应用程序通常都是被多个用户访问。一个Web站点可能存在一个“重量级”的加载,它能够使得站点在访问的时候,拖慢整个服务器。当站点被大…

Maven继承

继承为了消除重复,可以把pom 中很多相同的配置提取出来;如:grouptId, version 等。 在使用的时候子工程直接继承父工程的依赖版本号,子工程中不再需要指定具体版本号,方便统一管控项目的依赖版本问题。 创建…

电子驱蚊器就是智商税

说下我的情况我家不能烧蚊香,因为我们领导说家里有小孩,蚊香对小孩很不好,这是楠哥的锅,我不背。但是我又不喜欢挂蚊帐,总觉得蚊帐挂起来后觉得很压抑,黑乎乎的感觉。所以能不挂的时候就不挂,然…

串口通讯到底有没有累积误差及对时钟精度的要求

1. 问题背景:2. 问题分析:3. 总结:1. 问题背景: 对于嵌入式开发者来说,串口应该是应用最广泛的模块,在日常客户支持过程中经常会有客户问到一些关于串口通讯稳定性的问题,比较典型的几个问题如下:在9600波特…

《统一沟通-微软-实战》-3-部署-Exchange 2010-1-先决条件

参照: http://technet.microsoft.com/zh-CN/library/bb691354.aspx 先决条件 加域请确保林的功能级别至少为 Windows Server 2003,并确保架构主机运行 Windows Server 2003 Service Pack 1 或更高版本。有关 Windows 功能级别的详细信息,请参阅管理域和林…

写给打工人的职业发展观

转发火哥的一篇文章为什么要去一线城市打工现在网上很多这样的话题:深圳的高房价会导致人才流失吗?年轻人是不是在逃离北上广?一线城市工资是老家省会的一倍,消费,房租也比老家省会贵一倍,赚多少花多少&…

在线MSN代码(如同QQ在线咨询那种的)

在你需要显示MSN咨询的地方添加如下代码&#xff1a; <!--Msn网页在线代码开始--><a href"msnim:chat?contactabcdwxc21com.com"><img height"40"alt"msn:abcdwxc21com.com"src"msn.GIF"width"26"align&quo…

RISC-V Linux 启动流程分析

“Author: 通天塔 985400330qq.comDate: 2022/05/15Revisor: lzufalcon falcontinylab.orgProject: RISC-V Linux 内核剖析”说明&#xff1a;RISC-V Linux 内核兴趣小组旨在围绕 RISC-V 处理器架构系统地研究 Linux 内核以及上下栈中的技术&#xff0c;为国内 RISC-V 生态…

解读设计模式----单例模式(Singleton Pattern)

单例模式可以保证一个类有且只有一个实例,并提供一个访问它的全局访问点.在程序设计中,有很多情况需要确保一个类只能有一个实例.从这句话可以看出,Singleton模式的核心&#xff1a;如何控制用户使用new对一个类的实例构造器的任意调用。如何绕过常规的构造器&#xff0c;提供一…

Linux下如何搭建Java环境

软件环境 虚拟机&#xff1a;VMware Workstation系统&#xff1a;Linux&#xff1a;CentOS-7-x86_64工具&#xff1a; 安装工具&#xff1a;SSH客户端搭建步骤 1&#xff1a;查询当前系统版本 cat /proc/version2&#xff1a;首先确认当前系统是否已经存在java环境 java -vers…

程序中提升几毫秒、节省几 kB 的内存有必要吗?

我记得我上小学的时候有一篇课文&#xff0c;说是有一个人很节省&#xff0c;不仅他自己家里节省&#xff0c;如果别人家吃饭乱扔的剩饭&#xff0c;他都会去收拾起来晒干存起来。然后刚好有一年饥荒&#xff0c;大家都没有米吃了&#xff0c;他就把他那些年存起来的米给大家吃…