реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> USB в AVR, Нужна помощь
ЛеонидК
сообщение Jul 17 2013, 21:05
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 27-01-09
Пользователь №: 44 027



А это не может помочь:
_http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR309.htm
_http://microsin.ru/content/view/605/
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 17 2013, 22:09
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Diusha @ Jul 17 2013, 20:19) *
1. USB ненадежен? В чем это выражается?
2. Что значит "вмешательство человека" и что значит "хоть сколько-нибудь продолжительное время"?
3. Что значит "необслуживаемых"? (возможно, этот вопрос можно объединить со 2-м)
4. Какие последствия использования именно FT232 (по сравнению со, скажем, встроенным в AVR)?

Это значит, что в любой (как правило, самый неподходящий) момент обмен по USB может сбойнуть или ваше устройство может исчезнуть из системы. При этом почти все равно, на чем именно оно сделано - на FT232 или на AVR. В офисных условиях это не так важно - вынуть разъем и вставить обратно большого труда не составит. Но если устройство задействовано для управления чем-то серьезным, или размещено в труднодоступном или необслуживаемом месте, то такой сбой сулит массу неприятностей. В то же время хорошая мультипортовка с COM - портами может годами работать вообще без всякого вмешательства человека.
А еще USB для реализации COM порта потрясающе сложен и невероятно избыточен. А чем сложнее система, тем менее она надежна. Если бы эта сложность была оправдана, но в данном случае никаких разумных оправданий я не нахожу. Нет у ноутбука COM - портов ? Ну так не используйте ноутбук для серьезных задач. А для подключения какой-нибудь ерунды в офисе или дома сгодится и переходник COM-USB ...
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Jul 17 2013, 22:34
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Про ненадежность USB сказано совершенно справедливо. Но есть варианты.
1. Внешнее устройство, не получая некоторое время данные, отключает и снова включает USB. Это эквивалент вынимания/вставки USB устройства.
2. Программа в PC закрывает и снова открывает соединение в аналогичной ситуации.

Даже при этом возможны гадости, поэтому нужно следить за паузами и делать так, чтобы программа в PC обнаруживала отсутствие связи раньше, чем устройство и закрывала канал. Только потом устройство должно отключиться и включится вновь до того, как программа попробует снова открыть канал.

Все равно заморочно, но хоть что-то.
Go to the top of the page
 
+Quote Post
Diusha
сообщение Jul 18 2013, 02:10
Сообщение #19


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Спасибо! В этом смысле ненадежность тогда не так страшна: девайс будет использоваться для воткнуть–переписать–отключить.
Но все же непонятно это:
Цитата(rudy_b @ Jul 18 2013, 01:34) *
делать так, чтобы программа в PC обнаруживала отсутствие связи раньше, чем устройство и закрывала канал. Только потом устройство должно отключиться и включится вновь до того, как программа попробует снова открыть канал.

в виду этого:
Цитата(rudy_b @ Jul 18 2013, 01:34) *
1. Внешнее устройство, не получая некоторое время данные, отключает и снова включает USB. Это эквивалент вынимания/вставки USB устройства.

(мы же вынимаем/вставляем когда захотим)

До кучи еще вопрос (возможно, у меня в голове сейчас полная каша).
Как быть с VID / PID? О том, чтобы зарегистрировать для маленькой фирмочки – нет и речи. Насколько понимаю, для FT232 (и иже ним) есть свой готовый VID. А как поступают при использовании AVR c USB на борту? Придумать свой «от балды»? Какие могут быть проблемы при случайном совпадении (кроме технических)?
Видел, что некоторые маскируются под клавиатуры/мыши/модемы. Этот путь как, совсем через … или нормально?
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Jul 18 2013, 07:09
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Тут есть проблемы с виндюками. Если канал открыт а устройство вынули - то драйвер подвисает и без вытыкания/втыкания устройства, а иногда и без перезапуска программы не обойтись.

Поэтому сначала программа должна закрыть канал, потом устройство должно выключится/включится и только потом программа должна снова попытаться открыть канал. Например, программа закрывает канал если нет связи 3 сек, устройство отключает USB через 5 сек после потери связи и снова его включает еще через 2 секунды. Программа пробует восстановить связь через 10 сек после закрытия канала.

В отдельных случаях может потребоваться автоматический перезапуск программы после нескольких неудачных попыток восстановления связи.

При этом само устройство может снова перезапускаться через большой и некратный интервал времени если после отключения/включения не прошла енумерация и связь не установлена. Но этого лучше избегать.

Да, потеря связи и отключение устройства - это разные вещи. При отключении виндюки выгружают драйвер.

Можно использовать стандартный атмеловский драйвер CDC устройств и их VID/PID. Все это есть в их примерах.
Go to the top of the page
 
+Quote Post
evsx1
сообщение Jul 19 2013, 14:14
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586



Цитата(A_MIKE @ Mar 13 2013, 19:42) *
Уговорили... Придется напрячься. Спасибо за участие и потраченное время.

Ну почему у того же атмела, есть ASF (Atmel Software Framework),есть аплеухи и примеры моста UART-USB(CDC), HID, MSD. Есть свободный проект LUFA вроде сейчас портанули и на Xmegu. Однако минимальное понимание работы с USB шиной,все же необходимо. Кроме того все готовые решения будут громоздкими(память) и медленными. Но это не говорит об их негодности и тем более,что из-за программных глюков,что-то рабочее вдруг может отвалиться,если уже запустилось. Сам реализовал простое управление RGB на меге ATmega32U4 с помощью ASF. В последствии прикрутил dmx
Go to the top of the page
 
+Quote Post
Diusha
сообщение Jul 22 2013, 06:40
Сообщение #22


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(rudy_b @ Jul 18 2013, 10:09) *
Например, программа закрывает канал если нет связи 3 сек, устройство отключает USB через 5 сек после потери связи и снова его включает еще через 2 секунды. Программа пробует восстановить связь через 10 сек после закрытия канала.

В отдельных случаях может потребоваться автоматический перезапуск программы после нескольких неудачных попыток восстановления связи.

Это стандартный подход, применяемый везде, или "хорошо было бы"?

Цитата(rudy_b @ Jul 18 2013, 10:09) *
Можно использовать стандартный атмеловский драйвер CDC устройств и их VID/PID. Все это есть в их примерах.

Слово "можно" подразумевает НЕединственность решения. А как еще поступают?

Цитата(evsx1 @ Jul 19 2013, 17:14) *
есть ASF ... Есть свободный проект LUFA ...
Однако минимальное понимание работы с USB шиной,все же необходимо. Кроме того все готовые решения будут громоздкими(память) и медленными.

Согласен. Буду потихоньку изучать матчасть

Сообщение отредактировал Diusha - Jul 22 2013, 06:41
Go to the top of the page
 
+Quote Post
dvm11111111
сообщение Aug 4 2013, 07:11
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567



А если использовать USB HID то драйвера вообше не нужны никакие. Vid pid можно взять из поэктов, есть выкупленные и в свободный доступ выложенные, работа через репорты не очень сложна. Поищи проэкт в нете usb розетка для ноутбука еазывается, там авольно все разжевано и понятно.
Go to the top of the page
 
+Quote Post
piroman
сообщение Nov 2 2013, 17:54
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 27-09-12
Пользователь №: 73 712



Нужен выкупленный, свободный VID&PID. Где?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Nov 2 2013, 19:04
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(piroman @ Nov 2 2013, 21:54) *
Нужен выкупленный, свободный VID&PID. Где?

Покупать надо. Это если делаете серию и на продажу. А если один, для опытов, то возьмите, например, "1234" и "4321" ...
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th July 2025 - 03:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.0197 секунд с 7
ELECTRONIX ©2004-2016