040-UART(RS-232) to USB-простой преобразователь.

Автор: | 11.05.2010

Преобразователь УАРТНаконец-то закончились праздники, и пришло время чего-нибудь сделать.

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

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


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

Внешний вид преобразователя UART to USB

Плата целяком

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

Удлинитель для преобразователя

Печатная плата двухсторонняя, подходит для микроконтроллеров ATmega8/48/88/168 
040-M48-UARTtoUSB.lay v1.0 [30.02 KB] - рисунок макетной платы в формате Sprint-Layout

Вот вариант для изготовления по технологии описанной в посте №32.
040-M48-UARTtoUSB-2L.lay v1.0 [59.75 KB] - рисунок макетной платы в формате Sprint-Layout на одном слое

Прошивки для различных микроконтроллеров:
040-cdcmega.zip v1.0 [13.25 KB] - прошивка UART to USB для ATmega8/48/88/168
Фьюзы для ATmega8
Фьюзы для ATmega48/88/168
Фьюзы для CodeVisionAVR, PonyProg ставятся инверсно

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

После того как устройство собрано,
необходимо установить драйвер виртуального COM порта.
040-avrcdc_inf.zip v1.0 [39.51 KB] - Драйвер «Virtual Communications Port» для Win
В архиве есть папки для разных Win:
/raw — для (Windows 2000/XP)
/w2k — для Windows 2000 (bulk mode only)
/xpvista7 — для Windows XP/Vista/7 x32
/vista64 — для Windows Vista x64

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

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

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

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

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

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

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

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

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

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

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

Проверка работоспособности COM порта

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

Универсальный конвертер

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

Согласование уровней

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

(Visited 7 471 times, 28 visits today)

There are 280 comments

Комментарии подгрузятся после небольшой паузы.