Speccy - наш выбор!  
ZXPRESS
ZXTUNES
Virtual TR-DOS
World of Spectrum
ZX Spectrum Old Demos •

Go Back   Speccy - наш выбор! > ZX Spectrum Hardware > Память

Reply
 
Thread Tools Display Modes
Old 29th March 2011, 21:04   #1
Master
 
_Ratibor_'s Avatar
 
Join Date: 12th March 2011
Location: г. Челябинск
Posts: 558
Thanks: 25
Thanked 44 Times in 40 Posts
_Ratibor_ will become famous soon enough
Default Программирование флэшек с помощью CD-ROM

Достался мне тут клон Спектрума.
В нем оказалась дохлая ПЗУ и на глазах сдох блок питания.

На работе был старенький корпус с блоком питания, вот я и подумал заюзать его.
На следующий день принес домой корпус.
В нем был блок питания, мамка с процом и пямятью, 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.
_Ratibor_ is offline   Reply With Quote
The Following 2 Users Say Thank You to _Ratibor_ For This Useful Post:
John North (30th March 2011), murgatroid_79 (2nd July 2011)
Old 30th March 2011, 19:12   #2
Activist
 
Join Date: 18th September 2009
Location: г. Витебск
Posts: 333
Thanks: 194
Thanked 45 Times in 41 Posts
Vasily will become famous soon enough
Default

Для прошивки в матерях лучше использовать Uniflash, он позволяет переписать польностью чип. Awdflash и amiflash нужно пробовать, во всяком случае у меня "левый" биос удалось зашить Uniflash.
Vasily is offline   Reply With Quote
Old 30th March 2011, 19:32   #3
Master
 
_Ratibor_'s Avatar
 
Join Date: 12th March 2011
Location: г. Челябинск
Posts: 558
Thanks: 25
Thanked 44 Times in 40 Posts
_Ratibor_ will become famous soon enough
Default

Quote:
Originally Posted by Vasily View Post
Для прошивки в матерях лучше использовать Uniflash, он позволяет переписать польностью чип. Awdflash и amiflash нужно пробовать, во всяком случае у меня "левый" биос удалось зашить Uniflash.
Все это шаманство с бубном.
Нужно дергать флешки на лету, а это не есть гуд.
А так вытащил платку из сидюка, припаял панельку и получился фактически нормальный программатор.
_Ratibor_ is offline   Reply With Quote
Old 30th March 2011, 21:28   #4
Veteran
 
lisica's Avatar
 
Join Date: 19th December 2008
Location: Черкассы
Posts: 1,498
Thanks: 329
Thanked 416 Times in 287 Posts
lisica is just really nicelisica is just really nicelisica is just really nicelisica is just really nicelisica is just really nice
Default

Quote:
Originally Posted by _Ratibor_ View Post
Далее стер флешку,
Я чёт не увидел команды как стереть. (В англицком я не очень...)
__________________
Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
Pentagon 128(1991г.)+YМ
программатор 2732-27512.

lisica is offline   Reply With Quote
Old 30th March 2011, 21:53   #5
Master
 
_Ratibor_'s Avatar
 
Join Date: 12th March 2011
Location: г. Челябинск
Posts: 558
Thanks: 25
Thanked 44 Times in 40 Posts
_Ratibor_ will become famous soon enough
Default

Quote:
Originally Posted by lisica View Post
Я чёт не увидел команды как стереть. (В англицком я не очень...)
Просто запустите программу без параметров, она выдаст весь список команд.

Скрытый текст


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.
_Ratibor_ is offline   Reply With Quote
The Following User Says Thank You to _Ratibor_ For This Useful Post:
lisica (30th March 2011)
Old 30th March 2011, 22:08   #6
Veteran
 
lisica's Avatar
 
Join Date: 19th December 2008
Location: Черкассы
Posts: 1,498
Thanks: 329
Thanked 416 Times in 287 Posts
lisica is just really nicelisica is just really nicelisica is just really nicelisica is just really nicelisica is just really nice
Default

Спасибо. Ещё бы коменты на русском...
__________________
Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
Pentagon 128(1991г.)+YМ
программатор 2732-27512.

lisica is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 18:05.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Map Яндекс.Метрика