Прошивка flash-памяти 25xxx через программатор USBasp | ПЛК и АСУТП

Микросхемы флеш-памяти eeprom серии 25xxx широко применяются в микроэлектронике. В частности, в современных телевизорах и материнских платах в 25xxx хранится прошивка биоса. Перепрошивка 25xxx осуществляется по интерфейсу SPI, в чем и заключается отличие этих микросхем от флеш-памяти семейства 24xxx, которые шьются по i2c(квадратная шина).

Соответственно, для чтения/стирания/записи 25xxx нужен SPI-программатор. Одним из самых дешевых вариантов программаторов для этой цели является USBasp, который стоит смешные деньги- с доставкой всего около 2$ на ебее. В свое время я купил себе такой для программирования микроконтроллеров. Теперь мне понадобилось прошить не микроконтроллер, а SPI-флеш и решено было им воспользоваться.

Оказалось, что сам по себе USBasp с оригинальной прошивкой такую память не шьет, но отечественный программист с ником Tifa (низкий поклон ему и долгих лет жизни) модернизировал прошивку USBasp специально для обеспечения возможности работы с флеш-памятью. Постоянная ветка обсуждения альтернативной прошивки USBasp от Tifa, связь с автором и ссылки на файлы тут: http://forum.easyelectronics.ru/viewtopic.php?f=17&t=10947

Забегая вперед скажу, что прошивка от Tifa работает, микросхемы 25xxx шьются. Кстати, кроме 25xxx, модифицированный программатор рассчитан на работу с 24xxx и Microwire.

 

1. Перепрошивка USBasp

Сначала нужно замкнуть контакты J2:
usbasp-1

Лично я не просто замкнул, а впаял в контакты переключатель:
USBAsp

При замкнутых контактах J2 (это у меня переключатель в положении вправо) USBasp переходит в режим готовности к перепрошивке.

Сам себя USBap перепрошить не может, поэтому нужен еще один программатор. USBasp как бы оказывается в положении хирурга, который не может сам себе вырезать аппендикс и просит друга помочь. Для перепрошивки USBasp я использовал самодельный программатор AVR910, но для одного раза можно по-быстрому за пару минут спаять программатор «5 проводков», который состоит всего-лишь  из одного разъема LPT и 5 резисторов.

Подключаем программатор к USBasp:
USBAsp firmware update

Теперь идем на форум альтернативной прошивки от Tifa, в самом верхнем посте находим и качаем архив с последней прошивкой  и ПО.
firmware_tifa

Находим там файл mega8.hex, это и есть альтернативная прошивка для USBasp.

Запускаем CodeVisionAvr (я использую версию 2.0.5), выставляем настройки программатора: Settings-> Programmer.
usbasp-fwr-01

Устанавливаем настройки записи: Tools->Chip programmer. Выбираем чип Atmega8L, именно такой стоит на USBasp. Фьюзы не выставляем- те, что надо, уже прошиты в чипе. Остальные настройки оставляем по умолчанию.
usbasp-fwr-02

Стираем старую программу USBasp: Program-> Erase chip.

Открываем файл прошивки mega8.hex: File-> Load flash.

Перепрошиваем USBasp: Program-> Flash.
usbasp-fwr-03

Если прошла запись и не выдало сообщение об  ошибке, значит альтернативная прошивка благополучно прошита в USBasp. Теперь USBasp может не только шить AVR-микроконтроллеры, как раньше, но еще и работать с флеш-памятью. Размыкаем контакты J2, что бы USBasp снова перешел в режим программатора.

Теперь проверим, видит ли Windows 7 x86 этот программатор. Вставляем USBasp в USB и… система пишет «USBasp не удалось найти драйвер». Понятно, нужно установить драйвер. Но драйверов в скачанном на форуме архиве нет, их нужно скачать на родном сайте USBasp тут, оригинальные драйвера подходят и для модифицированного программатора. Скачали, установили, Win7 увидела программатор, все ок. Впрочем, я программирую микроэлектронику на ноутбуке с WinXP, она тоже после установки драйверов видит программатор.

 

 2. Площадка для подключения USBasp к микросхеме 25xxx DIP

Теперь нужно подготовить площадку для программирования 25xxx. Я это сделал на макетной плате по такой схеме:
Схема подключения USBAsp к 25xxx

 

3. Прошивка микросхем 25xxx через USBasp

Для прошивки 25xxx через модифицированный USBasp используется программа AsProgrammer, которая тоже есть в архиве.

Для примера, поработаем с микросхемой Winbond 25×40.  Запускаем AsProgrammer, ставим режим работы SPI и выбираем тип микросхемы: Микросхема-> SPI-> Winbond->…
asprogrammer-1

… и видим, что W25X40 в списке нет. Что же, тогда заполним параметры микросхемы вручную. Находим мануал на Winbond 25X40 и там на странице 4 видим такие параметры:
w25x40-params

Эти параметры вносим сюда:

Подключаем USBasp к компьютеру и микросхеме Winbond 25×40:
usbasp-25xxx

С помощью кнопок «прочитать», «записать», «стереть», проверяем работу программатора:
asprogrammer-r-w-e

Все ок.

Только нужно учесть, что перед тем, как что-то записать в микросхему, сначала нужно выставить: Настройки-> Проверка записи, что бы после записи прошивки в микросхему была выполнена проверка на соответствие того, что писали тому, что в итоге записали. Это немаловажная вещь, потому что если прошивку делать не на очищенный чип, в него запишется чёрт-те что. Поэтому сначала нужно стереть микросхему, а затем только проводить ее запись.

Благодаря прошивке от Tifa дешевый китайский программатор USBasp теперь умеет работать с микросхемами flash-памяти eeprom 25xxx. Теоретически еще может работать c 24xxx и Microwire, но я проверил только работу с 25xxx.

UPD1:
Оказывается, такую же прошивку можно записать и в программатор AVR910. Тогда он тоже будет работать с flash-памятью 25xxx: Программатор ISP памяти из AVR910.

38 комментариев: Прошивка flash-памяти 25xxx через программатор USBasp

  • Дмитрий говорит:

    Доброго времени!Подскажите,собрал этот программатор,опробовал на памяти 24С04,всё пишется,стирается,читается,в общем отлично,но есть вопрос:в этом программаторе обозначения выхода как на Атмелки,а тут память,у неё по даташиту другое обозначение ног,мне нужно прочесть микросхему 95128,как её правильно подключить,чёт толком не нашол ни чего.Спасибо.

  • Алексей говорит:

    95128 это еепром 25ххх в корпусе SOIC. Схема подключения к программатору такая же, как и у микросхемы 25×40 DIP, которую я указал в статье. На счет переходника не знаю.

  • Дмитрий говорит:

    Спасибо за отзыв,просто у меня программатор самодельный,контроллер стоит в нём в SMD корпусе,по даташиту у микросхемы 95128 по ножкам другое обозначение чем в программаторе,в программаторе выходы:miso,mosi,sck,reset,плюс и минус мне понятно,а вот на микрухе мне не понятно как их подключать,в принципе с микроконтроллерами не плохо знаком,а с такой памятью впервые сталкиваюсь,не хочется убить родную микросхему не правильным подключением,хочу вычитать ПИН код со своего BSI,для привязки новых ключей.На сайте чья прошивка для этого программатора зарегистрировался,а активизироваться не могу,на имейл не приходит письмо,вот и пришлось здесь спросить.

  • Дмитрий говорит:

    Если не тяжело распишите куда какие ноги микрухи подключить к каким выводам в программаторе.Ещё раз Спасибо.Удачи.

  • Алексей говорит:

    На схеме в статье 25X40 в корпусе DIP, ее распиновка: http://www.datasheetcafe.com/25×40-datasheet-serial-flash-memory-winbond/
    Пины: SC,DO,WP,GND,DIO,CLK,HOLD,VCC

    Документация на 95128: http://www.st.com/web/en/resource/technical/document/datasheet/CD00001441.pdf распиновка- стр. 7.
    Пины: S,Q,W,Vss,D,C,HOLD,Vcc

    Вывод: распиновка указанной в статье микросхемы 25X40 соответствует вашей 95128, обе они еепром 25ххх а значит и схема подключения будет одинакова.
    Пробуйте, удачи.

  • Дмитрий говорит:

    у меня программатор самодельный и его выход отличается от Вашего китайського,мне нужно выходы miso,mosi и т.д.подключить к этой микросхеме,какие выводы куда?

  • Дмитрий говорит:

    Ещё такой вопрос,в архиве что скачивал нашол подключение 25ххх,там есть ещё дополнительные резисторы на 10к,тут у Вас ноги микросхемы напрямую идут на программатор,или это без разницы?Спасибо.

    • Алексей говорит:

      Я сначала на форуме нашел ту схему, по которой собрал площадку. Проверил- работает. Потом только тоже увидел в архиве схему с резисторами. С резисторами будет безопаснее, наверное.

  • Дмитрий говорит:

    Спасибо,теперь только сталось с машины блок управления дёрнуть и прочитать содержимое памяти.Удачи.

  • Дмитрий говорит:

    Ещё раз Добрый вечер.Всёж задушил жабу и дёрнул блок с машины,прочитал эту микросхему,ПИН код нашол,всё отлично,пробовал закидать разные названия микросхем,в одной читает быстро там и нашол пин код,в другой минут 15,так вопрос:какую всё же нужно вбивать микросхему?не могу сам задать вопрос автору этой прошивки,зарегистрировался там,а ответа на имейл для завершения регистрации так и не получил,может напишете Автору пожелание добавить 95128,в программе тоже не нашол 25128.спасибо.

    • Алексей говорит:

      Я там вообще не зарегистрирован. Нужные данные по вашей микросхеме приведены в документации на первой странице вверху.

    • Jacobo говорит:

      а с какой машины блок? можно ли таким же способом прочесть, подкорректировать бинарник (типа тюнинг) ? хочу со своей что то сделать

  • Jacobo говорит:

    все получилось, спасибо вам большое.прошил и 25 и 24 серии. только вот для 25 пришлось по питанию чипа и cs-gnd повесить кондер, иначе шли помехи.а на 24 нужно сигнальные ножки подтянуть к питанию через резисторы, и тоже будет счастье !

    • Jacobo говорит:

      у тебя JP2- для самопрограммирования( self programing), и его надо замкнуть для прошивки. JP3 — замедляет частоту работы мк ( при прошивке некоторых мк это критично).

    • Jacobo говорит:

      тьфу ты, не туда смотрел, правильно будет JP1- самопрограммирование, JP2- выбор питания (5/3.3), JP3- понижение рабочей частоты.

  • Олег говорит:

    Добрый день можно ли им прошить flash 25Q16B ,N25S16 от китайского видеорегистратора

  • АЛЕКСАНДР говорит:

    зделал все как написано работает но очень долго шьет 4мб 1.5часа что может быть за причина.на какомто сайте читал что этот программатор можно использовать как JTAG но не нашол ни описания ни схемы подкючения. правда ли это и если да то как. за ранее благодарю з ответ.

    • Алексей говорит:

      1.5 часа он шить не должен. Провод от программатора до микросхемы должен быть максимально коротким, до 10-15 см.
      Как использовать в режиме JTAG, увы не знаю.

  • Юрий говорит:

    Перепрошил AVR910. Стал видеться как USBAsp, дрова на 10-ку тоже встали. Но при попытке прочесть W25Q128BVF программа пишет «Ошибка подключения к USBAsp(3). Что может быть?

    • Александр говорит:

      УРА!!! Ошибка выскакивала на 10винде, взял другой ноут с ХР и все получилось!!!

  • Альберт говорит:

    При попытке прочесть W25Q128BV программа пишет «Ошибка подключения к USBAsp(3). Дрова ставил по ссылке из шапки —> Zadig — USB driver installation made easy

    • Александр говорит:

      УРА!!! Ошибка выскакивала на 10винде, взял другой ноут с ХР и все получилось!!!

  • Александр говорит:

    При любом раскладе, что бы я не пытался прочесть или записать выскакивает одна и та-же ошибка как и предыдущих пользователей «Ошибка подключения к USBAsp(3)». Уж чего я только не делал… Походу просто программа не видит программатор.

  • Александр говорит:

    УРА!!! Ошибка выскакивала на 10винде, взял другой ноут с ХР и все получилось!!!

  • kalala говорит:

    При программировании USB палку закончил это сообщение
    ID(9F): 9FFFFF(Неизвестно)
    ID(90): FFFF(Неизвестно)
    ID(AB): FF(Неизвестно)
    libusb0-dll:err [control_msg] sending control message failed, win error: Un périphérique attaché au système ne fonctionne pas correctement.

    Данная версия прошивки не поддерживается!

    • intel говорит:

      intel.kore2017@yandex.ua Прошу дорогой товарищ сообщить мне как поклон издателю передать?
      он вроде с 12 года не в сети.
      короче прёт!!!
      вобщем так..
      купил я новую матку Z170-K на скаилаике и чтобы неупарываться и не упарывать биос заказал на
      алисекс флехи
      Бесплатная доставка 2 шт./лот W25Q128FV рексов ща 400 с лишним если учесть что одна у нас стоит 500
      и того примерно 200 штука а прошитая 1000-1500
      попробовал я USBASP и купил но не за 2 бакса а 73,38 руб. / шт. ссылка
      https://www.aliexpress.com/item/1LOT-New-USBASP-USBISP-AVR-Programmer-USB-ISP-USB-ASP-ATMEGA8-ATMEGA128-Support-Win7-64/32727211265.html?spm=2114.13010608.0.0.I7ldEg
      прошил данной прошивко указанного автора и попробовал
      ………………….
      скачаный биос с оф саита только для обновления с рабочим биосом.бекап Биоса деал через Universal BIOS Backup ToolKit 2.0
      тоже непомогло..
      в результате на включеном компе зверски выдрнул жалкую микруху из её худощавой панельки прямо на ходу при запущенной винде
      (так как она т.е микруха биос нужна только при старте самой матки) и подключив тупо прогер с данной модипрошой скопировал её кишки в укромное место.запихнул новую флеху и старт..39 минут пипец.переткнул флеху,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
      И О ЧУДО !!!!!!!!!!!!!! БИБОБИК ЗАТАЩИЛ!!!!
      вобщем что я могу сказать..прошивку прогера лично проверил на своём юсбасп шил биос лично своей матки которая стоит 8.000
      и получается пока только копировние но и обновить без страха моу т к у меня в резерве всегда родная микруха
      а как алтернативными прошивками прошить я и заимусь теперь когда запас есть на ошибку………
      самое главное что прогер шьёт а вот прошивки..исходники …уж парьтесь сами..
      ps вы дорогие читатели ну что вы тупите?какая распиновка по даташиту?! если трассировка указана именно вашей микрухе то тупо следуйте ей
      по дату смотрите только питание и не тупите как последние раки.

Добавить комментарий

Ваш e-mail не будет опубликован.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:
Confirm that you are not a bot - select a man with raised hand:

Подпишитесь на нашу рассылку


Copyright © 2016. Перцух Алексей

Индекс цитирования