Spi flash программатор своими руками



программатор spi flash из Arduino UNO

Насколько я знаю, плата Arduino UNO после загрузки в неё специальной программы действительно может быть использована вместо ISP программатора для AVR микроконтроллеров! А вот подойдёт ли она для других мелкосхем?
Читал, что народные умельцы умудряются перепрошивать SPI мелкосхемы через обычный LPT порт с помощью нескольких проводков и резисторов (для защиты от короткого замыкания и/или неправильного подключения).

Но, если хотите прошивать SPI флешки без «танцев с бубном», то нужен хотя бы простейший SPI программатор (например такой).
Но обратите внимание — он поддерживает далеко не все модели SPI флешек!
Если Вам приходится часто перепрошивать микросхемы, лучше купить универсальный программатор. Один из самых доступных и функциональных MiniPro TL866.
Есть две версии:
1. Одна с поддержкой внутрисхемного программирования TL866A
2. Другая — без неё TL866CS

P.S.: Народные умельцы уже научились переделывать TL866CS в TL866A! Но учтите, что для такой переделки понадобится не просто запаять в программатор ISP разъём, но и «перепрошить» его!

Цитата: Программатор SPI Flash своими руками
В общем это нужно чтобы перепрошивать 8 ножные SPI флешки. А это в свою очередь нужно чтобы восстанавливать роутеры, сбрасывать пароли на биосы и восстанавливать их, и много чего еще.
Будем делать за 10 минут самый простой программатор своими руками на Ардуино 🙂 Понадобится Arduino Pro Micro

Технохрень

Рубрики

Еще по теме

Программатор SPI Flash своими руками

В общем это нужно чтобы перепрошивать 8 ножные SPI флешки. А это в свою очередь нужно чтобы восстанавливать роутеры, сбрасывать пароли на биосы и восстанавливать их, и много чего еще.

Будем делать за 10 минут самый простой программатор своими руками на Ардуино 🙂 Понадобится Arduino Pro Micro ну или любая другая (будет отличаться только распиновка на ардуино). Собираем эту сложную схему:

Пофиг что 5 вольт, еще ничего не сгорело ни разу. Но только выпаивать флешки надо из платы, так как другие элементы могут быть не такими устойчивыми))))

Вот прошивка (скетч) для ардуины:

Metamorf

Распиновка Arduino nano v3.0
1 — d2
2 — 12
3,7,8 — vcc (5v)
4 — GND
5 — 11
6 — 13

Андрей

Привет, микросхема 25l8006e со скаллера (после кривой прошивки через усб, была не вовремя прервана). При запуске этого программатора, после выбора нужного ком-порта, открывается окно программы с белым экраном вместо данных и зависает — not responding. Куда копать? Большое Спасибо.

admin

Привет, ну либо провода слишком длинные либо что то с ардуиной не то. попробуйте подключится к ней через монитор порта на скорости 115200 и отправить букву t — если напишет COM ok то проблемы между флешкой и ардуиной или с самой флешкой. Если не напишет COM ok тогда что то не то с ардуиной 🙂
Если с флешкой проблема попробуйте укоротить провода к ней, ну или другую флешку, может какая-то несовместимость 🙂 Еще почему то не всегда программатор с arduino mini работает

Андрей

Получилось с Мегой! С Nano v3 на отрез отказывается работать. Спасибище. 🙂

Сергей

Всё отлично, хороший программатор на скорую руку получается. Автору огромное спасибо. Только вот я его нагуглил, когда хотел прошить 93C56… А такие маленькие он не шьет(

admin

прошьет))поставьте минимальный размер при прошивке. если нужно считать — фулфлеш потом обрежете просто. а если нужно записать — курсор ставьте на первый байт и записывайте файл нужного размера, хоть 64 байта ))

Алексей

Спасибо автору! Если внимательно прочитать и сделать как описано, то все получится! Впервые решил перепрошить роутер. Была под рукой запылившаяся Ардуино Нано. Соединил провода. Скачал последний IDE. Прошил успешно.

Павел

Спасибо автору огромное! Очень помогло! Вот только не решил проблему: на меге 2560 первые 128 байт заливаются сплошные FF.

admin

Может флеш не исправна?

Константин

Все собрал. ID читает. После нажатия на считывание фулфлеш программа перестает отвечать. Как с этим бороться? Заранее спасибо

admin

Вариантов несколько:
— либо слишком длинные провода к флешке
— либо слишком китайская ардуина (например нано в3)
— либо дохлая флешка

Огромное спасибо автору! Восстановил камеру Soocoo C30 после неудачной прошивки. Все супер !

Wikly

Автор молодец! Спасибо! Было бы прям совсем отлично, если бы сама прога на ПК была под 32х разрядную систему!

Wikly

И еще, при попытке скачать фулфлеш, почему то сохраняется только 4 КБ из 4096. Хм.
Arduino UNO,
flash: Winbond w25q32bv

Прошивка 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вдогонку:часом платки переходника под память нет?

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

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

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

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

И ещё,внутрисхемно я смогу прочитать,или нужно выпаивать?

программатор spi flash из Arduino UNO

Насколько я знаю, плата Arduino UNO после загрузки в неё специальной программы действительно может быть использована вместо ISP программатора для AVR микроконтроллеров! А вот подойдёт ли она для других мелкосхем?
Читал, что народные умельцы умудряются перепрошивать SPI мелкосхемы через обычный LPT порт с помощью нескольких проводков и резисторов (для защиты от короткого замыкания и/или неправильного подключения).

Но, если хотите прошивать SPI флешки без «танцев с бубном», то нужен хотя бы простейший SPI программатор (например такой).
Но обратите внимание — он поддерживает далеко не все модели SPI флешек!
Если Вам приходится часто перепрошивать микросхемы, лучше купить универсальный программатор. Один из самых доступных и функциональных MiniPro TL866.
Есть две версии:
1. Одна с поддержкой внутрисхемного программирования TL866A
2. Другая — без неё TL866CS

P.S.: Народные умельцы уже научились переделывать TL866CS в TL866A! Но учтите, что для такой переделки понадобится не просто запаять в программатор ISP разъём, но и «перепрошить» его!

Цитата: Программатор SPI Flash своими руками
В общем это нужно чтобы перепрошивать 8 ножные SPI флешки. А это в свою очередь нужно чтобы восстанавливать роутеры, сбрасывать пароли на биосы и восстанавливать их, и много чего еще.
Будем делать за 10 минут самый простой программатор своими руками на Ардуино 🙂 Понадобится Arduino Pro Micro

Программатор USB на CH341A для чипов 24 EEPROM и 25 SPI FLASH

Программатор микросхем BIOS для материнских плат, ноутбуков, DVD, видеокарт и т.д. 24 EEPROM и 25 SPI FLASH на CH341A через USB

USB мини программатор CH341A используется для программирования микросхем BIOS для материнских плат компьютеров, ноутбуков, видеокарт, мультимедийных плееров, памяти телевизоров, ЖК-дисплеев, маршрутизаторов, игровых приставок, спутниковых ресиверов, ресиверов T2, 24 EEPROM, 25 SPI FLASH и т.п. Программатор по размеру немного больше флэшки и собран на микросхеме USB bus convert chip CH341A.

Джампер P/S служит переключателем режима работы микросхемы CH341A как конветрер USB > Параллельный Порт (Paralel) или USB > Последовательный Порт (Serial). С программатором используется программное обеспечение которому необходимо, чтобы CH341A работала как конвертер USB > Параллельный Порт (Parallel), следовательно джампер должен быть установлен и контакты замкнуты.

Программатор на CH341A имеет драйвера и программное обеспечение для операционных систем Windows 98, Windows ME, Windows 2000, Windows XP, Windows Vista и Windows 7.

Установка драйвера. Для начала использования программатора нужно сначала подключить его к USB порту компьютера, можно даже без установленного чипа в колодке. Если программатор рабочий и с USB разъёмом компьютера всё в порядке, то на корпусе программатора должен загореться светодиод, сигнализирующий о поступлении питания, и Ваш компьютер издаст звук, оповещающий Вас, что вставлено новое USB устройство. После этого операционная система должна начать поиск драйверов и в результате их скорее всего НЕ обнаружит. Ничего страшного в этом нет. Установка драйвера программатора такая же, как у любого USB девайса. Сделаем всё сами, как говорится «вручную». Жмём сочетание клавиши Win + Pause, или просто открываем Диспетчер Устройств. В списке устройств для неизвестного устройства указываем путь к драйверу (заранее распакуйте их из архива, который можно скачать ниже на странице), это должен быть файл ch341wdm.inf. Второй способ установки драйвера — это просто запустить файл ch341par.exe с правами администратора и драйвер установится сам. Если драйвер установлен верно, то можно переходить к программированию чипов.

Установка чипа в программатор. Обязательно! Вытаскиваем программатор из USB разъёма компьютера. Если вы будете программировать микросхему на ZIF панели программатора, то нужно поднять ручку-фиксатор, чтобы открыть пазы для установки микросхемы. Необходимо отсоединить чип, который собираетесь программировать, от конечного устройства (снять с материнской платы, выпаять из ноутбука или т.п.), и установить чип согласно ключа в пазы программатора (расположение ключа должно совпадать с маркировкой около сокета на программаторе, где написано 25xx или 24xx). Потом следует опустить ручку-фиксатор, чтобы зафиксировать чип в колодке. Если нужно программировать микросхемы 25 серии в корпусе SOP8 или SOP16, то на плате программатора есть по одной контактной площадке под эти типы корпусов. Соединить микросхему с контактной площадкой можно как с помощью пайки, так и с помощью аккуратного закрепления ножек микросхемы механическим путем (прижать пластмассовым крокодилом или прищепкой). Когда чип установлен, подключаем программатор с чипом на борту опять к компьютеру в USB порт и запускаем программу CH341A.exe. Слышим звук подключения USB устройства и радуемся успешно выполненому первому шагу.

Как программировать чипы. Вот тут начинается самое интересное. Описывать работу с программой я не буду, а порекомендую просмотреть несколько видеоинструкций по работе с данными программаторами. Видеоинструкции можете просмотреть ниже на этой странице.

Примечание 1: Программатор прошивает чипы вполне шустро, но некоторые типы микросхем немного медленно. Всё зависит от объёма чипа и его типа.

Отправить ответ

avatar
  Подписаться  
Уведомление о