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

电路

设计初衷

        电源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.mzph.cn/news/660230.shtml

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

相关文章

MacOS X 中 OpenGL 环境搭建 Makefile的方式

1,预备环境 安装 brew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装glfw: brew install glfw 安装glew: brew install glew 2.编译 下载源代码…

本地搭建Plex私人影音网站并结合内网穿透实现公网远程访问

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【数据库】mysql触发器使用

题目: 创建职工表以及职工工资表职工表字段:工号,姓名,性别,年龄工资表字段:编号自增,职工工号,基础工资10000通过触发器实现:对职工进行添加时 工资表中也要体现当前职…

docker下,容器无法启动,要删除里面的文件

第一步:进入docker cd /var/lib/docker 第二步:查找,我这里是拼音分词器 find ./ -name py 第三步:得到路径 第四步:删除或复制或移动,我这里是删除py文件夹 rm -rf ./over那一串 第五步:想干…

D2025——双通道音频功率放大电路,外接元件少, 通道分离性好,3V 的低压下可正常使用

D2025 为立体声音频功率放大集成电路,适用于各类袖珍或便携式立体声 收录机中作功率放放大器。 D2025 采用 DIP16 封装形式。 主要特点:  适用于立体声或 BTL 工作模式  外接元件少  通道分离性好  电源电压范围宽(3V~12V…

【JavaEE spring】SpringBoot 统一功能处理

SpringBoot 统一功能处理 1. 拦截器1.1 拦截器快速⼊⻔1.2 拦截器详解1.2.1 拦截路径1.2.2 拦截器执⾏流程 1.3 登录校验1.3.1 定义拦截器1.3.2 注册配置拦截器 2. 统⼀数据返回格式2.1 快速⼊⻔2.2 存在问题2.3 案例代码修改2.4 优点 3. 统⼀异常处理 1. 拦截器 后端程序根据…

Chakra UI:构建 Web 设计的未来

Chakra UI:构建 Web 设计的未来 在当今的Web开发领域,构建现代、可访问的用户界面是一个重要的任务。为了满足这一需求,开发者需要一个强大而易用的UI组件库。而Chakra UI作为一个基于React的开源组件库,正是为了解决这个问题而诞…

vue3 [Vue warn]: Unhandled error during execution of scheduler flush

文章目录 前言一、报错截图二、排除问题思路相关问题 Vue3 优雅解决方法异步组件异同之处:好处:在使用异步组件时,有几个注意点: vue3 定义与使用异步组件 总结 前言 Bug 记录。开发环境运行正常,构建后时不时触发下面…

hal库stm32串口接收不定长数据

参考博客: https://blog.csdn.net/qq_41830158/article/details/121254705 按下面步骤修改实测可用 步骤: 添加串口接收所需变量   打开uart.c文件,在文件顶部的USER CODE BEGIN 0下方添加下列变量 volatile uint8_t rx1_len 0; //接收…

C语言第十五弹---操作符(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 操作符 1、操作符的分类 2、二进制和进制转换 2.1、2进制转10进制 2.1.1、10进制转2进制数字 2.2、2进制转8进制和16进制 2.2.2、2进制转16进制 3. 原码、反…

C++完成使用map Update数据 二进制数据

1、在LXMysql.h和LXMysql.cpp分别定义和编写关于pin语句的代码 //获取更新数据的sql语句 where语句中用户要包含where 更新std::string GetUpdatesql(XDATA kv, std::string table, std::string where); std::string LXMysql::GetUpdatesql(XDATA kv, std::string table, std…

智能小车案例:基于Raspberry Pi的自动巡航与避障系统

项目背景 随着物联网技术的不断发展,智能小车成为了现代生活和工业自动化中的重要工具。为了实现智能小车的自动巡航与避障功能,我们采用了Raspberry Pi作为主控制器,结合传感器和执行器,构建了一个完整的系统。 所需材料 Raspber…

幻兽帕鲁:10秒开服,一键配置游戏参数教程!

随着游戏行业的不断发展,玩家们对于游戏体验的要求也越来越高。为了满足玩家们的需求,腾讯云提供了游戏联机服务器一键部署方案,本文将为大家详细介绍如何基于腾讯云服务器10秒钟完成开服和配置游戏参数,让大家的游戏体验更加顺畅…

服装产业转型升级,iPayLinks帮助企业拓展市场盈更多

从十万件的大订单转变为几百件的小订单,小单快反模式为中国服装出口带来了机遇,也带来了挑战。 “十三行-中大-鹭江”是广州曾经最具代表性的外贸服装产业带。在过去很长的一段时间里,服装外贸老板在这里创造“神话”:24小时内完…

spdk技术原理简介和实践经验

一、导读 与机械硬盘相比,NVMe-ssd在性能、功耗和密度上都有巨大的优势,并且随着固态存储介质的高速发展,其价格也在大幅下降,这些优势使得NVMe-ssd在分布式存储中使用越来越广泛。由于NVMe-ssd的性能比传统磁盘介质高出很多&…

jvm基础篇之垃圾回收[1](方法区、堆回收)

文章目录 垃圾回收类型手动垃圾回收:C/C的内存管理自动垃圾回收:Java的内存管理自动垃圾回收应用场景不同垃圾回收对比 线程不共享部分的回收方法区的回收手动触发回收 堆回收两种判断方法引用计数法查看垃圾回收日志可达性分析法GC Root对象类型可达性算…

函数式接口当参数使用

如果函数式接口作为一个方法的参数,就以为着要方法调用方自己实现业务逻辑,常见的使用场景是一个业务整体逻辑是不相上下的,但是在某一个步骤有不同的逻辑,例如数据处理有不同的策略,如果有大量的if-els,或…

机器学习4-多元线性回归

多元线性回归(Multiple Linear Regression)是线性回归的一种扩展形式,用于建立因变量与多个自变量之间的关系。在简单线性回归中,我们考虑一个因变量和一个自变量之间的线性关系,而多元线性回归允许我们考虑多个自变量对因变量的影响。 一般…

轻松录制视频,WPS录屏功能全攻略

“有人知道wps怎么录屏吗?老师要求我们录制一段视频,是关于课堂教学的,可是我不会录制文档,眼看就快到提交的时间了,现在真的很着急,希望大家帮帮我!” 随着信息技术的发展,录制屏幕…

数字图像处理(实践篇)三十二 OpenCV-Python比较两张图片的差异

目录 一 方案 二 实践 ​通过计算两张图像像素值的均方误差(MSE)来比较两张图像。差异大的两张图片具有较大的均方差值,相反,相似的图片间则具有较小的均方差值。需要注意的是。待比较的两张图像要具有相同的高度、宽度和通道数。 一 方案 ①导入依赖库 import cv2 import…