Страница 1 из 2
v-usb
Добавлено: Вт окт 16, 2012 13:02:49
Steve_g
Здравствуйте! Только что зарегился на сайте, так что всем привет))
Что я имею - программа на C, которая работает с COM-портом...используются прерывания и все прочее - для микроконтроллера Atmega8A. Билдим проект -получаем hex файл - прошиваем им МК и все, шлем команды в порт - получаем ответы!
Но мне нужен COM-порт для других вещей, соответственно я натолкнулся на библиотеку v-usb..и я запутался - мне как и в каком порядке надо делать? скачал пакет v-usb, отредактировал usbconfig.h, поменял в программе все операции по заданию таймера для счетчиков с учетом того, что юзалась тактовая частота 4MHz, а библиотека требует минимум 12..это я сделал...механик припаял к D+ и D- пины INT0-прерывания и еще 1 пин того же порта...питалово берем свое(не от USB)
При работе с COM-портом мы припаяли выходы RXD и TXD к ножкам COM-порта и так через USART обменивались данными с МК! Что изменится в программе по сравнению с текущим состоянием? Нужно ли писать прогу на компе независимо от прошивки? Ось - Linux!
Или лучше использовать переходник COM-USB(эмуляция COM-порта)? (хотелось бы конечно реализовать программно)
Re: v-usb
Добавлено: Вт окт 16, 2012 15:47:23
Satyr
Steve_g писал(а):
Но мне нужен COM-порт для других вещей, соответственно я натолкнулся на библиотеку v-usb..и я запутался - мне как и в каком порядке надо делать?
Начать с того, что забыть это костыльно ископаемое, слить LUFA и купить копеечные контроллеры с USB контроллером.
Ну, это если упереться в AVR и не смотреть на другое...
Re: v-usb
Добавлено: Вт окт 16, 2012 15:48:45
Satyr
Steve_g писал(а):
Или лучше использовать переходник COM-USB(эмуляция COM-порта)? (хотелось бы конечно реализовать программно)
Купить AT90USBxxx или ATMEGAxxUx и использовать аппаратный USB rjynhjkkth
Re: v-usb
Добавлено: Вт окт 16, 2012 16:06:19
Steve_g
у нас очень большой проект, в котором все порты используются почти что) в частности com будет юзаться gpsd демоном. соотв мне надо бы скинуть запросы к Com-порту, принимаемые в USART МК на какой то другой порт..предлагается usb..
Поток приборов большой - камней Atmega8A закуплено много..
есть 2 вариант имхо -
1) переделывать прошивку под работу с v-usb - ТУТ вообще ничего для меня понятного нет...заблудился в дебрях материалов под Винду
2) работа для механика - сделать переходник USB-COM - так, что все на программном уровне останется прежним, просто я данные буду посылать на эмулированный порт, скажем COM1...
Хотелось бы самому конечно сделать по 1)..но если это геморно и нерентабельно - то 2)
вот потому и прошу посоветовать какой выбор сделать - если 2 - то все ли правильно я предполагаю?
если 1 - то дайте плиз ссылки на материал, который четко даст понять как и что делать так, чтобы все это работало под Linux-ом
Заранее благодарю откликнувшихся добрых людей!
Re: v-usb
Добавлено: Вт окт 16, 2012 16:42:15
Satyr
Steve_g писал(а):
Поток приборов большой - камней Atmega8A закуплено много..
Если продукт массовый, а не две игрушки на коленке - то про VUSB сразу же забыть, пока глупостей не наделали.
Берите ATmega8U2 с аппаратным контроллером.
Дешевле атмеги8а на помойку выкинуть, чем потом разгребать глюки с несовместимостью УСБ.
Re: v-usb
Добавлено: Вт окт 16, 2012 17:52:38
Steve_g
спасибо большое!! камень тоже будет прошиваться программой нашей? прошивка камня будет такая же, как и на Atmega8, единственное - данные будет брать не из USART а из какого то другого буфера? ( видимо курить документацию надо)...
видимо, это действительно самый адекватный вариант ибо vusb мне весь мозг вынес(
Re: v-usb
Добавлено: Вт окт 16, 2012 18:10:22
Satyr
vusb - наколенная поделка далекая от стандарта. имела смысл в далекие времена, когда МК с усб были дефицит и дорого.
Но это время прошло
Re: v-usb
Добавлено: Ср окт 17, 2012 15:05:14
Alexeyslav
И еще как удалось переделать VUSB под 4Мгц, тогда как 12Мгц для общения по USB-шине в её версии 1.0 едва хватает? При том что VUSB это жуткий костыль, с которым у остальных задач кроме обеспечения протокола USB должен быть наименьший приоритет, ибо чревато всевозможными спецэффектами.
Лучше уж организовывать программный UART(если все доступные уже заняты) и работать через USB-UART преобразователь вроде PL2303 или еще шикарней FT232(но цена в 2 раза однако!).
Re: v-usb
Добавлено: Ср окт 17, 2012 15:24:45
Steve_g
Скачал документацию по камню - увидел, что там нет встроенного модуля АЦП..Не подскажете камень с контроллером USB и модулем АЦП!
Re: v-usb
Добавлено: Ср окт 17, 2012 15:27:22
Steve_g
работали через COM-порт когда - использовали внутреннюю тактовую частоту 4МГЦ. Под v-usb то 12 конечно же!!
Цена - критичный аспект, ибо поток большой! соответственно пока что попробуем аналог Atmega8U2 но только с АЦП..еще раз прошу совета по камню с АЦП
Re: v-usb
Добавлено: Ср окт 17, 2012 15:29:11
Satyr
Alexeyslav писал(а):
Лучше уж организовывать программный UART(если все доступные уже заняты) и работать через USB-UART преобразователь вроде PL2303 или еще шикарней FT232(но цена в 2 раза однако!).
Тогда уж СP2102 - он в 2 раза дешевле PL2303
Вот только нафига ?
atmega8 + любой внешний чип полюбому дороже, более громоздко и ограниченнее, чем тот же авр с аппаратынм УСБ
Re: v-usb
Добавлено: Ср окт 17, 2012 20:43:37
Alexeyslav
Нет уж, увольте от CP2102 у меня от нее на винде синие экраны случаются, и недавно одна кажется совсем перестала откликаться по USB. А вот FT232 реализует очень много полезных функций и имеет много настроек, реализуемых драйвером - частоту опроса шины, увеличенный буффер приема/передачи а так же BITBANG режим позволяющий использовать дополнительные линии в нестандартном режиме с высокой скоростью что используется во всякого рода простейших программаторах и железках разработанных для старых COM-портов.
Re: v-usb
Добавлено: Чт окт 18, 2012 21:35:00
Мурик
Satyr писал(а):vusb - наколенная поделка далекая от стандарта. имела смысл в далекие времена, когда МК с усб были дефицит и дорого.
Но это время прошло
Вы сильно ошибаетесь!
Может в Москве и не сложно достать МК с аппаратным USB, но в глубинке, достать бывает нереально!
К тому же, DIP корпус удобнее для экспериментов, а есть ли AVR в аппаратным USB в DIP?
Re: v-usb
Добавлено: Пт окт 19, 2012 05:33:07
Reloader
Мурик писал(а):но в глубинке, достать бывает нереально!
А у Вас, в "глубинке" что? почту упразднили?!!
Вот тут и с аппаратным USB есть
Re: v-usb
Добавлено: Пт окт 19, 2012 07:29:38
ploop
но в глубинке, достать бывает нереально!
В моей глубинке даже светодиод купить нереально. И что? Есть интернет-магазины, есть Китай, который с радостью шлёт детальки в мою глубинку.
Re: v-usb
Добавлено: Вт окт 23, 2012 14:21:09
Steve_g
Раз уж начал писать в этой теме - решил отписаться и заодно спросить!
Решили сделать переходник Usb-serial на камне AtTiny2313, саму программу оставить неизменной на Atmega8A..помучались с кварцами и питанием, но все таки сумели наладить работу переходника, проверили под ВИндой - работает!!
Надо перейти на Linux - переходник определяется как устройство ttyACM0! В инете порылся - не смог найти нормальных ответов и решений по тому вопросу - КАК обратиться к моей программе по виртуальному COM-порту, то есть как получить виртуальное устройство /dev/ttyS4 к примеру!? драйвер на переходник под Linux скачивал, ставил - ругается на отсутствующие .h - файлы в директории /usr/include/linux - init.h и т.д.
ПОМОГИТЕ ПЛИЗ)
Re: v-usb
Добавлено: Вт окт 23, 2012 14:24:26
ploop
Какой драйвер?
Попробуйте просто: echo 'test' > /dev/ttyACM0
Re: v-usb
Добавлено: Вт окт 23, 2012 16:59:31
Steve_g
Я вот и хотел узнать, что установить можно под ОС AltLinux ибо при ставке дров 3 видов у меня ругалось на отсутствие .h файлов!
Но как вот здесь -
http://www.linux.org.ru/forum/linux-hardware/7683634 ошибки нет, просто проглатывает и все!!
[ 4142.195995] usb 1-1.1: new low speed USB device number 6 using ehci_hcd
[ 4142.295228] usb 1-1.1: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt
[ 4142.295231] usb 1-1.1: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
[ 4142.301183] usb 1-1.1: New USB device found, idVendor=16c0, idProduct=05e1
[ 4142.301186] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4142.301188] usb 1-1.1: Product: USB-232
[ 4142.301189] usb 1-1.1: Manufacturer:
www.recursion.jp
[ 4142.301721] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
вот что выдает dmesg при подключении...посоветуйте плиз что можно сделать?
Re: v-usb
Добавлено: Вт окт 23, 2012 17:01:57
Steve_g
echo 'hvjhj' > /dev/ttyACM0 делаю.... на преобразователе TxD c RxD соединили - чтобы проверить напрямую просто преобразователь
команда cat /dev/ttyACM0 ничего не возвращает..а под Виндой с соединенными TxD и RxD посылали через утилиту Terminal слова и принимали то же самое!!
Re: v-usb
Добавлено: Вт окт 23, 2012 17:52:20
ploop
1. Открой два терминала (лучше под рутом)
2. Соедини Rx и Tx на переходнике
3. На одном набери cat /dev/ttyACM0 (будет ждать)
4. На втором набери echo 'hvjhj' > /dev/ttyACM0
5. После того, как нажмёшь ввод на втором, на первом должна появиться строка
6. Если Rx и Tx разомкнуть, строка не должна появляться.