做arm9(2410)前后的一些經(jīng)歷
雖然到現(xiàn)在為止我的arm9還沒有做出來,目前只調(diào)通了一塊。
寫這篇文章的目的,就是想和嵌入式愛好者做一個(gè)簡單的交流。
2002.9月以前我是做龍珠的(DragonBall VZ)軟件的,使用的是uClinux,因?yàn)橐恢笔褂霉镜陌遄樱簿褪悄菈KMotorola的ADS板。覺得上面的東西看起來不是很復(fù)雜,因此很想自己做一個(gè)龍珠的板子來玩uClinux,但是我不會(huì)使用任何一個(gè)畫板的軟件,最多也就會(huì)使用protel畫畫原理圖之類的(現(xiàn)在想想,從原理圖到PCB還是有挺多細(xì)節(jié)要注意的),后來在一個(gè)朋友的幫助下,我十分生疏的畫了一個(gè)龍珠的簡單的板子。不像學(xué)軟件那樣,買本書,有臺(tái)電腦就差不多夠了。制板是要掏錢的,我的薪金一直偏低,在女朋友的支持下,我終于拿去制板了,接下來就是買元件(十分簡單但是又十分繁瑣的一件事)。再接下來就是焊接了,大學(xué)時(shí)有個(gè)電子工藝實(shí)習(xí),我學(xué)會(huì)了焊接電烙鐵焊接直插元件,但是面對(duì)TQFP的144腳表貼元件,我還真不知道怎么下手。我又在網(wǎng)上結(jié)識(shí)了另外一個(gè)朋友,還到他們的實(shí)驗(yàn)室看了一下怎樣焊表貼元件,覺得也不是很難嘛:),觀摩回來我就自己試著焊接,最后出來了,黑糊糊的一堆,反正是很難看的東西了。期間嘗試使用錫漿,助焊劑,松香水之類的。不過我很幸運(yùn)阿,這個(gè)板子可以跑uClinux。
再到2003春節(jié)的時(shí)候,(此時(shí)國內(nèi)的arm7板已經(jīng)發(fā)展起來了)我又重新做了一個(gè)龍珠的板子,這次參考了其他一些漂亮的板子,因此看起來比上次那個(gè)順眼一點(diǎn)。還寫了一個(gè)詳細(xì)的文檔,我的目的就是:賣。至少要把成本收回阿。我把做好的板子首先送給了一位朋友,他建議我做個(gè)arm9(2410)的板子,我就開始在三星網(wǎng)站找資料,不過我還是和深圳另外一個(gè)朋友一起合作把龍珠的板子整理了一下,寫了幾個(gè)簡單的演示程序,準(zhǔn)備賣幾塊。不過在arm7的勢頭下,DragonBall已經(jīng)鮮為人知了,在龍珠上,我和深圳的朋友已經(jīng)盡了最大的努力,這件事上,深圳的朋友至少在錢的方面,幫助了我很多,在他身上,我還學(xué)到做事要認(rèn)真、要有耐心、對(duì)用戶負(fù)責(zé)的精神,從內(nèi)心中,我一直都很感激他。后來接了一個(gè)龍珠的小項(xiàng)目,還有一些其他事,我就回到廣州了,那是在今年6月底。
回到廣州,女朋友剛剛動(dòng)完一個(gè)手術(shù),身體很虛弱,陪了她兩周,然后就想在她家附近找類似機(jī)關(guān)單位的工作,親戚幫忙介紹了幾個(gè),大部分都只是和負(fù)責(zé)人見面談了談,我就不想在那種單位呆了。因?yàn)槲野l(fā)現(xiàn)有的工作臺(tái)連臺(tái)電腦都沒有,要不就是跟一群當(dāng)?shù)貨]有工作經(jīng)驗(yàn)的大專畢業(yè)生在一起,和嵌入式絲毫沒有關(guān)系,并且要十分注意臉色行事。有一家辦公的環(huán)境還不錯(cuò),剛剛上午說了要我?guī)退麄兏銈€(gè)linux網(wǎng)站,下午就被派去施工安裝網(wǎng)絡(luò)插座了,說是領(lǐng)導(dǎo)安排要先在底層鍛煉幾個(gè)月再說。并且沒有宿舍,三餐自己掏錢,工資不到2000,附近租房出奇的貴。折騰來折騰去,一個(gè)多月就進(jìn)去了,結(jié)果什么都沒搞成。這時(shí)接的那個(gè)項(xiàng)目催的又急,GF父母那邊又相處的不是很好。干脆,我就在廣州租了個(gè)房子呆下去了(想想一年來我寄居過、租過不到7平方米的地下室、四周陰暗又不通風(fēng)的民房。。。這次租的是一房一廳,感覺還不錯(cuò))
到8月份的時(shí)候,我終于勉強(qiáng)把客戶的那個(gè)龍珠板設(shè)計(jì)出來了。那是我第一次做四層板,總共做了8塊,深圳的朋友當(dāng)時(shí)給了我一些夠用的龍珠芯片。當(dāng)時(shí)正值沿海的熱浪襲擊,我又住在頂樓,天氣熱的要死,樓下就是一個(gè)超市,天天在做宣傳促銷活動(dòng),并且還是幾個(gè)公司一起搞,結(jié)果幾對(duì)大音箱互相爭霸,主持人簡直就是歇斯底里的喊,我還打電話到南方都市報(bào)投訴,但沒有任何結(jié)果。我拿著電烙鐵一邊焊一邊罵,誰知焊了第一塊板,一點(diǎn)反應(yīng)也沒有,就焊第二塊,又是沒有反應(yīng),當(dāng)時(shí)穿著短褲,融化的焊錫一不小心就掉到腿上,到現(xiàn)在還有個(gè)疤,我簡直又氣又急??纯词O碌男酒桶遄樱肿屑?xì)檢查原理圖和PCB,真是好郁悶啊!我就想,反正有8塊板呢,我才焊了兩塊而已,不行就接著焊,于是終于在第四塊板的時(shí)候跑起了uClinux,接下來的一個(gè)月就做相應(yīng)的軟件。這時(shí)我自己攢的錢已經(jīng)花的差不多了,這么久沒有去工作,心里很急??!那時(shí)我?guī)缀趺恐芏既フ衅笗?huì)溜達(dá)一圈,期望能在廣州找個(gè)自己喜歡的合適的工作。但是自從今年下半年以來,工作出奇的難找。我天天都在安慰自己,一定能找個(gè)好工作的。我女朋友也鼓勵(lì)我要找個(gè)自己喜歡的工作。另外我接的項(xiàng)目要的錢也很少,只有幾千塊,向客戶苦訴了一番,才又多給了2000。做完龍珠的幾個(gè)軟件(也就是幾個(gè)簡單的驅(qū)動(dòng)程序和測試代碼),我就拿到一些錢了,心里稍微安慰了一下。這時(shí)已經(jīng)到了國慶節(jié),arm7的板子在國內(nèi)已經(jīng)遍地開花了。我找和以前那個(gè)朋友又見面商量了一下,問他能不能幫我搞定2410的軟件,于是過完國慶,就開始參考mizi設(shè)計(jì)arm9(2410)了。
到那時(shí)我已經(jīng)好長時(shí)間沒有工作了,也逐漸的適應(yīng)了,大不了再跑去東莞或者深圳打工嘛。我今年25,感覺還不算老啊,年輕的資本就應(yīng)該這樣揮霍。從國慶開始,我在墻壁的四周寫下10月份的目標(biāo):設(shè)計(jì)出2410的板子。于是,第一次做完一個(gè)4層電路板,我就開始第一次做6層板的設(shè)計(jì)了。我以前工作的時(shí)候,留意多認(rèn)識(shí)一些搞硬件的朋友,這次設(shè)計(jì)6層板,不懂的地方我就打電話問,比如怎么做等長線,Buffer該怎么處理,要不要CPLD之類的。我以前是個(gè)小小的軟件工程師,現(xiàn)在要做逐漸做個(gè)硬件工程師。因此很多地方就要虛心請教,我知道我還要交更多的朋友,拜更多的老師。設(shè)計(jì)這塊2410的時(shí)候,對(duì)我這個(gè)急性子而言,太需要耐心了,于是我就租史泰龍的碟來看,每次不想堅(jiān)持下去的時(shí)候,我就租張《Rocky》來看,也當(dāng)休息一下:-)幸好我以前也沒有看過,所以看完了我就不想睡覺了,接著畫圖。雖然恐怖片也比較刺激,但是我不敢深更半夜一個(gè)人看:((白天也不敢)。大部分我是晚上畫圖的,白天睡覺,因此這里實(shí)在是太吵了。實(shí)際上,我兩周基本上畫完了PCB,又用了一周修修補(bǔ)補(bǔ),畢竟做一次6層板對(duì)我來說還是不小的金錢付出啊。
10月30號(hào),我正式把PCB發(fā)送給制板廠了。8號(hào)拿到PCB,其中的8天,我又幫人設(shè)計(jì)了一個(gè)2層的龍珠板,可惜要到明年才能拿到設(shè)計(jì)費(fèi)。等買完2410的元器件,我又接近彈盡糧絕了。這次不得已從朋友那個(gè)借了幾千。對(duì)個(gè)人而言,買元器件其實(shí)是一個(gè)非常繁瑣的事情。首先貨源難尋,要在網(wǎng)上找,不停的打電話問(我租住的地方?jīng)]法安裝電話,也就沒辦法上網(wǎng),每次買芯片話要跑回女朋友家);其次量少了,銷售商一般都不理你,要么就把價(jià)格抬的奇高。有些元件還么貨期,需要耐心的等。到了大概11月22號(hào)左右,我的元器件基本上湊齊了。BGA也焊接好了。我花了一個(gè)晚上焊接完了圖片上那塊板子。結(jié)果沒有JTAG電纜,于是只能等第二天打電話問做硬件的朋友到哪里買,誰知他建議要我自己做,我又翻出mizi,找資料,當(dāng)天下午就做好了。連上板子,十分慶幸的是竟然可以讀到CPU的ID了。但是不能辨認(rèn)到任何一個(gè)Flash,更談不上燒寫了。于是去掉buffer,采用直接連接的方式(也就是為什么板子上有那么多飛線了),這次可以辨認(rèn)到nand flash,但依然不能燒寫,試了N次,最后郁悶至極。幸好第二天晚上有個(gè)朋友帶了個(gè)筆記本過來問我一些龍珠的問題,我就接到他的筆記本上試著燒,這次竟然寫入了,原來是我的主板并口有問題,我又連上串口,很順利的就跑通了vivi,到現(xiàn)在為止,至少證明我的板子還是有點(diǎn)動(dòng)靜了。
我接著又試著燒寫zImage(壓縮的內(nèi)核),結(jié)果使用minicom怎么也下載不了。我懷疑是不是我的電腦有問題,就轉(zhuǎn)到win2000里用超級(jí)終端,這次又比較順利,但是雖然寫入到flash了,就是運(yùn)行不了linux,接下來又是問朋友,在朋友的幫助下,linux終于起來了。同時(shí),我也焊接了其他四塊板子(BGA我只貼了5片),但是無論我怎樣找原因,就是不能跑起其余的四塊板子。我冒險(xiǎn)把已經(jīng)跑通的板子上的大部分元器件拆下來(cpu除外),和不能通的板子相互調(diào)換,結(jié)果還是不行,而那個(gè)好的板子照樣可以跑。這些步驟,我斷斷續(xù)續(xù)持續(xù)了一周多了,現(xiàn)在依然困擾著我。我?guī)缀趺刻焱砩隙荚谟脙砂牙予F拆芯片、焊接、飛線,用放大鏡和萬用表查找虛焊、短路,結(jié)果一無所獲。
我做2410的目的想必大家也十分清楚,就是么做一個(gè)給大家玩的板子。大家都喜歡便宜的東西,殊不知對(duì)個(gè)人和小公司而言,為做一個(gè)嵌入式開發(fā)板,是多么的辛苦,上面很多情況我都是一筆帶過,甚至有的都沒有提及。我是全職在做這個(gè)東西的,而且我是個(gè)新手(想必做面對(duì)一款新的沒有用過的CPU,每個(gè)人都是新手)。全職尚且需要這么多時(shí)間,更何況業(yè)余做開發(fā)板的了。業(yè)余里做板子沒有更多的時(shí)間,打電話買芯片不方便。。。諸此種種,沒有一份對(duì)嵌入式的一種真心的熱情,很難說能有耐心堅(jiān)持做下去?,F(xiàn)在大家都喜歡免費(fèi)開放的東西,可是就算是給你一個(gè)完善的原理圖和一個(gè)正確的PCB文件,沒有半年的時(shí)間,也是很難上手的。我認(rèn)識(shí)的做類似開發(fā)板的,無不有一個(gè)難以忍受的經(jīng)歷,從發(fā)出PCB到制板廠那時(shí)起,就注定要走這一步。大致這個(gè)流程是這樣的:
找資料→做簡單測試試驗(yàn)→設(shè)計(jì)原理圖→做封裝→設(shè)計(jì)PCB→制板→買元件→焊接→調(diào)試硬件→修正硬件→調(diào)試軟件→寫說明書→包裝郵寄→技術(shù)支持。
這其中有些過程看似很簡單,但如果只有一個(gè)人來做的話,會(huì)不知不覺的花費(fèi)很多的時(shí)間和精力。其中的每一個(gè)步驟,都不是個(gè)人和小公司所能耽誤的起的。
這里面或許我是有一些抱怨,但我很高興仍然能做自己喜歡的東西。歡迎大家和我多一些技術(shù)上的交流。我暫時(shí)沒有太大的目標(biāo),只想調(diào)通其余的四塊板子;-),或者你還是建議我重新做一個(gè)?謝謝