打印

请教RS485通信问题

[复制链接]
4304|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
    我最近在STM32RS485的通信,遇到一些问题,请大家指教下。
    基本情况是:STM32 PC机通过RS485通信,PC机端通过一个RS232RS485接口连接,STM32端是用USART3,接口芯片是SP3485.且没有120欧的终端电阻,两端是通过两根普通的导线连接,不是双绞线。现在的情况是,PC机串口调试助手接收到STM32发送的数据都为0,有时候又不能够接收到数据。STM32接收的PC发送的数据不为0,但不知道是否正确。程序是在另一块STM32的板子上调试成功的,而且接口芯片也是SP3485
    我将SP3485/RE=DE1DI=0.4V,但485A=3.42V,485B=0; 这与SP3485的真值表不符。
    我的理解是可能SP3485的驱动器坏了,请教下大家,看大家有没有遇到过这种情况,请熟悉485的大侠帮我指点下。

未命名1.jpg (13.63 KB )

未命名1.jpg

未命名2.jpg (25.7 KB )

未命名2.jpg

相关帖子

沙发
chunyang| | 2010-9-5 00:04 | 只看该作者
485是基于差分信号传输的,A>B和B>A分别表示一种逻辑状态,楼主的485接口芯片工作正常,其收发控制最好并联控制,同时选通时会自发自收,但不会影响总线逻辑,简单处理时将收发使能并联后由MCU控制即可,终端电阻必须加,长线或高速时还要和电缆的阻抗相匹配,终端电阻是用于消除信号反射带来的信号失真,短距低速时可在一端加,长距或高速时必须两端同时加,另外最好加入总线偏置,因为PC端485-232转换器往往是自动方向切换的。在本栏目和我的Blog中都有不少关于485的信息,楼主看先看看。

使用特权

评论回复
板凳
kubuco| | 2010-9-5 00:49 | 只看该作者
顶 CHUNYANG

使用特权

评论回复
地板
xuqj4490|  楼主 | 2010-9-5 10:47 | 只看该作者
非常感谢 CHUNYANG 的解答。
在我给出的电路图中是将收发使能并联后由MCU控制。 我用的是买的开发板,板上没有加入总线偏置和终端电阻,我想加入一个终端电阻试试。 还有 当/RE=DE置1,DI=0.4V时,应该是B>A,而我测得是A>B,这点我不明白。  确实应该多看看老帖,和CHUNYANG 的BLOG。
再次感谢 CHUNYANG !

使用特权

评论回复
5
chunyang| | 2010-9-6 11:19 | 只看该作者
B>A=0,注意测试是否正确,PIN6是A脚、PIN7是B脚。

使用特权

评论回复
6
xuqj4490|  楼主 | 2010-9-6 21:27 | 只看该作者
确实是A>B,我也注意了引脚。
后来我用示波器测了下AB间的波形,当485发送的时候只有一个单一的正脉冲,我想这就是为什么我一直接收到0的原因,正确的波形应该是正负脉冲序列,也就是在一位一位的传送0或1。所以我想应该是485接口芯片的驱动器是坏的,因为接收是正确的。
感谢 chunyang!

使用特权

评论回复
7
rain_t| | 2010-9-10 16:57 | 只看该作者
AB 线上需要加稳压管,适当加些电路

使用特权

评论回复
8
sampson21| | 2010-9-10 17:07 | 只看该作者
先把波特率降低试试,分开找原因,然后再提高波特率。

使用特权

评论回复
9
kanprin| | 2010-9-14 08:12 | 只看该作者
SP485我们碰到一批(1012)很多有问题的,当AB悬空时,RE应该输出高,而实际却输出低。

使用特权

评论回复
10
xuqj4490|  楼主 | 2010-9-14 11:37 | 只看该作者
问题我已经解决了。
结果很杯具的是开发板的SP3485虚焊了,重新焊接下就好了

使用特权

评论回复
11
286310891| | 2010-9-16 22:49 | 只看该作者
差分信号抗干扰还是比较强的

使用特权

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

本版积分规则

9

主题

33

帖子

2

粉丝