




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章ADS下的硬件電路調試
3.1概述3.2嵌入式系統的開發步驟及方法3.3測試內容清單及各部分實現功能3.1概述
ADS測試程序部分主要功能是:●在裸板上(未加載操作系統)利用編程手段測試各功能模塊的電氣連接是否正確;●通過這一工作中的源程序,交代EP9315各片內外設的寄存器設置方式,為后繼開發者提供切實有用的參考資料。
ADS下的測試程序已在本開發板上實際運行過,其基本思路是:在對系統總體配置后,通過程序控制開發板上各外部硬件資源完成相應動作。同時在監控終端上顯示測試過程中的輸入、輸出信息,以此了解開發平臺硬件電路的實際運行情況。3.2嵌入式系統的開發步驟及方法為向用戶全面系統地闡述ADS下的測試程序,本節先概要地介紹嵌入式系統開發的典型過程和所使用的軟、硬件工具。運行此測試程序所需要的設備及軟件工具如下:●?PC機(Windows超級終端軟件及機身COM口可用);●?ARMJTAG接口仿真器一臺及相對應的控制臺驅動程序;●?EP9315嵌入式開發板一塊;●串口線(連接開發板與PC機),并口線(連接仿真器與PC機);●?ADS1.2開發套件。以上提及的硬件設備的連接情況見圖3.1。圖3.1開發環境的搭建在路徑[開始]-[所有程序]-[附件]-[通信]中打開PC機上的超級終端,建立測試監控端。將超級終端配置為波特率為115200,數據位為8,奇偶校驗為無,停止位為1,數據流控制為無,見圖3.2。圖3.2超級終端的配置打開開發板電源,在仿真器控制臺軟件中完成開發板與PC機的連接,見圖3.3。圖3.3控制臺檢測處理器內核至此,開發板已與PC主機建立了硬件上的連接。用戶此時需要在ADS環境下完成實驗工程的建立,以便進行源程序的編寫、編譯以及鏈接,繼而產生ARM可執行文件。首先建立實驗平臺,打開ADS開發套件中的CodeWarriorforARMDeveloperSuite。平臺可將所有的源碼文件組織在一起,并能夠決定最終生成文件存放的路徑及輸出的格式等。然后在CodeWarrior中新建一個工程,新建工程的方法有兩種,一是在工具欄中單擊“New”按鈕,是在“File”菜單中選擇“New…”菜單。這樣就會打開一個如圖3.4所示的對話框。圖3.4建立工程●在這個對話框中為用戶提供了7種可選擇的工程類型。●?ARMExecutableImage:用于由ARM指令的代碼生成一個ELF格式的可執行映像文件;●?ARMObjectLibrary:用于由ARM指令的代碼生成一個armar格式的目標文件庫;●?EmptyProject:用于創建一個不包含任何庫或源文件的工程;●?MakefileImporterWizard:用于將VisualC的nmake或GNUmake文件轉入到CodeWarriorIDE工程文件;●?ThumbARMInterworkingImage:?用于由ARM指令和Thumb指令的混和代碼生成一個可執行的ELF格式的映像文件;●?ThumbExecutableImage:用于由Thumb指令創建一個可執行的ELF格式的映像文件;●?ThumbObjectLibrary:?用于由Thumb指令的代碼生成一個armar格式的目標文件庫。在對話框中選擇ARMExecutableImage,在“Projectname”中輸入工程文件名。點擊“Location”文本框的“Set…”按鈕,瀏覽選擇想要將該工程保存的路徑。將這些設置好后,點擊“確定”,即可建立一個新的工程。在工程窗口中點擊右鍵添加工程所需的源程序。當選中要添加的文件時,會出現一個對話框,如圖3.5所示,詢問用戶把文件添加到何類目標中。在這里,選擇DebugRel目標。圖3.5添加工程文件圖3.5所示的3類target解釋如下:●?DebugRel:使用該目標,在生成目標的時候,會為每一個源文件生成調試信息;●?Debug:使用該目標為每一個源文件生成最完全的調試信息;●?Release:使用該目標不會生成任何調試信息。依次向工程中添加所需的全部源程序,最終如圖3.6所示。圖3.6測試程序工程源程序清單當建立工程完畢后,需要對工程進行一些基本配置。點擊工程窗口中的“DebugRelSettings”。出現如圖3.7所示的對話框。圖3.7工程配置窗口首先,對左面的[TargetSettings]作如圖3.8所示的選擇。圖3.8工程配置選項(1)接著,對[LanguageSettings]-[ThumbCCompiler]的各項均作如圖3.9所示的設置,即選擇ARM920T內核,小端模式。圖3.9工程配置選項(2)最后對[Linker]-[ARMLinker]項中的Output頁作如圖3.10所示的設置,圖3.10的設置主要是指定了程序在內存中加載的地址。圖3.10工程配置選項(3)需要說明的是,圖3.10和圖3.11中所填入的0x00000000都為程序在開發板上加載運行的地址及程序入口。本處設為內存首地址。用戶也可根據需要和程序實際情況自行更改。以上配置選項中的其他內容用戶如需深入了解,可參閱ADS開發套件的幫助文檔。圖3.11工程配置選項(4)如此設置完畢后,即可編譯、鏈接,在仿真器下進行應用程序的調試。找到測試程序工程的路徑,打開測試程序工程EP9315board_adstest.mcp(建立好工程后,會在指定的目錄下自動生成該文件),如圖3.12所示。圖3.12打開工程文件這樣就可以看到工程中的各個程序文檔,用戶可以根據以后工作的具體需要,在其中進行測試程序的更改和添加。調試更改源程序工作窗口如圖3.13所示。圖3.13工程中源程序截圖當用戶完成自己的更改后,可重新編譯工程,以產生ARM可執行文件。通過點擊make圖標進行編譯、鏈接,如圖3.14所示。圖3.14工程的編譯、鏈接編譯、鏈接完成后,打開ADS1.2中的AXDDebugger加載ARM可執行映像文件。其中,映像文件一般生成于工程目錄的DebugRel文件夾中,如圖3.15與圖3.16所示。圖3.15ARM可執行映像文件的加載(1)圖3.16ARM可執行映像文件的加載(2)加載成功后可點擊“GO”圖標運行測試程序。此時該程序將在開發板上運行,如圖3.17所示。在工程程序運行的過程中,用戶可以根據需要執行暫停程序、設置斷點以及卸載映像文件等操作。至此,ADS下嵌入式系統的開發步驟及方法介紹完畢。此項目的硬件電路調試工作就是通過在ADS下建立工程的方法進行的。以下將詳細講解各功能模塊的調試。圖3.17工程程序的運行3.3測試內容清單及各部分實現功能
ADS下的測試程序包括以下測試內容:●RS232串口測試;●LED燈,即GPIO功能測試;●內存讀/寫測試;●8×8小鍵盤測試;●觸摸屏測試;●脈寬調制(PWM)測試;●USB接口測試;●8255端口測試;●LCD顯示測試;●看門狗定時器(WDT)測試;●Flash擦寫測試;●CAN總線測試;●IIC總線讀/寫RTC芯片測試;●IDE硬盤測試;●MAX1261測試;●MAX5821測試;●PS/2測試;●SPI測試;●RS488測試;●網口測試。3.3.1前10項內容的統一測試測試任務中,測試內容的前10項在超級終端監控下一次性完成,因此將其整合為一個工程。這部分測試對各個硬件外設的控制情況介紹如下:
(1)?RS232串口與PC機通信。測試過程中所有的測試信息都通過RS232串口實現,測試中的控制字符也由其傳遞至開發板。
(2)?LED燈,即GPIO功能。通過控制板上EP9315旁的兩盞LED燈,達到測試EP9315片內GPIO端口的作用。另外,在SDRAM的測試中,還可以用該組LED燈指示內存讀/寫狀態。
(3)內存讀/寫。開發板上SDRAM的大小為128MB,其地址范圍為0x00000000~0x08000000。測試過程中對除過加載程序映像以外的地址進行讀/寫校驗。為防止破壞程序運行時的數據和堆棧,校驗順序為:保存該地址(32位)原來的數據→寫入數據0xaa或0x55→讀出校驗→將原始數據回寫。當校驗正常完成并且內存無錯誤后,開發板上綠色的LED燈會點亮。
(4)?8×8小鍵盤。該部分主要測試在按鍵后,鍵碼讀取是否正確。鍵碼范圍為0x00~0x3F。測試程序中此鍵碼會回顯在超級終端中。當EP9315片內控制器檢測到有兩鍵同時按下時,程序從鍵盤子函數跳出,結束該部分測試。
(5)觸摸屏。當觸筆點擊觸摸屏時,系統會接收模/數轉換后的二維坐標值,以此確定點擊位置。為驗證此部分的電路連接正常,測試程序將把點擊的對應坐標回顯到超級終端中。觸摸屏子函數允許用戶進行15次點擊測試,完成后自動跳出該函數。
(6)脈寬調制(PWM)。該部分開始測試時,程序將提示用戶從4個波形中選擇其一,而后開發板上對應端口就會輸出該波形,可用示波器進行定量觀察,也可外接蜂鳴器。不同頻率和占空比的波形會驅動蜂鳴器以不同聲調鳴響。
(7)?USB接口。USB測試程序主要驗證開發板上USB總線的連接是否正確。該子程序循環運行中,當有USB設備插入時,超級終端會顯示有設備接入以及對應的USB端口號。拔除該設備后,也會顯示設備移除。
(8)?8255端口。測試中將8255A、B端口設置為輸出,外接一排8盞LED燈。以跑馬燈的形式驗證8255芯片輸出功能是否正確。將C端口設置為輸入端,外接8鍵開關,通過開關向C端口輸入高、低電平。由子程序讀取輸入值,回顯到超級終端中。
(9)?LCD顯示。當進入LCD測試子程序后,外接LCD屏會以紅、綠、藍3色循環刷屏。
(10)看門狗定時器(WDT)。這是此部分測試程序的最后一項工作,驗證開發板的看門狗復位功能。在板上兩盞LED燈交替閃爍時,系統正常“喂狗”,而后停止,清零WDT定時器,超級終端提示此部分測試結束,ADS顯示開發板復位。此部分測試程序流程如圖3.18所示。圖3.18前10項測試程序流程此部分測試的控制界面如圖3.19所示。圖3.19控制界面在進行這部分測試工作時,必須注意以下問題:●須將開發板設置為串口啟動方式,斷開跳線J4;●在SDRAM測試中,因為需要保存并回寫原始數據,所以此測試比單獨寫內存運行時間要長;●本工程提供的測試程序中的參數,如串口波特率,PWM波頻率、占空比等,用戶均可在程序中根據需要自行改動,但需要參考EP9315數據手冊的相關說明;●?8路并行I/O口外接8255芯片,關于此芯片內部寄存器的詳細內容請參考8255驅動說明文檔以及8255數據手冊;●測試結束后,開發板處于復位狀態,若需再次加載程序映像文件,則需要斷電再開機后在AXD中重新配置;●當用戶將工程文件夾轉移路徑或移至其他PC機上時,再次編譯會報錯,以本測試程序為例,此時須作如下處理:退出ADS測試環境→刪除工程文件夾中的生成文件(其路徑為:EP9315board_adstest/EP9315board_adstestData/DebugRel)→重新進入ADS測試環境,進行編譯、鏈接,以生成新的ARM可執行文件;●最好將源程序文件放在工程目錄下,以便在調試產品時統一管理。3.3.2Flash測試
28F256J3C125屬于Intel的StrataFlash?memory系列,容量為256Mb,即32MB;包含有256個128KB大小的擦除塊;可以有8位或者16位兩種訪問寬度;遵循CFI接口標準。對Flash芯片的所有操作都是通過芯片的命令用戶接口(CUI)來實現的,命令用戶接口是微處理器或微控制器與芯片內部操作之間的界面。當通過CUI寫入不同的控制命令時,Flash從一個工作狀態轉移到另一個工作狀態,其常見的工作狀態分為以下幾種。
1.讀存儲單元狀態在Flash芯片上電以后,或者從深度低功耗狀態返回以后,芯片就處于讀存儲單元狀態。可通過寫入復位命令進入讀存儲單元狀態。此時可以讀取Flash芯片存儲單元的內容。
2.擦除狀態對Flash芯片進行擦除操作時,由于Flash采用模塊分區的陣列結構,使得各個存儲模塊可以被獨立地擦除。當給出的地址是在模塊地址范圍之內且向命令用戶接口寫入模塊擦除命令時,相應的模塊就被擦除。在執行擦除操作時需要注意:28F256J3C的擦除塊大小為128KB。
3.編程狀態
Flash的編程操作是字節編程或buffer編程,可以是順序寫入,也可以是指定地址寫入。向用戶命令接口寫入字節編程命令時,芯片自動進行字節編程和編程校驗。在執行編程操作時有兩個問題需要注意:buffer的大小范圍為0x00~0x1F。除了以上所提到的常見的3種工作狀態外,Flash還有芯片復位、讀標識碼、擦除掛起和擦除恢復等工作狀態,只不過這幾種工作狀態在程序設計時幾乎不需要考慮什么問題,只要輸入正確的命令字即可,但是不同公司的Flash命令控制字是不同的。前面所遇到的問題都可以通過CFI來解決,但首先要保證待操作的Flash是一個CFI使能的器件。本ADS測試下Flash的測試流程如圖3.20和圖3.21所示。擦除后,塊中數據全為0xFF。測試流程為:首先讀出Flash中的數據,然后擦除,再讀出數據,若全為0xFF則擦除成功;再向Flash中寫入數據,讀出驗證。由此可證明Flash可操作。圖3.20塊擦除流程圖圖3.21buffer編程流程圖3.3.3CAN總線測試
CAN總線是國際上應用最廣泛的現場總線之一,最早是由德國Bosch公司推出,用于汽車內部測量與執行部件之間的數據通信協議。CAN總線的應用范圍遍及從高速網絡到低成本的多線路網絡,廣泛應用于控制系統中的各檢測和執行機構之間的數據通信。現場總線領域中,CAN總線得到了計算機芯片商的廣泛支持,他們紛紛推出直接帶有CAN接口的微處理器(MCU)芯片。CAN是一種多主方式的串行通信總線,基本設計規范要求有高的位速率,高的抗電磁干擾性,而且能夠檢測出產生的任何錯誤。
CAN網絡具有如下特點:●網絡上任意一個節點均可在任意時刻主動向網絡上的其他節點發送信息,而不分主、從;●采用非破壞性總線仲裁技術,當兩個節點同時向網絡上傳送信息時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響地繼續傳輸數據;●具有點對點,一點對多點及全局廣播傳送接收數據的功能。通信距離最遠可達10km(5kb/s),通信速率最高可達1Mb/s(40m),網絡節點數實際可達110個,每一幀的有效字節數最多為8個,這樣傳輸時間短,受干擾的概率低;●通信介質采用廉價的雙絞線即可,無特殊要求;●每幀信息都有CRC校驗及其他檢錯措施,數據出錯率極低,可靠性極高,在傳輸信息出錯嚴重時,節點可自動切斷它與總線的聯系,以使總線上的其他操作不受影響。目前廣泛流行的CAN總線器件有兩大類:一類是獨立的CAN控制器,如82C200、SJA1000及Intel82526/
82527等;另一類是帶有在片CAN的微控制器,如P8XC58216位微控制87C196CA/CB等。這里選用PHILIPS公司的SJA1000CAN控制器以及82C250總線收發器,主要是因為EP9315沒有CAN控制器,而且SJA1000支持CAN2.OA/B規范,82C250可以支待110個CAN節點,并且國內市場上PHILIPS的產品型號比較多,購買比較方便。
PHILIPS公司的SJA1000是符合CAN2.0B協議的總線控制器,它是應用于汽車和一般工業環境的獨立CAN總線控制器。由于硬件和軟件的兼容,它將會替代PCA82C200,它與PCA82C200相比具有更先進的特征,因此特別適合于轎車內的電子模塊傳感器、制動器的連接和通用工業應用中特別是系統優化、系統診斷和系統維護。SJA1000具有完成CAN通信協議所要求的全部特性。經過簡單總線連接的SJA1000可完成CAN總線的物理層和數據鏈路層的所有功能。其硬件與軟件設計可兼容基本CAN模式(BasicCAN)和新增加的增強CAN模式(PeliCAN)CAN?2.0B協議。這一部分用戶可參照SJA1000的數據手冊。開發板上CAN總線的硬件連接如圖3.22、圖3.23和圖3.24所示。圖3.22CAN總線硬件連接圖(1)圖3.23CAN總線硬件連接圖(2)圖3.24CAN總線硬件連接圖(3)
ADS下測試包含ebdtest_can和looptest_can兩個工程,其中looptest_can是回環測試,而ebdtest_can是兩個can口通信的測試。測試步驟如下:
(1)運行程序顯示如下:
SMCBCR2=0X20001C61
SMCBCR2=0X1C61
SJA1000_MOD_000X21
SJA1000_MOD_010X21
--------------------------------------
(2)輸入help命令,了解可支持的命令如下:
myshell>help,
read
write
getfrmsendfrm help
exitquit
(3)發送數據:
myshell>sendfrm,
pleaseinputcommand.formatis:
8addr0addr1d0d1d2d3d4d5d6d7
xx--xx--xx--xx--xx--xx
BUF[0]=8BUF[1]=4BUF[2]=5BUF[3]=254BUF[4]=255BUF[5]=3BUF[6]=4BUF[7]=5BUF[8]=88BUF[9]=75BUF[10]=155BUF[11]=8BUF[12]=0BUF[13]=0BUF[14]=0BUF[15]=1BUF[16]=1BUF[17]=1BUF[18]=1BUF[19]=1BUF[20]=1BUF[21]=1BUF[22]=8BUF[23]=0BUF[24]=0BUF[25]=0BUF[26]=0BUF[27]=0BUF[28]=0BUF[29]=0BUF[30]=0BUF[31]=0BUF[32]=0[0]=8[1]=4[2]=5[3]=254[4]=255[5]=3[6]=4[7]=5[8]=88[9]=75[10]=155
xxxxxxxxxxxx
TXdata[0]=8TXdata[1]=4TXdata[2]=5TXdata[3]=254TXdata[4]=255TXdata[5]=3TXdata[6]=4TXdata[7]=5TXdata[8]=88TXdata[9]=75TXdata[10]=155xxxxxxxxxxxx
TXdata[0]=8TXdata[1]=0TXdata[2]=0TXdata[3]=0TXdata[4]=1TXdata[5]=1TXdata[6]=1TXdata[7]=1TXdata[8]=1TXdata[9]=1TXdata[10]=1xxxxxxxxxxxx
TXdata[0]=8TXdata[1]=0TXdata[2]=0TXdata[3]=0TXdata[4]=0TXdata[5]=0TXdata[6]=0TXdata[7]=0TXdata[8]=0TXdata[9]=0TXdata[10]=0
(4)接收數據:
myshell>getfrm,
readin3frames
8402542553458875155
80001111111
80000000000
myshell>3.3.4IIC總線讀取RTC芯片測試
DS1337串行實時時鐘芯片是一種低功耗,全部采用BCD碼的時鐘日歷芯片,它帶有兩個可編程的定時鬧鐘和一個可編程的方波輸出。其地址和數據可通過IIC總線串行傳輸,能提供秒、分、時、日、星期、月和年等信息。在月天數小于31天的情況下,它也能自動調整月份,包括對閏年的校正。時鐘可以以24小時模式工作,也可以以12小時模式工作。芯片的工業溫度范圍為-40~+80℃,提供有8引腳的DIP和SOIC封裝,引腳如圖3.25所示。圖3.25DS1337引腳圖引腳功能介紹如下:
(1)?VCC,GND:直流電源和接地端,VCC的輸入范圍為1.8~5.5?V。
(2)?X1、X2:標準的32.768?kHz的石英晶振接入端,內部晶振電路設計要求晶振特定電容負載為6?pF。另外,這兩個引腳還可以有其他接法,即:X1腳連接外部振蕩信號源,而將X2腳懸空。
(3)?SCL:串行時鐘輸入,用來在總線上進行同步數據傳輸。
(4)?SDA:串行數據輸入/輸出,SDA是IIC總線接口的數據輸入/輸出引腳,開漏輸出,使用時要求接一個上拉電阻。
(5)?SQW/:方波/中斷輸出,可通過對DS1337的內部控制寄存器進行編程來控制這個引腳是輸出方波還是輸出中斷信號。該引腳是開漏輸出,使用時要接一個外部的上拉電阻。
(6):中斷輸出端,使能時,如果鬧鐘寄存器的設定值與當前時間匹配,該腳會輸出一個低電平。該引腳也是開漏輸出,使用時要接上拉電阻。
DS1337的內部寄存器地址分配方式如圖3.26所示。在多字節存取過程中,當地址指針到達0FH,即寄存器空間的最后一個單元時,下一個操作地址將翻卷到00H。在IIC總線的開始、停止或在地址指針增加到00H位置時,當前時間會傳送給一組二級寄存器,在這期間,時鐘照常運轉。這樣就不必在讀取當前時間期間和主寄存器更新的情況下再次讀取主寄存器中的數據,從而防止發生錯誤。在開發板上的硬件連接圖如圖3.27所示。圖3.26DS1337寄存器地址分配圖3.27DS1337硬件原理圖在ADS下的測試ebdtest_iic工程包含有iic.c、iic.h、main.c和9315addr.h4個文件。Loadimage后,運行程序,出現命令提示行Begintotestiicdrivers并顯示時間信息為:1分鐘后測試結束。3.3.5IDE硬盤測試
IDE(IntegatedDriverElectronics)硬盤是Linux系統中最常用的硬盤。由于IDE硬盤比較便宜,大多數現代PC在主板上都有一個或更多的IDE控制器。每個IDE控制器可以支持兩個硬盤,一個是主盤(master),另一個是從盤(slave)。主、從的區別可通過硬盤上的跳線設置。隨著技術的發展,產品對數據傳輸速度要求的提高,IDE接口硬盤的數據傳輸模式經歷了3個不同的技術變化,由最初的PIO模式到DMA模式,再到UltraDMA模式。
1.?PIO模式
PIO的英文拼寫是“ProgrammingInput/OutputModel”,PIO模式是一種通過CPU執行I/O端口指令來進行數據的讀/寫的數據交換模式,是最早的硬盤數據傳輸模式。此種模式的數據傳輸速率低,CPU占有率也很高,大量傳輸數據時會因為占用過多的CPU資源而導致系統停頓,無法進行其他的操作。PIO數據傳輸模式又分為PIOmode0、PIOmode1、PIOmode2、PIOmode3、PIOmode4幾種模式,數據傳輸速率從3.3MB/s到16.6MB/s不等。受限于傳輸速率低下和極高的CPU占有率,這種數據傳輸模式很快就被淘汰。
2.?DMA模式
DMA的英文拼寫是“DirectMemoryAccess”,意思就是直接內存訪問,是一種不經過CPU而直接從內存里存取數據的數據交換模式。PIO模式下硬盤和內存之間的數據傳輸是由CPU來控制的,而在DMA模式下,CPU只須向DMA控制器下達指令,讓DMA控制器來處理數據的傳送,數據傳送完畢再把信息反饋給CPU,這樣就很大程度上減輕了CPU的資源占有率。DMA模式與PIO模式的區別就在于,DMA模式不過分依賴CPU,可以大大節省系統資源,二者在傳輸速度上的差異并不十分明顯。DMA模式又可以分為Single-WordDMA(單字節DMA)和Multi-WordDMA(多字節DMA)兩種,其中所能達到的最大傳輸速率也只有16.6?MB/s。
3.?UltraDMA模式
UltraDMA的英文拼寫為“UltraDirectMemoryAccess”,一般簡寫為UDMA,含義是高級直接內存訪問。UDMA模式采用16bitMulti-WordDMA(16位多字節DMA)模式為基準,可以理解為DMA模式的增強版本,它在包含了DMA模式的優點的基礎上,又增加了CRC(CyclicRedundancyCheck,循環冗余碼校驗)技術,提高了數據傳輸過程中的準確性,安全性也得到了保障。在以往的硬盤數據傳輸模式下,一個時鐘周期只傳輸一次數據,而在UDMA模式中逐漸應用了DoubleDataRate(雙倍數據傳輸)技術,因此數據傳輸速度有了極大的提高。此技術就是在時鐘的上升期和下降期各自進行一次數據傳輸,可以使數據傳輸速度成倍地增長。在UDMA模式發展到UDMA133之后,受限于IDE接口的技術規范,無論是連接器、連接電纜、信號協議都表現出了很大的技術瓶頸,而且其支持的最高數據傳輸率也有限。同時隨著IDE接口傳輸率的提高,也就是工作頻率的提高,IDE接口交叉干擾、地線增多、信號混亂等缺陷也給其發展帶來了很大的制約,被新一代的SATA接口取代也就在所難免了。
IDE的測試包括寫、讀兩部分。注意:IDE硬盤應該工作在主模式(master)下,否則不能正確讀出硬盤中的內容。
(1)?IDE的傳輸方式選擇了PIO4。
(2)向硬盤的第一個扇區(1磁頭、0磁道、1扇區)寫入數據0~511,為512個字節,再讀出第一個扇區內容,讀出數據為0~511,驗證正確。測試程序流程如圖3.28和圖3.29所示。圖3.28IDE寫操作測試流程(1)圖3.29IDE讀操作測試流程(2)測試步驟如下:
(1)先讀出硬盤第一個分區的內容,并打印出來;
(2)將讀出的內容寫入硬盤第一個分區;
(3)將硬盤第一分區的內容讀出來,若操作正確,就打印出來,以此來驗證對硬盤操作是否正常,IDE口能否正常工作。3.3.6A/D轉換測試
MAX1261是一款低功耗,12位模數轉換器(ADC),采用逐次逼近型ADC結構,具有自動關斷、快速喚醒(2?μs)、片上時鐘、+2.5?V內部基準和高速單字節寬度等的并行接口。它工作于+3?V單模擬電壓,并且具有一個VLOGIC引腳,允許芯片直接和+1.8~+5.5?V的數字電源接口。在最大采樣速率250kb/s下,芯片功耗僅為5.7mW(VDD=VLOGIC)。兩種軟件可選擇的關斷模式允許在兩次數據轉換之間關閉MAX1261/MAX1263,通過訪問并口可將其返回至正常工作狀態。轉換之間的關斷模式能在更低的采樣速率下將電源電流減小至10μA以下。這款芯片提供軟件可配置的模擬輸入,用于選擇單極性/雙極性和單端/偽差分工作模式。在單端模式下,MAX1261有8個輸入通道(在偽差分模式下有4個輸入通道)。出色的動態特性和低功耗特性結合,及其易使用性和小尺寸封裝,使得這些轉換器成為電池供電、數據采集系統及其他對功耗、尺寸要求苛刻的電路的理想選擇。MAX1261采用28引腳QSOP封裝,如圖3.30所示。圖3.30MAX1261管腳圖引腳功能如下所述:
(1)?VDD、GND:直流電源和接地端,VDD為+3V單模擬電源。
(2)?HBEN:高字節使能端,用于得到12位的轉換結果。置位時,讀取高四位的數據;清零時,讀取低八位的數據。
(3)?CLK:時鐘輸入端,采用外部時鐘模式時,接TLL或COMS兼容的時鐘;采用內部時鐘模式時,CLK與VCC或GND連接。
(4):中斷輸出端,當轉換完成和數據準備好之后,信號變低。
(5),:讀/寫信號輸入端。
(6):片選信號輸入端,信號為低電平時,選中芯片;高電平時,數據(D7~D0)輸出為高阻抗。
(7)?D0~D7:模擬信號輸入通道。
(8)?COM:模擬輸入時的參考地。
(9)?VLOGIC:數字電源端,為數據轉換的數字輸出供電,范圍為1.8?V~(VDD+0.3?V)。
(10)?REFADJ端:使用外部參考模式時,把REFADJ端與VDD連接,這樣就禁用了內部參考模式。
(11)?REF端:使用內部參考模式時,用4.7μF的電容接地。開發板上硬件連接圖如圖3.31所示。圖3.31MAX1261連接圖
MAX1261接在nCS3上,物理地址為0x31000000。test_ad工程下包含有ad_test.c、max1261.c和9315addr.h3個文件。●?9315addr.h:所用地址頭文件。●?max1261.c:主要包括對MAX1261的讀max1261_read(void)、寫max1261_write(unsignedcharcmd)操作。●?ad_test.c:包括具體對MAX1261的配置和測試。
Loadimage后,等待輸入命令:
myshell>●?config1:用于配置MAX1261工作的模式。
0:完全掉電模式,時鐘模式無影響;
1:備用掉電模式,時鐘模式無影響;
2:正常工作模式,內部時鐘模式;
3:正常工作模式,外部時鐘模式。●?config2:用于配置MAX1261的模擬輸入模式。
0:偽差分模擬輸入模式;
1:單端模擬輸入模式。●?config3:用于配置MAX1261的極性。
0:雙極性;
1:單極性。●?config4:用于配置MAX1261的通道。
0:第0通道被選通;
1:第1通道被選通;
2:第2通道被選通;
3:第3通道被選通;
4:第4通道被選通;
5:第5通道被選通;
6:第6通道被選通;
7:第7通道被選通。●?startin:用于使MAX1261開始轉換的命令,且采用內部捕捉模式。●?startex:用于使MAX1261開始轉換的命令,且采用外部捕捉模式。●?exitadc:用于退出測試程序。舉例:
myshell>config4
0
channel0isselected.
myshell>startin
AD_data=0x401
AD_data=0x405每通道轉換300次,單端輸入電壓值為0.625?V,即為0x400,記錄所有轉換值,舍棄最大值與最小值,取平均值,所得數據如表3.1所示。表3.1MAX1261轉換值記錄3.3.7D/A轉換測試
MAX5821是雙路、10位、電壓輸出的數模轉換器(DAC),具有兼容I2C的2線接口,工作時鐘頻率可達400?kHz。該器件工作于2.7~5.5?V單電源,在VDD=3.6?V時,僅消耗115?μA的電源電流。低功耗關斷模式將電源電流消耗降低至1?μA以下。MAX5821具有軟件選擇的3種關斷阻抗:100?kΩ,1?kΩ和高阻抗。其他特性包括內部精密滿擺幅輸出緩沖器和上電復位(POR)電路,該電路使DAC上電時處于100?kΩ的關斷模式。管腳圖如圖3.32所示。圖3.32MAX5821管腳圖
開發板上硬件連接圖如圖3.33所示。圖3.33MAX5821硬件連接圖
ADS下的測試過程:test_da工程可用來轉換0~1023的任意數值,在轉換之前需要有喚醒命令,在此可調用喚醒函數。
intwritecommand(void)
//喚醒函數
{
unsignedcharcommand1=0xf0;
//擴展命令模式
unsignedcharcommand2=0x0c;
//喚醒A、B寄存器命令(0x04喚醒A寄存器,0x08喚醒B寄存器)
Start(); /*寫地址和發出寫命令(A6...A0R/W)*/
writebyte(0x70); /*發出擴展命令0xf0*/
writebyte(command1); /*寫數據*/
writebyte(command2);
Stop();
return1;
}操作步驟如下:
(1)?LoadImage后,運行程序,有命令提示inputcommand(12):輸入0:DAC的輸入端A和DAC寄存器被載入新的數據,DAC的輸入端B中的內容被傳送到DAC寄存器,所有的輸出更新。輸入1:DAC的輸入端B和DAC寄存器被載入新的數據,DAC的輸入端A中的內容被傳送到DAC寄存器,所有的輸出更新。輸入4:DAC的輸入端A被載入新的數據,DAC的輸出保持不變。輸入5:DAC的輸入端B被載入新的數據,DAC的輸出保持不變。輸入8:所有輸入端中的內容被傳送到各自的DAC寄存器,所有DAC的輸出也被同時更新,DAC的輸入端A被載入新的數據。輸入9:所有輸入端中的內容被傳送到各自的DAC寄存器,所有DAC的輸出也被同時更新,DAC的輸入端B被載入新的數據。輸入12:所有的DACs被載入新的數據,所有的DAC輸出也同時被更新,所有的輸入端和DAC寄存器也被更新為新的數據。輸入13:所有的輸入端被載入新的數據,DAC的輸出保持不變。
(2)命令提示inputnumberis0~1023。輸入準備轉換的數據,用示波器測量電壓值,例如:
test_da1工程從0~1023依次轉換,再由1023~1依次轉換,通過示波器可看到波形是一個三角波。顯示信息如下:
BegintotestDAC
1100:LoadallDACswithnewdataandupdateallDACoutputs
simultaneously.BothinputandDACregistersareupdated
withnewdata.
inputcommand:
123.3.8PS/2測試
1.?ADS下測試程序程序開始運行后,等待接收PS/2鍵盤輸入的按鍵值。當檢測到有按鍵按下時,從寄存器SSPDR中讀取按鍵值,進行判斷。如果不是ESC按鍵,則將對應的掃描碼轉換為對應的字符,并輸出;如果按下按鍵ESC,則退出程序。
2.調試中需要注意的事項●通信當中,PC機配置成SPI的從模式,PS/2鍵盤默認為主模式,提供通信時鐘。●務必連接跳線J17、J18的2.3管腳和跳線J19、J20。●如果系統復位模塊不穩定,會造成按鍵無反應的情況,此時需檢查復位電路部分。3.3.9SPI測試
SPI總線系統是Motorola公司提出的一種同步串行外設接口,一般采用串行時鐘線(SCK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SS等四根線,完成CPU與各種外圍器件的同步串行通信。
SPI總線接口可以通過軟件配置,如一個主機和幾個從機、幾個從機相互連接構成多主機系統(分布式系統)、一個主機和一個或幾個從I/O設備所構成的各種系統等。其數據傳輸以字節為單位,高位(MSB)在前,低位(LSB)在后。本系統中,默認配置為單主單從模式。串行數據的發送和接收通過內部移位寄存器來實現。在發送時向SPI數據寄存器寫入數據,數據寄存器和內部移位寄存器之間沒有緩沖區,寫數據寄存器會使數據直接進入內部移位寄存器。主機通過提供移位時鐘和從使能信號來控制信息的流動,時鐘信號SCK的一次作用對應于一位數據的發送(MISO)和另一位數據的接收(MOSI)。在主機中數據從移位寄存器自左向右發送到主機(MOSI),同時從機中的數據自右向左發送到主機(MISO),經過8個時鐘周期完成一個字節的發送。當傳輸結束時,接收到的數據轉移到一個單字節的數據緩沖區,下次傳輸時,將其讀出。讀SPI數據寄存器將返回讀數據緩沖區的值,工作方式如圖3.34所示。圖3.34SPI工作方式本系統中,SPI接口通過跳線J17和J18與PS2復用,進行測試時需要連接這兩個跳線的1、2管腳選通SPI模塊,如圖3.35所示。圖3.35SPI跳線設置
1.?ADS下測試程序在SPI測試程序中,發送線和接收線通過跳線冒連接起來。通過對比加、不加跳線兩種情況,驗證SPI硬件電路性能。首先不連通跳線J29的1腳、3腳,循環發送任意一個數組(本程序中發送次數為5次),當SPI緩沖區為空時,將要發送的數據放入SPI緩沖區中,通過發送線發送出去。經過適當延時后,讀取接收緩沖區的內容,因為發送線和接收線沒有連通,故接收緩沖區中數據為0。其次,連通跳線J29的1腳、3腳。此時,SPI的發送線和接收線連通,經過8?bit的延時后,讀取緩沖區里的內容為前第8個已發送的數據。程序流程如圖3.36所示。圖3.36SPI測試程序流程
2.調試中需要注意的事項
(1)必須連接跳線J17和J18的1、2管腳,否則SPI接口被PS2選通,不作為SPI端口輸出。
(2)在連接J29的1、3管腳后,如果接收數據與發送數據之間不滿足8bit的延時,可以適當調整程序中的延時函數,確保數據按照正常速率傳輸。
(3)在連接J29的1、3管腳時,一定要將開發板處于斷電模式,以免造成線路損壞。3.3.10RS488測試
RS488是一種廣泛應用于工業控制領域的總線,采用平衡發送和差分接收方式,具有抑制共模干擾的能力,傳輸信號能在千米以外得到恢復。RS488采用兩根發送信號線、兩根接收信號線完成信號傳輸。
RS488標準規定:當兩路信號差值在+2~+6?V之間時,認為是邏輯1;當兩路信號差值在-2~-6?V之間時,認為是邏輯0;RS488采用全雙工工作方式,收、發可以同時進行。EP9315內部集成了三個UART,UART1可配置為串口232,UART2可配置為紅外接口,UART3可配置為串口488,外圍芯片為MAX488。在RS488測試時,需要利用測試板輔助測試,這里提供488到232的轉換電路以方便調試。調試連接圖如圖3.37所示。圖3.37RS488調試連接圖本系統中采用的芯片是MAX488轉換芯片,其中TXD2與EP9315相連,發送數據通過該芯片由5、6管腳發出;接收到的數據通過7、8管腳輸入芯片,由RXD2傳至EP9315開發板。開發板上硬件連接圖如圖3.38所示。圖3.38MAX488硬件連接圖測試程序由發送和接收兩部分組成,首先從488端口發送字符串“testrs488,Input:”,通過488-232轉換電路,在PC機超級終端顯示出來,等待接收數據。用戶從超級終端中鍵入任意字符,通過488-232轉換電路傳遞到開發板的488端口,此時讀取488的寄存器內容,送回終端回顯出來,按ESC鍵結束測試。測試流程如圖3.39所示。圖3.39MAX488測試流程圖調試中注意事項:
(1)在系統配置寄存器Devicecfg中,默認使能的是uart1。在修改該寄存器的值之前,必須先對其進行解鎖,方法是先向該寄存器中寫入0xaa,然后再賦值。
(2)在配置控制寄存器uart3linctrl時,high寄存器必須放在最后配置才能生效。配置順序可以是low→mid→high或者是mid→low→high。3.3.11網口測試
EP9315內嵌有一個以太網控制器,支持媒體獨立接口(MediaIndependentInterface,MII)和帶緩沖DMA接口(BufferedDMAInterface,BDI),可在半雙工或全雙工模式下提供10M/100M的以太網接入。雖然EP9315內部包含了以太網MAC控制,但并未提供物理層接口,因此,需外接一片物理層芯片以提供以太網的接入通道。常用的單口10M/100M高速以太網物理層接口器件主要有RTL8201、DM9161等,均可提供MII接口和傳統7線制網絡接口,可方便地與EP9315接口。本系統采用的是RTL8201芯片。以太網控制器工作流程主要由六個重要隊列完成:發送/接收描述符隊列,發送/接收狀態隊列,發送/接收數據隊列。這里以接收描述符隊列為例。接收描述符隊列用來在主機和MAC控制器之間傳遞接收描述符,該隊列的地址和大小通過初始化RDQBA、RDCA、RDQBL三個地址寄存器獲得,基地址(QBA)與內存地址字對齊,當前地址(CA)設置為第一個可用的QBA時,描述符隊列的長度是2的次方,否則,描述符處理器會工作異常,使接收數據幀出錯。每一個描述符定義一個接收數據緩沖區,其由兩個字組成。第一個字包括數據緩沖區的地址(RxBufAdr);第二個字由緩沖區長度(BufferLength)、緩沖區索引號(BufferIndex)、緩沖區幀結束符(NotSOF)組
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年護士臨床技能測試試題及答案
- 精準備考2025年文化概論試題及答案
- 提升記憶力的學習策略執業醫師考試試題及答案
- 行政管理中中華文化的核心價值試題及答案
- 中國文化概論與環境保護的關系試題及答案
- 藥品管理法對藥師考試的影響試題及答案
- 行政管理2025年研究方法試題及答案
- 2025年自考行政管理社會服務創新試題答案
- 正確認識執業藥師的考試試題及答案
- 2025年執業藥師的綜合素質培養試題及答案
- 2024高考有機專題真題
- 2024旋轉電機繞組絕緣第2部分:定子繞組絕緣在線局部放電測量
- TD/T 1068-2022 國土空間生態保護修復工程實施方案編制規程(正式版)
- DZ∕T 0382-2021 固體礦產勘查地質填圖規范(正式版)
- 《研學旅行課程設計》課件-研學課程方案設計
- 小兒補液的基礎與臨床課件
- GB/T 9442-2024鑄造用硅砂
- 戲劇之美(山東聯盟)智慧樹知到期末考試答案2024年
- 國內信用證基礎知識培訓
- 礦山救護工考試:礦山救護規程題庫考試題
- 建筑工地安全文明施工
評論
0/150
提交評論