分享

自制S3C2440(ARM920T)板,调试手记

 昵称7715138 2011-09-18

自制S3C2440(ARM920T)板,调试手记  

自制S3C2440(ARM920T)板,调试手记
2007-07-07 18:13

自制S3C2440(ARM920T)板,调试手记
      到今天,我自制的S3C2440板终于运行起来了。记述一下整个调试过程。
焊接:
      由于是BGA289封装,拿到板子后,本打算出钱找厂子焊的,后来问了一下每个引脚要0.5元,这一个芯片下来得140多块,想想比芯片还贵,觉得太不值了。此前,我看过一本关于手机维修方面的书,上面介绍了焊接BGA的方法,既然手工能焊,何必花那份钱,况且热风焊台也有,于是决定自己焊。其实BGA的焊接不算难,根据介绍,先在焊盘上涂上助焊剂,我用的这种助焊剂是贴片专用的,略微有点粘性,借助这点粘性,将2440对准放到焊盘上。由于之前做PCB的时候已经放置了定位标记,对准还算比较轻松(稍微歪一点,只要引脚大部分在对应焊盘内也是可以的)。之后就是开始焊接了。由于没有合适的固定架(之前买的小台钳也不知道放哪儿了:),我直接把板子搭在烙铁底座放除锡棉的铸铁盒边上,中间架空。把热风焊枪的头去掉,温度调到3-4档,风调到1档,对PCB板进行整体预热,其间还用热风枪在板的背面吹,大概2分钟左右的时间,待整体预热差不多之后,将温度调高到4-5档之间,在2440周围适当的高度(2cm)上,集中预热,预热时摆动热风焊枪,不要一直对着芯片吹。1-2分钟之后预热完毕,进入焊接阶段,这时焊枪可进一步接近芯片,均匀加热,加热一段时间(20秒),芯片焊球熔化,观察芯片与板之间距离减小,芯片球脚变扁或成柱状,芯片四周高度一致,焊盘与焊球即已连接,这时,关闭加热,让热风枪继续吹着芯片自然冷却。
      用上述方法共焊接芯片两块,损耗芯片一块,PCB一块,因为是第一次焊接,第一次焊接由于芯片一角高度太低,加热中打算用镊子抬高,一不小心把芯片掀了下来。想必芯片并未损坏,若有植锡板可以修复。第二片焊好后测试内存发现读写数据时,有一位始终为高,其余位正常,经查是第24位,怀疑是焊接问题(这块芯片焊完的时候,发现有个引脚好像还是个圆球,疑是未焊牢)。

测试:
      昨晚焊完后,在网上搜索测试例程,没找到特别合适的。自己动手写了个简单的IO测试程序,axd显示加载成功,可是死活运行不了,即便是单步F8,程序也自己飞跑,程序计数器连续增长。当时以为直接加载到0x30000000 SDRAM,采用AXD CLI功能,设置SDRAM控制器,即可运行,但查阅了相关资料,按步骤设置也不行(也有可能是那个24位焊接问题导致程序错误引起的,目前还未试)。花了一晚上的时间,未果。今天来,又看了看2440 datasheet,发现当OM[0:1]=0时,为Nand自动加载,0x0地址为4K内部SRAM,复位后,Nand中的Bootloader被自动加载到这4K SRAM中执行。根据以往经验,程序应该通过Jtag下载到内部RAM执行,于是将RO地址改为0x0,再次下载,程序正常运行了!
      之后,测试了SDRAM。利用别人的2440init.s初始化PLL,IO,SDRAM控制器。之后在main中向从0x30000000地址开始的区域循环写入数值,发现第24位总为1,由于手头没有示波器,向内存区交替写0x55555555和0xaaaaaaaa,用万用表测量数据线电压,发现除第24位外其余线都为2.16V左右(3.3V IO电压)。断电后,测量数据线对地电阻,除第24位外,均为18ohm左右,拆下晶振(晶振挡住了芯片的一条边,无法观察)观察,恰是焊接时怀疑未焊牢的引脚(这个引脚在球阵列的最外一排,可以看到),从芯片边上刷了些助焊剂,用热风枪带嘴吹该引脚附近,直至观察到连接形成。之后万用表测试、软件读写测试通过。

小结:
      热风枪焊BGA可行,但是风险较大,尤其是管脚多而且近的芯片。但是,BGA焊接原理并不复杂,若能控制温度,相信可以焊接得很完美。计划购入一回流炉。
      测试方法很重要,好的测试方法能快速地锁定问题。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多