Можно ли использовать usb uart. Конвертер usb-uart: перепрошивка адаптером. К особенностям относятся

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

Конвертер USB-UART на CH340G:
дорабатываем до RS232TTL, тестируем, сравниваем

Апрель 2017 г.

1. Что такое TTL и при чём тут USB ?

Как-то на "Али" привлёк моё внимание очень недорогой конвертер USB-UART . Сначала я был не вполне уверен, что это за штука на самом деле. Название товара на английском выглядело так: "USB to TTL converter UART module CH340G CH340 3.3V 5V switch". Упоминание UART и микросхемы CH340G, вроде, рассеивало сомнения, но не нравилась фраза "USB to TTL", которая была видна также и на фотографии модуля, на его нижней стороне. Дело в том, что эта фраза не имеет смысла, а значит, открывает широкий простор для вольного толкования.

По идее в переводе на русский язык фраза "USB to TTL " должна означать "преобразование USB в TTL". Объяснять, что такое USB, сейчас никому не надо, а вот про TTL слышали не многие. Поэтому давайте обратимся к истории, и посмотрим, что такое TTL .

Интересно, что и Гугл и Яндекс на запрос "Что такое TTL" выдали ссылки про TTL из совсем другой области. Так что же это такое, применительно к электронике? Аббревиатура TTL на русском языке не отличается от англоязычного варианта и расшифровывается, как транзисторно-транзисторная логика (ТТЛ) . Изначально это понятие подразумевало особенности внутреннего строения некоторых цифровых микросхем, совокупность технических решений, включая схемотехнические и технологические. Кроме всего прочего, стандарт ТТЛ задавал и способ кодирования логических сигналов . Так, например, логический ноль кодировался напряжением, близким общему проводу питания. Причём общий провод подключался к минусу источника питания и принимался за нулевой потенциал - "земля". А логическая единица кодировалась напряжением, близким напряжению питания +5В. Само напряжение питания +5В тоже стало неотъемлемой частью стандарта ТТЛ.

Надо отметить, что микросхемы ТТЛ в своё время получили очень широкое распространение. В Советском Союзе, пожалуй, наиболее известной была серия К155. Широкое применение этих и им подобных микросхем заставило разработчиков аппаратуры в целях совместимости придерживаться тех же способов кодирования сигналов логического нуля и логической единицы, которые предусматривались стандартом ТТЛ.

Но ничего не стоит на месте. Микросхемы ТТЛ, построенные на биполярных транзисторах, вскоре стали устаревать. Они сильно проигрывали более современным микросхемам как по быстродействию, так и по потреблению энергии. Им на замену стали приходить другие семейства микросхем, основанные на МДП-структурах (металл-диэлектрик-полупроводник), а по-простому - на полевых транзисторах. Но стандарт кодирования сигналов устаревать не собирался, поэтому многие новые микросхемы, даже не имея прямого отношения к ТТЛ, сохраняли совместимость с ТТЛ. Сами же микросхемы ТТЛ постепенно стали частью истории (хотя в любительских конструкциях применяются по сей день), а их общее название - аббревиатура ТТЛ - обрело несколько иной смысл. Теперь ТТЛ следует толковать как "стандарт уровней напряжения для кодирования логических нуля и единицы, применявшийся в микросхемах ТТЛ".

И что же, с учётом вышесказанного, могут означать слова "USB to TTL"? Думаю, теперь понятно, почему эта фраза не имеет смысла.

2. Конвертер интерфейса на микросхеме CH340G

Данное изделие я в итоге заказал. Обошлось оно мне с пересылкой в 44,30 руб., то есть почти даром. Но это не тот случай, когда дёшево - значит плохо. При подключении он сразу определился в системе (Windows 8.1). Никаких проблем с драйверами не возникло. Ранее я уже подключал другой конвертер на CH340 (тот в виде шнура-переходника USB-COM), поэтому драйвер уже стоял. Надо сказать, что и в прошлый раз не было нужды искать драйвер и ставить его вручную - всё получилось в автоматическом режиме. Теперь же ранее установленный драйвер сразу признал новое устройство.

Как и следовало ожидать, это оказался конвертер USB-UART, вроде тех, что я покупал ранее . Из полезных сигналов на разъём модуля здесь тоже выведены только TXD и RXD. Меня, конечно, это не устраивало. Зная, что микросхема CH340G обеспечивает формирование полного* набора сигналов RS232 , я покупал этот модуль с расчётом на его дальнейшее усовершенствование. Кстати, столь низкая цена - это во многом следствие "неполноценности" данного модуля. С одними лишь сигналами TXD и RXD его возможности сильно ограничены. А вот с полным набором сигналов RS232 возможности модуля и область его применения становятся поистине неисчерпаемыми (вовсе не обязательно использовать входы-выходы RS232 строго по их назначению). Такой порт можно даже рассматривать, как малоразрядный параллельный порт с произвольной установкой сигналов на трёх выходах и произвольным опросом состояния четырёх входов. На этом сайте вы уже могли видеть разные варианты использования аналогичного модуля. Но конвертер с полным набором сигналов стоит обычно на порядок дороже. А зачем переплачивать? Для тех, кто дружит с паяльником, оптимальное решение - купить "полуфабрикат" и довести его до полноценного состояния.

* Под "полным" набором сигналов RS232 здесь будем подразумевать сигналы COM-порта , хотя стандарт RS232 предусматривает и многие другие сигналы, не используемые в COM.

Добавлю, что модуль имеет три светодиода (все красные), один из которых сигнализирует о подаче питающего напряжения от USB, а два других отображают состояние сигналов TXD и RXD (загораясь при логическом нуле, то есть при низком напряжении относительно GND).

3. Доработка модуля UART до полноценного RS232TTL

Вывод Назначение
2 выход TXD
3 вход RXD
9 вход CTS
10 вход DSR
11 вход RI
12 вход DCD
13 выход DTR
14 выход RTS
Таб. 1. Нумерация выводов
микросхемы CH340G
с сигналами RS232

В общем-то, вся доработка заключалась только в том, чтобы подпаяться к соответствующим ножкам микросхемы. Для этого предварительно потребовалось прорезать окно в термоусадочной оболочке. Соответствие выводов микросхемы CH340G и сигналов RS232 смотрите в таблице Таб.1.

Как видно из таблицы, все сигналы, кроме TXD и RXD находятся на одной стороне микросхемы, но TXD и RXD уже выведены на разъём, поэтому паять дополнительные провода потребовалось лишь с одной стороны.

4. Тестирование конвертера на микросхеме CH340G

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

Тестирование проводилось с помощью нескольких сценариев к программе Перпетуум М. Вы также можете протестировать свой конвертер. Скачайте (они упакованы в один архив) и отдельно . Не забудьте проверить и при необходимости поменять номер порта в сценариях, иначе они не будут работать. Узнать номер порта в вашем случае можно через диспетчер устройств Windows. В начале каждого сценария (а их можно открывать текстовым редактором, например, блокнотом) вы увидите строку "ИмяПорта="COM3";". Вместо цифры 3 поставьте ту цифру, которую нужно. Например, если при подключении модуля в диспетчере устройств появляется устройство COM4, то и в каждом сценарии нужно указать "COM4" вместо "COM3".

Теперь подробнее расскажу о ходе тестирования. Сначала я установил перемычку между штырьками разъёма TXD и RXD , чтобы данные передатчика сразу попадали в приёмник. Таким образом я "закольцевал" порт, чтобы он мог передавать данные самому себе. Это позволяет проверить одновременно и передатчик и приёмник без подключения к другому порту. Затем я запустил сценарий "Тест COM-порта путём перекачки через него файла" и выбрал случайно подвернувшийся файл размером 653 Кб. Копирование файла прошло успешно. Скопированный файл оказался абсолютно идентичен оригиналу, что говорит об исправности приёмника и передатчика модуля UART.

Далее я последовательно запускал сценарии "Тест выхода TXD COM-порта", "Тест выхода DTR COM-порта" и "Тест выхода RTS COM-порта", предварительно для каждого случая подключив вольтметр к соответствующему выходу. Вводя нули и единицы в диалоговое окно программы, я убедился, что они успешно отображаются на выходах порта. При этом выяснилось, что выход TXD отображает логические уровни без инверсии, то есть при выводе нуля появляется низкое напряжение, при выводе единицы - высокое, а выходы DTR и RTS работают с инверсией. Это нужно учитывать при использовании данного модуля в разработках.

Затем я запустил сценарий "Тест входов COM-порта", который в реальном времени отображает состояние сразу четырёх входов порта: CTS, DSR, RI, DCD. Через резистор 5,6К я стал один за другим соединять каждый из входов то с общим проводом (GND), то с линией питания +5В. Выяснилось следующее. Все входы работоспособны, все они при программном опросе выдают инверсное состояние. Все имеют "подтяжку" к напряжению питания, то есть "висячий" вход имеет уровень логической единицы и, соответственно, из-за инверсии программно читается как "0". При соединении входа через резистор 5,6К со штырьком разъёма GND каждый вход легко переходит в состояние логического нуля (программно читается как "1"), а значит сопротивление встроенной "подтяжки" по меньшей мере на порядок выше, чем 5,6К. Заметим, что в модулях на микросхеме PL2303 "перебить" встроенную "подтяжку" намного сложнее из-за её низкоомности.

Подведём итоги: кроме возможности последовательной передачи данных через UART, мы имеем три независимо управляемых выхода (TXD, DTR, RTS ), из которых один прямой (TXD) и два инверсных, а также четыре программно опрашиваемых инверсных входа с "подтяжкой" к напряжению питания (CTS, DSR, RI, DCD ). Если планируется задействование UART, то независимых выходов останется только два, так как выход TXD - это сигнал передатчика UART. Входов это не касается - их всё равно будет четыре.

Надо сказать ещё об одной возможности, которая якобы позволяет перестановкой перемычки менять уровень логической единицы на выходах в зависимости от того, каким напряжением питаются микросхемы, подключенные к данному модулю: 5В или 3,3В. То есть решается вопрос согласования уровней. Пишу об этой "фишке" с некоторым пренебрежением, потому что она реализована как-то странно и доверия не вызывает. Впрочем, особой необходимости в ней и нет, потому что согласовать уровни между 5В и 3.3В несложно и другими способами. А дело тут вот в чём. Модуль имеет три штырька: 5V, VCC и 3,3V. Перемычкой (она даже входит в комплект) можно замкнуть 5V и VCC, либо VCC и 3,3V. А можно и совсем её не ставить, так как при полном отсутствии перемычки всё работает так же, как если она установлена между VCC и 3,3V. Напряжение на штырьке 5V соответствует напряжению провода +5В порта USB. На штырьке VCC при отсутствии перемычки имеется напряжение около 3,8В, а на штырьке 3,3V - примерно 3,2В. Если перемычка установлена между 5V и VCC, то, в принципе, вопросов не возникает - работают уровни ТТЛ, то есть логическая единица достигает пяти вольт. Но если установить перемычку между VCC и 3,3V, то вопросы возникают, потому что при этом напряжение на штырьке 3,3V поднимается до 3,8В (как было на VCC до установки перемычки), а на выходах порта логическая единица достигает 3,6...3,8В, что многовато для 3,3В. Без установки перемычки на выходах уровень единицы тоже достигает 3,6...3,8В. Может, при этом ничего и не сгорит, но упор в предельно допустимые значения - не лучший фактор для надёжности.

5. Преимущества и недостатки конвертера на CH340G

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

Плюсов однозначно больше. Прежде всего, радует отсутствие проблем с драйверами. Как я уже сказал выше, для микросхем CH340 драйвера на Windows устанавливаются автоматически, включая последние версии ОС. А вот с конвертерами на микросхеме PL2303 всё намного сложнее. Для старых микросхем нет драйверов под новые версии Windows. А старых микросхем в прошлом было выпущено море. Если не ошибаюсь, это и послужило причиной того, что разработчики не стали поддерживать старые микросхемы. Вроде, там была какая-то проблема с авторскими правами - на рынке оказалось много контрафактных микросхем. И тогда разработчики, ничего принципиально не меняя в новой микросхеме, изменили лишь то, как она откликается на запрос драйвера. Грубо говоря, на вопрос "Ты кто?", новая микросхема стала отвечать: "Я Вася-плюс". А если драйвер получает ответ "Я Вася", то он говорит этой микросхеме: "Иди лесом, Вася без плюса". То есть чисто технически новый драйвер вполне мог бы работать и со старой микросхемой. Насколько я знаю, существуют даже способы обхода этой напасти - то ли как-то новый драйвер заставляют работать со старой микросхемой, то ли старый драйвер "прикручивают" к новой ОС.

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


На мой взгляд, плюсом можно посчитать и высокоомность "подтяжки" входов, что уменьшает ток логического нуля, а значит, предъявляет меньше требований к источнику сигнала. Если же требования по защите от помех очень высоки, то можно без труда организовать дополнительную "подтяжку" внешним резистором. При использовании данного модуля в роли (см. рисунок справа) можно ставить все резисторы с одинаковым сопротивлением (1К...4,3К). То есть сильно занижать сопротивление на входе CTS не требуется.

Добавлю ещё, что в прошлом я проводил сравнительное тестирование двух конвертеров на микросхемах PL2303 и CH340 . Однозначно выиграл CH340 - в экстремальных режимах получить сбои в работе с ним было намного труднее. Хотя это был конвертер другой конструкции (шнур-переходник), но, как мне кажется, можно ожидать, что и другие модели конвертеров семейства CH340 не менее надёжны.

Если у вас есть вопросы или замечания по данной статье, пишите в или на почту mail.ru (ящик jkit).

Из переписки с посетителем сайта

12.05.2017 Гость:
Здравствуйте, Евгений.
.htm
У меня такой же конвертер (один в один).
Дело в том, что мне нужно перепрошить аппаратуру FlySky i6 на 10 каналов. Изначально перемычка стоит в положении "VCC-3V3". Я правильно понял, что её нужно так и оставить? Извините, но я не в теме, потому задаю этот вопрос. Не хочется что-нибудь спалить.

14.05.2017
Здравствуйте, Владимир!
Ответ на ваш вопрос зависит от технических характеристик той аппаратуры, к которой вы подключаете модуль на CH340G. Я с этой аппаратурой не сталкивался, поэтому точно ничего не могу сказать. Ссылка, которую вы дали выдаёт ошибку 404. Но, даже если бы ссылка работала, вряд ли бы я нашёл время детально разбираться в той аппаратуре. Попробуйте для начала VCC-3V3. Думаю, хуже не будет. На всякий случай поставьте резисторы по 1 кОм в каждый сигнальный провод (это из-за того, что фактически не 3,3 В, а больше).

14.05.2017 Гость:
Здравствуйте, Евгений.
Спасибо за совет! Действительно, лучше начать с малого.
А 1 кОм - это из расчета на какой ток было? (я просто не в курсе какие токи протекают по сигнальному проводу, и найти нигде не смог)

17.05.2017
Здравствуйте, Владимир!
Вопрос сформулирован некорректно. Зачем вам знать ток? 1 кОм я взял "на глазок", исходя из того, что если где-то даже каким-то образом к резистору аварийно приложится 5 В (а больше, по идее, поблизости и быть не должно), то ток составит 5 мА, что не должно привести к негативным последствиям.

17.05.2017 Гость:
Здравствуйте, Евгений.
Говорил про ток, т.к. если он приближен к нулю, то падения напряжения на резисторе не будет и на выходе будут те же 3,6 В вместо 3,3 В. Но смысл вашей перестраховки понял, спасибо за замечание.

19.05.2017
Здравствуйте, Владимир!
Там сплошь нелинейные элементы. И дело не в том, что лишние 0.3 В могут что-то пробить напряжением, а как раз в том, что даже небольшой прирост напряжения может внезапно вызвать нелинейно быстрый рост тока. Например, могут открыться защитные диоды на входах и т.п. Резистор придаёт линейности цепи и не допускает такого развития событий. А нормальные токи обычно маленькие (хотя и не всегда), поэтому резистор не должен помешать. Исключение - низкоомная подтяжка на входе. Тогда резистор не позволит её "побороть" и ничего не заработает. Это выявляется осциллографом, или даже вольтметром (в статическом режиме).

19.05.2017 Гость:
Здравствуйте, Евгений.
Спасибо большое за детальное разъяснение. Теперь хоть понимаю сам механизм такой защиты. А то я уж думал, что китайцы могли специально завысить напряжение с учетом падения при включении нагрузки. Теперь понятно, что это просто недочет.

20.05.2017
Здравствуйте, Владимир!
Чтобы напряжение не "проседало" при подключении нагрузки, повышают нагрузочную способность выхода. "Лишнее" напряжение для этого не добавляют. Конечно, 3,6 В вместо 3,3 В - это не так уж много, и вряд ли что-то из-за этого сломается. Но 3,8 В подавать на вход микросхемы, питающейся от источника 3,3 В опасно, так как лишние 0,5 В уже вполне способны открыть защитный диод на входе, и, если нагрузочная способность выхода велика, он может повредить подключенный к нему вход. "Страховочный" резистор этому препятствует.

Использование материалов данного сайта в публикациях допустимо только при условии сопровождения этих материалов ссылками на источник - сайт сайт с указанием автора: Е.А.Котов. Авторские права защищены законами РФ. Евгений Котов. 2017г.

LPT и COM порты уже большая редкость на современных стационарных компьютерах, а про ноутбуки то и говорить нечего. USB медленно, но верно вытеснила их, усложнив жизнь разработчикам и упростив пользователям. Эх, как приятно было когда-то подключить микроконтроллер к COM порту компьютера, используя всего лишь max232 и не заботясь о драйверах. Еще чуть-чуть и это будет возможно только на промышленных компах.

Следуя общей тенденции, производители микросхем стали выпускать доступные микросхемы для работы с USB. Такие как USB-UART преобразователи или микроконтроллеры с поддержкой этой шины. К сожалению последние, несмотря на наличие библиотек, все еще сложны в освоении, поэтому неискушенному инженеру проще использовать первый вариант. И в этой статье мы рассмотрим две подобные микросхемы - FT232 и CP2103 и схемы преобразователей на их основе.

USB-UART преобразователь на FT232RL

Микросхема FT232RL фирмы FTDI пользуется заслуженной популярностью в инженерных кругах. Она предоставляет пользователю возможность создания полноценного COM порта, имеет функцию управления отдельными выводами, драйвера, простую схему включения с минимальным количеством дополнительных элементов и приемлемый для пайки корпус. Также дополнительным плюсом этой микросхемы, является возможность программирования ее EEPROM памяти, в которой можно изменить некоторые параметры USB устройств. Из недостатков можно отметить ее высокую цену ~120-150 рублей, которая вполне сравнима с ценой на микроконтроллер atmega.
Я сделал на FT232RL свой вариант USB-UART преобразователя. Все пользовательские выводы развел на PLS`ку по краям платы. Расстояние между PLS выбрал таким, чтобы можно было втыкать переходник в макетную плату. Выводы RXD и TXD, предназначенные для подключения UART`a микроконтроллера, развел на отдельную PLS для удобства подключения. Также на плату помесил 2 светодиода, для индикации процесса передачи/приема информации микросхемой FT232RL, и перемычки для выбора напряжения питания выводов. Оно может быть пяти или трех вольтовым. USB разъем взял в мини исполнении, USB-B слишком громоздкий. Плату развел в одном слое, с тремя перемычками.

Схема USB-UART переходника на FT232RL


Внешний вид полученного девайса

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

При первом включении операционка попросит установить драйвера. Их можно скачать с официального сайта производителя - драйвер для FT232 . Установка драйверов не представляет никакой сложности, поэтому говорить об этом не будем.
Когда драйвер установится, в системе появится дополнительный COM порт. Это так называемый виртуальный COM порт, но его можно использовать точно так же как и обычный. Чтобы увидеть его порядковый номер, нужно залезть в диспетчер устройств, если у тебя винда. Заходишь в панель управления, выбираешь система > диспетчер устройств. В разделе "Порты (COM и LPT)" должен находиться наш переходник - "USB Serial Port (COM10)". У тебя может быть какой-нибудь другой номер порта.
Чтобы убедиться в работоспособности переходника нужно открыть любую терминальную программу, выбрать соответствующий COM порт, замкнуть джампером выводы RXD и TXD и отправить через терминал любую последовательность символов. Если переходник функционирует, терминал примет ответ в виде эха, а на плате кратковременно вспыхнут светодиоды.
Для подключения переходника к микроконтроллеру, нужно вывод RXD микроконтроллера соединить с выводом TXD переходника, а вывод TXD микроконтроллера с выводом RXD переходника. Также нужно соединить их земли.

USB UART переходник на CP2103

Микросхема CP2103 фирмы Silicon Labs - это по сути аналог FT232. Имеет простую схему включения с минимальным количеством внешних компонентов, позволяет организовать полноценный COM порт со всеми его сигналами, имеет дополнительные пользовательские выводы и программу для их конфигурации, драйвера, маленькие габариты и более демократичную цену. Из недостатков стоит отметить мелкий и неудобный для запайки в домашних условиях корпус. Пожалуй, это главная причина непопулярности этой микросхемы в среде самодельщиков.
Ради интереса я сделал USB UART преобразователь и на ее базе. Все пользовательские выводы развел на PLS`ки по краям платы. RXD и TXD вывел на отдельный разъем. Джампер для выбора напряжения питания выводов здесь не понадобился, так как это напряжение не может быть большее 3.6 В. USB разъем выбрал в мини исполнении, плату развел в одном слое с четырьмя перемычками на обратной стороне. Светодиоды для индикации передачи/приема данных не сделал, потому что микросхема CP2103 не имеет выделенных для этих целей выводов. Можно задействовать любые пользовательские выводы, но их нужно конфигурировать с помощью специального софта. Когда я это узнал, переходник уже был готов и переделывать его было лень, особенно после мучений с запайкой. Единственное, что я добавил из индикации - это светодиод по питанию.


Схема USB-UART преобразователя на CP2103


Внешний вид полученного девайса

Я немного помучился с изготовлением этого переходника. Во первых между ножками CP2103 очень маленький зазор, нужно аккуратно делать плату. Во вторых ее сложно припаять. Если бы у меня не было фена, я бы за это вообще не взялся.
Запаивал я ее следующим образом. Залудил плату сплавом Розе. Он плавится при 100 градусах, что позволяет избегать перегрева платы и микросхемы. Обильно смочил посадочное место микросхемы флюсом и положил ее туда. Используя увеличительное стекло и пинцет, кое-как сориентировал ее по посадочному месту. Далее стал нагревать микросхему феном с температурой ~150-200 градусов. Когда припой расплавился, микросхема стала шевелиться и за счет сил поверхностного натяжения заняла точное положение на посадочном месте. Получилось очень ровно, но переходник не заработал. Я повторно нагрел микросхему и слегка придавил и пошевелил пинцетом. После этого микросхема сконтактировала с дорожками платы.
После сборки переходника нужно убедиться в отсутствии замыканий между плюсом питания, землей и выводами D+, D-, а затем между остальными выводами. Поскольку микросхема очень маленькая, между выводами легко может сесть сопля. После проверки выводов, USB UART переходник можно подключать к компьютеру.
Как и с предыдущем переходником, при первом включении система предложит установить драйвера. Скачивай их с официального сайта производителя - драйвер для CP2103 .
Установленный переходник определяется в диспетчере устройств в разделе "Порты" как "Silicon Labs CP210X USB to UART Bridge (COM6)". У тебя может быть другой номер порта.
Работоспособность проверяется аналогично, повторяться не буду.

Альтернативные варианты USB-UART адаптеров

Альтернативные варианты адаптеров можно сделать на микросхемах FT230XS и CP2102. Это урезанные и соответственно более дешевые аналоги FT232 и CP2103. Обе микросхемы имеет меньшее число пользовательских выводов и не совпадают по распиновке.

Файлы

Ссылки

Софт для настройки FT232RL - FT Prog
Софт для настройки CP2103 - Customization Utility Много весит!

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

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

Но существует и третий вид ремонта, обычно применительно к цифровой технике, в котором эти два вида ремонта бывают совмещены - это перепрошивка устройства. И если смартфон или планшет мы можем перепрошить просто подключив его к компьютеру по 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: ПЕРЕПРОШИВКА АДАПТЕРОМ

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

Как Вы знаете, существует множество интерфейсов, посредством которых микроконтроллер может общаться с внешним миром. Но если речь идет о связи с компьютером - вне конкуренции интерфейс RS-232 (COM порт). Причина - простота работы с портом со стороны компьютера и наличие большого количества программ для этого предназначенных. Кроме того, почти в каждом микроконтроллере есть аппаратно поддерживаемый интерфейс USART (это тот-же RS-232, только с напряжениями 0 - 5v), что делает процесс связи легко реализуемым.
Для того, чтобы привести уровни сигнала микроконтроллерного USART к уровням COM порта компьютера нужно собрать несложный преобразователь (например, на МАХ232), но можно пойти по более интересному пути
Более интересный путь - собрать преобразователь UART to USB. При этом USB порт воспринимается компьютером как виртуальный COM порт. В этом случае мы убиваем сразу несколько зайцев:
- USB порт есть в любом компьютере (хотя COM порт встречается еще довольно часто, но на ноутбуках его уже нет);
- как оказалось преобразователь UART to COM(RS-232) сделать гораздо сложнее, чем UART to USB (два раза делал программатор для СОМ порта с преобразователем МАХ232 - оба раза неудачно);
- если подключать преобразователь через USB хаб, то мы получаем сразу несколько виртуальных COM портов на одном USB, плюс безопасность для компьютера, так как хаб выступает в роли буфера.

Вот схема преобразователя UART to USB.

Сразу честно признаюсь - это не мое устройство. Взята данная схема с сайта www.recursion.jp/avrcdc/ . Причина, по которой я ее здесь привожу - это простота схемы и дешевизна изготовления. Собрать схему довольно просто (можно даже на макете).

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

Печатная плата двухсторонняя, подходит для микроконтроллеров ATmega8/48/88/168

Фьюзы для ATmega8

Фьюзы для ATmega48/88/168

Фьюзы для CodeVisionAVR, PonyProg ставятся инверсно

SPI интерфейс для программатора выведен вместе со всеми интерфейсами сзади «флешки» - подключаем программатор прямо там. Штырек сброса паяем возле ножки сброса (чтоб не мешал). При программировании преобразователь нужно запитать напряжением 5v со стороны интерфейсов. Через USB нежелательно, так как напряжение питания через светодиод уменьшится. Если возникают проблемы по причине больших шумов - вешаем подтягивающий к питанию резистор на ножку сброса (5-10кОм). Наличие светодиода обязательно - он используется в качестве регулятора напряжения. Прошивка предусматривает работу управляющих линий (CTS, RTS, DTR), но для UART они не нужны и я их не выводил на разъем интерфейсов. Если они Вам нужны - просто нужно «кинуть» перемычки с ножек микроконтроллера на ножки разъема интерфейсов.


После того как устройство собрано,
необходимо установить драйвер виртуального COM порта.


/raw — для (Windows 2000/XP)


Делается это очень просто:

1 Вставляем «флешку-преобразователь» в USB порт;

2 Получаем в трее сообщение о том, что найдено новое устройство;

3 Запустится «Мастер нового оборудования», выбираем «Установка из указанного места», жмем «Далее»;

4 Выбираем «Включить следующее место для поиска» и в окошке указываем нужный путь к драйверу;
5 Жмем «Далее», драйвер установится, жмем «Готово»

Теперь в «Свойствах» «моего компьютера» в закладке «Оборудование» нажимаем кнопку «Диспетчер устройств». В окошке диспетчера устройств в разделе «Порты (COM и LPT)» увидим новое устройство - «Virtual Communications Port (COM5)».


Для каждого USB порта будет назначен свой виртуальный COM порт (COM5, COM6, COM7 и т.д.).

Готово! Теперь можно пользоваться преобразователем.

Проверим работоспособность преобразователя, для этого нужно закоротить вход с выходом (RxD, TxD) и посылать с компьютера сообщения по виртуальному порту. Посланные сообщения должны возвращаться как принятые.

На нужные штырьки цепляем «джампер»-перемычку. Запускаем программу для работы с COM портом. Можно использовать стандартный виндовский гипертерминал, но мне больше нравиться другая программка - маленькая, портативная и функциональная.

Запускаем программу, устанавливаем нужный порт (смотрим номер порта в диспетчере устройств), скорость и другие параметры оставляем как есть, нажимаем «Connect», в окошке возле кнопки «->Send», пишем сообщение, нажимаем »->Send» и сморим результат. Нижнее окно - отправленное сообщение, большое окно - принятое сообщения. Если все работает - сообщения будут одинаковыми.

Данная «флешка - преобразователь интерфейсов» позже превратится в I2C toUSB, SPI to USB, SPI to UART и т.д. необходимо лишь перепрошивать ее необходимой прошивкой. (Что-то я у себя начинаю замечать тягу к универсализации:)).

P.S. Сайт-источник рекомендует для согласования уровней напряжения преобразователя(3.3v) и устройства(5v) соединять их через схему согласования. Но я думаю резисторов в пределах полукилоома в линиях RxD, TxD должно хватить для согласования - нужно попробовать.

P.P.S. Это первая практическая схема в блоге - дальше их будет больше, так как с основами мы, вроде-бы, разобрались (еще остались кой-какие вопросы - потихоньку буду писать).

программа для работы с COM портом.

В архиве есть папки для разных Win:
/raw — для (Windows 2000/XP)
/w2k — для Windows 2000 (bulk mode only)
/xpvista7 — для Windows XP/Vista/7 x32
/vista64 — для Windows Vista x64