搜索
bottom↓
回复: 38

485电路发送数据时,串口rx能收到数据0xff,请教哪的问题?

[复制链接]

出0入42汤圆

发表于 2021-7-4 10:09:45 | 显示全部楼层 |阅读模式
一直用的485通讯电路,主芯片换成国产的GD的,发现在串口一直往外发送数据时,串口一直能接收到数据0xff:用示波器观察rx口线电平,确实在高低变化;TX不往外发送数据RX就没有波形;电路反复检查没问题;所以就很疑惑?请教坛友们;
1、怀疑时程序配置问题,后换成其给定的例程,还是不行;
2、直接拆掉光耦,用usb转TTL的方式连接,测试没问题,串口不会收到0xff;
3、怀疑光耦电平的问题,把跟rx和tx有关的那5v换成3.3v,还是不行;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入16汤圆

发表于 2021-7-4 10:15:35 来自手机 | 显示全部楼层
你确定你电路没问题?

出0入114汤圆

发表于 2021-7-4 10:23:27 来自手机 | 显示全部楼层
ab线上的电位差大于200mv?

出0入42汤圆

 楼主| 发表于 2021-7-4 11:56:23 | 显示全部楼层
lovejp1981 发表于 2021-7-4 10:15
你确定你电路没问题?

一直这么用的,之前没感觉有什么,有什么bug  是不是?您指导指导

出0入42汤圆

 楼主| 发表于 2021-7-4 11:57:41 | 显示全部楼层
cloudxxcloud 发表于 2021-7-4 10:23
ab线上的电位差大于200mv?

我对硬件不怎么懂哩

出0入42汤圆

 楼主| 发表于 2021-7-4 11:58:41 | 显示全部楼层
zhwd102198 发表于 2021-7-4 11:57
我对硬件不怎么懂哩

给指导 指导呗

出0入16汤圆

发表于 2021-7-4 11:58:43 | 显示全部楼层
zhwd102198 发表于 2021-7-4 11:56
一直这么用的,之前没感觉有什么,有什么bug  是不是?您指导指导

485的Din 接地,你的数据是怎么发出去的?

出0入42汤圆

 楼主| 发表于 2021-7-4 12:17:40 | 显示全部楼层
lovejp1981 发表于 2021-7-4 11:58
485的Din 接地,你的数据是怎么发出去的?

485 自动收发电路    好多都是这样连接的   平时使用收发都可以,最近换芯之后,才感觉哪里有bug,一时又找不到

出0入0汤圆

发表于 2021-7-4 12:57:58 | 显示全部楼层
这电路产生这种结果不是很正常吗

出0入42汤圆

 楼主| 发表于 2021-7-4 13:03:20 | 显示全部楼层
modbus 发表于 2021-7-4 12:57
这电路产生这种结果不是很正常吗

?请教  指点 指点呗  

出715入1076汤圆

发表于 2021-7-4 14:36:34 来自手机 | 显示全部楼层
RO 加上拉了嗎?
你一直這麼用,或者大多數人一直這麼用,不代表正確。

出0入42汤圆

 楼主| 发表于 2021-7-4 21:13:20 | 显示全部楼层
dukelec 发表于 2021-7-4 14:36
RO 加上拉了嗎?
你一直這麼用,或者大多數人一直這麼用,不代表正確。

嗯  说的是   现在就发现有点不不对,但又说不出哪里不对,RO没加上拉;想着怎么去修改,验证验证。

出0入0汤圆

发表于 2021-7-5 04:25:38 来自手机 | 显示全部楼层
这电路不这样才不正常吧,你换回原来的应该也有这个问题。

出0入42汤圆

 楼主| 发表于 2021-7-5 07:48:14 | 显示全部楼层
fiddly 发表于 2021-7-5 04:25
这电路不这样才不正常吧,你换回原来的应该也有这个问题。

  现在使用确实有问题,是哪里不对呢?指教指教呗

出0入32汤圆

发表于 2021-7-5 09:39:40 | 显示全部楼层
应该是切换收发不同步造成的。接收到0xFF,说明有收到一个起始位0,但是后面的数据位又都是1。很可能就是你发送数据瞬间切换到了输入,总线电平因为DI固定到了GND,有个低电平的毛刺,使你的串口判断来了个数据的起始位。虽然6N137是高速光耦,但外围使用不当,也是有延迟的。

出0入18汤圆

发表于 2021-7-5 09:40:35 | 显示全部楼层
很奇怪  为啥不直接选隔离型的485芯片呢

出0入0汤圆

发表于 2021-7-5 09:50:25 | 显示全部楼层
这个电路是只接收不发送吗?DI都接地了。如果只接收不发送REDE可以接固定电平,还少一个光耦和一堆其他的

出0入42汤圆

 楼主| 发表于 2021-7-5 10:06:22 | 显示全部楼层
huangxiaolpbany 发表于 2021-7-5 09:50
这个电路是只接收不发送吗?DI都接地了。如果只接收不发送REDE可以接固定电平,还少一个光耦和一堆其他的 ...

可以发送接收啊。靠那个三极管去管控啊

出0入42汤圆

 楼主| 发表于 2021-7-5 10:07:02 | 显示全部楼层
himan 发表于 2021-7-5 09:40
很奇怪  为啥不直接选隔离型的485芯片呢

   硬件老师这样设计的

出0入42汤圆

 楼主| 发表于 2021-7-5 10:08:15 | 显示全部楼层
令狐冲 发表于 2021-7-5 09:39
应该是切换收发不同步造成的。接收到0xFF,说明有收到一个起始位0,但是后面的数据位又都是1。很可能就是你 ...

示波器看RX线上波形,确实有高低点评变化,导致有RX寄存器读到数据;

出0入42汤圆

 楼主| 发表于 2021-7-5 10:09:33 | 显示全部楼层
今天有用ST的片子,同样的电路测试,也有这个问题;但是ST的RX寄存器不提示收到数据;但GD的会提示收到数据;电路有点bug,两个芯片表现出的现象不一样;

出0入213汤圆

发表于 2021-7-5 11:00:09 来自手机 | 显示全部楼层
软件解决方案:在发送数据时忽略接收,在不发送数据时响应接收。

出0入0汤圆

发表于 2021-7-5 11:03:43 | 显示全部楼层
zhwd102198 发表于 2021-7-5 10:06
可以发送接收啊。靠那个三极管去管控啊


MAX电路图中4脚DI,数据由DI输入,然后通过485总线发出去。
你图中DI接地,还能发出去数据?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入32汤圆

发表于 2021-7-5 11:17:29 | 显示全部楼层
本帖最后由 令狐冲 于 2021-7-5 11:19 编辑
huangxiaolpbany 发表于 2021-7-5 11:03
MAX电路图中4脚DI,数据由DI输入,然后通过485总线发出去。
你图中DI接地,还能发出去数据? ...


你没用过自动收发电路吧。自动收发就是这种电路。DI一直接地。发送0就直接输出0。如果发送1,就配置成接收模式,靠AB线上的上下拉电阻,默认输出就是1。

各种USB转485的小板,都是这种电路。USB本身数据就是转成TTL串口,也没有输入输出控制脚,靠得就是这种电路实现自动收发控制。

出0入42汤圆

 楼主| 发表于 2021-7-5 11:29:37 | 显示全部楼层
令狐冲 发表于 2021-7-5 11:17
你没用过自动收发电路吧。自动收发就是这种电路。DI一直接地。发送0就直接输出0。如果发送1,就配置成接 ...

是,485转换器就是自动收发原理

出0入42汤圆

 楼主| 发表于 2021-7-5 13:18:53 | 显示全部楼层
lovejp1981 发表于 2021-7-4 10:15
你确定你电路没问题?

哪里有什么bug呢?请指教指教

出0入137汤圆

发表于 2021-7-5 13:26:52 | 显示全部楼层
5V供电,用MAX13487多好啊!

出0入42汤圆

 楼主| 发表于 2021-7-5 13:31:32 | 显示全部楼层
pulan 发表于 2021-7-5 13:26
5V供电,用MAX13487多好啊!

嗯        但一直用这颗料 所以就  没去找替换的

出0入0汤圆

发表于 2021-7-5 14:40:16 | 显示全部楼层
试试上下拉电阻换小一些 ,PCB布局有问题,有干扰,试着加大电流

出715入1076汤圆

发表于 2021-7-5 15:24:06 | 显示全部楼层
本帖最后由 dukelec 于 2021-7-5 15:32 编辑
zhwd102198 发表于 2021-7-4 21:13
嗯  说的是   现在就发现有点不不对,但又说不出哪里不对,RO没加上拉;想着怎么去修改,验证验证。 ...


RO 有上拉的,通過光耦,一開始不知道你那個是光耦芯片。


你現在電路最大的問題是 485 芯片是低速的,接收和發送的使能時間相差的太大,導致發送 disable 的時候,會延遲很久才真正 disable,此段時間,由於接收 enable 的速度更快,所以接收到本地發出的低電平。

小的改法是換高速的 485 芯片,譬如常用的 Ti 的 SN65HVD75,不過是 3.3v 供電。你也可以找其它型號,注意看數據手冊收發各自使能和關閉的時間差。

速度快的 485 芯片,即便依然存在時間差,差值也很小,就算 接收 有低電平脈衝,也很短,遠小於半個 bit 時間寬度,就不會被 mcu 接收到。

當然,更方便的做法是換自動 485 切方向的芯片,很多廠家有,包括國際大廠。

出0入42汤圆

 楼主| 发表于 2021-7-5 15:54:09 | 显示全部楼层
dukelec 发表于 2021-7-5 15:24
RO 有上拉的,通過光耦,一開始不知道你那個是光耦芯片。

嗯     谢谢,  还在摸索着修改;都不行。库里目前就这一种芯片;想办法max13487或65HVD75弄个样片试试;

出0入0汤圆

发表于 2021-7-5 23:22:06 | 显示全部楼层
zhwd102198 发表于 2021-7-4 13:03
?请教  指点 指点呗

发送0到1变化时实际上485是切换到输入状态,而此时总线上受分布电容的影响,而上下拉电阻又比较大,对分布电容充电时间较长,因此会产生短暂的输入为0状态

出0入0汤圆

发表于 2021-7-7 17:19:39 | 显示全部楼层
可以了解下 GD和ST,串口上会有点区别的。这种485自动收到电路,学校玩玩就可以,真的做产品,一大堆问题

出0入42汤圆

 楼主| 发表于 2021-7-7 17:29:14 | 显示全部楼层
cingljlw 发表于 2021-7-7 17:19
可以了解下 GD和ST,串口上会有点区别的。这种485自动收到电路,学校玩玩就可以,真的做产品,一大堆问题 ...

嗯,两家确实有区别;

出0入89汤圆

发表于 2021-7-7 18:11:53 | 显示全部楼层
zhwd102198 发表于 2021-7-7 17:29
嗯,两家确实有区别;

你用的波特率是多少?

出0入42汤圆

 楼主| 发表于 2021-7-7 19:05:31 | 显示全部楼层
youkebing 发表于 2021-7-7 18:11
你用的波特率是多少?

谢谢回复!开始用的38400,后用的 9600  都测试了,都会有0xff。

出0入213汤圆

发表于 2021-7-8 02:21:14 来自手机 | 显示全部楼层
22楼的方法可以试试看。

出0入1209汤圆

发表于 2021-7-8 02:26:09 | 显示全部楼层
stm32串口有硬件485换向,搞这种自动收法切换的就是给自己找麻烦,

出0入42汤圆

 楼主| 发表于 2021-7-26 17:24:24 | 显示全部楼层
目前只能降低波特率;谢谢大家回复。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-16 14:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表