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