文/張巨海
PowerFacet電路板大部分問題都出在電路板的控制程序中,也就是在IC4中。因此本文都是圍繞著IC4展開。
(1)IC1為COLDFIRE的XCF5307FT90,IC40/IC80為XILINX的XCR5128TM/VQ100,這兩個都是核心芯片。
(2)核心元器件還有IC4,所有的程序都存儲在IC4里面,型號為29LV800BA(8Mbit)或者29LV160DB(16Mbit),前者的容量是后者的一半;IC4都是3V供電的閃存;而且在Power-Facet中都采用TSOP48封裝。IC4有一個Boot Block(底部位置)、兩個參數(shù)塊和32個主塊。最后一個64K字節(jié)被分成了四個額外的區(qū)塊:16K字節(jié)的啟動塊用來開啟微處理器的小型初始化代碼,兩個8K字節(jié)的參數(shù)塊用來存儲參數(shù),剩余的32K字節(jié)是一個小的Main Block主塊,用來存儲程序。
本文中出現(xiàn)的*.SRE為Motorola S-Record (*.S19),可以通過串行口下載。S-record格式文件是一段直接燒寫進MCU的ASCII碼。其格式如下:
/type/count/address/data/checksum/
其中:
(1)type(類型):2個字符。用來描述記錄的類型 (S0,S1,S2,S3,S5,S7,S8,S9)。本文只介紹與本應(yīng)用有關(guān)的三個記錄類型:
S0 Record:記錄類型S0,表示程序的開始,不需燒入memory。
S3 Record:記錄類型S3,4個字節(jié)地址,數(shù)據(jù)字段包含著要寫入地址的數(shù)據(jù)。
S7 Record:記錄類型S7,4個字節(jié)地址,代表著代碼的起始運行地址,沒有數(shù)據(jù),表示程序的結(jié)束,不需燒入。
一個完整的文件最少包含了一個S0、若干個S1或S2或S3、一個S7或S8或S9語句。我們需要知道的是語句中的地址字節(jié)。
(2)count(計數(shù)):2個字符,一個16進制的值,表示在記錄中剩余成對字符的計數(shù)。
(3)address(地址):4或6或8個字節(jié),一個16進制的值,表示數(shù)據(jù)應(yīng)該裝載的起始地址。
(4)data(數(shù)據(jù)):0到64個字符。用來組成和說明一個代表了內(nèi)存載入數(shù)據(jù)或者描述信息的16進制的值。
(5)checksum(校驗和):2個字符。
XELTEK SUPERPRO Model 580U及其配套軟件SuperPro軟件,TSOP48用適配器SA247-B005,UltraEdit32。
圖1
如圖1所示, 每個PowerFacet板上必須要有BOOT.、INI File、MLOS程序才能正常工作,而BACKUP程序則是在BOOT、INI File、MLOS程序出錯導(dǎo)致無法正常工作時,提供的一個恢復(fù)程序。
每個不同版本的BOOT,都需要與之配套使用的MAIN和BACKUP。例如:BOOT:v2r03,需 要MAIN:v2r13h或 者v2r13l,BACKUP:v2r20d;如果不匹配,那么就會找不到該電路板或者會錯誤操作。
(1)焊下PowerFacet板上的IC4,處理好48個管腳和電路板上IC4的48個觸點;
(2)將焊下來的IC4裝到TSOP48的適配器SA247-B005上,然后連接到580U上,讀出其內(nèi)容并保存,例如保存為IC4-SN(序列號);
(3)根據(jù)IC4的內(nèi)存結(jié)構(gòu)、Terminal方式查看到的PowerFacet板正常的啟動信息,可以得出如下結(jié)論:
Addr 60000000,Package PAC:Boot Created
Addr 60004000,File Allocated (Size 00002000),為MLOS.INI信息
Addr 60006000,File Allocated (Size 00002000),為HWI.INI信息,寫入后不可更改
Addr 60008000,File Allocated (Size 00008000),為USER.INI信息
Addr 60010000,Package PAC:MLOS32 Created
Addr 600C0000,Package PAC:MLOS32B Created
(4)在SuperPro軟件中,“數(shù)據(jù)緩沖區(qū)”->“編輯”->“交換”后,部分內(nèi)容用ASCII容易識別?!岸ㄎ弧钡蕉ㄎ坏刂罚℉ex):4000可見MLOS.INI信息;“定位”到定位地址(Hex):6000可見HWI.INI信息,例如SN等;“定位”到定位地址(Hex):8000可見USER.INI信息,為F4 21 F4 21 04 00 00 00,其它全部為FF。
(5)將保存好的文件中除了保留0x004000h到0x00FFFFh之間的數(shù)據(jù)之外,其它的全部用FF取代,并保存成IC4-SNModified。具體步驟如下:
①在SuperPro軟件中,“填充”->起始地址(Hex)填0,結(jié)束地址(Hex)填3FFF,填充數(shù)據(jù)(Hex)填FF,“確定”;
②“填 充”->起 始 地 址(Hex)填10000,結(jié)束地址(Hex)填1FFFFF,填充數(shù)據(jù)(Hex)填FF,“確定”。這樣除了004000到00FFFF之間的地址范圍以外,全部都用FF填充了。此時校驗和:1FDEE632H。
(6)以下列出了需要配套使用的BOOTP.SRE、mainp2r13l.SRE和MAINPB.SRE每個程序的主要信息:
① BOOTP.SRE,從0x00F00000地址開始,0x00F0187B結(jié)束;下載后的實際地址從0x0000H到0x187BH;
SP580U軟件SUPERPRO編程器軟件->“裝入文件”BOOTP.SRE:其中文件類型:Motorola,文件裝入模式:Normal,數(shù)據(jù)緩沖區(qū)其實位置:0,文件起始地址:F00000,不選用“清緩沖區(qū)”功能,檢驗和:1FCC20C8H。
② mainp2r13l.SRE,從0x00F00000地址開始,到0x00F4E364結(jié)束;下載后的實際地址從0x10000H到0x5E363H;
SP580U軟件SUPERPRO編程器軟件->“裝入文件”mainp2r13l.SRE:其中文件類型:Motorola,文件裝入模式:Normal,數(shù)據(jù)緩沖區(qū)其實位置:0,文件起始地址:F00000-10000=FE0000,不選用“清緩沖區(qū)”功能,檢驗和:1C6A0CEBH。
③ MAINPB.SRE,從0x00F00000開始,到0x00F37A4地址結(jié)束;下載后的實際地址從0xC0000H到0xF27A3H。
SP580U軟件SUPERPRO編程器軟件->“裝入文件”MAINPB.SRE:其中文件類型:Motorola,文件裝入模式:Normal,數(shù)據(jù)緩沖區(qū)其實位置:0,文件起始地址:F00000-C0000=E40000,不選用“清緩沖區(qū)”功能,檢驗和:1A406B60H。
(7)將寫好上述程序的IC4焊回到原來的位置,并確保沒有短路或者漏焊。
經(jīng)過上述方法維修的電路板就可以正常使用了。
該方法對于MPR3000升級的Us-Core電路板,同樣有指導(dǎo)和借鑒意義。