搜索
bottom↓
回复: 59

485通信总是出现乱码,求助

[复制链接]

出0入4汤圆

发表于 2015-1-27 17:31:52 | 显示全部楼层 |阅读模式
电路如下图所示,主要功能是测试从某个一直发送485信息的机器上接收信号正不正常,一开始用买的帝特的485转USB线模拟测试调了很久,发现是不能接120Ω的终端电阻,把电阻去掉之后拿到机器上面踩数据,
一开始还好好的,然后就会出现乱码,帝特的转接器接收到的数据正常,电路图如下,AB的上下拉电阻一开始用的3.3K,实测一点反应都没有,后来换成360R的,发现乱码后换成1.2K 680R 的都不能解决问题,芯片从MAX3485换成SP3485还是不行。
RO接上啦电阻后上面都收不到了,。片子是从嘉立创买的,感觉不是芯片的问题,因为一开始用的是淘宝上买的TI的SN65HVD72,也是不能接终端电阻,上下拉3.3K也是不行的

本帖子中包含更多资源

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

x

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2015-1-27 17:40:28 | 显示全部楼层
我不会告诉你,你那485的A,B端电阻接错了。6脚是A应该接5V上拉,7脚接对地下拉电阻。。。。。

出0入0汤圆

发表于 2015-1-27 17:48:35 | 显示全部楼层
6(A)上拉;7(B)下拉。

出0入4汤圆

发表于 2015-1-27 17:55:43 | 显示全部楼层
A上拉,B下拉

而且,你这上拉下拉电阻 阻值太小。受不了这么大的电流。

出0入0汤圆

发表于 2015-1-28 08:34:43 来自手机 | 显示全部楼层
马克,最近也在用TI的485片子

出0入0汤圆

发表于 2015-1-28 08:55:14 | 显示全部楼层
我有一次也跟楼主一样,接错了上拉下拉电阻(但阻值比楼主的要大些)。
但是485也可以正常工作(实验室里,现场没试过)

出0入4汤圆

 楼主| 发表于 2015-1-28 11:31:21 | 显示全部楼层
dancruiser 发表于 2015-1-28 08:55
我有一次也跟楼主一样,接错了上拉下拉电阻(但阻值比楼主的要大些)。
但是485也可以正常工作(实验室里, ...

很奇怪,换了A上啦B下拉后就不能工作了

出0入4汤圆

 楼主| 发表于 2015-1-28 11:31:42 | 显示全部楼层
LM1876 发表于 2015-1-27 17:40
我不会告诉你,你那485的A,B端电阻接错了。6脚是A应该接5V上拉,7脚接对地下拉电阻。。。。。 ...

很奇怪,换了A上啦B下拉后就不能工作了,昨天折腾了一晚上

出0入4汤圆

 楼主| 发表于 2015-1-28 11:32:11 | 显示全部楼层
Xujuango 发表于 2015-1-27 17:55
A上拉,B下拉

而且,你这上拉下拉电阻 阻值太小。受不了这么大的电流。

很奇怪,换了A上啦B下拉后就不能工作了,而且换了阻值后680R乱码更多

出0入4汤圆

 楼主| 发表于 2015-1-28 11:36:14 | 显示全部楼层
dancruiser 发表于 2015-1-28 08:55
我有一次也跟楼主一样,接错了上拉下拉电阻(但阻值比楼主的要大些)。
但是485也可以正常工作(实验室里, ...

我很不能理解,淘宝上那些AB都没接上下拉电阻的485模块还都一直在卖,我的485把我搞成这样子,不知道是不是嘉立创的问题,等今天淘宝的片子到吧

出0入0汤圆

发表于 2015-1-28 11:44:26 | 显示全部楼层
你把上下拉去电 终端电阻去掉试试  程序先发一个字节看看是不是对的 不要一下子发堆数据 还有就是要防止冲突

出0入0汤圆

发表于 2015-1-28 11:48:14 | 显示全部楼层
上下拉电阻是不是小了点啊

出0入4汤圆

 楼主| 发表于 2015-1-28 11:51:58 | 显示全部楼层
yy8047 发表于 2015-1-28 11:48
上下拉电阻是不是小了点啊

换成大的,就一点反应都没有了

出0入4汤圆

 楼主| 发表于 2015-1-28 11:52:38 | 显示全部楼层
anta09 发表于 2015-1-28 11:44
你把上下拉去电 终端电阻去掉试试  程序先发一个字节看看是不是对的 不要一下子发堆数据 还有就是要防止冲 ...

倒是没有全去掉过,这就去看看

出0入0汤圆

发表于 2015-1-28 11:53:49 | 显示全部楼层
你的总线上都挂了些什么东西啊

出0入4汤圆

 楼主| 发表于 2015-1-28 11:58:01 | 显示全部楼层
yy8047 发表于 2015-1-28 11:53
你的总线上都挂了些什么东西啊

现在又一台机器,我只要从那边接收就行了,只是一对一

出20入12汤圆

发表于 2015-1-28 12:15:22 | 显示全部楼层
有收发控制端可以不使用上下拉。

出0入0汤圆

发表于 2015-1-28 13:49:01 | 显示全部楼层
RS485通信常见问题:
1 关于总线端上下拉电阻:对于没有开路保护的485芯片,A端上拉,B端下拉是必要的。避免因不确定电平造成的干扰
2 关于差分电压:485是差分信号,发送端负责驱动总线电平,因此AB间的压差肯定在485规范范围内。需要注意的是A、B线的电压是相对于发送端GND的电压,而总线上个节点的GND不是相等的电位,必定存在电位差。对于接收端而言,差分电压正确,而A、B端的电压(相对于接收端的GND)有可能超过485芯片的极限值。因此,建议增加PSM712或者SM712进行电压箝位,确保总线电压不会超过芯片极限值。特别提醒:不能使用普通的TVS进行电压箝位,因为485电压不是双向对等电压:低:-7V,高:+12V。
3 关于RO端上拉:485是半双工通信,在接受状态和发送状态转换期间RO端的输出电压不确定,建议RO端接上拉电阻,防止单片机误进入接受中断。
4 关于共地问题:有人喜欢通过共地解决上述第2点问题(电压问题),就是把接收端和发送端的GND连接起来,这样各个节点的参考地就相等了。但是会引发新的问题,因为各个节点GND之间存在电位差,直接连接起来会有很大的电流(称作地回流),如果要连接各个节点的GND,建议不要直接连接,在各节点串联一个100欧姆的电阻。
5 关于隔离问题:如果现场干扰很严重(如:工业应用),建议进行电源和信号隔离,使用DCDC隔离电源隔离485与单片机的电源,使用光耦进行信号隔离。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-1-28 13:50:10 | 显示全部楼层
以上是本人实际应用的RS485隔离电路,稳定可靠

出0入0汤圆

发表于 2015-1-28 13:58:31 | 显示全部楼层
直接拉AB线的波形来看就知道了,看看是不是正负波形没有相交?有没有干扰?

出0入4汤圆

 楼主| 发表于 2015-1-28 14:00:56 | 显示全部楼层
Michael_Wen 发表于 2015-1-28 13:50
以上是本人实际应用的RS485隔离电路,稳定可靠

非常感谢您的回答

出0入0汤圆

发表于 2015-1-28 14:02:35 | 显示全部楼层
楼主如何知道数据乱码了?在电脑上看到的数据吗?

出0入4汤圆

 楼主| 发表于 2015-1-28 14:09:35 | 显示全部楼层
Michael_Wen 发表于 2015-1-28 14:02
楼主如何知道数据乱码了?在电脑上看到的数据吗?

MCU把接收到的数据打印出来,我也在485输出的TTL电平接了串口转USB打印出来,两个做对比

出0入4汤圆

 楼主| 发表于 2015-1-28 14:10:39 | 显示全部楼层
Divingbear 发表于 2015-1-28 13:58
直接拉AB线的波形来看就知道了,看看是不是正负波形没有相交?有没有干扰?
...

AB线上我直接连了一个485转USB来做对比用的

出0入0汤圆

发表于 2015-1-28 14:16:53 | 显示全部楼层
485遇到问题会很头疼,因为电路简单基本上没有什么多的东西可以进行排错

出0入213汤圆

发表于 2015-1-28 14:16:54 | 显示全部楼层
买个TTL转485的模块,照搬电路吧。 另,加隔离试试。

出0入4汤圆

 楼主| 发表于 2015-1-28 14:31:18 | 显示全部楼层
gaolf_2012 发表于 2015-1-28 12:15
有收发控制端可以不使用上下拉。

刚刚试了下,是不行的,之前别人画的原理图都是把6.7脚换了位置然后直接上下接到地和VCC,我没看清楚,但是我这反而可以用,换过来竟然不信,费解

出0入4汤圆

 楼主| 发表于 2015-1-28 14:31:46 | 显示全部楼层
miniqq80 发表于 2015-1-28 14:16
485遇到问题会很头疼,因为电路简单基本上没有什么多的东西可以进行排错

有一种预感,会不会是芯片的问题

出0入4汤圆

 楼主| 发表于 2015-1-28 14:32:15 | 显示全部楼层
jyrpxj 发表于 2015-1-28 14:16
买个TTL转485的模块,照搬电路吧。 另,加隔离试试。

正在做,发现人家就比我多了隔离

出0入0汤圆

发表于 2015-1-28 14:35:22 | 显示全部楼层
suebillt 发表于 2015-1-28 14:31
有一种预感,会不会是芯片的问题

看过规格书没有,供电电压对不对?不是每个芯片都是3.3V和5V通用的

出0入4汤圆

 楼主| 发表于 2015-1-28 14:36:05 | 显示全部楼层
miniqq80 发表于 2015-1-28 14:35
看过规格书没有,供电电压对不对?不是每个芯片都是3.3V和5V通用的

我用的3485,max的和sp的都是,3.3供电

出50入0汤圆

发表于 2015-1-28 14:53:15 | 显示全部楼层
去掉上拉,下拉,保留120R

出0入0汤圆

发表于 2015-1-28 15:04:08 | 显示全部楼层
suebillt 发表于 2015-1-28 14:10
AB线上我直接连了一个485转USB来做对比用的

你先把思路理清楚。
485的原理是AB线传输差分信号,当A电压高于B电压200mV,RO输出0,当B高于A200mV,RO输出1.
所以让你抓信号,是让你看看你的输入信号是否正确,A,B线上的三个电阻是用来做电压钳位的,防止输入信号抖动造成的误动作的。
所以在你短线连接输入信号的时候,可以不接。只是来看看电路的逻辑正确与否。
当你的输入信号的逻辑正确,而RO没有正确输入,则看RE,DE信号的电平时序是否正确。
如果RE,DE信号正确,RO还是没有正确输出,或者没有输入信号,而RO上有电平波动,则判断芯片有问题,或者有来自MCU侧的干扰信号。
debug,要抓root cause。
什么抄电路,换电阻,都是瞎猫抓死耗子,碰上了就碰上了,碰不上就Orz了。

出0入0汤圆

发表于 2015-1-28 15:17:08 | 显示全部楼层
本帖最后由 Michael_Wen 于 2015-1-28 15:32 编辑

485总线可以接多个节点,你在总线上接一个USB转485,你的MCU也用串口输出数据接一个USB转TTL,对比两个虚拟串口的数据是否一致。如果数据有问题,你可以尝试将485芯片的RE/DE直接接低电平,RO直接接USB转TTL的RXD。如果数据一致,那么证明485芯片没问题,问题出在你的单片机程序。如果仍然有问题,那么应该是485芯片的问题。

出0入0汤圆

发表于 2015-1-28 15:18:47 | 显示全部楼层
注意:要用USB转TTL的模块,不要用USB转串口的模块。网上销售的USB转串口一般是RS232的电平

出0入4汤圆

 楼主| 发表于 2015-1-28 15:29:23 | 显示全部楼层
Michael_Wen 发表于 2015-1-28 15:18
注意:要用USB转TTL的模块,不要用USB转串口的模块。网上销售的USB转串口一般是RS232的电平 ...

我用过这个方法,测量过485的RO,除了按照错了的电路图接并且电阻是1K之下,别的情况RO都是高电平

出0入0汤圆

发表于 2015-1-28 15:29:53 | 显示全部楼层
不好意思,刚才说错了,总线上应该接USB转485的模块。

出0入0汤圆

发表于 2015-1-28 15:37:20 | 显示全部楼层
你可以自己搭建一个测试环境,不要接目标设备。用一个USB转485做发送方,你的板子做接收方,直接在电脑上调试数据。如果让然收不到数据,你在吧485芯片的RE和DE接低电平试试。还有就是如果是高电平应该收不到数据,而不是你说的乱码

出0入0汤圆

发表于 2015-1-28 15:47:49 来自手机 | 显示全部楼层
mark 学习了

出0入4汤圆

 楼主| 发表于 2015-1-28 15:53:08 | 显示全部楼层
Michael_Wen 发表于 2015-1-28 15:37
你可以自己搭建一个测试环境,不要接目标设备。用一个USB转485做发送方,你的板子做接收方,直接在电脑上调 ...

乱码是指我按照我所画的错误电路图接,上下拉电阻是1K之内。。。接收到数据的情况下

出0入0汤圆

发表于 2015-4-2 10:07:29 | 显示全部楼层
Michael_Wen 发表于 2015-1-28 13:49
RS485通信常见问题:
1 关于总线端上下拉电阻:对于没有开路保护的485芯片,A端上拉,B端下拉是必要的。避 ...

为什么我的RO端常态是低电平呢???

出0入0汤圆

发表于 2015-5-20 15:13:59 | 显示全部楼层
485注意事项  18楼MARK

出0入0汤圆

发表于 2015-7-11 19:52:47 | 显示全部楼层
mark!学习

出0入0汤圆

发表于 2015-8-9 20:08:42 | 显示全部楼层
MARK 33楼 RS485分析

出0入0汤圆

发表于 2015-8-9 21:54:58 | 显示全部楼层
我自己打板子的时候那3个电阻都画了  ,但是一般都是不焊的 也没出现过问题

出0入0汤圆

发表于 2015-9-2 08:13:13 | 显示全部楼层
学习了!谢谢各位

出0入31汤圆

发表于 2015-9-2 08:41:59 | 显示全部楼层
做开发最好有个示波器,这种情况下看一下485的波形应该很容易找到问题

出0入0汤圆

发表于 2015-9-2 08:55:21 | 显示全部楼层
485通信 mark

出0入4汤圆

发表于 2015-9-2 09:06:36 来自手机 | 显示全部楼层
去掉120电阻可能会对,之前我读电表数据遇到过,手机没有看到图

出0入42汤圆

发表于 2015-9-2 10:08:16 | 显示全部楼层
看了一下,楼主一直没结题,不知道问题最后是怎么解决的

出0入0汤圆

发表于 2015-9-2 11:44:18 | 显示全部楼层
18楼   学习了!

出0入0汤圆

发表于 2015-9-2 16:11:28 | 显示全部楼层
奇怪的问题。一对一通信不用120欧,上下拉也没必要。让芯片一直处于发送状态,看看485上的数是否正常。

出0入4汤圆

 楼主| 发表于 2016-2-29 18:26:22 | 显示全部楼层
Michael_Wen 发表于 2015-1-28 13:49
RS485通信常见问题:
1 关于总线端上下拉电阻:对于没有开路保护的485芯片,A端上拉,B端下拉是必要的。避 ...

你好,我现在遇到一个问题,就是接收别的机器上面的485信息过来进行分析,别的机器有的485有地有的没有地,485的线外层有屏蔽层,
那么这个屏蔽层和485的地该怎么处理

出0入0汤圆

发表于 2016-3-15 16:17:39 | 显示全部楼层
A、B的上、下拉电阻接反了。另外,电阻值取大点,如10K

出0入0汤圆

发表于 2016-3-15 16:26:59 | 显示全部楼层
zchong 发表于 2015-9-2 08:41
做开发最好有个示波器,这种情况下看一下485的波形应该很容易找到问题

说的有道理,通常遇到这类问题,示波器会帮上大忙

出0入0汤圆

发表于 2016-3-17 08:49:08 | 显示全部楼层
不用上拉下拉 肯定能正常工作

出0入10汤圆

发表于 2016-4-22 14:15:52 | 显示全部楼层
更改下发送和读取间的延时看看

出0入0汤圆

发表于 2016-5-12 15:08:11 | 显示全部楼层
suebillt 发表于 2016-2-29 18:26
你好,我现在遇到一个问题,就是接收别的机器上面的485信息过来进行分析,别的机器有的485有地有的没有地 ...

33 楼  和 18 楼 都讲得很清楚了,, 18楼也讲了地的处理,,你仔细看呀  , 不同的系统可能地不相同,这不会影响通讯,但是如果电位相差太大会损坏485芯片的,所以18楼加得有TVS来限制这个情况,你仔细研究研究。。不要盲目的乱尝试。

出0入4汤圆

 楼主| 发表于 2016-9-13 16:36:18 | 显示全部楼层
Michael_Wen 发表于 2015-1-28 13:49
RS485通信常见问题:
1 关于总线端上下拉电阻:对于没有开路保护的485芯片,A端上拉,B端下拉是必要的。避 ...

回过来看这个帖子,好像电源和地没有隔离?

出0入4汤圆

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

本版积分规则

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

GMT+8, 2024-3-29 20:21

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

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