|
USB в AVR, Нужна помощь |
|
|
|
Mar 12 2013, 15:14
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-07-08
Пользователь №: 38 802

|
Хочу попросить помощи. Нужно разобраться с USB в XMega (в любой AVRке). Ситуация такая, разработкой на AVR занимаюсь давно. Все устройства сливают данные в ПК. Всегда все решалось через UART > RS232. Потом использовался мост UART > USB. Но это уже не проходит. Как к проблеме подступиться? Буду ОЧЕНЬ признателен за наставления, советы и любые материалы (особенно на русском языке).
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 24)
|
Mar 13 2013, 08:15
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-07-08
Пользователь №: 38 802

|
Спасибо большое. Но может кто подскажет какую нибудь "квинтэссенцию".  Очень нужно быстро проект сделать. Может даже пока "как обезьяна" не вдаваясь глубоко в детали.
|
|
|
|
|
Mar 13 2013, 08:53
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-07-08
Пользователь №: 38 802

|
Цитата(kovigor @ Mar 13 2013, 12:33)  Ничего не выйдет. Или выйдет, но так, что лучше бы вообще никак не выходило. USB - не UART. Очень быстро можно только купить готовый переходник USB<->COM. Да. Выбирая USB для связи с машиной, вы должны помнить о надежности такого решения. Для реализации надежного обмена, способного работать без вмешательства человека хоть сколько-нибудь продолжительное время, USB не годится. И для необслуживаемых (или труднодоступных) систем/объектов USB тоже не подойдет... Это я понимаю. Но нужно только USB. Сейчас все работает через мост (переходник USB<->COM, микросхема встроенная в само устройство). Раньше хватало. А вот сейчас срочно понадобился USB в нормальном виде
|
|
|
|
|
Mar 13 2013, 09:59
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-07-08
Пользователь №: 38 802

|
Цитата(kovigor @ Mar 13 2013, 13:07)  Пусть работает, как есть. Быстро вы не сделаете, забудьте об этом. А заодно разъясните вашему работодателю, что USB и надежность - понятия несовместимые. А если он будет упорствовать, используйте ИС преобразователя вроде FT232BM, пусть он кушает свое USB с маслом и вкушает последствия, так сказать ... Да сейчас так и происходит. Только микросхема другая  . Но все дело в том что нужно на нормальном USB сделать. Про надежность речи пока не идет...
|
|
|
|
|
Mar 13 2013, 14:50
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-07-08
Пользователь №: 38 802

|
Цитата(kovigor @ Mar 13 2013, 14:12)  Тогда придется разбираться, а это займет время ... В том то и вопрос... Какой нибудь быстрый ликбез на 10 страницах... (может чудеса иногда случаются?)
|
|
|
|
|
Mar 13 2013, 15:04
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(A_MIKE @ Mar 13 2013, 18:50)  В том то и вопрос... Какой нибудь быстрый ликбез на 10 страницах... (может чудеса иногда случаются?) Забудьте. Спешка нужна при охоте на блох. Если нужен результат, придется потрудиться основательно, тема сложная. Можно, конечно, надергать отовcюду "либ", "сорцов" (терпеть не могу эти слова), кусков кода, слепить все это в кучу без понимания сути и выдать за работающий проект. Но тогда готовьтесь к тому, что в один прекрасный момент "это" откажется работать, и вы в этой ситуации будете совершенно беспомощны ...
|
|
|
|
|
Mar 13 2013, 15:42
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-07-08
Пользователь №: 38 802

|
Цитата(kovigor @ Mar 13 2013, 19:04)  Забудьте. Спешка нужна при охоте на блох. Если нужен результат, придется потрудиться основательно, тема сложная. Можно, конечно, надергать отовлюду "либ", "сорцов" (ненавижу эти слова), кусков кода, слепить все это в кучу без понимания сути и выдать за работающий проект. Но тогда готовьтесь к тому, что в один прекрасный момент "это" откажется работать, и вы в этой ситуации будете совершенно беспомощны ... Уговорили... Придется напрячься. Спасибо за участие и потраченное время.
|
|
|
|
|
Jul 17 2013, 17:19
|
Вечный студент
   
Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262

|
О-па! Наткнулся на уже заданный вопрос, который сам хотел задать. Причем ситуация у A_MIKE почти слово-в-слово моя!  Похоже, единственное отличие, что я еще FT232 не успел использовать. Хочется прояснить некоторые вещи. Цитата(kovigor @ Mar 13 2013, 11:33)  Выбирая USB для связи с машиной, вы должны помнить о надежности такого решения. Для реализации надежного обмена, способного работать без вмешательства человека хоть сколько-нибудь продолжительное время, USB не годится. И для необслуживаемых (или труднодоступных) систем/объектов USB тоже не подойдет... Цитата(kovigor @ Mar 13 2013, 12:07)  USB и надежность - понятия несовместимые. А если он будет упорствовать, используйте ИС преобразователя вроде FT232BM, пусть он кушает свое USB с маслом и вкушает последствия, так сказать ... Почти каждое слово требует пояснений. 1. USB ненадежен? В чем это выражается? 2. Что значит "вмешательство человека" и что значит "хоть сколько-нибудь продолжительное время"? 3. Что значит "необслуживаемых"? (возможно, этот вопрос можно объединить со 2-м) 4. Какие последствия использования именно FT232 (по сравнению со, скажем, встроенным в AVR)?
|
|
|
|
|
Jul 17 2013, 18:00
|
Местный
  
Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023

|
Цитата(Diusha @ Jul 17 2013, 21:19)  1. USB ненадежен? В чем это выражается? 2. Что значит "вмешательство человека" и что значит "хоть сколько-нибудь продолжительное время"? Через некоторое время работы, особенно при коммутации электрических цепей подключённых к устройству (вилку в розетку воткнули, магнитный пускатель щёлкнул), устройство может исчезать из списка устройств в компьютере. Чтобы возобновить работу, нужно выдернуть USB разъём и вставить обратно. Цитата(Diusha @ Jul 17 2013, 21:19)  3. Что значит "необслуживаемых"? (возможно, этот вопрос можно объединить со 2-м) Расположенных там, куда люди не ходят - обычно не ходят, не должны ходить, для прохода требуется сложная процедура (переодевание во всё белое например), далеко идти, и так далее.
|
|
|
|
|
Jul 17 2013, 21:05
|
Участник

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

|
А это не может помочь: _http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR309.htm _http://microsin.ru/content/view/605/
|
|
|
|
|
Jul 17 2013, 22:09
|
Гуру
     
Группа: Свой
Сообщений: 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 ...
|
|
|
|
|
Jul 18 2013, 02:10
|
Вечный студент
   
Группа: Участник
Сообщений: 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 на борту? Придумать свой «от балды»? Какие могут быть проблемы при случайном совпадении (кроме технических)? Видел, что некоторые маскируются под клавиатуры/мыши/модемы. Этот путь как, совсем через … или нормально?
|
|
|
|
|
Jul 19 2013, 14:14
|

Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jul 22 2013, 06:40
|
Вечный студент
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Aug 4 2013, 07:11
|
Участник

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

|
А если использовать USB HID то драйвера вообше не нужны никакие. Vid pid можно взять из поэктов, есть выкупленные и в свободный доступ выложенные, работа через репорты не очень сложна. Поищи проэкт в нете usb розетка для ноутбука еазывается, там авольно все разжевано и понятно.
|
|
|
|
|
Nov 2 2013, 17:54
|
Участник

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

|
Нужен выкупленный, свободный VID&PID. Где?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|