最近在用Freescale的MC9RS08LA8在做一个电表方案,今天新焊了一个PCB板,当我用MULTILINK来调试的时候,说什么也连不上。于是就开始了我的查错之旅: 首先我怀疑MCU工作的电源可能不对,于是我用万用表测了单片机电源脚上的电压,稳稳的5伏,不是电源的问题。
接着我怀疑BDM插座与单片机之间的连线有问题,RESET,BDKG,VCC,VSS,我一根一根的测过去,连的很好的。同样我又怕相邻的两针有连焊,于是我把万用表把相邻的每一组都测过了,没有发现任何异常。
这就怪了,难道我粗心到画PCB的时候把管脚弄错了,于是我调出单片机的数据手册,以及原理图和PCB板图,一个引脚一个引脚的对过去。费了我很到的力气,最终确定没有任何线路问题。
突然,我头脑里面闪过一个念头,不会是我的MULTILINK坏了吧。我找来了一个以前产品的样品,接上去一连,正常,说明MULTIINK没有问题。
我晕,不到最后,我是不会怀疑单片机坏的。难道今天这么背,我焊的单片机是坏的。于是我跑到实验室,将板上原来的MCU焊了下来,换上去一块全新的样片,回来一连,问题依旧。看来也不是单片机的问题。
最后没有办法,我只能直接用示波器来分析BDM调试口的信号波形了。于是我连好示波器和测试点,启动PC机上的调试软件,去捕捉multilink和单片机之间的信号波形。很快发现异常波形。因为RS08系列单片机在对闪存进行擦除或烧录时要求reset复位脚上提供12伏稳定电压。而现在示波器测到的reset脚上的信号在产生高电平时只有6--7伏。恍然大悟,我在reset复位脚上和vcc之间加了一个放电的二极管(这个二极管是在掉电的时候快速放掉存取在复位电容中的电量以达到快速复位的目的),本来12伏的电平被钳制到了6--7伏。 用烙铁焊下二极管,问题解决. |