搜索
bottom↓
回复: 17

MAX485通信问题

[复制链接]

出0入0汤圆

发表于 2017-5-17 11:35:10 | 显示全部楼层 |阅读模式

电路如图
问题:接口连的是AVR M88V,EN端发送时高电平,接收时底电平。现在的问题是:当发送完成转为接收后,再转为发送时数据发送的数据有误,即不是我想要发的数据,请大侠指点。我已经花了快一个星期了。找不出是什么原因。


谢谢各位。

本帖子中包含更多资源

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

x

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

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

出0入42汤圆

发表于 2017-5-17 11:37:19 | 显示全部楼层
电路本身没什么问题,去检查程序吧,用示波器或者逻辑分析仪配合看一下波形就能找到问题了

出0入0汤圆

发表于 2017-5-17 11:39:54 | 显示全部楼层
跳过485IC,直接232试试
是不是EA脚时序问题?

出0入0汤圆

 楼主| 发表于 2017-5-17 11:41:51 | 显示全部楼层
cu_ice 发表于 2017-5-17 11:39
跳过485IC,直接232试试
是不是EA脚时序问题?

直接是没有问题的,MAX485我换过了

出0入0汤圆

 楼主| 发表于 2017-5-17 11:42:53 | 显示全部楼层
ccstc 发表于 2017-5-17 11:37
电路本身没什么问题,去检查程序吧,用示波器或者逻辑分析仪配合看一下波形就能找到问题了 ...

我120欧的实际上没接,我的线不长。

出0入42汤圆

发表于 2017-5-17 11:55:42 | 显示全部楼层
线不长,没有120欧电阻不影响
如果第一次发送和接受都没有问题,那硬件肯定没问题了
还是看软件吧

出0入0汤圆

 楼主| 发表于 2017-5-17 14:56:31 | 显示全部楼层
ccstc 发表于 2017-5-17 11:55
线不长,没有120欧电阻不影响
如果第一次发送和接受都没有问题,那硬件肯定没问题了
还是看软件吧

如果是一直处于发送状态是没问题,或都一直接收

出0入0汤圆

发表于 2017-5-17 16:08:12 | 显示全部楼层
会不会是你的使能端翻转时没有给延时,导致吃掉了第一个位的数据。

出0入0汤圆

 楼主| 发表于 2017-5-17 17:25:09 | 显示全部楼层
Chuda 发表于 2017-5-17 16:08
会不会是你的使能端翻转时没有给延时,导致吃掉了第一个位的数据。

给了1MS还是一样。苦恼中……

出0入0汤圆

 楼主| 发表于 2017-5-17 17:26:44 | 显示全部楼层
#define MAX845_Send() (PORTD |=  _BV(PD2))
#define MAX845_Read() (PORTD &= ~(_BV(PD2)))

//发送命令
void USART_Send_Command(unsigned char addre,unsigned char comma)
{
        MAX845_Send();
//        _delay_ms(1);
        USART_Send_Addr(addre);//发送从机地址
        USART_Send_Data(comma);//发送控制命令
        MAX845_Read();
}

程序是这样的。

出0入0汤圆

发表于 2017-5-17 17:27:11 | 显示全部楼层
给楼主说一招:

直接将EA接RX 还是TX来着!

这样即可!

不必特意去专用IO口控制!

我的产品上 陆陆续续几千套了 都是这样接的 用得freemodbus

出0入42汤圆

发表于 2017-5-17 17:28:58 | 显示全部楼层
楼主是怎么debug的呢?
示波器,或者逻辑分析仪这些工具呢
再不济用万用表加断点也能找到问题

出0入0汤圆

发表于 2017-5-17 17:49:47 | 显示全部楼层
阿豪博士 发表于 2017-5-17 17:27
给楼主说一招:

直接将EA接RX 还是TX来着!

好像是将使能端反相后接TX

出0入0汤圆

 楼主| 发表于 2017-5-17 18:21:18 | 显示全部楼层
阿豪博士 发表于 2017-5-17 17:27
给楼主说一招:

直接将EA接RX 还是TX来着!

牛人,一接就行了,接到RXD。能说一下原因吗?

出0入0汤圆

 楼主| 发表于 2017-5-17 18:28:46 | 显示全部楼层
ccstc 发表于 2017-5-17 17:28
楼主是怎么debug的呢?
示波器,或者逻辑分析仪这些工具呢
再不济用万用表加断点也能找到问题 ...

只有指针万用表

出0入0汤圆

发表于 2017-5-17 21:01:48 | 显示全部楼层
这种是由于延时问题,延时地方加错了
在发送完成转接受的地方加至少500us以上的延时,否则最后一位发送不成功
当然接rx可以,意思是一只处于发送状态,有数据过来时转为接收。

出0入0汤圆

发表于 2017-5-19 15:17:20 | 显示全部楼层
RE和DE接一起就可以。
近距离,不用这么复杂。

出0入0汤圆

 楼主| 发表于 2017-5-20 00:10:11 | 显示全部楼层
dfood 发表于 2017-5-19 15:17
RE和DE接一起就可以。
近距离,不用这么复杂。

线总长度一米多一点吧,不用这个了,直接单片机出来经过一个220电阻连起来用也可以.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 12:46

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

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