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

 
 
> Проблема с enumeration при подключенииЕсть RTL-код USB функции, зашиваемый в FPGA, при подключении к хосту начинается процесс енумерации. USB-функции
kornukhin
сообщение Nov 21 2007, 11:17
Сообщение #1





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



Есть RTL-код USB функции, зашиваемый в FPGA, при подключении к хосту начинается процесс енумерации.
Выполняется следующая последовательность:
1. setup-data0(get_descriptor)-ack
2. in-data1-ack
3. out-data1(null packet)-ack
4. reset line
5. setup-data0(set_address)-ack
6. in-data1(null packet)-ack
7. setup(по присвоенному адресу 0x3)-data0(get_descriptor)-ack

На следующем шаге начинаются проблемы
8. in(address-0x3)-data1 - ...
Хост не отвечает подтверждением на отправленный ему дескриптор.
Смотрел на осциллографе - пакет правильный, PID на месте, CRC сходится, межпакетный интервал - тоже.
При этом, если вместо дескриптора отправить ему нулевой пакет данных, то подтверждение появится и перейдем к шагу 9.

9. out-data1(null packet)-ack

Из этого возникают следующие вопросы:
1. точно ли в п.8 нужно отправлять дескриптор
2. зачем хост отвечает подтверждением на нулевой пакет и продолжает процесс енумерации, если требовал дескриптор
3. зачем вообще нужно два раза отправлять дескриптор?

Ответьте, пожалуйста, если кто-нибудь сталкивался с чем-нибудь подобным или знает в чем тут дело.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vmp
сообщение Nov 21 2007, 11:33
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Есть логи энумерации флешки, снятые аппаратным анализатором. Один из них - под w98se на full speed (с каким-то универсальным драйвером), второй - на XPsp1 на high speed. Прикладываю их к сообщению - вдруг поможет.
Прикрепленный файл  LOGW.ZIP ( 30.18 килобайт ) Кол-во скачиваний: 178
Go to the top of the page
 
+Quote Post
kornukhin
сообщение Nov 21 2007, 16:12
Сообщение #3





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



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

Packet id<IN> devAddr<1> epNum<0> crc5<0x1D> speed<HS> time<4.406
554 267>
Packet id<DATA1> length<18> data<12 01 00 02 00 00 00 40 05 10 13
B1 00 01 01 02 03 01> crc16<0x38CC> speed<HS> time<4.406 554 600>

Packet id<ACK> speed<HS> time<4.406 555 317> - отсутствует
Go to the top of the page
 
+Quote Post



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

 


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


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