Usb ttl прошивка bios

Обновлено: 07.07.2024

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

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

Какое-то время назад мне один знакомый инженер электронщик подарил жесткий диск, который не определялся в BIOS и компьютер подвисал на минуту, на этапе определения жестких дисков при старте компьютера. Погуглив в интернете, а жесткий диск был Maxtor 500 Gb SATA 2, нашел что эта проблема была актуальна для выпущенных несколько лет назад жестких дисков брендов Maxtor и Seagate.


Связана она была с глюком прошивки BIOS жесткого диска и большая часть дисков этой проблемной серии, там было несколько линеек, требовали обязательной перепрошивки иначе в один прекрасный момент отказывались определяться в БИОС материнской платы, при старте компьютера. Проблема заключалась в том, что прошить жесткий диск можно только тогда, когда он виден в BIOS. Как и всякий человек имеющий программатор, сперва полез искать Дамп прошивки, решив снять плату винчестера и прицепившись специальной клипсой для прошивания соединенной с программатором, просто перекатить прошивку.


Клипса для прошивания программатором

Но здесь все было намного сложнее: нельзя было взять слитый другим пользователем дамп прошивки от какого-то другого жесткого диска, даже аналогичной модели, и тупо переписать бинарный файл прошивки. Этот способ работает с любой другой техникой, такой как материнские платы, роутеры (условно, про одинаковый МАС адрес промолчу), мониторы, видеокарты, но не подходит для перепрошивания жестких дисков. Дело в том, что в прошивке хранятся, назовем их условно, калибровочные данные - это данные о поверхности жесткого диска, Smart, BAD блоках, механике, и т.д.


Комплекс восстановления жестких дисков PC3000

Поэтому перепрошить неопределяющийся в BIOS жесткий диск не имея очень дорогостоящего специального обрудования для диагностики и реанимирования жестких дисков было нереально. Значит на первоначальном этапе нам нужно, чтобы наш винчестер стал хотя бы виден в BIOS. Для этого нам нужно удалить проблему, имеющую в среде специалистов и просто айтишников название “Муха ЦЦ” (СС). Откуда взялось такое название?



Это означает, что вы счастливый обладатель жесткого диска из этой проблемной серии. Вкратце опишу (подробно процесс был описан в предыдущей статье), как подключить подобный конвертер USB-UART, который также называют еще USB-TTL. Мы должны обязательно подключить общую землю идущую с переходника USB-UART и “перекрестив” пины RX и TX, соединив RX с TX, а TX с RX. Эти пины находятся на задней стороне корпуса жесткого диска рядом с разъемами SATA и питание.


Адаптер USB-TTL CH340G

Как уже написал в прошлой статье посвященной применению данного адаптера USB-UART, для перепрошивки, вернее управления процессом перепрошивки роутера, нам будет нужно правильно экспериментально подобрать скорость СОМ порта, обычно это скорости 33600, 57600, и 115200 Бод (другие скорости не встречал) в консоли. Иначе, если скорость будет подобрана неправильно, мы увидим как и в случае перепрошивки роутера кракозябры, вместо обычного английского текста.


Ошибки в консоли

Итак, мы правильно настроили консоль. Правильно выбрали в терминале нужный СОМ порт.

Напомню, что данный адаптер USB-UART стоит всего приблизительно 40 рублей на Алиэкспресс и может иметь в своем составе различные микросхемы, все они перечислены в предыдущей статье. Для тех, у кого нет возможности приобрести данный адаптер, существуют варианты подключения в консоли с помощью Data кабеля для перепрошивки древних телефонов.

Теоретически (ведь мы же электронщики, а не айтишники, по крайней мере большая часть из нас) мы сможем перепрошить жесткий диск вообще не имея никакого адаптера, согласовав с помощью резисторов логические уровни RX и TX, идущие с COM порта, (питание с COМ порта брать не рекомендую из-за риска перегрузить порт), которые есть на каждом древнем системном блоке. Но здесь есть один нюанс, почему я не рекомендую этот способ новичкам.


USB-TTL 3.3 Вольта

  1. Дело в том, что напряжение питания с адаптера нам необходимо строго 3.3 вольта - не больше и не меньше, и хотя в целях безопасности питание вообще не рекомендуют брать с адаптера, а использовать родное питание от блока питания ПК, отклонение в номинале в большую сторону чревато выходом из строя нашего жесткого диска.
  2. Второй важный момент заключается в том, что логические уровни на СОМ порте системных блоков и ноутбуков различных годов выпуска имеют различное напряжение - от 7 до 12 вольт, если не ошибаюсь, и подбирать номинал токоограничивающего резистора обеспечивающего нужное падение напряжения нам придется с помощью измерений мультиметром, полученных уровней RX и TX, поэтому такой способ подходит только для людей умеющих уверенно держать паяльник в руках, для всех остальных это получается скорее совет из категории вредных.


Это и является причиной того, что всеми любимый (и мной, в том числе) программатор Громова для МК AVR, собранный несколько лет назад, отказывается работать с некоторыми относительно современными материнскими платами и ноутбуками, потому что применив резисторы стандартного номинала для этой схемы мы получаем слишком низкие по напряжению логические уровни, уже не соответствующие логической единице по вольтажу, при программировании микроконтроллеров AVR, а соответственно, наш программатор выдает либо логический ноль вместо единицы, либо вообще мусор, который не всегда правильно идентифицируется при прошивании микроконтроллера.


Код прошивки оболочка программатора

То же самое, мусор при записи прошивки в память микроконтроллера, мы можем получить используя длинные неэкранированные кабеля или провода, например СОМ или LPT для самодельных программаторов, либо уже от программатора к прошиваемому микроконтроллеру. По этой же причине, когда я вижу на видео, например на Youtube, провода длиной 30-40 см и длиннее, от подобного USB-UART адаптера или самодельного программатора МК AVR или Flash или EEPROM памяти, то удивляюсь технической безграмотности людей не понимающих последствий своих действий.


Флеш память BIOS DIP-8 корпус

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

Ошибка при верификации МК


Длинные провода от адаптера USB-TTL

Кто-нибудь, уже имеющий ранее дело с микроконтроллерами или перепрошивавший BIOS до этого на какой-либо технике любым китайским программатором скажет: 30 См - это примерно и есть стандартная длина шлейфа идущего от программатора к микроконтроллеру. Дело в том, что в таких фабричных шлейфах, если вы замечали, всегда идет большее количество жил, чем Пинов на колодке программатора. Связано это с тем, что каждая сигнальная жила имеет параллельно с ней идущий “земляной” провод.


Отличия шлейфов IDE

Это профессиональное решение применяемое в компьютерной технике (вспомните хотя бы IDE шлейфы, 40 и 80 жил, АТА 33, и АТА 66-100 и имеющие одинаковое количество 40 контактов) и любой другой, где помехи недопустимы, и позволяет использовать более длинные шлейфы и провода, не имеющие экранирования. Итак, теперь когда мы отклонившись от темы статьи разобрали все эти нюансы, вернемся снова к нашей теме - процессу удаления Мухи ЦЦ.


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


Жесткий диск - работа в консоли

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


Подключение адаптера при перепрошивке

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


Замыкаем точки на плате винчестера

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


Модель винчестера подверженная мухе ЦЦ

После этого требовалось набрать определенный текст в консоли. Попытавшись замкнуть эти пятаки, в моем случае утконосами, понял что это дохлый номер и мне все же придется подпаиваться к пятакам тонким проводом МГТФ. Данный провод завязал узлом и приклеил к плате винчестера на свободное от контактов место капелькой термоклея. Потому что восстанавливать эти маленькие пятаки - это та еще проблема, а оторвать их можно было очень легко, совершив одно неловкой движение в спешке. К проводам МГТФ, припаянным к пятакам, подсоединил джамперы - перемычки “папа” и “мама”, используемые в конструировании на Ардуино. Затем оставалось лишь дождаться нужного момента после включения и замкнув наши перемычки остановить двигатель.


Джамперы Ардуино для адаптера

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


Список винчестеров подверженных мухе цц


Муха цц на винте

Сейчас наш винчестер уже должен быть виден в BIOS материнской платы. В чем мы и убеждаемся, с замиранием сердца) - не впустую ли были наши труды? Включаем ПК, жесткий диск определяется в BIOS, в моем случае загрузка дальше запроса BOOTa не пошла, это и понятно - различия в железе ПК, так и должно было быть. Ради интереса загрузился со своего жесткого диска, там вроде бы не стояло даже пароля на Windows и все файлы были видны, хотя когда есть желание даже это не становится проблемой, подключив реанимируемый жесткий вторым и полазил по чужим файлам, ничего ценного для себя, впрочем, не нашел.


Прошивка винчестера из образа диска

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


Виктория - выбираем ремап

Включаем загрузку с CD–ROM в BIOS и выбрав нужную модель из списка, а все остальные жесткие диски, во избежание ошибок, лучше вообще отключить отсоединив шлейф, нажимаем: прошить наш жесткий диск. И здесь нас поджидает еще одна возможная проблема - после перепрошивки SMART жесткого диска будет чистым, а значит чтобы мы не записали при работе жесткого диска, файлы на не помеченные сектора с возможными BAD блоками, сбойными секторами, нам нужно загрузиться с образа диска с программой Victoria или подобной, и выбрать в ней сканирование и расширенный Remap.


Бед блоки при сканировании диска Викторией

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


Отремонтированный Макстор 500 Гб

Подведём итог о проделанной работе

Данный случай доказывает, что ремонты электроники это отнюдь не скучно и трудно, или доступно только специалистам - профессионалам, в области ремонта или восстановления информации, а наоборот, возможно самостоятельно произвести каждому начинающему аккуратному радиолюбителю или домашнему мастеру -ремонтнику, умеющему сочетать приятное с полезным. Архив с источником статьи по которой восстанавливал свой жесткий диск вы можете скачать тут. Всем удачных ремонтов! Специально для портала Радиосхемы - AKV.

Форум по обсуждению материала ПЕРЕПРОШИВКА БИОС ВИНЧЕСТЕРА HDD


Кодовая кнопка для ограничения доступа к объектам, простая схема с реле на МК Attiny13.


Тонкомпенсированный регулятор громкости с адаптацией к регулятору тембра - теория и практика.


Сборник из 10 конструкций и схем приставок к цифровым мультиметрам, расширяющих функционал измерительных приборов.


Микроконтроллер ATtiny13 и MOSFet транзисторы будут управлять светодиодными лентами в этой схеме ЦМУ.


Загрузчик (bootloader)

Загрузчик живёт в самом конце Flash памяти МК и позволяет записывать прошивку, отправляемую через UART. Загрузчик стартует при подаче питания на МК, ждёт некоторое время (вдруг кто-то начнёт слать код прошивки по UART), затем передаёт управление основной программе. И так происходит каждый каждый раз при старте МК.

  • Загрузчик позволяет прошивать МК через UART;
  • Загрузчик замедляет запуск МК, т.к. при каждом запуске ждёт некоторое время для потенциальной загрузки прошивки;
  • Загрузчик занимает место во Flash памяти. Стандартный старый для Arduino NANO занимает около 2 кБ, что весьма существенно!
  • Именно загрузчик мигает светодиодом на 13 пине при включении, как индикация работы.

Программатор

Помимо записи прошивки во flash память, программатор позволяет:

  • Считывать содержимое Flash памяти (скачать прошивку на компьютер)
  • Полностью очищать чип от всех данных и настроек
  • Записывать и читать загрузчик
  • Считывать/записывать EEPROM память
  • Читать и настраивать фьюзы (fuses, fuse-bits) и лок биты.

USB-TTL (UART)

USB-TTL Arduino
DTR DTR
RX TX
TX RX
GND GND
VCC/5V/3.3V VCC

Фьюзы (Pro)

Фьюзы (фьюз-биты) являются низкоуровневыми настройками микроконтроллера, которые хранятся в специальном месте в памяти и могут быть изменены только при помощи ISP программатора. Это такие настройки как выбор источника тактирования, размер области памяти под загрузчик, настройка отсечки по напряжению и прочее. Фьюз-биты собраны по 8 штук в байты (т.н. байты конфигурации), как типичный регистр микроконтроллера AVR. Таких байтов может быть несколько, они называются low fuses, high fuses, extended fuses. Для конфигурации байтов рекомендуется использовать калькулятор фьюзов (например, вот такой), в котором просто ставятся галочки на нужных битах, и на выходе получается готовый байт в hex виде. Рассмотрим на примере ATmega328p:


Лок-биты (Pro)

Лок-биты (lock-bits) позволяют управлять доступом к памяти микроконтроллера, что обычно используется для защиты устройства от копирования. Лок-биты собраны опять же в конфигурационный лок-байт, который содержит: BOOTLOCK01, BOOTLOCK02, BOOTLOCK11, BOOTLOCK12, LOCKBIT1, LOCKBIT2 (для ATmega328). Калькулятор лок-битов можно использовать этот. BOOTLOCK биты позволяют запретить самому МК запись (самопрограммирование) во flash память (область программы и область загрузчика)


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


Таким образом включив LOCKBIT1 (лок-байт будет 0x3E) мы запретим внешнюю запись во Flash и EEPROM память, т.е. при помощи ISP программатора, а включив LOCKBIT1 и LOCKBIT2 (лок-байт: 0x3C) полностью заблокируем заодно и чтение данных из памяти микроконтроллера. Повторюсь, всё описанное выше относится к ATmega328p, для других моделей МК читайте в соответствующих даташитах.

ISP программатор

USBasp


Решение проблем

Решение большинства проблем с загрузкой через программатор (независимо от того, что написано в логе ошибки):

  • Вытащить и обратно вставить usbasp в usb порт
  • Вставить в другой usb порт
  • Переустановить драйвер на usbasp
  • Проверить качество соединения USBasp с МК
  • Перепаять переходник и отмыть флюс

Для прошивки микроконтроллера, тактирующегося низкой частотой (менее 1 МГц внутренний клок):

Основные ошибки в логе Arduino IDE

Arduino as ISP

Почти любая другая плата Arduino может стать ISP программатором, для этого нужно просто загрузить в неё скетч ArduinoISP:

  • Открыть скетч Файл > Примеры > 11. ArduinoISP > ArduinoISP
  • Всё! Ваша Arduino теперь стала ISP программатором
  • Подключаем к ней другую Arduino или голый чип по схеме ниже
  • Выбираем Arduino as ISP в Инструменты > Программатор
  • И можем писать загрузчики, фьюзы или загружать прошивку напрямую во Flash


    Либо поставить поставить конденсатор ёмкостью


Решение проблем

Для прошивки микроконтроллера, тактирующегося низкой частотой (менее 1 МГц внутренний клок):

  • Arduino ISP: нужно изменить частоту загрузки прошивки в скетче Arduino ISP и снова прошить его в ардуино-программатор (см. строку в скетче 45 и ниже);

Работа в Arduino IDE

Прошивка загрузчика

Как убрать загрузчик?

Загрузка скетча

В Arduino IDE можно зашить скетч через программатор, для этого надо нажать Скетч > Загрузить через программатор. Это очень удобно в том случае, когда МК используется без загрузчика, или просто голый МК.

Фьюзы

Конфигуратор платы в Arduino IDE устроен следующим образом: каждой плате в Инструменты > Плата соответствует свой набор настроек, включая фьюзы, которые прошиваются вместе с загрузчиком . Некоторые из них:

  • Загрузчик (путь к файлу)
  • Скорость загрузки (через загрузчик)
  • Объем доступной flash и sram памяти
  • Весь набор фьюзов и лок-биты

Файл конфигурации называется boards.txt и найти его можно в папке с ядром Arduino: C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt. Документацию на boards.txt можно почитать здесь. При желании можно вывести нужные фьюзы через калькулятор (читайте выше), изменить их в boards.txt (главное не запутаться, для какой выбранной конфигурации платы делается изменение) и прошить в МК, нажав Инструменты > Записать загрузчик.


Такая работа с фьюзами максимально неудобна, но есть и другие варианты:

  • Ядро GyverCore для atmega328, в нем мы сделали кучу готовых настроек фьюзов прямо в настройках платы, читайте в уроке про GyverCore. Несколько загрузчиков, включая вариант без загрузчика, выбор источника тактирования и другие настройки в один клик мышкой.
  • Программа AVRdudeprog, про нее поговорим ниже

Avrdudeprog

  • Чтение/запись/очистка flash памяти
  • Чтение/запись/очистка eeprom памяти
  • Полная очистка чипа
  • Калькулятор фьюзов и локбитов (чтение/запись)


Более подробный обзор на avrdudeprog можно посмотреть здесь . Давайте посмотрим на калькулятор фьюзов. Выбираем свой микроконтроллер и программатор (можно добавить другие модели микроконтроллеров и программаторов, читай тут). Переходим во вкладку Fuses, нажимаем прочитать. При успешном чтении увидим текущий набор настроек своего чипа. Можно их поменять и загрузить. Важно! Галку инверсные биты не трогаем! Лок-биты и отключение RST заблокирует микроконтроллер, не трогайте их, если такой цели нет! Можно загружать прошивку или загрузчик из .hex файла, указав путь к ней на первой вкладке в окне Flash. Очень удобная утилита для низкоуровневой работы с МК.

Видео


Когда-то давным-давно я писал пару статей о широко известном в узких кругах чипе FTDI FT232H и различных его применениях. Всем хорош был FT232H для DIY, но и у него нашлось несколько недостатков — относительно неприятный для ручной пайки корпус LQFP48 (для истинных любителей хардкора есть еще вариант в QFN48, паяй — не хочу, DIHALT не даст соврать), цена за оригинальный чип от 250 рублей, вероятность проблем с драйверами на поддельных чипах и некоторая функциональная избыточность, к примеру, поддержка JTAG нужна далеко не всем.

Решение, как обычно, пришло из Поднебесной, в которой после нескольких лет тупого передирания творческой адаптации чужих чипов наконец выпустили свой собственный конвертер USB-TTL — WinChipHead CH341A в корпусе SOP-28 (не DIP, но тоже паяется без проблем).

Производство чипа было начато году приблизительно в 2006, но в поле моего зрения он попал только в 2014, когда I2C/SPI-программаторы на этом чипе наводнили европейский EBAY, причем продавцы предлагали цену от 3,5 евро вместе с доставкой, что при средней стоимости хорошего китайского программатора вроде MiniPro TL866A в 50 евро оказалось настолько заманчивым предложением, что устоять не получилось.

Если вам все еще интересно, что умеет этот китайский чип за 1$ и стоит ли платить больше, если не видно разницы — прошу под кат.

CH341 — мультифункциональный конвертер из USB 2.0 в UART, EPP, I2C и SPI.
В режиме UART поддерживаются не только RX/TX, но и остальные сигналы управления, поэтому на чипе можно сделать USB-модем. В режиме параллельного порта реализован интерфейс EPP и эмуляция принтера (позволяющая подключать принтеры с интерфейсом LPT напрямую к USB без написания дополнительных драйверов). В последовательном режиме поддерживаются интерфейсы I2C и SPI.

Чип требует минимальной дополнительной обвязки (внешний кварц и несколько конденсаторов). Возможно использование внешней EEPROM для хранения пользовательских Vendor ID, Device ID и некоторых настроек чипа. Питание от 5 В (через встроенный LDO-регулятор), либо от 3.3 В напрямую.

Кроме CH341A в корпусе SOP-28 имеются два варианта в SSOP-20 — CH341T и CH341H, первый лишен поддержки SPI, в второй — I2C, поэтому рассматривать их в этой статье я не стану.

Описаны в статье про FT232H, повторяться не стану, только замечу, что на CH341A я проверял только работоспособность TX и RX, а не всего UART-интерфейса целиком, если вдруг найдутся какие-то внезапные подводные грабли, как это было с I2C на FT232H — напишите комментарий, буду рад добавить его в статью.

Для Linux имеются открытые проекты ch341prog (SPI) и ch341eepromtool (I2C), оба работают достаточно хорошо, но весьма неплохо было бы добавить поддержку обоих режимов в flashrom (гляди, xvilka, народные программаторы по цене грязи, а FR их до сих пор не умеет).

Я проверял работу программатора в Windows 8.1 x64 и Xubuntu Core 15.04 x64 на I2C-чипе OnSemi 24C16 и SPI-чипе Winbond W25Q64CV, работа с I2C занимает секунды (т.к. на чипе 2 Кб памяти и его, при желании, можно читать и писать чуть ли не руками), а вот восьмимегабайтный SPI-чип читается за минуту, а пишется за две, что, конечно, далеко не рекорд, но и не слишком долго для устройства за 5 долларов.

Если вам не нужна поддержка JTAG, десятков тысяч различных чипов и ICSP, зато нужно средство быстрого резервного копирования/восстановления прошивок различных устройств от роутеров до ПК и серверов — рекомендую программатор на CH341A к приобретению, свои 5 баксов он отрабатывает сполна. А когда его поддержку добавят в flashrom — станет совсем хорошо.

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

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

Ремонт аппаратный - это чаще всего пайка, замена определенных радиодеталей которые вышли из строя по различным причинам. Будь то перегрев, например из-за набившейся пыли в корпусе устройства, и как следствие худшая теплоотдача, или же попадание влаги и в результате короткое замыкание. Либо то-же самое, любимое всеми мастерами КЗ устроенное на плате поселившимися насекомыми в корпусе устройства), а следы их деятельности, на платах, встречаются нередко.

Прошиваем с помощью клипсы

Прошиваем с помощью клипсы

Но существует и третий вид ремонта, обычно применительно к цифровой технике, в котором эти два вида ремонта бывают совмещены - это перепрошивка устройства. И если смартфон или планшет мы можем перепрошить просто подключив его к компьютеру по USB кабелю, то например, с роутером, материнской платой или видеокартой такой способ не пройдет. Все они содержат в своем составе Flash память, специальную микросхему, обычно 24 или 25 серии, в которой и хранится наша прошивка.


Микросхема памяти 25 серия

С материнскими платами и видеокартами обычно все просто - нужен программатор Flash и EEPROM памяти, например простой и дешевый CH341A о котором и пойдет речь, как одном из вариантов для решения нашей проблемы. Также для прошивания памяти без выпаивания будет нужна специальная клипса, для прошивания микросхем в корпусе SO-8 или SO-16. У меня есть обе клипсы в моей домашней мастерской.


Клипса для прошивания SO-8

Первая из них, для микросхем в корпусе SO-8, обычно бывает нужна во много раз чаще, чем вторая, для микросхем в корпусе SO-16. Которая пригодилась мне всего один раз для перепрошивки роутера Zyxel, они же, к слову сказать, так как считают себя известным брендом, оригинальничают и ставят иногда микросхемы в подобных корпусах SO-16, и хорошо еще если не микросхемы 29 серии, кто в теме - тот сразу поймет.


Разъем клипсы SO-16

Дело в том, что для того чтобы прошить микросхему 29 серии, нам необходим намного более дорогой программатор - MiniPro TL866A, который у меня также есть, но нет ни переходника с корпуса Dip на данный корпус, который имеет очень частое расположение ножек, и по сравнению с пайкой которого паять микросхему в SMD корпусе, те же SO-8 или SO-16 - детская забава. Так вот, мне на ремонт достался как раз роутер Zyxel с микросхемой 29 серии. В первый раз когда я ремонтировал предыдущий роутер Zyxel, микросхема была последовательной памяти, 25 серия, пусть и в корпусе SO-16. Тогда, как вы понимаете, выполнить ремонт было в разы проще.


Микросхема памяти 29 серии

Так как же все-таки мы можем восстановить роутер, если нам “повезло” и у нас стоит именно такая микросхема 29 серии? Производители роутеров, в данном случае, предусматривают аварийное перепрошивание через TFTP сервер. Но проблема в том, что иногда у нас бывает затерт загрузочный раздел в памяти микросхемы, который называется U-Boot. В таком случае вам подойдет вариант прошивки памяти роутера по определенным адресам, которые вы должны будете найти самостоятельно на специализированных форумах по перепрошивке роутеров. Но обычно все бывает намного проще - прошивка сбилась, данные необходимые для работы роутера в штатном режиме потеряны, но загрузочная область и калибровочная область целы. В Таком случае будет нужен простой и дешевый адаптер USB-TTL, стоимость которого на Али экспресс составляет всего порядка 40 рублей.


Также подойдет адаптер на микросхеме CH340A, который используется для заливки скетчей в плату Ардуино Pro mini, которая не имеет распаянного на плате загрузчика CH340A. Так-же подойдут адаптеры на базе pl2303, либо программатор Flash и EEPROM памяти CH341A, про который уже писал выше, и который может после перестановки перемычки работать в режиме USB-UART адаптера.


Программатор Flash и EEPROM памяти + USB-TTL

В крайнем случае можно будет воспользоваться кабелем для прошивания от старого мобильного телефона, также содержащим конвертер USB-COM, только нужно будет обязательно согласовать уровни по питанию. Питание с адаптера необходимо брать строго 3.3 вольта, никаких 5 вольт, которые он может выдавать, с определенного пина. Итак, допустим у нас есть этот адаптер, (вернее любой из перечисленных выше), мы установили для него драйвер, зашли в диспетчер устройств в Windows и определили, какому номеру СОМ порта соответствует наш адаптер. А данный адаптер это и есть не что иное, как виртуальный СОМ порт в вашей системе.

Ищем номер СОМ порта

Затем нам нужна какая-либо программа - терминал, в которой с помощью консольных команд, мы и будем восстанавливать наш роутер перепрошивая его. Но перепрошивать роутер мы будем не через данный адаптер, адаптер используется только для управления процессом прошивки. Как же в данном случае мы прошьем роутер? Существуют, конечно, варианты прошивки роутера через его процессор ARM по интерфейсу JTAG, и у меня есть и этот программатор, приобретенный на Али экспресс - это программатор Wiggler, подключаемый по LPT интерфейсу, но попробовав разобраться с ним решил, что способ перепрошивки с помощью TFTP сервера намного проще.


Программатор JTAG Wiggler

Разберем подробнее данный, более простой вариант, для которого JTAG программатор не нужен, это перепрошивка, как уже писал выше, через TFTP сервер. Для этого нам потребуется, подключить наш адаптер USB–UART к 4 пинам на плате роутера. Правда иногда бывает так, что производитель контактные площадки и дорожки развел, а сами пины не впаял. В таком случае можно самостоятельно впаять гребенку состоящую из 4 пинов, приобретенную в радиомагазине либо выпаянную с донорской материнской платы или какого другого устройства.


Эти пины в принципе можно даже не впаивать если нет возможности, а просто аккуратно подпаяться к пятакам на плате, контактным площадкам, куда должны были быть впаяны эти пины. Для этой цели очень удобен тонкий провод МГТФ. Итак, мы подключили адаптер к компьютеру, установили драйвер, обеспечили необходимое нам надежное соединение с этими 3 из 4 пинов на плате.


Джамперы Ардуино для адаптера

Для соединения с гребенкой удобно использовать джамперы, перемычки, используемые для подключения плат Ардуино к шилдам. Каким же образом, нам нужно соединить данные 3 провода? И почему всего три, если контактов четыре? Питание на роутеры не рекомендуют подавать от адаптера, питание должно приходить от собственного блока питания. Поэтому плюс питания лучше отсоединить, даже если вы используете как и положено напряжение 3.3 вольта.


Соединение адаптера и роутера - схема

Земли устройств, соединяемых между собой при перепрошивании, нужно объединять, поэтому землю, пин GND, подсоединить нужно будет обязательно. А вот оставшиеся два пина, RX и TX, нужно подсоединить “перекрестив” их между собой, то есть RX соединить с TX, а TX, с RX. Итак, мы подключили все правильно, затем нам нужно правильно настроить терминал, я предпочитаю пользоваться Putty, для того чтобы иметь возможность управлять нашим роутером через консоль, и соответственно залить в него новую прошивку.


Значит мы выбираем в настройках Putty порт Serial, последовательный порт, или СОМ порт, затем устанавливаем нужный номер СОМ порта, который мы предварительно посмотрели в диспетчере устройств. После этого нужно настроить скорость СОМ порта, обычно это 57600, реже 115200 бод. И наконец, убедившись еще раз, что все соединено правильно, ничего на плате не “коротит”, не будет замкнуто, в процессе перепрошивки, мы войдя заранее в настроенную консоль и подаем питания на роутер от родного блока питания.


Кракозябры в терминале

Если у вас на экране, побежали “кракозябры”, значит вы неправильно настроили скорость СОМ порта и нужно либо почитать какая скорость должна быть установлена для вашей модели роутера, либо подобрать ее экспериментально до пропадания “кракозябров” и появления обычного текста. Затем нужно будет нажать, сразу после включения питания роутера, поймав нужный момент, что бывает не так просто, определенную комбинацию клавиш, либо tpl, для роутеров TP-Link, либо цифры 4, вход в консоль, либо цифру 2, для роутеров Zyxel, запуск перепрошивки с TFTP сервера.


Интерфейс TFTP сервера

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


Меняем настройки сетевого подключения

Сама прошивка должна быть обязательно без Boota, то есть когда мы шьем прошивку прицепившись клипсой, через программатор 25 серии SPI, нам необходим Фуллфлеш, или иначе говоря прошивка с загрузчиком, в данном случае прошивка должна быть стандартная, без загрузчика, какую обычно предоставляет производитель, на своем сайте. Имя файла прошивки лучше сделать попроще, например 123.bin, его будет нужно ввести в консоли, при запуске процесса перепрошивания.


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

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

Форум по обсуждению материала КОНВЕРТЕР USB-UART: ПЕРЕПРОШИВКА АДАПТЕРОМ


Как правильно выбрать резистор для LED, а также способы питания светодиодов.


Тонкомпенсированный регулятор громкости с адаптацией к регулятору тембра - теория и практика.


Схема и прошивка ATtiny13 для блока управления освещением двойным хлопком в ладоши.

Читайте также: