打印
[微控制器/MCU]

LPC2000的复位问题解决的好办法

[复制链接]
2816|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
年轻不在|  楼主 | 2010-6-24 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、有一个好的电源电路,上图电路可作参考,这个电路是我在车载系统中用了几年的电源电路

   2、如果还是不行,加个外部看门狗,在上电的时候,强行让外部看门狗复位一次,也是说,在上电几秒钟后,电源已稳定了,不断电再让CPU复位一次
   在系统初始化程序中,增加几句代码,参考程序如下:
   if(RSID&0x01)                // 是否上电复位?
   {                            // 外部看门狗复位时,不会执行这段程序
      os_dly_wait(100);         // 延时1秒钟
      DisableInterrupt();       // 关中断
      while(1);                 // 让外部看门狗复位
   }

   专门试了一千次,一千次都复位正常

相关帖子

沙发
六楼的窗户| | 2010-6-24 21:27 | 只看该作者
测试工具: 串口通 + 电源控制电路
    串口通产生一个低电平为15分钟高电平为5分钟的脉冲,控制目标板通电15分钟,关电5分钟......

   目标系统有复位计数器,每次复位计数器加1,并发送字符串到PC... 测试完后,复位计数器和串口通收到的字符数和内容完全符合预期效果


   功能最强、最豪华的串口调试软件之一,串口通V3.11 下载地址: http://www.shawyoo.com下载中心一栏   

    做嵌入式系统的朋友都知道,当你的系统要与PC或其它系统串口通讯时,经常要用到串口调试软件。即使你的系统中有PC端软件,但在调试阶段,还是有个串口调试软件更方便,可以看到底层数据......
    虽然网上有很多串口调试软件,但在产品研发的几年中,我一直都用自己的串口调试软件,可根据自己的需要作修改,比通用的串口软件调试好用多了。
    下面是我在作汽车行驶记录仪的时候使用的串口通,是根据以前的软件修改的,如果你也在做汽车行驶记录仪,可以随意下载......
    当然,你也可以在其它系统的串口程序调试中应用......

使用特权

评论回复
板凳
金鱼木鱼| | 2010-6-24 21:28 | 只看该作者
如果每次都让外部看门狗再复位一次,说明LPC2000确实有问题如果每次都让外部看门狗再复位一次,说明LPC2000上电复位确实有问题。

使用特权

评论回复
地板
6019实验室| | 2010-6-24 21:29 | 只看该作者
搞个万分之一万多好听???但有些疑问if(RSID&0x01)                // 是否上电复位?
   {                            // 外部看门狗复位时,不会执行这段程序
      os_dly_wait(100);         // 延时1秒钟
      DisableInterrupt();       // 关中断
      while(1);                 // 让外部看门狗复位
   }


如果OS能走到while(1);肯定ARTX至少一个任务已执行,且本任务也至少切换过一次,因为os_dly_wait(100);肯定通过切DisableInterrupt();while(1);也死循环了半天.

等到狗咬时,我认为系统肯定早运行正常,所以,"千份之一千"有水分...

不过每次上电再硬复位一次想法不错,可这又为什么呢???

祝节日愉快!!!

使用特权

评论回复
5
年轻不在|  楼主 | 2010-6-24 21:29 | 只看该作者
哈哈,事实上与HotPower说的一样   系统能跑到while(1); 说明已稳定运行...  事实上,我没有加这段代码之前也没出现过CPU上电时死机的情况。

   我用那段语句是为一个外围器件的复位服务的,不是为CPU的。

   由此想到这个方法可用于CPU的复位,可以在初始化ARTX之前插入这段代码,当然os_dly_wait(100); 要换成 Delay_mS(1000); 或不要,直接用while(1);

   我只是提出一种思路而已...... 起码这个思路在我的系统中是可行了,至于其它系统,好就你们看着办吧

使用特权

评论回复
6
bit6019| | 2010-6-24 21:29 | 只看该作者
哈哈,我刚想说只需简单延时即可我认为系统初始化很重要...

不过人懒可以用硬件看门狗复位倒可省去不少系统初始化代码.

不过复位问题很复杂,也可能有晶振不好等"人为因素"...

使用特权

评论回复
7
linux1| | 2010-6-24 21:42 | 只看该作者
我的系统也是让看门狗再复位一次,目的是test看门狗是否ok

使用特权

评论回复
8
linux1| | 2010-6-24 21:43 | 只看该作者
你的电源设计有缺陷你的电源没隔离,在工业场合不敢用

使用特权

评论回复
9
zzg| | 2010-6-25 21:28 | 只看该作者
图呢

使用特权

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

本版积分规则

106

主题

447

帖子

1

粉丝