Конвертер usb-uart: перепрошивка адаптером. Конвертер usb-uart: перепрошивка адаптером Альтернативные варианты USB-UART адаптеров

Конвертер usb-uart: перепрошивка адаптером. Конвертер usb-uart: перепрошивка адаптером Альтернативные варианты USB-UART адаптеров

Небольшого размера адаптер USB TTL PL 2303 является неким программатором, используемым с платой для считывания информации с различных датчиков:

  • влажности;
  • температуры;
  • движения.

Этим и обусловлено широкое использование адаптер USB TTL PL2303 в радиоуправляемых устройствах. Программируется TTL USB адаптер на С++, т.е. USB TTL адаптер является «универсальной шиной» при передаче данных, используемой в технике вычислительной низкой и средней скорости.

Чтобы ее подключить к USB RS232 TTL адаптеру необходим четырехпроводной кабель. Одна витая пара нужны для дифференциального подключения при приеме и передаче (RX и TX), а оставшиеся — для подачи питания устройствам периферийным (GND и +5V).

При условии, что наибольшая сила тока таких устройств не превышает 500мА, а у USB – 900мА), подключаются они без своего источника питания.

При том, что для TTL логики 0-5 В имеются стандартные уровни, вроде USB адаптер TTL и не нужен.

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

В помощь можно взят иной протокол — УАПП (UART), на сегодня являющийся наиболее распространенным. Среди семейства из множества протоколов, используемым чаще других считается RS-232, в быту именуемый портом COM. Он самый старый из всех, но и сегодня актуальный.

Он имеет линии:

  • передающая — TXD;
  • принимающая — RXD.

Если используют их, передавая данные, то в аппаратном управлении нет необходимости. Для аппаратного используют DTS и RTS.

Выход передатчика соединяют со входом приемника и наоборот.

RS-232 от логики (5-вольтовой) стандартной разнится электрическим принципом действия. В этом варианте «0» лежит в диапазоне +3 до +12 В, соответственно единица — в пределах от -3 до -12.

Вывод. Назначение адаптеров UART USB TTL состоит в «стыковке» сложнейшего интерфейса

USB с простым и «ходовым» протоколом UART, поддерживаемом микроконтроллерами, и работе с уровнями логики 0-5В.

Адаптер USB RS232 TTL Pl 2303 собирается на PL2303 микросхеме, создающей на ПК виртуальный СОМ-порт. Применяют для прошивки устройств с микроконтроллерами.

Его стоимость на составляет 40,84 рубля.

Чтобы доставить в Украину заплатить дополнительно нужно 149,74 руб.

Основные характеристики PL2303 USB для TTL модуль адаптер конвертер:

  • тип напряжения – регулярное;
  • питание – 3,3/5 V;
  • назначение- для компьютера;
  • температурный диапазон — -40 TO +85;
  • производитель – Diymore.

USB 3.3 В 5.5 В для TTL адаптер мини-порт

Обзор

  • Размер – 36х17,5 мм (ДхШ);
  • Контакты: GND, CTS, VCC, TXD, DTR, RXD, RXD;
  • Чипсет FT232RL;
  • Поддерживает – 5В, 3,3 В;
  • Шаг – 2,54 мм.

Отличного качества модули стоимостью 100,24 руб . предлагается интернет-магазином https://ru.aliexpress.com/popular/ttl-adapter.html .

Для обнаружения авто с помощью GPS адаптер USB TTL PL2303 HX конвертер RS232

Его стоимость составляет 42,7 рублей .

К особенностям относятся:

  • антистатическую упаковку, не допускающую накопления статэлектричества,
  • негативно отражающегося на работе;
  • высокую надежность, стабильность;
  • поддержку WIN7.

Используется продукт, весящий 5 граммов (без упаковки) в студенческих экспериментах производстве и т.д. Его размер – 50Х15Х7 мм. У конвертеров модели USB PL2303 — RS232

TL есть пара интерфейсов, служащих для подключения (пятиконтактный штыревой) и ПК (USB стандартный).

FT232RL USB 3.3 В 5.5 В для TTL мини-порт

Стоимость его 106, 43 рубля . Это недорогой вариант увеличить возможность USB микроконтроллерам. Для защиты самовосстанавливающийся предохранитель 500ma, чтобы защититься от перезагрузок по току.

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

  • цвет – красный;
  • питание USB- 5 или 3,3 В;
  • вес – 4 грамма;
  • габариты — 43х17 мм.

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

USB в TTL для UART на чипе PL2303

Используется при Arduino программировании.

Конвертер на микросхеме Max3232 преобразует сигналы RS-232 порта в пригодные к использованию в цифровых схемах на основании TTL-технологий.

Стоит 76,11 рублей.

CP2102 USB 2.0 для TTL UART 6Pin

Состоит из платы CP2102, USB2.0 full-speed встроенного, генератора кварцевого, шины данных UART и поддерживает сигналы, не требуя внешнего USB модема.

  • Весит 4 грамма;
  • Индикаторы светодиодные на: питании, передаче и приеме;
  • Статус рабочий– 3,3 и 5 В.

Стоит 82, 3 рубля.

Все началось с того, что мне надо было подключиться к одному устройству по 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 Резистор

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

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

Для управления и настройкой некоторых конструкций на микроконтроллерах PIC и ATMEGA необходимо удобное их подключение к компьютеру или ноутбуку. В серии микроконтроллеров PIC16 (на которых я обычно и делаю свои самоделки) нет аппаратной реализации USB, но есть обычный последовательный порт UART, который является урезанной версией COM-порта старых компьютеров. Работа с ним не вызывает особых трудностей, а также необходимо не много ресурсов самого микроконтроллера, т.к. в отличии от USB в нем более простой протокол, который тем не менее позволяет так же передавать данные. В некоторых компьютерах все еще есть COM-порт, правда иногда он не выведен наружу - в таком случае для подключения необходимо только подключение преобразователя уровней (например, MAX232) , но на более новых материнских платах, а также ноутбуках его нет вовсе.


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


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

Подключение микросхемы достаточно простое даже для начинающего радиолюбителя.




Для питания необходимо 3.3V (VCC), кварц на 12 МГц (Выводы XI и XO), остальные выводы используются для работы с COM-портом (для работы достаточно RX и TX, остальные для передачи сигналов готовности устройства и на практике используются редко).

Самое обсуждаемое
Технология ADSL Коротко о технологии ATM Технология ADSL Коротко о технологии ATM
Системные требования к World of Warcraft Legion Фракции и Классы Системные требования к World of Warcraft Legion Фракции и Классы
Инди игры Игра обновлена до полной версии Инди игры Игра обновлена до полной версии


top