v-usb
v-usb
Здравствуйте! Только что зарегился на сайте, так что всем привет))
Что я имею - программа на 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-порта)? (хотелось бы конечно реализовать программно)
Что я имею - программа на 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
Начать с того, что забыть это костыльно ископаемое, слить LUFA и купить копеечные контроллеры с USB контроллером.Steve_g писал(а): Но мне нужен COM-порт для других вещей, соответственно я натолкнулся на библиотеку v-usb..и я запутался - мне как и в каком порядке надо делать?
Ну, это если упереться в AVR и не смотреть на другое...
Re: v-usb
Купить AT90USBxxx или ATMEGAxxUx и использовать аппаратный USB rjynhjkkthSteve_g писал(а): Или лучше использовать переходник COM-USB(эмуляция COM-порта)? (хотелось бы конечно реализовать программно)
Re: v-usb
у нас очень большой проект, в котором все порты используются почти что) в частности com будет юзаться gpsd демоном. соотв мне надо бы скинуть запросы к Com-порту, принимаемые в USART МК на какой то другой порт..предлагается usb..
Поток приборов большой - камней Atmega8A закуплено много..
есть 2 вариант имхо -
1) переделывать прошивку под работу с v-usb - ТУТ вообще ничего для меня понятного нет...заблудился в дебрях материалов под Винду
2) работа для механика - сделать переходник USB-COM - так, что все на программном уровне останется прежним, просто я данные буду посылать на эмулированный порт, скажем COM1...
Хотелось бы самому конечно сделать по 1)..но если это геморно и нерентабельно - то 2)
вот потому и прошу посоветовать какой выбор сделать - если 2 - то все ли правильно я предполагаю?
если 1 - то дайте плиз ссылки на материал, который четко даст понять как и что делать так, чтобы все это работало под Linux-ом
Заранее благодарю откликнувшихся добрых людей!
Поток приборов большой - камней Atmega8A закуплено много..
есть 2 вариант имхо -
1) переделывать прошивку под работу с v-usb - ТУТ вообще ничего для меня понятного нет...заблудился в дебрях материалов под Винду
2) работа для механика - сделать переходник USB-COM - так, что все на программном уровне останется прежним, просто я данные буду посылать на эмулированный порт, скажем COM1...
Хотелось бы самому конечно сделать по 1)..но если это геморно и нерентабельно - то 2)
вот потому и прошу посоветовать какой выбор сделать - если 2 - то все ли правильно я предполагаю?
если 1 - то дайте плиз ссылки на материал, который четко даст понять как и что делать так, чтобы все это работало под Linux-ом
Заранее благодарю откликнувшихся добрых людей!
Re: v-usb
Если продукт массовый, а не две игрушки на коленке - то про VUSB сразу же забыть, пока глупостей не наделали.Steve_g писал(а): Поток приборов большой - камней Atmega8A закуплено много..
Берите ATmega8U2 с аппаратным контроллером.
Дешевле атмеги8а на помойку выкинуть, чем потом разгребать глюки с несовместимостью УСБ.
- Реклама
Re: v-usb
спасибо большое!! камень тоже будет прошиваться программой нашей? прошивка камня будет такая же, как и на Atmega8, единственное - данные будет брать не из USART а из какого то другого буфера? ( видимо курить документацию надо)...
видимо, это действительно самый адекватный вариант ибо vusb мне весь мозг вынес(
видимо, это действительно самый адекватный вариант ибо vusb мне весь мозг вынес(
Re: v-usb
vusb - наколенная поделка далекая от стандарта. имела смысл в далекие времена, когда МК с усб были дефицит и дорого.
Но это время прошло
Но это время прошло
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: v-usb
И еще как удалось переделать VUSB под 4Мгц, тогда как 12Мгц для общения по USB-шине в её версии 1.0 едва хватает? При том что VUSB это жуткий костыль, с которым у остальных задач кроме обеспечения протокола USB должен быть наименьший приоритет, ибо чревато всевозможными спецэффектами.
Лучше уж организовывать программный UART(если все доступные уже заняты) и работать через USB-UART преобразователь вроде PL2303 или еще шикарней FT232(но цена в 2 раза однако!).
Лучше уж организовывать программный UART(если все доступные уже заняты) и работать через USB-UART преобразователь вроде PL2303 или еще шикарней FT232(но цена в 2 раза однако!).
Re: v-usb
Скачал документацию по камню - увидел, что там нет встроенного модуля АЦП..Не подскажете камень с контроллером USB и модулем АЦП!
Re: v-usb
работали через COM-порт когда - использовали внутреннюю тактовую частоту 4МГЦ. Под v-usb то 12 конечно же!!
Цена - критичный аспект, ибо поток большой! соответственно пока что попробуем аналог Atmega8U2 но только с АЦП..еще раз прошу совета по камню с АЦП
Цена - критичный аспект, ибо поток большой! соответственно пока что попробуем аналог Atmega8U2 но только с АЦП..еще раз прошу совета по камню с АЦП
Re: v-usb
Тогда уж СP2102 - он в 2 раза дешевле PL2303Alexeyslav писал(а): Лучше уж организовывать программный UART(если все доступные уже заняты) и работать через USB-UART преобразователь вроде PL2303 или еще шикарней FT232(но цена в 2 раза однако!).
Вот только нафига ?
atmega8 + любой внешний чип полюбому дороже, более громоздко и ограниченнее, чем тот же авр с аппаратынм УСБ
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: v-usb
Нет уж, увольте от CP2102 у меня от нее на винде синие экраны случаются, и недавно одна кажется совсем перестала откликаться по USB. А вот FT232 реализует очень много полезных функций и имеет много настроек, реализуемых драйвером - частоту опроса шины, увеличенный буффер приема/передачи а так же BITBANG режим позволяющий использовать дополнительные линии в нестандартном режиме с высокой скоростью что используется во всякого рода простейших программаторах и железках разработанных для старых COM-портов.
Re: v-usb
Вы сильно ошибаетесь!Satyr писал(а):vusb - наколенная поделка далекая от стандарта. имела смысл в далекие времена, когда МК с усб были дефицит и дорого.
Но это время прошло
Может в Москве и не сложно достать МК с аппаратным USB, но в глубинке, достать бывает нереально!
К тому же, DIP корпус удобнее для экспериментов, а есть ли AVR в аппаратным USB в DIP?
- Reloader
- Мучитель микросхем
- Сообщения: 451
- Зарегистрирован: Сб фев 26, 2011 14:38:42
- Откуда: Новочеркасск
Re: v-usb
А у Вас, в "глубинке" что? почту упразднили?!!Мурик писал(а):но в глубинке, достать бывает нереально!
Вот тут и с аппаратным USB есть
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
Мой Youtube канал
Re: v-usb
В моей глубинке даже светодиод купить нереально. И что? Есть интернет-магазины, есть Китай, который с радостью шлёт детальки в мою глубинку.но в глубинке, достать бывает нереально!
Re: v-usb
Раз уж начал писать в этой теме - решил отписаться и заодно спросить!
Решили сделать переходник Usb-serial на камне AtTiny2313, саму программу оставить неизменной на Atmega8A..помучались с кварцами и питанием, но все таки сумели наладить работу переходника, проверили под ВИндой - работает!!
Надо перейти на Linux - переходник определяется как устройство ttyACM0! В инете порылся - не смог найти нормальных ответов и решений по тому вопросу - КАК обратиться к моей программе по виртуальному COM-порту, то есть как получить виртуальное устройство /dev/ttyS4 к примеру!? драйвер на переходник под Linux скачивал, ставил - ругается на отсутствующие .h - файлы в директории /usr/include/linux - init.h и т.д.
ПОМОГИТЕ ПЛИЗ)
Решили сделать переходник Usb-serial на камне AtTiny2313, саму программу оставить неизменной на Atmega8A..помучались с кварцами и питанием, но все таки сумели наладить работу переходника, проверили под ВИндой - работает!!
Надо перейти на Linux - переходник определяется как устройство ttyACM0! В инете порылся - не смог найти нормальных ответов и решений по тому вопросу - КАК обратиться к моей программе по виртуальному COM-порту, то есть как получить виртуальное устройство /dev/ttyS4 к примеру!? драйвер на переходник под Linux скачивал, ставил - ругается на отсутствующие .h - файлы в директории /usr/include/linux - init.h и т.д.
ПОМОГИТЕ ПЛИЗ)
Re: v-usb
Какой драйвер?
Попробуйте просто: echo 'test' > /dev/ttyACM0
Попробуйте просто: echo 'test' > /dev/ttyACM0
Re: v-usb
Я вот и хотел узнать, что установить можно под ОС 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 при подключении...посоветуйте плиз что можно сделать?
Но как вот здесь - 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
echo 'hvjhj' > /dev/ttyACM0 делаю.... на преобразователе TxD c RxD соединили - чтобы проверить напрямую просто преобразователь
команда cat /dev/ttyACM0 ничего не возвращает..а под Виндой с соединенными TxD и RxD посылали через утилиту Terminal слова и принимали то же самое!!
команда cat /dev/ttyACM0 ничего не возвращает..а под Виндой с соединенными TxD и RxD посылали через утилиту Terminal слова и принимали то же самое!!
Re: v-usb
1. Открой два терминала (лучше под рутом)
2. Соедини Rx и Tx на переходнике
3. На одном набери cat /dev/ttyACM0 (будет ждать)
4. На втором набери echo 'hvjhj' > /dev/ttyACM0
5. После того, как нажмёшь ввод на втором, на первом должна появиться строка
6. Если Rx и Tx разомкнуть, строка не должна появляться.
2. Соедини Rx и Tx на переходнике
3. На одном набери cat /dev/ttyACM0 (будет ждать)
4. На втором набери echo 'hvjhj' > /dev/ttyACM0
5. После того, как нажмёшь ввод на втором, на первом должна появиться строка
6. Если Rx и Tx разомкнуть, строка не должна появляться.


