![]() |
|
|
|
|
|
#1 |
|
Master
Join Date: 12th March 2011
Location: г. Челябинск
Posts: 558
Thanks: 25
Thanked 44 Times in 40 Posts
![]() |
Достался мне тут клон Спектрума.
В нем оказалась дохлая ПЗУ и на глазах сдох блок питания. На работе был старенький корпус с блоком питания, вот я и подумал заюзать его. На следующий день принес домой корпус. В нем был блок питания, мамка с процом и пямятью, cd-rom. Блок питания сразу же подрубил к спектруму, все нормально. На мамке стояла флешка Биоса - Pm29F002T-12JC Вот эту флешку я решил и использовать. Осталось найти программатор ![]() Нашел на данном форуме схему программатора на ATMega8515. Дома есть с десяток разных АВР, но как назло нужной меги и не оказалось. А ехать через пол города в промэлектроннику лень ![]() Сперва хотел прошить прямо в мамке, но awdflash как то криво зашил и подвил. В общем только угробил биос. Дальше стал лазить по инету и наткнулся на одну прогу - mtkflash. С помощью ее можно шить флешки в сидюках на чипсете Mediatek. Вот тут то и пригодился сидюк NEC из старого корпуса. Разобрал его, а там как раз стоит чипсет MT1189S и флешка 39sf010a. Сделал загрузочную дискету, залил на нее MTKFLASH.EXE и файл прошивки. Подключил сидюк к компу, перезагрузился с дискеты. Сперва попробовал считать прошивку с флешки, а то вдруг что пойдет не так ![]() Считалось нормально. Далее стер флешку, потом записал в нее свой дамп. Считал дамп, чтоб проверить нормально ли записалось. Все OK. Теперь осталось аккуратно выпаять флешку и воткнуть ее в Спектрум. Потом впаять вместо выпаянной флешки панельку, вдруг опять понадобиться что прошить. В комплекте с прогой есть файлик с поддерживаемыми флешками: Скрытый текст0x00 0x01 WRT_SERIAL 0x80000 0x1000 "SST(SST25VF040)(Serial)"
0x00 0x02 WRT_SERIAL 0x80000 0x10000 "ST(M25P40V6)(Serial)" // 16M-bit (2M bytes) 0xC2 0x49 WRT_JEDEC 0x200000 0x2000 "MXIC(MX29LV160(A)B)(+3.0V)" 0xC2 0xC4 WRT_JEDEC 0x200000 0x2000 "MXIC(MX29LV160(A)T)(+3.0V)" // 8M-bit (1024K bytes) 0xBF 0xD8 WRT_JEDEC 0x100000 0x10000 "SST(SST39LF/VF080)(+3.3V)" 0xC2 0x38 WRT_JEDEC 0x100000 0x10000 "MXIC(MX29LV081)(+3.3V)" 0xC2 0x3E WRT_JEDEC 0x100000 0x2000 "MXIC(MX29LV008T)(+3.3V)" 0xC2 0x37 WRT_JEDEC 0x100000 0x2000 "MXIC(MX29LV008B)(+3.3V)" 0x01 0x3E WRT_JEDEC 0x100000 0x2000 "AMD(AM29LV008BT)(+3.3V)" 0x01 0x37 WRT_JEDEC 0x100000 0x2000 "AMD(AM29LV008BB)(+3.3V)" 0x04 0x5B WRT_JEDEC 0x100000 0x2000 "FUJI(MBM29LV800BA)(+3.3V)" 0x1F 0x21 WRT_JEDEC 0x100000 0x2000 "ATMEL(AT49BV/LV008AT)(+3.3V)" 0xC2 0xDA WRT_JEDEC 0x100000 0x2000 "MXIC(AM29LV800T/AT)(+3.0V)" 0xC2 0x5B WRT_JEDEC 0x100000 0x2000 "MXIC(AM29LV800B/AB)(+3.0V)" 0x37 0x9B WRT_JEDEC 0x100000 0x2000 "AMIC(A29L800B)(+3.0V)" 0x37 0x1A WRT_JEDEC 0x100000 0x2000 "AMIC(A29L800T)(+3.0V)" 0x7F 0x21 WRT_JEDEC 0x100000L 0x1000 "ACTRANS(AC39VF080)(+3.0V)" 0x20 0x5B WRT_JEDEC 0x100000 0x10000 "ST(M29W800)(+3.0V)" // 4M-bit (512K bytes) 0xAD 0xA4 WRT_JEDEC 0x80000 0x10000 "HYNIX(HY29F040)(+5.0V)" 0x37 0x34 WRT_JEDEC 0x80000 0x2000 "AMIC(A29L004T)(+3.3V)" // Top Boot Block 0x37 0xB5 WRT_JEDEC 0x80000 0x2000 "AMIC(A29L004U)(+3.3V)" // Bottom Boot Block 0x37 0x86 WRT_JEDEC 0x80000 0x10000 "AMIC(AM29040A)(+5.0V)" 0x1F 0x13 WRT_JEDEC 0x80000 0x4000 "ATMEL(AT49F040)(+5.0V)" 0x1F 0x12 WRT_JEDEC 0x80000 0x4000 "ATMEL(AT49BV/LV040T)(+3.3V)" 0x1C 0x04 WRT_JEDEC 0x80000 0x10000 "EON(EN29F040)(+5.0V)" // ManuID(000h) = 0x7F DevID(000h) = 0x7F 0x7F 0xAE WRT_JEDEC 0x80000 0x400 "IMT(IM29F004B)(+5.0V)" // Bottom Boot Block 0x7F 0xAF WRT_JEDEC 0x80000 0x400 "IMT(IM29F004T)(+5.0V)" // Top Boot Block 0x8C 0x4F WRT_JEDEC 0x80000 0x400 "EFST(F49L040A)(+3.0V)" // Top Boot Block 0xC2 0xB6 WRT_JEDEC 0x80000 0x2000 "MXIC(MX29LV004B)(+3.3V)" // Bottom Boot Block 0x04 0xB6 WRT_JEDEC 0x80000 0x2000 "Fuji(MBM29LV004BC)(+3.3V)" // Bottom Boot Block 0xC2 0xB5 WRT_JEDEC 0x80000 0x2000 "MXIC(MX29LV004T)(+3.3V)" // Top Boot Block 0xC2 0x4F WRT_JEDEC 0x80000 0x10000 "MXIC(MX29LV040)(+3.3V)" 0xC2 0xA4 WRT_JEDEC 0x80000 0x10000 "MXIC(MX29F040)(+5.0V)" 0xC2 0x46 WRT_JEDEC 0x80000 0x2000 "MXIC(MX29F004B)(+5.0V)" // Bottom Boot Block 0xC2 0xB9 WRT_JEDEC 0x80000 0x2000 "MXIC(MX29LV400T)(+3.3V)" 0xC2 0xBA WRT_JEDEC 0x80000 0x2000 "MXIC(MX29LV400B)(+3.3V)" 0xBF 0xD7 WRT_JEDEC 0x80000 0x1000 "SST(SST39LV/VF040)(+3.3V)" 0xBF 0xB7 WRT_JEDEC 0x80000 0x1000 "SST(SST39SF040)(+5.0V)" 0xBF 0x87 WRT_JEDEC 0x80000 0x1000 "SST(SST39VF040)(+3.3V)" 0x20 0xEF WRT_JEDEC 0x80000 0x2000 "ST(M29W400BB)(+3.3V)" 0x9D 0x3E WRT_JEDEC 0x80000 0x1000 "PMC(PM39LV040)(+3.0V)" 0xDA 0x46 WRT_ATMEL 0x80000 0x100 "WINBOND(W29C040)(+5.0V)" 0xDA 0xB6 WRT_JEDEC 0x80000 0x10000 "WINBOND(W39L040)(+3.3V)" 0x9D 0x4E WRT_JEDEC 0x80000 0x1000 "PMC(PM39F040)(+5.0V)" 0x1C 0x4F WRT_JEDEC 0x80000 0x10000 "EON(EN29LV040)(+3.3V)" 0x37 0x92 WRT_JEDEC 0x80000 0x10000 "AMIC(A29L040)(+3.0V)" // 2M-bit (256K bytes) 0x37 0x8C WRT_JEDEC 0x40000 0x2000 "AMIC(A29002L)" 0x37 0x0D WRT_JEDEC 0x40000 0x2000 "AMIC(A29002U)" 0x1F 0x07 WRT_JEDEC 0x40000 0x2000 "ATMEL(AT49F002(N))" // Bottom Boot Block 0x1F 0x08 WRT_JEDEC 0x40000 0x2000 "ATMEL(AT49F002(N)T)" // Top Boot Block 0x8C 0x00 WRT_JEDEC 0x40000 0x2000 "EFST(F49B002UA)" 0x1C 0x92 WRT_JEDEC 0x40000 0x2000 "EON(EN29F002/EN29F002NT)" // ManuID(000h) = 0x7F DevID(000h) = 0x7F 0x1C 0x97 WRT_JEDEC 0x40000 0x2000 "EON(EN29F002/EN29F002NB)" // ManuID(000h) = 0x7F DevID(000h) = 0x7F 0xAD 0xB0 WRT_JEDEC 0x40000 0x10000 "HYUNDAI(HY29F002T)" // Top Boot Block 0x7F 0xA1 WRT_JEDEC 0x40000 0x200 "IMT(IM29002T)" // Top Boot Block 0x7F 0xA2 WRT_JEDEC 0x40000 0x200 "IMT(IM29002B)" // Bottom Boot Block 0x7F 0xAF WRT_JEDEC 0x40000 0x200 "MOSEL(V29C51002T)/SYNCMOS(F29C51002T)" // Top Boot Block 0x40 0x02 WRT_JEDEC 0x40000 0x200 "MOSEL(V29C51002T)/SYNCMOS(F29C51002T)" // Top Boot Block 0x40 0xA2 WRT_JEDEC 0x40000 0x200 "MOSEL(V29C51002B)/SYNCMOS(F29C51002B)" // Bottom Boot Block 0xC2 0xB0 WRT_JEDEC 0x40000 0x2000 "MXIC(MX29F002T)" // Top Boot Block 0xC2 0x34 WRT_JEDEC 0x40000 0x2000 "MXIC(MX29F002B)" // Bottom Boot Block 0x9D 0x1D WRT_JEDEC 0x40000 0x20000 "PMC(PM29F002T)" // Top Boot Block 0xBF 0xB6 WRT_JEDEC 0x40000 0x1000 "SST(SST39SF020)" 0xBF 0xD6 WRT_JEDEC 0x40000 0x1000 "SST(SST39VF020)" 0xDA 0x0B WRT_JEDEC 0x40000 0x20000 "WIBOND(W49F002U)" 0xDA 0x45 WRT_ATMEL 0x40000 0x80 "WINBOND(W29C020CP)" 0xDA 0xB5 WRT_JEDEC 0x40000 0x1000 "WINBOND(W39L020)" 0x01 0x34 WRT_JEDEC 0x40000 0x1000 "AMD(AM29F002BB)" 0x9D 0x3E WRT_JEDEC 0x80000 0x1000 "PMC(PM39LV020)(+3.0V)" 0x9D 0x4D WRT_JEDEC 0x80000 0x1000 "PMC(PM39F020)(+5.0V)" // 1M-bit (128K bytes) 0x01 0x6E WRT_JEDEC 0x20000 0x4000 "AMD(AM29LV010)" 0x01 0x20 WRT_JEDEC 0x20000 0x4000 "AMD(AM29F010)/NEX(NX29F010)" 0x01 0xED WRT_JEDEC 0x20000 0x1000 "AMD(AM29LV001BT)" 0x01 0x6D WRT_JEDEC 0x20000 0x1000 "AMD(AM29LV001BB)" 0x9D 0x1C WRT_JEDEC 0x20000 0x1000 "PMC(PM39LV010R)" 0x37 0xA1 WRT_JEDEC 0x20000 0x1000 "AMIC(A29001/290011)" 0x37 0x4C WRT_JEDEC 0x20000 0x1000 "AMIC(A29001/290011U)" 0x1F 0xD5 WRT_ATMEL 0x20000 0x80 "ATMEL(AT29C010A)" 0x1F 0x05 WRT_JEDEC 0x20000 0x2000 "ATMEL(AT49F001N)" // Bottom Boot Block 0x1F 0x04 WRT_JEDEC 0x20000 0x2000 "ATMEL(AT49F001NT)" // Top Boot Block 0x40 0x01 WRT_JEDEC 0x20000 0x200 "MOSEL(V29C51001T)/SYNCMOS((F29C51001T)" // Top Boot Block 0x40 0xA1 WRT_JEDEC 0x20000 0x200 "MOSEL(V29C51001B)/SYNCMOS((F29C51001B)" // Bottom Boot Block 0xC2 0x18 WRT_JEDEC 0x20000 0x1000 "MXIC(MX29F001T)" // Top Boot Block 0xC2 0x19 WRT_JEDEC 0x20000 0x1000 "MXIC(MX29F001B)" // Bottom Boot Block 0xBF 0x01 WRT_JEDEC 0x20000 0x1000 "SST(SST27SF010)" 0xBF 0x07 WRT_ATMEL 0x20000 0x80 "SST(SST29EE010)" 0xBF 0xD5 WRT_JEDEC 0x20000 0x1000 "SST(SST39VF010)" 0xBF 0xB5 WRT_JEDEC 0x20000 0x1000 "SST(SST39SF010)" 0x7F 0xA0 WRT_JEDEC 0x20000 0x200 "IMT(IM29001T)" // Top Boot Block 0x7F 0xA3 WRT_JEDEC 0x20000 0x200 "IMT(IM29001B)" // Bottom Boot Block 0xDA 0xC1 WRT_ATMEL 0x20000 0x80 "WINBOND(W29C011A)" 0xDA 0x06 WRT_ATMEL 0x20000 0x80 "WINBOND(W29EE011P)" 0xDA 0xA1 WRT_JEDEC 0x20000 0x1000 "WINBOND(W39F010)" 0x20 0x20 WRT_JEDEC 0x20000 0x4000 "ST(M29F010B)" 0x1C 0x20 WRT_JEDEC 0x20000 0x4000 "EON(EN29F010)" 0x9D 0x4C WRT_JEDEC 0x80000 0x1000 "PMC(PM39F010)(+5.0V)" // 512K-bit (64K bytes) 0x1F 0x03 WRT_JEDEC 0x10000 0x10000 "ATMEL(AT49F512)" 0x1F 0x5D WRT_ATMEL 0x10000 0x80 "ATMEL(AT29C512)" 0x1F 0x3D WRT_ATMEL 0x10000 0x80 "ATMEL(AT29LV512)" 0xC2 0x17 WRT_JEDEC 0x10000 0x1000 "MXIC(MX29F512T)" 0xBF 0x5D WRT_ATMEL 0x10000 0x80 "SST(SST29EE512)" 0xBF 0xB4 WRT_JEDEC 0x10000 0x1000 "SST(SST39SF512)" 0xBF 0xD4 WRT_JEDEC 0x10000 0x1000 "SST(SST39VF512)" 0xDA 0xC8 WRT_ATMEL 0x10000 0x80 "WINBOND(W29C512A/W29EE512)" 0x1C 0x21 WRT_JEDEC 0x10000 0x80 "EON(EN29F512)" 0xf6 0x56 WRT_JEDEC 0x10000 0x10000 "WINBOND(W27E512)" // Unknown Type 0xFF 0xFF WRT_ATMEL 0x80000 0 "Unknown Flash Memory" [свернуть] Last edited by _Ratibor_; 29th March 2011 at 21:10. |
|
|
|
| The Following 2 Users Say Thank You to _Ratibor_ For This Useful Post: | John North (30th March 2011), murgatroid_79 (2nd July 2011) |
|
|
#2 |
|
Activist
Join Date: 18th September 2009
Location: г. Витебск
Posts: 333
Thanks: 194
Thanked 45 Times in 41 Posts
![]() |
Для прошивки в матерях лучше использовать Uniflash, он позволяет переписать польностью чип. Awdflash и amiflash нужно пробовать, во всяком случае у меня "левый" биос удалось зашить Uniflash.
|
|
|
|
|
|
#3 | |
|
Master
Join Date: 12th March 2011
Location: г. Челябинск
Posts: 558
Thanks: 25
Thanked 44 Times in 40 Posts
![]() |
Quote:
Нужно дергать флешки на лету, а это не есть гуд. А так вытащил платку из сидюка, припаял панельку и получился фактически нормальный программатор. |
|
|
|
|
|
|
#4 |
|
Veteran
Join Date: 19th December 2008
Location: Черкассы
Posts: 1,498
Thanks: 329
Thanked 416 Times in 287 Posts
![]() ![]() ![]() ![]() ![]() |
Я чёт не увидел команды как стереть. (В англицком я не очень...)
__________________
Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash. Pentagon 128(1991г.)+YМ программатор 2732-27512. |
|
|
|
|
|
#5 |
|
Master
Join Date: 12th March 2011
Location: г. Челябинск
Posts: 558
Thanks: 25
Thanked 44 Times in 40 Posts
![]() |
Просто запустите программу без параметров, она выдаст весь список команд.
Скрытый текстc:\flash>mtkflash MTKFLASH by Joseph Lin, MTK 1998 (Ver 1.83c) Ex1: MTKFLASH <R|W|E|C|UW> [/C] [/O XXXXX YYYYY [/F]] [/Ax] [/T] <file list> R: Read FLASH W: Write FLASH E: Erase FLASH C: Only check FLASH & Unlock WINBOND(W29C040) UW: UP FLASH DW: DSP WRITE DR: DSP READ SR: Read ICE28LF010 FLASH SW: Write ICE28LF010 FLASH /Ax: x = Bank Number from 0 to 15. Default: Bank0 /U: Auto Write Flash (for MT1198 + PAGE WRITE Flash ROM only) /M: Read(Write) multi-bank data into(from) one merged file /T: Show FLASH Download Time in Write FLASH mode /C: Check FLASH & Unlock WINBOND(W29C040) /O: Skip FLASH OPC Area, and OPC Area save to pwrcur.bin /F: OPC Area read from file pwrcur.bin /SATA: SATA interface /ST: ST Micron Serial FLASH /SST: SST Serial Flash (Default Setting) XXXXX: Start address of FLASH OPC Area(5-digit in HEX). Default: 1F000h YYYY: Length of FLASH OPC Area(4-digit in HEX). Maximum: 8000h [свернуть] Last edited by _Ratibor_; 30th March 2011 at 21:55. |
|
|
|
| The Following User Says Thank You to _Ratibor_ For This Useful Post: | lisica (30th March 2011) |
|
|
#6 |
|
Veteran
Join Date: 19th December 2008
Location: Черкассы
Posts: 1,498
Thanks: 329
Thanked 416 Times in 287 Posts
![]() ![]() ![]() ![]() ![]() |
Спасибо. Ещё бы коменты на русском...
__________________
Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash. Pentagon 128(1991г.)+YМ программатор 2732-27512. |
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|