Важная информация

User Tag List

Показано с 1 по 6 из 6

Тема: Программирование флэшек с помощью CD-ROM

  1. #1
    Master Аватар для _Ratibor_
    Регистрация
    12.03.2011
    Адрес
    г. Челябинск
    Сообщений
    558
    Благодарностей: 44
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Программирование флэшек с помощью 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"
    [свернуть]
    Последний раз редактировалось _Ratibor_; 29.03.2011 в 20:10.

  2. Эти 2 пользователя(ей) поблагодарили _Ratibor_ за это полезное сообщение:
    John North (30.03.2011), murgatroid_79 (02.07.2011)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Activist
    Регистрация
    18.09.2009
    Адрес
    г. Витебск
    Сообщений
    459
    Благодарностей: 89
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для прошивки в матерях лучше использовать Uniflash, он позволяет переписать польностью чип. Awdflash и amiflash нужно пробовать, во всяком случае у меня "левый" биос удалось зашить Uniflash.

  5. #3
    Master Аватар для _Ratibor_
    Регистрация
    12.03.2011
    Адрес
    г. Челябинск
    Сообщений
    558
    Благодарностей: 44
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vasily Посмотреть сообщение
    Для прошивки в матерях лучше использовать Uniflash, он позволяет переписать польностью чип. Awdflash и amiflash нужно пробовать, во всяком случае у меня "левый" биос удалось зашить Uniflash.
    Все это шаманство с бубном.
    Нужно дергать флешки на лету, а это не есть гуд.
    А так вытащил платку из сидюка, припаял панельку и получился фактически нормальный программатор.

  6. #4
    Veteran Аватар для lisica
    Регистрация
    19.12.2008
    Адрес
    Черкассы
    Сообщений
    1,507
    Благодарностей: 390
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


  7. #5
    Master Аватар для _Ratibor_
    Регистрация
    12.03.2011
    Адрес
    г. Челябинск
    Сообщений
    558
    Благодарностей: 44
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lisica Посмотреть сообщение
    Я чёт не увидел команды как стереть. (В англицком я не очень...)
    Просто запустите программу без параметров, она выдаст весь список команд.

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


    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
    [свернуть]
    Последний раз редактировалось _Ratibor_; 30.03.2011 в 20:55.

  8. Этот пользователь поблагодарил _Ratibor_ за это полезное сообщение:
    lisica (30.03.2011)

  9. #6
    Veteran Аватар для lisica
    Регистрация
    19.12.2008
    Адрес
    Черкассы
    Сообщений
    1,507
    Благодарностей: 390
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •