各位好,本人目前在用4550做USB通讯与LED的PWM亮度控制,程序用仿真器调试完毕,所有功能都已经实现;
但是,将程序烧写到仿真器之后,进行耐久度测试时,发现程序运行一段时间之后(例如2个小时),会发生类似程序跑飞的现象,所有IO输出为高,不再可控,USB通讯也不再相应,复位也无济于事;断掉电源,过一段时间再上电,就会恢复正常,可再过一段时间后程序又会跑飞。
我怀疑了几个方面的问题:
1、 晶振受到干扰:将晶振(20MHz)放置在距离单片机很近的地方,外壳接地,问题仍然存在。
2、 电源电压不稳:单片机的工作电压5v是由12v通过7805转换而来的,而12V是给LED供电的,怀疑PWM的通断控制会导致12V电源不稳,进而导致5V供电受到干扰,可是用示波器进行测试时,发现5V电压还是很稳的
目前问题仍然没有解决,请各位帮帮忙,分析一下问题可能出现的地方,多谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
单片机没有发热,程序应该是死机了,因为所有的IO都输出为高了,USB也无法通讯,但是复位后仍然无法运行,我怀疑是不是因为晶振振了一段时间后就不正常工作了?
将两个12V用两个不同的电源供电,并且加大电容量。
程序是重启动了还是死机了?有不同的处理方法。
我在处理类似情况时,用一个串口接上电脑,在程序一些位置防止一些调试代码,如果遇到问题,在电脑串口上会收到调试代码,就知道程序大概飞到哪里去了。
一周热门 更多>