做arm9(2410)前后的一些经历: 虽然到现在为止我的arm9还没有做出来,目前只调通了一块。 写这篇文章的目的,就是想和嵌入式爱好者做一个简单的交流。
2002.9月以前我是做龙珠的(DragonBall VZ)软件的,使用的是uClinux,因为一直使用公司的板子,也就是那块Motorola的ADS板。觉得上面的东西看起来不是很复杂,因此很想自己做一个龙珠的板子来玩uClinux,但是我不会使用任何一个画板的软件,最多也就会使用protel画画原理图之类的(现在想想,从原理图到PCB还是有挺多细节要注意的),后来在一个朋友的帮助下,我十分生疏的画了一个龙珠的简单的板子。不像学软件那样,买本书,有台电脑就差不多够了。制板是要掏钱的,我的薪金一直偏低,在女朋友的支持下,我终于拿去制板了,接下来就是买元件(十分简单但是又十分繁琐的一件事)。再接下来就是焊接了,大学时有个电子工艺实习,我学会了焊接电烙铁焊接直插元件,但是面对TQFP的144脚表贴元件,我还真不知道怎么下手。我又在网上结识了另外一个朋友,还到他们的实验室看了一下怎样焊表贴元件,觉得也不是很难嘛,观摩回来我就自己试着焊接,最后出来了,黑糊糊的一堆,反正是很难看的东西了。期间尝试使用锡浆,助焊剂,松香水之类的。不过我很幸运阿,这个板子可以跑uClinux。 再到2003春节的时候,(此时国内的arm7板已经发展起来了)我又重新做了一个龙珠的板子,这次参考了其他一些漂亮的板子,因此看起来比上次那个顺眼一点。还写了一个详细的文档,我的目的就是:卖。至少要把成本收回阿。我把做好的板子首先送给了一位朋友,他建议我做个arm9(2410)的板子,我就开始在三星网站找资料,不过我还是和深圳另外一个朋友一起合作把龙珠的板子整理了一下,写了几个简单的演示程序,准备卖几块。不过在arm7的势头下,DragonBall已经鲜为人知了,在龙珠上,我和深圳的朋友已经尽了最大的努力,这件事上,深圳的朋友至少在钱的方面,帮助了我很多,在他身上,我还学到做事要认真、要有耐心、对用户负责的精神,从内心中,我一直都很感激他。后来接了一个龙珠的小项目,还有一些其他事,我就回到广州了,那是在今年6月底。 回到广州,女朋友刚刚动完一个手术,身体很虚弱,陪了她两周,然后就想在她家附近找类似机关单位的工作,亲戚帮忙介绍了几个,大部分都只是和负责人见面谈了谈,我就不想在那种单位呆了。因为我发现有的工作台连台电脑都没有,要不就是跟一群当地没有工作经验的大专毕业生在一起,和嵌入式丝毫没有关系,并且要十分注意脸色行事。有一家办公的环境还不错,刚刚上午说了要我帮他们搞个linux网站,下午就被派去施工安装网络插座了,说是领导安排要先在底层锻炼几个月再说。并且没有宿舍,三餐自己掏钱,工资不到2000,附近租房出奇的贵。折腾来折腾去,一个多月就进去了,结果什么都没搞成。这时接的那个项目催的又急,GF父母那边又相处的不是很好。干脆,我就在广州租了个房子呆下去了(想想一年来我寄居过、租过不到7平方米的地下室、四周阴暗又不通风的民房。。。这次租的是一房一厅,感觉还不错) 到8月份的时候,我终于勉强把客户的那个龙珠板设计出来了。那是我第一次做四层板,总共做了8块,深圳的朋友当时给了我一些够用的龙珠芯片。当时正值沿海的热浪袭击,我又住在顶楼,天气热的要死,楼下就是一个超市,天天在做宣传促销活动,并且还是几个公司一起搞,结果几对大音箱互相争霸,主持人简直就是歇斯底里的喊,我还打电话到南方都市报投诉,但没有任何结果。我拿着电烙铁一边焊一边骂,谁知焊了第一块板,一点反应也没有,就焊第二块,又是没有反应,当时穿着短裤,融化的焊锡一不小心就掉到腿上,到现在还有个疤,我简直又气又急。看看剩下的芯片和板子,又仔细检查原理图和PCB,真是好郁闷啊!我就想,反正有8块板呢,我才焊了两块而已,不行就接着焊,于是终于在第四块板的时候跑起了uClinux,接下来的一个月就做相应的软件。这时我自己攒的钱已经花的差不多了,这么久没有去工作,心里很急啊!那时我几乎每周都去招聘会溜达一圈,期望能在广州找个自己喜欢的合适的工作。但是自从今年下半年以来,工作出奇的难找。我天天都在安慰自己,一定能找个好工作的。我女朋友也鼓励我要找个自己喜欢的工作。另外我接的项目要的钱也很少,只有几千块,向客户苦诉了一番,才又多给了2000。做完龙珠的几个软件(也就是几个简单的驱动程序和测试代码),我就拿到一些钱了,心里稍微安慰了一下。这时已经到了国庆节,arm7的板子在国内已经遍地开花了。我找和以前那个朋友又见面商量了一下,问他能不能帮我搞定2410的软件,于是过完国庆,就开始参考mizi设计arm9(2410)了。 到那时我已经好长时间没有工作了,也逐渐的适应了,大不了再跑去东莞或者深圳打工嘛。我今年25,感觉还不算老啊,年轻的资本就应该这样挥霍。从国庆开始,我在墙壁的四周写下10月份的目标:设计出2410的板子。于是,第一次做完一个4层电路板,我就开始第一次做6层板的设计了。我以前工作的时候,留意多认识一些搞硬件的朋友,这次设计6层板,不懂的地方我就打电话问,比如怎么做等长线,Buffer该怎么处理,要不要CPLD之类的。我以前是个小小的软件工程师,现在要做逐渐做个硬件工程师。因此很多地方就要虚心请教,我知道我还要交更多的朋友,拜更多的老师。设计这块2410的时候,对我这个急性子而言,太需要耐心了,于是我就租史泰龙的碟来看,每次不想坚持下去的时候,我就租张《Rocky》来看,也当休息一下:-)幸好我以前也没有看过,所以看完了我就不想睡觉了,接着画图。虽然恐怖片也比较刺激,但是我不敢深更半夜一个人看(白天也不敢)。大部分我是晚上画图的,白天睡觉,因此这里实在是太吵了。实际上,我两周基本上画完了PCB,又用了一周修修补补,毕竟做一次6层板对我来说还是不小的金钱付出啊。 10月30号,我正式把PCB发送给制板厂了。8号拿到PCB,其中的8天,我又帮人设计了一个2层的龙珠板,可惜要到明年才能拿到设计费。等买完2410的元器件,我又接近弹尽粮绝了。这次不得已从朋友那个借了几千。对个人而言,买元器件其实是一个非常繁琐的事情。首先货源难寻,要在网上找,不停的打电话问(我租住的地方没法安装电话,也就没办法上网,每次买芯片话要跑回女朋友家);其次量少了,销售商一般都不理你,要么就把价格抬的奇高。有些元件还么货期,需要耐心的等。到了大概11月22号左右,我的元器件基本上凑齐了。BGA也焊接好了。我花了一个晚上焊接完了图片上那块板子。结果没有JTAG电缆,于是只能等第二天打电话问做硬件的朋友到哪里买,谁知他建议要我自己做,我又翻出mizi,找资料,当天下午就做好了。连上板子,十分庆幸的是竟然可以读到CPU的ID了。但是不能辨认到任何一个Flash,更谈不上烧写了。于是去掉buffer,采用直接连接的方式(也就是为什么板子上有那么多飞线了),这次可以辨认到nand flash,但依然不能烧写,试了N次,最后郁闷至极。幸好第二天晚上有个朋友带了个笔记本过来问我一些龙珠的问题,我就接到他的笔记本上试着烧,这次竟然写入了,原来是我的主板并口有问题,我又连上串口,很顺利的就跑通了vivi,到现在为止,至少证明我的板子还是有点动静了。 我接着又试着烧写zImage(压缩的内核),结果使用minicom怎么也下载不了。我怀疑是不是我的电脑有问题,就转到win2000里用超级终端,这次又比较顺利,但是虽然写入到flash了,就是运行不了linux,接下来又是问朋友,在朋友的帮助下,linux终于起来了。同时,我也焊接了其他四块板子(BGA我只贴了5片),但是无论我怎样找原因,就是不能跑起其余的四块板子。我冒险把已经跑通的板子上的大部分元器件拆下来(cpu除外),和不能通的板子相互调换,结果还是不行,而那个好的板子照样可以跑。这些步骤,我断断续续持续了一周多了,现在依然困扰着我。我几乎每天晚上都在用两把烙铁拆芯片、焊接、飞线,用放大镜和万用表查找虚焊、短路,结果一无所获。 我做2410的目的想必大家也十分清楚,就是么做一个给大家玩的板子。大家都喜欢便宜的东西,殊不知对个人和小公司而言,为做一个嵌入式开发板,是多么的辛苦,上面很多情况我都是一笔带过,甚至有的都没有提及。我是全职在做这个东西的,而且我是个新手(想必做面对一款新的没有用过的CPU,每个人都是新手)。全职尚且需要这么多时间,更何况业余做开发板的了。业余里做板子没有更多的时间,打电话买芯片不方便。。。诸此种种,没有一份对嵌入式的一种真心的热情,很难说能有耐心坚持做下去。现在大家都喜欢免费开放的东西,可是就算是给你一个完善的原理图和一个正确的PCB文件,没有半年的时间,也是很难上手的。我认识的做类似开发板的,无不有一个难以忍受的经历,从发出PCB到制板厂那时起,就注定要走这一步。大致这个流程是这样的:找资料->做简单测试试验->设计原理图->做封装->设计PCB->制板->买元件->焊接->调试硬件->修正硬件->调试软件->写说明书->包装邮寄->技术支持。这其中有些过程看似很简单,但如果只有一个人来做的话,会不知不觉的花费很多的时间和精力。其中的每一个步骤,都不是个人和小公司所能耽误的起的。 |