[ZLG-MCU] LPC952 开启看门狗后还经常死机,有没有办法?

[复制链接]
2557|6
 楼主| linhai1986 发表于 2009-4-5 19:48 | 显示全部楼层 |阅读模式
用952做了个电源控制板,在没开启内部看门狗时,上电经常不工作,后开启内部看门狗,上电基本没有出现不工作的情况,但工作一两天就会出现死机情况,请教各位大侠应该怎么办?<br /><br />难道一定要外接看门狗才行吗?<br />
xiaoxin1986 发表于 2009-4-5 20:05 | 显示全部楼层

RE:

在没开启内部看门狗时,上电经常不工作,后开启内部看门狗,上电基本没有出现不工作的情况<br /><br />这人话有点耐人寻味,上电经常,就是说,有时正常,有时不正常了?这么说和硬件有很大的关系了。<br /><br />开启后上电基本没有出现不工作的情况,这么说,有时还是不工作的?<br /><br />因为,您这种说法也很笼统,参见下面相关信息:<br /><br /><br />【单片机上电不运行情况的分析】<br />1.单片机是没有运行,还是运行不正确?<br />2.如果是没有运行,检测单片机的基本参数是否已经满足&lt工作电压要在芯片的引脚处测量&gt&lt复位引脚的复位曲线如何&gt&lt晶振是否已经起振&gt&lt芯片损坏,或者部分功能损坏&gt。<br />3.如果是运行不正确,检测&lt用了看门狗,没有处理好,芯片上电后处于不停的复位状态,看起来就象没有没有工作起来&gt&lt是否进入了ISP状态&gt&lt对单片机写入对所有的IO口以1秒取反一次的程序进行测试&gt<br /><br /><br />【单片机调试办法】<br />用LED进行状态指示,用串口进行数据指示,比用其它外设指示更可靠;<br />加入断点,烧写时是在不同的语句后面加入WHILE(1);<br />分模块调试,把每个小功能先调试通过,再进行组合。<br /><br />
liqindz 发表于 2009-4-5 23:19 | 显示全部楼层

二楼厉害

  
xiaoxin1986 发表于 2009-4-7 00:04 | 显示全部楼层

呵呵,过奖过奖。这是我在网上收藏的东西

  
 楼主| linhai1986 发表于 2009-4-10 00:39 | 显示全部楼层

RE:

程序已经运行了,跑死的时间不一定,最长可以三个月,短的时候就一两天。<br />看门狗WDT和WDS都已经打开,测试正常<br />用FLASHMAGIC试过、没有进入ISP<br />所以百思不得其解
xiaoxin1986 发表于 2009-4-10 21:35 | 显示全部楼层

如果死机的时间不一样,可以怀疑一下是不是因为电磁干扰

你是想用ISP方式烧写程序?注意事项比较多啊。<br /><br />【LPC900&nbsp;ISP使用方法】<br />对LPC900系列单片机烧写程序的办法有很多,如ISP,IAP,ICP,并行编程器。<br />如果ISP想用得爽的话,需要了解较多的相关原理才能用得得心应手,在这里对于初次使用者,建议用ICP或者商用编程器方式烧写程序。<br />ICP,即在电路编程,由上机位软件MiniICP&nbsp;for&nbsp;LPC900&nbsp;+&nbsp;专用ICP下载器(需要购买)&nbsp;+&nbsp;LPC900单片机的ICP接口(VDD、VSS、P04、P05、P15)+&nbsp;单片机芯片构成编程系统。<br />特点:适用于研发,它无需把单片机从用户的电路板上取下来,只要预留上述的五根线即可实现程序的更新。<br />注意事项一:烧写程序时外部无需给单片机供电,因为专用ICP下载器的VDD、VSS已经和单片机相连。<br />注意事项二:烧写程序时P04、P05、P15引脚上不能接有小电容,否则会影响专用ICP下载器产生的时序,从而引起【通信出错】的提示。<br />商用编程器,即通用编程器,由上机位软件&nbsp;+&nbsp;编程器&nbsp;+&nbsp;单片机芯片构成编程系统。<br />特点:合适用于量产,把单片机直接放到编程器的适配座上进行程序的烧写。<br />ISP预备知识:<br />刚购买的芯片配置字是0x63,0x00,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00。<br />0x63&nbsp;--&nbsp;UCFG1&nbsp;:WDT禁止,外部复位,掉电检测使能,WDSE禁止,内部RC;<br />0x00&nbsp;--&nbsp;UCFG2&nbsp;:(不常用,不必关心这个配置字);<br />0x1F&nbsp;--&nbsp;引导向量,这个配置相当重要,ISP代码所在地址的高位;<br />0x01&nbsp;--&nbsp;引导状态字,在这里表明引导向量使能;<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00&nbsp;--&nbsp;加密位,在这里表明芯片不加密(因为单片机意外跑飞的话有可能通过IAP来修改内部程序,加密则可以防止这种情况)。<br />这些配置字可以从编程器软件的文件缓冲区的地址FF00H这个地方看到。<br />因为已经使能了引导状态字,所以给单片机上电芯片自动就进入了ISP状态(直接转跳就是基于这个原理),可以进行程序的烧写。对于初次使LPC900单片机的用户,通常会反映单片机重新上电后不跑用户程序,由这里我们明白,如果要跑用户程序的话,要去掉引导状态字(即把STATUS&nbsp;BYTE修改成00H)。<br />但是这就存在一个问题,下次上电后单片机是在跑用户的程序了,那么,我怎样再次进入ISP状态呢?在这里,有两种办法激活ISP。一是三个脉冲,二是使用帧间隔。<br />ISP(LPC920以上才支持这种方式),常用的有两种方式,三个脉冲和帧间隔。<br />首先,它们对应的硬件电路是不一样的。硬件推荐用三个脉冲方式,软件推荐用Zlgisp_900,网址为http://www.zlgmcu.com/download/downs.asp?ID=1438<br />(把这个软件安装后,到安装目录找这个文件:LPC900_ISP_ICP.pdf,该文档对硬件电路怎样做,和烧写方法有仔细说明)。<br />关于三个脉冲ISP下载:<br />1在芯片工作的过程中任何时刻都可以用三个脉冲的办法进入ISP<br />2使用了串口的五根线,硬件电路相对于经典的MAX232电路略有差别<br />3对应的上机位软件有两个,Zlgisp_900或者ZLGISP(即Philips&nbsp;ISP下载器)<br />关于帧间隔ISP下载:<br />1要在您写的程序中加入帧间隔初始化代码,每一次烧写程序时都是这样<br />2TXD,RXD两个端口最好自始至终配置成双向口<br />3注意上机位软件的波特率设置要与程序中设置的波特率相一致<br />4硬件电路就是经典的MAX232电路<br />5对应的上机位软件有两个,Zlgisp_900或者Flashmagic<br />6波特率一般是7200或者9600<br />使用ISP下载注意事项:<br />1注意上一次能进入ISP方式时,如果上一次是使用了外部晶振的话,这一次也是需要使用晶振才能进入ISP方式<br />2最重要一点,用ISP的话,不要改引导向量和不要擦除ISP代码,否则只有用ICP或者编程器恢复其代码了。<br />补充说明,关于引导状态字和引导向量:<br />引入引导向量这个功能目的是提供一种灵活的方式,让编程人员方便使单片机上电时可以执行非0000H开始的程序代码,从而实现一些特殊的功能,如ISP等。<br />但是,为了顺从51标准单片机的习惯,让单片机上电就从0000H的地方开始执行程序,则可以把引导状态字勾掉,即配置成00H。<br />关于LPC900单片机更多的问题解答可以到下面的网址里查找<br />http://www.zlgmcu.com/philips/philips-yingrong-lpc900.asp
 楼主| linhai1986 发表于 2009-4-10 21:36 | 显示全部楼层

LS回答的好详细啊,明天试一下你说的方法

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

1451

帖子

0

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