Преобразователь интерфейса USB <-> UART

Рано или поздно перед разработчиком какого либо устройства на микроконтроллере появляется потребность в стыковке его с компьютером. Самое простое и очевидное решение — это заюзать COM или LPT порт компьютера. А как быть тем у кого нет COM и LPT ? Например владельцам ноутов?  Решение есть!  Встречайте этот чудесный девайс. Это преобразователь интерфейсов USB-UART.

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

  • Стоимость. Например у нас FT232RL стоит 155 р. Довольно таки дорого
  • Корпус . Она жутко мелкая! Корпус SSOP-28 не для новичков.
  • Доступность. Достать её не так то просто. Во всяком случае у нас

Я предлагаю собрать аналогичный преобразователь на микроконтроллере Atmega8. Скажу сразу что схема и прошивка не моя. Я лишь разработал печатную плату и доработал схему. (добавил стабилитроны на 3.3 в). Итак схема :

Как видно, схема особой сложности не представляет.  Хочу обратить внимание на то что нумерация указанная на схем подходит только для микроконтроллера в DIP корпусе. Я же использовал TQFP для экономии места. Получилось у меня примерно следующее:

Скачать всё необходимое можно по ссылкам ниже. Готов ответить на все вопросы в комментариях :-)

Первоисточник.  Тут можно найти драйвера и прошивки

Печатная плата. В формате ARES Professional

Прошивка для Atmega8

Драйвер COM порта

Преобразователь интерфейса USB <-> UART: 66 комментариев

  1. Мне вот пришлось все-же использовать FTDI232R, так как не для всякого случая можно использовать вариант на МК. Все-же у COM порта выводов по более будет и их еще используют некоторые устройства, например мой дата кабель для Siemens. Но вот для согласования USB с микроконтроллером я думаю, что данный вариант вполне пойдет.

  2. Я вот не смог найти 2102, да и не очень они мне. У меня был дата кабель с ентой 2102, так постоянно рвался канал связи, приходилось только через перезагрузку восстанавливать.

  3. Очень полезная вещь, интересует такая сторона проекта как софт которым можно шить контроллер с этого программатора. Любая программа не заметит разницы между настоящим СОМ-портом и данным виртуальным? Кто чем пользуется?

  4. на меге8 более 2 лет работает сутками в полудуплексе на скорости 38400 в режиме РС485. ДЛЯ управления передачей сделал использовал вторую мегу8, которая выполняет еще ряд задач. Оптроны H11L1-M.

  5. Добрый день, Medved!
    Скажите пожалуйста, зачем выводятся RESET, MOSI, MISO и SCK это ведь интерфейс последовательного программатора? В UART они не используются? Или существуют версии протокола для такого подключения?
    Далее — судя по схеме, делали в Протеусе? Попутно вопрос — не пробовали подключить к ПК прямо из Протеуса через USBCONN? Если да, то какой драйвер использовали?

    1. Эти выводы выводятся только для того чтобы прошить микроконтроллер когда он уже запаян в плату. В UART они разумеется не используются. через USBCONN это не заработает. Насколько я знаю через этот USBCONN работают только микроконтроллеры у которых есть аппаратная поддержка USB

  6. Понял, спасибо! Прошивать-то любой контроллер надо…
    Как раз на сайте labcenter.com прочитал то же самое, и в Протеусе нашел примеры для AT90USB1286, они через гипертерминал работают, а Ваша схема нет… Печально.
    Еще вопрос — чем схема на Atmega8 лучше чем на ATtiny2313-20 с сайта первоисточника? Там сказано, что пропущены (не реализованы) некоторые функции, не в курсе — какие? Далее — на всех оригинальных схемах присутствует светодиод между + и 1 ножкой USB, у Вас это заменено перемычкой, почему?

    1. Схема на атмега8 лучше тем, что там помимо линий RxD и TxD есть еще CTR, DTR и RTS. Обычно они не нужны, но могут пригодится если нужно сделать полноценный переходник USB-COM (естественно нужно еще max232 впаять будет).
      Светодиод тут мне просто ни к чему =)

  7. Вопрос:можно ли к выходам RxD и TxD прикрутить светодиоды(чтоб визуально было видно что передает)?Не скажется на работе преобразователя?

    1. Сообщения тут не редактируются. Как говорится что сказано пером не вырубишь топором =) Стабилитроны в корпусе MiniMELF. Да атмегу48 можно поставить по ногам они совместимы. Только прошивку надо зашить другую. Вот самая последняя для меги 48
      http://avrdevices.ru/Firmware/cdcmega48.hex

  8. Доброго дня. Не обольшайтесь…
    С этой прошивкой (на ATMega8), выводы RTS (как выход),и CTS (как вход) — не реагируют. Хотя на схеме автора они указаны. Управляется только выход DTR, но может изменить своё состояние самостоятельно, при обращенн к регистрам COM-porta, что тоже не есть хорошо.
    А многим бывает необходимо использовать дополнительные выводы модема.
    Их всего шесть. 4 — на ввод, и 2 — на вывод (см. описание COM-porta).

    Однако (основные линии RxD, TxD) прекрасно работают даже на скорости 115200 b/s (вместо указанных 38400) — это есть очень хорощо. За это спасибо разработчику firmware.

    Кто знает более секретов об этой прошивке (или обновления), обязательно телеграфируйте…

    1. Кстати еще есть смысл посмотреть в сторону микросхемы CP2102
      По цене она почти как мега, а все выводы гарантировано работают + прошивать ничего не надо.
      Только один минус — корпус QFN. Без фена фиг запаяешь

  9. А такой вот вопрос: Нельзя ли вместо МАХ 232 впаять GD75232 (добытую из мат. платы)? Моя смотреть даташиты, и моей показалось, что можно, но сомнения не оставляют =)…

  10. можно ли через это устройство работать как мост UART-USB? Например между моей платой на ATmega8 и USB-модемом? Если это возможно, то какую скорость порта UART надо будет установить (на моей плате)?

  11. Medved! подскажи, можно ли дооборуовать эту схему так, чтобы она могла использоваться как программатор AVR-в. и что для этого необходимо?

  12. Помогите установите драйвер. Спаял по схеме, вставляю комп говорит неизвестное устройство, указываю где лежит драйвер а он его не видит. Система WinXP SP2

  13. Здравствуйте! Скажите будет ли данное уст-во работать на нестандартной для СОМ порта скорости (10400 бод)? Хочу собрать адаптер USB- to K-lain для авто диагностики, а там ЭБУ (электрон блок управления машины) работает только на такой скорости. Сможет ли драйвер, да и сам атмега подстроиться на такую скорость? Кто собрал этот преобразователь помогите пжа советом. Для FTDI и др. микросхем я читал, что нужно в драйвере переопределять скорость.

  14. Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)

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

  16. …. Для автора и тех кто будет повторять данную схему! Контроллер должен питаться от 3,3В без стабилитронов на входе! -тандарт USB. Посмотрите внимательно на схему первоисточника, там стабилизатором 3,3 служит светодиод! …Отпадёт много проблем с определением и работой устройства.

Добавить комментарий