КОНВЕРТЕР USB-UART: ПЕРЕПРОШИВКА АДАПТЕРОМ
Ремонт любой сложной электронной техники, в настоящее время можно условно разделить на два варианта: либо программный ремонт, “софтовый”, либо ремонт аппаратный, на уровне “железа”. Если первый подразумевает собой просто настройку аппарата, которую способен выполнить любой пользователь знакомый с техникой, в случае если по каким-либо причинам его настройки сбились в процессе эксплуатации.
Ремонт аппаратный — это чаще всего пайка, замена определенных радиодеталей которые вышли из строя по различным причинам. Будь то перегрев, например из-за набившейся пыли в корпусе устройства, и как следствие худшая теплоотдача, или же попадание влаги и в результате короткое замыкание. Либо то-же самое, любимое всеми мастерами КЗ устроенное на плате поселившимися насекомыми в корпусе устройства), а следы их деятельности, на платах, встречаются нередко.
Прошиваем с помощью клипсы
Но существует и третий вид ремонта, обычно применительно к цифровой технике, в котором эти два вида ремонта бывают совмещены — это перепрошивка устройства. И если смартфон или планшет мы можем перепрошить просто подключив его к компьютеру по 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 индикатора LM3914.
Схема простого кварцованного передатчика FM диапазона на мощность до 0,2 Вт, при питании от 12 В.
Изучим разные типы датчиков приближения и объекты, которые они могут обнаруживать.
Источник
Двухпортовый USB-UART адаптер на чипе FT2232D
В продолжение моей предыдущей статьи по сборке USB-UART адаптера на микроконтроллере STM32, решил собрать ещё один вариант адаптера — на специализированной микросхеме FT2232D. Микросхема является USB-UART преобразователем с двумя интерфейсами UART на борту. Из преимуществ, по сравнению с адаптером из предыдущей статьи, следует отметить следующие:
- не требует прошивки,
- может работать на более высоких скоростях UART (до 3 МБод/с),
- имеет улучшенную светодиодную индикацию (длительность свечения светодиода не привязана к длительности передачи байта).
Из недостатков — содержит только два UART интерфейса, вместо трёх. Конечно, существуют подобные микросхемы и с большим количеством UART интерфейсов, например, FT4232 с четырьмя UART интерфейсами. Но использовать такое количество UART-ов одновременно требуется крайне редко, поэтому я ограничился микросхемой FT2232D с двумя UART-ами.
Так как про микросхему FT2232D в интернете существует большое количество статей, подробно останавливаться на описании её возможностей (а это далеко не только UART) я не буду. Вместо этого, предлагаю сразу перейти к делу.
Схема устройства.
Помимо классических LDO стабилизаторов и фильтрующих конденсаторов, схема содержит буферные микросхемы, необходимые для защиты выводов UART микросхемы FT2232D от воздействия статики, а также для согласования логичеких уровней UART по напряжению. Напряжение логических уровней UART выбирается при помощи джампера, доступны фиксированные напряжения: 1,8В; 3,3В; 5В. Также предусмотрена установка произвольного напряжения в диапазоне 1,65В — 5В, при этом джампер выбора напряжения необходимо снять, а напряжение с отлаживаемого устройства подать на UART адаптер для питания согласующих буферов.Также на схеме имеется микросхема памяти EEPROM 93C46, позволяющая изменять и сохранять конфигурацию для микросхемы FT2232D. Стабилитроны совместно с резисторами защищают микросхемы согласующих буферов от воздействия статики и превышения допустимого напряжения. На обоих UART интерфейсах задействованы только линии RX и TX, поэтому управление потоком программное.
Внешний вид печатной платы в процессе разработки.
Печатная плата после производства.
Промывка плат в ультразвуковой ванне.
Печатная плата после монтажа компонентов.
Установил плату в корпус.
Как видно, общая конструкция адаптера заимствована из моей предыдущей статьи. Применён корпус «BOX-G025», конструкция которого показалась мне очень удачной.
Светодиодная индикация реализована на светодиодах Kingbright серии L13. Всего адаптер имеет 6 светодиодов:
- один светодиод индицирует подачу питания;
- один светодиод индицирует завершение энумерации на USB шине и готовность устройства к работе;
- два светодиода индицируют работу линий RX/TX UART канала «A»;
- два светодиода индицируют работу линий RX/TX UART канала «B».
Теперь необходимо снабдить корпус стикерами. Распечатал их на обычной бумаге, покрыл слоем канцелярского скотча, аккуратно вырезал по контуру:
Наклеил слой двустороннего скотча, ещё раз вырезал по контуру, стикеры готовы.
Внешний вид готового устройства.
На фото справа виден джампер выбора напряжения логических уровней UART.
Устройство получилось простым и удобным в использовании. Для желающих собрать себе такое же утройство, в конце статьи я приложил все необходимые материалы, включая gerber-файлы для заказа плат, и BOM-файл для покупки компонентов.
Если одновременное использование двух (и более) адаптеров FT2232D на одном компьютере не планируется, то микросхему EEPROM 93C46 можно не устанавливать.
Если планируется одновременное подключение и использование двух (и более) адаптеров FT2232D на одном компьютере, то необходимо для каждой микросхемы сгенерировать серийный номер и записать его во внешнюю EEPROM. Сделать это можно двумя способами.
Скачать и запустить утилиту «FT-Prog», нажать «Devices -> Scan and Parse», выбрать строку «USB String Descriptors», установить галочки «Serial Number Enabled» и «Auto Generate Serial», затем записать настройки, используя пункт «Devices -> Program». Серийный номер автоматически сгенерируется перед записью. Затем необходимо снова нажать «Devices -> Scan and Parse», и убедиться в том, что серийный номер теперь отображается.
Прошивка EEPROM через внешний программатор. Для этого необходимо предварительно перевести микросхему FT2232D в состояние сброса, переключив DIP-переключатель SW1 в положение «ON», при этом все выводы FT2232 переходят в высокоимпедансное состояние, и она не будет мешать процессу прошивки EEPROM 93C46. Выставить на программаторе напряжение логических уровней 3,3В. Затем подключить программатор к разъёму XP2. При помощи программатора стереть микросхему EEPROM и записать в неё прошивку. Архив с прошивками EEPROM прикреплён в конце статьи. Затем отсоединить программатор и вернуть DIP-переключатель SW1 в положение «OFF».
Источник