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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Делаем AVR USB (software) правильно, уровень схемы
QuickWitted
сообщение Dec 3 2008, 16:31
Сообщение #31


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Вопрос к АЛЛ
как до HID достучаться с Дэльфи?

Как выявили поиски HID RS232 и HID LPT требуют драйвер...
(HID ком порт, без стороннего драйвера НЕ РАБОТАЕТ.)

"использование интерфейса USB в качестве виртуального COM-порта."
"Другое важное преимущество заключается в том, что используются стандартные драйвера Windows и
не требуется создание какого-либо своего драйвера."

и ниже

"После подключения устройства к USB система опознает новое устройство"
"Выбираем установку с указанного места и указываем путь расположения файла mcpusb.inf"

типа mcpusb.inf с диска это не сторонний драйвер.

Для АВР предлагают использовать связку - usbser.sys и usbser.sys из файла avrcdc_inf.zip

Всё забываю ответить на вопрос что будет если произойдёт сбой.
Ответ – зависнет. Или до передёргивания шланга, или до сброса по сторожевому таймеру (если взведён).

Откапал ещё одну почитайку по поводу комбиков.

http://microchip.com.ru/1010/Support/USB%20apps.html
Практическое использование интерфейса USB в PIC контроллерах.

Да это пик, а не АВР, но другого мануала на "Составное USB устройство" я пока не видел.

Да и это подробностью не блещет

1. Создание дескриптора -> Изменим структуру дескриптора. ->Устройство будет иметь 2 интерфейса,
в каждом по одной конечной точке.
2. В соответствии с измененной структурой нужно изменить дескриптор
3. Определить идентификаторы интерфейсов, используемые конечные точки, размеры report дескрипторов.
4. инициализировать дополнительные конечные точки и изменить функцию обработки HID-запросов.
5. Каждое из устройств, мышка и джойстик, должны передавать данные каждый в свою конечную точку.
Поэтому нам необходимо добавить функции передачи данных в конкретные конечные точки и проверки,
что нужная конечная точка свободна.

Для упрощения создания дескриптора устройства можно воспользоваться программой HID Descriptor Tool,
которую можно скачать с сайта www.usb.org

Вот и вся дока...

Цитата(MAXvaLL @ Dec 3 2008, 00:18) *
Хоть бы объяснили человеку (кто спросил) что это за дескрипторы!



P.S: Если кому понятней начинать с конца, то картинку можно перевернуть ендпоинтами к верху smile.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Dec 6 2008, 03:57
Сообщение #32


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Что то тема заглохла...

Вопрос к АЛЛ
как до HID достучаться с Дэльфи?


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jun 21 2009, 00:35
Сообщение #33


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Кто знает, отчего берутся USB-запросы (CDC Class Requests):
SEND_ENCAPSULATED_COMMAND
GET_ENCAPSULATED_RESPONSE

?
Обычно их не обрабатывают, но любопытно, для чего они нужны. Короче говоря, мой вопрос формулируется так: "Какую команду из Windows-API должно подать приложение, чтобы моя AVRка получила один из этих реквайстов?" И в частности, если у меня на USB организован виртуальный COM-порт. Как вызвать все остальные реквайсты я знаю, остались непонятными только эти. В книгах и исходниках эти два реквайста всегда упоминаются, однако ни слова не нашла про то, в связи с каким событием такие запросы посылаются. Драйвер, конечно, может послать любой реквайст, но остается неясным, как побудить драйвер к этому (я использую стандартный драйвер виртуального порта usbser.sys, встроенный в Windows).

Сообщение отредактировал Xenia - Jun 21 2009, 00:45
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jun 21 2009, 07:47
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(Xenia @ Jun 21 2009, 04:35) *
Кто знает, отчего берутся USB-запросы (CDC Class Requests):
SEND_ENCAPSULATED_COMMAND
GET_ENCAPSULATED_RESPONSE

?
Обычно их не обрабатывают, но любопытно, для чего они нужны. Короче говоря, мой вопрос формулируется так: "Какую команду из Windows-API должно подать приложение, чтобы моя AVRка получила один из этих реквайстов?" И в частности, если у меня на USB организован виртуальный COM-порт. Как вызвать все остальные реквайсты я знаю, остались непонятными только эти. В книгах и исходниках эти два реквайста всегда упоминаются, однако ни слова не нашла про то, в связи с каким событием такие запросы посылаются. Драйвер, конечно, может послать любой реквайст, но остается неясным, как побудить драйвер к этому (я использую стандартный драйвер виртуального порта usbser.sys, встроенный в Windows).


Попробуйте применить TransmitCommChar - может, оно вызовет SEND_ENCAPSULATED_COMMAND ?

хотя, почитал первый попавшийся даташит - и показалось, что это - рлддержка для DeviceIoControl

Сообщение отредактировал Genadi Zawidowski - Jun 21 2009, 07:47
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jun 21 2009, 14:10
Сообщение #35


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Genadi Zawidowski @ Jun 21 2009, 11:47) *
Попробуйте применить TransmitCommChar - может, оно вызовет SEND_ENCAPSULATED_COMMAND ?


Уже думала про это, но лениво было проверять smile.gif.

Цитата(Genadi Zawidowski @ Jun 21 2009, 11:47) *
хотя, почитал первый попавшийся даташит - и показалось, что это - поддержка для DeviceIoControl


А вот это как раз меня больше всего интересует! К сожалению, константы DeviceIoControl для СОМ-порта не описаны.
Любопытно, что функция

BOOL EscapeCommFunction(
HANDLE hFile, // handle to communications device
DWORD dwFunc // extended function to perform
);

очень похожа на DeviceIoControl, поскольку значение dwFunc очень похожа по смыслу на констанды DeviceIoControl:
dwFunc value:
CLRDTR Clears the DTR (data-terminal-ready) signal.
CLRRTS Clears the RTS (request-to-send) signal.
SETDTR Sends the DTR (data-terminal-ready) signal.
SETRTS Sends the RTS (request-to-send) signal.
SETXOFF Causes transmission to act as if an XOFF character has been received.
SETXON Causes transmission to act as if an XON character has been received.
SETBREAK Suspends character transmission and places the transmission line in a break state until the ClearCommBreak function is called.
CLRBREAK Restores character transmission and places the transmission line in a nonbreak state.

К сожалению, нмчего похожего на SEND_ENCAPSULATED_COMMAND и GET_ENCAPSULATED_RESPONSE тут нет.
Go to the top of the page
 
+Quote Post
Marian
сообщение Jun 22 2009, 16:29
Сообщение #36


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(QuickWitted @ Dec 3 2008, 19:31) *
как до HID достучаться с Дэльфи?

Программирование простейших USB-устройств на Delphi
Go to the top of the page
 
+Quote Post
Br.Misha
сообщение Aug 24 2009, 19:07
Сообщение #37


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Здраствуйте!
Я понимаю что тема уже старая но межет у кого нить есть пример AVR - CDC. Мне нада просто пересылать/принимать байты(как по обычому юарту).
Кстате, нормально ли работает дряйвер от obdev на 16Мгц(при соотвецтвенной настройке конечно?))
ЗЫ: на http://www.recursion.jp меня не слать! тот пример у меня не работает.
Go to the top of the page
 
+Quote Post

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

 


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


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