Микросхемы флеш-памяти 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.
Доброго времени!Подскажите,собрал этот программатор,опробовал на памяти 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 и т.д.подключить к этой микросхеме,какие выводы куда?
На схеме у меня стандартный разъем SPI: http://forum.cxem.net/uploads/monthly_01_2013/post-137761-0-84345600-1359643774.jpg
Спасибо.Буду думать,дай Бог машинку не уложу.
У меня программатор собран по этой печатке https://habrahabr.ru/post/128939/
Ещё такой вопрос,в архиве что скачивал нашол подключение 25ххх,там есть ещё дополнительные резисторы на 10к,тут у Вас ноги микросхемы напрямую идут на программатор,или это без разницы?Спасибо.
Я сначала на форуме нашел ту схему, по которой собрал площадку. Проверил- работает. Потом только тоже увидел в архиве схему с резисторами. С резисторами будет безопаснее, наверное.
Спасибо,теперь только сталось с машины блок управления дёрнуть и прочитать содержимое памяти.Удачи.
Ещё раз Добрый вечер.Всёж задушил жабу и дёрнул блок с машины,прочитал эту микросхему,ПИН код нашол,всё отлично,пробовал закидать разные названия микросхем,в одной читает быстро там и нашол пин код,в другой минут 15,так вопрос:какую всё же нужно вбивать микросхему?не могу сам задать вопрос автору этой прошивки,зарегистрировался там,а ответа на имейл для завершения регистрации так и не получил,может напишете Автору пожелание добавить 95128,в программе тоже не нашол 25128.спасибо.
Я там вообще не зарегистрирован. Нужные данные по вашей микросхеме приведены в документации на первой странице вверху.
а с какой машины блок? можно ли таким же способом прочесть, подкорректировать бинарник (типа тюнинг) ? хочу со своей что то сделать
Ясно.Удачи.
все получилось, спасибо вам большое.прошил и 25 и 24 серии. только вот для 25 пришлось по питанию чипа и cs-gnd повесить кондер, иначе шли помехи.а на 24 нужно сигнальные ножки подтянуть к питанию через резисторы, и тоже будет счастье !
А вот у меня USBasp слегка другой конструкции
https://yadi.sk/i/yUJHs1ALqjgNh
Куда перемычку кидать для прошивки, или надо джампер замкнуть?
у тебя JP2- для самопрограммирования( self programing), и его надо замкнуть для прошивки. JP3 — замедляет частоту работы мк ( при прошивке некоторых мк это критично).
тьфу ты, не туда смотрел, правильно будет JP1- самопрограммирование, JP2- выбор питания (5/3.3), JP3- понижение рабочей частоты.
Добрый день можно ли им прошить flash 25Q16B ,N25S16 от китайского видеорегистратора
Можно. Размер 2097152, страница 256
Скажите площадка для подключения собирается по той же схеме
да
зделал все как написано работает но очень долго шьет 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винде, взял другой ноут с ХР и все получилось!!!
При программировании 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.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 вы дорогие читатели ну что вы тупите?какая распиновка по даташиту?! если трассировка указана именно вашей микрухе то тупо следуйте ей
по дату смотрите только питание и не тупите как последние раки.
товарисч , вы что курите ?
После перепрошивки программатор определяется как неизвестное устройство, при возвращении прежнего МК , все ОК.
при использовании программатора «5 проводков» по окончания прошивки выставить fuse согласно картинкам в статье http://easyelectronics.ru/usb-programmator-avr-usbasp.html. Иначе труп-не определяется виндой.
А если долго читает и все нули показывает, что это? память от dir 300 a1 25x35vf1g
если нули-включена защита от считывания. сама прошивка рабочая.
Кто-то пробовал прошивать память серии 24xxx??
как подключали память 24хх к программатору? а судя по отзывам это делали. распиновка что на картинке с переходника под 25хх не совпадает с распиновкой серии 24хх , на схемах по всем ссылкам указывается только 25хх., но так же упоминается возможность прошивки 24хх
Кто-то пробовал подключать этот программатор к 24 серии? ? Есть схема распиновки?
Нашел ответ на вопрос
https://github.com/nofeletru/UsbAsp-flash/blob/master/schemeI2C.gif
Привет ребята! кто-нибудь пробывал прошить SST25VF080B? мучаюсь с ней уже давно.
Спасибо за публикацию. Прошивал W25X40BV с магнитолы LG (слетел дамп), через AsProgrammer_2.0.0a14. Подключил по схеме без резисторов, было только чтение и стирание. При записи выдавал ошибку о проверке записи по адресу 0х00000000. Впаял резисторы по 330 Ом на 3 и 7 ноги схемы, все записалось без проблем.
Здорово решил попробывать переделать свой программатор для чтения и записи 25 серии ,всё вроде бы сделал правильно драйвер установил программа видит программатор записывается вроде но при прочтении в буфере одни 00 в чем может быть проблема не знаю ищу .
При прочтении 25 серии данные в буфере были как только стер и записал своё при прочтении в буфере 00 ?????????????????????
Конденсаторы по питанию памяти 0.1µF и 10µf стоят?
Залил прошивку Тестовая прошивка(usbasp, atmega8, для программы 1.4.1) с подбором скорости для avr viewtopic.php?f=17&t=10947&start=1801
https://cloud.mail.ru/public/4utm/1ZiEXFUEm
около 1 часа только скачивал дамп с 25q32bvsig, что то со скоростью. Теперь встал вопрос как подключить к 24С04N
Программа CH341A — USB Programmer 1.34
попробовал на 24 серии 1 кбайт программирует
читает стирает.
Взял 25 серию 4 Мбайта тоже все прошло нормально.
Потом зашел в меню настройки и поменял в вкладке 25\26 серия
Основная память на
Полностью(Основная + ОТР)
теерь микросхема полностью не стираеться
и конечно правильно не записываеться.
Вернул назад все равно полностью не стираеться
и конечно правильно не записываеться.
Вот так бывает. Вторую еще не пробовал.
Автору проекта ОГРОМНАЯ БЛАГОДАРНОСТЬ !