041-UART to USB – простой преобразователь на ATtiny2313.

Автор: | 27.05.2010

ТитлЧестно признаться, поначалу я не планировал повторять на микроконтроллере ATtiny2313 схему преобразователя UART to USB из прошлого поста, так как функциональность варианта на ATmega8/48/88/168 лучше, больше возможностей, небольшой размер. Но в виду большей доступности и меньшей стоимости микроконтроллера ATtiny2313 решил, все-таки, сделать еще один преобразователь. Начав делать новый преобразователь понял, что принял правильное решение. Разводка печатной платы для СМД компонентов получилась очень удачной (самому нравиться !) – односторонняя, компактная, без перемычек. Кроме того, неожиданно, для данного преобразователя нашлось необычное применение (об этом будет отдельный пост). Как и в предыдущей схеме для преобразователя будут варианты прошивок для SPI to USB, IN-OUT то USB, а попозже, когда разберусь с более срочными проектами, будут еще варианты применений. Короче – продолжение следует …

Внимание! Появилась новая версия печатной платы преобразователя. 055-UART to USB – простой преобразователь на ATtiny2313 (Версия 2). Внесены изменения делающее преобразователь еще удобнее, прошивка и драйвер остались прежними.

Итак, для начала схема преобразователя

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

Схема взята с сайта источника (там же можно найти описание).

Поразмыслив над вариантами применения схемы, решил немного модифицировать схему (на схеме красными показаны изменения).

Схема преобразователя UART to USB на ATtiny2313 мод


Зачем мне понадобилось менять схему?
USB порт имеет выход питания 5v, в то же время уровни сигнальных линий 3.3v. При питании микроконтроллера напрямую от USB порта уровни сигнала на ножках будут 5v. Для сигнальных линий USB порта это много.
В оригинальной схеме для приведения уровней сигналов микроконтроллера к нужным 3.3v микроконтроллер запитывается через светодиод. В результате падения напряжения на светодиоде напряжение питания на микроконтроллере выходит в пределах 3-с-чем-то вольт (зависит от потребления микроконтроллера и типа светодиода). Соответственно и уровень на сигнальных линиях будет те самые 3-с-чем-то вольт.
Достоинство такого решения – простота. Недостатки – заниженное питание микроконтроллера (хотя можно опускать и до 2.8v, но с уменьшением питания возможны проблемы при такой частоте задающего генератора). Еще один недостаток несоответствие уровней преобразователя и устройства, к которому он должен будет подключаться (в большинстве случаев в устройствах питание 5v). При соединении линий с разными уровнями напряжений в них появляются уравнивающие токи. Их можно уменьшить, поставив в разрыв ограничительный резистор (схема становится более восприимчива к помехам) или собрав схемку согласования.

Я выбрал другой вариант — запитать микроконтроллер напрямую от USB порта (5v) и поставить на сигнальные линии стабилитроны. Стабилитроны уменьшают напряжение на линиях до необходимого уровня. Но нужно поставить стабилитроны немного большего напряжения (достаточно 3.6v), иначе через стабилитрон будет замыкаться на «землю» выходной сигнал USB порта.
Достоинства схемы – микроконтроллер работает от штатных 5v и при этом не требуется согласования с подключаемым устройством. Вот исходя из этих соображений я и поменял схему.

Собираем преобразователь.
Как и в предыдущем посте не плате предусмотрен стандартный разъем USB-папа. С таким разъемом не будут возникать проблемы с подключением. Можно воткнуть прямо в комп, а если нужно преобразователь приблизить к устройству – используем USB-удлинитель.
041-T2313-SMD.zip (Одна Загрузка)
Печатная плата получилась компактная, односторонняя и без перемычек. Есть, правда, одна перемычка – резистор с нулевым сопротивлением, но он нужен как защита от перегрузок порта. При возникновении короткого замыкания питающих линий USB порта резистор с нулевым сопротивлением перегорит и разомкнет цепь.

Плата преобразователя UART to USB для ATtiny2313

В печатную плату я ввел область для макетирования (правая сторона платы). В этой области можно будет собрать несложные устройства, которые смогут взаимодействовать с компьютером через USB порт. Если эта область не нужна ее можно отрезать, сделав плату еще компактней.

Плата в сборе:

Плата преобразователя UART to USB в сборе

Как видно на плате не установлены все резисторы – они не нужны для преобразователя UART – USB, но могут понадобится для других целей. Позже под конкретные цели мы их припаяем.

Разъемы я припаял угловые, чтобы меньше торчали. Сзади платка тоже выглядит довольно аккуратно.

Задняя сторона платы преобразователя UATR to USB

На плате есть разъемы для программатора. Программировать можно прямо в USB порте, но лучше запитать плату от внешнего источника.
041-T2313.zip (14812 Загрузок)

041-T2313-FuseBit.png (18722 Загрузки)
После прошивки нужно установить драйвер для виртуального COM порта. Драйвер берем здесь или с предыдущего поста (он один и тот-же), там-же описано как его установить. После установки драйвера преобразователь будет видеться компьютером как COM порт, и соответственно работать с ним будут все программы работающее с COM портом.

Для проверки работоспособности собранного устройства замыкаем вход с выходом и посылаем сообщения в COM порт с программы терминала. Отправленные сообщения должны вернуться как принятые. В предыдущем посте смотрим как это сделать.

Есть печатная плата для варианта микроконтроллера в DIP корпусе и TH-компонентами:

Плата преобразователя UART to USB для ATtiny2313 в TH

041-T2313-TH.zip (7095 Загрузок)
Собранная плата выглядит вот так:

Собранная плата

Устройство готово!

P.S. Немного тормозю с постами — отпуск.

 

(Visited 25 467 times, 1 visits today)

041-UART to USB – простой преобразователь на ATtiny2313.: 314 комментариев

  1. siema

    Можно ли данное чудо использовать для связи мобильного телефона с поддержкой usb и мк с UART?

  2. LeXSS

    @Egen_M
    Ох спасибо за идею, дружище. Преобразователь на Tiny запустился без ошибки. Позже проверю еще на Mega, отпишу.

  3. LeXSS

    @Egen_M
    У меня ни один не работает и на меге и на Тане. Подскажите как в режим отладки войти?

  4. Mihail 2

    микросхема часов стоит отдельно. связывает их только одно шина I2C

  5. Mihail 2

    Извеняюсь что пишу немного не по теме но у меня возник вот такой вопрос. собираю приемник на микросхеме RDA5807M его напряжение питания 3.3 вольта. также в фунционале имеются часы а точнее микросхема часов DS1307. как извесно напряжение питания часов 5 вольт значит на линии i2c будет 5 вольт. вот теперь сам вопрос: можно ли как то согласовать эти уровни с помощью оптопары или достаточно обычных биполярных транзисторов? а что необходимо ставить подтягивающие резисторы на шине i2c я в курсе.

  6. Egen_M

    @LeXSS
    Точно такая же ситуация. И что интересно, даже в режиме отладки Windows’a не работает, при котором цифровая подпись не проверяется. А вот программатор USBTiny собранный почти по такой же схеме, в режиме отладки, работает нормально. Наверно придется на Windows 7 возвращаться. К стати и китайский USB_to_RS232 TTL, то же перестал работать.

  7. LeXSS

    Пробовал, говорит наиболее подходящий драйвер уже установлен. Пробовал даже файлы стандартных драйверов переименовывать, потом подключать устройство- не помогает, все равно автоматом ставит стандартные драйвера. Что еще можно предпринять, посоветуйте пожалуйста.

  8. GetChiper Автор записи

    Нужно попробовать поставить другие драйвера. Хотя не уверен, что есть под десятку.

  9. LeXSS

    Что делать теперь?

  10. LeXSS

    Дернул меня шайтан согласиться на установку Win 10. Теперь устройство не работает. В диспетчере устройств пишет: «Запуск этого устройства невозможен. (Код 10)Службе или функции передан неверный параметр.»

  11. GetChiper Автор записи

    Нет такой прошивки. Или одно, или другое.

  12. mellon

    GetChiper :
    Привет!
    Не понял вопроса.

    Несовсем в ту тему я его написал, но суть как говорится не поменяется)). У вас на сайте опубликовано как из USB-UART сделать программатор USBTiny. Печатная плата предоставленная «Time191 (Владимир, г. Саратов).» позволяет использовать и вариант UART и программатор USBTiny, в свете этого вопрос, есть ли прошивка в которой можно переключать с программатора на uart например нажатием кнопки или перестановкой джампера.

  13. GetChiper Автор записи

    Если на висте работает а на восьмерке нет — это проблема в драйверах.
    Все варианты драйверов пробовали?
    Почитайте, что в оригинале пишется про драйвера http://www.recursion.jp/avrcdc/driver.html#protocol
    Прочитайте отзывы пользователей к этой статье и статье http://www.getchip.net/posts/055-uart-to-usb-prostojj-preobrazovatel-na-attiny2313-versiya-2/

  14. ma35tr0

    На Vista x32 работает, а вот на Win 8.1 не хочет 🙁
    Даже стабилитроны выпаял и оставил только светодиод — говорит, что «USB-устройство не опознано».
    GetChiper, есть какие мысли?

  15. GetChiper Автор записи

    Привет!
    Не понял вопроса.

  16. mellon

    Доброго времени суток! Вопрос по повторению программатора, есть вариант разводки платы «4 Вариант от Time191 (Владимир, г. Саратов).» На ней выведены контакты для SPI программирования и RX/TX для uart, кроме прошивки микросхемы есть варианты заставить работать USBTiny в роли программатора и uart например джампером или переключателем?

  17. Phantom

    Переходник нужен как первый элемент сети из устройств на RS485 (master, который позволит отправлять/принимать данные с ПК).
    В любом случае потребуется МК подключать к сети RS485, остается вопрос по максимальной скорости передачи.
    Можно ли добиться 1 Мбит/с на ATTYNI4313 или на ATMEGA328P?

    Есть reference guides по микросхеме-интерфейсу с примером сопряжения с МК:
    http://www.ti.com/lit/pdf/slyt484

  18. GetChiper Автор записи

    Если ставится за цель передавать данные на большие расстояния, всетаки лучше использовать специальные микросхемы преобразователей USB-RS485 — в них более качественный сигнал (фронты, периоды и др. параметры)

  19. Phantom

    Подскажите пожалуйста, можно ли использовать эту схему для сбора преобразователя USB-RS485?
    К примеру, используя дополнительный интерфейс RS-485 SN65HVD1781D?
    Какая максимально возможная скорость передачи преобразователя USB-UART? (по даташиту SN65HVD1781D может передавать до 1 Мбит/с).

  20. hackerion

    Подскажить как выставить Фьюзы в SinaProg …..если можно скрин… и как прошить, черзе выводы на плате можно?@GetChiper

  21. hackerion

    Подскажить как выставить Фьюзы в SinaProg …..если можно скрин… и как прошить, черзе выводы на плате можно?

  22. vladimir161

    Вас понял,буду мутить на FT232 !

  23. GetChiper Автор записи

    Этот преобразователь нежелательно использовать для этих целей. Будет медленно работать или не работать вообще — все таки софтовая реализация…

  24. vladimir161

    GetChiper подскажите где на мк выходы
    TxD,DTR,GND,DSR,RTS,STS ?
    Очень нужен прогер для 24Cxx от USB, выбор между преобразователем и FT232. (но FT232 дорогая)

  25. GetChiper Автор записи

    Не делал такого, не знаю.

  26. vladimir161

    Можно-ли преобразователь использовать для прошивки 24cxx и чипов от принтера,если можно то как?

  27. Max

    Собрал такой конвертер — работает стабильно. Собирал на макетке. Обязательно необходимо добавить самовостанавливающийся предохранитель в цепь питания, а то и порт можно сжечь. Также собрал на атмега8 — с прошивкой как на сайте разработчика, только цепь USB доработал так, как тут. Тоже работает. Только такую большую и дорогую микросхему для простого преобразователь использовать не стоит.

  28. ur5rnp

    собрал не запускается на хр Service Pack 3, а на Service Pack 2 пошол. стабилитроны кс133 на импорт 3v3 и все путем

  29. froloff

    В предверии пасхи произошло чудо!))))поменял мк местами(с эффектора на уарт)перепрошил их,впаял другой юсб порт,поменял кондеры на эффекторе и о чудо!!!!работает)))хотя даже не догадываюсь в чем была проблема.Не зря говорят терпение и труд все перетрут))спасибо за понимание и терпение))

  30. GetChiper Автор записи

    попробуй включить по оригинальной схеме (та что первая в статье), через светодиод — проверишь возможно действительно проблемы с уровнем на ножках порта.

  31. froloff

    а номиналы резисторов подсказать можешь так на вскидку))а стабилитроны можно взять чуть побольше стабилизации(4.7в) или на подобе,у меня подозрение что беда в них,на сигнальных линиях напряжение разное или так и должно быть??

  32. GetChiper Автор записи

    Просто соединяется проводками. Если уровни напряжения разные ( 3 и 5 вольт, например) нужно поставить балластные резисторы. На всякий случай -соединяются устройства накрест RxD—>TxD, TxD—>RxD

  33. froloff

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

  34. froloff

    еще один маленький вопрос,а не могли я чего нибудь испортить не правильным(read-read tx-tx)подключением этих линий???или это не особо критично

  35. froloff

    даже не видел этой темы)))ладно помучаю с этой прошивкой потом отпишусь

  36. froloff

    Доброго всем дня,собрал плату эфектора все работает без нареканий,но при подключении к usb to uart(по схеме TH2313-TH)ноль эмоций.При подключении юсб уарт и замыкании контактов read и txt в программе терминал все корректно отправляется и принимается,однако стоит подключить эффектор никаких откликов.Программа GCneffector видит мой уарт но эмоций ноль,плату проверил и там и там все ок,подскажите в чем тут может быть проблема!????

  37. GetChiper Автор записи

    Запросто!

  38. Ustas87

    Подскажите пожалуйста вместо резисторов на 68 Ом можно использовать 100 Ом?

  39. Robokot

    большинство программаторов через такую схему работать не станут, потому что данная прошивка выдаёт неправильные тайминги стопбита на всех частотах, ошибка линейна от частоты. преобразователь успешно проверяется замыканием rx tx, но программаторы, успешно работающие от настоящих max232 и ftdl с этой схемой не спариваются.

    плюс ко всему эта схема не имеет подписанного драйвера под вин 7, потому единственная возможность её использовать — загрузиться в f8 и выбрать драйвера без подписи. схема годна только для самоделок.

    p.s. кто усомнился в неправильности таймингов — осциллограф вам в помощь, сравните с магазинным переходником.

  40. GetChiper Автор записи

    Программаторы лучше не подключать через преобразователи (а особенно через такую реализацию. Возможно и будет работать, но медленно.

  41. dpd69

    Здраствуйте!У меня есть программаторьi которое работает с програмьi IC-Prog и PonyProg-JDM serial programmer,JDM-367.ОС у меня Windows Vista-32.Будет ли работат у меня преобразователь и если да как подключит его к конекторе DB9?

  42. GetChiper Автор записи

    mcmega :

    Подскажите, а есть тогда вариант собрать полноценный IR приёмо-передатчик на МК? Причина на странице выше описана.

    Вы-же спрашивали приемо-передатчик, а http://www.getchip.net/posts/071-preobrazovatel-ir-signalov-ot-pultov-v-uart
    — это просто приемник IR-посылок пульта

    mcmega :

    Вы наверное имели ввиду http://www.getchip.net/posts/071-preobrazovatel-ir-signalov-ot-pultov-v-uart
    А какой код надо записывать в ствтье 085-Контроллер RGB ленты на ATtiny2313, 1Байтовый?

    Для прошивки нужен двухбайтовый код.

  43. mcmega

    Подскажите, а есть тогда вариант собрать полноценный IR приёмо-передатчик на МК? Причина на странице выше описана.

  44. GetChiper Автор записи

    С пульта команды он не принимает (он их воспринимает как помехи — чем они по сути и есть для протокола передачи — и игнорирует их). Этот удлинитель общается только с себе подобными.

  45. mcmega

    Попробовал связку USB-UART + IR удлинитель. Взял пульт нажимаю на кнопки, в терминал ничего не приходит, пробовал с терминала отправлять команды, светодиод (IR диод) моргает. Почему не приходят команды в терминал?

  46. mcmega

    Кстати, момент, у меня есть программатор 910, определился как COM4. Подключаю платку, хочу установить драйвер из статьи, комп пишет, что не нашёл подходящих драйверов, пробую ставить принудительно, драйвера становятся, а устройство определяется как программатор 910 на том же COM4. И что самое интересное всё работает в терминалке. Как такое может быть?

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