东方人的梦 发表于 2018-4-10 11:24:14

STM32F407运行半个月后出现死机

产品是做工控的,MCU采用的STM32F407,双MCU用SPI通讯,1块做通讯,一块做控制。产品具有单机独立工作和主备从并联工作两种方式,并联时采用的CAN总线通讯,控制采用modbus TCP通讯到控制室。目前遇到问题,当产品单机独立运行时没有问题,采用主备从并联方式运行时,主机、备机、从机之间采用CAN总线交互数据,主机运行时,备机处于待机状态,从机运行状态跟随主机,主机在运行半个月后,通讯芯片出现死机,通讯中断,状态指示灯闪烁停止,控制芯片正常运行,控制停止输出,工作自动切换到备机运行,备机由待机状态切换为运行,从机正常工作。主机断电恢复后,启动到待机模式,又工作半个月后,备机通讯芯片死机,控制芯片正常运行,由于通讯芯片死机,中断输出。工作自动切换到主机运行,从机正常工作。各位大神帮忙分析一下,这种现象问题会不会出现在CAN通讯部分?还是其他问题啊?会不会是系统预分配的堆栈空间不够,溢出引起的?

bargagebaobei 发表于 2018-4-10 11:38:28

can通讯使用的驱动芯片发热过吗 会爆掉 你查查看

东方人的梦 发表于 2018-4-10 11:58:03

bargagebaobei 发表于 2018-4-10 11:38
can通讯使用的驱动芯片发热过吗 会爆掉 你查查看

没有,这个看过,而且重启后马上就正常了。

wenyangzeng 发表于 2018-4-10 11:58:25

建议在系统空闲时定期初始化CAN

bargagebaobei 发表于 2018-4-10 12:03:47

东方人的梦 发表于 2018-4-10 11:58
没有,这个看过,而且重启后马上就正常了。

我遇到过多次爆掉的情况   请问您重启之后就正常收发了 还是说用示波器卡过波形

东方人的梦 发表于 2018-4-10 12:04:04

wenyangzeng 发表于 2018-4-10 11:58
建议在系统空闲时定期初始化CAN

因为是工业设备,一年365天都在运行,没有空闲时间,因为从机的工作状态是从主机来,如果从机和备机检查5个工作周期没有接受到主机信息,则备机会替换掉主机工作。

东方人的梦 发表于 2018-4-10 12:07:11

bargagebaobei 发表于 2018-4-10 12:03
我遇到过多次爆掉的情况   请问您重启之后就正常收发了 还是说用示波器卡过波形 ...

重启后就正常收发了,而且用示波器测试波形也是正常的数据帧

任风吹吹 发表于 2018-4-10 16:58:11

这种问题一般是只能你自己解决,想要知道原因并彻底解决问题,建议将打印信息输出来,监控程序运行流程,关键时候打印出出错时相关参数。做好了这些后才能追溯你的问题。老老实实一步一步来吧,其他都是猜,没实际意义。

feixiang20 发表于 2018-4-11 03:07:49

既然重启可行,那就检查硬件发热元件以及初始化代码,查看芯片硬件复位

不吃肉的羊 发表于 2018-4-11 10:26:57

这种偶然性的死机很麻烦,我也遇到过蛮多次
1.硬件问题
被静电打死的情况比较多,你试试花两块钱买个打火机,把里面那个啥拿出来(会放电的那个),在产品外壳上作死的打
PCB布局不合理,电源不稳定等,这个拿示波器慢慢测吧
2.软件问题
比较艹蛋,如果是发生比较多,可以用仿真器连着,然后看芯片的情况
如果是偶然性的,那就尝试做个串口或者其他的能显示出来的方式,把一些怀疑的地方打印出来

没什么好的帮助,祝楼主好运
页: [1] 2 3
查看完整版本: STM32F407运行半个月后出现死机