




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
集成電路功能測試目錄課題目的 1課題要求 2(一)基本要求 2(二)提高要求 2設計原理 2硬件設計 3(一)、顯示模塊 3(二)、電壓轉換模塊 6(三)、語音模塊 8(四)、PS/2鍵盤 10軟件流程圖 12課程設計心得 15附錄 16(一)本次集成電路功能測試儀的總電路圖 16(二)硬件焊接電路 17(三)集成電路功能測試儀LB0管腳分配表 18(四)元器件清單 20(五)本次課程設計總程序 21課題目的掌握數(shù)字集成電路功能測試儀的原理;掌握基于NiosⅡ的嵌入式系統(tǒng)的設計方法;學習SOPC系統(tǒng)的開發(fā)流程;掌握VHDL語言,C語言編程,提高程序設計能力;掌握小型電子系統(tǒng)的設計方法,提高實踐能力;掌握按鍵掃描電路、七段碼掃描顯示電路等的設計方法。課題要求(一)基本要求1、完成系統(tǒng)軟硬件設計。要求完成的硬件電路布局合理。走線規(guī)范、美觀;2、實現(xiàn)20種以上(含20)組合電路功能芯片的識別和測試;3、實現(xiàn)5種以上(含5)的時序電路芯片的識別和測試;4、具有測試結果指示。(二)提高要求1、盡量多的增加系統(tǒng)可以測試的芯片;2、加入芯片故障定位功能,如精確指示部分損壞芯片具體的損壞通道;3、提高系統(tǒng)的人性化程度,比如加入語音提示等。設計原理本課題要求學生使用基于NiosⅡ的嵌入式技術實現(xiàn)一個能對74系列數(shù)字集成電路進行芯片種類識別和芯片功能測試。系統(tǒng)結構如下圖所示:顯示顯示聲音提示聲音提示FPGA最小系統(tǒng)版(FPGA最小系統(tǒng)版(LB0)NiosⅡ電壓轉換電壓轉換測試芯片插座按鍵圖(1)系統(tǒng)設計中可以根據(jù)需要確定各模塊硬件方案,并繪制電路原理圖。確定各模塊接口后,可使用QuartusⅡ軟件中的SOPCBuilder組建構建SOPC系統(tǒng),并設計相關的外圍模塊得到完成的硬件邏輯工程。完成硬件工程后即可進入NiosⅡIDE開發(fā)環(huán)境中進行軟件程序設計開發(fā)。硬件設計(一)、顯示模塊顯示模塊主要實現(xiàn)對芯片檢測結果的顯示,包括芯片型號及芯片功能是否完好,同時也要給用戶提供必要的提示信息,提高系統(tǒng)界面的友好性。方案一采用數(shù)碼管顯示由于所有芯片均為74系列,因而只顯示最后兩位編號即可實現(xiàn)對芯片型號的顯示,但由于數(shù)碼管顯示效果較差并且動態(tài)掃描時會占用很多CPU時間,因而舍棄該方案。方案二采用點陣顯示采用有二極管構成的16×16點陣,通過主控單元的控制可以實現(xiàn)漢字及英文字符的顯示,可以顯示芯片型號以及芯片功能完整性,采用點陣顯示的優(yōu)點是顯示內容可以隨意控制,顯示內容豐富。但點陣顯示也存在占用I/O口較多并且會占用大量CPU時間的缺點,另外,在使用點陣顯示是還要存儲大量的字模信息,而由于本系統(tǒng)需要掃描大量的邏輯芯片,為節(jié)約成本又未擴展程序存儲區(qū),因而考慮到所用主控單元I/O口資源有限和對程序存儲區(qū)容量的限制,舍棄該方案。方案三采用1602模塊顯示1602液晶為字符型液晶,可以顯示16×2共32個字符,不僅可以顯示芯片型號及判斷結果,并且還可以在程序運行過程中為用戶提供必要的提示信息,提高了系統(tǒng)的交互性,并且1602液晶占用CPU時間較少,雖然顯示能力較弱,僅能顯示英文字符,但基本能滿足設計的要求,因而本設計采用1602液晶作為顯示輸出設備。1、實物圖:圖(2)2、管腳圖如下:圖(3)3、LSD1602顯示原理1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。4、管腳功能:(1)1602采用標準的16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負跳變時執(zhí)行指令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。(2)1602特性:3.3V或5V工作電壓,對比度可調。(3)內含復位電路提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM。內建有192個5X7點陣的字型的字符發(fā)生器CGROM。8個可由用戶自定義的5X7的字符發(fā)生器CGRAM。1602液晶模塊內部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如“A”。4、顯示模塊電路圖如下所示:圖(4)(二)、電壓轉換模塊由于本電路中各模塊需要的電壓不同,難以達到統(tǒng)一,故本次我們小組使用的是由TI出的TXB0104電壓轉換芯片使全局電壓一致。TXB0104電壓轉換模塊,由于此次設計電路I/O接口電壓與拓展板電路電壓不匹配,故采用TX0104進行電壓轉換。TXB0104具有自動方向感應和+/-15kV的ESD保護的4位雙向電壓電平轉換器,這4位同相轉換器采用兩個獨立可配置電源軌。端口A用于跟蹤VCCA,VCCA接受任何從1.2V到3.6V的電源電壓,端口B是用來追蹤VCCB,VCCB接受任何從1.65V至5.5V的電源電壓,能夠在1.2V、1.5V、1.8V、2.5V、3.3V與5V電壓節(jié)點之間進行靈活的雙向電平轉換,而且可提供全面的可配置性。VCCA不應超過VCCB。當輸出使能(OE)輸入為低電平時,所有輸出置于高阻抗狀態(tài)。為了確保在開機或斷電時呈高阻抗狀態(tài),OE應當通過一個下拉電阻連接到GND,下拉電阻最小值由驅動電流源的能力決定。TXB0104引腳圖(5) 電壓轉換模塊局部電路圖如下所示:圖(6)(三)、語音模塊1、語音芯片ISD1760原理ISD1760是華邦公司新推出的語音芯片,用來替代已經(jīng)停產的ISD1400系列。ISD1760系類不僅在錄音時間上有更多的選擇(從20到240秒),而且在功能上繼承14系列及25系列所有的錄放功能,音質也較14和25系列有明顯的提高。ISD1760系列錄放芯片是一種高集成度,高性能的芯片。它可以采用多段錄音,采樣率可在4K到12K之間調節(jié),供電范圍可以在2.4至5.5V之間。ISD1760系列芯片可工作于獨立按鍵模式和SPI控制模式。芯片內有存儲管理系統(tǒng)多段語音,這樣在獨立按鍵模式下也能進行多段語音錄放。此芯片內有振蕩器,可通過外部電阻來調節(jié)其震蕩頻率;還帶有自動增益控制(AGC)的話筒預防、模擬線路輸入,抗鋸齒濾波器,多級存儲陣列、平滑濾波器,音量控制,直接驅動喇叭的PWM輸出與外接功放的電流(電壓)輸出。ISD1760還有新錄音提示功能,當有新的錄音后,LED會每幾秒閃一次來提示用戶有新的錄音。此外還有4種音效來提示用戶的操作結果,如開始錄音、停止錄音、擦除、下一曲和全部擦除等。錄音數(shù)據(jù)存儲在芯片的FLASH內,沒有經(jīng)過任何壓縮,所以有比較好的音質和斷電存儲。芯片有兩路獨立的語音信號輸入通道,話筒輸入與模擬信號輸入。在獨立按鍵模式下,當某功能操作完成后芯片會自動進入掉電模式來降低功耗,用戶可對芯片進行更多的功能操作。如對任意存儲地址進行錄放,對模擬通道配置寄存器進行讀寫等。2、ISD1760特點:①、錄、放音十萬次,存儲內容可以斷電保留一百年。②、控制方式,兩種錄音輸入方式,兩種放音輸出方式③、處理多達159段以上信息④、豐富多樣的工作狀態(tài)提示⑤、多種采樣頻率對應多種錄放時間⑥、音質好,電壓范圍寬,應用靈活,廉價物美⑦、工作電壓:2.4~5.5V,最高不能超過6V⑧、靜態(tài)電流:0.5~1uA⑨、工作電流:20mA⑩、用戶可以利用震蕩電阻來自定芯片的采樣頻率,從而決定芯片的錄放時間采樣頻率可通過外接電阻調節(jié)采樣率12KHZ8KHZ6.4KHZ5.3KHZ4KHZRosc53K?80K?100K?120K?160K?3、ISD1760語音模塊局部電路圖:圖(7)(四)、PS/2鍵盤PC鍵盤可以有6腳的mini-DIN或5腳的DIN連接器。如果你的鍵盤是6腳的mini-DIN而你的計算機是5腳的DIN(或者相反),這兩類連接器可以用上面提到的適配器來兼容。具有6腳mini-DIN的鍵盤通常被叫做“PS/2”鍵盤,而那些有5腳DIN叫做“AT”設備。在剛才提到連接器上有四個有趣的管腳:電源地、+5V、數(shù)據(jù)和時鐘。host(計算機)提供+5V,并且鍵盤/鼠標的地連接到host的電源地上。數(shù)據(jù)和時鐘都是集電極開路的,這就意味著它們通常保持高電平而且很容易下拉到地(邏輯0)。任何你連接到PS/2鼠標鍵盤或host的設備在時鐘和數(shù)據(jù)線上要有一個大的上拉電阻。置“0”就把線拉低,置“1”就讓線上浮成高電平。圖(8)中的數(shù)據(jù)和時鐘線的一般接口結構。(注意:如果你打算使用象PIC這樣的微控制器,由于它們的I/O管腳是雙向的,你可以跳過晶體管和緩沖門,并且通用同一個管腳進行輸入和輸出。在這種組態(tài)情況下,要設置管腳為輸入就寫入1使得電阻上拉線上的電平,要改變管腳為輸出就寫入0到那個管腳,把線路下拉到地。)圖(8)圖(9)軟件流程圖由于系統(tǒng)需要實現(xiàn)的是一個集成電路測試儀,測試對象種類繁多,一次必須要求系統(tǒng)具有良好的軟件結構,建議擬定一個機構合理的芯片測試真值表,軟件中受用統(tǒng)一的格式調用真值表中的測試數(shù)據(jù)對芯片進行測試,這樣只需要添加芯片真值表即可增加系統(tǒng)測試芯片的種類。由于系統(tǒng)要求具有芯片測試和芯片識別兩個功能,因此軟件設計中需要設置芯片測試模式和芯片識別兩個工作方式,下圖分別是兩種模式的流程圖:測試模式測試模式按鍵輸入芯片型號芯片是否在庫內提示測試芯片不在庫中否讀取該芯片測試真值表是按測試真值表對芯片進行測試芯片是否正常指示測試芯片損壞通道否提示測試芯片完好是結束圖(10)識別模式識別模式按鍵掃描等待測試讀取芯片測試庫真值表按真值表庫對芯片進行逐個測試是否有檢測到芯片提示芯片損壞或不在測試庫中提示檢測到芯片型號結束否是圖(11)
課程設計心得通過本次課程設計讓我學到了很多知識,將課堂上所學到的知識能適當正確的運用到本次課程設計中,是一次理論加實踐的結合更能提高我們的實際運用能力;本次課程設計是一次很好的鍛煉學生能力的訓練,包括軟件編程和硬件實驗板電路焊接的動手能力;另一方面這次課程設計與以前的課程設計有了很大的區(qū)別,以前的課程設計都是個人單獨完成,一個人單獨編程調試負責全部的工作而本次的課程設計是分組完成,以四人為一組大家相互完成本次的課程設計,這很有利于增強大家的相互協(xié)調合作能力,對提高學生們的團隊合作意識有很大的幫助。硬件電路方面系統(tǒng)設計中根據(jù)需要確定各模塊硬件方案,并繪制電路原理圖。本系統(tǒng)的硬件以提供的LB0開發(fā)板為核心,通過40P擴展插槽引出IO口到萬用板中,在萬用板中設計鍵盤、顯示、測試插槽、語音提示等模塊電路。先要在萬用板上設計好模塊的位置,然后在進行焊接。在焊接導線時,要保持導線平直,盡量不要交叉。在焊接40P擴展插槽時,要用萬用表測試插槽是否斷開。當軟件測試不正確時,要檢查是否正確。其中硬件電路焊接容易出現(xiàn)虛焊、焊接點短路等現(xiàn)象,本次的硬件設計與焊接中我們采用五片電壓轉換模塊,將電壓轉換為我們所需要的電壓值。軟件編程方面采用QuarttusII搭建SOPC處理器模塊,控制硬件電路的實現(xiàn)功能,在NiosII軟件中編程SOPC模塊里的控制程序實現(xiàn)對電路的正確控制,其中對程序的調試中出現(xiàn)過很多問題,最后經(jīng)過向老師請教和查找資料解決了問題讓板子實現(xiàn)了預期得功能。軟件編程的過程中讓我學到了很多東西加強了我對C語言和VHDL語言的實際運用,讓我對這些程序語言有了更深入的理解,對提高我們的程序能力有了很大的幫助。
本次課程設計讓我們意識到了團隊合作的重要性,也感受到了各自知識的欠缺對提高我們的各方面能力擁有很大的幫助,本次課程設計感謝老師的幫助,在我們遇到問題的時候給我們提供幫助;也感謝我的隊友們一如既往的投身于本次課程設計中。附錄(一)本次集成電路功能測試儀的總電路圖圖(12)(二)硬件焊接電路圖(13)(三)集成電路功能測試儀LB0管腳分配表40P排針號LB0GPIO號LB0接口名PIN管腳號99HEXSCCPIN_1351010HEXSCBPIN_1331311HEXSCAPIN_1321412HEX_D[0]PIN_1291513HEX_D[1]PIN_1281614HEX_D[2]PIN_1271715HEX_D[3]PIN_1261816HEX_D[4]PIN_1251917HEX_D[5]PIN_1242018HEX_D[6]PIN_1212119HEX_D[7]PIN_1202220LED[8]PIN_852321LED[7]PIN_862422LED[6]PIN_872523LED[5]PIN_982624LED[4]PIN_992725LED[3]PIN_1002826LED[2]PIN_1013127LED[1]PIN_1033228DA_D[0]PIN_1043329DA_D[1]PIN_1053430DA_D[2]PIN_1063531DA_D[3]PIN_1103632DA_D[4]PIN_1113733DA_D[5]PIN_1143834DA_D[6]PIN_1153935DA_D[7]PIN_1194036DA_CLKPIN_113PS2_DATAPIN_136PS2_CLKPIN_137 實驗板LB0上的管腳對應圖:圖(14)(四)元器件清單元件名稱.需要數(shù)量元件名稱需要數(shù)量萬用板1發(fā)光二極管(紅)1發(fā)光二極管(綠)1撥碼開關(單獨)3喇叭(8歐,0.5w)1麥克風1電阻47歐(直插色環(huán))3電阻1K歐(直插色環(huán))3電阻4.7K歐(直插色環(huán))6電阻100K歐(直插色環(huán))2電容0.1uF(瓷片)6電容4.7uF(電解)2按鍵5IDS1700語音芯片1雙排芯片座(16孔)1雙排芯片座(26孔)1單排插座(20孔)1單排插座(7孔)10數(shù)字小鍵盤(外接)1實驗板:1工具:烙鐵1鑷子1斜口鉗1小起子1領用人簽字:指導教師簽字:領用時間:(五)本次課程設計總程序/***************************頭文件宏定義*****************************/#include<stdio.h>#include"alt_types.h"#include"altera_avalon_pio_regs.h"#include"altera_avalon_spi.h"#include"altera_avalon_spi_regs.h"#include"io.h"#include"system.h"#include"altera_avalon_lcd_16207_regs.h"#include"altera_avalon_lcd_16207.h"/******************************宏定義*****************************/#defineCHIP_TYPE_NUMBER10#defineCHIP_TVTBL_NUM12#defineCHIP_NAME_NUM10#defineLCD_CUSSOR_OFF0x0C#defineLCD_CUSSOR_ON_F0x0F#defineLCD_CUSSOR_ON0x0E/*****************以下請按照軟核定義修改******************/#defineLCD_BASELCD_1602_BASE#defineLCD_DELAY_TIME2000修改/***********************控制指令***********************/#defineLCD_CUSSOR_OFF0x0C#defineLCD_CUSSOR_ON_F0x0F#defineLCD_CUSSOR_ON0x0E/*******************定義控制函數(shù)***********************/#defineLCD_Write_CMD(data)IOWR_ALTERA_AVALON_LCD_16207_COMMAND(LCD_1602_BASE,data)#defineLCD_Write_Data(data)IOWR_ALTERA_AVALON_LCD_16207_DATA(LCD_1602_BASE,data)#defineLCD_Read_Data()IORD_ALTERA_AVALON_LCD_16207_DATA(LCD_1602_BASE)/*=======================================================*LCD_Init()*=======================================================*/voidLCD_Init(){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0);LCD_Write_CMD(0x38);usleep(LCD_DELAY_TIME);LCD_Write_CMD(LCD_CUSSOR_ON_F);usleep(LCD_DELAY_TIME);LCD_Write_CMD(0x01);usleep(LCD_DELAY_TIME);LCD_Write_CMD(0x06);usleep(LCD_DELAY_TIME);LCD_Write_CMD(0X80);usleep(LCD_DELAY_TIME);}/*=======================================================*LCD_Print()*=======================================================*/voidLCD_Print(char*Text){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0);while(*Text!='\0'){LCD_Write_Data(*Text);usleep(LCD_DELAY_TIME);++Text;}IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,1);}/*=======================================================*LCD_SetPos()*=======================================================*/voidLCD_SetPos(intRow,intColumn){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0);LCD_Write_CMD((0x80+Column)|(Row<<6));usleep(LCD_DELAY_TIME);}externinttvtbl_pos=0;longTvtbl_reg[CHIP_TVTBL_NUM]={0};externlongTvtbl_lib[CHIP_TYPE_NUMBER][CHIP_TYPE_NUMBER]={{0x3ECDF,0x6CD8,0x5B68,0x1320,0x37B0,0,0,0},{0x3B7B7,0x4848,0x1320,0x2490,0x37B0,0,0,0},{0x3D4AF,0x54A8,0x2B50,0,0,0,0,0},{0x3D4AF,0x54A8,0x2B50,0,0,0,0,0},{0x3D4AF,0x54A8,0x2B50,0,0,0,0,0},{0x3DCFF,0x7FF8,0x58D0,0x54A8,0xC78,0,0,0},{0x3FCFF,0x2FD0,0x4FC8,0x6798,0x6B58,0x7CF8,0,0},{0x300FF,0xFF4C,0xFF80,0xFEE0,0xFDE4,0xFBE8,0xF7EC,0xEFF0,0xDFF4,0xBFF8,0x7FFC},{0x3E01F,0x9FE4,0x3F0,0x57A8,0x3B70,0x7CF8,0},{0x3FCFF,0x4B40,0x1328,0x6318,0}};/************************Declarefunctions**************************/intget_key_value();//getakeycombinevaluefromps2keyboardintkey_func(inta);//intcheck_chip_name(intkeyvalue);longbuild_Tvtbl(inti);voidtest_chip_func(long*Tvtbl);voidrecg_chip_func();externvoidLCD_Init(void);//液晶初始化externvoidLCD_Print(char*Text);//顯示字符串externvoidLCD_SetPos(intRow,intColumn);//顯示定位/************從PS2鍵盤獲取一串健值******************intget_key_value(){inta,keyvalue;intb=1;IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x0);LCD_Init();LCD_SetPos(0,3);LCD_Print("INPUT");usleep(1000000);while(1){LCD_Init();usleep(1000000);LCD_SetPos(0,3);LCD_Print("INPUT");if(b!=3){a=IORD_ALTERA_AVALON_PIO_DATA(KEYBD_CODE_BASE);if(a!=18)if(b>1)keyvalue=keyvalue*10+a;elsekeyvalue=a;elsebreak;b++;}elsebreak;usleep(1000000);}LCD_Init();LCD_SetPos(0,3);switch(keyvalue){case0:LCD_Print("74LS00");break;case1:LCD_Print("74LS01");break;case2:LCD_Print("74LS02");break;case3:LCD_Print("74LS03");break;case4:LCD_Print("74LS04");break;case5:LCD_Print("74LS05");break;case6:LCD_Print("74LS06");break;case7:LCD_Print("74LS07");break;case8:LCD_Print("74LS08");break;case9:LCD_Print("74LS09");break;case10:LCD_Print("74LS10");break;case11:LCD_Print("74LS11");break;case12:LCD_Print("74LS12");break;case13:LCD_Print("74LS13");break;case14:LCD_Print("74LS14");break;case15:LCD_Print("74LS15");break;case16:LCD_Print("74LS16");break;case20:LCD_Print("74LS20");break;case38:LCD_Print("74LS138");break;case39:LCD_Print("74LS139");break;case53:LCD_Print("74LS153");}usleep(1000000);returnkeyvalue;}/**************************按鍵號控制程序*****************************intkey_func(inta){intkey;while(1){key=IORD_ALTERA_AVALON_PIO_DATA(KEYBD_CODE_BASE);if(key==a)break;}returnkey;}/******************檢測輸入的芯片信號是否在庫中***********************/intcheck_chip_name(intkeyvalue){intchip_name[CHIP_NAME_NUM]={00,02,20,06,11,14,20,38,39,53};inti,k;intflag=1;intr;for(i=0;i<CHIP_NAME_NUM;){flag=keyvalue-chip_name[i];if(flag==0){for(k=0;k<CHIP_TYPE_NUMBER;){Tvtbl_reg[k]=Tvtbl_lib[i][k];k++;}tvtbl_pos=i;r=1;break;}elseif(i==(CHIP_NAME_NUM-1)){LCD_Init();LCD_SetPos(0,3);LCD_Print("chipinvalid");usleep(1000000);r=0;}i++;}returnr;}/******************芯片測試***********************/voidtest_chip_func(long*Tvtbl){inti;longmake_tvtbl[CHIP_TVTBL_NUM]={0};longwr_tvtbl[CHIP_TVTBL_NUM]={0};longrd_tvtbl[CHIP_TVTBL_NUM]={0};longtest_tvtbl[CHIP_TVTBL_NUM]={0};longa,b;for(i=0;Tvtbl[i]!=0;){make_tvtbl[i]=Tvtbl[i];i++;}IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x0);LCD_Init();LCD_SetPos(1,5);LCD_Print("STARTTEST!");usleep(1000000);IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x1);IOWR_ALTERA_AVALON_PIO_DIRECTION(TEST_PIN_BASE,make_tvtbl[0]);//方向設置IOWR_ALTERA_AVALON_PIO_DATA(TEST_PIO_DIR_BASE,make_tvtbl[0]);a=IORD_ALTERA_AVALON_PIO_DATA(TEST_PIO_DIR_BASE);for(i=1;make_tvtbl[i]!=0;i++){usleep(10000);IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x1);usleep(1000);IOWR_ALTERA_AVALON_PIO_DATA(TEST_PIN_BASE,Tvtbl[i]);wr_tvtbl[i-1]=make_tvtbl[i]&make_tvtbl[0];usleep(100);b=IORD_ALTERA_AVALON_PIO_DATA(TEST_PIN_BASE);rd_tvtbl[i-1]=b&(~Tvtbl[0]);test_tvtbl[i-1]=wr_tvtbl[i-1]|rd_tvtbl[i-1];if(test_tvtbl[i-1]!=make_tvtbl[i]){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x0);LCD_Init();LCD_SetPos(0,3);LCD_Print("ERROR!");usleep(5000000);break;}elseif(make_tvtbl[i+1]==0){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x0);LCD_Init();LCD_SetPos(0,3);LCD_Print("Right");usleep(5000000);}}}/******************芯片識別***************************************/voidrecg_chip_func(){inti,k;longdirection;longwr_tvtbl[CHIP_TVTBL_NUM]={0};longrd_tvtbl[CHIP_TVTBL_NUM]={0};longtest_tvtbl[CHIP_TVTBL_NUM]={0};IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x0);for(i=0;i<CHIP_NAME_NUM;i++){tvtbl_pos=i;direction=Tvtbl_lib[i][0];IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x1);IOWR_ALTERA_AVALON_PIO_DATA(TEST_PIO_DIR_BASE,direction);IOWR_ALTERA_AVALON_PIO_DIRECTION(TEST_PIN_BASE,direction);for(k=1;Tvtbl_lib[i][k]!=0;k++){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x1);IOWR_ALTERA_AVALON_PIO_DATA(TEST_PIN_BASE,Tvtbl_lib[i][k]);wr_tvtbl[k-1]=Tvtbl_lib[i][k]&direction;rd_tvtbl[k-1]=IORD_ALTERA_AVALON_PIO_DATA(TEST_PIN_BASE)&(~direction);test_tvtbl[k-1]=wr_tvtbl[k-1]|rd_tvtbl[k-1];if(test_tvtbl[k-1]!=Tvtbl_lib[i][k]){if(i==CHIP_NAME_NUM-1){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x0);LCD_Init();LCD_SetPos(2,1);LCD_Print("Failed");LCD_SetPos(1,1);LCD_Print("NotExist");usleep(5000000);return;}break;}elseif(Tvtbl_lib[i][k+1]==0){IOWR_ALTERA_AVALON_PIO_DATA(OE_CTR_BASE,0x0);LCD_Init();switch(i){case0:LCD_Print("74LS00");break;case1:LCD_Print("74LS02");break;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國手電筒燈行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國軸承卷邊金屬防光蓋數(shù)據(jù)監(jiān)測研究報告
- 防護網(wǎng)圍欄網(wǎng)施工方案
- 2025至2030年中國焙烤食品數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國密胺雙耳杯數(shù)據(jù)監(jiān)測研究報告
- 墻掛式籃球架施工方案
- 2025至2030年中國人造貓眼數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國LCD組裝板數(shù)據(jù)監(jiān)測研究報告
- 2025年中國隔爆水袋市場調查研究報告
- 2025年中國等徑直接銅接頭市場調查研究報告
- 漸變方格模板
- 潛水作業(yè)指導書
- 感謝對手閱讀附答案
- 環(huán)境因素匯總識別及評價表(保衛(wèi)部 )
- GB/T 8012-2000鑄造錫鉛焊料
- 第一課 第一章 AutoCAD 2012概述入門
- GB/T 33880-2017熱等靜壓鋁硅合金板材
- 消防安全風險辨識清單
- 超市店長考核方案(實例)
- 2023年版勞動實踐河北科學技術出版社一年級下冊全冊教案
- 方案報審表(樣表)
評論
0/150
提交評論