Перейти к содержанию
    

Вышла очередная версия AVR-USB драйвера от Objective Development

Кстати, по поводу дескрипторов и драйверов, раз уж встретились :)

Хотелось бы узнать про вот такую строчку в драйвере, при использовании устройства как USB CDC ACM class

Если вопрос ко мне, то увы, не подскажу. Я не игрался (пока?) с CDC. Потому вопросов, с этим связанных, не изучал. Может, кто-то другой подскажет чего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, по поводу дескрипторов и драйверов, раз уж встретились :)

Хотелось бы узнать про вот такую строчку в драйвере, при использовании устройства как USB CDC ACM class

Если вопрос ко мне, то увы, не подскажу. Я не игрался (пока?) с CDC. Потому вопросов, с этим связанных, не изучал. Может, кто-то другой подскажет чего.

Да не лично к Вам, конечно, НО, раз уж вы лично переписываетесь с автором такого замечательного драйвера, то могли бы ему сказать о данном вопросе. Я, честно говоря, не придавал значения этим строчкам, пока не стал отлаживать более "серъезный" USB девайс, тоже прикидывающий ся CDC ACM. SET_CONTROL_LINE_STATE не требует ответа...

 

Это описанно в файле usbcdc11.pdf стр.69. 6.2.14.SetControlLineState

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Я переписываюсь тогда, когда есть предмет разговора. Предмет разговора, с моей точки зрения, может быть тогда, когда я "въехал" в тему и не вижу решения. Вникать в этот предмет у меня сейчас не получится, а быть испорченным телефоном не очень хочется.

 

Автор без проблем общается со всеми. Кроме того, с недавних пор на его сайте запущена phpBB, где есть форум по AVR USB драйверу и проектам на его основе. Автор там регулярно отвечает на вопросы. Я полагаю, что самое оптимальное - это задать вопрос там.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Я переписываюсь тогда, когда есть предмет разговора. Предмет разговора, с моей точки зрения, может быть тогда, когда я "въехал" в тему и не вижу решения. Вникать в этот предмет у меня сейчас не получится, а быть испорченным телефоном не очень хочется.

 

Автор без проблем общается со всеми. Кроме того, с недавних пор на его сайте запущена phpBB, где есть форум по AVR USB драйверу и проектам на его основе. Автор там регулярно отвечает на вопросы. Я полагаю, что самое оптимальное - это задать вопрос там.

Хорошо :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На базе драйвера разработал USB вольтметр (USB драйвер и сама программа свои, включено автоопределение подключения-отключения устройства), все прекрасно работает на компах с USB 1.1, но не работает на компах с USB2, устройство вообще не определяется компом? В чем могут быть грабли?
В смысле не определяет? вообще не видит, или говорит Unknown device? У меня прекрасно видится на любых версиях портов - пробовал на разных платах. ОСи пробовал 98/МЕ/2000/ХР

Говорит Unknown device.

 

Ребят а не поможете создать джойстик? Я вот сижу и пытаюсь разобраться с HID. И не могу прикинуть как же всётаки объяснить сколько скнопок и прочего на джойстике.

В инете был прекрасный проект джойстика на Мега8 с HID устройством MJoy. Я по нему в свое время разбирался с хидами, он на асме, но комментировано достаточно хорошо было, понять все можно. Я хиды бросил, достаточно один раз написать драйвер USB, потом уже по аналогии за 5 минут драйвер пишется. А возможностей гораздо больше, чем с обезличенным ХИД устройством.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На базе драйвера разработал USB вольтметр (USB драйвер и сама программа свои, включено автоопределение подключения-отключения устройства), все прекрасно работает на компах с USB 1.1, но не работает на компах с USB2, устройство вообще не определяется компом? В чем могут быть грабли?
В смысле не определяет? вообще не видит, или говорит Unknown device? У меня прекрасно видится на любых версиях портов - пробовал на разных платах. ОСи пробовал 98/МЕ/2000/ХР

Говорит Unknown device.

Скорее всего, что то "не совсем правильно" с дескрипторами. Я бы попробовал отследить протокол общения с помощью вот этой программульки. Только не спрашивайте, как с ней работать :) , раз с драйвером AVR разобрались, с ней и подавно. После каждой транзакции слева показывает код ошибки - если отличен от нуля - устройство сушит весла

SnoopyPro_0.22.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего, что то "не совсем правильно" с дескрипторами. Я бы попробовал отследить протокол общения с помощью вот этой программульки. Только не спрашивайте, как с ней работать :) , раз с драйвером AVR разобрались, с ней и подавно. После каждой транзакции слева показывает код ошибки - если отличен от нуля - устройство сушит весла

С дескрипторами вряд ли, ассемблерный вариант с этими дескрипторами работает на всех машинах.

За программульку спасибо, вечерком попробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал программульку на работе, удобная штучка, разбираться там особо не с чем, это обычный драйвер-фильтр, врезаемый в стэк драйверов. Тут только два вопроса - где взять расшифровку кодов ошибок и самое главное, программа снифит уже установленные устройства. А если мое устройство не определяется, то соответственно не загрузится и драйвер. Что же будет снифиться в этом случае?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал программульку на работе, удобная штучка, разбираться там особо не с чем, это обычный драйвер-фильтр, врезаемый в стэк драйверов. Тут только два вопроса - где взять расшифровку кодов ошибок и самое главное, программа снифит уже установленные устройства. А если мое устройство не определяется, то соответственно не загрузится и драйвер. Что же будет снифиться в этом случае?
Про расшифровку кодов я не знаю, может Билли Гей тс знает :) , bus драйвер егошний))), а по поводу что же будет сниффить - то и будет, что появится... VID и PID вам же известен? В списке устройств (в программе, которую я положил выше) Ваш девайс же есть? так на него и тыкайте

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я помню, вид и пид с устройства не брались вообще, т.е. до считывания дескрипторов дело не доходило в принципе.

Если драйвер дяди Билла, то скорей всего коды ошибок стандартные виндусовские, надо будет сравнить.

Изменено пользователем Георгий

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я помню, вид и пид с устройства не брались вообще, т.е. до считывания дескрипторов дело не доходило в принципе.

Если драйвер дяди Билла, то скорей всего коды ошибок стандартные виндусовские, надо будет сравнить.

Как так? В любом случае, как только устройство определилось на шине, начинается считывание дескриптора устройства, привожу последовательность, стандартную для ОС Windows 98/ME/2000/XP etc:

 

A common Windows enumeration involves the following steps,

1. The host or hub detects the connection of a new device via the device's pull up resistors on the

data pair. The host waits for at least 100ms allowing for the plug to be inserted fully and for power

to stabilise on the device.

2. Host issues a reset placing the device is the default state. The device may now respond to the

default address zero.

3. The MS Windows host asks for the first 64 bytes of the Device Descriptor.

4. After receiving the first 8 bytes of the Device Descriptor, it immediately issues another bus reset.

5. The host now issues a Set Address command, placing the device in the addressed state.

6. The host asks for the entire 18 bytes of the Device Descriptor.

7. It then asks for 9 bytes of the Configuration Descriptor to determine the overall size.

8. The host asks for 255 bytes of the Configuration Descriptor.

9. Host asks for any String Descriptors if they were specified.

Это из usb-in-nutshell

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если просто прицепить резистор 1,5 ком между D- b питанием получим тот же эффект. Вся сложность в том и состоит, что до получения конфигурации дело не доходит.

Мне больше грешится на несоблюдение времени первоначального сброса, возможно у USB1.1 оно менее критично, чем у USB2.0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если просто прицепить резистор 1,5 ком между D- b питанием получим тот же эффект. Вся сложность в том и состоит, что до получения конфигурации дело не доходит.

Мне больше грешится на несоблюдение времени первоначального сброса, возможно у USB1.1 оно менее критично, чем у USB2.0.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так меня и интересует, в каком месте он может грешить при USB2.0 и быть невинным при USB1.1. Проверял на 4 компах. На асмовском варианте (типа Igor Cesko) такого не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так меня и интересует, в каком месте он может грешить при USB2.0 и быть невинным при USB1.1. Проверял на 4 компах. На асмовском варианте (типа Igor Cesko) такого не было.
Кстати, а можно увидеть входные цепи USB? Я имею ввиду схему подключения МК к хосту...

 

И еще, я бы рекомендовал пользоваться отладочными сообщениями через USART - хотя бы было бы видно чего хост шлет девайсу. Даже если просто прицепить резистор к хосту, хост обязан послать запрос дескриптора девайса устройству

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...