原创 解决了一个COldFireV1的奇怪问题

2012-12-3 12:43 1233 11 11 分类: MCU/ 嵌入式

 本人已是第二次使用MCF51JM64器件,没想到非常不顺利。刚焊好的板子上电后,CodeWarrior调试器BDM怎么也连不上板子。报告SYNC错误,反复尝试无果。测量电源电压一切正常。无奈之下,用示波器测nRESET脚,发现有方波输出,周期30us,其中低电平14us左右。判断应该是单片机自身不停地复位。但为什么它自己会复位呢?用Freescale器件这么多年,种类也玩过不少,这种现象还第一次遇到。更何况MCF51JM第一次使用时也很顺利。难道是这次买的芯片有问题,换上上次使用剩余的芯片,结果一样。于是就再焊了一块板,结果现象还是完全一样。反复仔细检查电路PCB,并无差错,百思不得其解,几近崩溃。

但是各位看官,这个问题今天居然解决了,而且这个解决办法更是奇特。

本人在绝望的边缘徘徊着,为了自我安慰,取来第一次开发的板子,连接了调试器,毫无意外操作正常。不知怎的我无意中拔掉了BDM线,断开了连接,CodeWarrior显示单板断开,是否再次连接的对话框。此时突然想到,不如接上这次的新板,来一个偷梁换柱。新板连接上电后,点击再次连接,结果惊喜来了,居然显示连接READY。狂喜之下立马DOWNLOAD程序,一切顺利,程序正常运行了。真不敢相信,取来第二块新板,先尝试像以前一样常规连接,(因为我梦想可能是放了几天它自己好了,纯属梦想),结果还是显示SYNC错误,怎么也连不上,这证明我的梦想确实是梦想。然后用偷梁换柱的方法如法炮制一次,结果也能正常连接,并且也能DOWNLOAD程序。把掉调试器后,重新上电,程序跑得很正常,RESET脚再也没有方波了,就如同它从来就没有毛病一样。

我不知道为什么单片机RESET引脚会不停输出复位电平,而上次的板子却没有这个现象,也不知道为什么这样做可以解决这个问题,更不知道我为什么能想到这种办法解决。我除了被自己的天才折服了以外,只能感叹运气太好了。或者难道CodeWarrior有一个BUG隐藏得这么深,被我挖出来?。。。元芳,你怎么看?

顺便说明,我的CodeWarrior是6.3版,操作系统是WINXP/SP3

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条