RS485自动收发电路震荡的问题

news2024/9/20 8:05:48

电路

设计初衷

        电源5V

        选择5V的原因,差分2.5V比1.5V可以提高传输能力

        TTL输入

        3.3V电平满足需求

        TTL输出

        4.5V了,MCU是3.3V平台

这样就分为两种情况

        MCU接收端可以容忍5V输入

        MCU接收端不可以容忍5V输入,就要进行电压转换,我这里使用的是电阻分压 注意就是这里引发的震荡。

        为什么选择电阻分压,当时的思考是,无论MCU是否能容忍5V这样总该不会有问题。

        MCU串口接收引脚

        事后写文档才开始去详细看IO引脚接受电平情况

        PA3,PC5

        引脚说明        

 通过查阅MCU数据手册可以看到PA3,PC5都可以接受5V电平。

震荡

        这路串口我使用了shell 交互功能;//就是因为有shell这个电路才震荡的。

shell有一个功能:无论什么输入都会有输出;

现象描述

        电路上电,就看到了串口接收引脚一直有数据,串口发送引脚也一直发送数据;

整个MCU一直被这个收发占用了。

调试

        原理图/PCB检查       

        因为这个收发电路是晚上抄别人的,自己第一次这样使用,怀疑原理图/封装 哪里没有连接正确。

        没有发现问题;

        R59接收电阻去掉

        这样就相当于接收接地了,MCU正常运行了,串口输出也正常。

        485芯片坏了吗?

        换了485芯片,问题依旧。

        单独测试接收

        将R57电阻对地,示波器解码功能测试接收到的数据正常。

        此时空闲的时候接收引脚是呈现高电平约5V的。

        单独测试发送 

        上位机收到数据也是正常;

        此时空闲的时候接收引脚是呈现高电平约1.2V的。

        到这里1.2V没有引起我的注意。

        收发电路全部还原测试 

        这时候又恢复了震荡状态,测试注意到了 接收引脚电路是在变化,但是低电平只有1.2V.

        这时候我才意识到,接收引脚是因为收发切换导致的电平变化,并不是有实际的数据。

        与上面的测试收据对应起来了。

        查485芯片数据手册

        啊哈 ,破案了

震荡的原因

        板卡上电 -> 485芯片接收状态(1脚高电平) -> MCU输出log信息 -> 485芯片发送状态(1脚高阻)由R44,D28,R59,R58 分压约1.2V  -> MCU接收到数据,shell解析,输出解析内容 -> 485芯片发送状态(1脚高阻)由R44,D28,R59,R58 分压约1.2V  -> MCU接收到数据,shell解析,输出解析内容......无限循环。

解决方案

  • 将R58去掉;//我的选择
  •  增加电平转换芯片

这两种方案都是可以的。

小结 

        这都是满满的经验啊。

        刚遇到这个问题我也是很纳闷,怀疑USB转485坏了,怀疑MCU坏了....开始烦躁。

        此时不应该继续这种坏情绪。

        喝杯咖啡 / 出去走走 / 小憩一会。。。

        思路理清楚在继续调试,就会高效很多。

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

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

相关文章

【C++】STL优先级队列(priority_queue)

priority_queue 基本介绍 priority_queue就是优先级队列。其头文件就是queue,但是队列和优先级队列关系不大,两个是不同的数据结构。但二者都是适配器,容器适配器。 优先级队列中存放的数据是有优先级的。 其内部有以下成员方法&#xff0c…

跟着cherno手搓游戏引擎【17】整理代码、timestep和transform

这里就不分部走了,直接上代码。 全局: YOTO.h:添加renderer的头文件: #pragma once//用于YOTO APP#include "YOTO/Application.h" #include"YOTO/Layer.h" #include "YOTO/Log.h"#include"YOTO/Core/T…

V2X,启动高增长引擎

车载通讯的下一个新周期,毋庸置疑是V2X。从4G、5G再到C-V2X,是车载通讯逐步从信息娱乐、行车数据监控到万物互联的关键。 去年5月,全球车载通讯芯片巨头—高通公司宣布,与以色列车联网(V2X)芯片设计公司Aut…

DevOps落地笔记-05|非功能需求:如何有效关注非功能需求

上一讲主要介绍了看板方法以及如何使用看板方法来解决软件研发过程中出现的团队过载、工作不均、任务延期等问题。通过学习前面几个课时介绍的知识,你的团队开始源源不断地交付用户价值。用户对交付的功能非常满意,但等到系统上线后经常出现服务不可用的…

扣库的函数经验

有的库确实可以提出来的 比如这个库 GitHub - intel/x86-simd-sort: C template library for high performance SIMD based sorting algorithms 根据自己的需要是可以,把内容抠出来的,重新build的。 我就自己新建了一个vs的工程,然后把源…

将java对象转换为json字符串的几种常用方法

目录 1.关于json 2.实现方式 1.Gson 2.jackson 3.fastjson 3.与前端的联系 1.关于json JSON是一种轻量级的数据交换格式。它由Douglas Crockford在2001年创造。JSON的全称是JavaScript Object Notation,它是一种文本格式,可以轻松地在各种平台之间传…

【GEE】基于GEE可视化和下载Landsat8 L2A数据(镶嵌、裁剪)

之前发过一篇使用GEE下载Landsat8的文章,然后有很多小伙伴私信我各种问题,如L1C、L2数据代码怎么修改,如何镶嵌,如何去云、 如何裁剪等一系列问题。正好快过年了,手头的事也没有多少了,所以这两天整理了一下…

考研高数(数列极限之f(xn)和{xn}的关系)

说白了,f(xn)是复合函数,是f(x)与{xn}的复合函数。(复合函数的单调性有同增异减的原则) 例题1:【可以用同增异减的原则,迅速解答(有不合理的地方,请各位大佬指正!&#…

【操作系统】FileOutputStream的flush操作有时不生效

按照我们的理解:FileOutputStream的flush()方法的作用就是将缓冲区中的数据立即写入到文件中,即使缓冲区没有填满。这样可以确保数据的及时写入,而不需要等待缓冲区填满或者调用 close() 方法关闭流时才写入。真的是这样吗?&#…

dv和ov通配符SSL证书的区别

SSL数字证书是一种数字证书,可以保护网站传输数据安全以及对服务器身份进行验证,SSL证书有很多种,而通配符证书则是其中的一种特殊类型。SSL证书旗下的通配符SSL证书随着互联网的发展,颁发量也越来越多,为了使用户选择…

websocket编写聊天室

【黑马程序员】WebSocket打造在线聊天室【配套资料源码】 总时长 02:45:00 共6P 此文章包含第1p-第p6的内容 简介 温馨提示:现在都是第三方支持聊天,如极光,学这个用于自己项目完全没问题,大项目不建议使用 需求分析 代码

Celeryconfig配置文件

Celery配置文件 本篇介绍Celery配置文件相关,celeryconfig.py Celeryconfig.py 在上篇celery基础用法中,是这样使用celery的实例化的。 # tasks.py 文件名需与实例化对象第一个参数一致 import time from celery import Celeryredis_url redis://Pa…

重磅!讯飞星火V3.5正式发布,3大核心能力超GPT-4 Turbo!

1月30日,科大讯飞召开星火认知大模型V3.5升级发布会,这是国内首个基于全国产算力训练的多模态认知大模型。科大讯飞董事长刘庆峰先生、研究院院长刘聪先生出席了大会,并对最新产品进行了多维度解读。 讯飞星火V3.5的7大核心能力实现全面大幅…

用的到的linux-文件移动-Day2

前言: 在上一节,我们复习了cd大法和创建生成文件和文件夹的方法,介绍了一些“偷懒”(高效)的小技巧,本节,我们一起来探讨下,我们对文件移动操作时有哪些可以偷懒的小技巧~ 一、复制…

Oracle 集群】RAC知识图文详细教程(四)--缓存融合技术和主要后台进程

Cache Fusion 原理 前面已经介绍了 RAC 的后台进程,为了更深入的了解这些后台进程的工作原理,先了解一下 RAC 中多节点对共享数据文件访问的管理是如何进行的。要了解 RAC 工作原理的中心,需要知道 Cache Fusion 这个重要的概念,要…

基于腾讯云服务器搭建幻兽帕鲁服务器保姆级教程

随着网络游戏的普及,越来越多的玩家希望能够拥有自己的游戏服务器,以便能够自由地玩耍。而腾讯云服务器作为一个优秀的云计算平台,为玩家们提供了一个便捷、稳定、安全的游戏服务器解决方案。本文将为大家介绍如何基于腾讯云服务器搭建幻兽帕…

三、C++中的Mat对象

图片在C中是作为矩阵Matrix进行处理对待的,通过Mat数据类型进行处理 新建项目这里就不再赘述了哈,可以参考博文:零、环境搭建(第三部分Visula Studio中新建项目) 我这边创建的项目名称为:1_31_matrix 为了养成良好的项目开发习惯…

ubuntu QT openssl支持https

1、Building Qt 5 from Git - Qt Wiki 2、下载编译对应的opengssl [ 1.1.1 ] - /source/old/1.1.1/index.html 3、安装所需基础工具 sudo apt-get install build-essential perl python3 git sudo apt-get install ^libxcb.*-dev libx11-xcb-dev libglu1-mesa-dev libxrende…

基于YOLOv8的水下生物检测,多种优化方法---MSAM(CBAM升级版)助力涨点(二)

💡💡💡本文主要内容:详细介绍了水下生物检测整个过程,从数据集到训练模型到结果可视化分析,以及如何优化提升检测性能。 💡💡💡加入自研注意力MSAM mAP0.5由原始的0.522提升至0.534…

Epicypher—SMARCA2 Chromatin Remodeling Enzyme (Human BRM)

EpiCypher是一家为表观遗传学和染色质生物学研究提供高质量试剂和工具的专业制造商。EpiCypher(国内授权代理 欣博盛生物)能提供全长重组人SMARCA2重塑酶。SMARCA2是ATP依赖性染色质重塑复合物SWI/SNF的核心ATP酶亚基,可动员核小体&#xff0…