chineseboyzxy 发表于 2024-11-29 12:59

有没有用STC8H单片机做485通讯产品的大神,求助。

本帖最后由 chineseboyzxy 于 2024-11-30 08:36 编辑

STC8H3K64S2-LQFP48做了一批产品,485通讯测试时出了一点问题,和电脑用USB转485转换器通讯正常;和安卓工业主机用USB转485转换器通讯正常;和安卓工业主机板载的485直接连接通讯,数据出现错乱丢包。还请哪位大神分析一下到底是哪里的问题,单片机的内部时钟在485通讯中靠不靠谱呢。收发转换是单独管脚控制的,从来不用三极管自动转换电路,不靠谱。

LcwSwust 发表于 2024-11-29 14:05

时钟频率、串口配置、数据包、数据波形都看看呗

jackyhuang1988 发表于 2024-11-29 14:30

大概率是硬件问题。贴一下电路吧

STCMCUNT015 发表于 2024-11-29 16:48

建议将485通信的原理图贴出来

jobszheng 发表于 2024-11-29 16:57

是不是使用了自动换向芯片?
降波特率先试试

full_stack 发表于 2024-11-29 18:02

时钟是否准确,有可能前两种主板容错率高,能识别,第三种不行。

full_stack 发表于 2024-11-29 18:04

如果没有仪器,人为的调整波特率,比如,使用9600通信,单片机写个9000或者10000,看有没有正常。

oufuqiang 发表于 2024-11-29 22:23

盲猜使用了三极管反相驱动REDE的收发自动切换电路。

chineseboyzxy 发表于 2024-11-30 08:36

oufuqiang 发表于 2024-11-29 22:23
盲猜使用了三极管反相驱动REDE的收发自动切换电路。

不好意思,电路图忘记上传了,收发是单独管脚控制的。

chineseboyzxy 发表于 2024-11-30 08:37

STCMCUNT015 发表于 2024-11-29 16:48
建议将485通信的原理图贴出来

不好意思,电路图忘记上传了。

dukedz 发表于 2024-11-30 09:00

本帖最后由 dukedz 于 2024-11-30 09:02 编辑

没共地吧。还有,不要串 100R 的电阻,太大了,建议用 usb 用的共模电感

xionghaoyun 发表于 2024-11-30 15:22

是不是波特率太快了

海洋无限 发表于 2024-11-30 21:25

发送接收单独控制的话   要注意下转换时机

瞎折腾 发表于 2024-12-1 08:55

为哈不怀疑是安卓485的问题呢?抓一下安卓485发送和接收的信号看看啊

mxj100311 发表于 2024-12-1 14:27

估计板载485口有120欧的终端电阻,加上你的485口的两个100欧电阻,猜测信号不好

xch 发表于 2024-12-1 21:10

R22,R23都改成47Ω试试。也许是某端波特率偏离了

chineseboyzxy 发表于 2024-12-2 08:36

xch 发表于 2024-12-1 21:10
R22,R23都改成47Ω试试。也许是某端波特率偏离了

不好意思,原理图忘记改了,实际用的全的33R的电阻,画图时是随便复制过来的。

99288697 发表于 2024-12-2 09:15

是不是线路上有高频干扰,你这个485是隔离后的输出吗? USB转485好用是因为一般USB有隔离了,但是485不一定有隔离。

沈阳亿源电子 发表于 2024-12-2 22:25

用逻辑分析仪抓一下看看

XZL 发表于 2024-12-3 09:25

1.RS485是异步通讯,这就要求时钟差别不能太大。晶振的误差尽量小。用在温度变化大的场合要选温漂小的晶振;
2.RS485最高通讯速率与通讯距离有关,距离远要尽量波特率尽量低;
3.RS485收发转换是通过引脚控制实现的,要考虑延迟时间。每次切换收发状态后,要延迟一下,等总线状态稳稳定后和下位机或主机完成状态切换定后在发送数据。
页: [1] 2
查看完整版本: 有没有用STC8H单片机做485通讯产品的大神,求助。