在某论坛闲逛,看到一篇帖子。本以为是个伸手要代码的学生党发的求助贴,没想到内容跟我想的不太一样,有点意思。
先看标题:
个人感觉标题不是很好,因为只要芯片没有太大的问题,晶振没有问题,晶振都能起振,起振后频率都正确。
至于他说单片机工作频率不对,给人的第一印象是代码有问题。
继续看帖子内容,通过描述我们可以得到几点信息:
1、晶振正常,程序能运行,但是效果不对。
2、同样的程序,别的板子能运行,某个板子就是不正常。
3、多重启几次,偶尔能出现正常运行的情况。
这些信息最关键的其实是第二点,这也是排查问题最有效的一种方法。把一个有问题的设备中,可能有问题的几个部分,依次替换到另一个正常的设备上。如果设备运行正常,说明该部分没有问题;如果运行异常,说明该部分有问题。
其实看完一楼的内容,有些经验的童鞋基本可以确定是硬件问题。但这个问题究竟是虚焊导致的,还是元器件本身有缺陷导致的,还不是很确定。
继续,看三楼作者的回复:
得到两点信息:
1、在主程序中延时(推测是for循环延时),运行正常;使用定时器中断计时,时间就乱了。
2、依然是同样的程序,在别的板子正常(推测应该是其它至少两块板子)。
楼主依然是通过程序验证,依然无法确定到底是焊接问题,还是元器件质量有缺陷。凭直觉,只能说单片机有缺陷的可能大一些。
如果想证明单片机有问题,需要把这个单片机拆下来,换到一个运行正常的板子上,看问题现象是否会复现。
接下来看四楼,一位高手的回复,以及楼主的回复,有用的信息都出来了。
高手表达了三点意思:
1、芯片出货,不是100%正常,是有不良率的。而且这属于芯片内部问题,个人无法解决。这位高手表达了无力感~~~
2、如果你想折腾,可以继续折腾。但也仅仅是折腾,解决不了根本问题。
3、某芯片有十万分之5的不良率。你们觉得这个算高还是低?
5楼对4楼的一个回复直接告诉你答案:什么牌子的单片机这么烂。哈哈,意外不!
楼主也终于把问题芯片拆下来,放到带芯片座的板子上测试,并和新的芯片对比,基本确定是芯片问题。但究竟是芯片出厂时就有缺陷,还是焊接过程中出了意外,我们就不得而知了。
当然,也有网友表示:
定时是基本功能,单片机一般不会有这个BUG的,可能是使用上哪有问题。
这样发言的童鞋,我怀疑他没有审题啊~~~
接着,四楼的高手在15楼分享了自己的产品优化的经验:
我自己的经验:当你分析不良品,虚焊,贴片不良占大头的时候,产品质量已经很好了。
第一阶段:3%-%1
电子设计问题,毋庸置疑。这个阶段电子元器件质量是不背锅的。
第二阶段:1%-7‰。
通过采用优质元器件,电子设计问题与结构设计问题,采取了很多措施有改进,但是主要问题没找到。
第三阶段:7‰-1‰
结构设计问题,这一阶段,电子不良率,绝大多数来自虚焊,贴片不良。外壳设计,组装工序。
如果还要提高:
1、芯片损坏,需原厂分析原因。
2、防范esd措施。
但是我认为,此时这款产品质量的奥秘被找到,应该是不降低产品质量太多的情况下,降低成本。
16楼,另一位网友也表达了自己的看法:
也不要过多相信芯片没问题,
一,是你的货的来源能保证没有问题么?
二,是使用过程中,人为因素确定没问题么?比如操作中ESD放电等
三,可能有一定几率测试是筛不出来的
四,和三差不多,就是可能某些批次由于工艺波动,或者生产环境有变化导致,但是测试环境也筛不出来。
我之前测试CY的68013芯片,一管26个,在高温40度的时候,有2个会导致电脑蓝屏,是100%蓝屏,温度降低到常温,或者低温0度以下,就不会有问题。还是在没有加载固件,按照默认device信息识别
板子都是同一块,就只有那2个有这个问题,只能是确定是芯片问题。
另外想起之前看到一个阿里的哥们调试fpga的经验分享,他遇到一个非常奇怪的问题,型号都一样,就是某几个fpga有问题,芯片没有坏,其他没问题,有问题的芯片需要调整时序才可以,
后来发现买台湾封测的fpga芯片就没问题,使用马拉西亚封测的同型号fpga就有问题,后来fpga厂发布了一个公告就是马拉西亚工厂在某批次生产时,有一道流程不对,虽然测试不会测试出问题,但是使用时,可能会导致某些问题的发生。。
个人感觉,这个帖子最精华的地方在15楼和16楼。总之,问题解决了。又看到几位高手分享了自己的经验,还是很知足的!