Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Avr и USB
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Феникс
Здравствуйте, так как с USB дел не имел у меня вопрос.
Как соединить AVR и PC через USB. huh.gif
Допустим вставляем девайс в USB и пишем программу на VC и взаимодействуем biggrin.gif biggrin.gif

Для примера можно взять Atmega16 или atmega128. rolleyes.gif
bgc
самый быстрый способ чип от FTDI - эмулятор COM порта (поставляетс FTDI) и UART на AtMega
- если надо у меня есть готовое устойство - могу прислать схему.
Феникс
Цитата(bgc @ May 9 2007, 20:08) *
самый быстрый способ чип от FTDI - эмулятор COM порта (поставляетс FTDI) и UART на AtMega
- если надо у меня есть готовое устойство - могу прислать схему.

А как работать со стороны компьютера? И какая скорость передачи и приема данных?
DeXteR
Цитата(Феникс @ May 9 2007, 20:59) *
А как работать со стороны компьютера? И какая скорость передачи и приема данных?


Компьютер обнаруживает устройство - ком порт
Дальше работать с ним через библиотеки для ком порта
Например через МСкомм в ВижуалБейсик
Screw
Работать как с обычным COM портом. скорость - непомню, зайди на FTDI.com и посмотри
vooon
скорость почти до мегабода.
вот например: http://www.ftdichip.com/Documents/DataSheets/DS_FT232R.pdf
Laptop
Цитата(bgc @ May 9 2007, 19:08) *
самый быстрый способ чип от FTDI - эмулятор COM порта (поставляетс FTDI) и UART на AtMega
- если надо у меня есть готовое устойство - могу прислать схему.

можно еще на PL-2303X, благо на ней все кабели переходников USB-COM собраны, правда мы их закупаем в Шеньжене... стоит там в розницу $2
wodya
Для FTDI можно использовать либо драйвер, поставляемый поставщиком, который на компе организует COM порт. В этом случае есть неприятная особенность. Стоит переткнуть USB, как меняется номер COM-порта на следующий. Бывает комичная ситуация, когда на компе есть один COM порт с номер 10.

Но есть вариант написания собственного обмена (при помощи энумератора). Пример на VC++ есть на сайте.
Igor26
Цитата
Стоит переткнуть USB, как меняется номер COM-порта на следующий

А помоему это очень даже удобно. Можно подключать к одному компьютеру несколько устройств на FTDI. Я, например, подключал за один раз два преобразователя USB-RS485, JTAGICE USBшный и, собственно само отлаживаемое устройсво. Итого - четыре девайса, четыре СОМ-порта в компьютере. Естественно, все перечисленные устройства имеют в составе FT232 и/или FT245.
wodya
Конечно удобно. Но теперь предположим, что разработанное Вами устройство стоит у заказчика и по COM-порту общается с программой на компьютере. И он вынул и вставил USB кабель заново (ну там провод по другому протянул или еще что). При этом номер COM порта измениться, а, следовательно, Ваш прибор перестанет работать, т.к. программа по работе с этим прибором привязана к определенному COM-порту. Начинаются звонки в службу тех. поддержки... a14.gif
dx40
http://obdev.at/products/avrusb/index.html
Реализовать или в основном контроллере или поставить еще один (мегу8 или тиньку).
Если скорости небольшие, то рекомендую использовать hid - просто программировать и не нужны драйвера.
Kuzmi4
Моё личное мнение конечно - но по моему со старта лучше взять СP2102 или FT232 - виртуальный ком порт и никакой мороки.
Если уж так сильно захотелось именно USB то тогда стоит посмотреть в сторону атмеловских встроенных USB решений.Есчё где то было решение у атмела по моему в апноутах - софтварный юсб.

Есчё советую глянуть сюда - http://www.fischl.de/avrusbboot/
Igor26
Цитата(wodya @ May 10 2007, 15:29) *
Конечно удобно. Но теперь предположим, что разработанное Вами устройство стоит у заказчика и по COM-порту общается с программой на компьютере. И он вынул и вставил USB кабель заново (ну там провод по другому протянул или еще что). При этом номер COM порта измениться, а, следовательно, Ваш прибор перестанет работать, т.к. программа по работе с этим прибором привязана к определенному COM-порту. Начинаются звонки в службу тех. поддержки... a14.gif

Да, и с таким сталкивались. В обвязке FTDI есть микросхема EEPROM. Так вот, если в нее залить информацию об устройстве, то потом куда сие устройство не воткни (на одном компьютере естественно),то оно всегда будет привязано к одному и тому же номера порта.
Александр Куличок
Цитата
Для FTDI можно использовать либо драйвер, поставляемый поставщиком, который на компе организует COM порт. В этом случае есть неприятная особенность. Стоит переткнуть USB, как меняется номер COM-порта на следующий. Бывает комичная ситуация, когда на компе есть один COM порт с номер 10.

Было дело - номер ком-порта зависел от ЮСБ-разъема. Т.е., в 1-м разьеме он СОМ5, во втором - СОМ6. Дело решилось прошивкой в ЕЕПРОМку уникального серийного номера. Теперь даже коробочки с переходниками (их у меня 3 штуки) подписал номерами портов.

А если хватает ног - можно FT245 использовать. Разводка у обеих ИМС со стороны ЮСБ совпадает. Со стороны ПК - обращение как к СОМ-порту (только скорость обмена игнорируется), со стороны МК - 8бит + 2..4 управляющих линии/линии состтояния. Скорость обмена в режиме VCP - до 300кБайт/сек. Только для ее достижения нужно передавать данные сравнительно большими блоками (но это уже особенность USB).
Феникс
Цитата(dx40 @ May 10 2007, 16:39) *
http://obdev.at/products/avrusb/index.html
Реализовать или в основном контроллере или поставить еще один (мегу8 или тиньку).
Если скорости небольшие, то рекомендую использовать hid - просто программировать и не нужны драйвера.

Хм, я ж говорю ни разу не сталкивался с этим, можете привести полный пример реализации HID или еще какой нибудь? Желательно на русском.
С одной стороны Мк с другой прога на РС. Писать проги на С++ умею, но с юсб не встречался, как получить доступ к HID драйверу в винде, я непонимаю help.gif smile3046.gif.
misyachniy
Цитата(Феникс @ May 12 2007, 22:29) *
Хм, я ж говорю ни разу не сталкивался с этим, можете привести полный пример реализации HID или еще какой нибудь? Желательно на русском.
С одной стороны Мк с другой прога на РС. Писать проги на С++ умею, но с юсб не встречался, как получить доступ к HID драйверу в винде, я непонимаю help.gif smile3046.gif.


Зайлите на сайт FTDI там есть примеры как работать через DLL на С и Delphi.
Какая скорость обмена вам нужна?
delta1968
Зайди на сайт dasbook.ru там есть скан книги Павла Агурова Практика програмирования USB
Феникс
Цитата(delta1968 @ May 14 2007, 19:11) *
Зайди на сайт dasbook.ru там есть скан книги Павла Агурова Практика программирования USB

Спс, скачал, буду изучать.


А Скорость мне нужна максимальная из доступных. То есть для начала хватит скорости как для HID устройства 50 кб/c (щас нада хоть как то подключить МК к USB и написать порогу обмена даннными).
Ну потом посмотрим. yeah.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.