搜索
bottom↓
回复: 236

历时四个月无法解释的,不可不说的M16 BUG

[复制链接]

出0入0汤圆

发表于 2006-6-20 18:54:53 | 显示全部楼层 |阅读模式
不管是谁,一说芯片有BUG,一定有太多的人会立即出来反拨。我也知道,应该先查自己的问题,尽量不要去怀疑芯片的问题。可是,现在我真的是没有办法可想。希望大家看看是否真的BUG,还是我的问题。

   系统说明:控制系统是一个M16 一个192*64液晶 8个键 二路输入 三路输出 用于控制一个步进电机 系统应该是相当的简单

   故障现象:第一次做了30套,基中有5套左右出现故障,上电时工作正常,几分钟后,死机,并且无法再编程。用AVR910 ISP编程器,找不到芯片了。但过几天又会好。当时做了很多的检查工作,最后怀疑自己的硬件设计及线路板设计,后重新制做了线路板,并全部手工布线。按说应该好了。可以,还是出现在样的毛病。仔细检查后,发现出现故障的原因是晶振停振。我用了一个有源晶振输入,马上即可。并且也是十几套中出现一套是这样的。我也怀疑是晶振。结果出现故障的板子,即使换一个好板上拆下的晶振也不行。有时,是工作两个小时后死机,然后用在线编程器无法检测到芯片。因为出现故障的情况是晶振停振。我想没有一个软件故障可以关闭晶振的,所以,我把故障原因定为硬件上的。在芯片出现死锁故障后,我不断的反复手动或关电复位,均无法起振,我怀疑是不是电源不稳定造成改写的熔丝位,可是外接有源晶振后,马上正常,并且读出熔丝位也正常。(仅BODEN,BODLEVEL及ISP允许位被编程序)电源电压为5.05V左右,我实在想不出还有什么原因可能造成晶振停振了。而且奇怪的是,也不是所有芯片会这样。我原来用的是M32 ,从来没有这样的情况。

    虽然标题说是M16 BUG,可我到现在也无法叛断清楚。可是,除了怀疑芯片外,我实在没有其它的东西可以怀疑了。也搞单片机有十年了,从AVR AT90系列开始一直用,从来没有过这样的问题。希望朋友们分析帮忙。

   这是图纸

出10入210汤圆

发表于 2006-6-20 19:03:24 | 显示全部楼层
M16是ATMega16L-8XX还是ATmega16-16XX

出0入0汤圆

 楼主| 发表于 2006-6-20 19:06:12 | 显示全部楼层
补充一下.开始时,为了提高抗干扰及晶振幅度,也把CKOPT熔丝编程的,但结果发现出现故障的机器,有一半左右,不要编程CKOPT,故障可以排除,而关于晶振上的电容我是没有用,对于出现故障的板子,我也试加过这两个20P的电容,但故障依旧.



   芯片是:ATMega16L-16AU 晶振是7.3728M
-----此内容被fylab于2006-06-20,19:09:21编辑过

出10入210汤圆

发表于 2006-6-20 19:20:28 | 显示全部楼层
问题来了:

ATMega16L 后面没有16字样,而是8 有8PI,8PC,8AI,8AC,8MI,8MC

不知道楼主的ATMega16L-16AU是哪来的?是不是ATMega-L系列又升级了?

出0入0汤圆

 楼主| 发表于 2006-6-20 19:45:25 | 显示全部楼层
哈哈,笔误:是ATMega16-16AU

出0入0汤圆

发表于 2006-6-20 20:29:48 | 显示全部楼层
楼上两位均为老手了,我这个超级菜鸟也谈谈自己的浅见:

本人用Mega16L-8PI、8AI做过一些东西,其中有一个为智能仪表,也有那么上百套吧,虽然自己没赚到钱,但是至少为社会做了点贡献(钱都是老板赚了:(。。。),曾经也出现过5-6片这种问题,估计是可控硅锁死现象在作怪,遍查资料无果,后来发现在电源干扰比较大的情况下,芯片容易出现这种现象,特别是电源混有瞬态尖峰噪声且比较大的时候非常容易出现这种现象,后来下了狠心,在芯片供电电源上下了死功夫,结果后来没有一台出现过这种现象了,测试的结果,MCU的电源纹波电压在100mV以上时,芯片锁死概率为5%左右,如果为5mV以下,那么芯片绝对不会出现这种问题了。



个人认为,这个现象与电源品质有极其密切的关系,与芯片毫无关系。

出0入0汤圆

发表于 2006-6-20 20:34:28 | 显示全部楼层
这种有的正常有的不正常的问题是最难解决的,因为很难给故障原因定性,可能的故障很多,比如焊接质量问题;芯片质量问题,晶振质量问题,等等等等,很难说的清楚,只能靠楼主自己摸索了,你可以先试着用内部晶振看看故障能不能解决。如果解决了记得来这里说下什么原因。

出0入0汤圆

发表于 2006-6-20 20:56:44 | 显示全部楼层
比起JAMESKING大哥,我不知道要菜到哪里去了。我只用过mega8L和mega16L。



但用并行烧些器烧写mega16L芯片,曾经莫名其妙烧坏过几片,具体现象是无法识别出芯片。mega8从未有过类似问题。



8PI-0512J

出0入0汤圆

发表于 2006-6-20 21:02:24 | 显示全部楼层
我同意JAMESKING 的看法,特别是用开关电源供电的,当电源没做好,可能会因电源瞬态尖峰出事,往往不容易检测到问题。

出0入0汤圆

发表于 2006-6-20 21:22:22 | 显示全部楼层
有些编程器的高压毛刺比较多,这个时候最容易烧毁芯片,在原来我用LABOT-48和炜煌烧写27C256的时候就遇到过,后来用了RF1800就没有这种现象了,在用AT89C52的时候也有过这种现象,有些编程器的高压毛刺比较多,特别是用开关电源的编程器更加,RF1800虽然用的是开关电源,但早期的是笔记本上使用的开关电源,毛刺非常少,我测试过。



原理类似,Mega16L可能也是这样的问题。有些批次的没有那么结实,比如Mega8L-8PI的0539J就比较垃圾,但是后来改进电源后就正常了。建议还是使用ISP比较保险,高压编程的高压不容易做得很好、很稳定,特别是强干扰环境下编程。

出0入0汤圆

发表于 2006-6-20 22:54:25 | 显示全部楼层
我也来说两句自己的遭遇。

我自己做了一块实验板,专门用为烧写程序与验证程序的。曾经运行过好多程序,并没有出现过问题(当然程序是正常的才不会有问题)。

后来开发一个考勤机,考勤机中用了一个定时器,出现的现像就是,不定期的,定时器会停下来,而其它输出输入口完全正常。晶体也没有停止,总之就是cpu还在运行,但定时器定时到了,并没有发生中断(我是用定时器中断作秒计数的)。于是只能怀疑我的程序问题。改进了程序后,还是如此,后来干脆所以的子程序都去掉,只剩下一个定时器在工作,还是出现同样的问题。我用的是m16l-8pi。后来换了十来块同样的cpu,并没有这样的问题,而且还很正常。由于实验板已经用来实验过很多程序,估计硬件并没有问题,而且换了其它cpu,也没有问题,于是问题锁定在那一块m16上了。

但一开始程序是正常的,后开才出现定时器停止的问题,而且并没有一个固定的时间,有时候几天过去也没事,有时几秒钟就出现问题。

还有一件事就是,有一次买来三条共30只m16l-8pi,新的一买来就烧程序,其中有两只是坏的,并不是锁了熔丝位,而是真的坏了,因为我有编程器,用编程器也无法进行写入。

所以并不能固定说,芯片肯定没有问题,我现在正在怀疑是atmel芯片的质量问题。

出0入0汤圆

发表于 2006-6-21 00:38:18 | 显示全部楼层
还有一个问题,在输出驱动隔离不良的时候,也会出现这种现象,芯片容易烧毁,而很难查出原因,主要是输出电压尖峰烧毁MCU的I/O口,这个容易解决,光电隔离即可,但是千万不要共地!!



LZ,看了你的图,估计是硬件问题,也就是说步进电机的尖峰通过耦合窜入到I/O或者电源上了,加TVS吧!!电源需要根据电机运行的波形情况选用相应的滤波电路来解决,不能一概而论。

出0入8汤圆

发表于 2006-6-21 01:06:12 | 显示全部楼层
哎,怕怕!我曾用过一块M8在掉电时的电流很大有10ma,但换一块就可以了!!

所以在做设备上,我还是选择用PLC,在做小家电用AVR和51!!!
头像被屏蔽

出0入0汤圆

发表于 2006-6-21 06:55:57 | 显示全部楼层
哎,怕怕!我曾看过一部奔驰高档车在路上冒烟,无法起动!!

所以买汽车时,我还是选择用国产丰田,只有在招待特别宾客时,才租用奔驰!!!



出0入0汤圆

 楼主| 发表于 2006-6-21 06:58:49 | 显示全部楼层
JAMESKING 我觉得你说的电源问题有点道理,因为我有的开关电源,并且LM2575芯片价格只有3.8元,估计是国产的。只是用示波器测量时,并没有发现大的纹波。而且一出现问题后,手动复位也一下都不能起振,而外接晶振却是可以的。所以,如果真是电源问题,我的设计得检讨,atmel连这点也做不好,是不是也该检讨呢?因为毕竟外接晶振是好的啊。

   还有,关于步进电机干扰问题,我没有接步进电机时也一样会出现这样的故障。而且,虽然我的板子上的光隔是共地的,但驱动器上还有光隔的,所以基本上不会是步进电机引起的问题。

   另外还有一个现象是,停振后,用热风枪加热。一会儿,芯片又开始工作。然后,工作上十几分钟到半小时左右。系统开始有些暂停现象,我的液晶上显示一个前进的进度条,会出现停顿现象。这样停顿了几次之后,就死锁了。然后不管是复位,关机,均不再工作。然后再用外接晶振得新编程后,有时无法工作,有时又可以工作一段时间,然后又出现这样的死锁象向。

    我愿意承认自己设计上的任何问题,但这个电路真是简单得不能再简单了,而且,我原来的输出是用ULN2003的,因为出现问题后,我其实已经对IO口及整个原理图做了较大的调整了,程序也全部重新设计了,但还是出现同样有故障。我已经是不得不怀疑芯片了。如果真是电源问题,在这样的工作情况下,芯片真的能说完全没问题吗?

    我试试用另外的5V电源。看问题是不是同样存在。不过如果死锁之后再用另外电源也不能重新工作的话,那就很难以判断了,因为本来就是时好时坏。并不是每一台都会出现死锁现象的。汗

    另外在上一次的板子设计中,(ISP编程线复用)我还发现一个另人费解的现象发现过。我也怀疑是片子做怪。待这个问题解决了,我再发上来让大家讨论一下,哪怕最后是我的设计原因,对大家,对我自己无疑也是一次学习的机会。



-----此内容被fylab于2006-06-21,06:59:39编辑过


-----此内容被fylab于2006-06-21,07:40:04编辑过

出0入0汤圆

发表于 2006-6-21 08:54:42 | 显示全部楼层
guanzhu

出0入0汤圆

发表于 2006-6-21 09:19:21 | 显示全部楼层
遇到问题就需要讨论,一个人的想法总会有死角,有时候很简单的失误却没有注意,我有一次查程序,都快崩溃了,突然发现少了一个等号,当然我是很苯,这种错误也不该犯,所以我就根本没注意检查语法错误。



我用M8的时候,用RF2000编程,有些片子自动编程就不行,非要手动擦除,手动写入,但运行的时候没有出现故障也就没去关注(也没能力去研究)。

出0入0汤圆

发表于 2006-6-21 09:44:42 | 显示全部楼层
“并且LM2575芯片价格只有3.8元”



——拆机件?



另外,我个人习惯于在板子上给MCU单独加个线性稳压片,反正都是宽电压的功耗又小

出0入0汤圆

发表于 2006-6-21 09:52:45 | 显示全部楼层
期待楼主结果!!!

出0入0汤圆

发表于 2006-6-21 09:52:58 | 显示全部楼层
似乎还有一个可能,



“另外还有一个现象是,停振后,用热风枪加热。一会儿,芯片又开始工作。然后,工作上十几分钟到半小时左右。系统开始有些暂停现象,我的液晶上显示一个前进的进度条,会出现停顿现象。这样停顿了几次之后,就死锁了。然后不管是复位,关机,均不再工作。然后再用外接晶振得新编程后,有时无法工作,有时又可以工作一段时间,然后又出现这样的死锁象向。 ”



如果板子出现虚焊时,也可能出现这样的情况。(好像是哪边见过类似的经验帖子)



找到了这个帖子:看其中 串口篇 的描述

http://21icbbs.com/club/bbs/showEssence.asp?id=5118&page=3



里面有句话:“你知道怎么回事吗?我想到了,原来是我的阻焊剂在冷却状态造样了轻微了短路现象。各位,买阻焊剂的时候一定要买好一点,就这问题又花了我一个晚上。不然最好不要在板子上留下阻焊剂的痕迹。”
-----此内容被kanprin于2006-06-21,10:04:18编辑过

出0入20汤圆

发表于 2006-6-21 10:00:05 | 显示全部楼层
可能是我用AVR不到三年,楼上说的东西我都没有碰到过.

去年暑假的时候做了一个水泥厂的设备.用485通讯,大约是

500M左右,调试成功后,M16老是死机.当时的情况又不允许

放狗.所以就用示波器测量各个信号的波形,水泥厂的环境

太恶劣, 到处都是灰,我拎着一台TDS2102,查了一个周.

(又郁闷,天气又热,真不是人呆的地方,客户又再催)

最后发现485线与动力线走到一起了,几百安培的电流,

几台大电机的频繁启动,在485上造成了很大的尖峰.

调整了485的步线以后,问题就解决了.

还有一次,我们卖到锦州的设备,全烧了,.

这个PCB上的东西几乎都冒烟了.

连上位机也烧了,后来查明,是被雷击了.

我又没有加隔离.


-----此内容被wenming于2006-06-21,10:04:21编辑过

出0入0汤圆

 楼主| 发表于 2006-6-21 10:03:00 | 显示全部楼层
不可能是虚焊,先不说我反复焊查了多少次了,也不说我有多块板子出现同样的问题,单就外加晶振能正常工作就不可能是虚焊了.晶振离芯片也很近,手工布的线,一清二楚.

出0入0汤圆

发表于 2006-6-21 10:58:36 | 显示全部楼层
我也说一下吧!还是在99年的时候。我在一小工厂做无线话筒。产品已正常生产好几年了。其中有一批无线话筒出现问题,问题为有时工作有时不工作。可以排除是电磁干扰,因为是在电磁屏闭室,(BB机。收音机都收到到信号)供电是电池。当时认为电容不问题,更换电容后工作正常。但过一段时间。问题又出现。用烙铁焊下电容的引脚就工作正常。以为是电容的质量有问题,但更换另一种电容后问题依然如故。最后查出是本批产品使用的“助焊济(松香水)”有问题。只要加热一下就正常。冷下来后以出现问题。最后更换“助焊济”后从新生产问题不在出现。当然这批产品全报废了。
-----此内容被xiaoden于2006-06-21,11:02:36编辑过

出0入0汤圆

发表于 2006-6-21 12:34:22 | 显示全部楼层
另外一种情况,就是静电击穿!!!



当MOS器件在运输、包装等过程中插在白色泡沫塑料上时,特别容易产生静电,也很容易击穿芯片,虽然现在芯片普遍具有ESD防护,但是ESD击穿现象仍然不少,看看是不是这个原因让你的产品失效了。



采用一些防静电措施,比如增大空气湿度、采用防静电包装等等会改善这个现象。

出0入0汤圆

发表于 2006-6-21 14:40:30 | 显示全部楼层
外接有源晶振后,可以重新编程并重新工作,证明芯片是好的。





我分析你的问题就是出在晶振上。



以后养成一个好习惯吧:在晶振两端,并一个10M的电阻。

出0入0汤圆

发表于 2006-6-21 14:57:00 | 显示全部楼层
"特别是电源混有瞬态尖峰噪声且比较大的时候非常容易出现这种现象,后来下了狠心,在芯片供电电源上下了死功夫"

JAMESKING,在供电电源上具体怎么的作?只加TVS?你的TVS是选哪家的?

出0入0汤圆

 楼主| 发表于 2006-6-21 17:32:57 | 显示全部楼层
可是,一旦死锁,用好的正在用的晶振也不行了.唯有外接晶振.而且明显的对CKOPT编程后,故障率大大增加.
-----此内容被fylab于2006-06-21,17:33:40编辑过

出0入0汤圆

发表于 2006-6-21 17:36:36 | 显示全部楼层
电源具体做法,你需要参考市场上的滤波器,拆它20个就知道是怎么回事了。



TVS我选用的是国营873厂的,军工大厂,也用过MOTO的,都差不多。



CKOPT不会对芯片有任何影响哈。
头像被屏蔽

出0入0汤圆

发表于 2006-6-21 17:40:42 | 显示全部楼层
哈哈,不如有空时 JAMESKING 为我们开一个电源静化专题吧。这的确是一个十分头疼的问题。



最好是能设计出一款价格合适并且性能不错的给AVR供电用的滤波器。

出0入54汤圆

发表于 2006-6-21 17:45:10 | 显示全部楼层
好,支持阿莫老大的建议,让JAMESKING 老大给我们这些菜鸟讲讲电源净化

出0入8汤圆

发表于 2006-6-21 17:57:31 | 显示全部楼层
好,建议参考一些PLC的电源部分!!

出0入0汤圆

发表于 2006-6-21 18:23:24 | 显示全部楼层
阿莫站长,其实【32楼】 fangmcu 方谭已经说出了方法,我就是用的那个方法,比较快捷,但是需要找损坏的PLC,这倒是不好找。



EMC方面和电源,我也才入门,算不上NB人物,说了怕大家笑话,还是免了吧,上次菜菜说了不少,有兴趣的各位可以查查。



我的电源净化方案一般对民用产品非常不适合,我设计产品的第一原则就是不惜工本,不讲成本,这在民用产品上也不可接受,适用性也相当窄,我是搞专用设备的,而坛子里大多数人都是偏向于民用产品,特别是很多C语言写手,说起来我还是个C语言盲呢,交流也困难,因为也有些涉及到软件设计,在马潮老师专栏中,我也曾用basic写出了一些抗干扰程序,有兴趣的可以自行参考。



参考的资料,有几本,我列出来:

1。电机工程手册第二版,(敏感词0273)题词版本,电子电器分册

2。工业电子控制装置的抗干扰技术,韩刚徐万玉编著1984年铁道出版社出版

3。电力牵引控制系统,连级三编著,铁道出版社

4。周航慈先生的四本书,北航出版社

5。873厂TVS应用资料,这个我原来传送到这个论坛上过,pdf的,请查找

6。美军标MIL-HDBK-338B

7。国_军标GJB/Z35-93元器件降额准则

8。国_军标GJB/Z27-92电子设备可靠性热设计手册

9。电子电路实用抗干扰技术-修订版-北京大学出版社-诸邦田编著,这个有pdf下载的,自己查找哈

10。嵌入式C编程与ATEML AVR

11。嵌入式C语言编程与Microchip PIC

其余就是专业上的知识了。

出0入0汤圆

 楼主| 发表于 2006-6-21 21:01:29 | 显示全部楼层
TO JAMESKING 事实上,我一半左右的坏机,不对CKOPT编程后,可以正常工作.虽然我也认为与CKOPT应该关系不大.可事实就是如此.

出0入0汤圆

发表于 2006-6-22 08:56:14 | 显示全部楼层
给大家提供下载地址:

电子电路实用抗干扰技术 下载地址:

http://www.mcuzone.com/showsoft.asp?soft_id=46&page=2



"开一个电源静化专题吧。这的确是一个十分头疼的问题。

最好是能设计出一款价格合适并且性能不错的给AVR供电用的滤波器"



阿莫,找些高人来作吧。这可是造福菜鸟啊。

出0入0汤圆

发表于 2006-6-22 09:02:22 | 显示全部楼层
呵呵。。。。。我来混点积分



我口号可是:经验建立在烧人民币的基础之上。记得我第一次用M16时,就连日光灯的启动,别的电源插座的插拔,也会让我的MCU 复位。就是我现在的产品,与  JAMESKING  的产品;产生的的干拢,与你那个东东产生的干拢相比,你的是:小巫见大巫。



不要怀凝AT (国外大公司的东东);我当初还怀凝过“北天星”卖给我的AVR蕊片。后来证明,是我的硬件设计不行。(能工作并不代表你的设计是成功的。)





-----本发言涉及的粗口与讽刺语句已经被阿莫编辑删除,请大家注意发言。交流就是交流,不要涉及太多的个人感情_色彩。谢谢支持。

出0入0汤圆

发表于 2006-6-22 09:20:44 | 显示全部楼层
工业电子控制装置的抗干扰技术

这本书的下载未找到。估计也买不到。能上传吗?

出0入0汤圆

发表于 2006-6-22 10:07:43 | 显示全部楼层
那本书没有下载的,1984年出版的,你如果附近有大学或者大一点的图书馆,可以找找看,看看有没有,那本书还可以。

出0入0汤圆

发表于 2006-6-22 10:40:06 | 显示全部楼层
LZ,菜菜说的没错,一般来说,AT的芯片不会有问题,你的硬件设计问题可能还是存在的,AT的芯片特别是AVR芯片,在使用时对外部条件还是有些要求的,与AT89C51还是有些不一样,千万别说Mega8/16/32/64/128有设计问题,这个系列的芯片在世界范围内都是用途最广的芯片,而且还是ATMEL公司的AVR的当红花旦,如果有问题,那早就升级了,在中国市场上也根本不会大行其道。



【35楼】 liqu:

这个世界上没有专门为AVR供电而设计的滤波器吧?不同的用途和产品,滤波器的要求是不一样的,设计一个通用的恐怕难度比较大。

出0入0汤圆

发表于 2006-6-22 10:53:11 | 显示全部楼层
谁能说说设计AVR单片机的PCB时,要注意的事项啊,如走线,电源滤波等。

出0入0汤圆

发表于 2006-6-22 11:42:36 | 显示全部楼层
哎,怕怕!我曾看过一部奔驰高档车在路上冒烟,无法起动!!  

所以买汽车时,我还是选择用国产丰田,只有在招待特别宾客时,才租用奔驰!!!  



在这里看了这么久,我得出了一个结论:AVR 对armok 阿莫来说是全美的!呵呵

出0入0汤圆

 楼主| 发表于 2006-6-22 12:37:07 | 显示全部楼层
TO  baplmqj 菜菜 感谢批评,我也很不愿意怀疑芯片问题,那怕是现在,我也情愿是我自己的设计问题。其实前面说了这么多了。关于情况大家也清楚了。就是停振,而且是自锁型式的停振,一旦停振,就只能用有源晶振恢复。而不编程CKOPT后,情况大大好转。

    声明一下。我这是在实验室情况下测试,现场没有任何干扰源。关于电源,是用一个24V程序10A的开关电源供电。测试时也没有接步进电机驱动器。

    所以,如果我的电源设计上有问题,请指教,我一定接受,并致感谢。

    但是,如果说电源设计上没问题。也请指教是什么原因造成。

    若如各位所说的,一定要加AVR供电而设计的滤波器,我不知各位用的JTAG仿真器有没有这个东西,是否稳定可靠。

    这个世上永远没有绝对的事情。

    在这里提问题了,我永远是学生,希望得到大家的帮忙。但请就是论事。

出0入0汤圆

 楼主| 发表于 2006-6-22 14:04:19 | 显示全部楼层
感谢各位的帮助、支持以及批评指正,然而,到现在,问题还没能根本性的解决。虽然有些好转。可我对AVR的怀疑一点也没改变。现总结如下,希望对大家以后设计有些帮助,特别是初学者。

  1、我觉得,本故障产生的原因,软件原因基本可以排除,主要原因是谁也无法编出一个让晶振停振的软件来,不管是BUG也好,还是特别设计也好。

  2、关于硬件设计上,我确实没有加什么措施,我在纸机多分部传动控制中有用过M8以及M162,都是直接用5V开关电源直接供电。仅加了1000U电解与104电容而已。共有100多个片子在现场运行,其实所谓PLC中的电源,都是用了开关电源,在CPU板上所加东西也并不多,所以我一般都用现成的开关电源,以减少设计工作量,如果说,因为电源设计原因,对系统的可靠性有所影响,我认可。可是,会出现的这种故障,特别是在实验室环境下也会出现这样的锁死情况,那我想,至少我个人认为,是没必要用AVR的片子了。估计对电源不怎么加措施的人还是多数,对稳定性有所影响大家都认可,如果会造成芯片锁死,那芯片真能说毫无责任?

  3、感谢7楼JAMESKING 的答复,我觉得电源问题造成了可控硅锁死的原因,可能性比较大,因为LM2575芯片价格特低,说是国产货。但肯定是新的。估计可能是由于电源不稳定,造成了芯片的振荡部分锁死。如果是这样,我同样诅咒AT:要复位你就复位,锁死干吗?并且,这算哪本子锁死?如果真是锁死,也并不是AT为保护芯片而锁死,对于AT来说,肯定是一个“意外”。

  4、也感谢【24楼】 xiaoden的答复。松香的可能性也是有的,因为我发现我自己焊接的几块板子都没有出现过这样的毛病,出现故障的都是手下人焊的,我焊时,基本上是不用助焊济的,而他用得比较多的助焊济。我的助焊济是单位里电机维修班用来焊电动机用的。而且,没有清洗济,所以没有清洗过。

  5、做为一个专业的工业控制产品,这样的电源设计,实在是不及格,但也不应该出现这样的问题,所以,我承认并也接受大家关于电源设计不过关的批评。但无法接受本故障是由于电源设计上的问题造成的这一分析。这样的电源用法,我是从周立功的实验板上复制过来的。不应该连实验室环境也不过关吧。

  6、关于线路板,由于第一次版本是自动布线,受友人批评后,第二次全布手工布线,并且由于线路简单,布线比较粗,过孔也较少,晶振较靠近CPU,不想说自己布线好,但如果这样的布线无法让CPU正常工作,那么,AVR单片机的入门也实在是高了点了,我只能改芯片了。因为两次线路板,均出现了同样的毛病。

  7、关于芯片,当初开始是用M32,从没出现过这样的问题,后因为汇款十天后,本网邮购部告知断货,所以也没要求退款,把购M32的钱全买了M16片子,现还有100来多片。

  下一步打算:

1、重购一批M16片子做一下测试

2、改晶振为有源晶振

3、重购LM2575,买6元一片的。

4、改用ARM单片机如AT的S64 或飞利普2131



再次感谢各位的支持与帮助。也希望本贴能对初学者有所帮助。




-----此内容被fylab于2006-06-22,14:19:44编辑过

出0入0汤圆

发表于 2006-6-22 15:01:19 | 显示全部楼层
【43楼】 fylab, 不用找了,问题就在电源,PCB布局:



你说:2、关于硬件设计上,我确实没有加什么措施,我在纸机多分部传动控制中有用过M8以及M162,都是直接用5V开关电源直接供电。仅加了1000U电解与104电容而已。



你这样的电源设计,不死才怪.



你说:其实所谓PLC中的电源,都是用了开关电源,在CPU板上所加东西也并不多



这是不对的。电脑板(MCU)只用变压器电源,还要层层设防。JAMESKING前面就说过,AVR 与 AT89C51 等其它单片机的电源要求不一样。



-----本发言涉及的粗口与讽刺语句已经被阿莫编辑删除,请大家注意发言。交流就是交流,不要涉及太多的个人感情_色彩。谢谢支持。

出0入0汤圆

发表于 2006-6-22 15:21:02 | 显示全部楼层
【43楼】 fylab  你的图纸上:最简单的 复位 I/O  要用:上拉电阻+电容



这是你自己发明的吧。



请查一下 AT 公司 M16的技术 手册。 它对复位电路有详细的描述。



-----本发言涉及的粗口与讽刺语句已经被阿莫编辑删除,请大家注意发言。交流就是交流,不要涉及太多的个人感情_色彩。谢谢支持。

出0入0汤圆

发表于 2006-6-22 15:36:46 | 显示全部楼层
呵呵呵这个帖子很有意思,我建议阿莫站长将本贴加裤子,并给楼主加分200,并优先供货,不知站长意下如何????



楼主电路设计错误,复位电路需要RCD的,在本站首页里清清楚楚,这个帖子关于芯片不正常的话题我不用再讨论了,四个月的摸索结果,证明了硬件设计在MCU应用中的主导地位。



建议想玩AVR的,老老实实修_炼自己的硬件设计基础,不要上来就说芯片不行,要知道,我们这个坛子里的任何一位,都不及挪威分部的A先生和V先生的水平高,所以“各位菜鸟,出了问题,首先查查自己的硬件、软件设计,不要轻易怀疑芯片、编程器、编译器有问题”==HJJourAVR高手语录!!!!!

出0入0汤圆

 楼主| 发表于 2006-6-22 17:12:24 | 显示全部楼层
亲爱的baplmqj 菜菜先生,我感觉你很会人身攻击,我不想跟你一般见识,毕竟我有问题,想寻求帮助.我的电路很简单,其实,我心中一百万个诅咒AT,但我还是小心再小心,希望寻找出真正的原因.我也认为可能是我自己的原因,但从这个问题来看,即使是我的原因,我也认为,AVR是经不起考验的.至少是娇气的.对外部环境的要求实在是太高了.

   只是,我实在想不到,因为连我平时很佩服的 JAMESKING 也会人云亦云.

   估计你们都是从51转型的吧.拿51的目光来看AVR的复位电路,希望你们自己好好再看看说明书,AVR的片子的复位是怎样的原理.

   如果我设计有误,那么,请AVR收回自己的吹牛,并向我道歉,并陪偿我的损失.

   以下是关于上电复位的AVR M16的说明:按照他的说明,我认为不但电容可以不用,连这个电阻也可以不用的.直接把复位脚接入电源即可.

出0入0汤圆

 楼主| 发表于 2006-6-22 17:24:44 | 显示全部楼层
再说明一点,我的传动控制系统,用的是M162以及M8,每个变频器一个控制协议转换板.每套系统用到了30片左右的单片机.我的所有复位都是这样的.只是电源全是用5V的铭伟的开关电源.共已做过5个这样有系统了,估计也用了100多片了,现场环境全是工业电机环境下的485通讯,已经在工业环境下运行了两年多了,从来没有过什么问题.(当然,也许是我运气好.呵呵,我喜欢做人留点余地)

   而现在这个系统,我用的开关电源也是铭伟的24V开关电源.我再次申明,我现在是在实验室环境中出现的问题.并不存在干扰.如果这样也不行,那叫啊莫退货了,因为他卖给我们的JTAG仿真器上也没有什么电源上的措施啊.只是奇怪的是,他的仿真器怎么不锁死???

   我希望,真正的高手能发表实质性的帮助的东西,比如我上面感谢的两位.但是,少来一些不必要的自以为是.技术无止境.A先生与V先生也不是全能的,人无完人.有挑战才会有进步,有疑问才能够解惑,我不在乎最后碰得头破血流.只要有结果,最后的经验是无价的,并且是大家的.

   本来我也不想再说了,但我想,我有问题的同时,也是众多初学者共同学习的过程,我不想误人子弟.所以,我还是想说明一下,包括到时真正解决问题的时候.我还是会告诉大家.






-----此内容被fylab于2006-06-22,17:46:14编辑过

出0入0汤圆

发表于 2006-6-22 17:45:22 | 显示全部楼层
哎,老大,那个RCD百试百验的,我并不是人云亦云,改改何妨????你那个只能是上电复位,不要以为AVR内部复位很可靠。



还有老大,别用开关电源,用一片7805好么????铭纬的开关电源纹波比较大,不用100MHz示波器看不出来的。



别人的JTAG布线和退耦你仔细分析了么?

出0入0汤圆

发表于 2006-6-22 17:57:02 | 显示全部楼层
楼主,我的建议是:

首先用7805+4700uF+CA42-10uF+10uF独石+共模电感14mH,仔细布线,特别是大信号线不要与小信号线和电源、地线平行,而电源与地线需要平行,然后再说其他的,我用多孔板(A4大小,两张)做了一个三相功率因数校正装置,样机都是2.2KW的,工程样机是350KW的,300多个贴片,工厂试验部分软件功能还没见出问题,Mega16L的,换过好几片都无事,包括0539J、0428J、0612J批号的,我的看法还是你的硬件设计不过关!!!



顺便说一句,我的样机可是在3000A/2000V可控硅砍波调压条件下工作的,而菜菜那个系统的工作环境也比我的好不到哪里去,驱动IGBT,25KHz的PWM,应该说比你的那种系统要恶劣得多!!!

出0入0汤圆

 楼主| 发表于 2006-6-22 18:11:39 | 显示全部楼层
再次感谢JAMESKING,我并不是不愿意接受.多加一个电容,试试也无防,只是这是题外话,与本案关系并不大啊.因为出现问题时,我用手工人为的加过复位啊.问题是振荡器死锁了啊.

   而且,我也承认,布线与退耦设计上技术有高低,硬件设计上技术有高低,我情愿承认自己硬件设计能力低下,只是如果对布线与退耦要求高到连实验室里也无法通过的话,是不是像我这样的硬件水平低下的人不要活了?干脆改行算了.

   再一个,我说的芯片问题也并不是芯片怎样的不行.比如,芯片不对BOD进行编程时,EEPROM中的数据100%不可靠,试想有几个人不是实践出来的?芯片上并没有说明,我认为,象这样的情况,就是芯片缺陷.

   电源干扰或其它设计原因造成芯片工作不可靠复位很正常,但造成了AT自己都无法提前预知的"可控硅锁死"(引用)使得无法再编程,不管是什么原因,我认为,都算得上芯片缺陷.

   想想看为什么小日本在汽车与笔记本招回程序上对中国不同的政策吧.兄弟们,那是因为你们从来都认为人家是对的,自己是错的.

   所以,当出现问题时,你们都是想方设法的提高自身的条件.所以,一方面,我愿意再学习,提高自己的硬件水平,另一方面,我还是得大声说,我无法达到楼上所说的那种工作环境,也佩服你们的水平,可是我的环境是那样的干净,我的电路中根本就没有大电流的信号,我的线路是那样的简单,连用24V开关电源,再经过如图LM2575的电源电路都无法在实验室里通过的话,这个芯片算个哪门子的狗屁芯片???(当然,不一定是电源问题.呵呵),




-----此内容被fylab于2006-06-22,18:16:22编辑过

出0入0汤圆

发表于 2006-6-22 18:16:04 | 显示全部楼层
哎,这就是我们要用RISC的AVR所要付出的代价吧,RISC速度快了不少,但是随之而来的就是芯片兼容性不好了,适应吧,否则换51好了。
头像被屏蔽

出0入0汤圆

发表于 2006-6-22 20:25:40 | 显示全部楼层
【45楼】 baplmqj 菜菜也曾因发言不妥被我们出过黄牌的。大家来这里都是为了交流与讨论问题,没有必要发表过激的用词。



请【45楼】 baplmqj 菜菜注意这个问题。谢谢。如果觉得自己不能控制这个问题,给你一个建议:只发表技术相关的讨论,不要表达任何个人评价。

出0入0汤圆

发表于 2006-6-22 20:51:00 | 显示全部楼层
我说的是“可控硅效应锁死”,简化就是“可控硅锁死”,这种情况在CMOS结构的芯片里面比较常见,你的复位比较简单,在电源波动的时候如果波动比较大,而在MIOS、MOSI、SCK上面恰好有尖峰信号的时候,如果正好可以满足写芯片的要求,那就很有意思了,那很可能会对芯片误读误写,造成芯片熔丝位锁定或者其他问题,而用有源晶振却可以救活,BOD很可能也是这样,我用EEP的时候,无论BOD=2.7V还是4.0V都没出现过EEP读写错误的情况,可能我的例子算一个特例?或者我的运气比较好??我用fastavr+SLISP1518的,偶尔也用CVAVR烧程序,并口线长1m,还没出现过你说的这种问题,不知道你的芯片是不是插座连接的,如果是,建议换一个好一点的插座,我的插座是40pin双列的,0.05元/孔,圆孔的,接触相当好。



不只是在复位电路上加一个电容就算完事,你的电源形式最好修改一下看看,应该有些用处。



楼主,你这句话非常值得探讨:

“仔细检查后,发现出现故障的原因是晶振停振。我用了一个有源晶振输入,马上即可。并且也是十几套中出现一套是这样的。我也怀疑是晶振。结果出现故障的板子,即使换一个好板上拆下的晶振也不行。有时,是工作两个小时后死机,然后用在线编程器无法检测到芯片。因为出现故障的情况是晶振停振。我想没有一个软件故障可以关闭晶振的,所以,我把故障原因定为硬件上的。在芯片出现死锁故障后,我不断的反复手动或关电复位,均无法起振,我怀疑是不是电源不稳定造成改写的熔丝位,可是外接有源晶振后,马上正常,并且读出熔丝位也正常”



也就是说,你的芯片实际上被非正常更改了振荡器设置,这直接与RST、MOSI、MISO、SCK相关,所以菜菜的分析很可能有道理,由于电源波动导致RST波动,而此时MOSI、MISO、SCK正好悬空或者有非正常的信号,故此时芯片容易锁死,所以我还是建议,首先调整电源的设计,然后调整RST电路的设计,这个是你硬件上的问题,肯定了的!!那个不是晶振质量问题!!Mega这个地方的设计有可能不是很稳固,我也遇到过这种现象,但是后来更改电源设计就OK了,电源质量和PCB布线对下载的影响非常大,实践检验了的。





另外还有,我那个系统在那种恶劣条件下的MCU电源纹波是在5mV以下的,不过用了近30个电容和7个电感才达到的!!


-----此内容被JAMESKING于2006-06-22,21:05:35编辑过

出0入0汤圆

 楼主| 发表于 2006-6-22 21:39:45 | 显示全部楼层
再次感谢JAMESKING的回答,你谈的问题,我也考虑过,当初用外接晶振的目的,就是认为可能被改写了熔丝位设置,可是,接上外接晶振后,读出来的熔丝位是正确的,也就是说并没有被更改.我不加密也试过,故障时也没有把程序给改了.

    另外的用的是贴片的,没有用插坐.

    其实,这个问题中,我自己一开始也很是怀疑电源质量问题.我买来3.8元/片比朋友6元一片便宜了不少,我也怀疑啊.而且,这么简单的一个线路,也实在没有其它的东西好怀疑了,所以,电源不稳造成的原因,应该是基本上可以肯定的.其实解决的办法也很简单,更换好的LM2575,改用有源晶振. 而且,我现在不编程CKOPT,并且把晶振外壳接地后,出现这种毛病的几率已经相当少了,但做为一个产品,也更危险了.所以,我认为,AT是有责任的,责任就在于他不该锁死啊.其实,我的产品中,你不稳定复位一下根本是没问题的.但锁死就完蛋了.

    关于复位,根据我的分析与实践,其实我认为那个电容根本是没有用的.可以说完全无用.有兴趣可以分析芯片手册.

    关于线路板,也许是我水平差,虽然设计的线路板已经有几十套了,但这次是我布线最认真,也是自认为最成功的一次.因为有量产,而且用于工业环境,所以特认真.全部是手工布线的.

    关于CKOPT是否编程问题,对于好的板子 ,你怎么编都没关系.但对于不好的板子,不编程大部分可以正常工作了,一编程,十有八九工作就不正常了.(会出现这个死锁现象)也就是说,如果是电源干扰,与说明书相反,编程了CKOPT,反而容易被电源干扰.

    关于不是结局的结局:

    因为比较忙,也不可能再为这个问题讨论下去了.情况也比较明了,估计就是LM2575的干扰,而AT在振荡电路设计上有点问题.所以,打算买好点的LM2575及全部改用有源晶振.反正是工业产品,成本高点无所谓.

    以后打算多用AT的ARM芯片,S64,零售价才42元.RAM也大.感觉使用也不难,我设计的指令兼容于FX2N的PLC已经在实验板上完成了大部分指令的测试,执行时间小于1us,比飞利普ARM片子要好,还是用这样的电源,再加一个线性的稳压器,转为3.3V.因为我的工作要求用24V直流电的可能性比较大.使用7805比较麻烦.

出0入0汤圆

发表于 2006-6-22 22:28:34 | 显示全部楼层
如果怀疑是LM2575的问题可以用三极管降压加7805来供电,成本低而可靠,根本没有必要用有源晶振,如果成本不成问题的话电压监控芯片怎么也不加一个呢?可靠性就是只防万一的。

出0入0汤圆

发表于 2006-6-22 23:40:57 | 显示全部楼层
LZ注意:

非正常修改芯片设置后,用有源晶振读出来是正确的,这是肯定的,但是确实可能是改变了设置。

电源电流大,可用LM338K,拆机的才6元,新的才20元,如果想玩大的,可用LT1085-5,那玩意超级好,价格超级贵,85元/pcs,军用级的,我用过,纹波比7805低一个数量级!!!



PLC可做,销售是个大问题,用于有关人身安全的场合更加需要认证(比如电梯、提升机、医疗设备、焊接设备等等),PLC电源和MCU上的退耦处理不是一句话就说得清楚的,我拆过三菱FX系列的PLC和S5系列的(老型号的S5,很大的那种),发现其设计理念不是随便可以理解的,特别是PLC的电源。



还有,菜菜表述的意思还是为你好,也不要计较。

出0入0汤圆

发表于 2006-6-22 23:41:09 | 显示全部楼层
我非常理解fylab先生目前的状态及心情,我也遇到过,当时500套产品在发货前三天出了问题,产品总是异常停止充电,也怀疑电源的干扰,功率等,没办法,只好排除法

换电源,大功率的,加大容量滤波,接地,等都用了,故障依然存在,示波器也看了,目前的电源没问题.

查电路焊接都没问题,

最后怀疑IRF的MOS管,看波形关断太慢,影响AD检测,造成误停,修改检测时间,搞定,一度发誓不在用IRF的东西,

最后检查发现原来是我的MOS驱动电路有问题,导致IRF的MOS不正常,还是我的错,呵呵,





我觉得若真想解决问题,就不要争论了,就用排除法



1 找3个有问题的扳子,不妨就用一个12V绕组变压器+7805+4700UH+104供电,运行 看效果

  不行就往下一步(电源不要换)

2 复位引脚加104到地,加1N4148到VCC. AREF引脚加104到地. AVCC引脚加104到地,加10UH到VCC.

  不行就往下一步(电源不要换)

3 试试内部晶震是否正常

4 LM2575不知道你用的是什么功率电感,LM2575的开关频率达500KHZ以上,若用一般电感会对电源产生很大干扰,可使用高频环型不饱和电感.除非你的板子需要很大的电流,否则真没必要使用LM2575

5 可否在软件流程中加几个标志位象串口发送标志数据,看死机时的出现的位置是否一致.(不要觉得软件不会有问题,既然怪异问题来了,要有怀疑一切的决心)



我觉得AT的应该没有问题,我自己做的扳子, 12V绕组变压器+7805+4700UH+104供电,电路中有高频开关大电流1.5A-3A,示波器上看了,VCC与GND上有强烈的坚峰干扰波,我的M8(8M内部晶震)也正常工作12小时以上.

出0入0汤圆

发表于 2006-6-22 23:57:05 | 显示全部楼层
呵呵呵sunw2004你的PWM电流是充电的吧?比我的小一点,我的有一个大概15A,150Hz,尖峰相当大,你那个虚焊的问题解决了?呵呵恭喜恭喜!!还有啊,我发现现在版本的fastavr430定时器有快速PWM模式输出语句了,估计你又要转行了,哈哈哈。。。



LM2575如果有500KHz,那就最好用羰基铁粉芯,最好不要用铁氧体了,更加不要连材料都不知道就挂上去用。

出0入0汤圆

发表于 2006-6-23 00:04:15 | 显示全部楼层
解决了,总算是搞定了.遇到问题真是千万要沉住气啊,



"还有啊,我发现现在版本的fastavr430定时器有快速PWM模式输出语句了,估计你又要转行了,哈哈哈。。。 "

哈哈哈,我现在用BASCOM自己写快速PWM的代码,想怎么写就怎么写,不是更爽?

出0入0汤圆

发表于 2006-6-23 00:09:24 | 显示全部楼层
sunw2004你先别笑,看看这个保证你转行:

6.1.3.14.            $Timer

说明:定义Timer的工作模式

$Timer0=Timer [, Prescale=const, Async, Compare= Set|Reset|Toggle|DisConnected, Clear]

$Timer0=定时器[分频系数=const,同步,比较=置位|复位|翻转|断开,清零]

$Timer0=Counter, Rising|Falling [, Compare= Set|Reset|Toggle|DisConnected, Clear]

$Timer0=计数器,上升沿|下降沿[,比较=置位|复位|翻转|断开,清零]

$Timer0=PWM, 8|9|10, Normal|Inverted|DisConnected [,Prescale=8]

$Timer0=pwm,8|9|10,常规|反相|断开[,分频系数=8]

$Timer1=Timer [, Prescale=const, Compare=Set|Reset|Toggle|DisConnected,CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, Clear, Capture=Rising|Falling, NoiseCancel]



$Timer1=定时器 [,分频系数=const, 比较=置位|复位|翻转|断开,比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉=上升沿|下降沿, 噪音消除]

$Timer1=Counter, Rising|Falling [,Compare=Set|Reset|Toggle|DisConnected, CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, Clear, Capture =Rising|Falling, NoiseCancel]



$Timer1=计数器, 上升沿|下降沿 [,比较=置位|复位|翻转|断开, 比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉 =上升沿|下降沿,噪音消除]

$Timer1=PWM, 8|9|10, PwmA|PwmB=Normal|Inverted|DisConnected [, Prescale=8,Fast]

$Timer1=PWM, 8|9|10, PwmA|PwmB=常规|反相|断开 [,分频系数=8,快速模式]

$Timer2=Timer [, Prescale=8, Async, Compare=Set|Reset|Toggle|DisConnected, Clear]

$Timer2=定时器 [,分频系数=8, 同步, 比较=置位|复位|翻转|断开, 清零]

$Timer2=Counter, Rising|Falling [, Compare= Set|Reset|Toggle|DisConnected, Clear]

$Timer2=计数器,上升沿|下降沿[,比较=置位|复位|翻转|断开,清零]

$Timer2=PWM, 8|9|10, Normal|Inverted|DisConnected [, Prescale=8,Fast]

$Timer2=pwm,8|9|10,常规|反相|断开[,分频系数=8,快速模式]

$Timer3=Timer [, Prescale=const, Compare=Set|Reset|Toggle|DisConnected,CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, Clear, Capture=Rising|Falling, NoiseCancel]

$Timer3=定时器 [,分频系数=const常量, 比较=置位|复位|翻转|断开,比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉=上升沿|下降沿, 噪音消除]

$Timer3=Counter, Rising|Falling [,Compare=Set|Reset|Toggle|DisConnected, CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, Clear, Capture =Rising|Falling, NoiseCancel]

$Timer3=计数器, 上升沿|下降沿 [,比较=置位|复位|翻转|断开, 比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉 =上升沿|下降沿,噪音消除]

$Timer3=PWM, 8|9|10, PwmA|PwmB=Normal|Inverted|DisConnected [, Prescale=8,Fast]

$Timer3=PWM, 8|9|10, PwmA|PwmB=常规|反相|断开 [,分频系数=8,快速模式]

$Timer4=Timer [, Prescale=const, CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, CompareC=Set|Reset|Toggle|DisConnected, Capture=Rising|Falling, NoiseCancel]

$Timer4=定时器 [,分频系数=const常量, 比较=置位|复位|翻转|断开,比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉=上升沿|下降沿, 噪音消除]



$Timer4=Counter, Rising|Falling [,Compare=Set|Reset|Toggle|DisConnected, CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, Capture =Rising|Falling, NoiseCancel]

$Timer4=计数器, 上升沿|下降沿 [,比较=置位|复位|翻转|断开, 比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉 =上升沿|下降沿,噪音消除]

$Timer4=PWM, 8|9|10, PwmA|PwmB=Normal|Inverted|DisConnected [, Prescale=8, Fast]

$Timer4=PWM, 8|9|10, PwmA|PwmB=常规|反相|断开 [,分频系数=8,快速模式]

$Timer5=Timer [, Prescale=const, CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, CompareC=Set|Reset|Toggle|DisConnected, Capture=Rising|Falling, NoiseCancel]

$Timer5=定时器 [,分频系数=const常量, 比较=置位|复位|翻转|断开,比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉=上升沿|下降沿, 噪音消除]

$Timer5=Counter, Rising|Falling [,Compare=Set|Reset|Toggle|DisConnected, CompareA=Set|Reset|Toggle|DisConnected, CompareB=Set|Reset|Toggle|DisConnected, Capture =Rising|Falling, NoiseCancel]

$Timer5=计数器, 上升沿|下降沿 [,比较=置位|复位|翻转|断开, 比较A=置位|复位|翻转|断开, 比较B=置位|复位|翻转|断开, 清零, 捕捉 =上升沿|下降沿,噪音消除]

$Timer5=PWM, 8|9|10, PwmA|PwmB=Normal|Inverted|DisConnected [, Prescale=8, Fast]

$Timer5=PWM, 8|9|10, PwmA|PwmB=常规|反相|断开 [,分频系数=8,快速模式]

注释:

const 是分频系数,可以= 1, 8, 64, 256, 1024, 对于Timer0 和Timer2 可以= 32 或 128 (不是所有的芯片可以选)

在定时器工作于PWM 与 Compare 模式时未对时钟进行分频,假如要使用低频率就象这样声明:



$Timer0=Timer, Prescale=256      ' 工作于定时器方式,分频系数为256

$Timer0=PWM, 8, Normal|Inverted    ' PWM 现在使用分频后的时钟



在PWM模式使用特殊变量表达方式: Pwm0, Pwm1A, Pwm1B, Pwm2.

在比较输出模式使用特殊变量表达方式: Compare0, Compare1A, Compare1B, Compare2.



请看手册定时器使用的部分!



例子:

$Timer0=Timer, Prescale=1

$Timer1=PWM, 8, PwmA=Inverted



我还没翻译完,不过我用fastavr不用这些basic命令也能玩出些花样来,你看到过了,在那个坛子里。

出0入0汤圆

发表于 2006-6-23 00:22:44 | 显示全部楼层
JAMESKING老大看来是做军品的,对价格不敏感。不过低价格可以说是小企业的基本要求,也是这么多人还在用51的原因之一。

初用AVR我也遇到flash改写的问题,自己分析认为主要是电源电容太大,电压缓慢降落,使芯片处于不稳定状态。现在正在考虑外部复位,加个电压比较,只要电压降到一定值就先reset,还没有批量试验......

出0入0汤圆

发表于 2006-6-23 01:36:00 | 显示全部楼层
ATMEGA没用多少片,就发现了M族对电源部分的设计“缺陷”,怎么说呢,也不能完全叫缺陷吧。只能说是设计的简陋,或可靠性差些!

    用过MSP430,感觉它的JTAG下程序从来不打奔儿!哪怕是简易的JTAG也一样。AVR的使用起来感觉就是民品级别吧。下程序经常有不顺畅的感觉,电源处理不好容易出问题,VCC和AVCC之间存在时间差问题,电源抗干扰波问题,其实就是一句话吧,不皮实!还有晶振电路也不够稳定!



    LZ的问题跟大家反映的问题,其实应该都归结到抗干扰和皮实上。而且,MCU在抗不住干扰的时候,会出现死掉、休克、大休眠现象。出现问题后,再次写程序有时候还写不进去,有时候来回关几下电源又可以了。这些可能跟MCU里JTAG等用到的内部微码有关。反观TI的芯片,毕竟是TI先完成的JTAG,感觉最可靠。可能的原因也许是AVR为了避免商业矛盾、专利等,采用回避策略,造成性能不够理想,再别的就只能说它技术差或偷工减料了。

    乱说、大家仅做参考吧。

出0入0汤圆

发表于 2006-6-23 02:12:57 | 显示全部楼层
我的M32板前幾星期遇到和樓主所說相似的情況,最後發現問題是出在清洗松香的 Contact Cleaner上。

找來了兩件同批的全新(FR4) pcb。拿一件噴了這種contact cleaner後,發現上面兩個相鄰而不相連的焊盤可有幾佰K到幾K的電阻,阻值還要變來變去,飄忽得很。沒有噴的一件當然是全不導通。這contact cleaner自此都不敢用了。
头像被屏蔽

出0入0汤圆

发表于 2006-6-23 06:44:14 | 显示全部楼层
【62楼】 wuly "现在正在考虑外部复位,加个电压比较,只要电压降到一定值就先reset,"



不用这么复杂的。AVR芯片有BOD功能(低电压检测与复位)。你到熔丝位设置一下就行。

出0入0汤圆

发表于 2006-6-23 08:52:53 | 显示全部楼层
-----本发言涉及的粗口与讽刺语句已经被阿莫编辑删除,请大家注意发言。交流就是交流,不要涉及太多的个人感情_色彩。谢谢支持。



呵呵,真抱歉,删除了这些词语后,本贴就是空白的了。



出0入0汤圆

发表于 2006-6-23 09:11:33 | 显示全部楼层
贴子太长,还没看完

POR是不可靠的,POR只能在VCC电压低于内部复位起始电平且保持一定脉宽时才能给出有效的复位信号,对第一次的上电过程是可以可靠工作的,但对电源上的负脉冲窄尖峰干扰是会失效的,但电源上的负脉冲窄尖峰有可能会导致芯片死锁。

出0入0汤圆

 楼主| 发表于 2006-6-23 10:23:17 | 显示全部楼层
呵呵.别火别火.其实,我只是感到菜菜有些自以为是而已.并没有生气,还是得感谢指教,只是菜菜先生看到人家复位电路与你不一样,就大惊小怪.装出一个老前辈的样子来.事实上,是你自己没有看明白说明书啊.其实,在这里的人,或多或少有某些特长的.只是每个的人长处不同而已,尽量不要看不起任何一个人.

  也感谢你的关心,被客户骂其实有时真不好过.不过老板骂,呵呵那倒不会.因为我是个人自己做产品.平时在一个资产5亿的制造业管管设备电气.业余做点产品赚点钱.另外关于分工过细的问题,也没有,我做工程时,从报价单,说明书,软硬件设计,计算机软件,CAD工程图纸,等等,所有的都是我一个人完成的.有时,为了满足客户的要求,只能用客户指定的单片机,所以PIC\AVR\51\196\ARM\8088\80286(NEC赚容于286的单片机,型号我忘了)\这些单片机,都做过系统,什么都懂一点,又什么都不精通.所以才需要各位支持帮助啊.

  【68楼】 fatboy 说的有些道理,因为POR是指在上电时电源稳定后,延时一定时间,给一个可靠的复位,所以从功能上来说,与那个复位脚上的电容作用一样,但性能应该远远高于那个电容的,所以这个电容是没有用的.

   如果是负脉冲窄尖峰干扰,估计只能用电源上入手吧.设计好的电源是不?

   我的系统一定要求是24V开关电源供电的,这是客户的要求,所以,不知有没有谁可以提供一个更可靠的24V转5V的电路?别推荐用7805的,温度太高,效率太低.没有一个PLC用7805的,好的产品,全部是用开关电源的.TVS应该怎么加?对这个负脉冲窄尖峰干扰是否有效?
-----此内容被fylab于2006-06-23,10:26:46编辑过

出0入0汤圆

 楼主| 发表于 2006-6-23 10:44:41 | 显示全部楼层
其实,我感到mage系列芯片或多或少有点问题,我发现如果用JTAG调试时,在单步暂停中,如果不从软件上退出,直接关电源.很容易造成JTAG的锁死,再也无法使用JTAG调试了.

   另外还发现过几个片子,出现PB4随PB6的变化而变化的奇怪现象。PB4(SS)设置为输入,上拉电阻有效。而PB6为输出。当PB6为高电平,PB4一切正常,平时高点平,外部输入时低电平。而PB6为输出后,PB4就变为不稳定状态,可能会出现输入低电平有效,用万用表量了一下,好象只有1.XXV了,具体我记不清楚多少V了。反正在高低电平不稳定状态,以为是线路板有短路,最后把PB6输出引脚在芯片处齐根剪断了,居然还是依旧,可以肯定是内部已经有些连通了。最后只能换了CPU。只是实在想不明白,在实验室环境,不可能烧片子。估计也是电源问题引起的。所以根据这段时间看来。AVR对开关电源的要求比较高。兄弟们设计产品时要小心了。

出0入0汤圆

发表于 2006-6-23 12:06:59 | 显示全部楼层
关于POR与BOD我还想说清楚一点

大家先看下图(从datasheet中截出):





1. 以mega16L为例,

    先看绿线部分,表明芯片虽然标称工作电压为2.7-5.5V,但实际上在VBOT下限以上均可以正常工作,因此芯片可以在2.5V以上稳定工作。

    再看红线部分,说明POR起作用的门限电压典型值为1.4,最大值为2.3。

    当工作过程中MCU电源上出现负脉冲窄尖峰时,如负脉冲窄尖峰在1.4以下能被POR可靠检测出来;如果负脉冲窄尖峰在1.4V~2.3V之间时部分MCU的POR会失效,如果负脉冲窄尖峰在2.3V~2.5V之间时MCU的POR肯定会失效(当然前提是MCU的正常工作电压是没余量的,我想既使有余量,每块片子也会不相同,有差异)。



2. 对mega16也可以采用上述分析,得出的结论比mega16L要差,POR失效的区间会更大。



3. 上述分析说明MCU在仅打开POR的情况下也是可能会因为MCU电源上出现负脉冲窄尖峰而失效。



4. 还要注意BOD起作用时还与tBOD(图中蓝线所示)有关系,即BOD只能检测脉宽大于2us负脉冲窄尖峰,对小于2us的负脉冲窄尖峰无能为力。当然MCU的电源供电稳定,去耦做得好的情况下很少会出现小于2us的负脉冲窄尖峰。



另外提一情况(与本题无关):

有网友说反复上电断电,MCU出现复位异常现象。也不完全与通断电产生的干扰有关,也有可能与VPOT或VRST电平有关,即可能因为断电时MCU电源未降到VPOT或复位脚电平未降到VRST时又上电,导致MCU在电源电压低于正常工作电压时,内部未能给出可靠复位信号,出现工作异常现象。


-----此内容被fatboy于2006-06-23,12:38:36编辑过

出0入0汤圆

发表于 2006-6-23 12:34:40 | 显示全部楼层
...另外还发现过几个片子,出现PB4随PB6的变化而变化的奇怪现象。PB4(SS)设置为输入,上拉电阻有效。而PB6为输出。当PB6为高电平,PB4一切正常,平时高点平,外部输入时低电平。而PB6为输出后,PB4就变为不稳定状态,可能会出现输入低电平有效,用万用表量了一下,好象只有1.XXV了,具体我记不清楚多少V了。反正在高低电平不稳定状态,以为是线路板有短路,最后把PB6输出引脚在芯片处齐根剪断了,居然还是依旧,可以肯定是内部已经有些连通了。



fylab 這現象我也有遇到,好像我最後是把m32的reset腳挑起離開pcb,才發現是pcb 上的contact cleaner 導通引致問題。單看線路是不可思議的。當然,現象一樣也不一定是大家的原因一樣的。

出0入0汤圆

发表于 2006-6-23 14:09:28 | 显示全部楼层
楼主的问题解决了吗?如果解决了说说看到底是什么原因造成的?以免后来者走弯路

出0入0汤圆

发表于 2006-6-23 15:04:32 | 显示全部楼层
在你的问题里我可以肯定的告诉你是电路问题,而不是CPU的问题。我有几点建议:

1、你仔细看一下你的晶振熔丝位所选的晶振类型是否是你现在使用的晶振类型,因为它有多种晶振类型选择。

2、你的光耦隔离后是用于直接驱动电机吗?如果是,并且用了PWM软件细分,看你的光耦的频响特性,我看你有用到TLP521,频响特性很差;一定不行,易造成失步。

3、你的电机特性也很重要,这是你整个电路里干扰的根源;主要是反击电压。如果你的电机驱动电流在1A以上,是低电感,高速电机,又用到了恒流斩波,你要注意抗干扰。我看你用了24V的电源,应该电流不小。

4、最好使用有源晶振,如果使用了有源晶振,还出现以上你说的问题,那一定是你电路的问题。

5、最后给你一个解决问题的办法,就是排除法,你可以将电路功能一个个的去掉,最后只剩单CPU,没有任务,就是空跑最简单程序,看看还有你说的现象吗?

出0入0汤圆

 楼主| 发表于 2006-6-23 15:31:10 | 显示全部楼层
to  atmega64  又是一个肯定的语气.

   我在前面早说了,出现故障时,根本是在实验室环境 ,也没有接步进电机.而且步进电机的驱动器是买现成的,所以,所谓PWM,还是软件细分,都是驱动器的事情,驱动器内还有光电隔离.并且,使用有源晶振后一切正常.

   其实我的问题在各位的帮助下,已经分析的很清楚不过了.



   那就是电源的干扰,引起了芯片晶振的死锁.

   因为本来就是十几台中出现一台死锁,而取消了CKOPT的编程之后,坏机中又大部分能恢复正常(这点也不是很好理解,本来CKOPT是用于抗干扰的,现反而引起死锁),所以坏机已经不多,现已经把坏机上的M16全部更换了.一切OK了,我不可能再等下去,客户急了,发货了再说了.

   另外现已经测试过了,用有源晶振后不会再出现这样的问题,我打算下一批货全改用有源晶振.反正只要不死锁,你干扰不稳定,复位就复位,(好象没看到过复位,因为我有液晶,复位就能看到初始化),都无所谓.



   我个人还是认为是芯片设计上的BUG,抗干扰能力太弱,并且意外死锁.

   有一种看法是芯片设计上不够完美,但不是BUG,要我自己提供纯净的电源来满足AT

   另有一种看法是,完全是我自己电源设计上的不足.AT是完美的.

   

   最终的结论就是,没有一定的硬件设计基础,你就别用AVR,要用AVR,你也别用开关电源,除非你具有相当的硬件设计基础.



   不要再来问我结果,因为已经不可能再有结果了.我无法理解的现象,所谓电源干扰也仅是猜测,而我的解决办法,就是去掉对CKOPT的编程,更换了常死锁的片子.使用有源晶振.

出0入0汤圆

发表于 2006-6-23 17:20:42 | 显示全部楼层
哈哈哈LZ现在估计超级烦了,其实你用100MHz记忆示波器看看电源就知道问题所在了,记得我有个同学就用OP-07做一个反相加法器,搞了1个星期硬是没搞出来,实在没办法了,拿到我这里来,我问他的电源是什么?他说他的电源同我的一样是LM338K线性稳压的,然后我把他的电源拿来一看,发现是开关电源的,就是那个启东什么计算机厂的(产地柳市,正宗温州货),然后我用示波器看他的供电电源(正负15V/2A),结果问题来了,发现+15V正常,而-15V不正常,夹了很大的干扰波形(500KHz吧),而且尖峰相当明显,摸一摸运放,都发烫了,估计挂了,换了一个电源和运放,就正常了,这种故障用普通万用表根本看不出来,我用我自己的TEK-TX3万用表和TDS220示波器才看出那个尖峰频率来的。



TVS是否可吸收负尖峰???答案是:不可以!!!



这个帖子建议版主置“酷”,说明电源和硬件设计在MCU设计中占有最重要的地位,并以此警示后来者避免犯同类错误。



其实不论AVR还是PIC还是51还是ST,都存在这类问题,建议初学者好好修练电源设计和EMC处理部分的知识,以免走弯路。
-----此内容被JAMESKING于2006-06-23,17:31:06编辑过

出0入0汤圆

发表于 2006-6-23 17:37:42 | 显示全部楼层
对于这位老兄的问题的回答,我可以说是:正确的! (电源 与复位(关联到熔丝))



-----本发言涉及的粗口与讽刺语句已经被阿莫编辑删除,请大家注意发言。交流就是交流,不要涉及太多的个人感情_色彩。谢谢支持。

出0入0汤圆

发表于 2006-6-23 17:53:38 | 显示全部楼层
有意思,居然会删除帖子,算了菜菜,也无所谓了,各人轨道不同,不必计较。。。

出0入0汤圆

发表于 2006-6-23 19:09:42 | 显示全部楼层
从帖子开始发布的时候就一直观看。看了这么多天,有一些感触。

我个人发表一些看法,希望搂主借鉴。

从楼主的实验可以看出,板子工作环境干扰较小(实验室中没带负载)还有故障。而且故障现象是晶体停止了。

除了芯片的问题外,还有可能是:

1. 晶体的问题

2. 晶体边上电容的问题

3. 线路板漏电的问题

请注意故障现象:“另外还有一个现象是,停振后,用热风枪加热。一会儿,芯片又开始工作。然后,工作上十几分钟到半小时左右。系统开始有些暂停现象,我的液晶上显示一个前进的进度条,会出现停顿现象。这样停顿了几次之后,就死锁了。然后不管是复位,关机,均不再工作。然后再用外接晶振得新编程后,有时无法工作,有时又可以工作一段时间,然后又出现这样的死锁象向。”  “松香的可能性也是有的,因为我发现我自己焊接的几块板子都没有出现过这样的毛病,出现故障的都是手下人焊的,我焊时,基本上是不用助焊济的,而他用得比较多的助焊济。我的助焊济是单位里电机维修班用来焊电动机用的。而且,没有清洗济,所以没有清洗过。 ”

根据以上故障现象:如果是死锁,加热会解除死锁? 复位不良,加热后又能正常复位?(何况根本就没有停电)

特别是红字部分,要注意你用的零件和他用的零件是否不同?特别是晶体和电容。如果更换为你用的零件后还有问题,请注意漏电。你将板子清洗干净(如果没有超声波清洗机,将零件全部拆下来一个一个的清洗,特别是板子),看看有没有故障。如果故障解除,就是你的兄弟用的阻焊剂害了你。

请楼主看看我提出的3个问题(可能就是问题所在)。

祝早日解决问题!


-----此内容被leon101010于2006-06-23,19:21:13编辑过

出0入0汤圆

 楼主| 发表于 2006-6-23 19:12:09 | 显示全部楼层
哈哈,估计不是设计原因,而是LM2575芯片质量原因.过几天我去杭州买好点的LM2575试试.LM2575的用法不是我创造的.应用实例很多.除非LM2575根本无法给单片机直接供电.

   现在比较认同【7楼】 JAMESKING 的说法.只是100mV的纹波电压是否要求太高了?有用过LM2575的同志可否说说,LM2575最好的片子的纹波电压是多少?另外有空我再测测西门子,三菱与AB的PLC的电源纹波电压看看.

   关于菜菜,我不知以前黄牌是什么情况,在这里,只是口气大点而已,不幸的是复位电路的指责刚好我没错.损人倒也算不上什么损人.都是技术之争而已,如果有所得罪,只能说声对不起,另外谢谢.

   关于结果我还是坚持己见,你AT受不了纹波电压,要烧片子,要复位,我都不会怪你,你干吗非得死锁晶振回路???(给我自己留点面子吧)

出0入0汤圆

 楼主| 发表于 2006-6-23 20:52:33 | 显示全部楼层
我靠,累死我了,感谢各位支持.可是我该怎么办???

  晚上我从单位里拿回了一台TDS1002示波器,真的发现电源纹波较大,有800mV左右.可是,系统一直工作正常,我用示波器东量西量的时候,没有什么问题,开着机,去喝了一口水,回来后发现,总算盼到了一次故障,这时一个正常的蜂鸣比平时长了十倍左右.关电复位后发现,原来马上显示的首屏信息,居然象动画一样,一行一行的慢显示了,我估计晶振配置熔丝位被改了,现在是低频运行了,OK,马上用ISP编程器去读,这次居然可以读,只是失望,熔丝位完全正确,还是只有BOD相关的两位被编程.

   立马找了一个5V线性电源供电,可是,故障依旧,还是这样慢速.我靠,赶紧用示波器看看晶振频率,可示波器笔一碰到晶振脚,马上系统不工作了,只测出杂波来.如此反复测,反复试.总是没效果.又改用了原来的电源.不停的复位,也不知道过了多久,不经意间,居然又正常了,测量纹波电压峰峰值,还是有800mv左右.然后搞了一个晚上,使终正常了,再也没出现什么故障了.这时候,测晶振脚是可以测出7.3M左右来.

   我靠天杀的AT,你把芯片烧了不得了吗,干吗这样.叫我怎样判断.我就算把周立功SmartARM2000实验仪上的LM2575拆下来用,也无法判断啊.你如果两三天给我来这么一次,我就算是把所有零件换了遍也无法判断是什么原因啊.看来,只能双管齐下,换LM2575的同时,全部换有源晶振得了.再不行,把你换了,反正现在AT91SAM7S64价格也过40来元了,估计用LM2575转到5V再用1117M3转为3.3V,应该不怕纹波了吧.有朋友用过用S64(3.3V)驱动19264(5V)液晶的吗?请帮忙.

   
-----此内容被fylab于2006-06-23,20:59:06编辑过

出0入0汤圆

发表于 2006-6-23 20:57:05 | 显示全部楼层
说来说去还是电源问题了!

疯狂复位,烧片子你是不怪AT,但如果用户看到你的产品芯片烧的一塌糊涂,不骂娘才怪.

要想把工作做好,外围也是很重要的,

即便是51,在劣质电源下即便不死锁晶振回路,能保证不死机不复位,一个104也不用?才怪

恐怕用户看到因为电源问题引起的疯狂死机,复位,一样要骂娘.

出0入0汤圆

发表于 2006-6-23 21:00:46 | 显示全部楼层
不加电平转换,3.3V工作下的MCU驱动5V液晶基本没戏,但这本来也没必要吧?开关电源输出6V,然后用5V线性电源给MCU和液晶供电就是了,其它器件需要5V的话可以考虑二极管降压



另外,起码我用过的M16没见过楼主说的这些问题,即使我直接用开关电源供电也一样……

出0入0汤圆

 楼主| 发表于 2006-6-23 21:09:33 | 显示全部楼层
问题是它根本没复位,也没烧片子,该复位不复位,却偶尔来一次锁晶振,做人你要厚道啊.这样我就算是更换了电源芯片,我又如何知道现在已经没问题了呢?我如何才能放心把产品发给用户啊.

   如果它要是疯狂复位,那倒好办了,我一个个排除.等排除到哪个元件了,不复位了,一切就OK了.

   这让我想起有一次一个客户要我做的加密要求:在程序中去读DS1820的序列号,发现序列号不对时,就是盗版破解的,(因为自己生产时,DS1820的序列号是存在芯片中的.而DS1820的序列号是唯一的.)然后,你做个标志,照样正常工作,等过了几天后,"一不小心",乱动一气,损坏客户的设备,然后一切又正常,让盗版者永远找不到故障的原因.

   而且,AT也没有说明纹波电压到多少了不能工作啊.所以,万一不是电源原因呢???

出0入0汤圆

 楼主| 发表于 2006-6-23 21:16:10 | 显示全部楼层
回【83楼】 watercat,好象说S64可以承受5V的,而且是集电极开路状态. 用几个电阻不知可以不可.另外我的外电源一定得是24V,所以,在5V线性电源前用什么片子把24V降下来呢?

    我以前也用过5开关电源直接供给M8与M162,有百多套在变频器边上运行,至今无事啊.所以,我怕我改来改去,最后还是这批M16问题啊.因为我无知的认为,这点纹波电压,不应该出现这样的现象的,很不应该!!!而我的系统除了一个19264液晶,一个LS138用于键盘之外,已经没有其它片子了,基本可以说是单芯片简易应用啊. 还有回82楼,关于104电容,我里面用的104电容可不少啊.在图纸右下角.




-----此内容被fylab于2006-06-23,21:21:25编辑过

出0入0汤圆

发表于 2006-6-23 21:24:21 | 显示全部楼层
我支持楼主!

我之前是做芯片设计的,我带过几个数字、模拟混合设计项目,设计类似于单片机 + DA + 一些外设这样的芯片。我也设计过芯片的晶体振荡器电路。

这个问题,基本上是芯片上晶振不稳定的。可能是晶圆的四周的一些芯片的SPICE参数漂移了,超出了芯片设计的容忍度,这会导致部分芯片模拟电路部分,比如晶振电路不稳定。

好的芯片的晶振电路,你接上示波器的探头(X10档,附加电容大概10几PF以内),不应该停止振荡的。如果停止了,那么这个芯片的设计不行。如果停止振荡以后,还不能够恢复,那就更不行了。

电源是要纯净,但是好的芯片,绝对能够抵抗电源波纹。开关电源都吃不消的芯片,是要增加滤波成本的。

不要相信芯片的设计绝对是正确的。我自己设计的芯片,量产以后我都没底,几十万个mos管,你能保证都是100%OK的。

顺便打个广告,http://www.wiqitech.com/ezdso/product/product.htm

出0入0汤圆

发表于 2006-6-23 21:25:50 | 显示全部楼层
“这让我想起有一次一个客户要我做的加密要求:在程序中去读DS1820的序列号,发现序列号不对时,就是盗版破解的,(因为自己生产时,DS1820的序列号是存在芯片中的.而DS1820的序列号是唯一的.)然后,你做个标志,照样正常工作,等过了几天后,"一不小心",乱动一气,损坏客户的设备,然后一切又正常,让盗版者永远找不到故障的原因”



还真中国……也难怪中国自己的电子产业总比米国慢十年……



不提这些,你有没有加上掉电复位?另外能否确保VCC绝对不会超过6V?哪怕是瞬间的超越?

出0入0汤圆

 楼主| 发表于 2006-6-23 21:26:23 | 显示全部楼层
JAMESKING 老大,现在这块今晚出现过故障的板子,不管怎么搞,还是正常工作的.纹波电压还是800mv,好象这个纹波并没有造成晶振锁死.会不会是另外可能这个电源芯片偶尔的来一次无法检测到的尖负脉冲?否则无法解释啊.

出0入0汤圆

发表于 2006-6-23 21:36:17 | 显示全部楼层
“好的芯片的晶振电路,你接上示波器的探头(X10档,附加电容大概10几PF以内),不应该停止振荡的。如果停止了,那么这个芯片的设计不行。如果停止振荡以后,还不能够恢复,那就更不行了”



单从这句话上看,我个人认为应该是PCB设计或者外围元件品质有问题



其实我一向觉得,MCU应用,能不用外部振荡器的尽量不用外部振荡器,必须要精确定时的时候,能用32768Hz晶体尽量不用频率上兆的,必须要用高频晶体的时候,尽可能用有源的



其实就AVR而言,还是很可以满足这个要求的

出0入0汤圆

发表于 2006-6-23 21:44:18 | 显示全部楼层
如果5V线性电源供电,依然故障依旧,基本可排除电源的问题了,你把外设全部拆除,只留MCU+晶震,观察一下,没问题然后一个一个的加外设,如有问题的话,你可写一个简单的测试程序,比如点LED,或则发送一些数据到串口,再观察,是否故障依旧,如没问题了,是否可能再检查一下你的程序是不是真的有那功能,呵呵,你写别说不可能,,以前计算机流行的CIH病毒可是有这个效果的哦,现在在智能手机上也有些病毒发作了的话你的手机就挂了,



还有,为什么不试试内部RC震荡器呢?至少也可以看看是否可排除外部晶震的问题哦
-----此内容被sunw2004于2006-06-23,21:49:51编辑过

出0入0汤圆

 楼主| 发表于 2006-6-23 21:44:23 | 显示全部楼层
感谢【86楼】 wiqi 的支持,好感动.其实,我也知道是电源不太好.可是,不知大家是否还记得很久以前关于日本汽车在中国出现了什么故障(我也记不清楚了.)然后对方说,这是你们的路比我们日本差,是你们路的原因.我靠,你卖汽车给中国时,不知道中国的路况吗???

   做为技术讨论,我也不排除AT是冤屈的可能,或许是LM2575来个偶尔的,并非是纹波电压的无法测量到的高或低脉冲,远超出了芯片的工作范围.但不管是什么原因.晶振部位的不稳定是事实.A与V先生也许还得再努力改进一下.

   因为基础不够,一直从事的设计也是以继电逻辑类的数字控制技术,如通讯,传动控制,过程控制等.电源基本上是买现成的开关电源为主,特别害怕模拟电路,对电源也从不曾进行过深入的研究.所以,也感谢 JAMESKING  菜菜 等等朋友的支持与帮助.感谢所有在此给我提供帮助的,发表意见与建议的朋友.

出0入0汤圆

 楼主| 发表于 2006-6-23 21:59:36 | 显示全部楼层
关于今晚示波器接上后晶振停止工作的问题,说明如下:当出现故障,即今晚的故障是运行速度变得很慢.但还能工作,估计在1M以内.这个时候,用示波器表接上去后,停振了,而在后来系统好了之后,基本上又不受影响的.我自己的看法是,那个时候的频率产生,本就是已经乱了,也就是晶振回路已经乱套了,与当时的死锁类似.所以振荡频率也就变了.只是,也不知复位了多少次.突然之间又恢复了正常了.

   唉,烦哪.如果真是LM2575问题,我明天就去买了新的换上又如何.只是,谁能肯定啊.

   我现在倒情愿相信【90楼】 sunw2004 的话了.如果真是哪样,这个产品不做也罢.我就卖这个单片机的CIH病毒算了.

   只是,sunw2004提供的方法,以前其它朋友提供的排除法,我一样也行不通啊.它难得出现一次,如何测试?而且,板子很简单,要去掉的也就是一个液晶,又没有什么元件了.

出0入0汤圆

发表于 2006-6-23 22:08:22 | 显示全部楼层
建议你用7805试试,7805是线性ldo,不会成为干扰源。或者从pc usb取电供mega16最小系统试试。

出0入0汤圆

 楼主| 发表于 2006-6-23 22:08:50 | 显示全部楼层
其实,我早已经没有了再研究下去的信心了.因为,对于我来说,最简单,也是最直接的办法就是改用有源晶振.因为故障原因是停振,而停振后用有源晶振是可以工作的.也不用改线路板,把有源晶振反过来固定,把电源接到边上留着的一个不是贴片的104电容上.把输出接到CPU晶振输入脚. 先把这批货交了.以后改用ARM算了.S74就是为单片机应用而设计的ARM芯片之一.开发资料与工具也比AVR要好一些.把5V电源通过1117转为3.3V,这个电源应该好多了吧.

   只是,对于这么多的提供帮助的朋友,以及在这个网站上的新手.希望给他们一个交代.所以,我还会尽量找一下,分析一下.

出0入0汤圆

 楼主| 发表于 2006-6-23 22:12:44 | 显示全部楼层
唉,要我用7805试试的朋友最多了,只是,现在我已经无法回头了啊.仅为判断故障而试,根本无法试啊.因为现在即使是用LM2575,它也不出故障了啊.如果能用排除法,我早就排除了.俺早些年学过修电视机呢.

出0入0汤圆

发表于 2006-6-23 22:13:17 | 显示全部楼层
fylab,我觉得你是个怕麻烦的人且有点逆返心理,固执的相信自己,这么多朋友给你出点子,你却因为"它难得出现一次,如何测试?"如果这个麻烦也怕的话,我看你的问题真的是没办法解决了.....估计你现在正在等一个人忽然说:"啊,这个问题我遇到过,是因为..XXX.XX..的问题"然后你立刻照做,..搞定,呵呵..  估计,你还要等一段时间了



  最后还是建议你试试内部RC震荡器,..别说你只钟情晶体震荡和有源晶体震荡.



环境不同,我用AVR,从来都是内部RC震荡器,也没什么问题

出0入0汤圆

 楼主| 发表于 2006-6-23 22:28:20 | 显示全部楼层
【97楼】 sunw2004楼上的兄弟,那你说如何试?我用7805,如果再出现问题,我只能判断不是LM2575问题而是CPU问题而已,如果它一直不再出现故障,我又能得到了什么结果???试上一个月?

   怕麻烦,我也不会研究了这么长时间了.内部RC震荡我早试了暂时好象没有出现过问题,只是,我也不知道是不是我运气好.因为十台里面本来就只有一台会有问题.而且我的系统要485通讯啊.波特率.我的天.

   我也没有固执的相信自己啊.我实际上已经认可大家关于电源纹波或尖脉冲干扰单片机的说法啊.但由于很难验证,唯有先更换了LM2575,但为保险起见,也为了先把这批货交出去.用有源晶振这个已经确认了可行的方案,是我现在唯一的解决之道啊.

出0入0汤圆

 楼主| 发表于 2006-6-23 22:30:18 | 显示全部楼层
【98楼】 zhifeng 直点没关系.我愿意接受任何批评.只是你说是设计问题,那么是什么设计问题呢?至少你是想当然的认为是设计问题呢?还是你有根据的认为了?可否指正?我的图纸全在上面了.

  呵呵,今晚是把这个当QQ聊了.也许我的贴子创造了阿莫有史以来单位时间内的最高点击率吧.羞死人了.


-----此内容被fylab于2006-06-23,22:32:17编辑过

出0入0汤圆

发表于 2006-6-23 22:30:42 | 显示全部楼层
如果不怕,麻烦的话,建议你不要PCB,就一个写好程序的M16,晶震及电容直接焊接到脚位上,复位电阻到RESET脚,电源2575飞线到VCC脚位,OK,我看它晶振还停振??哈

出0入0汤圆

发表于 2006-6-23 22:53:18 | 显示全部楼层
其实,我认为光看原理图是不行的,好多次经验告诉我与pcb等因素有关系。许久前作vcd时,伺服板就是因为布板不好无法读出曲目。还有设计个很简单的板子高压1000v过不了。还有mp3的嘈音很大。均不能从原理图上看出所以然,设计要包含很多细节问题要注意,还比如好多人说mega8模拟usb的下载线不稳定,但我做出来的稳定的很(说这些话可能不太合适)。 其实我感觉做技术就是做细节。

出0入0汤圆

发表于 2006-6-23 23:08:36 | 显示全部楼层
你说了,线性电源变压器提供5V都有故障,所以关于电源纹波或尖脉冲干扰单片机的说法可以排除掉了

只剩下如下问题

1 PCB走线问题

2 外部晶震(你用内部的RC无问题),你在熔丝位选择了那个限制晶震振幅和XX那个选项吗?具体我忘了

3 你的这批M16确实有问题.(个人觉得AT的问题可能性非常小,除非阿莫给你的是拆机件?,呵呵.不可能吧)
头像被屏蔽

出0入0汤圆

发表于 2006-6-24 07:24:24 | 显示全部楼层
【103楼】 sunw2004 ,



咦,M16有拆机件的吗?没有听说过啊。



呵呵,我们邮购部的出货量比较大,如果我们的质量不过硬,我早就被人排着队追杀了。

现在我仍能安坐电脑前回复你的贴子,证明我们提供的零件质量没有问题。








花了近20分钟将上面菜菜的贴子编辑修改了。删除掉粗口或讽刺的语句,真有点小学老师改作文的感觉。



在此通知菜菜一下:以后如果你有同类的发言,我们会直接删除或直接修改,不会预先通知,也不会事后警告。当你发现贴子已经被修改或删除时,也不用再发贴表示抗议。但你可以直接打我的电话投诉:13925800119。谢谢。



再重申一次:欢迎到我们这里进行技术交流。但请注意:交流只是交流,不要夹带有太多的个人感情_色彩,尤其是粗口与讽刺语句。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 18:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表