Прошивка BIOS через UART: шаг за шагом

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

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

Настройка и работа с программатором CH341А

В настоящее время на рынке представлено огромное количество программаторов различных моделей и исполнений. Кроме того, один и тот же программатор может иметь разные корпуса и комплектации. Множество устройств утратили свою актуальность, так как предназначены для устаревших микросхем или уступили место более современным и доступным конкурентам. Одним из таких «ветеранов» является программатор «PONYPROG», который, на мой взгляд, является наиболее распространённым и простым устройством, о котором должен знать практически каждый специалист. Он способен работать не только с ПЗУ, но и с микроконтроллерами Atmega, обеспечивая поддержку интерфейсов I2C, SPI и Microwire (разновидность SPI для EEPROM 93cxx).

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

VD1=VD2=VD3=1N4148 DA1=LM2936Z-5 VT1=BC547 VD4=VD5=5V1

Микросхема ch341

К сожалению, как показывает схема, для функционирования данного программатора необходим COM порт, что представляет собой значительные затраты для современных ПК и ноутбуков, в которых все реже встречаются даже USB порты, которые нередко исчезают или изменяются, как это произошло с новым MacBook. Существует множество адаптеров USB-COM, но зачастую они либо полностью не работают, либо имеют частые сбои, поэтому для взаимодействия с современными устройствами стоит рассмотреть более подходящий программатор. Одним из таких вариантов является CH341A, названный в честь ключевой микросхемы, на которой он основан.

CH341 – это не программатор, а конвертер (преобразователь) USB шины в синхронный последовательный интерфейс, такие как двух(I2C) или четырехпроводную(SPI) шину. На рынке существует множество разновидностей данного программатора, которые выпускаются в разных корпусах, без корпусов или вообще зип набором.

Шины программатора ch341

Этот программатор предназначен для работы с шинами I2C или SPI. Я хотел бы акцентировать внимание на этом аспекте, а не обсуждать совместимость с EVO2 или EVO1. Дело в том, что по указанным шинам могут функционировать микросхемы различных устройств, включая стиральные машины, телевизоры и магнитолы. Важно осознавать, что существует понятие шины (см. предыдущий урок), и именно от этого зависит выбор программатора.

I2C – это SCL(контакт 24) и SDA(контакт 23) SPI – это CLK(контакт 18), MOSI(контакт 20), MISO(контакт 22) и CS(контакт 15)

Схема показывает, что данная программируемая плата является довольно простой, и при желании её можно изготовить самостоятельно, имея всего одну микросхему CH341а. Однако не следует забывать, что существует также CH341H, у которой отличается «распиновка» от CH341А. Это важно учитывать и тщательно изучать сервисную документацию (даташит) для этой микросхемы.

Установка драйверов

Драйвер устройства представляет собой фактически инструкцию для операционной системы, содержащую набор команд, поддерживаемых данным устройством. Обычные устройства, такие как клавиатура или мышь, не требуют отдельной установки драйвера, поскольку это предусмотрено разработчиками операционной системы. В то же время менее распространённые устройства, например, программаторы, всегда нуждаются в установке драйверов. Об этом процессе мы и поговорим. Для установки драйверов необходимо запустить диспетчер устройств, подключить программатор к USB-порту и найти его в списке. Скорее всего, он отобразится как «неопознанное устройство». Далее, щелкаем правой кнопкой мыши и устанавливаем драйвер, указав путь к файлу на компьютере. Рекомендуется перезагружать компьютер после каждой такой процедуры. После перезагрузки снова открываем диспетчер устройств и проверяем, распознался ли программатор, и нет ли рядом с ним никаких знаков восклицания.

Отключение проверки цифровой подписи

Если у вас установлена операционная система Windows 8 или более новая версия, могут возникнуть трудности с драйверами, которые не подписаны для этого или иного программатора. Для устранения данной проблемы выполните следующие шаги:

1: В строке поиска вашей системы наберите «gpedit.msc» и нажмите OK (это запустит редактор групповой политики). 2: Перейдите по пути Конфигурация пользователя > Административные шаблоны > Система — Конфигурация пользователя > Административные шаблоны > Система и дважды щелкните на «Установка драйверов». 3: В настройках, появившихся на правой панели, щелкните правой кнопкой мыши на «Подпись кода для драйверов устройств» и выберите Изменить. 4: Установите параметр на ВКЛ (Включено) и в выпадающем списке выберите «блокировать». 5: Нажмите Применить и OK.

Инструкции по работе с программатором

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

После того как мы удостоверились, что программа распознает наш программатор, в случае, если он не распознается, обратитесь к пункту «Установка драйверов» или удалите драйвер (диспетчер устройств > удалить драйвер) и попробуйте установить другой. Затем выбираем нашу микросхему и нажимаем кнопку СЧИТАТЬ (READ).

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

Что может и не может ch341

Программатор пзу позволяет прошивать микросхемы памяти, но в стиральных машинах они встречаются все реже потому что производитель размещает всю информацию непосредственно в микроконтроллер, но многие микроконтроллеры, например те же RENESAS позволяют с собой общаться по шине i2c или spi которые как раз поддерживает данный программатор, но когда микроконтроллер общается с программатором по этой шине и них существует протокол общения: петя это саша — пришли мне пицце саша это петя — пиццы нет, на пирожок с картошкой Как Вы понимаете пицца это прошивка, петя и саша это программатор и микроконтроллер и для их работы нужно, чтобы проц был запущен, т.е. нельзя общаться с микроконтроллером как "с тушкой", при этом ПЗУ даже и лучше когда с ней так общаются, т.е. полностью обесточивают и подключаются напрямую, считывая и записывая все без разбора. При работе же с микроконтроллером нужны чтобы он сам отдал данные и если не выполнить ритаул протокола обмена, он этого не сделает

Программатор SPI Flash на Arduino для BIOS: как вернуться в рабочее состояние

Во время процесса обновления BIOS на материнской плате PRIME H270-PLUS с использованием утилиты ASUS EZ Flash 3 Utility, компьютер неожиданно завис. Индикатор установки остановился и на протяжении 30 минут не реагировал на действия. В итоге было решено перезагрузить компьютер в надежде, что BIOS загрузится корректно. Однако, этого не произошло, и материнская плата оказалась временно неработоспособной. Динар Мурсалимов, педагог дополнительного образования Международного центра компетенций Казанского техникума ИТ и связи, делится своим опытом по решению этой проблемы.

Есть несколько способов для восстановления BIOS при неудачной прошивке:

  • Кнопка Flash BIOS и функция ASUS BIOS Flashback

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

Современные материнские платы от Asus и MSI обладают высокой функциональностью и удобством использования.

На плате имеются два чипа с одинаковыми прошивками: M_BIOS и B_BIOS (main/backup), которыми программно управляет чипсет. Если контрольная сумма основного BIOS искажена, то хост подключает к пространству системной памяти резервную микросхему и подает сигнал сброса Reset. Машина перезагружается уже с кодом бэкап-биоса и предлагает восстановить Main.

Данная технология доступна лишь на определенных моделях материнских плат.

  • Применить программатор для восстановления настроек BIOS

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

Одним из решений проблемы оказался программатор на базе Arduino. Схема подключения Arduino UNO к микросхеме BIOS выглядит следующим образом:

SPI-флеш-память чаще всего работает на 3.3V, реже на 1.8V, однако в случае отсутствия 3.3V возможно использование 5V.

На некоторых платах имеется разъем JSP11 для прошивки BIOS.

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

Программа-программатор под Windows.

Определяем COM порт и размер микросхемы BIOS.

Чтобы прошить образ, нужно установить курсор на адрес 0, затем нажать кнопку «Вставить файл в текущую позицию».

Загружаем скетч для Arduino

// SPI_CS — пин CS, подключенный к SPI флеш-микросхеме (8 в случае Moteino)

// MANUFACTURER_ID — OPTIONAL, 0x1F44 for adesto(ex atmel) 4mbit flash

// 0xEF30 для флэш-памяти windbond на 4 Мбит

Прошиваем BIOS программатором CH341A

В этом материале мы рассмотрим процесс обновления BIOS с использованием программатора CH341A и зажима для чипов типа SOP8 с интерфейсом SPI. На сегодняшний день это одни из наиболее распространённых форм-факторов микросхем для прошивки материнских плат. Я продемонстрирую последовательность действий, которую обычно использую сам. Это не исчерпывающий обзор всех возможностей данного устройства, но в данный момент нам это не нужно.

Обычно к программатору обращаются в случае неудачной прошивки или просто экспериментов с микропрограммой. Для держателей сокетов LGA 2011-3 китайских плат, обычно рекомендую прикупить устройство, лишним оно точно не будет. Все-таки иногда залетают платы которые при неудачно установленных таймингов памяти, просто так джампером JCMOS или батарейкой сбросить не получиться.

Иногда возникают ситуации, когда BIOS может выйти из строя, и индикатор POST отображает код FF. Кроме того, система может бесконечно перезапускаться и останавливаться из-за поврежденной программы BIOS. Особенно это заметно, если имеется резервная микросхема BIOS.

Итак начнем. Для начала настроим наш программатор к работе. Берем прищепку и адаптер SOP. Нужно совместить кабель прищепки с красной линией и единицей(1) первого пина на адаптере.

В итоге должно получиться что-то подобное)

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

Соответственно должно быть где-то так)

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

Это как раз сейчас в тему, очень удобно для руководства.

Теперь появились некоторые особенности. В отдельных ситуациях потребуется разобрать плату. Нужно извлечь память, процессор, отключить все подключенные устройства. Затем подключить 24-pin питание от блока питания, чтобы обеспечить его работу. В большинстве случаев при прошивке с помощью прищепки требуется дежурное питание для инициализации программы микросхемы BIOS.

Таким образом, мы уже подключились к микросхеме. На изображении я подключил питание от блока питания. Однако самое интересное заключается в том, что для этой платы это вовсе не обязательно. Чип MX25L3206E распознается и без этого. Для китайских плат, таких как Huananzhi, такой метод не сработает, питание необходимо подавать обязательно.

Ну и обычно не деинсталлирую память и процессор. Кстати, так как на Хуананах есть индикатор POST кодов, при удачном подключении прищепки символы загораются.

Скачиваем программное обеспечение для «Программатора CH341A». Подключаем устройство к USB-порту. Устанавливаем драйвера, которые находятся в архиве с AsProgrammer. В разделе диспетчера устройств должна отображаться запись Interface (USB EPP/…). Теперь можно запускать программу.

В открывшемся окне кликаем пункт программатор — выбор CH341a и интерфейс SPI если автоматом не подтянулся. В поиске (микросхема — поиск) вбиваем модель микросхемы. В нашем случае MX25L3206E Теперь для того что бы убедиться в рабочей собранной схеме, можно прочитать микропрограмму чипа биоса. Нажимаем кнопку прочитать. Если все удачно, сохраняем образ и будет готов бэкап.

На данном этапе у нас уже должен быть подготовлен образ биоса. Он может иметь различное расширение, но в нашем случае оно не должно превышать 4Mb. Также существуют биосы с объемом 8/16Mb. К примеру, PlexHD x79 имеет полный образ на 8Mb, а BD4 x99 — на 16Mb с расширениями .bin/rom. У меня сейчас материнская плата Gigabyte s1155, и расширение образа биоса составляет .fd. Нажимаем на иконку папки и загружаем новый биос для нашей платы в программу.

После этого кликаем по иконке «Записать», но не на саму кнопку, а на контекстное меню с черной стрелкой вниз. Затем выбираем в выпадающем списке пункт «Снять защиту -> стереть -> записать -> проверить». Соглашаемся с условиями в открывшемся диалоговом окне, и начинается процесс прошивки. На программаторе загорится желтый индикатор «RUN». Вся процедура займет примерно две минуты. Если все пройдет успешно, в логах программы мы увидим сообщение «Готово — Время выполнения».

После отключаем ПК и пробуем запустить) Если все норм довольствуемся ожившей платой или новой прошивке.

Если в процессе захвата прищепки инициализация микросхемы не удается, то, вероятно, единственным решением будет демонтаж чипа и его прошивка отдельно от платы. Также существует вероятность, что сам чип вышел из строя. Можно столкнуться с платой BD4 X99, на которой микросхема BIOS имеет корпус DIP8 (внешне немного больше SOP8). Для данного программатора это также не составит труда.

А если она еще и установлена в так называемую «кроватку, постель» то вообще шикарно. Но не в случае с BD4, тут чип впаян прямо в плату) И требуется его демонтаж для прошивки. За все время такая плата ни разу не попалась. Но она есть)

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

Оцените статью
LeeReload
Добавить комментарий