PIC 内部程序被改动?

[复制链接]
 楼主| qe123 发表于 2012-9-4 14:36 | 显示全部楼层 |阅读模式
在4580上写了个键盘的小程序,经过试验后初期没有问题出现。不过后来出现了键盘死机的问题,晶振是活的,重新上电还是死机的,必须重新下程序才行。我用mplab把单片机内的程序读出来存成HEX文件,在读一个好的键盘模块单片机的程序,通过对比死机的键盘模块的程序有好多都被改动了,就是与好的不一样了,在网上查了下资料也没有遇到这种情况的,我首先排除了程序跑飞的情况,因为程序跑飞重新上电还能正常工作的(我认为)。我个人认为是某种因素改变了片内的程序代码,但是不知道我通过读程序能不能确认我的推断,如果正确的话这种因素又是什么,我搞不懂,请大虾帮忙
Ryanhsiung 发表于 2012-9-4 22:03 | 显示全部楼层
1、请检查是否有FLASH的操作?
2、将BOR的门限电压设置高一点。
 楼主| qe123 发表于 2012-9-5 08:57 | 显示全部楼层
2# Ryanhsiung
程序中只用到了C口和D口还有CAN和一个定时器,没有Flash操作,门限电压设置的是2.1V,这门限电压有什么影响呢?
yewuyi 发表于 2012-9-5 09:35 | 显示全部楼层
无法评价,但根据常识,如果没有写FLASH操作的代码,基本不可能出现你描述的这个问题。

死机基本都是软件和硬件设计不当造成的,我做十几年技术,还没见过或听说过你描述的这种问题造成的死机。

另外,请检查一下芯片的低电压检测是否已经打开?
XIEYUANBIN 发表于 2012-9-5 10:15 | 显示全部楼层
BOR设置过低,容易引起IO口电平判断失误,不设置BOR,在电压过低的时候内存的内容都不能保证是对的。
另外你的情况,是不是打开了程序写的允许位,虽然没有写FLASH操作的代码,也是有可能将FLASH改写的。
XIEYUANBIN 发表于 2012-9-5 10:16 | 显示全部楼层
电源是个关键,电源纹波太大,或者说干扰严重的话,会导致程序乱跑或者执行错误代码。
 楼主| qe123 发表于 2012-9-5 10:56 | 显示全部楼层
非常感谢几位的回复,这个问题我觉得需要长期的跟踪。第一:在多找几块死机的电路板读出rom程序,看是否被改变了;第二:我修改配置位,应该配置的都配置正确,在进行试验;第三:如果还不行,就重新设计电路板,再试试,如果还不行再说。
linqing171 发表于 2012-9-5 12:05 | 显示全部楼层
您好,注意一下烧写电压,当高压很低的时候,会过一段时间,有些0变为了1.
getyouyou 发表于 2012-9-5 12:29 | 显示全部楼层
学习了
 楼主| qe123 发表于 2012-9-6 15:00 | 显示全部楼层
恩,记住了,等我做完这些,会有一个回复,大家一起学习
pichips 发表于 2012-9-6 15:50 | 显示全部楼层
学习了
 楼主| qe123 发表于 2012-9-27 14:40 | 显示全部楼层
我做了如下操作:1. 把控制字中欠压保护提高到2.8V;2. 那些保护全都改成使能;3. 在电源处增加双向瞬态吸收管;  经过测试没有发现死机的现象,后期跟踪还是挺重要的,到时候如果没有出现问题,此问题就解决了,我个人认为还是电源的事。
XIEYUANBIN 发表于 2012-9-28 10:43 | 显示全部楼层
电源是个关键。电源本身的输出质量、到单片机的走线都会影响到单片机的运行
calais2008 发表于 2012-10-12 17:05 | 显示全部楼层
4580是老型号了,45K80性价比更高
calais2008 发表于 2012-10-12 17:05 | 显示全部楼层
4580是老型号了,45K80性价比更高
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:天行健,君子以自强不息!

82

主题

623

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部