搜索
bottom↓
回复: 15

遇坑485通信异常,挖一下是哪儿的问题

[复制链接]

出0入93汤圆

发表于 2021-7-12 09:09:12 | 显示全部楼层 |阅读模式
普普通通的485电路,一直在用,设备端写的是任务式的采集模式,最大可以采集32个传感器或者寄存器,一直使用正常。
这次外接的传感器比较多,想着测一下,结果出问题了。

先上原理图


使用modbus slave,模拟23个传感器。


测试了三个板子,第一个正常,掉以轻心了。第二个,采集到最后一个传感器的时候,传感器返回错误,通过 bushound监听,最后一个传感器发送时数据就错了。


最后几个传感器,地址是1 2 3 4 5,每个两个寄存器,程序按两个传感器来处理。到第五个的时候,发出去的数值已经不对了,所以传感器返回的错误。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入93汤圆

 楼主| 发表于 2021-7-12 09:12:52 | 显示全部楼层
不小心发出去了。继续编辑。

第三个设备,现象更加异常,采集到低17个传感器的时候,会触发看门狗复位,关掉后,发现卡死在了 循环发送查询寄存器那里。


                                        for(unsigned char t = 0; t < 8; t++)
                                        {
                                                USART1->DR = rs485_buf[t];               
                                                while((USART1->SR&0X40)==0);
                                        }
卡在了while这里

现在的现象不是偶发,每个板子的故障是固定的,100%复现,比如复位这个,每次到第17个传感器采集,肯定会复位。

分析软件可能的问题,最大的可能性是DMA的空闲中断不好用,以前也遇到过,比如校验模式不对,或者发送的数据有问题,连续字符串中间加了延迟,会造成DMA异常中断。

有一个正常的板子,我随便换了一个单片机,结果还是正常的。

下一步拆掉485芯片,直接用TTL试试。

出0入93汤圆

 楼主| 发表于 2021-7-12 09:20:41 | 显示全部楼层
换成TTL串口,故障依旧非常稳定,到23通道,发送错误。


看来不是RS485电路的问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2021-7-12 09:23:19 | 显示全部楼层
这种循环最好改造一下,做成超时的那种。

出0入93汤圆

 楼主| 发表于 2021-7-12 09:49:04 | 显示全部楼层
最新结果,换了一个USB转TTL串口23个全部解析成功了。看来不能排除485的问题,前面3楼测试可能有点问题,结论不正确。
继续测试。

出0入93汤圆

 楼主| 发表于 2021-7-12 10:43:54 | 显示全部楼层
翻车总在不经意间。经过排查,推测不是485的问题,也不是串口的问题,而是写单片机片上EEPROM的问题。

23个传感器一包写入片上eeprom,好像后面数据没写全,丢了一部分,造成到某个传感器出现故障,所以故障现象非常稳定,目前3个样板均正常,等后面小批量几十个到了,再进一步验证,对写EEPROM进行必要的拆包和校验。

出0入4汤圆

发表于 2021-7-12 11:03:48 | 显示全部楼层
这种能100%复现的故障,最终都能解决。

出100入101汤圆

发表于 2021-7-12 11:32:10 | 显示全部楼层
不错,很好的经验分享

出0入0汤圆

发表于 2021-7-12 11:53:30 | 显示全部楼层
没看懂,eep有问题为啥串口发送卡死了

出0入93汤圆

 楼主| 发表于 2021-7-12 12:05:17 | 显示全部楼层
shiva_shiva 发表于 2021-7-12 11:53
没看懂,eep有问题为啥串口发送卡死了

读数错误这个,看监听数据,应该是03写成了00,类似这种,传感器参数不对,所以采集失败,这个前面有截图,可以分析出来。
写死的猜测是奇偶校验之类的地方错了。用DMA模式,如果校验方式对不上,容易连续触发空闲中断,造成复位,不过这个是猜测的,已经没有故障的板子了,等批量回来再继续复现,测试。
对速度要求不高的场景,还是不用dma,自己处理超时,更可靠一些。我这个懒得改了,已经进入维护末期的一套代码了。

出0入9汤圆

发表于 2021-7-12 12:34:38 来自手机 | 显示全部楼层
上下拉电阻小了,带不动,47k比较合适

出1325入193汤圆

发表于 2021-7-12 13:17:06 | 显示全部楼层
实验室能够复现的故障 最终都不是故障  

出0入0汤圆

发表于 2021-7-12 22:01:32 | 显示全部楼层
搭便车, 我有个项目也是用SP3485,在使用过程中很容易损坏,有时候一上电就击穿了,而且没有接其他485设备的,电路和LZ差不多的,电源是5V通过LM1117线性稳压3.3V,现在还查不出问题

出0入114汤圆

发表于 2021-7-18 15:49:58 来自手机 | 显示全部楼层
jbpan852 发表于 2021-7-12 22:01
搭便车, 我有个项目也是用SP3485,在使用过程中很容易损坏,有时候一上电就击穿了,而且没有接其他485设备 ...

测量上电瞬间电压

出100入101汤圆

发表于 2021-7-18 16:05:22 来自手机 | 显示全部楼层
jbpan852 发表于 2021-7-12 22:01
搭便车, 我有个项目也是用SP3485,在使用过程中很容易损坏,有时候一上电就击穿了,而且没有接其他485设备 ...

换正品maxim试试

出0入0汤圆

发表于 2021-9-25 01:59:15 | 显示全部楼层
4.7K的上下来可能太强了换10K吧,芯片的功率不一定能长时间撑上去,用示波器抓一下波形,看看那能不能满足芯片的识别要求
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-16 12:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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