В каких телефонах стоят usb uart. Конвертер usb-uart: перепрошивка адаптером

Главная / Поломки

Большинство устройств блога сайт работает с UART . И это закономерно — UART очень простой и не требовательный протокол. С ним легко работать как со стороны микроконтроллера, так и со стороны PC. Но есть один минус в использовании UART. Подавляющее большинство микроконтроллеров имеют UART у себя «на борту», а вот с PC ситуация немного хуже. Интерфейс UART является родным для COM порта (в варианте RS232), но в силу растущих требований к периферии компьютера, COM порт начинает себя изживать. Это происходит по причине малой скорости, невозможности расширения и т.д. В ноутбуках он уже давно пропал, как класс портов. Идет очередь стационарных компьютеров…
Но не все так плохо. Есть выход из положения! Многие производители разработали и выпускают микросхемы-преобразователи (мосты) USB – UART. Принцип их работы такой. На PC ставиться специальный драйвер, который создает виртуальный COM порт в системе. Для программ PC этот порт ни чем не отличается от обычного COM порта – подмены они «не замечают». Любые сообщения в этот виртуальный порт преобразовываются в посылки USB протокола. Подключенная к USB порту микросхема-преобразователь принимает эти посылки и формирует сигналы UART. Из популярных и доступных микросхем можно назвать FT232 и PL-2303 (а еще есть OTI006858 и CP2102).

Теперь переходим поближе к теме вопроса.
Итак, мы поняли, что нам нужен преобразователь USB – UART. Заиметь его можно несколькими способами:
1 Купить нужную микросхему и спаять устройство самому. Если Вы собираете какое либо устройство, будет удобно если преобразователь будет интегрирован в устройство. Если погуглить, то найдется много схем таких преобразователей – вытравить плату и собрать преобразователь не будет проблемой.
2 Купить уже готовый преобразователь. Тоже не плохой вариант. Таких устройств в продаже хватает с избытком. В разном форм-факторе, в разной цене – выбирайте на любой вкус!
3 Есть еще вариант – альтернативный. Согласен – он не всегда может быть приемлем, но все-таки… Можно «позаимствовать» преобразователь с другого устройства.

В этой статье я предлагаю использовать в качестве преобразователя USB — UART шнурок для мобильного телефона (Data Cable ). Почему именно шнурок для мобильного? Сейчас объясню.
Некоторое время назад для связи мобильного телефона с компьютером очень широко использовался UART протокол. Причины широкого распространения понятны – производителям нужен был дешевый и распространенный канал связи с PC. Им мог стать или COM порт, или USB. На то время работать с USB было дорого и не выгодно – победил COM. Мобильные телефоны выдавали «во вне» UART сигнал, а шнурки Data Cable преобразовывали его для COM или USB порта. В наше время электроника шагнула далеко вперед и USB в микропроцессорах мобильных телефонов стали обязательны. Шнурки для современных телефонов заменяются обычными USB удлинителями.
И вот мы подбираемся к самой интересной части. Телефоны появляются новые, старые шнурки-преобразователи становятся никому не нужными, а значит, продавцы стремятся за любые деньги от них избавиться. Цены на эти старые залежалые шнурки становятся просто смешными. Вот и мне попались на глаза эти коробочки со шнурками за такие деньги, что я не удержался и купил два. Сейчас расскажу, что нужно делать, чтобы сделать из такого шнурка полноценный преобразователь USB UART .

Для начала, нужно купить этот самый шнурок.

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

Вот упаковочная коробка и ее содержимое.

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

Теперь внимательней рассмотрим плату преобразователя.



В результате рассмотрения обнаруживаем микросхему Prolific PL-2303HX .

В 90% случаев в подобных шнурках мы увидим именно эту микросхему. Причина – ее дешевизна. Более того, эта микросхема будет стоять и в большинстве преобразователей USB – UART, которые Вы купите в магазине. Очень редко встретите FT232, так как она дороже и в дешевых китайских шнурках ее нет (разве что шнур какой-то фирменный попадется). Если Вам попался FT232RL – считайте повезло, на таком шнурке можно и программатор забабахать (FT232RL может работать в битбанг режиме).

Обратите внимание! Можно на плате найти клон Prolific. Такой, например, стоял во втором, из купленных мною шнурков.

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

Теперь идем на сайт Prolific и скачиваем даташит на микросхему
- Преобразователь USB-UART Prolific

В даташите находим распиновку и смотрим, на каких ножках нужные нам сигналы UART:
— Передатчик TXD – 1 ;
— Приемник RXD – 5 .

Находим соответствующие ножки на микросхеме.

Далее при помощи обычного тестера находим ближайшие контактные площадки, к которым можно подпаять провода. К ножкам не подпаяешся – они мелкие. Еще нам нужна «земля» — тут все просто, большие полигоны ею и будут. Подпаиваем к соответствующим площадкам провода.
На другой конец шнура цепляем удобный разъем.

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

Мы решили оформить это, как отдельную статью-руководство. Спасибо exmortis за предоставленный материал.

Аннотация: Данная статья является дополнением к по последовательному интерфейсу, которую рекомендуется предварительно прочесть.

Как известно из вышеупомянутой статьи, приставку Ritmix RZX-50 можно подключить к компьютеру через uart ttl, но так как сигналы по вольтажу не совпадают со стандартом rs-232, то нужен переходник. В качестве готового решения можно воспользоватья специальным конвертером, например, или даже таким .

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

Однако, можно приспособить обычный кабель-переходник usb-rs232 (com), который продаётся в любом компьютерном магазине. Например, такой:

Кабель Gembird usb-rs232 uas111. Он удобен тем, контроллер спрятан в аккуратную коробочку. Правда, она запаяна, поэтому для вскрытия придётся либо её распиливать, либо срезать пластик паяльником.

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

Микросхема pl2303. Интересны прежде всего ноги 1 (TXD) и 5 (RXD), нумерация ног идёт против часовой стрелки от угла, отмеченного на самом чипе точкой.

Обратная сторона с чипом max213. Cигнал от 1-ой ноги pl2303 приходит на 6-ю ногу max’а, а сигнал от 5-ой — на 19-ю ногу «максимки».
В принципе, эта микросхема для uart-ttl не нужна, она даже может помешать. Поэтому её нужно аккуратно выпаять, и тем легче будет подпаиваться к контактным площадкам.

Микросхема max213 выпаяна. Красный провод припаян к сигналу TXD, жёлтый — к RXD, чёрный провод — земля. Впоследствии можно подключать по схеме Antony, присодиняя провода «перкрёстно», т.е. RXD контроллера к TXD приставки, а TXD к RXD соответственно.

Выводы последовательного интерфейса у Ritmix RZX-50.

Вторая немаловажная часть — непосредственное подсоединение к компьютеру и настройка соединения.
Ниже будет рассмотрена специфическая ситуация, когда на компьютере (ноутбуке) установлена W7 x64, а в виртуальной машине VirtualBox — Xubuntu 11.10 x32. Всё нижеописанное также справедливо для любых дистрибутивов linux.

Перепаянный как указано выше кабель подсоединяется к компьютеру (при этом rzx-50 НЕ подключена). Естественно, что драйвер системой не установится, но это и не требуется. Загружаем xubuntu в виртуальной машине, пробрасываем вовнутрь подсоединённое устройство (должно обозначаться как Prolific Technology Inc. USB-Serial Controller). После чего загружаем консоль и вводим dmesg. Одной из последних строчек должно оказаться определение подключённого устройства (pl2303) и его отражение на файловую систему — в данном случае это /dev/ttyUSB0. Запоминаем это имя.

Теперь надо установить minicom. Команда стандартная: «sudo apt-get install minicom». Запускаем настройку: «sudo minicom -s» и попадаем в меню конфигурации. В Serial port setup устанавливаем /dev/ttyUSB0 в качестве Serial Device, скорость потока устанавливается 56700 8N1, hardware и Software Flow Control выключается (No). Далее в Modem and dialing нужно стереть строки Init String и Reset String.

Выходим из настройки и запускаем minicom в обычном режиме (sudo minicom). Теперь можно протестировать кабель, замкнув провода от сигналов TXD и RXD. Если при нажатии любых клавиш в minicom на экране появляются соответствующие символы, значит кабель работает.

Теперь можно подсоединять приставку к проводам способом, указанным выше, и включить её, наслаждаясь выводом в окно эмулятора терминала. Когда выпадёт приглашение ввести пароль, следует ввести «root». Если при вводе и выводе символов периодически появляются мусорные или посторонние, значит что-то не так с землёй (скорей всего оборвана). В идеаля земля также никак не должна замыкаться с сигналами TXD и RXD.

От редакции: Я лично сразу вспомнил конец 90ых, когда началась эпоха Palm. В то время я был счастливым обладателем Handspring Visor Deluxe, мощнейшим, по тем временам КПК (слово «планшет» еще не придумали). Так вот, в силу дефицита USB портов (да! да!) приходилось самому изготавливать кабель RS232-TTL. Более того, поскольку сигналы у Visor были трехвольтовые, а микросхема Maxim, обеспечивающая нужный уровень сигнала была дефицитной — приходилось на ножку «выхода» вешать делитель напряжения с 5 до 3.3в, чтобы не спалить устройство.

Сейчас все гораздо проще, и можно сосредоточиться на более содержательной деятельности, например внести посильный вклад в создание альтернативной прошивки для RZX-50 🙂

Программировать различные ардуино- и не адуино- образные контроллеры, получать информацию на компьютер со всего, что имеет последовательный интерфейс с TTL логикой.
Я в своих проектах использую его с Arduino Pro MIni , Gboard /Iboard и самодельными контроллерами .

Чем он отличается от других подобных устройств

  1. Дополнительным выводом DTR, который можно напрямую подключить к входу RESET на контроллерах не имеющих USB на плате. После этого при программировании давить кнопку RESET не нужно. Для меня это очень удобно, когда контроллер спрятан недрах моей поделки и доступ к кнопке бывает очень затруднительным.
  2. Поддержкой производителя, совместимостью с оригинальными драйверами и ПО, в отличие от поддельных FTDI, у которых проблемы с родными драйверами
  3. Дополнительными выводами (дырками под контакты) на плате, например, позволяющими уводить USB в энергосберегающий режим.
  4. Интересной возможностью менять VID, PID и текст, с которым опознается плата, собирать свой драйвер со требуемыми параметрами, что довольно интересно в коммерческих проектах. Об этом я расскажу дальше.

Где заказать?

Характеристики

  • Чип CP2102 от Silicon Labs
  • Скорость обмена данными по UART 300Бит/сек — 1Мбит/сек
  • Буфер чтения 576 байт, записи 640 байт
  • Поддержка USB 2.0 12Мбит/сек
  • Поддержка режима SUSPENDED USB
  • Встроенный стабилизатор питания 3.3В 100мА
  • EEPROM с конфигурационными параметрами 1024 байт
  • Поддерживаемые ОС Windows 8/7/Vista/Server 2003/XP/2000, Windows CE, Mac OS-X/OS-9, Linux, Android
  • Возможность настройки параметров платы и драйверов под свои проекты
  • Размеры платы 26.5 x 15.6 мм

На плате есть дополнительные отверстия, куда можно впаять выводы дополнительного модемного контроля и перевода USB в режим SUSPENDED

По размеру плата мало отличается от других подобных конвертеров USB/UART

  1. Плата FOCA 2.2 взята для коммерческих проектов с контроллерами Gboard /Iboard
  2. Дешевый конвертер FT232 используемый до настоящего времени
  3. Обозреваемый CP2102

Подключение и установка CP2102

Перед использованием платы необходимо установить драйвера с официального сайта Si-Labs

  • Для соединения к контроллеру нужны 5 проводов:
  • GND — GMD
  • VCC — V5.0 (V3.3) в зависимости от используемой платы
  • TX — RX
  • RX — TX
  • RESET контроллера — DTE


Теперь контроллер можно программировать не нажимая кнопку RESET.

Изменение VID, PID и др. характеристик конвертера

Плата опознается в системе как Silicon Labs CP210X USB to UART Bridge (COM35)

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

Для начала скачиваем и запускаем утилиту для конфигурирования параметров EEPROM CP1202 (мне для запуска утилиты потребовалось еще скачать Java Runtime)

Теперь можно изменить следующие параметры:

  • Vendor ID (VID). Идентификатор производителя. Значение «по-умолчанию» 10С4 (шестнадцатеричный формат). В данном случае принадлежит компании SiLabs.
  • Product ID (PID). Идентификатор продукта. Значение «по-умолчанию» EA60 (шестнадцатеричный формат). В данном случае обозначает все мосты CP210x.
  • Max Power. Максимальный ток потребления, запрашиваемая мостом на шине USB. Значение «по-умолчанию» 32 (шестнадцатеричный формат). Максимальное значение 500мА
  • Power use attributes. Режим питания. Bus-powered (питание от шины USB) или Self-Powered (питание от внешнего источника).
  • Release Version. Номер выпуска. Значение «по-умолчанию» 1.0. Поля могут принимать значения 1-99 в целой и дробной части.
  • Serial Number. Серийный номер. Значение «по-умолчанию» составляет «0001» (текстовый формат). Поле может принимать любое текстовое значение длиной до 64 символов. Нужно для подсоединение к компьютеру нескольких устройств
  • Product string. Поле может принимать любое текстовое значение длиной до 126 символов. Данный идентификатор отображается в операционной системе при первичном подключении моста CP210x к компьютеру и помогает пользователю в выборе подходящего драйвера
  • Custom Data Lock. Защита конфигурационных данных.

Все началось с того, что мне надо было подключиться к одному устройству по USART. Я сразу взял адаптер USB to UASRT (ибо в ноутбуке COM порт не предусмотрен) на AtTiny2313 (рекламой заниматься не буду, схема легко находится в интернете), подключил, запустил и внезапно понял, что у адаптера фиксированная скорость 9600, а у девайса, к которому требовалось подключиться, скорость 57600. Дело, естественно, было поздним вечером, и купить что-нибудь вроде FT232 возможности не было. Поэтому после непродолжительного раздумья, было решено изменить скорость UASRT в адаптере обычной перепрошивкой. В итоге соединение было успешно налажено. Но согласитесь - это ведь не выход, программатора может под рукой не оказаться, да и неудобно каждый раз с прошивкой шаманить. В следствие этого я серьезно задумался о создании нормального адаптера, с регулируемой скоростью (и не только).

Конечно, самый простой вариант – купить FT232, но сравнив ее стоимость со стоимостью Mega8, я пришел к выводу, что этот вариант мне не подходит. Поэтому было решено сделать адаптер на МК. А раз он на МК, то делать только USART как-то не рационально. Поэтому неплохо было бы в этот адаптер засунуть еще несколько интерфейсов, если уж делать, то что-то универсальное и полезное. Почти сразу в памяти всплыли “приятные” воспоминания об установке драйверов для адаптера на Tiny2313 (для Windows7 x64 это довольно мучительно). А это значит, что от устройства “виртуальный COM” придется отказаться, следовательно, надо будет написать программу для ПК, иначе работа с устройством будет невозможна. В общем, после обдумывания в течение некоторого времени, сформировалась окончательная идея девайса. Функционал получился вот таким:

  • адаптер USB->USART;
  • адаптер USB->SPI;
  • адаптер USB->I 2 C;
  • при этом устройство должно быть HID (Human Interface Device), чтобы не морочить голову с установкой драйверов.

Объектом издевательств стал МК Mega8, т.к. в TQFP корпусе он занимает совсем мало места (намного меньше, чем AtTiny2313) и обладает целыми 8 Кб. памяти. Сначала планировалось сделать все интерфейсы программными, но после разводки платы пришлось отказаться от аппаратного I 2 C, т.к. на односторонней плате вывести его никак не получалось (в будущем все-таки надо будет решить этот вопрос, может отдельно вывести сбоку платы). Поэтому его функциональность несколько ограничена, но USART и SPI остались полнофункциональными. Для связи с ПК была применена библиотека V-USB.

Схема устройства получилась вот такой:

Как видно, ничего сложного в ней нет. МК питается напряжением 5 В., согласование уровней для USB выполнено при помощи делителей напряжения резистор 68 Ом. + стабилитрон 3.3 В.. Тактовая частота МК – 12 МГц. Это минимальная частота для работы с шиной USB. Так же в схеме присутствуют три светодиода для индикации режимов работы. Один из светодиодов показывает, какой режим работы включен, а два других индицируют прием/передачу данных. Никаких кнопок и переключателей в устройстве не предусмотрено, и все настройки выполняются программно, прямо с ПК. Да, на все выводы, используемые для работы интерфейсов включены резисторы на 68 Ом. для защиты МК от КЗ. Как уже было отмечено выше, устройство представляется ПК как HID и не требует установки драйверов. VID и PID были выбраны из предоставляемых V-USB: VID - 0x16c0, PID - 0x05df. В противном случае пришлось бы отдать кругленькую сумму за покупку индивидуального идентификатора для USB устройства. Но т.к. проект Open Source и некоммерческий, совершенно свободно можно использовать идентификаторы, предложенные V-USB.

Плата получилась вот такая:

А в спаянном виде:

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

Итак, со схемой все понятно, он простая до предела и паяется за один вечер. Но, как было сказано выше, получившееся устройство определяется ПК как HID, т.е. ОС подбирает под него драйвер из своей базы. Проще говоря, Windows думает, что работает с устройством ввода. Это делает возможным работу на любом ПК без мороки с драйверами. Но с этим связана одна небольшая проблема, ни одна из существующих программ для обмена данными через USART работать с этим устройством не будет. А значит нужна какая-то специальная программа для работы с модулем, иначе он никакой ценности из себя не представляет. Поэтому я открыл свой любимый C++ Builder (нынче его обозвали CodeGear RAD Studio, что в прочем не меняет смысла), версия 2007, и написал вот такую программу:

Ничего особо сложного в ней нет, для каждого интерфейса присутствует некоторое количество настроек. Да, одновременно несколько интерфейсов работать не могут, только по одному. Работает все это дело очень просто, при подключении устройства к ПК в окне программы активизируются кнопки, нажатие на которые запускает соответствующий интерфейс. Потом достаточно написать данные в поле ввода в определенном формате и нажать кнопку "Send". Для каждого интерфейса свой формат данных. Сейчас рассмотрим их более подробно:

USART : (прием данных идет все время, пока активен режим, так сказать, на автомате)

  • отправка нескольких HEX чисел, просто пишем их через пробел в неограниченном количестве, например: 01 05 fa aa ...
  • отправка строки (текст, числа и т.п.). Тут уже в начале строки пишется идентификатор S (s), например: s www.сайт
  • для отправки данных устройству формат строки такой: Адрес (кому передавать и в какую ячейку памяти) А (а) и Данные D (d). Например: aa3 dfa;
  • для запроса данных с устройства: Адрес (от кого принимать и из какой ячейки памяти) и идентификатор чтения R (r). Например: aa3 r
  • для отправки данных устройству: Адрес устройства (бит чтения в 0) А (а) Адрес ячейки памяти M (m) Данные D (d). Например аа2 m03 d15
  • запрос данных выглядит вот так: Адрес устройства (бит чтения в 0) А (а) Адрес ячейки памяти M (m) Адрес устройства (бит чтения в 1) А (а) Идентификатор чтения с количеством ячеек памяти для чтения R (r). Например: aa2 m03 aa3 r1

​Для SPI в режиме Slave никаких команд не предусмотрено, просто сидим и ждем, пока нам что-нибудь пришлют. Для работы с девайсом подключаем его к ПК, ждем некоторое время, пока ОС не сообщит, что драйвера успешно найдены и установлены, запускаем программу и начинаем обмен данными. Все предельно просто, ведь простота и была одним из критериев при создании устройства.

Да, кстати, программа совместима со всеми версиями Windows, начиная с Windows XP и заканчивая Windows 8, и не требует для работы различной экзотики, типа NetFramework и т.п. Как, впрочем, и сам модуль.

Вот, собственно, и все, программа, плата и исходники прилагаются.

Фьюзы выставляются для работы от внешнего кварца с высокой частотой. Выглядят вот так:

На картинке LOW фьюзы в 1, когда не отмечены, и в 0, когда отмечены. HIGH фьюзы наоборот. В шестнадцатеричном виде это выглядит вот так: HIGH: D9, LOW: FF.

Ну и конечно же видео, т.к. лучше один раз увидеть, чем... (USART работает в режиме эхотест (Rx и Tx соединены), а SPI и I 2 C тестируются с микросхемой PCA2129T, статья о ней )

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
МК AVR 8-бит

ATmega8

1 В блокнот
VD1, VD2 Стабилитрон

BZX55C3V3

2 3.3 Вольт В блокнот
HL1-HL3 Светодиод 3 В блокнот
C1 Электролитический конденсатор 100 мкФ 1 Конденсатор танталовый В блокнот
C2, C3 Конденсатор 0.1 мкФ 2 В блокнот
C4, C5 Конденсатор 22 пФ 2 В блокнот
R1 Резистор

1.5 кОм

1 В блокнот
R2 Резистор

10 кОм

1 В блокнот
R3, R4, R8-R13 Резистор

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

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

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

Адаптер USB-TTL

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

Подключение USB-TTL

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

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

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

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

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

Настройка Putty

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

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

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

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

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

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

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

Прерываем загрузку

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

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

Обсудить статью КОНВЕРТЕР USB-UART: ПЕРЕПРОШИВКА АДАПТЕРОМ

© 2024 ermake.ru -- Про ремонт ПК - Информационный портал