055-UART to USB – простой преобразователь на ATtiny2313 (Версия 2).

Автор: | 01.10.2010

ТитлКак я уже писал раньше, спалил я дорожку питания на плате преобразователя UART-USB (на ATtiny2313) и, так как все равно решил травить новую, было принято решение внести изменения в разводку платы.

Что нового в измененной разводке?
1 Появился светодиод, светящийся при подключении к USB. Отсутствие какой либо индикации подключения очень напрягало.
2 Появилась возможность подтянуть ножку сброса к плюсу питания. Конечно, сброс можно подтянуть и внутренним резистором, но для очень «шумных» условий, я думаю, будет не лишним подтянуть внешним резистором (5-10 кОм).
3 Сделав плату немного шире, добавил к выходному разъему «землю» и плюс 5 вольт от USB. Если внешнее устройство необходимо будет запитать от USB, будет удобно это делать с одного разъема.
4 Ножки 11, 12, 13 выведены на отдельные площадки. Это сделано для того, чтобы плату можно было использовать как универсальную для различных устройств с использованием USB (термометры, даталогеры, устройства управления, сигнализации и т.д.).

Все остальное (прошивка, фьюзы, драйвер) осталось прежними.

Думаю не лишним будет еще раз описать процедуру установки драйвера и работу с преобразователем.

Этот преобразователь взят с сайта  www.recursion.jp/avrcdc/ .  Я немного модифицировал оригинальную схему, добавил стабилитроны в линии USB, что улучшило совместимость с подключаемыми схемами. На схеме красным показаны изменения.

Модифицированная схема преобразователя

1 Печатная плата односторонняя. Перемычка всего одна — для подтяжки ножки сброса — можно не ставить. Предусмотрены дополнительные площадки для того, чтобы перемычками можно было изменять схему под другие устройства с USB.

055-T2313-SMD-2 v2.0 - Рисунок печатной платы UART-USB на ATtiny2313

Готовая плата имеет вот такой вид:

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

Обратная сторона платы

2 Далее нужно прошить микроконтроллер. Программатор подключается прямо на разъем.  Штырек сброса Рядом с UART разъмом. При программировании преобразователь нужно запитать напряжением 5v от внешнего источника. Через USB нежелательно.

041-T2313.hex v1.0 - Прошивка преобразователя UART to USB для ATtiny2313
041-T2313-FuseBit - Фьюзы для микроконтроллера ATtiny2313 (преобразователь UART to USB)

 

3 После того как устройство собрано и прошито необходимо установить драйвер виртуального COM порта.
Качаем архив и выбираем нужный драйвер
040-avrcdc_inf.zip v1.0 - Драйвер «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 (так же работает и на Win7 x64)

Установить драйвер очень просто:

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

 

Найдено новое устройство
3.2 Получаем в трее сообщение о том, что найдено новое устройство «USB-232»;

 

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

 

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

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

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

 

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

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

Коротим выход со входом

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

Terminal v1.0 - Программа для работы с COM портом

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

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

Преобразователь работает. Теперь можно подключить любое устройство с UART выходом к компьютеру через USB порт.  Очень удобно!

 

Файлы к статье:
055-T2313-SMD-2 v2.0 - Рисунок печатной платы UART-USB на ATtiny2313
041-T2313.hex v1.0 - Прошивка преобразователя UART to USB для ATtiny2313
041-T2313-FuseBit - Фьюзы для микроконтроллера ATtiny2313 (преобразователь UART to USB)
040-avrcdc_inf.zip v1.0 - Драйвер «Virtual Communications Port» для Win
Terminal v1.0 - Программа для работы с COM портом

Смотрим также:
041-UART to USB – простой преобразователь на ATtiny2313. — первая версия (есть TH вариант платы).
040-UART(RS-232) to USB-простой преобразователь. — расширенная версия преобразователя на ATmega8/48/88/168

(Visited 9 546 times, 1 visits today)

055-UART to USB – простой преобразователь на ATtiny2313 (Версия 2).: 270 комментариев

  1. aleksey

    А нет ли исходного кода прошивки с комментариями? Хочется понять, как оно работает

  2. AV783166

    При установке драйвера винда умирает с синим экраном и сама уходит в перезагрузку. USB — исправен. На другом компе все работает нормально. Заметил: на другом компе (на котором все работает) при установке драйвера указываю папку \raw и установка проходит. На моем компе не находит файл lowcdc.sys и спрашивает где его взять. Указываю папку \xpvista7. Получаю синий экран… Установлена Windows XP prof SP2. В чем проблема?

  3. AV783166

    Опробовал на ноутбуке. Установить не удалось. Выдает сообщение — неопаознанное устройство, т.е. «USB-232» и «Virtual Communications Port» — не пишет, окно установки драйвера не предлагает. На ноуте Windows XP home SP2

  4. AV783166

    Без проблем, как по написанному выше встало только на WIndows XP home SP3

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

    AV783166 :

    При установке драйвера винда умирает с синим экраном и сама уходит в перезагрузку. USB – исправен. На другом компе все работает нормально. Заметил: на другом компе (на котором все работает) при установке драйвера указываю папку \raw и установка проходит. На моем компе не находит файл lowcdc.sys и спрашивает где его взять. Указываю папку \xpvista7. Получаю синий экран… Установлена Windows XP prof SP2. В чем проблема?

    Попробуйте из папок /raw /w2k /xpvista7 установить различные драйвера вручную (кликаем правой клавишей мыши на .inf-файле и выбираем «установить»). Пробовал на XP SP2 — работало.

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

    aleksey :

    А нет ли исходного кода прошивки с комментариями? Хочется понять, как оно работает

    Аналогично есть желание разобраться как оно работает. Вскользь проглядел — понял, что нужно будет серьезно посидеть над этим. Отложил на позже. Сделай завтра, то, что можно сделать сегодня 🙂

  7. AV783166

    Как узнать что кварц работает, т.е. есть такт?

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

    Можно посмотреть осциллографом, но скорей всего он «посадит» сигнал кварца.
    Как альтернативный вариант можно применить такой способ:
    — снять галочку (задействовать функцию) CKOUT тем самым разрешив микроконтроллеру «выводить» меандр задающего генератора на ножку 6 (естественно, с этой ножки нужно отключить всю обвязку)
    — запитать микроконтроллер и измерить напряжение на ножке 6. Так как там должен присутствовать меандр, то действующее напряжение будет равно половине напряжения питания (можно подключить светодиод через килоомный резистор и он должен светится в половину яркости).

  9. AV783166

    Евгений, а как с вами можно связаться вне блога. Мой майл nn452273@mail.ru ?

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

    в закладке ‘о проекте’ есть мыло — можно писать туда

  11. JaroslavB

    А зачем ты сделал запас на плате справа? (я имею ввиду квадратики 6х11)

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

    На будущее, вдруг захочется чего-то добавить/припаять. А вообще, можно и отрезать.

  13. JaroslavB

    Я переделал немного плату. У меня просто есть 2313 поверхностного монтажа. а остальные детали все выводные. Кому надо пишите. скину)

  14. JaroslavB

    И такой вопрос, а зачем ты сделал лишнии отверстия возле SMD компонентов?) Для универсальности?

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

    Отверстия возле SMD компонентов действительно для универсальности. Подобное включение тини к USB порту довольно часто используется. Поэтому на данной плате можно будет реализовать много разных устройств. Программатор,например, USBTiny уже на этой плате сделали
    http://www.getchip.net/posts/056-usb-programmator-legko-usbtiny/

  16. JaroslavB

    А можно собрать преобразователь — программатор на MAX232?

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

    Конечно можно! Есть и программаторы и преобразователи (чем он, собственно, и есть) на MAX232. Но для этого понадобится COM-порт.

  18. taimag

    Скажи, вот в таком виде как сейчас, это только для считывания, или можно использовать этот преобразователь как UART программатор? На подобие Jtag Ice?

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

    Вот Вам USB программатор USBTiny на этой-же плате.
    http://www.getchip.net/posts/056-usb-programmator-legko-usbtiny/
    конечно же нужно прошить новую прошивку для этого.

    Jtag Ice довольно сложное устройство — ATtiny2313 для этих целей явно не достаточно.

  20. Konstantos

    Повторил схему на МК Attiny2313A чутка помучался с запуском устройства ибо перепутал D+ и D- USB кабеля в итоге винда наконец увидела долгожданный Virtual Communication Port но упомянутая в статье программа Terminal v1.0 не получает ответов при посылке сообщения (у меня Windows XP SP3) правда она и с СОМ портами платы с ошибками общается.
    Вопрос — можно ли использовать данный преобразователь для подключения COMских устройств (старых модемов например)? и что для этого нужно?
    пробовал поставить MX232CPE но эффекта нет — не видит винда ничего на виртуальном COM порте 🙁

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

    Терминал видит новый порт после подключения преобразователя (после нажатия «ReScan»)?
    Соединяется нормально? («Conect»)?
    На преобразователе замыкал TxD и RxD?

    Если для СОМ устройства будет достаточно двух сигналов TxD и RxD, то думаю будет работать. Но, насколько я знаю, там нужно больше сигналов. Может этот преобразователь поможет http://www.getchip.net/posts/040-uartrs-232-to-usb-prostojj-preobrazovatel/

  22. Konstantos

    @GetChiper
    терминал порт видит
    соединяется нормально
    нет 🙁 — мой косяк, не внимательно читал статью, замкнул TxD и RxD всё заработало

    Да, для COM устройства которое хочется подключать через USB двух сигналов TxD и RxD достаточно — я пробую подключать фискальный регистратор — у него упрощённая схема COM кабеля. у UART на выходе + у COM порта -, соответственно нужен преобразователь уровней, max232 почему-то не помогла, попробую собрать преобразователь на транзисторах описанный в конце статьи http://www.recursion.jp/avrcdc/cdc-232.html, если не получится попробую МК заменить на Атмегу8 может поможет

  23. Zver666

    Доброго времени сутук.
    Помогите доработь данный вариант преобразователя, для лаб.работ нужны сигналы TxD, RxD, DTR а также GND и +5V просто времени мало (до вторника, вечером соберу и в среду буду запускать). Это вариант хотел использовать для поста 062 поэтому все уже купил и хотел уже травить плату. Но тут работа, практика, студенты 🙁

  24. Demckiy

    А почему на схеме нет конденсатора С105L ???

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

    Схема оригинальная, с сайта источника. Конденсатор — это отсебятина. Его можно ставить, а можно и нет. Зависит от нагрузки на линиях UART. Но лучше поставить.

  26. Demckiy

    Спасибо. а на сколько фарат и сколько вольт??

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

    Подойдет любой напряжением выше 5В и емкостью 1-100 мкФ (больше ставить не стоит).

  28. Demckiy

    PonyProg2000 нету SPIEN, а есть SPMEN. Подскажите как быть??

  29. Demckiy

    Все спасибо разобрался …

  30. don

    Мертво, все проверил, перепрошил два раза, кварц запускается (смотрел на осцилографе с включенным фузом CKOUT…
    Пробовал убирать стабилитроны, менять номиналы на входах… Комп вообще не видит устройства USB… местами D+ b D- менял…
    В чем засада? Кварц с обвесом взял с телефонного шнурка с убитым каналом TRx

  31. don

    На виходах Тиньки напряжение 4,98, на USB 5,02 🙁

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

    На других компах такая-же история?

  33. don

    Дома сейчас один комп, ноут сегодня отдал. Стоит ХР3 с последними обновлениями на октябрь 2010, видит все, правда один шнур китайский превращает её в синий экран, на работе — без вопросов, но с СОМ китайский шнур не конектился 🙂 Так что на Винду не грешу…

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

    Не в винде дело, бывают USB порта которые не видят устройство. Проверь.
    Странно, там неработать нечему. Еще проверь:
    — микроконтроллер рабочий? (сгоревших портов нет?)
    — разводка платы на предмет обрывов, закороток, непропаев
    — правильность установки фьюзов (как-то долго бился с запуском, оказалось не включен WDTON)
    — кварц реально на 12МГц работает?

  35. don

    Включил фуз чекаут — кварц шпандорит, как негр, 3 периода на 0,2 микросекунды, но осцилограф не лучший для таких измерений С1-49 http://www.rlocman.ru/op/tovar.html?di=49948&/1-49
    По паспорту до 5 Мгц 🙂 Но если кварц с обвесом работает с рабочего шнура (опознавался и на прием работал только в путь), то частота явно нужная.
    Разводка — макетка, лишние ноги на панели (Дип тинька) не паял, чтобы не смущали. Опять искать, коротких между ногами нет, обрывов тоже…Загадка.

  36. don

    Все, вопрос снят 🙂 Резистор R1 надо подключить к положительной шине, зачем там штырек (три, с тинькой ясно, а вот про смещение на шину D+ пришлось догадываться) и на что он должен садиться — не объяснено в статье, советую дополнить, а то время в никуда убил, хотя это заставило исходники дополнительно поковырять, что тоже опыт 🙂
    Но за статью — спасибо, всё заработало, Терминал подтверждает.

  37. boba.s

    на ХР работает.подключил к ноуту на семерке требует цифровую подпись драйвера устанавливаться не хочет что делать то? кто проблему такую решал?

  38. v1rus1989

    @aleksey
    а я вот чтото в упор не вижу =(
    а очень, очень надо было бы посмотреть на исходники..
    ткните носом плз!

  39. v1rus1989

    [quote]
    А нет ли исходного кода прошивки с комментариями? Хочется понять, как оно работает

    А, всё, нашёл

    [/quote]

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

    boba.s :

    на ХР работает.подключил к ноуту на семерке требует цифровую подпись драйвера устанавливаться не хочет что делать то? кто проблему такую решал?

    При выдаче сообщения об отсутствии цифровой подписи есть варианты «отменить» и «все равно продолжить» (или что-то наподобие). Устанавливай без цифровой подписи.

  41. phantom lord

    Доброй ночи! А исходник прошивки можно глянуть где-нибудь? Пользоваться готовыми устройствами это конечно хорошо, но хочется понять, как оно внутри работает.

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

    Это не мое устройство, я всего лишь сделал печатку так как удобно мне. Исходник находится на http://www.recursion.jp/avrcdc/ — родном сайте проекта.

  43. geovas

    Здравствуйте GetChiper! Наверное уже вас порядком достал, но есть еще вопрос 🙂 Имеется и меня такая проблема: передаю данные с контроллера на ноут по средствам UART, на скорости 115200 бод, пользуюсь terminal v1.9b. Передаю пакетами по 5 байт, когда обрабатываю данные — с ужасом понимаю, что многие пакеты — либо не полные, либо проигнорированы (причем не отдельные пакеты, а десятки пакетов!) Передача пакетов происходит в обработчике прерываний, по этому наложения пакетов — исключены. Аппаратная часть скорее всего не виновата. пробовал самые разные алгоритмические подходы и аппаратные средства (и ваш прибор и FT232RL). Грешу на терминал! У вас никогда не было подобных проблем? может есть еще какой хороший терминал, который спокойно справиться с высоким баудрейтом? контроллер — мега8535.

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

    Я бы больше грешил на линию связи. Может она длинная и помехи наводятся?
    Попробуйте гипертерминал виндовский, может он лучше сработает?
    А на другом компе та-же проблема?

    А микроконтроллер, случаем, не от внутреннего генератора работает? Если так, то проблема может быть в этом.

  45. geovas

    1. Терминал винды изменяет вид (реально изменяет!) и зависает
    2. Линия связи и правда длинная — 2м, но это USB, а не голый UART
    3. Кварц 11.0592Мгц (я считаю, самое тру)

    На другом компе не пробовал. По данным с UART должен рисоваться синус — а рисуются разношерстные куски этого синуса (и то после практически ручной коррекции этих данных). Правда есть и хорошие куски периодов по 5 🙂 Но мне для корреляционного анализа — нужны хотя бы 10тысяч таких периодов…

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

    11.0592Мгц это не самое тру — ставь 12 МГц вот тогда будет тру!

  47. geovas

    Проблема решена! Сегодня взял програмку putty взамен terminal 1.9b и все пошло, как по маслу (ну нарекания по прибору в целом — имеются, но не по UART). Что касается кварца, 11.0592 — выбиралось так, чтобы частота была ровно 115200 бод, на 12МГц, такого добиться не удастся.

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

    Рад, что все получилось. Буду иметь ввиду про putty — вдруг возникнут аналогичные проблемы.

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