THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

В этой статье хочу показать, как прошить микросхему bios материнской платы стационарного компьютера с помощью программатора TL866. Эту статью постараемся сделать максимально информативным и вложить максимальный объем информации за короткий период времени. В данном случае будем прошивать микросхемы биос материнской платы Asus P5Q в корпусе deep. Итак, приступим.


Что нам необходимо сделать для начала?


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

Вот извлеченная микросхема, она выглядит вот так. Изготовитель микросхемы Winbond 25x80va11z .


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

Для того чтобы , для начала зайдем в программу WinPro помощью которой будем прошивать.


Выбираем микросхему в окне "Выбор микросхем". В данном случае у нас микросхема Winbond 25x80.


Нажимаем на кнопку "Выбрать" и после чего необходимо ее прочитать.

Микросхема прочитана и нажимаем на кнопку Выход.


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

Перед перепрошивкой нам необходимо очистить микросхему .


Если очистка прошла успешно, то теперь нам необходимо залить скачанную прошивку непосредственно на саму микросхему.

Выбираем файл - открыть - ищем сохраненную прошивку.

Нажимаем "Программирование ИМС".


Нажимаем кнопку "Запись" и микросхема начинает перепрошиватся.

Программирование завершено.

Установку микросхемы BIOS проводим в обратной последовательности. будьте предельно аккуратными с компактными выводами микросхемы биоса


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

Пишите полные комментарии, ответы типа "спасибо за статью" не публикуются!

Сегодня мы с Вами рассмотрим работу с таким инструментом, как программатор для биос компьютера. И, что самое главное, выполним с его помошью перепрошивку! Прежде чем начать, запомним следующее: работа с программатором не является чем-то сложным или требующим особых навыков (как ошибочно думают многие) и ничего программировать нам здесь, на самом деле, не нужно:)

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

Обычно это устройства, которые подключаются к USB (LPT или COM) порту компьютера. Для них в систему устанавливается свой драйвер, идущий в комплекте с программатором и после этого они готовы к работе.

Но обо всем по порядку! Итак, разберем один реальный случай, недавно произошедший у нас на работе. Есть у нас один старый компьютер с установленной на нем Windows 98 и специфической программой, которая только под этой ОС и работает. Короче говоря, именно тот случай, когда и выбросить нельзя и отремонтировать нужно!

А неисправность наша выглядела следующим образом: при загрузке компьютера на монитор выводилось вот такое сообщение.




Обычно подобная надпись достаточно недвусмысленно дает понять, что нужно , но тут проблема усугублялась тем, что после этого месседжа компьютер намертво "зависал" и работать с ним дальше было невозможно. Т.е. использовать саму плату для прошивки было нельзя.

Делать нечего, придется использовать программатор для биос. Еще раз повторю: программировать и пользоваться программатором - разные вещи! :)

Итак, каков наш план действий в данной ситуации? Сначала нужную скачать (желательно - максимально "свежую") прошивку для данной микросхемы биос, затем аккуратно извлечь сам чип флеш-памяти из платы, установить в программатор и записать туда скачанную нами микропрограмму. Как видите, - все просто! :) Приступим, с Божьей помощью!

Итак, для начала нам нужно определиться с моделью нашей . Вскрываем корпус компьютера и заглядываем ему в самую "душу" :)


Между PCI слотами видим обнадеживающую надпись: P6VAA. Не шибко информативно, конечно, но уже кое-что! Теперь, вооружившись надеждой на лучшее, "идем" в Интернет и начинаем его терзать на предмет поиска по этой надписи. Через некоторое время выдает нам результат: данная материнская плата является детищем фирмы Elitegroup Computer Systems (ECS).

В описании сказано, что "на борту" у нее установлен чип с биос от фирмы «Award». Что, впрочем, явственно следует из стикера, приклеенного поверх самой микросхемы:

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




Как Вы понимаете, говорить о "свежести" данной прошивки биоса не приходится (2001-й год), но и компьютер у нас, что называется, уже "не мальчик" (Pentium 3, однако!) :) Просто скачаем архив с файлом биоса себе на компьютер: пусть пока полежит до подходящего момента.

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



Теперь, как и договаривались, будем "выковыривать" из нее нашу микросхему флеш-памяти bios. Ковырять будем с помощью специальной приспособы, которая называется экстрактор (extractor). В данном случае, вот такой:



Это PLCC экстрактор и служит он именно для извлечения микросхем с форм-фактором PLCC (Plastic Leaded Chip Carrier). Переводится приблизительно как: "безвыводной пластиковый фиксатор чипов". Как это выглядит? А вот так:


Как можно наблюдать, чип флеш-памяти как будто "обернут" пластмассовым посадочным гнездом с 32-мя контактами. В народе это гнездо еще называют "кроваткой" или "подушечкой", а 32 его контакта позволяют нам говорить о таком форм-факторе, как PLCC32. Вот именно для извлечения подобных PLCC микросхем (с разным количеством контактных площадок) и предназначен наш экстрактор. Его металлические зажимы имеют на концах небольшие крючки, с помощью которых биос извлекается из платы.

Примечание: разновидностей (видов) самих микросхем биос бывает несколько. Если говорить о самых "ходовых", то это будут PLCC, DIP, SOP и SOIC. Причем, цифра после названия, как правило, говорит нам об общем количестве выводов (контактов) самого чипа.

Каждый "уважающий" себя программатор снабжен набором соответствующих переходников (адаптеров), обеспечивающих электрический контакт микросхемы с нашим устройством. Проще говоря: позволяющим установить ее в программатор. Другое дело, что эти самые переходники, как правило, продаются отдельно (в виде дополнительных опций) к программатору и все вместе могут достаточно существенно поднять его конечную стоимость. Что поделаешь? За расширение функционала приходится платить!

Для большей наглядности хочу продемонстрировать Вам один их вариантов подобного набора адаптеров (справа на фото можете посмотреть описание каждого из них). Можете нажать на фото для увеличения:




Самые распространенные чипы, с которыми нам, вероятнее всего, придется иметь дело при перепрошивке биоса на программаторе будут выглядеть примерно так:



Примечание: форматы SOP SOIC внешне похожи, но немного отличаются расстоянием между выводами и самим их изгибом. Хотя DIP корпуса не было на большом фото выше, но мы еще вернемся к нему по ходу этой статьи. Если захотите больше узнать про различные корпуса микросхем, то можете скачать себе .

Сейчас нам нужно воспользоваться экстрактором для аккуратного извлечения чипа. Вставляем его в специально предназначенные для этого пазы на разъеме (кроватке):


PLCC экстрактор сконструирован таким образом, что после захвата микросхемы нам не нужно даже тянуть ее на себя. Достаточно просто плавно сдавить боковые секции прибора (свести их вместе) и чип биоса сам выпрыгнет из своего посадочного места. Примерно вот так:


Давайте внимательно посмотрим на освободившееся посадочное место:




Что мы здесь (на фото выше) видим? Видим 32 контакта (PLCC32, помним) для флеш-памяти биос, пазы для установки экстрактора (обозначены треугольниками) и "срезанный" край кроватки (нижний правый угол). Это, так называемый, "ключ", который сделан специально для того, чтобы мы установили микросхему единственно возможным и правильным образом. Видите, на правой части фото такой же "срез" есть на самом чипе bios.

Внимание, волнующий момент! Берем наш программатор для прошивки биос! Лично я когда-то заказал себе вот такую модель:



Это - «NANO USB Programmer», любезно предоставленный нам нашими корейскими друзьями, которые продают его через E-bay. Размером чуть больше флешки! Данный программатор "заточен" именно для перепрошивки биосов материнских плат. Дорогие и "навороченные" модели поддерживают целую кучу других микросхем, не имеющих к компьютерам никакого отношения. Конечно, если есть лишние деньги, то... запас карман не тянет, как говорится:) Мне же нужен был небольшой (относительно недорогой) и простой в использовании программатор именно для прошивки биосов. Поэтому на нем и остановился.

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

Стоит подобный программатор 20 долларов, НО - это только в базовой комплектации (без дополнительных опций). Именно такой, как на фото выше. Основные опции - это, как правило, дополнительные модули-переходники, которые расширяют функционал устройства и оно, в итоге, может поддерживать большее количество микросхем и чипов. Одну из "опций" я за три доллара заказал себе сразу вместе с программатором и покажу Вам ее позже.

Итак, устанавливаем в программатор микросхему биос (не забываем свериться с "ключом").




Вообще, работа с программатором делится на два этапа: физические манипуляции с платой, экстрактором, чипом, самим программатором и, непосредственно, работа с программой-прошивальщиком (флешером), которая и "зашивает" (записывает) bios в чип.

Сейчас мы подошли именно к такому моменту. Давайте же быстро "пробежимся" по основным моментам работы с программным обеспечением нашего устройства. Естественно, что у каждой модели оно свое, но общая схема, как мы и говорили выше, следующая: сначала устанавливаем драйвер для программатора, затем запускаем флешер и "шьем" микросхему флеш-памяти биос.

Итак, распаковываем наш архив с проприетарным ПО и видим набор файлов:

Что здесь присутствует? Директория с драйверами (driver), несколько файлов с документацией (уже давал на них ссылку выше) и сам "exe" файл флешера (программы-прошивальщика).

Как и договаривались, сначала устанавливаем драйвер. В самой процедуре нет ничего сложного или необычного, поэтому на этом отдельно останавливаться не будем. Скажу только, что он успешно ставится как на Windows XP, так и на Windows 7 (x32).

После установки заходим в диспетчер устройств и проверяем результат. В секции "контроллеры USB" мы должны увидеть вот такую картину:


Устройство успешно установлено! Теперь нужно запустить саму программу (файл biosw.exe) и начать священнодействовать! :)

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

Главное окно программы у нас выглядит вот так:


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

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


Написано, что устройство подключено к низкоскоростному USB порту или используется не оптимальный режим передачи по шине (OHCI). Правда, я подключал программатор и к внешнему - тот же результат. Так что можно просто нажать ОК и не обращать на это внимания.

Итак, хорошим тоном перед прошивкой биоса на программаторе считается сохранение его текущей версии в отдельный файл (на всякий случай). Вдруг случится так, что мы "залили" новый биос и он не подошел, - , а старого файла прошивки уже нет? Вот чтобы избежать такой "засады" мы и должны вначале "сбросить" исходный код в файл на компьютере. Правда, именно в нашем случае с этого толку мало, так как с имеющейся прошивкой компьютер именно что не работает. Но, для порядка, сделаем все по инструкции!




Здесь нас попросят указать имя для сохраняемого нами образа биоса. Также в поле ниже мы можем видеть, какие форматы файлов поддерживает наш программатор? После того, как мы нажмем кнопку "Сохранить", запустится сам процесс считывания и сохранения данных с микросхемы.




На фото выше можем видеть несколько важных секций. Начнем сверху: «BIOS File Information» - здесь должна показываться информация о файле-образе биоса. Поскольку мы пока файл не загружали, у нас здесь ничего и нет. Чуть ниже вторая секция: «Device Information» - информация по самому чипу. Здесь можем видеть серийный номер, название, производителя, тип микросхемы и т.д. Дальше - визуальный информер о состоянии процесса и название операции, которая выполняется в данный момент (Read - чтение).

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


Теперь, наконец-то, можно приступать к прошивке биоса на нашем программаторе! Нажимаем вторую кнопку «Write» (запись), которая есть в главном окне программы.

Снова откроется окно проводника Windows, но здесь нам уже нужно будет выбрать файл-образ нашего биос, который мы предварительно скачали из Интернета:




Выделяем наш bin файл и нажимаем кнопку «Открыть». После этого появится вот такое окно:




Оно гласит: «Чип будет перезаписан! Хотите продолжить?» Еще бы! Конечно, хотим! :) Нажимаем «Да» и программатор начнет прошивку биос.




Обратите внимание на первую секцию скриншота выше: «BIOS file information» Сейчас здесь появились данные, которые отсутствовали на предыдущих фотографиях.

После завершения автоматически запустится процесс проверки (Verify) целостности и корректности записанных во флеш-память данных.




Еще немного терпения и в строке статуса (в самом низу окна) мы увидим долгожданное: Success (успешно)!




Давайте кратко рассмотрим оставшиеся функциональные кнопки! Следующая за теми, что мы уже опробовали - «Erase» (стереть). Тупо стереть всю микросхему. Зачем нужно? Ну, если имеете доступ к компьютеру младшего брата, можете, когда его не будет, сделать ему этот самый Erase и поставить микросхему обратно. Посмотрите на реакцию, когда он включит ПК! Шутка:)

Кнопка «Verify» (проверить) запустит процесс проверки на корректность записи (мы уже наблюдали ее в работе). И последняя - «Get ID» (получить идентификатор) может, при определенной доле везения, отобразить нам в секции «Device Information» данные об установленном в программатор чипе.

Теперь что нам нужно? Правильно! Выковырять чип из программатора, установить его обратно на плату, собрать все это дело в кучку и попробовать запустить. Экстрактор нам в помощь, как говорится, начали:


Аккуратно, соблюдая "ключ", устанавливаем элемент на плату, собираем и запускаем:




Уже весьма обнадеживает! Еще немного терпения и - вот оно счастье: никогда не думал, что логотип загрузки Windows 98 может вызывать чувство почти полного умиротворения:)

Итак, программатор для биос в очередной раз оправдал оказанное ему высокое доверие, и уверенно подтвердил звание "полезной штуки " для прошивки "той хрени на плате ": цитата другого моего знакомого:)

Теперь давайте немного поговорим о другом распространенном типе модулей биос. Я имею в виду DIP8 микросхемы. На плате они могут выглядеть следующим образом:


Аббревиатура DIP расшифровывается как «Dual Line Package» (корпус с двумя линиями выводов). Что, собственно, хорошо и видно по его внешнему виду. Да, и располагаться биос на материнской плате может в произвольном месте (обычно, в нижней ее части), а не обязательно так, как показано на фото выше!

Доставать (выковыривать) подобные микросхемы также удобно с помощью экстрактора, но уже не PLCC, а DIP. Вот как он может выглядеть:

Главное, немного приподнять флеш-память, а дальше зацепы входят под нее снизу и надежно фиксируют. Аккуратно тянем на себя и извлекаем из посадочного гнезда.




Раньше, до того, как у меня появился Dip-экстрактор, я пользовался зажимом "прикуривателя" для аккумулятора автомобиля (можно приобрести на любой радио-барахолке или магазине электротоваров). Тоже очень удобно! Только концы зажима нужно просовывать не под микросхему bios-а, а прихватывать ее по бокам корпуса. Примерно, вот так:




Зажим должен быть достаточно плотным! Потом просто немного покачиваем чип из стороны в сторону, одновременно вытягивая на себя. Пока он не окажется у нас в руках (в зажиме).


Расположим все "действующие лица" рядом. Здесь есть нюанс, о котором необходимо упомянуть! Помните, мы с Вами говорили о "ключе" на микросхеме биос? У корпуса DIP он тоже есть, но выглядит немного по другому: в виде углубления (или выреза) на корпусе в форме небольшого полукруга.




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

Внимание! В отличие от PLCC корпуса, DIP мы можем установить и неправильно (сам "ключ" нам этому никак физически не препятствует). А при неправильной установке, можно запросто сжечь микросхему! Сам так один раз сделал:) Наша задача перед установкой эти вырезы совместить. "Ключ" также может иметь форму круга на самом корпусе элемента (ма-а-а-ленькое такое углубление или просто более темная область). Будьте внимательны, не спешите!

Подготовленный к работе программатор с установленным DIP элементом может выглядеть вот так:



Дальнейшая процедура ничем не отличается от той, что уже была описана нами выше: запускаем ПО флешера, идущее в комплекте, и "заливаем" новую прошивку.

Хочу порекомендовать Вам один замечательный сервис: datasheet-pdf.com . Здесь собрано большое количество документации (даташытов) на различные электрические компоненты и микросхемы. Если Вас интересует, как работает тот или иной чип, контроллер или транзистор, на какие из их выводов подается напряжение, а на какие - управляющие сигналы, как организована логика работы элемента, то просто вбиваете в поле маркировку (Part Number) интересующего Вас изделия и нажимаете Enter.

Картинка ниже - кликабельна. Как видим, я просто указал парт-номер нашего Dip-элемента флеш-памяти биос и получил вот такой результат.


Производитель - компания «Winbond», тип - Flash Memory, а нажав на значок PDF мы можем просмотреть (или скачать) полную документацию (даташыт) и узнать все характеристики нашего элемента.

Двигаемся дальше! Помните, выше мы говорили о таком типе корпуса биос, как SOP? Вот давайте остановимся на нем немного подробнее. Аббревиатура SOP расшифровывается как «small-outline package» (уменьшенный малогабаритный корпус). Обычно подобное исполнение биоса мы можем встретить на материнских платах ноутбуков и, в отличие от наших предыдущих образцов, он к ней припаивается.

Если сами и разбирали его, то наверняка видели подобные элементы:




В связи с этим, прошивка данного типа биоса, во первых: требует его предварительного выпаивания с платы, а во вторых - соответствующего SOP переходника (адаптера) на самом программаторе. Помните, выше я говорил о том, что приобрел одну дополнительную опцию? Это и был подобный SOP адаптер. Для «Nano USB Programmer» он может реализовываться одним из показанных на фото ниже способов:




Эдакий китайский корейский конструктор "собери себе сам" :) Мой случай - это правая нижняя часть скриншота выше. Инсталлируется это дело примерно так: сначала в штатный Dip8 приемник нашего программатора устанавливаем две "стенки", в них - два ряда контактов.



И все это дело накрываем сверху контактной площадкой с выводами под SOP8 и SOP16 для соответствующих типов корпусов.



Как сюда установить микросхему bios форм фактора «Small-outline Package»? Знаете, ничего лучшего, как прижать ее во время "прошивки" пальцем я не придумал, при всей своей фантазии! :)

Правда, есть одна "приспособа", которая позволяет перепрошивать биос без его выпаивания из платы. Выглядит, как металлическая прищепка с проводами и является еще одной опцией к программатору. Естественно, весь этот "шик" - за отдельные деньги! Работает по принципу накидного крепления: просто зажимается сверху, обеспечивая электрический контакт выводов с устройством программирования.

Помните фотографию автомобильного "прикуривателя"? Вот он работает примерно так же, только на клеммах аккумулятора в машине.

Также хотел немного рассказать Вам о том, что при помощи данного программатора можно перепрошивать не только микросхемы персональных компьютеров. Какие еще? Приведу один пример из практики: эта "кроха" как-то помогла нам "оживить" лазерное МФУ Samsung SCX 4650N.

При старте на экране принтера появлялась надпись «Firmware Upgrade Wait Image », после этого устройство не реагировало ни на какие с ним манипуляции. Надпись явно указывала на проблемы с инициализацией прошивки (Интернет это подтверждал). Решили, с определенной долей скепсиса, призвать на помощь наш мини-программатор!

Для этого из принтера была извлечена плата управления, из которой было решено выпаять чип c маркировкой GD (GigaDevice) 25q64 (он же w25q64 - Winbond 25q64).


Это именно та микросхема, в которую "зашит" биос принтера Samsung SCX 4650N. Отпаяв чип с помощью , мы водрузили его через адаптер SOP 8 (о нем выше) на программатор.


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


После его окончания, соблюдая "ключ", напаиваем чип обратно на плату управления:


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




В завершение статьи, предлагаю Вам посмотреть небольшое видео о том, как выглядит типичная несправность материнских плат от «Asus»: хочется сразу и начать искать КЗ на плате, но все не так, как кажется. Достаточно просто перепрошить биос и материнская плата заработает!


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

Не столь давно приключилась со мной одна неприятность. Нужно было обновить 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 интерфейсом! Ничего сложного, минимум компонентов.

Технически это очень простой способ, и требует лишь базового понимания схемотехники, умения припаять пару проводков и воспользоваться командной строкой (cmd). Но если вы не уверены в своих силах, лучше не рискуйте. Кроме того, всегда можно попросить друга, дружащего с паяльником.

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

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

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

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

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



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

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



1. -> питание +3.3v
2. -> земля от питания и вывод 18 на LPT
3. -> резистор -> LPT 7
4. -> резистор -> LPT 8
5. -> резистор -> LPT 10
6. -> резистор -> LPT 9

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



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



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

Блок питания все же надежней батарейки. Имея отдельный БП можно запитать напрямую от шины +3.3 (оранжевый провод ATX разъема). Чтобы запустить блок питания без компьютера нужно замкнуть зеленый и черный провода.

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



Программа SPIPGM

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

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

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

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

SPIPGM – исполняемый файл для Linux

SPIPGM.EXE – исполняемый файл для DOS/Win9x

SPIPGMW.EXE – исполняемый файл для Win9x/NT/2k/XP/Vista/7 (только х32 , поддержки х64 нет)

IOPERM.DLL – библиотека для низкоуровневого доступа в Win9x/NT/2k/XP/Vista/7(без UAC)

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

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

Синтаксис: spipgmw /<команда> [имя файла] [адрес] [размер]

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

i – идентификация флеш памяти
d имя файла – считать содержимое флеш памяти в файл
p имя файла – записать флеш память из файла прошивки (без стирания)
v имя файла – сравнить содержимое флеш памяти с файлом прошивки
e – полное стирание флеш памяти
b – проверка стирания флеш памяти
u – разблокировать защиту от записи (зависит от сигнала WP#)

Имя файла — полное имя файла, например: file.bin , file.rom и т.п. Расширение роли не играет, главное чтобы это был корректный файл образа и правильно указано имя.

Прошивка 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 штатными средствами.

Данный способ подходит не только для прошивки BIOS материнских плат, но и любых других устройств, имеющих SPI разъем, либо напрямую, любой поддерживаемой микросхемы.

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

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

Забегая вперед скажу, что прошивка от 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:

1. Восстановление программными средствами самой мат.платы.

Современные модели материнок (у Гигабайта последние 3 года на мейнстримовых и топовых точно) на плате распаяно сразу 2 микросхемы , в случае неудачного обновления загрузится с резервной микрухи, а позже зальет копию в поврежденный. У некоторых моделей нет возможность восстановления поврежденного и в случае смерти первого просто начинает работать второй за место него, соответственно после смерти второго мать уже не запустится

Еще есть возможность восстановления из bootblock"а, но работает если умер не окончательно и бутблок все еще жив и попытке запустить систему он обнаруживает кривую сумму биоса. В таком случае он пытается считать с HDD, или флоппа. Некоторые платы (у Гигабатов такая фича встречается) пишут дубль на HDD, который к ним подключают самым первым, соответственно для восстановления этот диск можно подключить. Для восстановления с флоппа достаточно записать прошивку с правильным названием на дискету, она будет обнаружена и восстановлена. Жизнеспособность бутблока можно определить по сигналам (световым и звуковым) с подключенного флоповода, если флоп подает признаки жизни, значит мы легко отделались

2. Восстановление методом горячей замены иди hotswap. Работает только на мамках, где не впаян, а сидит в сокете и его можно подцепить. Т.е. надо найти другую рабочую плату с подобным , т.е. чтобы кровать была такая же и желательно чипы были общего или одного из аналогичных семейств, тогда процедура точно прокатит. На плате с живым заранее делаются удобства для вырывания чипа с кровати - нитки, изолированная проволока и т.п. если нет специальных щипцов, плата включается заходим в DOS (или фирмовую утилиту платы) для обновления , вырываем , вставляем мертвый и зашиваем , если появляются предупреждения о несовпадении контрольных сумм, то их игнорим, т.к. бояться нечего - родной лежит отдельно. Затем система отключается, в каждую плату возвращаем свою микросхему и проверяем работоспособность. Данный метод разве что не прокатит, если микросхемы впаяны в платы, горячая замена не получится, можно конечно рискнуть и отпаять на работающей плате - но это очень рискованно - можно остаться с 2мя уже окончательно мертвыми платами, причем дохлая уже будет электроника, а не программная часть

3. Восстановление на программаторе. Этот способ универсальный, т.е. прошить можно любую микросхему в любом типе корпуса. Если микруха припаяна к плате, то снимаем ее и напаиваем на плату программатора или используем специальные панельки. Безусловно на одном программаторе можно прошить ограниченное число микросхем, но это обычно касается простых программаторов, более "взрослые" являются действительно универсальными, но стоят они уже не 5 копеек и приобретаются в основном для потокового ремонта, а не домашнего использования с целью восстановления пары плат. Тем не менее данный способ универсальный, он полностью заменяет и расширяет первые 2 способа, а когда они не работают, то это единственный выход. Способ горячей замены это даже искусственный метод, который был обнаружен опытным путем благодаря унификации производителями элементов плат. Об одном из простых "домашних" программаторах я и хочу рассказать.

Суть процесса

Попалась мне на днях в руки плата AsRock N68-PV-GS, отдал мне ее предыдущий владелец просто так. Она давненько была неудачно прошита и была банально заменена другой. Но я не привык выкидывать аппаратуру, которую можно восстановить перешив одну микросхему и взялся оживить плату - лишней в хозяйстве она не будет, платформа все же не такая древняя, сокет АМ2


Плату зеркалить не нужно, она уже "правильно" нарисована. Я когда делаю разводку, то представлю текстолит как бы прозрачным - так намного проще, по крайней мере мне

Необходимые ингредиенты:
- Резисторы 150 ом 0,125Вт x 4шт
- Емкостный конденсатор 1mF 16-63v x 1шт
- Сокет 8pin 7,62мм x 1шт или специальные зажимные панели под SMD чипы, в общем в зависимости от пациента
- Немного проводов, я использовал провода примерно 24AWG длинной 12см
- Макетная плата или текстолит и все необходимые принадлежности для его вытравки и лужения
- Штырьковые разъемы x 5шт

На разводке (как и на схеме) выводы на разъем LPT (DB25) указаны цифрами, т.е. 7, 8, 9, 10 и 18. Первые 4 контакта нужны нам для передачи данных, 18ый - земля. Но можно использовать за место 18 любой в диапазоне 18-25. Я специально не стал размещать на плате сам разъем DB25, т.к. не каждый его будет делать. Причин тому 2:
1. Мало контактов, всего 5шт, для того, чтобы тратить 20р на этот разъем и ставить его на такую крохотную плату. Намного проще вывести эти 5 контактов и воткнуть их в сам разъем
2. На современных платах уже не ставят полноценный LPT разъем, производители выводят штырьки на плате, к которому можно подключить внешний/внутренний адаптер и получить тем самым DM25-F, т.е. LPT. Таким образом сделав полноценный программатор на борту с DB25-M нам придется делать соответствующий разъем для платы или покупать адаптер отдельно, как советуют производители плат. У меня конечно есть такой адаптер ↓↓↓ , я его не покупал, делал сам из шлейфа под флопп и разъема DB25-F снятого со старого кабеля от принтера. Но тем не менее я не стал городить на программатор данный разъем просто потому что у меня его не было под рукой и еще по причинам п.1


Самодельный адаптер LPT для современных плат. IDE разъем флоппа отлично подходит под пинауты плат, вставил кусок зубочистки как ограничитель, чтобы наверняка не промахнуться

Я сделал проще, вывел 5 контактов (у меня на фото 6 т.к. 2 земли) для штырьков платы соответствующими разъема, сверился с раписновкой платы (на деле у всех плат одинаково, может только "ключ" - пустой пин находится в другом месте, и в мануале маркировака идти в другом порядке) и установил их на правильные места, у программатора как раз удобно используется диапазон контактов разъема 7-10. Землю воткнул на 23 и 24 выводы, т.к. 18-25 земля

В итоге у нас должно получиться примерно следующее устройство:




Для питания программатора необходимо постоянное питание 3.3v, а так же внешняя масса. Я использую для этих целей внешний полноценный БП Gembird 400Вт. Он у меня вроде лабораторного БП, живую конфигурацию ему я бы не доверил в силу его качества) Достался он мне от одного хорошего человека - данный БП видимо не имеет достаточно реальной мощности и прежнему владельцу его не хватало, система работала очень не стабильно. Мне же этого бедняги для подобный вещей вполне достаточно)
У БП на разъеме 24пин замкнут зеленый провод на землю, что дает возможность его запускать в холостой ход, из этого же разъема я и беру 3.3v (оранжевый провод) и массу (черный) для программатора
Можно еще как вариант использовать батарейку она как раз на 3.3v, а землю (массу) взять с самого корпуса работающего БП
Еще один вариант - поставить какой-нибудь стабилизатор на 3.3v, например LM1117, на крайние контакты подаем 5v с USB и массу (точную распиновку не помню, данный стаб я использовал в другой своей статье про коннектор привода для X"360), из центрального у нас будет 3.3v. Nаким способом получаем питание с самого СБ, на котором прошиваем - можно подключить разъем USB или вывести 2 штырька для подключения опять же к контактам USB На самой плате предварительно посмотрев распиновку

Программная часть

После изготовления устройства можно приступить к тому, ради чего все это затевалось - к прошивке

Текущая версия SPIpgm 2.1 поддерживает все семейство настольных ОС Windows, Linux и еще DOS. Я очень сомневался, что на Win7/Vista все заработает, уж очень прихотливы LPT программаторы к этой ОСи. тем не менее все совпало с заявлением разработчика. не забываем, что UAC необходимо отключить (у меня отключен и так "по умолчанию"). Выключаем полностью ПК, подключаем программатор, включаем и используем командную строку. С помощью оператора cd переходим в нужную директорию, где находится программатор. Т.к. мы находимся в среде Windows, то использовать надо spipgmw, spipgm используется в DOS и Win9x, однако spipgmw можно тоже использовать в Win9x. По скрину ниже видно, что проблем нет, программатор и софт прекрасно работают в современной среде, что встречается крайне редко в подобных задачах


Однако отмечу, что я шил в DOS, мне так привычнее) Чем проще ОС, тем она надежнее. Но я не агитирую переходить на нее полностью) Просто для таких вот делишек использовать DOS мне как-то интеерснее. По опыту работы с другими самопальными программаторами могу сказать, что в WinXP этот программатор без сомнения будет работать

Если же программатор не сможет опознать микросхему (смотрим скрин ниже), то она либо мертва, либо программатор собран не верно или не поступает питание, нет массы. Более вероятен второй вариант


Вот что ответит командная строка, если программатор собран не верно. Чип не опознается, т.е. неудача

Мутим DOS или "я не ищу легких путей"

DOS запилить себе не так сложно. Можно банально сделать загрузочную дискету средствами самой ОС Windows через форматирование дискеты и положить туда папку с программатором и новой прошивкой, загрузившись после (на рабочем ПК) в консоль используем программатор

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

Третий вариант - создать загрузочную флешку, это самый удобный и современный на сегодня вариант. Хороший способ описан, например, здесь
Я еще могу порекомендовать воспользоваться проектом MultiBoot - мультизагрузочная флешка. В конце мы получаем очень функциональный инструмент на все случаи жизни, мощный такой реаниматор. DOS там тоже есть с поддержкой NTFS, длинных имен и прочего. Инструкция по созданию там присутствует, все очень удобно и легально

Будем считать, что DOS мы запустили (владельцам Linux это не нужно, для них есть SPIPGM файл без разширения) Заходим в командную строку, переходим в папку программатора. Чтобы узнать основные команды выполняем просто spipgm


В DOS все опозналось тоже без проблем

Основные программы, которые нам понадобятся:

spipgm /i - идентификация микросхемы в программаторе. Если программатор сделан и подключен верно, то микросхема (если она в списке выше) опознается и соответственно с ней можно будет дальше работать
spipgm /d dump.rom - чтение содержимого микросхемы в файл dump.rom
spipgm /e - полное стирание содержимого микросхемы, рекомендуется сделать перед записью
spipgm /p new.rom - прошивка, запись в микросхему данных из файла new.rom - целого и правильного файла прошивки для конкретной материнский платы, можно взять с сайта производителя или снять с другой микросхемы аналогичной платы
spipgm /u - анлок, т.е. разблокировка микросхемы для записи, если такая защита имеется

Итого для совершения задуманного с целью восстановления нам необходимо выполнить последовательность команд:

1. spipgm /i - идентифицируемся
2. spipgm /u - разблокируемся
3. spipgm /e - стираем микросхему с кривым содержимым
4. spipgm /p new.rom - зашиваем правильную прошивку

Обращаю внимание, что если мы все делаем в среде Windows, то вместо spipgm пользуемся командой spipgmw

После этого вырубаем ПК через кнопку выключения и отключаем программатор

Внимание! Все манипуляции с портом LPT необходимо производить только с отключенным питанием платы. Т.е. перед тем как подключить или отключить что-нибудь от LPT необходимо полностью выключить БП, поставить переключатель БП в положение Off (или вынуть кабель) подождать 10сек (разрядятся конденсаторы) и только потом что-то подключать или отключать. Если не следовать этому простому правилу, то велик шанс остаться без LPT, он очень капризен к подобным вещам в силу своей незащищенности

Послесловие

Итого плата теперь уже моя была восстановлена и получила вторую жизнь. Буду использовать ее в качестве тестового и сервисного полигона для проверки другой комплектухи. Мои читатели теперь тоже смогут что-нибудь оживить, что долгое время валялось и ждало своего часа

Так же обращаю внимание, что данный метод подходит и для восстановления не только на мат.платах, но и на видеокартах, как ATI/AMD так и nVidia. Многие микросхемы, что указаны выше в списке совместимости устанавливаются так же и на видеокарты, вот только они всегда припаяны к видеокарте, поэтому для восстановления видях понадобится навык пайки SMD. Здесь обычно 2 варианта - отпайка микрухи и установка ее на заранее вытравленную площадку программатора или подпайка проводами на саму плату видеоадаптера

Надеюсь мой опыт поможет кому-нибудь сэкономить деньги и железки, ведь обращаться за подобными услугами в СЦ будет не совсем разумно - подобная плата на вторичном рынке сопостовима как раз со стоимостью ремонта, и поэтому надо либо восстанавливать самому, либо идти в магазин за новой. Если у меня появится возможность поковырять программатор и "ы с чипами 20 пин(в квадратных кроватях находятся), то материал будет дополнен. Благодарю за внимание.

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама