有没有用STC8H单片机做485通讯产品的大神,求助。
本帖最后由 chineseboyzxy 于 2024-11-30 08:36 编辑STC8H3K64S2-LQFP48做了一批产品,485通讯测试时出了一点问题,和电脑用USB转485转换器通讯正常;和安卓工业主机用USB转485转换器通讯正常;和安卓工业主机板载的485直接连接通讯,数据出现错乱丢包。还请哪位大神分析一下到底是哪里的问题,单片机的内部时钟在485通讯中靠不靠谱呢。收发转换是单独管脚控制的,从来不用三极管自动转换电路,不靠谱。
时钟频率、串口配置、数据包、数据波形都看看呗 大概率是硬件问题。贴一下电路吧 建议将485通信的原理图贴出来 是不是使用了自动换向芯片?
降波特率先试试 时钟是否准确,有可能前两种主板容错率高,能识别,第三种不行。 如果没有仪器,人为的调整波特率,比如,使用9600通信,单片机写个9000或者10000,看有没有正常。 盲猜使用了三极管反相驱动REDE的收发自动切换电路。 oufuqiang 发表于 2024-11-29 22:23
盲猜使用了三极管反相驱动REDE的收发自动切换电路。
不好意思,电路图忘记上传了,收发是单独管脚控制的。 STCMCUNT015 发表于 2024-11-29 16:48
建议将485通信的原理图贴出来
不好意思,电路图忘记上传了。 本帖最后由 dukedz 于 2024-11-30 09:02 编辑
没共地吧。还有,不要串 100R 的电阻,太大了,建议用 usb 用的共模电感
是不是波特率太快了 发送接收单独控制的话 要注意下转换时机 为哈不怀疑是安卓485的问题呢?抓一下安卓485发送和接收的信号看看啊
估计板载485口有120欧的终端电阻,加上你的485口的两个100欧电阻,猜测信号不好 R22,R23都改成47Ω试试。也许是某端波特率偏离了 xch 发表于 2024-12-1 21:10
R22,R23都改成47Ω试试。也许是某端波特率偏离了
不好意思,原理图忘记改了,实际用的全的33R的电阻,画图时是随便复制过来的。 是不是线路上有高频干扰,你这个485是隔离后的输出吗? USB转485好用是因为一般USB有隔离了,但是485不一定有隔离。 用逻辑分析仪抓一下看看 1.RS485是异步通讯,这就要求时钟差别不能太大。晶振的误差尽量小。用在温度变化大的场合要选温漂小的晶振;
2.RS485最高通讯速率与通讯距离有关,距离远要尽量波特率尽量低;
3.RS485收发转换是通过引脚控制实现的,要考虑延迟时间。每次切换收发状态后,要延迟一下,等总线状态稳稳定后和下位机或主机完成状态切换定后在发送数据。
页:
[1]
2