打印

不好意思,还要请教485问题,这次,关于ttl转485发送丢位的

[复制链接]
7054|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 wangxxll111 于 2014-4-2 14:48 编辑

我这是跟485扛上了!
先说一下我的设备通讯的流程,有点乱:
通讯有3部分:
1、arm板出来的 ttl电平,这个是 3.3v的;
2、TTL转485模块,自己做的,

3、mega8+485的通讯电路

工作流程是这样的: arm板上的ttl电平,通过 ttl转 485模块,转换成485信号后,与mega8+485通讯电路,进行通讯
实际测试中存在问题:从 arm板上的发送出来的数据 ,通过 ttl转 485模块 ,发送到mega8+485通讯电路,
                                   mega8接收正常,mega8接收到数据后 ,处理后,返回一组数据,再次通过 ttl转 485模块 ,送给arm板,arm板接收到的数据出现异常,
                                 比如mega8发送的实际上是 af AF 01 01 01 01 ,但arm板接收到的可能是 ae af 00 01 01 01
                                 但也不是每次都是错误的,多次观察发现 ,一般出错的时候,都是在每个字节的第一个高位,被丢到,比如 af会被接收成ae,01会被接收成 00,02会被接收成00

继续进行测试:
1、用一个成熟的 uab转ttl电平的模块,替代 arm板,通过 ttl转 485模块,转换成485信号后,与mega8+485通讯电路,进行通讯  ,发现发送和接受都是正常了,不会出现上述的问题
uab转ttl电平的模块 的ttl电平与arm板的ttl电平的却别就在于,usb的是 5v,而 arm板的是 3.3v;
2、用一个成熟的 uab转485的模块,替代mega8+485通讯电路 , arm板上的ttl电平,通过 ttl转 485模块,转换成485信号后 , uab转485的模块 进行通讯  ,发现发送和接受都是正常了,也不会出现上述的问题 ;

至此,开始怀疑,是否是因为arm板的ttl电平是3.3v的,而 ttl转 485模块 上的 是5v的,电压不匹配造成的?但为什么给从arm板发送的数据可以顺利的到达mega8?而,接收就丢位呢?

于是做了些处理,把  ttl转 485模块 上的 rdx出来的5v做了分压,用万用表量了,平时空闲的时候,485芯片出来的 r是5。2v,分压后是 3.4v
但将三部分链接后,测试,发现结果跟没有做分压的时候是一样的

然后就彻底模糊了,不知道到底是那部分出的问题?还请各位帮忙分析一下!多谢了



485转ttl.jpg (199.12 KB )

ttl转485模块,图中vcc=5v

ttl转485模块,图中vcc=5v

分压后的485转ttl.jpg (154.01 KB )

分要后的ttl转485模块电路

分要后的ttl转485模块电路

MEGA8.jpg (329.18 KB )

mega8的485电路

mega8的485电路

相关帖子

沙发
wangxxll111|  楼主 | 2014-4-2 14:47 | 只看该作者
这么多看的,怎么没有回的呢?

使用特权

评论回复
板凳
ningling_21| | 2014-4-2 14:52 | 只看该作者
wangxxll111 发表于 2014-4-2 14:47
这么多看的,怎么没有回的呢?

假如硬件没有问题,程序也有可能导致接收数据出错...

使用特权

评论回复
地板
ningling_21| | 2014-4-2 14:57 | 只看该作者
wangxxll111 发表于 2014-4-2 14:47
这么多看的,怎么没有回的呢?

可以用232电路替换485电路试试看,数据还有没有出错的,如果用232电路不再出错,说明485电路存在问题...

使用特权

评论回复
5
wangxxll111|  楼主 | 2014-4-2 15:01 | 只看该作者
ningling_21 发表于 2014-4-2 14:57
可以用232电路替换485电路试试看,数据还有没有出错的,如果用232电路不再出错,说明485电路存在问题... ...

我比较倾向于是硬件问题,因为用别的线路替代模块了,收发都正常的 !
但又不知道该如何下手,从哪方面去找

使用特权

评论回复
6
smileage| | 2014-4-2 15:17 | 只看该作者
这个应该是数据波形出现时间偏差造成的,因为串口发送是低位发送在前,高位在后,所以出错的都是后面的高位,我估计mega8发送出去的波形可能时序出现问题。

mega8的485电路,R87太大,使用470R差不多,波形可能在光耦前后出现问题。

使用特权

评论回复
7
ningling_21| | 2014-4-2 15:24 | 只看该作者
wangxxll111 发表于 2014-4-2 15:01
我比较倾向于是硬件问题,因为用别的线路替代模块了,收发都正常的 !
但又不知道该如何下手,从哪方面去 ...

最下面的图中R3,R86,R87偏大,120电阻不是必须的

光耦的型号也很重要,支持高速?

使用特权

评论回复
8
wangxxll111|  楼主 | 2014-4-2 15:24 | 只看该作者
smileage 发表于 2014-4-2 15:17
这个应该是数据波形出现时间偏差造成的,因为串口发送是低位发送在前,高位在后,所以出错的都是后面的高位 ...

出问题的应该是低位吧?正确的是 af,但实际接受到显示的是ae,01会接收到 00,02也会接收到 00

使用特权

评论回复
9
wangxxll111|  楼主 | 2014-4-2 15:26 | 只看该作者
ningling_21 发表于 2014-4-2 15:24
最下面的图中R3,R86,R87偏大,120电阻不是必须的

光耦的型号也很重要,支持高速? ...

不好意思,这个电阻确实不对,我实际焊接的时候,焊接的是 330:$

使用特权

评论回复
10
smileage| | 2014-4-2 15:35 | 只看该作者
wangxxll111 发表于 2014-4-2 15:24
出问题的应该是低位吧?正确的是 af,但实际接受到显示的是ae,01会接收到 00,02也会接收到 00 ...

哦,是低位。还是要示波器看时序,最好是发送0x55,这样方便观察。

另外,arm和mega8是不是用内部RC,没用外部晶振,这样也会造成波特率误差。

使用特权

评论回复
11
wangxxll111|  楼主 | 2014-4-2 15:40 | 只看该作者
smileage 发表于 2014-4-2 15:35
哦,是低位。还是要示波器看时序,最好是发送0x55,这样方便观察。

另外,arm和mega8是不是用内部RC,没 ...

mega8我用的是内部rc,但 mega8如果不连arm,通讯是没有问题的,多机通讯都正常,一连arm,就不对

使用特权

评论回复
12
ningling_21| | 2014-4-2 15:47 | 只看该作者
wangxxll111 发表于 2014-4-2 15:40
mega8我用的是内部rc,但 mega8如果不连arm,通讯是没有问题的,多机通讯都正常,一连arm,就不对  ...

M8改用外部晶体振荡器试试看呢...

使用特权

评论回复
13
wangxxll111|  楼主 | 2014-4-2 15:49 | 只看该作者
ningling_21 发表于 2014-4-2 15:47
M8改用外部晶体振荡器试试看呢...

这个没有试过,晚上试试,多谢提供思路

使用特权

评论回复
14
tuzihog| | 2014-4-2 17:00 | 只看该作者
留名关注一下啊

使用特权

评论回复
15
jxhzsq| | 2014-4-3 09:49 | 只看该作者
第一张图没看到控制收发的端口

使用特权

评论回复
16
yubsh| | 2014-4-3 09:50 | 只看该作者
485芯片有3.3v供电的,没必要一定做电平转换。数据出错,可以测量一下485的收发控制时序,看看有没有足够的延时,再仔细观察一下数据波形,有没有缺失、残缺、边沿是否陡峭等问题。
AVR这边做成隔离的。但ARM这边不隔离,整个系统仍然不能说是隔离的。如果是少量样机,成本不是问题的话,建议看一下ADI的磁隔离技术。

使用特权

评论回复
17
tjcao| | 2014-4-3 09:56 | 只看该作者
楼主的硬件电路有问题,你把485芯片的接受和发送切换用单独的控制。

使用特权

评论回复
18
zfzzxd| | 2015-6-2 09:22 | 只看该作者
楼主您好,能加下我QQ吗,我有技术问题跟你交流。QQ592803276

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:想要静下心来学学模电,还得及吗?

5

主题

81

帖子

1

粉丝