張國強 蔡剛
(1.西安明德理工學院 陜西省西安市 710065 2.西安西谷微電子有限責任公司 陜西省西安市 710124)
隨著電子技術的飛速發(fā)展,芯片的可靠性越來越受到重視,要保證設備的穩(wěn)定運行,各個研發(fā)環(huán)節(jié)都要考慮芯片的可靠性測試,尤其是民用企業(yè)要向軍用企業(yè)轉型,或者分包軍品項目,在選用芯片時,不僅僅要選用工業(yè)級或者軍品級產品,還要對芯片進行二次篩選,做可靠性測試。
PXA255A0E400 是Intel 公司旗下的XScale 架構處理器,是一種技術先進的高性能嵌入式處理器,內部采用XScale 核心,采用PBGA 封裝形式,其性能比ARM9 內核更加優(yōu)越,頻率高達400MHz。此CPU 支持多種外圍設備,其中片內控制模塊包括:存儲器控制器、LCD 控制器、DMA 控制器、AC97 數(shù)字音頻電路、12S、12C、紅外線通信接口IrDA、同步串行控制SSP、ClientUSB控制器、UARTs,包括全功能UART、藍牙UART、標準UART、硬件UART,實時時鐘電路、多媒體卡控制器MMC、中斷控制、通用I/O 口等。豐富的控制模塊為各種應用開發(fā)提供了強大的靈活性。
本文主要是圍繞PXA255A0E400 設計一款最小測試系統(tǒng)板,研究其測試方法,對于同架構處理器測試有著很大的借鑒意義。
本系統(tǒng)主要是以Intel XScale PXA255A0E400 處理器為核心,外圍主要集成了以太網(wǎng)控制器、SDRAM、Flash、復位電路、晶振電路、JTAG 仿真電路、BOOT 啟動模式選擇電路等組成,圖1 是測試系統(tǒng)設計框圖。
圖1:測試系統(tǒng)設計框圖
PXA255A0E400 并沒有直接提供以太網(wǎng)控制器接口,目前很多嵌入式微處理器并沒有集成以太網(wǎng)控制器接口,如果所搭建的系統(tǒng)需要以太網(wǎng)接口,則需要外接以太網(wǎng)控制芯片。一般的以太網(wǎng)控制器芯片是一個獨立的控制系統(tǒng),通過總線(ISA、PCI 等)或直接與處理器進行數(shù)據(jù)交互。以太網(wǎng)控制器有自動獨立的存儲空間、I/O 空間和配置空間,在設計系統(tǒng)時,把這些空間映射到處理器可訪問的存儲空間的某個空間段,然后通過訪問這段空間來控制網(wǎng)卡控制器并進行數(shù)據(jù)交互。在設計中,采用CS8900A 作為以太網(wǎng)控制芯片,它高度繼承設計不需要其他以太網(wǎng)控制器所必需的昂貴外部器件。其與PXA255A0E400 硬件連接關系如圖2所示。
圖2:以太網(wǎng)控制電路與處理器連接關系
SDRAM 電路采用兩片K4S561632C-TC75 并聯(lián)的方式擴展成32 位數(shù)據(jù)總線寬度。K4S561632-TC75 內部共有四個Bank,采用13 線行地址線及9 線列地址線實現(xiàn)4M 地址空間尋址。從PXA255A0E400 數(shù)據(jù)手冊上可知,在進行尋址時,先從ADDR[10...21]、ADDR24 輸出行地址信息,接著從A[10...18]輸出列地址信息,A[22,23]輸出關于bank 的選擇信號。因此K4S561632-TC75 的地址線A[0…12]依次連接在PXA255A0E400的ADDR[10...21]、ADDR24 上,負責bank 選擇的引腳BA0,BA1 連接在PXA255A0E400的ADDR22,ADDR23 管腳上。兩片K4S561632-TC75 的片選信號都連接在PXA255A0E400的nSDCS0上,即接入到PXA255A0E400的SDRAM Bank0 上,其起始地址為0xA0000000,有效地址范圍是0xA0000000 至0x3FFFFFFF。
PXA255A0E400的FLASH 電路由兩片JS28F128J3d75 并聯(lián)擴展得到32 位數(shù)據(jù)總線寬度。片選CE0 連接到nCS0 端,地址線A[23…1]連接著PXA255A0E400的地址ADDR[2…24],實現(xiàn)128M 地址空間尋址。
PXA255A0E400 復位管腳nRESET 先進行10K 電阻上拉VCC_3.3V,使用0.1uF 進行去耦,再引出復位管腳到接插件P5 上,P5 另一個管腳接GND,便于在測試時候可以直接短接復位腳與GND。
PXA255A0E400 處理器外接兩個晶振,分別是3.6864Mhz 和32.768Khz。3.6864Mhz 晶振主要驅動核心鎖相環(huán)和一些外圍鎖相環(huán),這些鎖相環(huán)可以為一些特殊的功能模塊提供指定的頻率。32.768Khz 晶振主要用來驅動實時時鐘,電源管理和中斷管理,并且該晶振可為睡眠模式下的處理器提供時鐘。
PXA255A0E400 包含一個專門仿真口來支持由IEEE1149.1 標準規(guī)范的JTAG 仿真,該端口可以通過仿真器直接訪問,這種設計極大方便了PXA255A0E400 仿真軟件的調試。JTAG 接口主要應用于:電路的邊界掃描測試和可編程芯片的在線系統(tǒng)編程。為了能與仿真器進行通信,所設計的PCB板上采用了20腳JTAG仿真接插件,PXA255A0E400的JTAG 的TCK、TDI、TMS、TDO 通過20PIN接插件連接到仿真器接PC USB 口。
PXA255A0E400 通 過BOOT_SEL0、BOOT_SEL1、BOOT_SEL2,三個管腳來控制系統(tǒng)的啟動存儲器類型,一個有6 種啟動模式,原理圖上該管腳進行上拉電阻與下拉電阻,通過增加或者減少電阻來設置系統(tǒng)的啟動。
最終PCB 制版,焊接好所需的元器件,最小系統(tǒng)板實物如圖3所示。
圖3:PCB 制版和實物圖
ADS1.2 是ARM 公司的集成開發(fā)環(huán)境軟件,包括了四個模塊分別是:SIMULATOR、C 編譯器、實時調試器、應用函數(shù)庫。支持的硬件仿真器有JLINK、H-JTAG 等。C 編譯器效率高,支持C以及C++,能夠很方便的使用C 語言進行軟件開發(fā)。提供軟件模擬仿真功能,使沒有Emulators 的學習者也能夠熟悉ARM 的指令系統(tǒng)。配合仿真器使用,ADS1.2 提供強大的實時調試跟蹤功能。
Irq_init( ):該函數(shù)主要功能是進行中斷初始化;Flash_init( ):該函數(shù)功能是進行片外Flash 初始化,主要是定義了Flash 的讀寫擦除等功能;Gpio_init( ):該函數(shù)功能是進行GPIO 管腳的初始化,PXA255A0E400 一共有85 個GPIO 口,該GPIO 初始化程序中主要是定義了GPIO[1]為輸入管腳以及除了GPIO[1]剩下的管腳為輸出管腳??刂艷PIO[1]管腳,檢查當該管腳是高電平時,其他輸出管腳輸出高電平,也即執(zhí)行Test_gpio_H( )函數(shù),該函數(shù)功能為輸出剩下管腳為高電平,反之當GPIO[1]檢查到為低電平,則執(zhí)行Test_gpio_L( ),即輸出低電平。測試系統(tǒng)流程圖如圖4所示。
圖4:測試系統(tǒng)流程圖
4.3.1 ADS 設置
在ADS 中編寫完功能測試代碼后,需要進行以下ADS 設置。步驟如下:
點擊設置按鈕,進入設置界面后,在Target 目錄下選擇Target Settings,設置post-link 中的ARM from ELF,把編好的代碼轉換成下載的二進制BIN 文件,在Language Settings 中選擇ARM Assembler,在Architecture or Processor 中選擇PXA255A0E400 使用的XScale 內核,同理在ARM C Compiler 中也選擇XScale 內核。在Linker 的設置中,選擇ARM Linker,在output 處:在代碼選擇flash 調試時,需要修改RO Base 為0x00000000,其他的不用修改;在代碼選擇SDRAM 調試時,需要修改RW Base 為0xa0000000,其他的不用修改。Linker 下的Options 處:Image entry point 輸入_ENTRY,設置鏡像入口點,也就是引導程序入口,其余部分無需設置。
4.3.2 AXD 設置
進入AXD 界面,選擇Option 中的Configure Target,點擊Add,添加H-JTAG 仿真器DLL 文件,添加完畢,就可以進行在線調試仿真。
(1)連接PXA255A0E400 測試板,使用雙路電源進行供電,VCC_3.3V 以及VCC_1.3V,連接H-JTAG 仿真器。
(2)點擊桌面圖標H-JTAG,打開H-JTAG Server。選擇YES,同意檢查H-JTAG 更新,如果H-JTAG 安裝正確,H-JTAG Server 會自動識別芯片ID,芯片ID 為PXA25X 0x69264013,如果沒有識別顯示UNKNWN 0x00000000,則檢查以下H-JTAG 驅動是否正確安裝,確認正確安裝后,在H-JTAG Server 下點擊Control,選擇Detect Target。重新檢查一下。
(3)選擇Flasher,選擇Start H-Flasher,啟動下載界面。
(4) 在Load 中選擇測試系統(tǒng)使用的外擴Flash 芯片JS28F128J3,由于系統(tǒng)使用了2 片存儲器進行擴展,所以選PXA255A0E400+JS28F128J3X2.hfc。
(5)選擇左側Programming.在右側中可以看到Flash 類型,Target 類型:PXA25X 以及前面ADS 中設置的小端模式,在Type選擇Plain Binary fomat,Dst Addr 選擇Flash Base Address.Src File選擇ADS 中轉換過的BIN 文件。
(6)點擊右側Program,進行下載操作,成功后,顯示successfully。
(7)擦除操作,選擇左側Programming.在From 以及To 中選擇Entire Chip,然后點擊Erase。
PXA255A0E400 使用的ATE 設備是泰瑞達公司的J750-HD。按照設備操作手冊編寫pinmap,chanmap,Pinlevel,DCspacs,ACspacs,time(set),Test Instance,flow,Character,具體詳細操作不做詳細敘述。
在Test Instance 編寫出要測試的芯片連接性參數(shù),交直流參數(shù),芯片ID,芯片功能。如圖5所示。
圖5:ATE 測試過程
本文重點給出了電路原理圖包括物理層芯片集成以及外擴了SDRAM、FLASH 等,PCB 硬件實物圖,以及測試代碼編寫,探索以PXA255A0E400 為例的大規(guī)模以及超大規(guī)模測試方法;探索ADS1.2 開發(fā)環(huán)境下測試代碼編寫;探索測試系統(tǒng)外掛存儲器設計及相關存儲器代碼編寫;研究脫離開發(fā)環(huán)境快速進行代碼寫入與擦除方法。
該方案已經應用到了實際項目之中。外部存儲器存儲代碼使得測試人員無需對PXA255A0E400 芯片進行寫入與擦除,大大的縮短了芯片的測試時間,節(jié)約了公司的人工成本,對于同架構處理器測試有著很大的借鑒意義。