ARM開(kāi)發(fā)板不工作的原因
剛焊了5塊ARM(LPC2478)的開(kāi)發(fā)板,上程序測(cè)試了一下,發(fā)現(xiàn)只有一個(gè)板子工作其他四個(gè)全部歇菜。努力地找了一會(huì)最終發(fā)現(xiàn)是板子的來(lái)個(gè)電阻焊翻了。因?yàn)槭?206 的封裝而且來(lái)個(gè)電阻在PCB上擺放的位置擺成了正方形,本來(lái)是要橫著放的,焊的時(shí)候焊成了豎著了。因?yàn)閬?lái)個(gè)電阻的不正確導(dǎo)致電路的上電復(fù)位功能失效,板子就不能愉快的工作了。
從近幾次的調(diào)試板子的經(jīng)驗(yàn)來(lái)看,要找出以設(shè)計(jì)好的ARM板(單片機(jī)板)不工作的原因應(yīng)該從以下幾個(gè)方面來(lái)確定:
1、測(cè)試電源電路是否工作,輸出電源是否穩(wěn)定,輸出電源值是否正確。
2、測(cè)試板子的晶振是否起振。
3、反復(fù)查看板子的復(fù)位條件是否滿足,是上電復(fù)位,還是手動(dòng)復(fù)位,確認(rèn)復(fù)位電路是否正確。
4、查看232串口芯片的好壞,確認(rèn)串口電路是否設(shè)計(jì)無(wú)誤。
在工作的過(guò)程中犯的2B錯(cuò)誤:
一次設(shè)計(jì)一個(gè)單片機(jī)開(kāi)發(fā)板。直接從AD庫(kù)中選取了一個(gè)類(lèi)似STC89C51的原理圖,外圍電路和最小系統(tǒng)都設(shè)計(jì)好了之后,PCB畫(huà)完之后(單片機(jī)的封裝也是從庫(kù)里取得),就想當(dāng)然的認(rèn)為自己的PCB是正確的,然后就發(fā)出去做了?;貋?lái)之后怎么調(diào),系統(tǒng)都不工作。最后才發(fā)現(xiàn)原來(lái)是買(mǎi)的STC89C51與PCB上的引腳都不是對(duì)應(yīng)的,害的我又重新做了一塊板子。想想就感覺(jué)自己好2啊。
板子回來(lái)之后接著調(diào),還是不工作,最后找到了原來(lái)你是芯片MAX232壞了,至于是怎么壞的不清楚,可能是自己焊接水平太菜,把它燒壞了,也可能是其他原因。因?yàn)橛?a target="_blank">示波器看到232的接收引腳一直在接收數(shù)據(jù)的。
畫(huà)元器件的封裝時(shí)一定要使封裝的引腳標(biāo)號(hào)與元器件的原理圖引腳標(biāo)號(hào)一致,要不然原理圖導(dǎo)入PCB時(shí)會(huì)出現(xiàn)很多錯(cuò)誤的。
Arm開(kāi)發(fā)板的制作過(guò)程
做一個(gè)簡(jiǎn)單的、自己學(xué)習(xí)用的arm開(kāi)發(fā)板,不僅可以節(jié)約成本,還能享受其中的樂(lè)趣。今天我就將自己在制作嵌入式開(kāi)發(fā)板過(guò)程中的一些經(jīng)驗(yàn)和步驟講給大家,希望對(duì)大家有所幫助!
本文tag:arm開(kāi)發(fā)板 arm7 arm9 S3C2410核心板
一、原理圖的設(shè)計(jì)
首先,你先要考慮自己打算做一個(gè)什么樣的板,是為了完成某個(gè)項(xiàng)目,還是做個(gè)學(xué)習(xí)用的板。明確目的后,開(kāi)始設(shè)計(jì)原理圖。目前我們常用的ARM開(kāi)發(fā)板多是三星的,也有PHILIPS的。這兩大類(lèi)芯片在網(wǎng)上可以找到很豐富的資源,包括原理圖和測(cè)試程序,尤其是44B0的芯片,資料幾乎是滿網(wǎng)飛了。找一個(gè)芯片的原理圖,在其基礎(chǔ)上做些改動(dòng),使之更適合自己的實(shí)際應(yīng)用。 ARM7的芯片使用起來(lái)會(huì)稍微簡(jiǎn)單些,畢竟其原理構(gòu)造和普通的51單片機(jī)有些類(lèi)似,不需要太費(fèi)事就可以完成。 對(duì)于ARM9的,設(shè)計(jì)原理圖會(huì)比較麻煩。建議采用核心板的方式,把ARM芯片和存儲(chǔ)器放在一個(gè)小板上,然后再做底板,這樣即使設(shè)計(jì)出了問(wèn)題,也方便重新修改設(shè)計(jì)。
原理圖方面我就不多羅嗦了,網(wǎng)上大把參照?qǐng)D,DOWN下來(lái)自己修改就可以了,確定原理圖無(wú)誤后,就需要開(kāi)始布板了。
對(duì)于ARM7,速度比較低的那種(100M以下的),板只要布的合適就可以了,沒(méi)有什么特別值得注意的地方,有些信號(hào)線上可能需要串上一些小電阻,做高頻電阻匹配用。
對(duì)于ARM9的板,最少需要4層板。(如果雙面能把線布下,雙面板也可以的)。這里也許有人會(huì)問(wèn),4層板是否夠用。我覺(jué)得是完全夠的。我自己設(shè)計(jì)過(guò)一個(gè)S3C2410核心板,用4層板做,在200M下也能正常工作。 另外,我從網(wǎng)上下了個(gè)6層板的PCB,我把它改成了4層板,雖還沒(méi)來(lái)得及調(diào)試,我估計(jì)工作起來(lái)也不是問(wèn)題。為什么我這么說(shuō)呢,因?yàn)榭凑麄€(gè)電路就可以大概知道一些,只要你布的板把電源和時(shí)鐘處理的得當(dāng),其他邏輯信號(hào)線不是什么太大問(wèn)題。當(dāng)然了,前提是邏輯信號(hào)不能亂布。
這里需要說(shuō)明一點(diǎn),做4層板完全是為了自己學(xué)習(xí)用,因?yàn)樽?層板的價(jià)格太高了,個(gè)人承擔(dān)不起。但如果你是打算來(lái)做工業(yè)設(shè)備或?qū)嶋H項(xiàng)目,還是使用6層板吧,這樣能夠在硬件上起到一定的保障作用。
二、PCB加工
板布好之后,就要外發(fā)加工了。如果你是公司給你做板,那就不用開(kāi)這個(gè)部分了。個(gè)人做板的可以繼續(xù)看下去。
找廠家做板就有些技巧了。先說(shuō)雙面板的。雙面板普通廠家都可以做,線距和ARM7芯片的引腳間距一樣就可以了。寬一點(diǎn)更好。價(jià)格一般不會(huì)很貴,有200塊RMB就足夠做5個(gè)板來(lái)讓你調(diào)試了。北京和深圳的行情好象不太一樣。在深圳好象是需要收大概600塊的工程費(fèi),然后是按面積算。北京則是直接按面積算,總價(jià)需要在100塊上以上,不足100的按100來(lái)算。同時(shí)北京還可以自己來(lái)定做板方法,比如板上不加絲印、不鍍金來(lái)降低價(jià)格。不管怎么說(shuō),只要耐心找,總能找到一家適合自己的廠家來(lái)做板。當(dāng)然了,也有些廠家價(jià)格低,質(zhì)量也會(huì)梢差一點(diǎn),做好的板拿回來(lái)仔細(xì)檢查,就不會(huì)影響到我們測(cè)試。我和另一個(gè)同學(xué)04年的時(shí)候,在北京用了150塊錢(qián)做了3個(gè)板,沒(méi)有絲印,沒(méi)有銑邊,僅僅鍍了層錫?;貋?lái)后自己把板處理一遍。檢查出了一處短路(我們布的那個(gè)板,線條過(guò)細(xì),線距也很小,這是到后來(lái)才知道的)。修理完后焊好的板工作很穩(wěn)定。
再說(shuō)多層板的。由于多層板一般多用于BGA封裝的芯片,檢查的時(shí)候就不容易檢查,加上內(nèi)層布線我們看不到,在選廠家的時(shí)候需要適當(dāng)選一些可信的廠家,最好是能做飛針測(cè)試的廠家。做一個(gè)4層板的模費(fèi)大概是在1000~2000, 個(gè)別廠家可能會(huì)要2000以上,但那種廠家是能保證給你的板絕對(duì)OK的,有的時(shí)候?yàn)榱税宓馁|(zhì)量,也需要犧牲一點(diǎn)模費(fèi)。一般,你付足模費(fèi)錢(qián)后,廠家可以免費(fèi)給你做幾個(gè)樣板,如果你想多要幾個(gè)板,一定要提前跟廠家說(shuō),他們可能會(huì)多收一點(diǎn)錢(qián),也可能不收錢(qián)。這樣看你的談判技巧了。因?yàn)樗淮巫鲆粋€(gè)板和一次做30個(gè)板的價(jià)格是一樣的。
做板方面需要注意的是,板拿回來(lái)后需要仔細(xì)檢查,發(fā)現(xiàn)開(kāi)短路的地方需要及時(shí)修理。所在地沒(méi)有加工板的地方,可以考慮網(wǎng)上訂做。他們做完后可以郵寄給你,價(jià)格方面需要自己去談了。
三、元件的購(gòu)買(mǎi)
購(gòu)買(mǎi)元件很容易。當(dāng)然了,你得找到合適的貨源。北京的方面,在中關(guān)村就可以找到芯片。像電阻電容這樣的元件也可以零售(100個(gè)一賣(mài))。
深圳這邊好一些的店面一般不零售。但這沒(méi)關(guān)系,在華強(qiáng)多轉(zhuǎn)轉(zhuǎn),慢慢的和店老板磨一磨,拿上一兩百個(gè)元件還是沒(méi)有問(wèn)題的。
如果不能找到像北京、深圳這樣有專門(mén)電子市場(chǎng)的地方,也不要放棄,可以考慮在網(wǎng)上找一找,有些地方是賣(mài)套件的,可以自己買(mǎi)一套來(lái)玩玩。價(jià)格不會(huì)差很遠(yuǎn)的。元件購(gòu)買(mǎi)方面需要注意的是,不要賣(mài)到翻新件。
四、元件焊接
板拿回來(lái)后,就需要開(kāi)始焊元件了,TQFP封裝的芯片會(huì)比較好焊,焊盤(pán)上先上錫,然后一個(gè)腳一腳的焊上去就可以了。當(dāng)然也可以采用拖焊的方法,總之,只要焊的牢靠就行了。
對(duì)于BGA焊接,可能會(huì)更簡(jiǎn)單一點(diǎn)。因?yàn)锽GA焊接是外發(fā)加工的,自己最好不要焊。焊接GBA芯片最好是找那些修手機(jī)或是修筆記本電腦的廠家焊。就算他們沒(méi)有專門(mén)焊接BGA的設(shè)備,憑他們的經(jīng)驗(yàn),也可以把芯片焊好。焊接BGA芯片的價(jià)格差距很大,價(jià)格大多在100塊左右的。不過(guò)也有便宜的,我在華強(qiáng)找的一家,焊?jìng)€(gè)S3C2410只要20塊,成功率在90%以上,我在那里焊的幾個(gè)板,沒(méi)有一個(gè)有問(wèn)題的。如果是批量生產(chǎn),還是找比較好的加工廠做吧,畢竟少修電腦的廠家只是拿來(lái)給我們自己玩玩罷了。
焊接調(diào)試過(guò)程中有個(gè)小技巧,也算是一個(gè)注意點(diǎn)。板最好是焊一部分調(diào)試一部分。一般焊接調(diào)試的順序是:電源-》主芯片外圍器件-》主芯片-》SRAM-》FLASH-》其他外設(shè)。按照這樣的序調(diào)試焊接,優(yōu)點(diǎn)在于能一步一步的排除問(wèn)題點(diǎn)。假設(shè),當(dāng)你把主芯片,存儲(chǔ)器都焊好,而且也調(diào)試可以工作了,再去焊你的電源,結(jié)果板上的電源部分出問(wèn)題了,一個(gè)高壓竄到了主芯片上,那后果不是很?chē)?yán)重?
五、電源、主芯片的電路調(diào)試
焊好電源,把板上主芯片位置與電源相連的引腳測(cè)一遍,看看是不是需要的電壓,這樣做可以保證主芯片供電正常,使主芯片能夠工作。
電源部分調(diào)試完成后,接下來(lái)是焊與主芯片相關(guān)的外圍元件,如復(fù)位電路,時(shí)鐘部分,JTAG接口部分,系統(tǒng)配置部分。這幾個(gè)部分焊好后,再焊上主芯片,和主芯片一起調(diào)試。
主芯片焊好后,通過(guò)JTAG接口連接到電腦上,在電腦上用JTAG調(diào)試代理軟件,就應(yīng)該可以檢查到板上的芯片了。如果不用代理軟件,用ulink之類(lèi)的東西也可以。不過(guò)個(gè)人覺(jué)得用代理軟件最簡(jiǎn)單了。如果軟件檢查不到,則表示主芯片沒(méi)有正常工作,或者JTAG部分沒(méi)有工作,這個(gè)時(shí)候就需要詳細(xì)檢查各個(gè)部分了。一般來(lái)說(shuō),這個(gè)環(huán)節(jié)是整個(gè)調(diào)試工作中最重要的部分,主芯片如果不能工作,其他元件就不要再焊了,焊上也沒(méi)有意義。這個(gè)環(huán)節(jié)容易出問(wèn)題的就是復(fù)位電路工作不正常,主芯片某些引腳虛焊。主芯片的系統(tǒng)配置正確與否暫時(shí)不會(huì)影響到芯片是否工作,可以最后檢查。
當(dāng)電腦能夠成功的檢查到板上的芯片時(shí),激動(dòng)的心情也會(huì)隨之而來(lái)。哈哈~~~
六、SRAM、FLASH的調(diào)試
接下來(lái),需要調(diào)試的是SRAM。
為什么是先調(diào)試SRAM而不是先調(diào)試FLASH呢? 因?yàn)镾RAM可以直接由ARM芯片來(lái)讀寫(xiě),只要信號(hào)線接的沒(méi)錯(cuò),系統(tǒng)設(shè)置沒(méi)錯(cuò),那SRAM一定會(huì)工作,除非你買(mǎi)到壞的SRAM。用JTAG接口將板和電腦連接,打開(kāi)AXD的Command line和Memory watch,使用命令行來(lái)對(duì)芯片進(jìn)行初始化。AXD中使用setmem命令對(duì)相關(guān)寄存器進(jìn)行設(shè)置。如果不知道如何使用Command line,可以在命令行中輸入help來(lái)查詢。設(shè)置完寄存器后,后在Memory watch中修改對(duì)應(yīng)地址單元的數(shù)據(jù),就可以看到修改后的數(shù)據(jù)保存下來(lái)了。我用這個(gè)方法測(cè)試過(guò)LPC2214,4510,44B0,2410,都可以用這個(gè)方法來(lái)測(cè)試SRAM是否已經(jīng)工作了。
當(dāng)使用這種方法修改SRAM數(shù)據(jù),需要注意的是,你所修改的地址,必須是位于SRAM地址范圍內(nèi)的,否則修改后不會(huì)得到正確的結(jié)果。如果發(fā)現(xiàn)修改后的數(shù)據(jù)不能得到你想要的數(shù)據(jù),可能存在兩個(gè)問(wèn)題:1是電路板上數(shù)據(jù)線存在開(kāi)短路。2是芯片的初始化設(shè)置不正確,導(dǎo)致存儲(chǔ)器映射錯(cuò)誤,修改好即可。
一般來(lái)說(shuō),SRAM如果能夠順利工作,則FLASH也可以順利工作。焊好FLASH,使用FLASHPGM燒一個(gè)程序來(lái)實(shí)驗(yàn)一下。如果能順利燒入,則表示FLASH可以正常工作。如果不能正常燒入程序,多半情況是焊接不夠好,F(xiàn)LASH可能存在短路或者虛焊。這里需要知道一件事,F(xiàn)LASHPGM軟件是利用SRAM來(lái)燒錄FLASH的。它先將一段可以燒錄FLASH的程序下載到SRAM中,運(yùn)行這段小程序,然后再燒錄FLASH,所以你提供給FLASHPGM的芯片初始化程序必須正確,這樣才可能正常燒錄FLASH,否則燒錄肯定是失敗的。
對(duì)于2410這種既掛NAND FLASH又掛NOR FLASH的芯片,調(diào)試起來(lái)也很容易。用FLASHPGM調(diào)試NOR FLASH,用三星提供的那個(gè)小燒錄工具調(diào)試NAND FLASH。
調(diào)試到這里,說(shuō)明你的板已經(jīng)可以工作了。焊好串口部分電路,寫(xiě)上一段程序測(cè)試串口,調(diào)試串口部分。串口部分可以工作后,你的開(kāi)發(fā)板就可以用了。當(dāng)然,你的板上肯定還有其他東西,不要著急,一點(diǎn)一點(diǎn)的調(diào)試,總是可以調(diào)試完成的。整個(gè)板的調(diào)試過(guò)程中,越是靠前的步驟就越是難調(diào),后面的外設(shè)相對(duì)好調(diào)一些??偟膩?lái)說(shuō),只要你想辦法,板是一定可以做成的,調(diào)試也可以很快完成。
評(píng)論