说一个我最近获得的教训,老板的一个朋友委托我们给他做一个小型的控制器,要求的工期比较急,没时间做线路板了,所以我们根据他说的要求选了一个我们以前的成型产品做基础,在这个基础上改。这个东西的工作过程很简单,只需要把传感器传上来的数据分别送两块数字表显示,然后根据传感器传上来的数据确定两个出口固态继电器的动作。这里面用到了3个按键,3个指示灯,2个出口固态继电器和485通讯。我们用了ATMEG8做控制芯片,用内部8M RC振荡器做时钟,内部看门狗,程序用C语言写的,我的C语言水平比较差上学的时候没学过,刚用单片机的时候全是用的汇编,今年才边学边用C语言做产品。刚做好程序的时候我都试过了,接上传感器和数字表可以正常的显示数据,并能根据按键执行规定的动作,我认为没问题了就交了差。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
同事拿着我做的控制器去操作箱上安装配线,后来调试的时候同事告诉我说装置死机了,我说不能啊,我已经配置了看门狗,正常程序出错是可以复位的。把同事拿回来的装置通电测试果然没有反应了,重新烧写片子还能正常工作。是不是静电搞的鬼?因为我们的装置原来是没有按键的,这次的按键是在操作箱上接3个按钮到装置的CPU管脚上,没有保护措施,现在冬天空气干燥,很容易产生静电。马上改!给3个按钮都加上了光耦隔离,改好了再装到控制箱上测试,没一会的功夫同事又回来了,说又死机了。啊!?这是怎么回事呢?我有点傻了,难道是我的程序有问题?査吧,把程序从头到尾看了几个来回也没看出毛病。把死机的片子擦了,重新烧程序还是能正常工作,这就怪了!难道是操作箱有问题?怎么在我这好好的东西上到操作箱上就死机呢?同事干脆把操作箱从车间运到我的办公室来,让我自己做实验。果然刚烧好的片子上到操作箱上一会功夫就死机了,经过反复的实验发现是和数字表通讯之后死的,更进一步的确认是跟数字表通讯以后修改了控制器的EEPROM以后死的。去掉了控制器的写EEPROM程序就不再死机了,难道是GCC的EEPROM库有问题?先不管,看能正常运行了再说,反正这个功能不重要。重新烧写芯片,装到控制箱上,手动操作没问题!装置开始自动运行,呀!怎么复位了?是没看清吗?再等一会....又复位了!一波未平一波又起,怎么回事?这么个小东西程序不超过2K怎么这么多问题?我不至于这么烂吧?这么个小程序都写不好?还得试找出问题!反复试了几十次发现规律了,只要是自动状态的1号状态再和数字表一通讯就复位,是不是485通讯没加隔离的问题?动手加隔离(这里要说一下我们的软硬件是两个人负责的,我做软件,另一个同事专做硬件),我的同事刚才加了按键的隔离这回又加485的隔离,为了增加隔离电源又在原装置的基础上改了电源。改完了装上测试,还复位!天啊!我同事都不用好眼色看我了!妈呀,我可怎么办啊?从程序上怎么也看不出问题,可恶的M8不支持仿真又看不到C语言程序具体是怎么执行的。没办法只好用汇编写程序吧,这个我熟而且每一步都可控制,肯定不会再出错了,一个白天加一个晚上把程序就写出来了,第二天调试通过,上到操作箱上,天啊!又复位了!不对!一定是硬件有问题,同事说没关系我给你换CPU板,同事又改了一块CPU板给我送来,装上一试,你们猜怎么样?还是不行!别扔白菜,我真完了 /_\ ,呜呜...我心里直哭。
突然我转念一想,不对就不能还是硬件有问题?这回我不吱声了,我另找了一套没改过的硬件,是原来测试用的肯定是好的,我用它试试。嘿嘿!这回没事了,先别着急,我把改过的主板换到这个上面再试,还是没问题。把我那个做硬件的同事揪过来,你看看外面是不是下雪了!说明什么?我冤啊!快赶上窦娥了!她六月下雪,我11月下雪呀!同事二话没说,拿过继电器板对比,发现好的板两个固态继电器输入电阻一样,不好的输入电阻差了几十欧,总是复位的那个电阻小,是不是阻抗太低单片机输出能力不够引起的啊?给固态继电器输入端串上200欧电阻,这个行了。能正常工作了。运行一会看看吧。过了大约半个小时,啊!又复位了!这回我没紧张,肯定是硬件问题,因为我的程序C语言版和汇编版都试过。拿来示波器看看是不是复位脚有干扰啊?没有。看看电源呢?啊?CPU的5V电源在复位的时候是个大低谷,持续大约50毫秒,元凶终于找到了!是这个电源质量不好,当有继电器动作,并且来通讯,电源就挺不住了。同事也没话说了,改造电源吧,给电源变压器增加容量后,再也不复位了。终于圆满结束了。
围着电源的一个小问题,我转了一大圈,把这个教训分享出来提醒大家注意。我这篇文章是参赛文章,麻烦看过的朋友顶我一下啊,谢谢!
2010/2/23 14:46:55
bu cuo
2010/1/3 21:50:56
支持了
2009/12/1 16:34:44
谢谢,顶! 楼主有好些的电源推荐下,谢谢了,呵呵。
2009/11/16 16:17:08
我不懂单片机,很想学学,但最近我用一款单片机做的板子,老死机让软件工程师都改的让他怀疑我的硬件电路有问题了。最终还是程序的原因,把头都搞大了。通过此次事件让我失去了学习单片机的信心!
2009/11/2 20:02:25
顶一把!
2009/10/24 16:51:00
写得好,收益匪浅。。。
2009/10/20 14:38:15
学习了,我也有过类似的经历
2009/10/14 8:41:50
每一个芯片最好加上一个容量较大电解电容和0.1uF左右的高频瓷介电容,而且要靠近芯片引脚。高频瓷介电容一定不能省。电解电容用来降低电源的低频阻抗,由于电解电容存在较大的ESL和ESR,在频率比较高的时候会失去电容的作用,所以要用瓷介电容来降低高频阻抗。
2009/10/11 18:59:44
顶
2009/10/11 1:02:43
学习了 顶一下!
2009/9/29 19:43:26
我也觉得电源很重要的,接地和隔离都要做好,谢谢楼主无私的分享~
2009/9/16 20:51:19
学习了,感谢楼主分享经验
2009/9/11 21:04:37
电源管理是一门学科,产品中很重要的部位,必要时采用知名公司的电源管理芯片!做试验可能多走弯路,但是在产品上可马虎不得!
2009/8/30 18:54:00
顶一下
2009/8/26 23:19:08
这个要顶 这样的实践经验最可贵了 多谢楼主的分享
2009/8/24 12:58:04
吸取教训啊...
2009/8/22 22:03:59
顶!!!
2009/8/21 15:47:45
碰到这类没头绪的问题时,首先应该想到查供电情况。很有可能就有收获
2009/8/19 8:36:32
顶一把!
2009/8/18 14:11:36
en,值得一看。
2009/8/16 10:43:19
继电器啊 在吸合的瞬间电流可是很大的啊 难怪电源顶不动呢
2009/8/15 9:08:33
电源是很重要,又学到了一些
2009/8/7 17:46:35
顶。电源干扰要注意。
2009/8/6 13:01:25
关键是有继电器,这个东西电流大,很容易影响电路啊
2009/8/5 16:47:49
up
2009/8/3 16:57:58
电源是基本!
2009/7/24 8:43:31
很好,经验。遇到过呵呵。
2009/7/15 13:49:13
电源是最重要的`!!
2009/7/11 8:32:15
好的
2009/7/10 8:28:16
这么写评论 看样子是心得体会啊
2009/7/9 17:47:31
我在做数据采集的时候就遇到过,发现才挤上来的数据老是不稳定,不停地跳,最后发现问题出在电源上,而且基准电压都没设计好。。。我觉得在模拟和数字混合电路中,电源处理是特别关键的,电源不好那一切几乎都白搭了。。。
2009/6/7 1:37:30
顶一个。经验教训啊
2009/6/5 22:13:22
电源确实重要.
2009/5/25 17:19:09
恩,顶一个
2009/5/25 9:23:07
哈哈,我导师说的,电源,一定要好。功率变化率一定要高,要不数字电路的瞬间功率变化,说不定哪天就让你和系统一起崩溃了!
2009/5/16 8:39:39
顶1
2009/5/6 16:48:37
电源很重要,问题很严重顶
2009/4/22 0:44:39
恩,我也有类似的情况。。。 同感
2009/4/20 21:10:10
顶!
2009/4/11 11:50:55
顶啊
2009/4/8 9:52:23
我还没有遇到,不过我记住您的提醒了,谢谢。
2009/3/12 23:41:56
电源是最简单的,也是最难的 欢迎访问我的blog: blog.ednchina.com/tengjingshu
2009/3/12 19:25:51
大多微处理器都是cmos电路,此电路对供电系统的要求是比较苛刻的,对于硬件设计者来说,在理论数据的基础上应当放有一定的余量.
2009/3/3 12:11:57
受用了.
2009/2/28 20:55:39
顶了
2009/2/28 1:16:52
顶!
2009/2/21 21:42:23
学习了,O(∩_∩)O谢谢
2009/2/2 10:18:34
很好,顶了!
2009/1/29 18:05:49
只能说明现在很多公司都不重视硬件的重要性,做硬件的比做软件的地位要低,其实想做一位好的硬件工程师并不比做一位好软件工程师简单,只是做软件的,老板看不到程序里面的东东(看了也看不懂),所以觉得比较神秘,而硬件你作好了谁都看得到,而且只要稍懂点的都可以抄出来,至于抄的时候有没有理解设计者的用意,那就难说,这是做硬件的悲哀,因为得不到重视和合理的待遇,那些有能力的都改做软件了,剩下的大都是半桶水,厉害的就太少了......
2009/1/18 21:21:04
回楼上主要是这个电源在别的产品上用的好好的,刚开始就没怀疑电源.
2009/1/16 22:30:06
其实发现单片机不断复位的时候,就应该用示波器看看电源的波形了,就不会费这么大劲了
2008/12/30 21:13:51
顶一把!
2008/12/30 21:10:13
顶一把!
2008/12/24 19:56:36
顶一把!
2008/12/23 14:38:05
只能说明现在很多公司都不重视硬件的重要性,做硬件的比做软件的地位要低,其实想做一位好的硬件工程师并不比做一位好软件工程师简单,只是做软件的,老板看不到程序里面的东东(看了也看不懂),所以觉得比较神秘,而硬件你作好了谁都看得到,而且只要稍懂点的都可以抄出来,至于抄的时候有没有理解设计者的用意,那就难说,这是做硬件的悲哀,因为得不到重视和合理的待遇,那些有能力的都改做软件了,剩下的大都是半桶水,厉害的就太少了......
2008/12/22 21:34:13
我也遇到过这个问题,弄死人啊
2008/12/20 7:59:44
顶一把!
2008/12/20 7:58:10
顶一把!
2008/12/20 7:57:48
顶一把!
2008/12/20 7:53:36
顶一把!
2008/12/20 7:53:08
顶一把!
2008/12/20 7:52:45
顶一把!
2008/12/20 7:49:01
顶一把!
2008/12/20 7:48:45
顶一把!
2008/12/20 7:48:25
顶一把!
2008/12/19 13:47:38
顶,哥们利害! ..可恶的验证码...
2008/12/19 8:49:35
电源对一个设备来说就是心脏,很重要
2008/12/18 17:05:03
其实电源很重要!一个设备的动力不可靠,其他再好,也是白搭!
2008/12/18 17:04:33
其实电源很重要!一个设备的动力不可靠,其他再好,也是白搭!
2008/12/18 17:04:23
其实电源很重要!一个设备的动力不可靠,其他再好,也是白搭!
2008/12/15 22:31:40
我也给电源折腾过,电机和红外遥控不能公地的,害我当时调试程序调了好几天,郁闷!!!
2008/12/14 22:30:28
嘿嘿,,电源是电路板的心脏,,也吃过这方面的亏,,后来老师再让我随便搞个电源暂用的时候我都推掉了,,那样出来的东西会半死不活~~
2008/12/12 7:50:42
博主的思维缜密
2008/12/11 20:14:35
教训啊,呵呵。
2008/12/10 16:22:00
好经验,值得借鉴!!!!!!!!
2008/12/10 8:20:07
谢谢上面几位朋友的支持!EDN的留言系统的确有问题
2008/12/9 19:47:43
啊 之前回复一直弹出一个提示框,我还以为回帖失败呢!!一不小心成灌水了,不好意思,,, 实在惭愧 第一次留言 没经验 ………………
2008/12/9 19:44:35
顶 好!写得好
2008/12/9 19:40:46
顶 好!
2008/12/8 11:16:37
电源有问题确实能查死人了,呵呵
2008/12/5 17:27:10
谢谢分享
2008/12/5 17:12:19
顶了
2008/12/5 13:51:37
啊 之前回复一直弹出一个提示框,我还以为回帖失败呢!!一不小心成灌水了,不好意思,,,
2008/12/5 13:46:59
呵呵 博主写的很好我想知道你那同事做485隔离是怎么做的电源问题在我们公司的板子上好像也曾经存在过
2008/12/5 13:45:13
呵呵 博主写的很好我想知道你那同事做485隔离是怎么做的
2008/12/4 13:57:22
请管理员把上面做广告的回复删除!我记得以前有删除回复的功能来的,现在怎么没了?
2008/12/4 0:03:03
学习了.支持
2008/12/3 13:16:52
大学问,电源
2008/12/3 13:07:31
顶了
2008/12/3 13:07:07
顶了
2008/12/2 16:05:28
我也遇见过。。。。同感
2008/12/1 22:42:30
顶一个!
2008/12/1 16:01:31
最好有一个电路图和调测DEMO!呵呵!
2008/12/1 15:58:10
感谢受教; 电源很重要!
2008/11/29 21:02:27
有收获啊
2008/11/29 14:03:24
值的吸取教训
2008/11/29 14:03:11
值的吸取教训
2008/11/29 13:58:47
支持了
文章评论(0条评论)
登录后参与讨论