打印
[应用相关]

部分产品随机死机,请大家提供解决思路(已解决)

[复制链接]
4212|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
KC_CEC|  楼主 | 2015-11-10 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 KC_CEC 于 2015-11-12 11:54 编辑

现象如下:
1、一批次产品(100台)中,有10台左右会发生死机,其他的工作稳定。烧写的程序是一模一样的。
2、死机现象:整机冷启动下,死机概率很大,有的一开机就会死。随着运行一段时间,温度上升死机概率慢慢减小。

尝试过的解决方案:
1、更换PCB绝大部分主芯片和单片机外围电路,死机依旧。只有更换PCB才会正常,但是PCB是金百泽做的,应该不会是PCB质量问题。
2、使用的单片机为stm32f4,应用了STemwin,死机时代码会进入HardFault_Handler,通过查看代码出问题在STemwin库里面,所以没有办法继续查下去。
3、串口打印可能容易出BUG的代码段,但是证明那些位置都没有挂。。。

请帮忙提供思路,谢谢!


谢谢各位,已找到解决方法:
目前将F4读写SRAM的速度降低很多,低温测试10多台都可以正常稳定工作!

@laoxu 提供了正确的解决方法,佩服。

沙发
sail8498| | 2015-11-10 19:12 | 只看该作者
把有问题的电路板放洗板水里洗一下,或者用牙刷加洗板水洗一下,也许有效。
因为我试过做STM8的片子时因为用了焊膏没清洗导到十多片样板各种重启,后来发现是焊膏残留导至的。

使用特权

评论回复
板凳
KC_CEC|  楼主 | 2015-11-10 20:52 | 只看该作者
sail8498 发表于 2015-11-10 19:12
把有问题的电路板放洗板水里洗一下,或者用牙刷加洗板水洗一下,也许有效。
因为我试过做STM8的片子时因为 ...

贴片厂家最后都会洗一次,而且回来我们也检查过,是洗得比较干净的。
所以,应该不是这个问题导致的

使用特权

评论回复
地板
mei326| | 2015-11-10 21:41 | 只看该作者
我以前出现过32768的晶振导致死机的

使用特权

评论回复
5
643757107| | 2015-11-10 22:23 | 只看该作者
因为不是所有的都死机,那么可以考虑是不是硬件设计时候抗干扰能力不够,或者焊接的问题,如果抗干扰能力不够,就要看你具体的代码怎么操作了。

使用特权

评论回复
6
菜鸟同学| | 2015-11-10 22:41 | 只看该作者
内存非法访问。

使用特权

评论回复
7
m564522634| | 2015-11-11 07:26 | 只看该作者
你应该要知道HardFault_Handler产生的原因是什么才好做判断了

使用特权

评论回复
8
m564522634| | 2015-11-11 07:28 | 只看该作者
生产HardFault_Handler是原因有好多种了,你应该找到到是哪种

使用特权

评论回复
9
皈依| | 2015-11-11 07:41 | 只看该作者
本帖最后由 皈依 于 2015-11-11 07:44 编辑

ST可以把HardFault_Handler的故障信息打印出来的 一般都是硬件问题。
如果是双面板 板面比较大的话可能会因为温度的问题产生形变,导致贴片的虚焊出现不同的现象。
要仔细查看焊接点,有条件的话把每个焊点自己手工再焊接一遍
仅是猜测,但是这个问题我之前遇到过~

使用特权

评论回复
10
myxiaonia| | 2015-11-11 08:37 | 只看该作者
使用外部存储器了么

使用特权

评论回复
11
hyhmh| | 2015-11-11 09:06 | 只看该作者
应该是硬件上的问题,当然也可能有软件的参与(如上电过程,某些硬件缺陷,而软件又必须获得某此IO的支持才能进入下一步)
将有问题的机子对应的PCB,MCU及关键外围,手工再焊一遍——试着弄几台,看看效果。

使用特权

评论回复
12
shauew| | 2015-11-11 09:35 | 只看该作者
应该是程序死了,和硬件无关。
emwin给的都是库,源代码无法查看,建议按照用户手册来使用,注意接口参数,不匹配会出错。

使用特权

评论回复
13
lgq1542380129| | 2015-11-11 09:46 | 只看该作者
楼主把给emwin的内存空间开大点试试。

使用特权

评论回复
14
KC_CEC|  楼主 | 2015-11-11 10:09 | 只看该作者
myxiaonia 发表于 2015-11-11 08:37
使用外部存储器了么

用了外部sram

使用特权

评论回复
15
KC_CEC|  楼主 | 2015-11-11 10:12 | 只看该作者
lgq1542380129 发表于 2015-11-11 09:46
楼主把给emwin的内存空间开大点试试。

emwin没有应用到窗口,480*320的16位色TFT占用300K内存 我分配了350k。

使用特权

评论回复
16
KC_CEC|  楼主 | 2015-11-11 10:13 | 只看该作者
hyhmh 发表于 2015-11-11 09:06
应该是硬件上的问题,当然也可能有软件的参与(如上电过程,某些硬件缺陷,而软件又必须获得某此IO的支持才 ...

好的,我去试试

使用特权

评论回复
17
kseeker| | 2015-11-11 11:08 | 只看该作者
运行一段时间好转倒不一定就是温度的问题。可以试着用电吹风吹一下,或者放到电冰箱里冻一下。一般晶振受温度影响可能性较大。

使用特权

评论回复
18
eyesee2008| | 2015-11-11 11:15 | 只看该作者
做个温度循环试验看看,通过这个试验可以知道是不是焊接的问题,死机也可能是电压的问题,也有可能是时钟

使用特权

评论回复
19
泰山特曲123| | 2015-11-11 11:27 | 只看该作者
先排除是硬件还是软件问题吧!写简单或者已验证过的程序,看是否死机,排除硬件问题。排除软件问题,一个个功能模块删除,看问题出在哪个模块。初步怀疑是指针或数组溢出,又或者某个中断退不出来。

使用特权

评论回复
20
myxiaonia| | 2015-11-11 12:21 | 只看该作者

开机有没有对外部sram进行自检啊  就是写入并读回

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

169

帖子

1

粉丝