Прошивка bios через spi интерфейс

Прошивка bios через spi интерфейс

Сегодня я не матерюсь — а завтра как сапожник.

Все что описано ниже может, и обязательно приведет к порче вашего ноута и прочих устройств которые вы рискнете тыкать паяльником, если что я предупредил, все делаете на свой страх и риск.

Хочу выразить благодарность некто ckoba за отличнейшую и подробнейшую статью с картинками и ссылками, рекомендую — статья о прошивке флешек с spi интерфейсом через lpt

Не без моего вмешательства подох биос в ноутбуке, сервис озвучил цену в 400 грн, я мягко говоря прихуел, и решил попробовать все сделать сам, микросхемку выпаять оказалось несложно, хотя она размерами 5 на 5 мм и с 8 ножкаме, поддеваем ножку швейной иглой, тыкаем паяльником и давим на иглу в направлении от микросхемы наружу, главное сильно не греть, и не давить, а то или ногу микросхеме оторвете или дорожку на плате. И вообще луче это делать паяльной станцией. Отпаять микросхему не перегрев это только треть дела. В общем отпаял я ее от платы, сунул в спичечный коробок, и потащил на работу, а по дороге заехал на радиорынок и купил запчастей, надо 4 резистора на 150 ом, один конденсатор на 1 мкФ, разъем типа папа для LPT порта, по умному он называется DB-25, еще можно купить батарейку на 3 вольта, а можно взять 3,3 вольта из компа.

Для проводков я разрезал кусок старого IDE шлейфа, у него как раз подходящий шаг, снимаем немного изоляции, буквально 3-4 мм, залуживаем, и остается только совместить микросхему и провод и слегка поработать паяльником. Паяйте осторожно везде пишут что флешки от перегрева дохнут.

ДЛя батарейки нашлась кроватка от старой матери, удобно же. Резисторы и кондер я припаял прямо к разъему.

Сперва я неправильно подпаял питание, и программа не хотела определять флешку, не хотела разблокировать защиту от записи и писать, потом когда я припаял все как надо, флешка прошилась с первого раза.

Важно. После прошивки, считайте ее обратно и сравните с исходным файлом который вы прошивали, если есть несовпадения то либо вы что-то не так спаяли, либо проводки слишком длинные. И еще иногда нужно подпаять минус не только к ножке разъема а и к его корпусу.

В статье ссылка на программу не работает уже, сайт переехал на другой адрес, вот правильная ссылка на прошивальщик флешек spi через LPT , так же не забывайте в биосе настроить работу LPT порта в двустороннем режиме epp+ecp.

На все про все, неспешно у меня ушло почти пол дня, теперь осталось главное, запаять биос обратно в ноут, надеюсь все получится и ноут оживет.

Шьем биос spi простейшим lpt программатором : 5 комментариев

Прихуел он,))это стандартная цена ремонта 400 грн и не надо тут пострадавшего из себя корчить,уважающий мастер меньше 400 грн не возьмет,а дебилы будут за 50 грн делать.Не нужно заниматься куетой словесной

Прихуел, конечно. Я ж озвучилвал что надо сделать выпаять и запрограммировать флешку и потом запаять обратно, 400 грн это как бы дохуя, то есть не надо разбирать ноут (100 грн за это берут обычно), не надо искать неисправность и т.п.

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

Статья очень даже неплохая и сделал сам это похвально,но чтобы выпаять ноут нужно разобрать,(если сам разберешь и принесешь можно и 100 грн),а это тоже затраты времени,учитывая сколько ноутов накидают клиенты,я себя роботом не чувствую,мне нужно за что то свет и мастерскую обеспечивать,а если дома сидеть и времени куча то я не спорю можно и за 200 грн по желанию) То что описано в статье я считаю добротной работой и платить тоже нужно нормально + стоимость ноута далеко не 500 грн,чтобы говорить дорого. ИМХО

Я обзвонил несколько сервисников, объяснил ситуацию — я привезу флешку мне ее только запрограммировать, я сам разбираю ноут, сам выпаиваю, и за это озвучили 400 грн. Как-то дохуя.

Читайте также:  Тандер склад учебная копия программа обучение товароведов

ди, а где ты такие пластины надыбал? как ты сдавливаешь плату? с какой силой болты затягиваешь? и из чего эти пластини сделаны?

Не столь давно приключилась со мной одна неприятность. Нужно было обновить BIOS на материнской плате, но в процессе прошивки произошла ошибка, система зависла и перестала отвечать на любые команды. После вынужденной принудительной перезагрузки компьютер включился, крутил кулерами, но на экране ничего не отображалось и не было никаких звуковых сигналов. На лицо повреждение BIOS при записи.

Немного предыстории:

Материнская плата ASUS Commando, без, модного нынче, Dual BIOS. Только Boot Block – небольшая область BIOS, не затрагиваемая записью, которая позволяет, в случае необходимости, инициализировать минимальный набор компонентов, необходимых для включения компьютера, произвести поиск BIOS на съемных носителях. Обычно подходят Floppy или флешка с файлом прошивки, переименованным в AMIBOOT.ROM (зависит от BIOS и материнской платы, точнее написано в инструкции к плате), либо CD с драйверами из комплекта поставки. Обнаружив подходящий файл, boot block запишет его в BIOS и, если все прошло правильно, компьютер после перезагрузки оживет. Неплохая фишка, несколько раз выручала, но в данном случае она не сработала, видимо, оказался поврежден и boot block.

Пришлось искать другие решения. Так как в своем арсенале инструмента у меня не было паяльной станции и стационарного программатора для разных eeprom’ок, пришлось искать более доступные решения. Рассматривая плату, я обнаружил на ней небольшой разъем SPI_J1, а микросхема флеш памяти как раз с SPI интерфейсом. Поиск в Интернет показал, что существуют вполне приличные заводские девайсы и немало самоделок для прошивки SPI микросхем через USB (об универсальных программаторах с поддержкой SPI даже не говорю, это само собой). Правда, поиск по местным магазинам, СЦ и форумам в отличии от Google ничего не дал, а заказывать и ждать месяц очень не хотелось.

Еще немного поиска, и вот оно, решение – статья чешского комрада (на чешском) о предельно простом программаторе и софтине к нему для прошивки микросхем флеш памяти с SPI интерфейсом! Ничего сложного, минимум компонентов.

Сборка устройства

Для сборки нам понадобится:

  • 1 разъем DB25P, можно отрезать от ненужного шнура от принтера
  • 4 шт. резисторы по 150 Ом
  • 1 любой электролитический конденсатор емкостью 100 мкФ или более и рабочим напряжением на 6.3 В или больше (нужен при запитке от БП)
  • Кусок плоского шлейфа с IDC разъемом на 10 контактов (он идеален при наличии SPI разъема на плате)
  • Штекер molex (как на жестких дисках ATA), либо гнездо для батарейки CR2032

Ничего дефицитного нет, все можно найти в куче хлама или за копейки в любом радиомагазине. В худшем случае, можно попробовать обойтись вообще несколькими кусками провода, подсоединив контакты с SPI напрямую к LPT, однако, в данном случае нужно быть предельно острожным, да и правильность записи гарантировать сложно.

Схема с сайта автора, при подключении непосредственно к чипу (для флеш-памяти с рабочим напряжением 3 вольта):

Программатор SPIPGM может использоваться и для микросхем флеш-памяти с рабочим напряжением 1.8 Вольт. Автор применяет для этого дополнительный модуль (своего рода переходник), который подключается к основному модулю и состоит из дополнительных резисторов для гашения напряжения и каскада усиления на транзисторах BC547 для выходного сигнала чипа (схемы на сайты автора по ссылке выше). Ниже приводится адаптация схемы подключения, сразу предназначенная для работы с чипами на 1.8В. Для получения напряжения питания в 1.8 Вольта применен делитель напряжения (на схеме серые резисторы, желательно 1/4 Ватт), делитель при желании может быть пересчитан на другие номиналы (я указываю варианты 10 и 12 Ом, или 100 и 120 Ом), а еще лучше заменен подходящим DC-DC преобразователем (например, TLV70018). Диоды любые, нужны они для минимизации ошибок и, в принципе, можно обойтись без них.

Мы же будем подключать программатор не к чипу, а к разъему SPI_J1.

Если разъем 7 контактный, то подключается к нему следующим образом:

Так же, на некоторых материнских платах бывают 9 контактные разъемы, там схема подключения немного отличается:

Разъем DB25P хорош тем, что внутри него можно разместить все необходимые детали. Желательно использовать максимально короткую длину кабеля, иначе будут ошибки записи. Неплохо было бы закрыть провода экраном, либо от антенного кабеля, либо просто обмотав фольгой от шоколадки, не забыв подсоединить экран к земле (GND).

Читайте также:  Как обрезать изображение в опен офис

При питании от батарейки конденсатор можно исключить. Лично я брал с +5 шины блока питания ( красный провод), подключив к нему через разъем molex и погасив напряжение диодами до

3.3v (двух-трех диодов будет достаточно).

Девайс в сборе:

Программа SPIPGM

Теперь можно переходить к программному обеспечению.

Программа поддерживает большое количество чипов (полный список в файле Readme.txt) и по заявлению автора работает быстрей аналогов. Скачать свежую версию можно с сайта автора, либо отсюда:

Проект, кстати, развивается и по сей день, автор частенько выкладывает обновленные версии программы с информацией о новых чипах, доработками и исправлениями.

В архиве следующие файлы:

Надежней всего прошивать из DOS, загрузившись с Hiren или любого другого подходящего загрузочного CD/Flash. Но можно и из Windows.

Синтаксис и основные команды:

Основные команды:

Прошивка BIOS через SPI:

spipgmw /i – идентификация чипа. Для проверки все ли правильно подключено, программа должна определить тип установленной памяти. Если этого не происходит, проверьте правильность подключения и поддержку чипа программой.

spipgmw /d BIOS.bak – если нужно сохранить резервную копию имеющегося BIOS.

spipgmw /u – разрешение записи.

spipgmw /e – стирание.

spipgmw /p FILE.rom – запись прошивки («FILE.rom» – имя файла прошивки, нужно чтобы файл находился в одной папке с программой)

…ждем процесс записи…

spipgmw /v FILE.rom – сравниваем записанные данные с файлом прошивки. Либо можно сделать дамп spipgmw /d test.rom и сравнить его содержимое с оригинальным файлом прошивки в каком-нибудь Hex-редакторе.

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

Микросхемы флеш-памяти 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.

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

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

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

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

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

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

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

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

Ссылка на основную публикацию
Пропала программа передач на триколор что делать
Телегид (Electronic Program Guide (EPG) — электронный программный гид) — электронная программа передач, которая отображается на экране телевизора. Для каждого...
Программа обеспечивающая взаимодействие операционной системы
Программа, обеспечивающая взаимодействие операционной системы с периферийным устройством (принтером, дисководом, дисплеем и т.п.), – это (*ответ*) драйвер контроллер транслятор компилятор...
Проект умный дом 8 класс по технологии
"умный дом"- презентация ученицы 8 класса Скачать: Вложение Размер umnyy_dom.pptx 314.29 КБ Предварительный просмотр: Подписи к слайдам: Презентацию выполнила Ручкина...
Прохождение игры финал фэнтези 13
Прохождение Final Fantasy XIII на 100%. Давайте взглянем на небольшой игровой трейлер, наглядно демонстрирующий основные элементы игры. Если он вам...
Adblock detector