guoyvv 发表于 2023-11-12 18:33:18

做了一块工控板, 用的stc单片机, 接负载跑几个小时会死掉

本帖最后由 guoyvv 于 2023-11-12 19:25 编辑

一块冷库的工控板, 用继电器控制压缩机, 用可控硅控制加热管, 有时候会出现stc单片机死机的情况.
用的stc8a8k64d4, 用双路变压器做电源隔离
外部晶振, RST脚用做普通IO
晶振用的11.0592MHz
可以确认是单片机死机, 因为控制功能和串口通讯功能都失效了
请帮忙看看有没是要修改的地方没有, 谢谢!

2avr 发表于 2023-11-12 18:42:53

各路输出都做了隔离,电源也分了两路,死机问题大概率出在程序吧!

amigenius 发表于 2023-11-12 19:04:12

1. 51貌似没有HartFault,而且逻辑估计不太复杂,软件有可能有问题,但估计概率不大,另外没有开狗?
2. 地平面惨不忍睹,建议地平面尽量完整,成本允许的上4层板,留一内层是完整地。如果成本不允许,地的过孔尽量多,线尽量粗,地回路尽量又粗又短。
3. 二十几年前用51的时候,晶振是很敏感的,晶振尽可能靠近芯片,晶振负载电容的地尽量和芯片的地又短又粗的连接,晶振外壳接地。
4. 由于没有原理图,但PCB粗看一下,很多外部接口处于裸跑状态,不烧已经是踩狗屎运,外部干扰从接口跑入打死MCU一点不奇怪。
5. MCU去耦又少又远
6. 另外,您这强电部分,完全不符合爬电距离啊,来电灰尘和潮气,漏电炸板等可能性极大,总体真是惨不忍睹啊

guoyvv 发表于 2023-11-12 19:24:03

amigenius 发表于 2023-11-12 19:04
1. 51貌似没有HartFault,而且逻辑估计不太复杂,软件有可能有问题,但估计概率不大,另外没有开狗?
2. 地 ...
(引用自3楼)

{:sweat:} 有原理图, pdf版本的,麻烦您看下
有看门狗

lb0857 发表于 2023-11-12 20:08:12

冷库房间使用场景,是不是低温方面影响。
输入端子控制io有哪些,看pcb没有隔离处理吗?
有狗死机情况不多见,定时器中断中喂狗不大可能吧。
都工控板了,有源晶振加一个外置max8xx系列电压监控芯片,多不了几块钱。换一个安心安稳。

guoyvv 发表于 2023-11-12 20:15:11

lb0857 发表于 2023-11-12 20:08
冷库房间使用场景,是不是低温方面影响。
输入端子控制io有哪些,看pcb没有隔离处理吗?
有狗死机情况不多 ...
(引用自5楼)

输入确实没有隔离, 或者保护
之前一版mcu端没有加防反流二极管, 稳压二极管, 也死过, 现在加了已经

rei1984 发表于 2023-11-12 20:18:11

guoyvv 发表于 2023-11-12 20:15
输入确实没有隔离, 或者保护
之前一版mcu端没有加防反流二极管, 稳压二极管, 也死过, 现在加了已经
...
(引用自6楼)



很简单的问题。   在rst 叫 加一个max809或者类似的芯片。。然后拿到现场去烤鸡。 看看能不能解决这个问题

lb0857 发表于 2023-11-12 20:18:29

工控产品,输出控制io加反相器驱动,输入隔离之后加施密特缓冲器。
参考一下国外plc线路板,有收获

wye11083 发表于 2023-11-12 20:20:46

guoyvv 发表于 2023-11-12 20:15
输入确实没有隔离, 或者保护
之前一版mcu端没有加防反流二极管, 稳压二极管, 也死过, 现在加了已经
...
(引用自6楼)

打log,一个一个代码定位,看看死在哪。可能程序里面在while(1)一个实际状态不正确的信号。。

另外注意中断嵌套的话,栈是不是溢出了。可以关掉中断嵌套测试一下。

onepcb_xg 发表于 2023-11-12 21:20:05

amigenius 发表于 2023-11-12 19:04
1. 51貌似没有HartFault,而且逻辑估计不太复杂,软件有可能有问题,但估计概率不大,另外没有开狗?
2. 地 ...
(引用自3楼)

说得很对。楼主未必能懂字面后的意思,和怎样尽可能优化,奈何。

Firman 发表于 2023-11-12 22:50:17

万不得已,不要用复位囗做ⅠO

饭桶 发表于 2023-11-13 07:14:05

晶体外壳最好接地,晶体太远。

阿豪博士 发表于 2023-11-13 08:39:24

1、去掉晶振,使用内部晶振;
2、你的板子死机的原因,是从触点继电器进去的。

pulan 发表于 2023-11-13 08:43:35

本帖最后由 pulan 于 2023-11-14 08:25 编辑

外部加一个DC24V电源,板子上电源都用DC/DC隔离模块。

zcllom 发表于 2023-11-13 08:56:46

用STC以来,做了好多机器。从没用过外部晶振

位卑未敢忘忧国 发表于 2023-11-13 09:40:57

这个电路图感觉没有什么问题,我们做的产品也是这个,除了芯片不同其他都差不多,建议把晶振焊下来,使用内部RC.

guoyvv 发表于 2023-11-13 21:23:03

多谢大家的回答.
问题还在测试.
目前感觉还是软件问题, 具体就是函数嵌套层数太大, 传参太多.
另外, 在keil里, 设置成large模式, 这样的话, data区域就会大大减少, 跑了3个小时没出问题.
我总结下来, stc单片机性能还是太弱了, 所以没法用stm32的方式去写程序, 只能说程序尽量简单吧

当然各位说的硬件上的问题, 后续打板也慢慢改掉, 毕竟保护越多, 越稳定
非常感谢!!!!

lb0857 发表于 2023-11-13 22:05:26

嵌套太多,死机
某一个死循环中还喂狗了吗?

z123 发表于 2023-11-13 22:06:18

NB,这个485电路可以这样用吗?稳定吗?

songyongpan 发表于 2023-11-13 23:35:31

阿豪博士 发表于 2023-11-13 08:39
1、去掉晶振,使用内部晶振;
2、你的板子死机的原因,是从触点继电器进去的。
...
(引用自13楼)

你的第二点可以细说一下吗?

rainbow 发表于 2023-11-13 23:47:53

songyongpan 发表于 2023-11-13 23:35
你的第二点可以细说一下吗?
(引用自20楼)

触点开关时打火产生干扰的可能性最大。

H2O123 发表于 2023-11-14 09:16:10

lb0857 发表于 2023-11-12 20:18
工控产品,输出控制io加反相器驱动,输入隔离之后加施密特缓冲器。
参考一下国外plc线路板,有收获 ...
(引用自8楼)

有电路图吗?
页: [1]
查看完整版本: 做了一块工控板, 用的stc单片机, 接负载跑几个小时会死掉