打印

PIC 内部程序被改动?

[复制链接]
2070|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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操作的代码,基本不可能出现你描述的这个问题。

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

另外,请检查一下芯片的低电压检测是否已经打开?

使用特权

评论回复
5
XIEYUANBIN| | 2012-9-5 10:15 | 只看该作者
BOR设置过低,容易引起IO口电平判断失误,不设置BOR,在电压过低的时候内存的内容都不能保证是对的。
另外你的情况,是不是打开了程序写的允许位,虽然没有写FLASH操作的代码,也是有可能将FLASH改写的。

使用特权

评论回复
6
XIEYUANBIN| | 2012-9-5 10:16 | 只看该作者
电源是个关键,电源纹波太大,或者说干扰严重的话,会导致程序乱跑或者执行错误代码。

使用特权

评论回复
7
qe123|  楼主 | 2012-9-5 10:56 | 只看该作者
非常感谢几位的回复,这个问题我觉得需要长期的跟踪。第一:在多找几块死机的电路板读出rom程序,看是否被改变了;第二:我修改配置位,应该配置的都配置正确,在进行试验;第三:如果还不行,就重新设计电路板,再试试,如果还不行再说。

使用特权

评论回复
8
linqing171| | 2012-9-5 12:05 | 只看该作者
您好,注意一下烧写电压,当高压很低的时候,会过一段时间,有些0变为了1.

使用特权

评论回复
9
getyouyou| | 2012-9-5 12:29 | 只看该作者
学习了

使用特权

评论回复
10
qe123|  楼主 | 2012-9-6 15:00 | 只看该作者
恩,记住了,等我做完这些,会有一个回复,大家一起学习

使用特权

评论回复
11
pichips| | 2012-9-6 15:50 | 只看该作者
学习了

使用特权

评论回复
12
qe123|  楼主 | 2012-9-27 14:40 | 只看该作者
我做了如下操作:1. 把控制字中欠压保护提高到2.8V;2. 那些保护全都改成使能;3. 在电源处增加双向瞬态吸收管;  经过测试没有发现死机的现象,后期跟踪还是挺重要的,到时候如果没有出现问题,此问题就解决了,我个人认为还是电源的事。

使用特权

评论回复
13
XIEYUANBIN| | 2012-9-28 10:43 | 只看该作者
电源是个关键。电源本身的输出质量、到单片机的走线都会影响到单片机的运行

使用特权

评论回复
14
calais2008| | 2012-10-12 17:05 | 只看该作者
4580是老型号了,45K80性价比更高

使用特权

评论回复
15
calais2008| | 2012-10-12 17:05 | 只看该作者
4580是老型号了,45K80性价比更高

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

82

主题

623

帖子

3

粉丝