这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » LPC900 LPC900的可靠性[图]

共2条 1/1 1 跳转至

LPC900 LPC900的可靠性[图]

院士
2006-09-17 18:14:16     打赏
LPC900 LPC900的可靠性[图]



关键词: LPC900     可靠性    

院士
2006-12-22 22:43:00     打赏
2楼
问 请问:这个问题是不是除早期的LPC932以外的所有LPC900系列,都彻底解决了? 1: re与很多用户交流过,
有的用户用得很好,

个人认为系统的可靠性不仅仅在于mcu.
2: 这个问题还存在我们用LPC922
被害惨了 3: 那就请周公为大家交待一下吧。复位都不可靠,谁还敢用?

zlgmcu也说了,“有的用户用的很好”,那就是“有的用户用的不好”了。

你们既然都承认有问题了,请问十天之内给出的解决方案在哪里?不是晃点我们的吧? 4: 同样一辆车,有人开得很好,有人却开不好,你能说车不好吗?我从没用过Philips的产品,也与周立功公司无关,但我还想说几句:

“系统的可靠性不仅仅在于MCU”,非常同意这个观点;MCU只是系统的一个组成部分,它好像人的大脑,是十分重要的部件,但不是唯一的部件。

一个人生病了,有可能是大脑的问题,也有可能是心脏、肺、肠胃、肝脏等等,所有部件都有可能出问题;大脑出问题了,人可能要死,但人死了并不能说明就一定是大脑出问题了。

一个系统也是一样,不要一出问题就把账算在MCU的头上,查查电源有没有问题,看看时序对不对,算算驱动够不够,找找附近有没有干扰源。 5: 但mcu可靠的情况也确实存在 6: re有的客户用得很好,那些工程师对于设计很有经验.
有的客户用得不好(有的客户使用LPC932,连idata怎么用都不清晰,而有的客户让MCU跑起来都麻烦)

下面的话对所有mcu而言,不是对lpc900.
//-------------------------------------------
有很多情况下,会有人反映芯片老死机,或者老复位。
是什么情况造成mcu出现这种情况?

1,电源设计.
mcu的正常运行与power supply有很大的关系.
如果一个mcu是3.3V的, 那么您最好通过一个LDO,或DC/DC把Vin降到3.3V。
不要Vin 串一堆 Diode降压,这是不好的。有低功耗系统复位不正常就是这个原因。

2,晶振电路的设计,
我曾几次见过客户的板子,晶振的位置离MCU很远很远,道路曲折漫长.
我也不只一次见过精品的板子,晶振周边PCB的处理,令我赞叹,可惜当时没用数码相机拍下来。

3,复位电路的设计.
即使一个RC电路,也有很多人连个合适的值都取不对。
但是RC是最完美的复位电路设计方式么,如果它是的话,就不会出现那么多复位电路的变种了,为什么那些工程师没事搞出那么多种复位电路,没事干么,其实他们只是根据自己的情况提高自己产品的可靠性,诸位不信,到google搜索一下,reset circuit,或者复位电路,资料一堆堆的.
如果RC复位完美,那些iC大厂,又设计RESET芯片搞什么了?
RC复位的不完美之处在哪里,怎么防止,如果不知道的可以到google上找。

4,芯片各个引脚上的电路设计及PCB处理。
对于与外围强干扰相连的MCU引脚该怎么办,不同的人有不同的设计方法,
精雕细刻,方成精品。

5,程序的处理
我如果说,我碰见有的人,程序平时都很正常,跑到某个功能时,系统就异常了,混乱了,复位了,有一些人一般情况下可能都会认为是芯片该功能有bug,或者这个芯片的抗干扰性不行吧!但是其他出现这种情况的可能性,您是否又知道了。
如果一个程序堆栈没分配好,同样也会出现这样的问题,曾经就有一个这样的人,死称自己没问题,硬称我们芯片的问题,搞得我白白帮他找了2个小时的bug。这样的事情发生一次,可以提升一下经验,如果多次发生,那就是学校的问题了。
只有以上一种情况么?不是的,
程序的结构设计也很重要,我曾经看到一个程序,一个产品,上面有LED显示,那段程序空闲的时候就在那里一直刷新LED。不良的结构,也是在某些异想不到的状态下导致异常的重要原因.
另外,asm的程序,如果把握的不好,出问题性还是比较高的.
c的程序就不容易出了么?每款c编译器都有自己的特性,如果程序不符合他的规范他会把一些语句给优化掉,导致某些语句不执行,或者按错误的方式执行,有时客户把程序发过来,说某功能不实现,跳到那里去看看,再反汇编看看就知道了,但是有的客户就不会。

再来一种程序的情况,printf,这个函数,对于某些函数库,这个函数是有bug的,
printf(),里面有参数,字符串,当然这个字符串是由大小限制的,很多库的printf就没有对这个字符串进行边界检测。没有这个边界检测会导致什么,对于windows来说,那就是缓冲区溢出,溢出后就混乱了么,no ,溢出后跳的空间,PC都是可以设置的。黑壳们没事就在程序里挑bug,然后根据这些漏洞,建立后门,控制系统。
windows系统有这个问题,嵌入式系统照样存在,产品的设计不是一个程序写完了,就完了,不然microsoft出那么多补丁干什么,我们不能说micro的工程师菜,如果他们菜,我们中国的工程师更菜,没见中国人能独立地整出个windows.

7,前几天还有一件我烦心的事情,
一个朋友,做得一批产品,出问题,mcu测试的时候完全正常,然后存仓入库。过了段时间发到客户手上,问题出了,系统异常,经他检测mcu死了,他说前几批mcu没这个问题,就这批有问题。除了建议他做板,我也没有什么好办法,过了段时间,打电话询问,同一批芯片第二批板在客户手上就没任何问题。我和他都很郁闷,到底是怎么回事,是布板设计的问题么,还是制板厂工艺的问题。

8,还有很多其他情况..
//-----------------------------
打了一个多小时的字了。

毛笔大家都会用,写出来的字千奇百怪。
有的人写得很好,
有的人就稍微差了点,

写得好的有什么原因么,无他,手熟耳,没有数年,数十年的苦练,积累,是不能写出好字的。

//----------------------------

请问mcustar兄弟,你贴图中的那篇文章在那里弄到的,看到的,能否告诉我,我不胜感激。

祝各位十一愉快,中秋圆满。
大家都沟通,多交流,共同提高,如果我的上述观点有错误,请批评指正,那样我才能积累,谢谢。
7: zlgmcu的回复很专业,建议给自己加酷!能不能把这一条再展开谈谈,便于初学者把握!

4,芯片各个引脚上的电路设计及PCB处理。
对于与外围强干扰相连的MCU引脚该怎么办,不同的人有不同的设计方法,
精雕细刻,方成精品。


2,晶振电路的设计,
晶振电路的设计,应该就是与mcu的距离最短;
但是还应该有emc方面的考虑,这点就没有仔细的考虑过;还请大侠多多指点; 8: RRRws 9: 有的客户用得很好,那些工程师对于设计很有经验.



10: 一直刷新LED我曾经看到一个程序,一个产品,上面有LED显示,那段程序空闲的时候就在那里一直刷新LED。



   有什么不对吗?我是一直刷FSR的 11: LPC932A1就是复位不可靠的改进版!ZLG永远不会错! 12: 大家过是理性一点好.有的是芯片有问题,有的是人有问题.同一个人开好车和开坏车是不同的.同辆车不同人开也是不同的.
这个话题好象变成了哲学问题. 13: 我想提醒诸位注意我想提醒诸位注意:周公自己已经承认LPC932复位有BUG,现在不和你们争论“932复位有没有BUG”这个问题,而是“932A1以及900系列其它MCU有没有解决这个BUG”的问题。

我知道复位的可靠性和工程师水平有关,现在只是想知道LPC900的复位有没有BUG。这样吧,假设工程师水平为上等(我是下等),那么用外部晶振时LPC900的复位可靠不可靠?“有”或者“无”对我来说就够了。

我是周立功的铁杆,从最初的932独苗开始就开始使用LPC900,但一直用的是内部晶振。上图贴的这篇文章几年前就在我电脑里存着,由于现在上马项目要到用外部晶振,所以把它翻了出来。但是没能找到周公承诺的十天之后的解决方案,所以不放心提问一下。

这篇文章连zlgmcu都没看过,充分证明我的铁杆够铁。以前我把LPC900的8篇有关可靠性的文章用Acrobat合到了一块(便于查找),把原文件删了,所以只能提供这个8合1的文章,不过我可以保证文章出自zlgmcu.com。

文件太大,传不上来,怎么办?
14: remcustar兄弟,您好,请勿妄自菲薄,如果您都自称下等了,我就是更下等了.

您既然用过LPC932,就肯定是我们的老客户,非常感谢您以往对我们的支持信任.

关于nxp所承认的LPC932的bug,有很多都已经解决,这些我们都测试过的,LPC932A1对reset模块的一些内部参数做了一些调整,可以说效果有一定不同.

那篇文章,我是想看看原文,因为以前的文章中可能有些地方有所疏漏,
我只想校一下。

另:对于表中画得那两个外部复位的说明,我们公司一些有经验的工程师总结出一种电路,对此进行改进,效果非常好,已经成功应用于大规模电表的应用中.
这个网页的应用方案中就有此电路图。
http://www.zlgmcu.com/philips/LPC900fangan/DDSF.asp

15: RZLGMCU,9XX存在的BUG,custar 网友所说的情况,我也遇到.科学就是实事求事,也许有的客户更本就没用到9XX死穴,程序被改写是觉不容许的. 16: reto 棍棍

在初期,遇到程序被改写这个问题我也很头疼,

但是几年过去后,随着我对这个芯片的了解,
发现只要设置好芯片的加密字就可以很有效地解决您所提到的这个问题.


是什么原因导致程序被改写了,
现在有很多mcu,有自改写功能,也就是传说中的IAP功能,
使得mcu具有同EEPROM( 24Cxx,25cxx,93cxx) 类似的功能,

大家搞开发搞久了,经常可能会碰到别人问,或者在一些论坛里看到一些贴子,“我的EEPROM上电时被改写了,是不是EEPROM芯片品质有问题,是不是我的电源电路不稳定所导致,但是我检查过电源电路,上面没有波动,是不是EEPROM的问题了?"

其实不是,很多资料,很多经验告诉我们,EEPROM的改写是由于程序跑飞所导致,
“程序跑飞,不可能吧,我的电源电路没问题,根本没有什么波动。”
是在什么时候程序跑飞了?
众所周知,芯片中的RAM,需要一定的电压才能存储,如果这个电压过低,RAM中某个地方存储的值就会改变,如0xff,变成0xfe,或者其他. 这样PC,DPTR也可能改变.
有的人为了使电源稳定,往往在7805,或spx1117的输出端加很大的电容,这么一加后,当系统一断电,结果电源就缓慢的下降,对于5V的系统,可能Vcc pin上的电压掉到3.x V左右,PC,DPTR,及RAM中的其他参数 可能 就会乱, 这一乱就跑飞,就有可能跑到改写 EEPROM的地方。所以EEPROM就被改写了。 有解决办法么?
有!
硬件上:
有很多工程师就改进复位电路,一旦电压下降就马上启动复位。
或者把EEPROM芯片的WP引脚给用上.
当然还有种简单的方法,选用我们公司推广的复位芯片,cat809,cat810啊.电压下降到某个值,马上复位。
http://www.zlgmcu.com/catalyst/reset.asp

软件上:
如果硬件不改,那只有软件上做改动了,
比如将数据存放不同的地址.(备份存储)
写EEPROM前,进行边界检测.

很多客户在采用我提出的方法后,EEPROM的问题是解决了.

其实一些带IAP功能的flash单片机,出现代码被改的原因是和上面说得一样的.
早期,lpc9xx 内部有一段 ISP代码,其中这段isp代码就是IAP+uart的综合程序.
后面我们发现擦除这段代码后,可以在一定程度上防止这种现象.
再后来我们掌握了擦除lpx932内部IAP代码的方法,又在一定程度上防止这种现象.

直到最后,发现仅把芯片加密就可以轻松解决您所提到的问题。
当然还有使用复位芯片,改写程序等措施.

反正道路是曲折的,时间是漫长的.以上经验,完全是我们公司与客户的不断交流中得到的.
在这里,我也把他总结供各位参考,各位感兴趣可以思考一下,或者回去试一下。

如有问题,请批评指正。大家多多交流.谢谢.

祝各位中秋佳节,合家团圆。
17: R感谢ZLGMCU的回答:
硬件上:
...
软件上:
...

提了那么多,何不在硬件或软件上给大家提供一种标准就可以了?以后大家开发就可以按照这个电路(比如复位电路)做,保证不会出现以上情况或降低风险。



共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]