硬件調(diào)試流程及說明_第1頁
硬件調(diào)試流程及說明_第2頁
硬件調(diào)試流程及說明_第3頁
硬件調(diào)試流程及說明_第4頁
硬件調(diào)試流程及說明_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.硬件調(diào)試流程硬件調(diào)試是一項(xiàng)細(xì)心的工作,一定要有耐心。硬件調(diào)試工具需要示波器、萬用表等,同時(shí)需要主芯片調(diào)試開發(fā)軟件及相應(yīng)的仿真器。硬件調(diào)試首先要熟悉原理圖原理和PCB布局,然后根據(jù)功能模塊進(jìn)行相關(guān)調(diào)試。調(diào)試流程如下。PCB裸板測試PCB加工生產(chǎn)故障往往由于設(shè)計(jì)和加工制板過程中工藝性錯誤所造成的,主要包括錯線、開路、短路。當(dāng)用戶的PCB板制作完畢后,不要急于焊接元器件,請首先對照原理圖仔細(xì)檢查印制電路板的連線,確保無誤后方可焊接。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯誤,利用數(shù)字萬用表的短路測試功能測量一下板上所有的電源和地有沒有短路的。然后檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是

2、否存在相互之間短路或與其它信號線路短路。對于需要SMT的PCB板,量小建議每個(gè)PCB板都進(jìn)行一下檢查,如果量大可抽樣檢查。檢查完畢無異常后交由SMT焊接,SMT焊接資料有硬件工程師提供焊接用partlist,PCB工程師提供PCB的SMT相關(guān)文檔。如果是手工焊接,建議焊接3塊,以便調(diào)試時(shí)進(jìn)行比較,排除焊接異常出現(xiàn)的問題。并且焊接時(shí)建議根據(jù)功能模塊進(jìn)行焊接,功能模塊調(diào)試完成后再焊接其他功能模塊。焊接及調(diào)試的一般順序如下:Ø 電源Ø 主芯片及外圍最小系統(tǒng),包括主芯片,晶振,復(fù)位電路Ø RAM,F(xiàn)LASH,串口外設(shè)Ø 其他功能模塊按照這樣的序調(diào)試焊接,優(yōu)點(diǎn)在于

3、能一步一步的排除問題點(diǎn)。假設(shè),當(dāng)你把主芯片,存儲器都焊好,而且也調(diào)試可以工作了,再去焊你的電源,結(jié)果板上的電源部分出問題了,一個(gè)高壓竄到了主芯片上,那后果不是很嚴(yán)重?排除元器件SMT錯誤SMT后,觀察板上是否有下述現(xiàn)象Ø 有漏貼的器件Ø 有焊接不牢固的現(xiàn)象Ø 有極性電容、二極管、芯片是否焊接方向有錯誤Ø 芯片的相鄰管腳焊接短路Ø 小封裝的無極性的陶瓷電容,電阻焊接短路Ø 相同封裝的芯片焊接錯誤Ø 芯片管腳有虛焊,掛錫現(xiàn)象Ø 。若發(fā)現(xiàn)不正?,F(xiàn)象,應(yīng)分析其原因,并排除故障,再進(jìn)行調(diào)試,直到滿足要求。然后用萬用表測量電路

4、板上各種電源對地阻抗,記錄各電源到地的阻抗值;由于CPU/FPGA等內(nèi)核電容越來越低,所以1.2V等電壓的對地電阻可能會低于100歐姆,需要用萬用表的200歐姆檔來測量。如果有短路現(xiàn)象出現(xiàn),分析并查找原因,處理完畢后再進(jìn)行下一步硬件調(diào)試。電路板上電操作上電前一定要檢查外接電源電壓的幅值是否為輸入所需的電源電壓數(shù)值,極性是否正確,否則很容易造成系統(tǒng)損壞,并確定電路板電源端無短路現(xiàn)象后,才能給電路接通電源。上電時(shí)可用帶限流功能的可調(diào)穩(wěn)壓電源。先預(yù)設(shè)好過流保護(hù)的電流,一般情況下限流為1.5-2倍的工作電流,如果不確定工作電流,可以先從低到高限流,比如開始限流1A,第一次上電后再改為2A。電源一經(jīng)接通

5、,不要急于用儀器測量波形和數(shù)據(jù)的電氣指標(biāo),而是要觀察是否有異?,F(xiàn)象,如冒煙、放電的聲光、聽聽有無異常雜音,聞聞有無異常氣味,用手觸摸集成電路有無溫度過高現(xiàn)象。如果有,應(yīng)立即關(guān)斷電源,待排除故障后方可重新接通電源。如果瞬間出現(xiàn)電壓值變小,電流變大或出現(xiàn)過流保護(hù),說明電路板有短路或其他問題,則要斷開電源,尋找故障點(diǎn),并重復(fù)上述步驟,直到電源正常為止。上電,同時(shí)監(jiān)測輸出電流和輸出電壓,并記錄輸入電壓值和電流值,以便調(diào)試互相比較。電源電路、晶振電路和復(fù)位電路是整個(gè)系統(tǒng)正常工作的基礎(chǔ),應(yīng)首先保證它們的正常工作。電源調(diào)試上電通過萬用表測試各電源輸出值是否正常(如果有電源指示燈,觀察指示燈是否正常點(diǎn)亮)。記

6、錄此時(shí)系統(tǒng)各模塊的工作狀態(tài)和電源的輸入電流。通過示波器測試各電源輸出的紋波是否滿足設(shè)計(jì)要求,并保存波形和幅值,紋波等數(shù)據(jù)記錄。如果板上各電源輸出有0R短接電阻,可去掉此0R電阻,串萬用表測試電流(萬用表打到電流檔,表筆測量為電流輸出檔),記錄此時(shí)各電源負(fù)載的工作狀態(tài)和電源的輸出電流。主芯片硬件調(diào)試主芯片供電正常后,可調(diào)試其最小系統(tǒng)外圍電路。這個(gè)環(huán)節(jié)容易出問題的就是復(fù)位電路工作不正常,主芯片某些引腳虛焊。主芯片的系統(tǒng)配置正確與否暫時(shí)不會影響到芯片是否工作,可以最后檢查。Ø 外接晶振調(diào)試通過示波器檢測晶振是否起振,振幅,起振時(shí)間等參數(shù)是否滿足要求,并進(jìn)行波形保存和參數(shù)數(shù)據(jù)記錄,如果晶振沒

7、有起振,一般說明主芯片沒有正常工作,但有些芯片上電缺省采用內(nèi)部晶振,需要軟件配置后,外部晶振才可以起振;有些主芯片有CLKO管腳,即缺省32.768KHz的時(shí)鐘輸出,可通過示波器檢查此管腳是否有時(shí)鐘輸出,開確定主芯片是否上電正常工作。Ø 復(fù)位信號調(diào)試復(fù)位信號電壓是否滿足設(shè)計(jì)要求,上電復(fù)位時(shí)間是否滿足要求; 如果外部有硬件看門狗,測試其是否按照設(shè)計(jì)要求復(fù)位。并進(jìn)行相關(guān)波形保存和參數(shù)數(shù)據(jù)記錄,JTAG仿真器連接調(diào)試以通過JTAG口對S3C2410進(jìn)行調(diào)試為例。 在保證S3C2410X已正常工作的情況下,可使用ADS或SDT通過JTAG接口對片內(nèi)的部件進(jìn)行訪問和控制。  

8、;  在此,首先通過對片內(nèi)控制通用I/O口的特殊功能寄存器的操作,點(diǎn)亮連接在GPG1,GPG8,GPG9,GPG10口上的4只LED,用以驗(yàn)證ADS調(diào)試環(huán)境是否已正確設(shè)置,以及與JTAG接口的連接是否正常。下圖為調(diào)試系統(tǒng)的硬件連接。按圖接好硬件后,打開AXD Debugger,建立與目標(biāo)板的連接,AXD Debugger有軟件仿真方式和帶目標(biāo)系統(tǒng)的調(diào)試方式,此時(shí)應(yīng)工作在帶目標(biāo)系統(tǒng)的調(diào)試方式。       首先打開Multi-ICE Server(v1.2),點(diǎn)擊左上角的Auto-configure按鈕,此時(shí)檢測板子上S3C2

9、410內(nèi)的ARM920T核,如果能檢測到,證明 JTAG連接沒有問題,否則,則應(yīng)檢查電路連接,直至檢測到ARM920T核才可進(jìn)行下面的操作。    打開ADS中的AXD Debugger,首先對其進(jìn)行配置,打開option->configure target,要使Multi-ICE與AXD Debugger 連接,需要添加一個(gè)動態(tài)鏈接庫,點(diǎn)擊add,把Multi-ICE安裝目錄下的Multi-ICE.dll添加進(jìn)去。然后雙擊,對其進(jìn)行配置,這里自動給配置好ARM920T,點(diǎn)擊OK即可。    打開ADS中的CodeWarrior

10、(代碼編輯編譯器),新建工程選擇ARM Executable Image,并在工程中新建文件,添加亮燈代碼到文件中。然后選擇菜單中project->addfile,將剛才寫好的代碼文件添加進(jìn)去。打開新建的工程,選擇DebugRel Settings按鈕,對Target Settings進(jìn)行設(shè)置。(具體設(shè)置見筆記)然后對該工程代碼進(jìn)行編譯,若編譯成功,則會在當(dāng)前工程目錄下生成.axf文件。    回到AXD Debugger,點(diǎn)擊File->load image,將之前生成的.axf文件導(dǎo)入,然后點(diǎn)擊運(yùn)行,若燈如設(shè)想的正常工作,表示調(diào)試系統(tǒng)的軟、硬件連接

11、完好,可以進(jìn)行下一步的調(diào)試工作。    也可以通過命令行直接點(diǎn)亮燈。 選擇菜單“System Views”“Command Line Interface”功能,該選項(xiàng)為AXD Debugger的一個(gè)命令行窗口,可在該窗口內(nèi)輸入各種調(diào)試命令,使用非常方便。在命令行窗口輸入:>setmem 0x56000060, 0xFFD5FFF7,32/通用I/O G口控制寄存器設(shè)為輸出狀態(tài)     >setmem 0x56000064, 0xF8FD,16    /通用I/O G口數(shù)據(jù)寄存器,低電

12、平亮外接RAM,F(xiàn)LASH的主芯片,需要通過JTAG仿真器調(diào)試,編寫相關(guān)驅(qū)動軟件,讓最小系統(tǒng)工作正常。Flash存儲器的編程、擦除操作均需要用戶編程控制,且程序還應(yīng)在SDRAM中運(yùn)行,因此,應(yīng)先調(diào)試好SDRAM存儲器系統(tǒng),再進(jìn)行Flash存儲器系統(tǒng)的調(diào)試。外接RAM調(diào)試SRAM可以直接由ARM芯片來讀寫,只要信號線接的沒錯,系統(tǒng)設(shè)置沒錯,SRAM一定會工作,除非買到壞的SRAM。用JTAG接口將板和電腦連接,打開AXD的Command line和Memory watch,使用命令行來對芯片進(jìn)行初始化。AXD中使用setmem命令對相關(guān)寄存器進(jìn)行設(shè)置。如果不知道如何使用Command line,

13、可以在命令行中輸入help來查詢。設(shè)置完寄存器后,后在Memory watch中修改對應(yīng)地址單元的數(shù)據(jù),就可以看到修改后的數(shù)據(jù)保存下來了。用這個(gè)方法可以測試LPC2214,4510,44B0,2410外部SRAM是否已經(jīng)工作。對SDRAM調(diào)試之前,首先要對CPU 、SDRAM等進(jìn)行初始化。 在“Command Line Interface”窗格中的“Debug>”提示符下依次鍵入以下命令:     spp vector_catch,0x00    spp semihosting_enabled,0x00  &

14、#160; sreg psr,0x60000013    smem 0x53000000,0,32    smem 0x4C000004,(0x47<<12) (0x1<<4) 0x2),32    smem 0x56000070,0x280000,32    smem 0x56000078,0x0,32    smem 0x48000000,(2<<28) (2<<24) (1<<20

15、) (9<<16) (1<<12) (1<<8) (1<<4) 0),32    smem 0x48000004,(3<<13) (3<<11) (7<<8) (3<<6) (3<<4) (3<<2) 3),32    smem 0x4800001c,(3<<15) (1<<2) 1),32    smem 0x48000020,(3<<15) (1&

16、lt;<2) 1),32    smem 0x48000024,(1<<23) (0<<22) (0<<20) (3<<18) (2<<16) 1113),32    smem 0x48000028,0x32,32    smem 0x4800002c,0x30,32    smem 0x48000030,0x30,32    或者將以上內(nèi)容保存在C:memmap.txt

17、中,然后在“Debug>”提示符下鍵入以下命令:obey C:memmap.txt,也可以達(dá)到上面的命令效果。選擇菜單Processor ViewsMemory選項(xiàng),出現(xiàn)存儲器窗口,在存儲器起始地址欄輸入SDRAM的映射起始地址:0x3000,0000,數(shù)據(jù)區(qū)應(yīng)顯示SDRAM中的內(nèi)容,此時(shí)所顯示的內(nèi)容為一些隨機(jī)數(shù)。雙擊其中的任一數(shù)據(jù),輸入新的值,如輸入0xAA,若對應(yīng)的存儲單元能正確顯示剛才輸入的數(shù)據(jù),則表明SDRAM存儲器已能正常工作。 在連續(xù)的4個(gè)字節(jié)輸入0xAA,然后再輸入0x55,檢測32位數(shù)據(jù)是否正確傳輸,若其中的某一位或幾位數(shù)據(jù)出現(xiàn)錯誤,則多半是由于對應(yīng)的數(shù)據(jù)線不通或連接錯誤

18、所引起的。 在SDRAM可以正確訪問之后,用戶可以將自己編寫的應(yīng)用程序編譯后下載到SDRAM中運(yùn)行。當(dāng)使用這種方法修改SRAM數(shù)據(jù),需要注意的是,你所修改的地址,必須是位于SRAM地址范圍內(nèi)的,否則修改后不會得到正確的結(jié)果。如果發(fā)現(xiàn)修改后的數(shù)據(jù)不能得到你想要的數(shù)據(jù),可能存在兩個(gè)問題:1是電路板上數(shù)據(jù)線存在開、短路。2是芯片的初始化設(shè)置不正確,導(dǎo)致存儲器映射錯誤,修改好即可。外部FLASH調(diào)試使用FLASHPGM燒一個(gè)程序來實(shí)驗(yàn)一下。如果能順利燒入,則表示FLASH可以正常工作。如果不能正常燒入程序,多半情況是焊接不夠好,F(xiàn)LASH可能存在短路或者虛焊。這里需要知道一件事,F(xiàn)LASHPGM軟件是

19、利用SRAM來燒錄FLASH的。它先將一段可以燒錄FLASH的程序及FLASH初始化軟件下載到SRAM中,運(yùn)行這段小程序,然后再燒錄FLASH,所以提供給FLASHPGM的芯片初始化程序必須正確,這樣才可能正常燒錄FLASH,否則燒錄肯定是失敗的。對于2410即外接NAND FLASH又外接NOR FLASH的芯片,用FLASHPGM調(diào)試NOR FLASH,用三星提供的小燒錄工具調(diào)試NAND FLASH。串口調(diào)試可提供串口調(diào)試的主芯片,需先調(diào)試好串口,再進(jìn)行主芯片其他接口的調(diào)試,以便實(shí)時(shí)打印串口信息,確認(rèn)程序編寫是否有問題。其他外設(shè)調(diào)試大部分外設(shè)需結(jié)合軟件進(jìn)行硬件調(diào)試。由于外設(shè)種類較多,暫不一

20、一列舉。一般根據(jù)數(shù)據(jù)手冊或應(yīng)用手冊說明對軟件進(jìn)行編程后,可通過示波器測試相關(guān)的時(shí)序是否滿足要求。調(diào)試出現(xiàn)問題的解決流程通用問題解決流程如果在調(diào)試中出現(xiàn)問題,可以按以下步驟進(jìn)行:Ø 檢查原理圖連接是否正確Ø 檢查原理圖與PCB圖是否一致Ø 檢查原理圖與器件的數(shù)據(jù)手冊上引腳是否一致Ø 用萬用表檢查是否有虛焊,引腳短路現(xiàn)象Ø 用示波器觀察數(shù)據(jù)波形,查詢器件的數(shù)據(jù)手冊,分析一下時(shí)序是否一致,同時(shí)分析一下命令字是否正確Ø 軟件的調(diào)試要和硬件配合進(jìn)行,往往問題可能不單單是硬件引起的主芯片不工作如果主芯片突然不工作,或工作不正常,一定要先排除軟件方

21、面的錯誤,如果軟件正常,板子突然不工作則按如下流程檢查Ø 測量主芯片工作電壓,確認(rèn)的是各芯片電源引腳的電壓是否正常,再檢查各參考電壓是否正常,還要測試主要功能點(diǎn)的電壓是否正常等。Ø 測量晶振(體)是否起振,注意晶體的輸出幅值比較小,晶振則和其電壓相差不大 Ø 檢查MCU各相鄰管腳是否有短路,因?yàn)樵谡{(diào)試的過程中某些管腳總會因?yàn)闇y量或焊接引起短路;MCU某些管腳會虛焊而沒有被發(fā)現(xiàn),可重新焊接一下MCU各管腳Ø 嘗試降低MCU工作頻率。Ø 飛線。用別的的口線進(jìn)行控制,看看能不能對其進(jìn)行正常操作,多試驗(yàn),才能找到問題出現(xiàn)在什么地方Ø 如果各種

22、測試都無法找到問題所在,可更換一片新的主芯片不管是做硬件,還是軟件,最重要的是思想,是分析問題的能力,邏輯思維一定要清晰,每測一項(xiàng)就要能排除一些問題,不要做一些重復(fù)的測試,記不住就用本子寫下來。軟件調(diào)試注意事項(xiàng)用萬用表或示波器對芯片管腳進(jìn)行測量時(shí)注意不要與相鄰的管腳接觸,以免引起短路,造成器件損壞。軟硬件調(diào)試錯誤排除理解系統(tǒng)仔細(xì)閱讀元器件數(shù)據(jù)手冊:數(shù)據(jù)手冊里有正確使用元器件的方法。仔細(xì)閱讀每個(gè)細(xì)節(jié):出現(xiàn)問題的地方可能就在你不感興趣的那一章,不要懼怕數(shù)據(jù)手冊的厚度。掌握基礎(chǔ)知識:知道什么是正常的,才能知道什么是錯誤的。了解系統(tǒng)工作流程:有助于定位bug。了解調(diào)試工具:調(diào)試工具能干什么,不能干什么

23、。查閱細(xì)節(jié):去閱讀數(shù)據(jù)手冊,而不是猜測或回想數(shù)據(jù)手冊上的內(nèi)容。 數(shù)據(jù)手冊的正確性大于其他文檔,比如設(shè)計(jì)文檔。最終以數(shù)據(jù)手冊為準(zhǔn)制造失敗制造失?。耗康氖菫榱擞^察它,找到原因,并檢查是否已修復(fù)。從頭開始:bug可能由一系列操作或者運(yùn)行造成的,回到最初狀態(tài)開始制造失敗。引發(fā)失?。涸囍屖〕霈F(xiàn),而不是被動的等,尤其是間歇性失敗。但不要模擬失敗:不要猜測失敗產(chǎn)生的機(jī)理而去模擬一個(gè)系統(tǒng),模擬的系統(tǒng)可能沒有體現(xiàn)bug的根源,甚至產(chǎn)生新的bug。查找不受你控制的條件(正是它導(dǎo)致了間歇性失?。焊淖兡芨淖兊娜魏螀?shù),或者將變量設(shè)成常量,知道bug再次出現(xiàn)并一直出現(xiàn)。記錄每件事情,并找到間歇性bug的特征:記錄

24、運(yùn)行狀態(tài),分析并找到出現(xiàn)bug時(shí)的狀態(tài)特征。不要過于相信統(tǒng)計(jì)數(shù)據(jù):獲得足夠多的信息并分析,不要猜測。要認(rèn)識到“那”是可能會發(fā)生的:bug的根源可能是意想不到的,不要大喊“不可能!”。永遠(yuǎn)不要丟掉任何一個(gè)調(diào)試工具:沒準(zhǔn)哪天就能派上用場。不要想,而要看觀察失敗:發(fā)現(xiàn)bug不要猜測問題根源,而是要仔細(xì)觀察bug到底是什么地方造成了bug。查看細(xì)節(jié):縮小范圍。植入插裝工具:使用源代碼調(diào)試器、調(diào)試日志、狀態(tài)消息和printf。添加外部插裝工具:使用分析器、示波器、量表、金屬檢測儀、心電圖儀和肥皂泡。不要害怕深入研究:不要害怕找到更多的bug,雖然軟件已經(jīng)是成品,bug還是必須要修復(fù)的。注意海森堡效應(yīng):測

25、不準(zhǔn)原理。當(dāng)你為了觀察失敗而改變系統(tǒng)或插裝工具時(shí),避免所做的改變影響系統(tǒng)。猜測只是為了確定搜索的重點(diǎn):猜測還是必要的,但不要過多的猜測。分而治之通過逐次逼近縮小搜索范圍:猜測1100內(nèi)的一個(gè)數(shù)字,只需7次。確定范圍:不要把初始范圍設(shè)定的太小,如果數(shù)字是135而你卻認(rèn)為他在1100內(nèi),那么你必須擴(kuò)大范圍。確定你位于bug的哪一側(cè):在某一點(diǎn)檢查系統(tǒng),如果狀態(tài)正確,則bug位于上游,反之位于下游。使用易于查看的測試模式:從干凈、清澈的水開始,以便當(dāng)排放物進(jìn)入河流時(shí)很容易看到它。從有問題的一段開始搜索:正確的部分總是多于錯誤的部分,應(yīng)該從有問題的地方開始,向后追查原因,不要在正確的地方浪費(fèi)時(shí)間。修復(fù)已知bug。bug互相保護(hù),互相隱藏:因此一旦找到,立即修復(fù)它們。首

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論