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

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

Восстанавливаем BIOS на программаторе после неудачного обновления | Материнские платы | Блог

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

Существует 3 основных способа восстановления запоротого BIOS

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

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

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

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

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

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

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

На мою удачу микросхемой BIOS была MX25L4005APC-12G — 4 мегабитная микруха в DIP корпусе. Т.е. ее даже отпаивать не пришлось. BIOS версии 1.0 лежал на сайте производителя отдельным файлом как раз на 512kb (4Mbit/8=512Kb), т.е. задача до банальности проста — сваять программатор, поставить на него микруху и зашить! К чему я и решил приступить

Схема программатора

Данная микросхема SPI типа, что позволяет прошить ее элементарным программатором через LPT порт. В нете был найден соответствующий программатор сразу с ПО для его использования, называется он SPIpgm, т.е. SPI Programmator, скачать можно здесь. Элементарнейшая схема из 4х резисторов, конденсатора и сокета на 8 пин по желанию. Ограничением его является собственно ограниченный список поддерживаемых микросхем — они должны быть 8pin и быть SPI типа

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

AMIC

A25L05PU/PT (64kB), A25L10PU/PT (128kB), A25L20PU/PT (256kB), A25L40PU/PT (512kB), A25L80PU/PT (1MB), A25L16PU/PT (2MB), A25L32PU/PT (4MB), A25L64PU/PT (8MB), A25L512 (64kB), A25L010 (128kB), A25L020 (256kB), A25L040 (512kB), A25L080 (1MB)

Atmel

AT25F512B (64kB), AT25DF021 (256kB), AT26DF041 (512kB), AT25DF041A (512kB), AT26F004 (512kB), AT26DF081 (1MB), AT25/26DF081A (1MB), AT25DF081 (1MB), AT26DF161 (1MB), AT26DF161A (2MB), AT25DF161 (2MB), AT25DQ161 (2MB), AT25/26DF321 (4MB), AT25DF321A (4MB), AT25DQ321A (4MB), AT25DF641(A) (8MB)

EON

EN25B10 (128kB), EN25B20 (256kB), EN25B40(T) (512kB), EN25B80 (1MB), EN25B16 (2MB), EN25P32 (4MB), EN25P64 (8MB), EN25P128 (16MB), EN25F10 (128kB), EN25F20 (256kB), EN25F40 (512kB), EN25F80 (1MB), EN25F16 (2MB), EN25F32 (4MB), EN25F64 (8MB), EN25F128 (16MB)

ESMT

F25L004A (512kB), F25L008A/08PA (1MB), F25L016A/16PA (2MB), F25L32PA (4MB), F25L64PA (8MB), F25S04PA (512kB), F25L08PA (1MB), F25L016QA (2MB), F25L32QA (4MB), F25L64QA (8MB)

GigaDevice

GD25Q512 (64kB), GD25Q10 (128kB), GD25Q20 (256kB), GD25Q40 (512kB), GD25Q80 (1MB), GD25Q16 (2MB), GD25Q32 (4MB), GD25Q64 (8MB)

Intel

QB25F016S33B8 (2MB), QB25F032S33B8 (4MB), QB25F064S33B8 (8MB)

Macronix

MX25L512E (64kB), MX25L1005/1006E (128kB), MX25L2005/2006E (256kB), MX25L4005/4006E (512kB), MX25L8005/8006E (1MB), MX25L1605/1606E (2MB), MX25L3205/3206E (4MB), MX25L6405/6406E (8MB), MX25L12835E/12836E (16MB), MX25L25635E/25735E/25835E (32MB)

PMC

Pm25LV512(A) (64kB), Pm25LV010(AB) (128kB), Pm25LV020 (256kB), Pm25LV040 (512kB), Pm25LV080B (1MB), Pm25LV016B (2MB), Pm25LV032B (4MB), Pm25LV064B (8MB)

Spansion

S25FL004A (512kB), S25FL008A (1MB), S25FL016A (2MB), S25FL032A (4MB), S25FL064A (8MB), S25FL128P/129P (16MB), S25FL256S (32MB), S25FL512S (64MB), S25FL01GS (128MB)

ST Microelectronic/Numonyx

M25P05 (64kB), M25P10 (128kB), M25P10AV (128kB), M25P20 (256kB), M25P40 (512kB), M25P80 (1MB), M25P16 (2MB), M25P32 (4MB), M25P64 (8MB), M25P128 (16MB), M45PE10 (128kB), M45PE20 (256kB), M45PE40 (512kB), M45PE80 (1MB), M45PE16 (2MB), M25PX80 (1MB), M25PX16 (2MB), M25PX32 (4MB), M25PX64 (8MB), N25Q032A13E (4MB), N25Q032A11E (4MB), N25Q064A13E (8MB), N25Q064A11E (8MB), N25Q128A13E (16MB), N25Q128A11E (16MB), N25Q256A13E (32MB), N25Q256A11E (32MB), N25Q512A13G (64MB), N25Q512A11G (64MB), N25Q00AA13GB (128MB)

SST

SST25VF512(B) (64kB), SST25VF010(B) (128kB), SST25VF020(B) (256kB), SST25VF040(B) (512kB), SST25VF080(B) (1MB), SST25VF016(B) (2MB), SST25VF032(B) (4MB), SST25VF064C (8MB), SST25VF128(B) (16MB), SST26VF016 (2MB), SST26VF032 (4MB), SST26VF064 (8MB)

Winbond

W25Q10B (128kB), W25Q20BV (256kB), W25Q40BV (512kB), W25Q80BV (1MB), W25Q16BV (2MB), W25Q32BV (4MB), W25Q64BV (8MB), W25Q128BV (16MB), W25Q256FV (32MB), W25X10 (128kB), W25X20 (256kB), W25X40 (512kB), W25X80 (1MB), W25X16 (2MB), W25X32 (4MB), W25X64 (8MB)

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

Аппаратная часть

В моем случае нужная мне память оказалась в этом списке и я приступил к изготовлению прогера. Устройство очень простое (по схеме видно) и многие не заморачиваются в таких случаях с травлением платы, а собирают навесным монтажом «на коленке», т.к. программатор понадобится от силы пару раз. Я тоже не стал заморачиваться и сделал навесным. В итоге у меня не заработало) Хотя вроде бы ни где не ошибся, возможно капризничало из-за длины проводов или их сечения

Во второй раз уже решил «чтобы наверняка» запилить себе нормально, т.е. развел плату в SprintLayot 5.1 и сделал по технологии ЛУТ. Лудил сплавом Розэ. Последнее время мне нравиться его использовать, т.к. получается довольно быстро, просто и лужение происходит равномерным тонким слоем — высверленные отверстия не закрываются. Еще давно в посудном магазине по уценке купил за 30р эмалированную миску — удачное приобретение для таких дел) Наливаю в нее на половину воды, довожу до кипения, добавляю 1-2 ложки лимонной кислоты (работает как флюс и повышает температуру кипения, затем опускаю плату и 1-2 кусочка сплава. «Управляю» процессом 2мя палочками от мороженного, обёрнутыми с одной из сторон в ткань для растирания сплава по плате и удержания платы. После окончания процесса остатки сплава можно вынуть для последующего использования. Стоит сплав копейки (около 150р вроде), а хватает его при подобных затратах на годы). В общем это было такое лирическое отступление, теперь непосредственно скрин разведенной платы. Саму разводку платы в формате *.lay можно скачать здесь

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

Необходимые ингредиенты:

— Резисторы 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 (оранжевый провод) и массу (черный) для программатора

Можно еще как вариант использовать батарейку BIOS она как раз на 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 через форматирование дискеты и положить туда папку с программатором и новой прошивкой, загрузившись после BIOS (на рабочем ПК) в консоль используем программатор

Второй вариант — сделать 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 — анлок, т.е. разблокировка микросхемы для записи, если такая защита имеется

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

1. spipgm /i — идентифицируемся

2. spipgm /u — разблокируемся

3. spipgm /e — стираем микросхему с кривым содержимым

4. spipgm /p new.rom — зашиваем правильную прошивку

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

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

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

Послесловие

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

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

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

STM32DISCOVERY копирует SPI Flash на коленке + восстанавливаем пол-матрицы монитора

Началась история с того, что друзья выкидывали монитор Samsung SyncMaster 225BW. Жалобы — не показывает половина матрицы и монитор иногда забывает настройки яркости/контрастности/цветности и т.д. и запускается с «нереальными» настройками, например с отрицательным значением яркости.
Ключевые проблемы: непропай, копирование SPI Flash на STM32DISCOVERY. Скорее для новичков.

«Эдди, половина!»
Для начала нужно было разобраться с половиной матрицы. Вот картинка, я её спёр с интернета, потому что своей не сделал, увы:

Разобрал монитор, снял защитный кожух с платы матрицы, включил монитор, подал на него сигнал и стал аккуратно, держась руками за металлический корпус (дабы быть относительно него заземлённым), прощупывать плату мягкими нажимами на компоненты. В итоге обнаружил, что при касании некоторой области с краю платы, изображение на второй половине появляется, хоть и не очень чётко. Дальнейшая «прощупывание» для сужения области поиска и последующая прозвонка SMD резисторов показала непропай, который был устранён. Для прозвонки одного компонента пришлось скальпелем аккуратно сцарапать с дорожки лак. Лучше всего прозванивать как можно нежнее и подальше от самого компонента, дабы не вызвать ложное замыкание искомого непропая.

Исправляем сбой настроек
После этого небольшого ремонта я ещё долго не подходил к проблеме с настройками. Ну мешала она немного, приходилось частенько по несколько раз включать и выключать, затем настраивать заново, настройки для аналогового входа вообще постоянно «автонастраивались» при включении. Но лень же заниматься…
Тем временем, задача продолжала решаться в ленивом режиме. Достал на монитор «сервис мануал», открыл в нём схему. В схеме обнаружил три микросхемы энергонезависимой памяти.
Одна подключена к порту D-SUB и к сигнальному процессору:

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

Третья подключена только к сигнальному процессору:

Те микросхемы, которые соединены с D-SUB и DVI, судя по всему, призваны что-то сообщать компьютеру при подключении к нему монитора. При том схема устроена так, что питаться они могут и от соответствующего D-SUB или DVI порта, то есть при обесточенном мониторе.
Подозрение пало на микросхему, подключенную только к сигнальному процессору:

Пин WP# (Write Protection инвертированый) запитан от высокого уровня, значит аппаратная защита от записи у неё отключена, а это значит, что в неё может писать процессор. Хммм.
Для начала купил микросхему, по принципиальной схеме указана sst25vf010a-33-4C-SAE. В Проме оказалась только sst25vf010a-33-4I-SAE. Качаем на неё документ, смотрим:

Разница в температурных диапазонах, нам предлагают ставить Commercial от 0°C до 70°C, а в Проме есть Industrial от -40°C до +85°C, то есть диапазон полностью перекрыт (и она, наверно дороже, зараза!). Пляшем!
Первая мысль: в сигнальном процессоре, наверно своей энергонезависимой памяти море, впаяю пустую, процессор её сам заполнит. Но нет, после впаивания пустой памяти монитор запускаться отказался. О-кей, значит надо прошивку со старой перекатать на новую.
Под рукой STM32DISCOVERY на STM32F303. Питание там есть, два SPI найдётся, надо только написать программу.
Открываем монитор, ищем микросхему, а там стоит PM25LV010, аналог sst25vf010a. Припаиваем её на сопли к DISCOVERY таким образом:
///29 PA4 CS ///30 PA5 SPI1_SCK ///31 PA6 SPI1_MISO ///32 PA7 SPI1_MOSI

Я в коде инициализации оставляю такие комментарии, здесь номер ножки, порт, назначение порта. Всё просто и понятно.
Пин WP# соединяем с VSS, чтобы исключить случайную запись данных в неё.
Читать научились, думал выплюнуть прошивку на компьютер через printf в консоль и куда-нибудь сохранить. Оказалось что пин разъёма программирования и отладки SWD под названием SWO (через который, в частности, работает printf) не подключен. Не беда — подчключаем PB3 к 6ой ноге SWD и получаем нормальный быстрый printf. Есть вариант использования в режиме semihosted, но он очень медленный. При выплёвывании обнаружилось, что не так уж много можно выплюнуть в IAR, с определённого момента консоль начинает съедать информацию, видимо буфер маловат. Ну и хрен с ним, подключу вторую память к SPI2 и напрямую скопирую.
Вторую память подключил к SPI2:

        ///56 PD9 CS
        ///55 PB13 SPI2_SCK
        ///53 PB14 SPI2_MISO
        ///54 PB15 SPI2_MOSI

Пин WP# соединяем с VDD, чтобы можно было в неё писать.
А вот и сопли:

Про написание этой кривой поделки рассказывать долго не буду, обозначу только проблемы, с которыми столкнулся:
1) к SPI1 без проблем микросхему подключил и смог всё прочитать, но вот с SPI2 возникла проблема, в старой версии Datasheet на STM32F303 ошибка в указании SPI2_SCK, что выяснилось проверкой осциллографом. В свежем мануале выяснилось, что перепутали вывод. КАЧАЙТЕ СВЕЖИЕ МАНУАЛЫ ОТ ST Microelectronic!
2) документация на sst25vf010a и PM25LV010 отличается, да так, что в одной написано значительно меньше, и понять, как оно читается и пишется невозможно.
3) первая прошивка прошла неудачно, обнаружилось ДВА байта, только ДВА!!! неправильно переписанных. Как так получилось — не знаю. Чтение и запись производил при максимальных делителях частот для SPI, но ошибка возникла. Может что-то включал в этот момент свой пылесос «Урал» в соседней квартире, а на втором байте он его выключал. В общем, стёр весь чип и скопировал заново — помогло. При первой записи с ошибкой посчитал, что всё и так заработает, ведь подозрение было на битую память, но нет… монитор повис, пришлось снова копировать.

Эта заметка не претендует на хороший код или какие-то претензии на качество. Задача была сделать, чтобы работало, быстрее, ленивее, на коленке. Результат — монитор перестал страдать проблемами, всё отлично работает. Информация, скорее, будет полезна для новичков.

Прикладываю проект IAR, может кому-то пригодится. Осторожно! Внутри наколенный говнокод!

UPD
Спасибо нашему товарищу VGA за помощь в комментариях. Пляски с флэшкой на 128 кБ не помогли, теперь под подозрением IC200, которая именуется у них, судя по наименованию выводов, NVRAM. Это микросхема AT24C08, размером 8 кбит, 64 страницы по 16 байт, т.е. 1 кБайт. + прозвоним обвязку.
И так, вот она:


Микросхему перепаял, обвязку проверил, наличие контакта от памяти до ног сигнального процессора проверил. Микросхема встала на место без копирования данных, первичные настройки были странные, но потом, вроде, устаканились. Всё, вроде, в норме, но увы, не помогло.
Что дальше? Дальше есть желание сделать следующее:
1) Почитать документацию на память, понять как она работает.
2) Вывести сигналы с ног памяти наружу и встать на них осциллографом. Глядишь чего и увижу.
3) Если выше не будет выявлено факта записи в микруху, то м.б. есть цепь, которая оповещает процессор о пропадании питания и необходимости записи настроек. Но это маловероятно.
Какой же, цуко, интересный монитор.
Признаю, с этим монитором я уже дважды обоср***я ошибся, и, пока что, проблему с настройками не решил.

Программатор Ch441A. Как пользоваться и поддерживаемые чипы


Программатор микросхем BIOS 24 и 25 серии Ch441A Pro

Программатор Ch441A Pro используется для программирования микросхем BIOS компьютеров, ноутбуков, видеокарт, мультимедийных плееров, памяти телевизоров, ЖК-дисплеев, маршрутизаторов, игровых приставок, спутниковых ресиверов и др.

Купить можно по этой ссылке

Как пользоваться программатором Ch441A Pro:

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

Скачайте ПО (Ch441A Programmer версии 1.3) и драйвер по ссылке

Системные требования ПО:
OC: Win98, WinME, WIN2K, WinXP, Vista, Win7, Win8, Win10 (32-64 bit)

Распакуйте скачанный архив и запустите программу Ch441A_130.exe

Подключите программатор к компьютеру (должен загореться светодиод POWER).

Драйвер к программатору может установится автоматически. Если Windows не удалось установить драйвер, найдите в скаченном архиве папку Ch441Parallel_driver_support WIN7 и установите драйвер из нее.

После того как программа и драйвер будут установлены можно приступить к программированию.

Чтобы запрограммировать необходимую микросхему на ZIF панели устройства, нужно открыть пазы для её установки, подняв фиксаторную ручку. Установить микросхему согласно ключу нарисованному на программаторе. Зажать фиксаторной ручкой микросхему в пазах. Cм. рисунок 1.1 (правильная установка микросхемы BIOS 25 серии)

Рис. 1.1 (правильная установка микросхемы BIOS 25 серии)

Если нужно прошить микросхемы 25-й серии, в корпусе SOP8 или SOP16, на плате программатора предусмотрены контактные площадки для микросхем в таких корпусах. Можно припаять микросхему к контактной площадке (см рисунок 1.2.) или просто прижать прищепкой к контактам. Так же можно воспользоваться дополнительной платой (идет в комплекте с программатором) и устанавливать/припаять микросхему на нее (см. рисунок. 1.3.)

Запрограммировать микросхему 25-й серии, в корпусе SOP8 можно прямо на материнской плате без выпаивания. Для этого можно воспользоваться прищепкой-переходником (в комплекте не идет. приобретается отдельно) (см. рисунок 1.4.) Красный провод на шлейфе прищепки — контакт который должен соответствовать первой ножке микросхемы (на самой микросхеме обычно обозначена точкой). При таком способе прошивки, плату нужно обязательно обесточить и вынуть батарейку BIOS.

Рис. 1.4

В программаторе есть возможность внутрисхемного программирования с помощью ISP интерфейса (этот метод программирования описываться здесь не будет, информацию можно найти на форумах в интернете)

Перемычку для переключения режимов программирования не трогаем! Даже когда программируем без выпаивания через прищепку. Она должна соединять 1 и 2 контакты. Убираем перемычку только в случае если используем ISP интерфейс.

Итак приступаем непосредственно к программированию:

ПОСЛЕ!!! установки/подключения микросхемы — подключите программатор к USB порту (возможно при подключении потребуется подождать пока Windows установит драйвер на устройство) и запустите программу Ch441A Programmer. Интерфейс программы можно переключить на русский язык.

Если микросхема подключена правильно — все кнопки в программе будут активны.

Далее нужно будет выбрать название микросхемы, для чего можно нажать кнопку «ДЕТЕКТ» (программа сама предложит наиболее подходящие микросхемы) или выполнить поиск вручную через кнопку «ПОИСК».

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

Интерфейс программы интуитивно понятен и прост:

Поддерживаемые программатором Ch441A Pro микросхемы 25 серии

AMIC
A25L512 A25L05P A25L10P A25L010 A25L020 A25L20P A25L40P A25L040 A25L080 A25L80P A25L016 A25L16P A25L032

ATMEL
AT25F512 AT25F512B AT25F512A AT25FS010 AT25F1024 AT25F1024A AT25F2048 AT25DF021 AT25F4096 AT25FS040 AT25DF041A AT25DF321A AT26DF321 AT25DF321 AT25DF641

COMMON
25X005 25X05 25X10 25X20 25X40 25X80 25X16 25X32 25X64 25X128 25X256 25X512 25X1024 25X2048

EON
EN25F05 EN25P05 EN25LF05 EN25F10 EN25LF10 EN25D10 EN25P10 EN25F20 EN25D20 EN25LF20 EN25F40 EN25D40 EN25LF40 EN25Q80 EN25D80 EN25F80 EN25P80 EN25T80 EN25B16T EN25T16 EN25B16 EN25D16 EN25F16 EN25Q16 EN25P32 EN25Q32 EN25F32 EN25B32 EN25B32T EN25Q64 EN25B64 EN25F64 EN25B64T EN25F128 EN25Q128

ES
ES25P10 ES25P20 ES25M40A ES25M40 ES25P40 ES25M80 ES25P16 ES25M80A ES25P32 ES25P80 ES25M16 ES25M16A

ESMT (только чтение)
F25L04UA F25L16PA F25L004A F25L32QA F25L08PA F25L32PA F25L008A F25L016A

GIGADEVICE
GD25Q512 GD25Q10 GD25Q20 GD25F40 GD25D40 GD25Q80 GD25D80 GD25T80 GD25F80 GD25Q16 GD25Q32 GD25Q64 GD25Q128

KH
25L8036D

MXIC
MX25V512 MX25L4005A MX25L1635D MX25L3237D MX25L6455E MX25L12845E MX25L512 MX25V4035 MX25L1605D MX25L3225D MX25L6408D MX25L1005 MX25V4005 MX25L1608D MX25L3205D MX25L6406E MX25L2005 MX25V8005 MX25L3235D MX25L3206E MX25L6445E MX25L8035 MX25L8005 MX25L3208D MX25L6405D MX25L12805D

NEXFLASH
NX25P10 NX25P20 NX25P40 NX25P80 NX25P16 NX25P32

NSHINE
MS25X05 MS25X16 MS25X10 MS25X32 NS25X20 MS25X64 NS25X40 MS25X128 MS25X80

PMC
PM25LV512A PM25LV016B PM25LV010A PM25LV020 PM25LV040 PM25LV080B

SAIFUN
SA25F005 SA25F160 SA25F010 SA25F320 SA25F020 SA25F040 SA25F080

SPANSION
S25FL004A S25FL032A S25FL040A S25FL064A S25FL008A S25FL128P S25FL160 S25FL129P S25FL016A S25FL128A

SST (только чтение)
SST25VF512A SST25VF512 SST25VF010 SST25VF010A SST25 SST25VF020 SST25VF040B SST25VF040A SST25VF040 SST25′ SST25VF016B SST25VF032B SST25VF064C

ST
M25P05A M25PE10 M25P10A M25P20 M25PE20 M25PE40 M25P40 M25PE80 M25P80 M25PX80 M25PX16 M25P16 M25PE16 M25P32 M25PE32 M25PX32 M25PX64 M25P64 M25PE64 M25P128

WINBOND
W25X10 W25X10L W25P10 W25X10AL W25X10A W25P20 W25X20AL W25X20A W25X20 W25X20L W25X40A W25P40 W25Q40BV W25X40L W25X40 W25X40AL W25Q80BV W25Q80V W25X80 W25P80 W25X80A W25X80L W25X80AL W25P16 W25Q16BV W25Q16V W25X16 W25Q32BV W25Q32V W25X32 W25P32 W25Q64BV W25X64 W25Q128BV

Поддерживаемые программатором Ch441A Pro микросхемы 24 серии

ATMEL
AT24C01B AT24C01 AT24C01A AT24C02 AT24C02A AT24C02B AT24C04B AT24C04 AT24C04A AT24C08A AT24C08B AT24C08 AT24C16 AT24C16A AT24C16B AT24C32B AT24C32A AT24C32 AT24C64 AT24C64A AT24C64B AT24C128 AT24C128A AT24C128B AT24C256B AT24C256 AT24C256A AT24C512B AT24C512A AT24C512 AT24C1024 AT24C1024A AT24C1024B

CATALYST
CAT24C01 CAT24WC01 CAT24WC02 CAT24C02 CAT24C04 CAT24WC04 CAT24WC08 CAT24C08 CAT24WC16 CAT24C16 CAT24WC32 CAT24C32 CAT24WC64 CAT24C64 CAT24WC128 CAT24C128 CAT24WC256 CAT24C256 CAT24C512 CAT24WC512 CAT24C1024 CAT24WC1024

COMMON
24C01 3V 24C01 5V 24C02 3V 24C02 5V 24C04 5V 24C04 3V 24C08 3V 24C08 5V 24C16 5V 2406 3V 24C32 5V 24C32 3V 24C64 5V 24C64 3V 24028 5V 24C128 3V 24C256 5V 24C256 3V 24C512 5V 24C512 3V 240024 3V 24C1024 5V 24C2048 5V 24C2048 3V 24C4096 5V 24C4096 3V

FAIRCHILD
FM24C01L FM24C02L FM24C03L FM24C04L FM24C05L FM24C08L FM24C09L FM24C17L FM24C16L FM24C32L FM24C64L FM24C128L FM24C256L FM24C512L FM

HOLTEK
HT24C01 HT24LC01 HT24CD2 HT24LC02 HT24C04 HT24LC04 HT24C08 HT24LC08 HT24C16 HT24LC16 HT24LC32 HT24C32 HT24LC64 HT24C64 HT24C128 HT24LC128 HT24C256 HT24LC256 HT24LC512 HT24C512 HT24C1024 HT24LC1024

ISSI
IS24O01 IS24C02 IS24C04 IS24C08 IS24C16 IS24C32 IS24C64 IS24C128 IS24C256 IS24C512 IS24C1024

MICROCHIP
MIC24LC014 MIC24AA01 MIC24AA014 MIC24LC01B MIC24LC02B MIC24AA02 MIC24C02C MIC24AA025 MIC24AA04 MIC24LC04B MIC24LC024 MIC24AA024 MIC24LC025 MIC24LC08B MIC24AA08 MIC24LC16B MIC24AA16 MIC24LC32 MIC24AA32 MIC24LC64 MIC24FC64 MIC24AA64 MIC24FC128 MIC24AA128 MIC24LC128 MIC24AA256 MIC24LC256 MIC24FC256 MIC24AA512 MIC24LC512 MIC24FC512 MIC24AA1024

NSC
NSC24C02L NSC24C02 N5C24C64

RAMTRON
FM24CL04 FM24C04A FM24CL16 FM24C16A FM24CL64 FM24C64 FM24C256 FM24CL256 FM24C512

ROHM
BR24L01 BR24C01 BR24L02 BR24C02 BR24L04 BR24C04 BR24L08 BR24C08 BR24L16 BR24C16 BR24L32 BR24C32 BR24C64 BR24L64

ST
ST24C01 ST24C32 ST24C02 ST24C64 ST24C04 ST24C08 ST24C16

XICOR
X24O01 X24C02 X24C04 X24C08 X24C16


Подключение Ch441A Pro к микросхеме в корпусе SOP8 без выпаивания через прищепку — переходник.

Прищепка — переходник для программатора Ch441A Pro позволяет программировать микросхемы в корпусе SOP8 8pin без выпаивания.

1. Подсоедините переходник к программатору, согласно ключу нарисованному на программаторе. Первая ножка микросхемы обозначена на рисунке (на программаторе) точкой. На переходнике от прищепки к программатору ножки пронумерованы. См. рисунок 2.1 (правильное подключение переходника прищепки для программирования микросхемы 25 серии)

Рис. 2.1. Правильное подключение переходника прищепки для программирования микросхемы 25 серии

2. Подключите шлейф прищепки к переходнику. Красный провод должен соответствовать 1 ножке  переходника.

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

3. Подсоедините прищепку к микросхеме так, чтобы красный провод был на первой ножке микросхемы. см рисунок 2.2. На самой микросхеме первая ножка обычно обозначена точкой.  

ТОЛЬКО ПОСЛЕ!!! подсоединения к микросхеме и убедившись, что все соединено правильно, подключите программатор к USB порту компьютера.

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

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

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

Ch441A Pro как пользоваться и поддерживаемые микросхемы

Программатор микросхем BIOS 24 и 25 серии Ch441A Pro

Программатор Ch441A Pro используется для программирования микросхем BIOS компьютеров, ноутбуков, видеокарт, мультимедийных плееров, памяти телевизоров, ЖК-дисплеев, маршрутизаторов, игровых приставок, спутниковых ресиверов и др.

 

 

Как пользоваться программатором Ch441A Pro:

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

Скачайте ПО (Ch441A Programmer версии 1.3) и драйвер по ссылке

Системные требования ПО:
OC: Win98, WinME, WIN2K, WinXP, Vista, Win7, Win8, Win10 (32-64 bit)

Распакуйте скачанный архив и запустите программу Ch441A_130.exe

Подключите программатор к компьютеру (должен загореться светодиод POWER).

Драйвер к программатору может установится автоматически. Если Windows не удалось установить драйвер, найдите в скаченном архиве папку Ch441Parallel_driver_support WIN7 и установите драйвер из нее.

После того как программа и драйвер будут установлены можно приступить к программированию.

Чтобы запрограммировать необходимую микросхему на ZIF панели устройства, нужно открыть пазы для её установки, подняв фиксаторную ручку. Установить микросхему согласно ключу нарисованному на программаторе. Зажать фиксаторной ручкой микросхему в пазах. Cм. рисунок 1.1 (правильная установка микросхемы BIOS 25 серии)

Рис. 1.1 (правильная установка микросхемы BIOS 25 серии)

Если нужно прошить микросхемы 25-й серии, в корпусе SOP8 или SOP16, на плате программатора предусмотрены контактные площадки для микросхем в таких корпусах. Можно припаять микросхему к контактной площадке (см рисунок 1.2.) или просто прижать прищепкой к контактам. Так же можно воспользоваться дополнительной платой (идет в комплекте с программатором) и устанавливать/припаять микросхему на нее (см. рисунок. 1.3.)

Рис. 1.2.

Рис. 1.3

Запрограммировать микросхему 25-й серии, в корпусе SOP8 можно прямо на материнской плате без выпаивания. Для этого можно воспользоваться прищепкой-переходником (в комплекте не идет. приобретается отдельно) (см. рисунок 1.4.) Красный провод на шлейфе прищепки — контакт который должен соответствовать первой ножке микросхемы (на самой микросхеме обычно обозначена точкой). При таком способе прошивки, плату нужно обязательно обесточить и вынуть батарейку BIOS.

Рис. 1.4

В программаторе есть возможность внутрисхемного программирования с помощью ISP интерфейса (этот метод программирования описываться здесь не будет, информацию можно найти на форумах в интернете)

Перемычку для переключения режимов программирования не трогаем! Даже когда программируем без выпаивания через прищепку. Она должна соединять 1 и 2 контакты. Убираем перемычку только в случае если используем ISP интерфейс.

Итак приступаем непосредственно к программированию:

ПОСЛЕ!!! установки/подключения микросхемы — подключите программатор к USB порту (возможно при подключении потребуется подождать пока Windows установит драйвер на устройство) и запустите программу Ch441A Programmer. Интерфейс программы можно переключить на русский язык.

Если микросхема подключена правильно — все кнопки в программе будут активны.

Далее нужно будет выбрать название микросхемы, для чего можно нажать кнопку «ДЕТЕКТ» (программа сама предложит наиболее подходящие микросхемы) или выполнить поиск вручную через кнопку «ПОИСК».

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

Интерфейс программы интуитивно понятен и прост:

Поддерживаемые программатором Ch441A Pro микросхемы 25 серии

AMIC
A25L512 A25L05P A25L10P A25L010 A25L020 A25L20P A25L40P A25L040 A25L080 A25L80P A25L016 A25L16P A25L032

ATMEL
AT25F512 AT25F512B AT25F512A AT25FS010 AT25F1024 AT25F1024A AT25F2048 AT25DF021 AT25F4096 AT25FS040 AT25DF041A AT25DF321A AT26DF321 AT25DF321 AT25DF641

COMMON
25X005 25X05 25X10 25X20 25X40 25X80 25X16 25X32 25X64 25X128 25X256 25X512 25X1024 25X2048

EON
EN25F05 EN25P05 EN25LF05 EN25F10 EN25LF10 EN25D10 EN25P10 EN25F20 EN25D20 EN25LF20 EN25F40 EN25D40 EN25LF40 EN25Q80 EN25D80 EN25F80 EN25P80 EN25T80 EN25B16T EN25T16 EN25B16 EN25D16 EN25F16 EN25Q16 EN25P32 EN25Q32 EN25F32 EN25B32 EN25B32T EN25Q64 EN25B64 EN25F64 EN25B64T EN25F128 EN25Q128

ES
ES25P10 ES25P20 ES25M40A ES25M40 ES25P40 ES25M80 ES25P16 ES25M80A ES25P32 ES25P80 ES25M16 ES25M16A

ESMT (только чтение)
F25L04UA F25L16PA F25L004A F25L32QA F25L08PA F25L32PA F25L008A F25L016A

GIGADEVICE
GD25Q512 GD25Q10 GD25Q20 GD25F40 GD25D40 GD25Q80 GD25D80 GD25T80 GD25F80 GD25Q16 GD25Q32 GD25Q64 GD25Q128

KH
25L8036D

MXIC
MX25V512 MX25L4005A MX25L1635D MX25L3237D MX25L6455E MX25L12845E MX25L512 MX25V4035 MX25L1605D MX25L3225D MX25L6408D MX25L1005 MX25V4005 MX25L1608D MX25L3205D MX25L6406E MX25L2005 MX25V8005 MX25L3235D MX25L3206E MX25L6445E MX25L8035 MX25L8005 MX25L3208D MX25L6405D MX25L12805D

NEXFLASH
NX25P10 NX25P20 NX25P40 NX25P80 NX25P16 NX25P32

NSHINE
MS25X05 MS25X16 MS25X10 MS25X32 NS25X20 MS25X64 NS25X40 MS25X128 MS25X80

PMC
PM25LV512A PM25LV016B PM25LV010A PM25LV020 PM25LV040 PM25LV080B

SAIFUN
SA25F005 SA25F160 SA25F010 SA25F320 SA25F020 SA25F040 SA25F080

SPANSION
S25FL004A S25FL032A S25FL040A S25FL064A S25FL008A S25FL128P S25FL160 S25FL129P S25FL016A S25FL128A

SST (только чтение)
SST25VF512A SST25VF512 SST25VF010 SST25VF010A SST25 SST25VF020 SST25VF040B SST25VF040A SST25VF040 SST25′ SST25VF016B SST25VF032B SST25VF064C

ST
M25P05A M25PE10 M25P10A M25P20 M25PE20 M25PE40 M25P40 M25PE80 M25P80 M25PX80 M25PX16 M25P16 M25PE16 M25P32 M25PE32 M25PX32 M25PX64 M25P64 M25PE64 M25P128

WINBOND
W25X10 W25X10L W25P10 W25X10AL W25X10A W25P20 W25X20AL W25X20A W25X20 W25X20L W25X40A W25P40 W25Q40BV W25X40L W25X40 W25X40AL W25Q80BV W25Q80V W25X80 W25P80 W25X80A W25X80L W25X80AL W25P16 W25Q16BV W25Q16V W25X16 W25Q32BV W25Q32V W25X32 W25P32 W25Q64BV W25X64 W25Q128BV

 

Поддерживаемые программатором Ch441A Pro микросхемы 24 серии

ATMEL
AT24C01B AT24C01 AT24C01A AT24C02 AT24C02A AT24C02B AT24C04B AT24C04 AT24C04A AT24C08A AT24C08B AT24C08 AT24C16 AT24C16A AT24C16B AT24C32B AT24C32A AT24C32 AT24C64 AT24C64A AT24C64B AT24C128 AT24C128A AT24C128B AT24C256B AT24C256 AT24C256A AT24C512B AT24C512A AT24C512 AT24C1024 AT24C1024A AT24C1024B

CATALYST
CAT24C01 CAT24WC01 CAT24WC02 CAT24C02 CAT24C04 CAT24WC04 CAT24WC08 CAT24C08 CAT24WC16 CAT24C16 CAT24WC32 CAT24C32 CAT24WC64 CAT24C64 CAT24WC128 CAT24C128 CAT24WC256 CAT24C256 CAT24C512 CAT24WC512 CAT24C1024 CAT24WC1024

COMMON
24C01 3V 24C01 5V 24C02 3V 24C02 5V 24C04 5V 24C04 3V 24C08 3V 24C08 5V 24C16 5V 2406 3V 24C32 5V 24C32 3V 24C64 5V 24C64 3V 24028 5V 24C128 3V 24C256 5V 24C256 3V 24C512 5V 24C512 3V 240024 3V 24C1024 5V 24C2048 5V 24C2048 3V 24C4096 5V 24C4096 3V

FAIRCHILD
FM24C01L FM24C02L FM24C03L FM24C04L FM24C05L FM24C08L FM24C09L FM24C17L FM24C16L FM24C32L FM24C64L FM24C128L FM24C256L FM24C512L FM

HOLTEK
HT24C01 HT24LC01 HT24CD2 HT24LC02 HT24C04 HT24LC04 HT24C08 HT24LC08 HT24C16 HT24LC16 HT24LC32 HT24C32 HT24LC64 HT24C64 HT24C128 HT24LC128 HT24C256 HT24LC256 HT24LC512 HT24C512 HT24C1024 HT24LC1024

ISSI
IS24O01 IS24C02 IS24C04 IS24C08 IS24C16 IS24C32 IS24C64 IS24C128 IS24C256 IS24C512 IS24C1024

MICROCHIP
MIC24LC014 MIC24AA01 MIC24AA014 MIC24LC01B MIC24LC02B MIC24AA02 MIC24C02C MIC24AA025 MIC24AA04 MIC24LC04B MIC24LC024 MIC24AA024 MIC24LC025 MIC24LC08B MIC24AA08 MIC24LC16B MIC24AA16 MIC24LC32 MIC24AA32 MIC24LC64 MIC24FC64 MIC24AA64 MIC24FC128 MIC24AA128 MIC24LC128 MIC24AA256 MIC24LC256 MIC24FC256 MIC24AA512 MIC24LC512 MIC24FC512 MIC24AA1024

NSC
NSC24C02L NSC24C02 N5C24C64

RAMTRON
FM24CL04 FM24C04A FM24CL16 FM24C16A FM24CL64 FM24C64 FM24C256 FM24CL256 FM24C512

ROHM
BR24L01 BR24C01 BR24L02 BR24C02 BR24L04 BR24C04 BR24L08 BR24C08 BR24L16 BR24C16 BR24L32 BR24C32 BR24C64 BR24L64

ST
ST24C01 ST24C32 ST24C02 ST24C64 ST24C04 ST24C08 ST24C16

XICOR
X24O01 X24C02 X24C04 X24C08 X24C16


Подключение Ch441A Pro к микросхеме в корпусе SOP8 без выпаивания через прищепку — переходник.

Прищепка — переходник для программатора Ch441A Pro позволяет программировать микросхемы в корпусе SOP8 8pin без выпаивания.

1. Подсоедините переходник к программатору, согласно ключу нарисованному на программаторе. Первая ножка микросхемы обозначена на рисунке (на программаторе) точкой. На переходнике от прищепки к программатору ножки пронумерованы. См. рисунок 2.1 (правильное подключение переходника прищепки для программирования микросхемы 25 серии)

 

Рис. 2.1. Правильное подключение переходника прищепки для программирования микросхемы 25 серии

 

2. Подключите шлейф прищепки к переходнику. Красный провод должен соответствовать 1 ножке  переходника.

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

3. Подсоедините прищепку к микросхеме так, чтобы красный провод был на первой ножке микросхемы. см рисунок 2.2. На самой микросхеме первая ножка обычно обозначена точкой. 

 

ТОЛЬКО ПОСЛЕ!!! подсоединения к микросхеме и убедившись, что все соединено правильно, подключите программатор к USB порту компьютера.

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

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

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

 

Восстанавливаем BIOS на программаторе после неудачного обновления | Материнские платы | Блог

Настоящий разжеванный материал по необходимому вопросу

Существует 3 основных способа восстановления запоротого BIOS

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

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

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

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

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

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

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

На мою удачную микросхему BIOS MX25L4005APC-12G — 4 мегабитная микруха в DIP корпусе.Т.е. ее даже отпаивать не пришлось. BIOS версии 1.0 лежал на сайте производителя объяснил как раз на 512kb (4Mbit / 8 = 512Kb), т.е. задача до банальности проста — сваять программатор, поставить на него микруху и зашить! К чему я и решил приступить

Схема программатора

Данная микросхема SPI типа, что позволяет прошить ее элементарным программатором через LPT порт. В нете был найден соответствующий программатор сразу с ПО для его использования, называется он SPIpgm , т.е. Программатор SPI, скачать можно здесь . Элементарнейшая схема из 4х резисторов, конденсатора и сокета на 8 пин по желанию. Ограничением является его собственно ограниченный список поддерживаемых микросхем — они должны быть 8-контактными и быть SPI типа

Программатор поддерживает очень много микрух, вот что заявлено для последнего момента написания материала версии 2.1:

AMIC

A25L05PU / PT ( 64 КБ), A25L10PU / PT (128 КБ), A25L20PU / PT (256 КБ), A25L40PU / PT (512 КБ), A25L80PU / PT (1 МБ), A25L16PU / PT (2 МБ), A25L32PU / PT (4 МБ), A25L64PU / PT (8 МБ ), A25L512 (64 КБ), A25L010 (128 КБ), A25L020 (256 КБ), A25L040 (512 КБ), A25L080 (1 МБ)

Atmel

AT25F512B (64 КБ), AT25DF021 (256kF041) AT25DF041A (512 КБ), AT26F004 (512 КБ), AT26DF081 (1 МБ), AT25 / 26DF081A (1 МБ), AT25DF081 (1 МБ), AT26DF161 (1 МБ), AT26DF161A (2 МБ), AT25DF161 (2 МБ), AT25DF161 (2 МБ), 321 / 26DMBDF161 (2 МБ), AT25 / 2MB (4 МБ), AT25DF321A (4 МБ), AT25DQ321A (4 МБ), AT25DF641 (A) (8 МБ)

EON

EN25B10 (128 кБ), EN25B20 (256 кБ), EN2 5B40 (T) (512 кБ), EN25B80 (1 МБ), EN25B16 (2 МБ), EN25P32 (4 МБ), EN25P64 (8 МБ), EN25P128 (16 МБ), EN25F10 (128 кБ), EN25F20 (256 кБ), EN25F40 (512 кБ), EN25F80 ( 1 МБ), EN25F16 (2 МБ), EN25F32 (4 МБ), EN25F64 (8 МБ), EN25F128 (16 МБ)

ESMT

F25L004A (512 кБ), F25L008A / 08PA (1 МБ), F25L016A (2 МБ), F25L016A F25L32PA (4 МБ), F25L64PA (8 МБ), F25S04PA (512 КБ), F25L08PA (1 МБ), F25L016QA (2 МБ), F25L32QA (4 МБ), F25L64QA (8 МБ)

GigaDevice

GigaDevice

GigaDevice 128 КБ), GD25Q20 (256 КБ), GD25Q40 (512 КБ), GD25Q80 (1 МБ), GD25Q16 (2 МБ), GD25Q32 (4 МБ), GD25Q64 (8 МБ)

Intel

QB25F016S33B (QB25F016S33)

QB25F016S33B , QB25F064S33B8 (8 МБ)

Macronix

MX25L512E (64 кбайт), MX25L1005 / 1006E (128 кбайт), MX25L2005 / 2006E (256 кбайт), MX25L4005 / 4006E (160256L), MX5 / 4006E (160256 L), MX5 (2 МБ), MX25L3205 / 3206E (4 МБ), MX25L64 05 / 6406E (8 МБ), MX25L12835E / 12836E (16 МБ), MX25L25635E / 25735E / 25835E (32 МБ)

PMC

Pm25LV512 (A) (64 кБ), Pm25LV010 (AB20) (256m25LV010) (AB20) ), Pm25LV040 (512 кБ), Pm25LV080B (1 МБ), Pm25LV016B (2 МБ), Pm25LV032B (4 МБ), Pm25LV064B (8 МБ)

Spansion

S25FL008A (2 512 S25FL008A) S25FL032A (4 Мбайт), S25FL064A (8 Мбайт), S25FL128P / 129P (16 Мбайт), S25FL256S (32 Мбайт), S25FL512S (64 Мбайт), S25FL01GS (128 Мбайт)

ST Microelectronic / Numonyx09129 128 кБ), M25P10AV (128 кБ), M25P20 (256 кБ), M25P40 (512 кБ), M25P80 (1 МБ), M25P16 (2 МБ), M25P32 (4 МБ), M25P64 (8 МБ), M25P128 (16 МБ), M45PE10 (128 кБ20), M45PE10 (128 кБ20), M45PE10 256 КБ), M45PE40 (512 КБ), M45PE80 (1 МБ), M45PE16 (2 МБ), M25PX80 (1 МБ), M25PX16 (2 МБ), M25PX32 (4 МБ), M25PX64 (8 МБ), N25Q032A13E (4 МБ), N25Q032A11 (4 МБ), N25Q032A11 8 МБ), N25Q064A11E (8 МБ), N25Q128A13E (16 МБ), N25Q128A11E (16 МБ), N25Q256A13E (32 МБ), N25Q256A11E (32 МБ), N25Q512A13G (64 МБ), N25Q512A11G (64 МБ), N25Q00AA13 ГБ (128 МБ)

SST

SST25VF5k (B128B), SST25VF5k (B) ), SST25VF020 (B) (256 кБ), SST25VF040 (B) (512 кБ), SST25VF080 (B) (1 МБ), SST25VF016 (B) (2 МБ), SST25VF032 (B) (4 МБ), SST25VF064C (8F128), SST25V ) (16 МБ), SST26VF016 (2 МБ), SST26VF032 (4 МБ), SST26VF064 (8 МБ)

Winbond

W25Q10B (128 кБ), W25Q20BV (256 кБ), W25Q40BV (1 512Q16BV25) 2 МБ), W25Q32BV (4 МБ), W25Q64BV (8 МБ), W25Q128BV (16 МБ), W25Q256FV (32 МБ), W25X10 (128 кБ), W25X20 (256 кБ), W25X40 (512 кБ), W25X80 (1 МБ), W25X16 (232X16) 4 МБ), W25X64 (8 МБ)

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

Аппаратная часть

В моем случае нужная мне память оказалась в этом списке и я приступил к изготовлению прогера. Устройство очень простое (по схеме видно) и многие не заморачиваются в таких случаях с травлением платы, а собираются навесным монтажом «на коленке», т.к. программатор понадобится от силы пару раз. Я тоже не стал заморачиваться и сделал навесным. В итоге у меня не заработало) Хотя вроде бы ни где не ошибся, возможно капризничало из-за длины проводов или их сечения

Во второй раз уже решил «чтобы наверняка» запилить себе нормально, т.е. развел плату в SprintLayot 5.1 и сделал по технологии ЛУТ. Лудил сплавом Розэ. Последнее время мне нравиться его использовать, т.к. получается довольно быстро, просто и лужение происходит равномерным тонким слоем — высверленные отверстия не закрываются. Еще давно в посудном магазине по уценке купила за 30р эмалированную миску — удачное приобретение для) Наливаю в нее на половину воды, довожу до кипения, добавляю 1-2 ложки лимонной кислоты (работает как флюс и повышает температуру кипения, затем опускаю плату и 1-2 кусочка сплава.»Управляю» 2мя палочками от мороженного, обёрнутыми одной из сторон ткань для роста сплава по плате и удержания платы. После окончания процесса остатки сплава можно вынуть для последующего использования. Стоит сплав копейки (около 150р вроде), а хватает его при подобных затратах на годы). В общем это было такое лирическое отступление, теперь непосредственно скрин разведенной платы. Саму разводку платы в формате * .lay можно скачать здесь

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

Необходимые ингредиенты:

— Резисторы 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 земли) для штырьков платы разъема, сверился с раписновкой платы (на деле у всех плато, может только «ключ» — пустой пин находится в другом месте, и в мануале маркировака идти в порядке) -10 .Землю воткнул на 23 и 24 вывода, т.к. 18-25 земля

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

Для питания программатора необходимо постоянное питание 3.3v, а так же внешняя масса. Я использую для этих целей внешний полноценный БП Gembird 400Вт. Он у меня вроде лабораторного БП, живую конфигурацию ему я бы не доверил в силу его качества) Достаточно он мне от одного хорошего человека — данный БП видимо достаточно реальной мощности и по-прежнему владельцу его не хватало, система работала очень не стабильно.

У БП на разъеме 24пин замкнут зеленый провод на землю, что дает возможность его запускать в холостой ход, из этого же разъема я и беру 3,3v (оранжевый провод) и массу (черный) для программатора

Можно еще как вариант использовать батарейку BIOS как раз на 3,3 В, а землю (массу) взять с самого корпуса работающего БП

Еще один вариант — поставить какой-нибудь стабилизатор на 3,3 В, например LM1117 , на крайние контакты подаем 5V с USB и массой (точную распиновку не помню, данный стаб я использовал в другой статье про коннектор привода для X’360), из центрального у нас будет 3.3в. Nаким позволяет получить питание с самого СБ, на прошивке — можно подключить разъем USB или вывести 2 штырька для подключения опять же к контактам USB. чего все это затевалось — к прошивке

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

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

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

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

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

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

Второй вариант — сделать 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 — анлок, т.е. разблокировка микросхемы для записи, если имеется защита

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

1. spipgm / i — идентифицируемся

2. spipgm / u — разблокируемся

3 . spipgm / e — стираем микросхему с кривым содержимым

4. spipgm / p new.rom — зашиваем правильную прошивку

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

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

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

Послесловие

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

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

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

.

SST25VF010A-33-4I-ZAE / Microchip

Технические характеристики памяти

показать свернуть

Корпус CSP8
Тип памяти
Интерфейс
Объём памяти
Организация температуры
Напряжение питания 09
Время доступа

Нашли ошибку? Выделите её курсором и нажмите CTRL + ENTER

.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *