发 帖  
张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件, 👉戳此立抢👈

[经验] 迪文屏和电脑&单片机串口通讯详解附解决方案

2019-2-18 12:00:40  3407 单片机 液晶屏 ARM
分享
0
迪文屏和电脑&单片机进行串口通讯的时候,有时会出现一些异常。大多数不是串口屏出现问题,简单配置处理一下就可能迎刃而解。以下就是问题出现的原因和解决方案:

问题一:串口屏和电脑连接异常 原因A: 串口工具打开后,刷新不到串口号串口。
解决方法: 大部分的台式机会有一个串口1,这个就是电脑的DB9出口,一般用DB9转接延长线,是可以和db9的进行RS232通讯,现在大部分的笔记本电脑没有串口1,通常用串口转接线、转接板,通过USB转出TTL,RS232,RS485,打开设备管理器,需要更新串口驱动。通讯后,串口号不能选错,一般的串口通信工具,HEX发送需要勾选,这个是通讯的前提。



原因B: 屏发出来的数据在 串口工具表现出来是乱码,接收不到数据。
解决方法: 波特率是否匹配、检查串口电平是否错误,和转接板芯片不匹配。


原因C: 接线错误。
解决方法: 在RS232或者 TTL通讯是需要3根线才能看到有接收、发送交互的通讯的,地线G、收R或者发T,其中信号地是一定要接的,通常串口屏发出来通常用DOUT、或者TXD、TX、T、232T 等英文缩写表示,串口屏的接收用的DIN、RXD、RX、232R 等英文缩写表示,信号地是GND、G来表示。通常要交叉接线,也就是串口屏的R接电脑的T,串口屏的T接电脑的R。在RS485接线中,也就是需要至少2根线,简单的说就是A接A,B接B,RS-485半双工模式接线时将T/R+接对方的A+、T/R-接对方的B-。


原因D: DGUS屏开启了校验,或者升级、降级为其他的内核,导致通讯不上。
解决方法: 检查屏的系统配置,DGUS1的屏有必要在保证通讯正常的情况,用串口升级内核处理。


原因E: DGUS2下载了cfg文件之后就不能通讯了。
解决方法: 检查屏的CFG系统配置,06 07的位置写了5AA5开启了系统时间校准之后,就容易把屏通讯弄得波特率不对,在屏上电的时候,收到的指令不是发送的校准的30个55之内的规定指令导致。一般用户下载cfg的时候06 07位置都写0000最好,如果是t5时钟误校准了,那么从新按照正确的方法操作。


问题二:串口屏和单片机通讯异常
原因A:接线错误
解决方法: 通常要交叉接线,也就是串口屏的R接单片机的T,串口屏的T接单片机的R。 GND接GND,在RS485接线中,也就是需要至少2根线,简单的说就是A接A,B接B,RS-485半双工模式接线时将T/R+接对方的A+、T/R-接对方的B-。


原因B: 接ttl和RS232兼容性电平选择不对。
解决方法: 电平匹配问题,串口屏的电平是TTL还是RS232,有的屏后面有短接处可以短接进行跳变如下图红框处。
微信图片_20190218113002.png
一般的DGUS屏比如的C070_15WT 、C050_04WT 和用户CPU的连接距离很短,为了提升波特率又方便接PC调试,迪文的TTL/RS232兼容接口,设计上就是用74系列芯片逻辑门做了反向,发送还是TTL电平,只是反过来,这个不是标准的RS232,一般这样通讯距离不要超过半米,和电脑用DB9是可以进行RS232通讯的 ,屏后面的短接跳线短接后会变成3.3v TTL标准通讯电平。 迪文15/16/17/18 T系列带外壳的产品(比如DMT64480T057_18WT),RS232串口是严格的RS232规范,输出电平是+/-5V以上。这种屏通讯距离可以长很多(理想环境是10米)。

通常情况,TTL/RS232兼容接口的屏在距离超过1米以上就会发现数据丢失现象比较严重,如果用户的单片机是用了标准的RS232芯片,那么如果进行长距离通讯呢,可以采用如下的办法,屏上面短接为标准3.3v TTL通讯电平,用户做一个TTL转接RS232的标准小板子,或者改用迪文有标准RS232接口的屏。


原因C:电平不完全匹配迪文屏是3.3V TTL,用户有的 5V的串口电平单片机。
解决方法:大部分芯片都兼容3.3和5v,可以采用串接电阻直连的方法,电阻常用330或470欧姆(留个上拉做备用);也可以用串接高速二极管,或是用三极管做电平开关。也可以参考下图的转换电路


下图是3.3V和5V电平的TTL串口转化电路,其中SS14可用其他压降小于0.3V的肖特基二极管代替。
微信图片_20190218113457.png

原因D:通讯芯片本身问题。(如果用户采购买的232芯片和之前一直用的不一样,多半要考虑下这个问题的情况)


解决方法: 由于很多小公司没有资源,很难从原厂拿货,而MAX3232、MAX232假货非常多,所以实际项目中对接用户的控制器,可能会遇到这种情况,用示波器测量下232IC的输入、输出波形就清楚了。
1、先用串口助手单独测评,测试一定时间后计算发送和屏响应的数据,帧数是否一致,确定屏通信是否有问题。
2、测试Max232芯片接收、发送波形是否按程序设计的时间在走,发现是否存在丢波、波形对齐不整齐等现象。如下一个例子:图左图是不正常的232芯片,(UTC3232输出就不对称)的第1个字节解调波形严重失真。右图是正规的芯片波形是对称的。
微信图片_20190218114256.png 微信图片_20190218114233.png

原因E:波特率的误码率太大,影响通讯。
解决方法: 如何降低误码率,由于RS232/TTL 芯片(如MAX232)的旁路匹配电容,储能能力不足,导致波形失真,建议使用4 颗105 电容。如图。
微信图片_20190218114650.png
如果还是怀疑有波特率误码问题,串口屏和电脑通讯没有问题,控制板和电脑通讯也没有问题,但是控制板和串口屏通讯就不正常,需要用户将二者的波特率用示波器测试出来,对比波形分析是否波特率误码,迪文屏是可以自定义波特率来修正二者的误差的。

原因F:数据被干扰,影响通讯,或者本身单片机程序有问题了,发送的指令错误。
解决方法: 用串口引线监测的办法进行分析。这种方法听上去难,其实需求的设备极其简单,非常容易操作。如图所示,是市面上一款常见的USB转TTL、RS232、RS485的通讯小板子,测试方法参考:例如测试某个ttl通讯的数据是否正常,将小板子和电脑的USB口插上,驱动安装完成后,用杜邦线m接着转接板的GND,用杜邦线n接着转接板的RXD,杜邦线另外一头最好用工头的(方便用两只手可以戳着代测试引脚进行测量),将m和n两根线另一头分别接着串口屏的GND和RXD(或TXD),这样控制板在给屏发数据的时候,就能够捕捉到经过单片机发给屏的数据了,用串口工具收取之后进行分析查看。(这种方法适用于分析、排查各类与通讯指令不正常的故障原因)
微信图片_20190218114936.png

原因G: TTL通讯屏和电脑能通讯、控制板和电脑也能通讯,但是屏和控制就是通讯不上。
解决方法: 不妨用示波器测量下波形,如果电路输出的高电平低于3.3V, 分以下
两种情况去考虑。
1. 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值,上拉电阻也能增强抗干扰能力。一般情况下,串口通信用TTL连接的时候,因这种连接的通信距离很近(建议控制50cm以内),极易受到干扰。为了消除TTL线上的干扰,所以,除了两个脚上加5-10K的上拉电阻,还再接一个小容量的电容,是可以滤到高频干扰脉冲。这种接法可以看成是阻容滤波电路。
2. 测量是否由于负载原因,给控制板通讯芯片供电电压过低了,导致的输出电平也变低。


相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /8 下一条

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