首页 » 科学 » 【案例分享】芯海F031C8T6用在485通信时电源不接地就去世机_测试_存放器

【案例分享】芯海F031C8T6用在485通信时电源不接地就去世机_测试_存放器

神尊大人 2025-01-14 03:17:29 0

扫一扫用手机浏览

文章目录 [+]

二.问题排查与锁定

首先确认下利用环境:在调试测试的时候,产品链接着JLINK,因此经由反复测试,创造几个征象:

1.数据较短时不去世机,比如只读5个寄存器,少量写入也不去世机;一次性读取较多寄存器100%去世机。

【案例分享】芯海F031C8T6用在485通信时电源不接地就去世机_测试_存放器 【案例分享】芯海F031C8T6用在485通信时电源不接地就去世机_测试_存放器 科学

2.给产品供电的开关电源换成带接地线的不去世机,调试的时候连接了JLINK共地,因此也没去世机。

【案例分享】芯海F031C8T6用在485通信时电源不接地就去世机_测试_存放器 【案例分享】芯海F031C8T6用在485通信时电源不接地就去世机_测试_存放器 科学
(图片来自网络侵删)

总结起来便是:只要电源不接地,一次性读取大量寄存器就去世机,该产品用ST的芯片大批量生产利用了5年以上,从未涌现过此类问题。

三.问题剖析:

从各个方面来看,这个问题都该当是硬件的问题,问题该当和电源以及485通信有关,但无法调试,由于不论是在线调试,还是用示波器查看,都要首先公地,电脑和示波器都是接地的,因此连接后,不会涌现任何问题。

因此打算直接改利用哀求,采取带接地线的开关电源,本钱有一定增加,但也相对更安全。
但我以为改硬件并不是最优解,尤其是涉及到利用现场重新布线;最优解该当是软件上来优化。

根据前面测试创造的问题以及履历来推断,这个问题更多的是通信滋扰导致,比如非常多的串口中断,导致MCU无法退出中断;如果是此问题,那该当跟串口的输入输出配置关系比较大,排查到的IO口配置函数如下:

该函数由官方示例程序移植过来,只调度了波特率,整体配置与ST相似。

下面是ST的串口配置

IO口的上拉设置均为启用,那如果启用上拉电阻提高IO口的抗滋扰能力,能不能避免骚扰旗子暗记的影响呢?

我试着把

gpio_config_struct.gpio_pull = GPIO_PULL_NO_PULL;

改为

gpio_config_struct.gpio_pull = GPIO_PULL_PULL_UP;

编译测试OK。

超长数据读取测试OK。

电源不接地也不去世机。

到此终于办理了这个小问题,想在国际芯片大厂断货,大量工程师开始转用海内的MCU,虽然很多号称100%兼容ST,但真正落实到项目,还是要多加测试,很多方法在ST上没问题,在国产MCU上却不一定。

标签:

相关文章