ARM 硬件调试

ARM 硬件调试
在网上的时候,看到不少人在问如何自己做ARM板,也有些人想联系网友一起做。不管是哪种方式做,都是希望能自己做个ARM来玩一玩。个人认为自己做一个ARM板并不是很难。难度多在元件的购买和PCB加工上。但这两部分也很好解决。做一个简单的、自己学习用的板,成本不过三、四百块钱。不仅划算,还能享受其中的乐趣。


一、原理图的设计
首先,你先要考虑自己打算做一个什么样的板,是为了完成某个项目,还是做个学习用的板。明确目的后,开始设计原理图。目前我们常用的ARM开发板多是三星的,也有PHILIPS的。这两大类芯片在网上可以找到很丰富的资源,包括原理图和测试程序,尤其是44B0的芯片,资料几乎是满网飞了。找一个芯片的原理图,在其基础上做些改动,使之更适合自己的实际应用。 ARM7的芯片使用起来会稍微简单些,毕竟其原理构造和普通的51单片机有些类似,不需要太费事就可以完成。 对于ARM9的,设计原理图会比较麻烦。建议采用核心板的方式,把ARM芯片和存储器放在一个小板上,然后再做底板,这样即使设计出了问题,也方便重新修改设计。

原理图方面我就不多罗嗦了,网上大把参照图,DOWN下来自己修改就可以了,确定原理图无误后,就需要开始布板了。

对于ARM7,速度比较低的那种(100M以下的),板只要布的合适就可以了,没有什么特别值得注意的地方,有些信号线上可能需要串上一些小电阻,做高频电阻匹配用。

对于ARM9的板,最少需要4层板。(如果双面能把线布下,双面板也可以的)。这里也许有人会问,4层板是否够用。我觉得是完全够的。我自己设计过一个S3C2410核心板,用4层板做,在200M下也能正常工作。 另外,我从网上下了个6层板的PCB,我把它改成了4层板,虽还没来得及调试,我估计工作起来也不是问题。为什么我这么说呢,因为看整个电路就可以大概知道一些,只要你布的板把电源和时钟处理的得当,其他逻辑信号线不是什么太大问题。当然了,前提是逻辑信号不能乱布。

这里需要说明一点,做4层板完全是为了自己学习用,因为做6层板的价格太高了,个人承担不起。但如果你是打算来做工业设备或实际项目,还是使用6层板吧,这样能够在硬件上起到一定的保障作用。


二、PCB加工
板布好之后,就要外发加工了。如果你是公司给你做板,那就不用开这个部分了。个人做板的可以继续看下去。

找厂家做板就有些技巧了。先说双面板的。双面板普通厂家都可以做,线距和ARM7芯片的引脚间距一样就可以了。宽一点更好。价格一般不会很贵,有200块RMB就足够做5个板来让你调试了。北京和深圳的行情好象不太一样。在深圳好象是需要收大概600块的工程费,然后是按面积算。北京则是直接按面积算,总价需要在100块上以上,不足100的按100来算。同时北京还可以自己来定做板方法,比如板上不加丝印、不镀金来降低价格。不管怎么说,只要耐心找,总能找到一家适合自己的厂家来做板。当然了,也有些厂家价格低,质量也会梢差一点,做好的板拿回来仔细检查,就不会影响到我们测试。我和另一个同学04年的时候,在北京用了150块钱做了3个板,没有丝印,没有铣边,仅仅镀了层锡。回来后自己把板处理一遍。检查出了一处短路(我们布的那个板,线条过细,线距也很小,这是到后来才知道的)。修理完后焊好的板工作很稳定。

再说多层板的。由于多层板一般多用于BGA封装的芯片,检查的时候就不容易检查,加上内层布线我们看不到,在选厂家的时候需要适当选一些可信的厂家,最好是能做飞针测试的厂家。做一个4层板的模费大概是在1000~2000, 个别厂家可能会要2000以上,但那种厂家是能保证给你的板绝对OK的,有的时候为了板的质量,也需要牺牲一点模费。一般,你付足模费钱后,厂家可以免费给你做几个样板,如果你想多要几个板,一定要提前跟厂家说,他们可能会多收一点钱,也可能不收钱。这样看你的谈判技巧了。因为他一次做一个板和一次做30个板的价格是一样的



做板方面需要注意的是,板拿回来后需要仔细检查,发现开短路的地方需要及时修理。所在地没有加工板的地方,可以考虑网上订做。他们做完后可以邮寄给你,价格方面需要自己去谈了。

三、元件的购买
购买元件很容易。当然了,你得找到合适的货源。北京的方面,在中关村就可以找到芯片。像电阻电容这样的元件也可以零售(100个一卖)。

深圳这边好一些的店面一般不零售。但这没关系,在华强多转转,慢慢的和店老板磨一磨,拿上一两百个元件还是没有问题的。

如果不能找到像北京、深圳这样有专门电子市场的地方,也不要放弃,可以考虑在网上找一找,有些地方是卖套件的,可以自己买一套来玩玩。价格不会差很远的。元件购买方面需要注意的是,不要卖到翻新件。

四、元件焊接

板拿回来后,就需要开始焊元件了,TQFP封装的芯片会比较好焊,焊盘上先上锡,然后一个脚一脚的焊上去就可以了。当然也可以采用拖焊的方法,总之,只要焊的牢靠就行了。

对于BGA焊接,可能会更简单一点。因为BGA焊接是外发加工的,自己最好不要焊。焊接GBA芯片最好是找那些修手机或是修笔记本电脑的厂家焊。就算他们没有专门焊接BGA的设备,凭他们的经验,也可以把芯片焊好。焊接BGA芯片的价格差距很大,价格大多在100块左右的。不过也有便宜的,我在华强找的一家,焊个S3C2410只要20块,成功率在90%以上,我在那里焊的几个板,没有一个有问题的。如果是批量生产,还是找比较好的加工厂做吧,毕竟少修电脑的厂家只是拿来给我们自己玩玩罢了。

焊接调试过程中有个小技巧,也算是一个注意点。板最好是焊一部分调试一部分。一般焊接调试的顺序是:电源->主芯片外围器件->主芯片->SRAM->FLASH->其他外设。按照这样的序调试焊接,优点在于能一步一步的排除问题点。假设,当你把主芯片,存储器都焊好,而且也调试可以工作了,再去焊你的电源,结果板上的电源部分出问题了,一个高压窜到了主芯片上,那后果不是很严重?


五、电源、主芯片的电路调试
焊好电源,把板上主芯片位置与电源相连的引脚测一遍,看看是不是需要的电压,这样做可以保证主芯片供电正常,使主芯片能够工作。

电源部分调试完成后,接下来是焊与主芯片相关的外围元件,如复位电路,时钟部分,JTAG接口部分,系统配置部分。这几个部分焊好后,再焊上主芯片,和主芯片一起调试。

主芯片焊好后,通过JTAG接口连接到电脑上,在电脑上用JTAG调试代理软件,就应该可以检查到板上的芯片了。如果不用代理软件,用ulink之类的东西也可以。不过个人觉得用代理软件最简单了。如果软件检查不到,则表示主芯片没有正常工作,或者JTAG部分没有工作,这个时候就需要详细检查各个部分了。一般来说,这个环节是整个调试工作中最重要的部分,主芯片如果不能工作,其他元件就不要再焊了,焊上也没有意义。这个环节容易出问题的就是复位电路工作不正常,主芯片某些引脚虚焊。主芯片的系统配置正确与否暂时不会影响到芯片是否工作,可以最后检查。

当电脑能够成功的检查到板上的芯片时,激动的心情也会随之而来。哈哈~~~


六、SRAM、FLASH的调试
接下来,需要调试的是SRAM。

为什么是先调试SRAM而不是先调试FLASH呢? 因为SRAM可以直接由ARM芯片来读写,只要信号线接的没错,系统设置没错,那SRAM一定会工作,除非你买到坏的SRAM。用JTAG接口将板和电脑连接,打开AXD的Command line和Memory watch,使用命令行来对芯片进行初始化。AXD中使用setmem命令对相关寄存器进行设置。如果不知道如何使用Command line,可以在命令行中输入help来查询。设置完寄存器后,后在Memory watch中修改对应地址单元的数据,就可以看到修改后的数据保存下来了。我用这个方法测试过LPC2214,4510,44B0,2410,都可以用这个方法来测试SRAM是否已经工作了。

当使用这种方法修改SRAM数据,需要注意的是,你所修改的地址,必须是位于SRAM地址范围内的,否则修改后不会得到正确的结果。如果发现修改后的数据不能得到你想要的数据,可能存在两个问题:1是电路板上数据线存在开短路。2是芯片的初始化设置不正确,导致存储器映射错误,修改好即可。

一般来说,SRAM如果能够顺利工作,则FLASH也可以顺利工作。焊好FLASH,使用FLASHPGM烧一个程序来实验一下。如果能顺利烧入,则表示FLASH可以正常工作。如果不能正常烧入程序,多半情况是焊接不够好,FLASH可能存在短路或者虚焊。这里需要知道一件事,FLASHPGM软件是利用SRAM来烧录FLASH的。它先将一段可以烧录FLASH的程序下载到SRAM中,运行这段小程序,然后再烧录FLASH,所以你提供给FLASHPGM的芯片初始化程序必须正确,这样才可能正常烧录FLASH,否则烧录肯定是失败的。

对于2410这种既挂NAND FLASH又挂NOR FLASH的芯片,调试起来也很容易。用FLASHPGM调试NOR FLASH,用三星提供的那个小烧录工具调试NAND FLASH。


调试到这里,说明你的板已经可以工作了。焊好串口部分电路,写上一段程序测试串口,调试串口部分。串口部分可以工作后,你的开发板就可以用了。当然,你的板上肯定还有其他东西,不要着急,一点一点的调试,总是可以调试完成的。整个板的调试过程中,越是靠前的步骤就越是难调,后面的外设相对好调一些。总的来说,只要你想办法,板是一定可以做成的,调试也可以很快完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值