Наконец-то закончились праздники, и пришло время чего-нибудь сделать.
Начнем, пожалуй, с необходимого устройства, облегчающего жизнь рядового электронщика – устройства связи с компьютером. Это нужно для того, чтобы передать данные в компьютер (температура с датчиков, положение дверей, частота вращения двигателя, таблица значений с регистратора …) или принять данные из компьютера (таблицы значений для вычислений, настоечные данные для устройств, новая прошивка для загрузчика…). Для отладки нового устройства (посмотреть что там, в мозгах микроконтроллера, происходит) вообще незаменимая вещь.
Как Вы знаете, существует множество интерфейсов, посредством которых микроконтроллер может общаться с внешним миром. Но если речь идет о связи с компьютером – вне конкуренции интерфейс 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
040-M48-UARTtoUSB.zip (Одна Загрузка)
Вот вариант для изготовления по технологии описанной в посте №32.
040-M48-UARTtoUSB-2L.zip (7398 Загрузок)
Прошивки для различных микроконтроллеров:
040-cdcmega.zip (9293 Загрузки)
Фьюзы для ATmega8
Фьюзы для ATmega48/88/168
Фьюзы для CodeVisionAVR, PonyProg ставятся инверсно
SPI интерфейс для программатора выведен вместе со всеми интерфейсами сзади «флешки» – подключаем программатор прямо там. Штырек сброса паяем возле ножки сброса (чтоб не мешал). При программировании преобразователь нужно запитать напряжением 5v со стороны интерфейсов. Через USB нежелательно, так как напряжение питания через светодиод уменьшится. Если возникают проблемы по причине больших шумов – вешаем подтягивающий к питанию резистор на ножку сброса (5-10кОм). Наличие светодиода обязательно – он используется в качестве регулятора напряжения. Прошивка предусматривает работу управляющих линий (CTS, RTS, DTR), но для UART они не нужны и я их не выводил на разъем интерфейсов. Если они Вам нужны — просто нужно «кинуть» перемычки с ножек микроконтроллера на ножки разъема интерфейсов.
После того как устройство собрано,
необходимо установить драйвер виртуального COM порта.
040-avrcdc_inf.zip (22944 Загрузки)
В архиве есть папки для разных Win:
/raw — для (Windows 2000/XP)
/w2k — для Windows 2000 (bulk mode only)
/xpvista7 — для Windows XP/Vista/7 x32
/vista64 — для Windows Vista x64
Делается это очень просто:
1 Вставляем «флешку-преобразователь» в USB порт;
2 Получаем в трее сообщение о том, что найдено новое устройство;
3 Запустится «Мастер нового оборудования», выбираем «Установка из указанного места», жмем «Далее»;
4 Выбираем «Включить следующее место для поиска» и в окошке указываем нужный путь к драйверу;
5 Жмем «Далее», драйвер установится, жмем «Готово»
Теперь в «Свойствах» «моего компьютера» в закладке «Оборудование» нажимаем кнопку «Диспетчер устройств». В окошке диспетчера устройств в разделе «Порты (COM и LPT)» увидим новое устройство — «Virtual Communications Port (COM5)».
Для каждого USB порта будет назначен свой виртуальный COM порт (COM5, COM6, COM7 и т.д.).
Готово! Теперь можно пользоваться преобразователем.
Проверим работоспособность преобразователя, для этого нужно закоротить вход с выходом (RxD, TxD) и посылать с компьютера сообщения по виртуальному порту. Посланные сообщения должны возвращаться как принятые.
На нужные штырьки цепляем «джампер»-перемычку. Запускаем программу для работы с COM портом. Можно использовать стандартный виндовский гипертерминал, но мне больше нравиться другая программка — маленькая, портативная и функциональная.
Terminal.zip (20404 Загрузки)
Запускаем программу, устанавливаем нужный порт (смотрим номер порта в диспетчере устройств), скорость и другие параметры оставляем как есть, нажимаем «Connect», в окошке возле кнопки «->Send», пишем сообщение, нажимаем «->Send» и сморим результат. Нижнее окно — отправленное сообщение, большое окно — принятое сообщения. Если все работает — сообщения будут одинаковыми.
Данная «флешка — преобразователь интерфейсов» позже превратится в I2C toUSB, SPI to USB, SPI to UART и т.д. необходимо лишь перепрошивать ее необходимой прошивкой. (Что-то я у себя начинаю замечать тягу к универсализации :)).
P.S. Сайт-источник рекомендует для согласования уровней напряжения преобразователя(3.3v) и устройства(5v) соединять их через схему согласования. Но я думаю резисторов в пределах полукилоома в линиях RxD, TxD должно хватить для согласования — нужно попробовать.
P.P.S. Это первая практическая схема в блоге – дальше их будет больше, так как с основами мы, вроде-бы, разобрались (еще остались кой-какие вопросы – потихоньку буду писать).
Вот собрал преобразователь USB-UART на Atmega88
https://rutube.ru/video/91a5bf2a8b0309b1ffc1c9c1d1912767/
Фьюзы прописывал через PonyProg2000 как на видео.
С Windows 10 все сложно. Это устройство и драйвера к нему создавались когда 10 еще не было.
Может и не заработать…
А на Windows 10 x64/x32 какие драйвера надо ?
А какие фьюзы и код надо под ATMEGA8A-16PU,ATMEGA8A-PU (DIP), ATTiny2313A-PU (20PU)
Есть ли версия под скорость от 50 бод до 115200 бод с поддержкой CTS,RTS,DTR,DSR, RI ?
И все-таки на PIC18F2550 с USB работать безопаснее (про 3,3В, стабилитроны и репзисторыи стандартность выхода PIC18F2550, правда , иногда некоторыми программаторами не с первого раза флэшится при неоптимальном напряжении программирования , да и дорогой ).
Это не беда устройства — это беда программной реализации как таковой. При большой частоте — трудней реализовать точные тайминги программно.
Да, аппаратное решение предпочтительней. Но хотелось узнать это только у меня так тормозит, или это беда устройства в целом?
Привет!
Сложно сказать что там как работает на программном уровне… где-то неправильные тайминги или еще чего.
Всетаки аппаратные решения предпочтительней там где нужна скорость или надежность.
День, добрый. Понимаю, что ворошу тему столетней давности. Но устройство собрано и в принципе работает. Но, как говорится, есть один нюанс. Работает для прошивки другого устройства просто как COM адаптер. Для согласования уровней прикрутил к нему ILX232. Но работает раз в 8 медленнее такого же переходника на аппаратной платформе. Можно как-то его ускорить? Сразу скажу, что дело не в настройках скорости порта, там все исследовано.
С фьюзами по началу всегда возникают непонятности.
Поэтому с ними желательно разобраться основательно еще до программирования МК http://www.getchip.net/posts/068-kak-pravilno-proshit-avr-fyuzy-fuse-bit/
Здравствуйте GetChiper.
Собрался изготовить сей преобразователь.
Для начала поискал инфу о фьюз-битах (для mega48),
а то вдруг сделаю неверный шаг и МК потеряю…
Вот что накопал: Fuse bits
ext H — L
ATtiny2313 FF CD-FF
ATtiny45/85 FF CE-F1
ATtiny45/85(Xtal) FF 6E-FF / FF 6E-F1 (PLL)
ATmega8 8F-FF
ATmega48/88/168 FF CE-FF (!!!)
SPIEN=0, WDTON=0, CKOPT(mega8)=0,
Crystal: Ex.8MHz/PLL(45,461), BOD: 1.8-2.7V
Но согласно картинке из статьи и Вашему ответу, у ATmega48/88/168,
должны быть установлены:
«Вот фьюз байты:
Low F6
High CE
Ext F9»
Есть так же и обновление ПО от 2011 года: http://www.recursion.jp/prose/avrcdc/download.html
Информация о Ф.битах находится в тескте Readme. Вопрос: какие правильные Ф.Б.?
Спасибо.
здравствуйте
я прошлый раз легко поставил драивер на виндоус xp, но сейчас на виндоус 7 возникла проблема.
все установилась вроде нормально и в диспетчере устройств появился виртуальный порт но с желтым восклицательным знаком и потр не работает.
что делать?
В Windows10x64->Диспетчер устройств.
1. Устанавливаем курсор на неустановленный драйвер.
2. Наверху — Действие -> Установить старое устройство->Установка оборудования, выбранного в ручную->
Далее->Далее->Установить с диска и выбираем inf файл.
Подтвердите, что в CodeVisionAVR fuse нужно выставлять галочки только SPIEN, CKOPT и WDTON. Выставил такие для Atmega8 и МК не отвечает по ISP.
http://radikal.ru][img]http://s012.radikal.ru/i320/1709/d6/f3e96e2a3d12.png%5B/img%5D
здравствуйте дорогой GetChiper,
по вашему совету пробовал 2 атмега 8, но результатов не было.
взял четвертый и чудо … все заработала.
не знаю в чем дело, но вы оказались правы.
одна из микроконтроллеров заработала.
«‘забраковаееые»,- xотя здесь не работали, но в других приложениях вели себя нормально.
в общем все нормально .большое спасибо за помощь.
Нужно убедится что порта МК все целы. Может попробовать взять новый МК?
здравствуйте,
не знаю что делать.
преобразователь работал исправно на XP, но вот пару раз вырубили напряжение 220в и с тех пор ни один усб порт его не обнаруживает.
перепрограммировал атмегу 8 несколько раз,
установил указанные фузы, но толку нет.
на другом компьютере тоже самое.
не могу справится.
помогите пожалуйсто.
укажите предпологаемую причину.
Собирал пару раз этот переходник на mega8, работал с ним под winXP и win7. Перешёл на win10 и не получается теперь запустить конвертер. Система устанавливает для него свои какие-то драйвера, определяет как com порт, присваивает номер, но «Запуск этого устройства невозможен. Код 10».
Поинтересуюсь, получилось ли у кого-нибудь запустить этот конвертер под win10? хоть и не надеюсь на положительный ответ.
Я бы не заморачивался, но на этом переходнике у меня собран отладчик для avrstudio4, не особо хочется переделывать/перепаивать. на другой конвертер.
Подскажите, если у кого работает на win10.
Если требуется много UART, то можно не городить USB-хаб и множество переходников, а воспользоваться готовым решением: переходник USB на 16 UART. 😉
Наверное придется отключать цифровую подпись драйвера
http://www.recursion.jp/prose/avrcdc/driver.html#windows
здравствуйте,
да, прекрасное устройство ,но проблема стала установка драйвера .
у меня видоус 7 с 64 битным режимом.
будет ли это помеха при установке драйвера?
заранее благодарен
Светодиодом понижается напряжение питания. Соответственно, понижаются и логические уровни на линиях данных идущих к USB, что приводит их к требуемых для USB 3.3в. На светодиодах другого цвета другое падение напряжение.
Собрал схему без красного светодиода на atmega8-16PU. В документации на этот контроллер Power Supply 4.5 — 5.5V. Контроллер запитал напрямую с USB (5V). В такой схеме не получилось установить драйвер на Windows 7 x32. Устройство определяется как Unknown Device . Как только добавляю красный светодиод, контроллер питается 3.3V, и все сразу работает! Но осталось несколько вопросов: Удивительно, почему этот контроллер вообще работает при питании такого низкого напряжения?
Почему устройство не определяется при питании от 5V, может быть дело в кварцевом резонаторе? Почему светодиод и даже его цвет (пробовал с зеленым — работает, с оранжевым — нет) так влияет на работу устройства?
Частично здесь http://www.recursion.jp/prose/avrcdc/index.html
А вообще, просто нужно заняться этим вопросом, да все как-то не складывается…
Цитата из статьи «Данная «флешка — преобразователь интерфейсов» позже превратится в I2C toUSB, SPI to USB, SPI to UART и т.д. необходимо лишь перепрошивать ее необходимой прошивкой. (Что-то я у себя начинаю замечать тягу к универсализации :)).»
Где найти эти прошивки ? . Спасибо
Можна ли таким преобразователем шить Esp8266 c DTR(ресет), а то напряжно каждый раз дергать перемычку. Есть у кого опыт?
Ну тогда, вот есть решения http://www.recursion.jp/prose/avrcdc/cdc-232.html#schematic
Купить всегда проще, хотел на Atmege 8 попробовать.
Для прошивки лучше купить готовый преобразователь — меньше проблем будет.
Подскажите, а как реализовать USB — RS232 COM. Нужен полноценный RS232 для прошивки ресивера.
Хорошо, толково выложено,перечичитаю все.Молодцы
подскажите, кто знает, это устройство будет работать в режиме 9600n2 или оно только для 9600n1 заточено?
Добрый день.Ответственно заявляю что линия RTS не работает не на преобразователе собранном на мега8 ни на тини2313 (есть и такой, находится на японском сайте первоисточника, но не на главной странице, а в архиве) Я не понимаю почему об этом никто не написал!!! На выходе RTS держится высокий уровень и всё.В то время как DTR замечательно отзывается на команды с терминала. Проверить можно светодиодом без осцилографа. Причём ситуация повторяется и на разных кварцах и на разных прошивках и на разных контроллерах. Ребята, может у кого то заработал RTS ?
Восстановил.
Собирал это устройство, чтобы подключиться к Attiny2313. Но устройстэто не заработало 🙁 Прошил прошивку, потом выставил фюзы WDTON и CKOPT (SPIEN итак стоит) в PonyProg, микро потерялась понипрогом (что понятно), но не заработало само отдельно с кварцевым резонатором 12МГц 🙁 Теперь и вернуть в программируемое состояние не могу, ни с 12МГц, ни с 25МГц (пока только эти два из выше 10МГц есть). На какую частоту расчитаны фюзы? Atmega8-16PU.
С этим устройством только так, но вообще можно и другими способами.
Автор этого устройства разработал еще два устройства одно работает с SPI, а второе вообще гибко конфигурируемые порта ввода-вывода http://www.recursion.jp/avrcdc/
На своей вин7х64 включил тестовый режим и поставил драйвера с папочки рав. До этих действий вид/пид тоже были по нулям.
А можно как-то отправить свои данные изнутри мк в компьютер? Т.е. не через рх/тх.
Но в начале перед установкой драйвера, устройство должно же как то себя определять, например оно появилось бы в разделе «Другие устройства», да и VID/PID не равнялись бы нулю. И не думаю, что на плате есть обрыв, т.к. разъемы USB даже располагал рядом в пяти сантиметрах друг от друга. и разъёмы Usb рабочие. Как на семёрке оно определяется?
работает если отключить проверку цифровой подписи при установке драйвера
Да, с 64-битной версией всегда с дровами не было просто. Почитайте отзывы, по моему уже обсуждалось такое.
на ХР сразу определяет, что найдено новое устройство USB-232, в диспетчере устройств его можно увидеть, и прекрасно устанавливается драйвер, а на Windows 7 x64 определяется как Unknown Device, т.к., что самое интересное, VIP/PID по нулям.
Ну какбы драйвер для 7 есть, что подразумевает работу 🙂
http://www.recursion.jp/avrcdc/driver.html#windows
А что это чудо-устройство не работает на Windows 7?
По поводу Pickit2 ничего не посоветую — никогда не делал.
P.S.чипы не от ноутбука а от катриджей принтера,и память TV.
GetChipeспасибо за ответы!!! Подскажите может вместо преобразователя сделать «студентский вариант Pickit2 «и использовать его для прошивки 24Cxx и чипов от принтера через USB?
Просто надо прошивать чипы от ноутбука,вот и искал варианты.
Всетаки лучше использовать FT232. Программная реализация может нестабильно работать, там где нужны точные по времени манипуляции линиями порта.
Atmega48PА — более экономичный и работает при более низком напряжении, а в остальном один в один.
GetChiper подскажите разницу Atmega48 и Atmega48PA-PU ? Заранее спасибо!!!
GetChiper я уже задавал вопрос , можно-ли преобразователь на ATtiny2313 использовать для прошивки 24cxx и чипов от принтера,если можно то как?Собирался делать на FT232,но её у нас не-так просто достать.Подскажите можно-ли соеденить преобразователь на Atmega8 и MAX232 для получения COM порта?Скорость прошивки не важна,главное чтобы от USB.
Собрал я значит это чудоустройство, правда схему брал немного не с этого сайта
кому надо пишите ссылку дам
что могу сказать
весь день возился программировал микроконтролер (не на этом устройстве)
суть — через это устройство связь с микроконтролером
на пк обычный терминал,
код писал в кодевизаре
работало работало
а потом стало сыпать мусор на пк
ничего не понимаю, может кто подскажет чего ?
при этом принимает код с пк правильно и обрабатывает тоже, а на пк сперва все ок пол дня отправляло а теперь глюкает
можно, но с другой прошивкой http://www.getchip.net/posts/056-usb-programmator-legko-usbtiny/
@xorkrus
CDC-232 — это и есть UART. из какой программы слать? МК? РС?