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

 
 
> Помогите, плиз, разобраться с работой USB Device в AT91RM9200
junkl
сообщение May 17 2007, 12:36
Сообщение #1


Участник
*

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



В процессе отладки USB Device на AT91RM9200 я заметила странную закономерность:

при включении питания моего устройства после выключения питания на ДОЛГОЕ ВРЕМЯ (минуты 3 хотя бы или даже больше, а лучше вобще включать устройство с утра или после обеда smile.gif) после загрузки программы и подключении девайса к хосту начинается процесс enumeration. Девайсу назначается адрес, и дескриптор устройства отсылается хосту. Этот процесс я еще отлаживаю, пока он не работает правильно: хост пока не понимает этот дескриптор и повторяет свои попытки 3 раза. Но не в этом проблема.

Далее я либо выключаю-включаю Pull-up резистор, либо откючаю-включаю устройство с помощью кабеля, процесс enumeration уже представляет собой другую последовательность транзакций (адрес уже не устанавливается, иногда не возникают прерывания по EPOINT0. И с течением времени обмен совсем ломается: при обнаружении устройства в Windows моему устройству приходит только набор прерываний ENDBUSRESET и RXRSM и ни одного EPOINT0 (то есть никаких запросов и никаких установок).

Я бы думала, что это все связано с глюками моей программы, НО
если затем я сбрасываю питание устройства (в выключенном состоянии устройство находится НЕДОЛГО), то нормальный обмен (как после долгого выключения устройства) не восстанавливается.

А если я выключу устройство снова надолго, то начало процесса enumeration происходит нормально (как в первом случае).

Но самая странная ситуация такая:
если оставить питание устройства выключенным надолго (чтобы обмен был полным, как в первом случае),
затем включить устройство, но программу не загружать в контроллер какое-то время,
а потом загрузить и сразу подключить девайс к хосту, то нормального первоначального обмена нет.

То есть процесс enumeration происходит нормально только после длительного ресета и при подключении устройста к хосту сразу же после подачи питания на устройство.
Через какое-то время обмен ломается независимо от программы.

Спасибо всем, кто дочитал до конца!
Подскажите, пожалуйста, в чем может быть дело? Схемотехник говорит, что "схемотехнически все правильно и ничего там не может быть".
И я тоже не знаю, что делать sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ignatyy
сообщение May 18 2007, 18:52
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 18-05-07
Пользователь №: 27 820



Прочитал но ничего не понял. Чтобы отлаживать с 0 необходимо иметь сниффер( сканирует потоки аппаратно по шине). И как вы определяете этапы что прошло и что ответило? какой драйвер стоит на компе? ведь буквально через 4-5 стандартных запросов от Винды подзагружаются ответственные за данный дескриптор драйвер и именно они продолжают стандартные запросы( а в последствии и не стандартные).
Go to the top of the page
 
+Quote Post
junkl
сообщение May 21 2007, 05:37
Сообщение #3


Участник
*

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



Цитата(ignatyy @ May 18 2007, 22:52) *
как вы определяете этапы что прошло и что ответило?

Я вывожу по DBGU основные моменты (названия функций, типы принятых пакетов), поэтому знаю, какая последовательность запросов/ответов выполняется
Цитата(ignatyy @ May 18 2007, 22:52) *
какой драйвер стоит на компе? ведь буквально через 4-5 стандартных запросов от Винды подзагружаются ответственные за данный дескриптор драйвер и именно они продолжают стандартные запросы( а в последствии и не стандартные).

До драйвера еще не дошло, к сожалению, потому что хост не понимает мой дескриптор устройства. Сам дескриптор передается, но, видимо, не хватает какого-то подтверждения (пакета 0-й длины от хоста, наверное). Поэтому хост 3 раза повторяет попытки получить дескриптор и прекращает это делать.

Первый раз слышу про сниффер. Не расскажите поподробнее, что это и где его взять?
Спасибо.
Go to the top of the page
 
+Quote Post



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

 


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


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