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

 
 
> Прерывания ENDBUSRES и RXRSM
junkl
сообщение May 10 2007, 11:45
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



Подскажите, пожалуйста, как решить следующую проблему с прерываниями UDP ENDBUSRES и RXRSM.

Пока устройство не подключено к компьютеру, постоянно идут прерывания ENDBUSRES и RXRSM (поочередно).
После подключения устройства к хосту, эти прерывания перестают генерироваться до включения Pull-up.
Прерывание ENDBUSRES мешает мне передать дескриптор устройства на хост:
подключаю устройство (на AT91RM9200) к компьютеру, включаю PullUp,
возникает прер-ие ENDBUSRES,
затем прер-ие EPOINT0 - получаю пакет SETUP (запрос дескриптора устройства),
передаю первые 8 из 18 байт,
снова прерывание по EPOINT0 - по флагу TX_COMP,
передаю следующие 8 байт дескриптора,
а вот здесь снова возникает прерывание по ENDBUSRES
и я уже никогда не передаю последние 2 байта дескриптора устройства.

Из-за чего это случается? Когда должно происходить прер-ие ENDBUSRES? Только после подключения устройства к хосту и только 1 раз?
И как отключить RXRSM?

AT91F_UDP_DisableIt(AT91C_BASE_UPD, AT91C_UPD_RXRSM) в обработчике прерывания по ENDBUSRES не помогает.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Monk Eastman
сообщение Jun 8 2007, 13:11
Сообщение #2





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



по поводу "глюка" Windows... это стандартное поведение USB протокола описанное в спецификации. Так как дескриптор девайса может быть разного размера, то для его получения винда отсылает запрос на получение дескриптора, и получив первые 8 байт резетит девайс. Так как в этих восьми байтах содержится информация о полном размере дескриптора, то винда второй раз посылает запрос на получение дескриптора уже правильной длины.
Ещё тут говорилось о том, чтобы игнорировать или запретить ENDBUSRES этого тоже делать не надо... надо его правильно обрабатывать, как описано в протоколе USB... пример можно найти на сайте атмела...

З.Ы. звиняйте, что поднимаю старую тему... давно не был...
Go to the top of the page
 
+Quote Post



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

 


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


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