ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
28870
Саня (15.05.2005 00:59, просмотров: 2692)
Люди добрые, помогите начинающему с USB ... Проблема: не могу заставить систему опознать мое устройство. Выскакивает окно "Обнаружено новое USB устройство" и все. Не появляется строковое описание моего устройства, не предлагается установить драйвер. По завершении процесса в системе появляется неработающее USB-устройство и все. MCU - C8051F320. Вот отладочный листинг (все числа шестнадцатиричные): USB Reset 1.Запрос дескриптора устройтства EP0 request. E0CSR = 01. Packet: 80 06 00 01 00 00 40 00 STD IN request GET_DESCRIPTOR. Descriptor : 01 TX from EP0. Bytes: 12. FIFO write: uNumBytes = 12 12 01 10 01 00 00 00 20 C4 33 01 00 00 01 01 02 03 01 ************************ EP0 request. E0CSR = 00. ************************ 2. Сброс USB USB Reset 3. Назначение устройству нового адреса. EP0 request. E0CSR = 01. Packet: 00 05 03 00 00 00 00 00 STD OUT request SET_ADDRESS. Address: 03 ************************ EP0 request. E0CSR = 10. Setup End ************************ 4. Запрос дескриптора устройства. EP0 request. E0CSR = 01. Packet: 80 06 00 01 00 00 12 00 STD IN request GET_DESCRIPTOR. Descriptor : 01 TX from EP0. Bytes: 12. FIFO write: uNumBytes = 12 12 01 10 01 00 00 00 20 C4 33 01 00 00 01 01 02 03 01 ************************ 5. Запрос дескриптора устройства длиной 9 байт. EP0 request. E0CSR = 01. Packet: 80 06 00 02 00 00 09 00 STD IN request GET_DESCRIPTOR. Descriptor : 02 TX from EP0. Bytes: 09. FIFO write: uNumBytes = 09 09 02 20 00 01 01 00 80 32 ************************ EP0 request. E0CSR = 00. ************************ 6. Запрос стокового дескриптора с индексом 0. Возвращается идентификатор языка (0409h - английский) EP0 request. E0CSR = 01. Packet: 80 06 00 03 00 00 FF 00 STD IN request GET_DESCRIPTOR. Descriptor : 03 TX from EP0. Bytes: 04. FIFO write: uNumBytes = 04 04 03 09 04 ************************ EP0 request. E0CSR = 00. ************************ 7. Запрос строкового дескриптора с индесом 3 - версия устройства Язык строки - английский EP0 request. E0CSR = 01. Packet: 80 06 03 03 09 04 FF 00 STD IN request GET_DESCRIPTOR. Descriptor : 03 TX from EP0. Bytes: 0A. FIFO write: uNumBytes = 0A 0A 03 31 00 2E 00 30 00 31 00 ************************ EP0 request. E0CSR = 00. ************************ 8. Запрос дескриптора конфигурации, интерфейса и конечных точек Передаются 32 байта дескрипторов. EP0 request. E0CSR = 01. Packet: 80 06 00 02 00 00 FF 00 STD IN request GET_DESCRIPTOR. Descriptor : 02 TX from EP0. Bytes: 20. FIFO write: uNumBytes = 20 09 02 20 00 01 01 00 80 32 09 04 00 00 02 00 00 00 00 07 05 02 02 40 00 00 07 05 82 02 40 00 00 ************************ EP0 request. E0CSR = 04. Sent stall ************************ USB Reset Все, облом. Все повторяется еще 2 раза, после чего в системе появляетя неработающее устройство. Как я понял, какая-то ошибка в дескрипторе. Но все перепроверял, вроде правильно?