今天老板拿了块pxa270的控制板,说flash烧写不进去,叫我给搞定。
第一步,测试了一下电压。
第二步,通电查看哪里出现了错误,提示什么错误。
第三步,找原因
第四步,再通电测试,如有问题,重复第三步。
第五步,烧写bootloader,下载内核,启动,如有问题,重复第三步。
第一步:拿到板子就开始测试cpu、nandflash和RAM的供电是否正常,经测试nandflash的供电不正常,原来1.8V的电压变成了2.65V。
第二步:连接到电脑的jtag口,运行banyan,可以识别cpu,然后打开flash的写程序,但不能初始化,提示错误。
第三步:开始找问题,这个比较奇怪,开始以为是电源芯片的问题,拆下电源芯片,测试电压,结果仍是2.65V。这下可奇怪了,再继续找原因,估计问题会出现在flash芯片上面,因为其它是单独供电,只有一个3.3V的电压供电,估计是从这里窜过去的。仔细看了一下flash芯片,芯片焊错了,但封装一样。拆下芯片,再把电源芯片给焊上,这下电压正常了。说明芯片的问题。重新焊上正确的芯片。这下仍不可以识别flash。现在电源什么都正常,怎么办呢,总得找出问题吧! 拿出示波器,看cpu是否启振,cpu启振正常。
现在只能有针对性的核对元器件了,这是一件非常痛苦的事情,必须这么去做。先从flash、jtag、ram和cpu这几块相关的电阻和电容上去对比。主要是看元件是不是有虚焊或者漏焊。找到了一个24.9的电阻没有焊接,拿电烙铁焊上,一切正常。
可以下载bootloader。仍有一块板子有点问题,当verify时,通不过。又仔细检查了一下电源,发现电源旁边的电容被我折下来了,尤其是470pf的电容,焊上电容后,再测试,也一切正常。
第四步,测试正常。OK,一天的功夫总算没有白费。
一大早整理一下,记录下来给需要的人,也给自己留一份记忆!!
总结:那个漏焊的电阻是给SDRAM提供时钟的,因为控制板在下载Bootloader时,它需要先把程序下载到内存中,再烧写到地Flash里,当这里的时钟不能为SDRAM提供时钟时,Flash也就无法正确的初始化芯片。
硬件调试是细活,必须要理论结合实践,一点一点分析,成功就会一点一点靠近!!