tingfengqilang 发表于 2024-4-27 18:07:03

485总线拖死求助

   STM32+485通信,大部分时间工作正常,如果485总线通信频繁提高,偶发出现485总线挂了,也就是串口调试助手看数据是发送出去了,但是示波器看总线上没有电平变化,必须重启才能正常。求助各位分析下硬件是不是有什么缺陷隐患原因?

lb0857 发表于 2024-4-27 18:35:53

硬件原理图发出呗,
这玩意没有啥保密的,基本上网络都有。
一般情况,软件从机通讯错误处理不当占比率较高。

有些,上位机发送间隔一定要长。否则会死机。
有些是多读几个寄存器就让从机一直处于发送状态,造成通讯堵塞。

yuyu87 发表于 2024-4-27 18:39:39

lb0857 发表于 2024-4-27 18:35
硬件原理图发出呗,
这玩意没有啥保密的,基本上网络都有。
一般情况,软件从机通讯错误处理不当占比率较高 ...
(引用自2楼)

这种问题是软件引起的,与硬件无关。

三年模拟 发表于 2024-4-27 18:50:19

can总线比485优先就提现出来了,can ip有仲裁

ysu_er 发表于 2024-4-27 20:20:08

估计是总线上某个节点收发器一直处于发送状态导致

foxpro2005 发表于 2024-4-28 08:32:34

同意楼上,应该是程序问题,让某个节点一直处于发送状态了

tingfengqilang 发表于 2024-4-28 16:39:35

lb0857 发表于 2024-4-27 18:35
硬件原理图发出呗,
这玩意没有啥保密的,基本上网络都有。
一般情况,软件从机通讯错误处理不当占比率较高 ...
(引用自2楼)

你好。
发送的图纸:


接收的图纸:

tingfengqilang 发表于 2024-4-28 16:39:52

foxpro2005 发表于 2024-4-28 08:32
同意楼上,应该是程序问题,让某个节点一直处于发送状态了
(引用自6楼)

软件应该没问题

lb0857 发表于 2024-4-28 16:42:16

一主几从机?

zqf441775525 发表于 2024-4-28 17:29:59

同意5楼,大概率是某一个节点的DE引脚失控了,一直处于发送状态占住总线。

初音之恋 发表于 2024-4-28 17:38:53

C22 C23 电容多了容易导致波形畸变,硬件上看上去问题不大,重启哪个能恢复,是单片机还是转换器,说不定是STM32卡死了独占了总线,或者本身转换器垃圾发多了就要死

hz_fujian 发表于 2024-4-28 17:47:33

本帖最后由 hz_fujian 于 2024-4-28 17:49 编辑

第二张图,485总线远距离肯定不可靠,必须增加一条地线,共3根线。(参照西门子)

honami520 发表于 2024-4-28 17:58:19

一般是软件问题,一主一从的时候估计不出问题吧。估计就是多个从机的时候才出现问题的

XIE2099 发表于 2024-4-28 21:48:32

honami520 发表于 2024-4-28 17:58
一般是软件问题,一主一从的时候估计不出问题吧。估计就是多个从机的时候才出现问题的 ...
(引用自13楼)

485主机轮询多从机我也搞不定,现在索性不搞了。

foxpro2005 发表于 2024-4-28 22:18:18

你这485硬件电平接口规范有些乱,一会儿3.3V系统,一会儿5V系统
另外一般情况下接口上也会把GND也引出去,A,B,GND,避免不同系统中的电势差。(注: 有的系统中还要用带隔离的485电路)

hugohehuan 发表于 2024-4-29 00:54:22

本帖最后由 hugohehuan 于 2024-4-29 01:13 编辑

线上串个小电阻,看看电流流向,是谁出的幺蛾子
还有,那个三角形的地有问题

Elex 发表于 2024-4-29 01:04:47

tingfengqilang 发表于 2024-4-28 16:39
软件应该没问题
(引用自8楼)

确定?MCU的TXD波形正常?
485芯片的DE方向控制信号波形正常?

lb0857 发表于 2024-4-29 11:24:47

tingfengqilang 发表于 2024-4-28 16:39
软件应该没问题
(引用自8楼)

相反{:lol:}

youkebing 发表于 2024-4-29 12:20:50

应该是软件问题

qwe2231695 发表于 2024-4-29 12:32:56

出问题后复位stm32后就好了,复位的是主机还是从机?万用表看是不是有发送器在发送状态呢?发送状态点个灯咯。

tingfengqilang 发表于 2024-4-29 15:36:51

是不是收发延时时间太短???

Arm2048 发表于 2024-4-29 16:42:11

半双工通信,平时所有机都处于接收(/监听)状态;
只有主机发送查询命令(主机发送完毕转监听状态),地址对应的从机才应答/发送,发送完毕也转为监听状态;

tingfengqilang 发表于 2024-4-29 17:10:39

lb0857 发表于 2024-4-29 11:24
相反
(引用自18楼)

那你就自以为是吧哈哈

tingfengqilang 发表于 2024-4-29 17:11:11

youkebing 发表于 2024-4-29 12:20
应该是软件问题
(引用自19楼)

软件很简单,一个发送,一个接收。

tingfengqilang 发表于 2024-4-29 17:11:35

Arm2048 发表于 2024-4-29 16:42
半双工通信,平时所有机都处于接收(/监听)状态;
只有主机发送查询命令(主机发送完毕转监听状态),地址对应 ...
(引用自22楼)

是的。就是这样啊

tingfengqilang 发表于 2024-4-29 17:12:15

Elex 发表于 2024-4-29 01:04
确定?MCU的TXD波形正常?
485芯片的DE方向控制信号波形正常?
(引用自17楼)

是的,示波器测了

XIE2099 发表于 2024-4-29 19:52:26

本帖最后由 XIE2099 于 2024-4-29 19:55 编辑

tingfengqilang 发表于 2024-4-29 17:12
是的,示波器测了
(引用自26楼)

1.建议用逻辑分析仪捕获数据分析,对比.改不同波特率试试
2.若是怀疑硬件问题,直接替换(买几个周立功的485模块,还会有技术支持的)https://item.taobao.com/item.htm?id=611871028495&skuId=4479643410666&spm=a1z10.5-c-s.w4002-21261668766.12.45de686bpydpbt

icoyool 发表于 2024-4-30 08:40:02

100%是软件问题, 就是控制方向的引脚被锁高电平了.

ackyee 发表于 2024-4-30 08:47:04

485是用的cubemx 生成的底层吗?cubemx生成的 UART代码底层 频繁接收和发送 会直接把中断卡死,之前遇到过 然后就再也进不去了 。   解决方法 好像是去底层里修改

shiva_shiva 发表于 2024-4-30 09:25:14

示波器测量的ttl还是差分?

lb0857 发表于 2024-4-30 09:40:05

ackyee 发表于 2024-4-30 08:47
485是用的cubemx 生成的底层吗?cubemx生成的 UART代码底层 频繁接收和发送 会直接把中断卡死,之前遇 ...
(引用自29楼)

哦哦哦波特率多少的应用场景出现

ackyee 发表于 2024-4-30 10:19:32

lb0857 发表于 2024-4-30 09:40
哦哦哦波特率多少的应用场景出现
(引用自31楼)

哪怕9600 都出现过只要 发送的时候 被接收打断,还是说接收的时候被发送打断, 串口中断就再也进不去了


修改底层就好

d__xin 发表于 2024-4-30 11:03:24

先检查软件,电路看着没啥问题。

如果软件确实没问题,换个485芯片试试。

之前遇到过一批采购不知道从哪家搞的485很容易就被静电或者强干扰搞死了。要么发不出要么收不到偶尔485还发热。

换正品就没问题

redroof 发表于 2024-4-30 14:08:03

ackyee 发表于 2024-4-30 10:19
哪怕9600 都出现过只要 发送的时候 被接收打断,还是说接收的时候被发送打断, 串口中断就再也进不去了 ...
(引用自32楼)

485的发送逻辑如何能被接收打断?
收发器的模式设为发送,就无法接收了。
接收的时候被发送打断也不会发生啊,软件逻辑应该默认就是收,除非自己软件要发数据了才变成发。这并不是打断,而是你主动执行发送动作。
综上所述,只可能是写程序的自己逻辑混乱了

redroof 发表于 2024-4-30 14:11:06

tingfengqilang 发表于 2024-4-29 17:12
是的,示波器测了
(引用自26楼)

示波器测cpu发送脚的同时,也应当测方向脚。如果确认了自己的方向是发,发送数据也有,然后总线上的波形不是你期望的,那就是别人也在发,跟你冲突了。

yz_altang 发表于 2024-4-30 16:02:19

485芯片的地和tvs的地改成一个地试试

liao-ljj 发表于 2024-4-30 16:15:51

我猜测是软件问题,看看软件的故障寄存器...尤其是好几个中断类的.....发送前都清除.....

selme 发表于 2024-4-30 17:10:13

死机的时候一个一个的把从站拔掉看看是哪个不听话{:lol:}

akey3000 发表于 2024-4-30 18:12:29

ackyee 发表于 2024-4-30 08:47
485是用的cubemx 生成的底层吗?cubemx生成的 UART代码底层 频繁接收和发送 会直接把中断卡死,之前遇 ...
(引用自29楼)

是听说么,还是自己碰到过

lb0857 发表于 2024-5-1 07:16:14

akey3000 发表于 2024-4-30 18:12
是听说么,还是自己碰到过
(引用自39楼)

有可能说的是全双工的488电路

ackyee 发表于 2024-5-2 11:09:00

akey3000 发表于 2024-4-30 18:12
是听说么,还是自己碰到过
(引用自39楼)

自己碰到过   我还发帖子过
页: [1]
查看完整版本: 485总线拖死求助