[AVR单片机] 跪求485通讯问题总线接30台可正常通讯.接31台就无法通讯了

[复制链接]
 楼主| 发表于 2012-8-23 22:48 | 显示全部楼层 |阅读模式
ATMEGA64A单片机做了一款检测板.(检测板上有两路485通讯)检测板与一台终端通过485连接..
比如终端寻址(前提已经找到检测板的地址).上位机发送一条指令给检测板.检测板再发送给终端,终端收到指令后返回一条指示给检测板,再由检测板发通过458发送给上位机.
每个检测板接线距离是15厘米.
问题是485总线上连接30台检测板通讯正常..连接到31台时上位机收不到返回的指令.用串口工具检测终端,发现终端已返回指令给检测板,但检测板未返回给上位机.
31台检测板时虽然没有返回指令给上位机,但上位机发送的指令终端都有收到并可以执行就是返回的指令上位机收不到.跪求高人指点.
 楼主| 发表于 2012-8-23 22:52 | 显示全部楼层
贴485原理图.高手看看有没有问题

本帖子中包含更多资源

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

×
 楼主| 发表于 2012-8-23 22:54 | 显示全部楼层
我用的ATMEGA64A.原理图

本帖子中包含更多资源

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

×
发表于 2012-8-23 22:59 | 显示全部楼层
RS485终端阻抗匹配问题,于你的板子没有多大的关系。
 楼主| 发表于 2012-8-23 23:12 | 显示全部楼层
总线两端各加了120Ω的匹配电阻,还是没只能接30台.接再多就不通讯了.
有一点一直搞不明白,终端可以收到指令并执行,返回数据给检测板,而检测板不能返回数据给上位机.
 楼主| 发表于 2012-8-23 23:16 | 显示全部楼层
sp485r 总线距离在300米以内是可以不拉匹配电阻的呀.我每个检测板间的距离只有15厘米. 连接30块总线距离才5米左右呀.
发表于 2012-8-24 13:02 | 显示全部楼层
会不会是软件问题呢? 数据包 ID 的冲突?
发表于 2012-8-24 14:47 | 显示全部楼层
那就可能是你通讯协议中的ID数量限制问题,看看是否定义错误。
发表于 2012-8-24 17:49 | 显示全部楼层
那个R14、R13是不是太大了
发表于 2012-8-24 20:02 | 显示全部楼层
R13、R14确实有点大,一般用自恢复保险丝就可以了。不必刻意使用电阻。
另外,加匹配电阻是跟具体的信号波形密切相关的。如果信号反射严重,无论距离如何都是要加匹配电阻的。所谓的反射,基本上就是A、B之间的电容充放电了。找个示波器看一下波形,只要边沿够陡、跟发送端信号相位相差不大就可以了。
我感觉软件上的问题可能性更大。
发表于 2012-9-28 22:58 | 显示全部楼层
学习了
发表于 2012-9-28 23:52 | 显示全部楼层
上下拉电阻改为47K以上,限流电阻改为20欧左右,最好选用487芯片,这个芯片的共模电阻比较大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

5

帖子

0

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