Jump to content

    
Sign in to follow this  
Silentor

Помогите найти USB устройство

Recommended Posts

Подскажите, куда покопать?

 

Так хочется увидеть хоть какой-нибудь обмен. Настроил ISP1581 по примеру Филлипсовских примеров, класс устройства 0. При подключении к компу, появляется - Устройство USB не опознано и т.д. В Диспетчере Устройств - Неизвестное Устройство, VID/PID = 0. Хочу посмотреть хоть какой-то обмен. Скачал триал USB Monitor, запускаю, настраиваю на захват следующего подключенного устройства. Подключаю девайс, Винда видит неизвестное устройство, но в USB Monitorе оно никак не появляется, захват не начинается. Хочется увидеть хотя бы запрос Device Descriptor в пустоту.

 

Что править?

Share this post


Link to post
Share on other sites
Подскажите, куда покопать?

 

Так хочется увидеть хоть какой-нибудь обмен. Настроил ISP1581 по примеру Филлипсовских примеров, класс устройства 0. При подключении к компу, появляется - Устройство USB не опознано и т.д. В Диспетчере Устройств - Неизвестное Устройство, VID/PID = 0. Хочу посмотреть хоть какой-то обмен. Скачал триал USB Monitor, запускаю, настраиваю на захват следующего подключенного устройства. Подключаю девайс, Винда видит неизвестное устройство, но в USB Monitorе оно никак не появляется, захват не начинается. Хочется увидеть хотя бы запрос Device Descriptor в пустоту.

 

Что править?

 

 

Скорее всего дескрипторы. У MicroSoft'a есть утилита USBView (бесплатно), которая позволяет посмотреть на процесс нумерации устройства даже, если оно нумеруется с ошибками. Сравнивая то, что показывает USBView с тем, что должно быть можно определить, что передается неправильно. Мне так удалось быстро начать работу со своим устройством.

Share this post


Link to post
Share on other sites

Присоединяюсь к предыдущему мнению, но есть еще вариант - устройство вообще не работает. Для того, чтобы получить VID/PID=0 достаточно D+ подтянуть к + и больше ничего не делать.

Share this post


Link to post
Share on other sites

Продолжаю битву с ISP1581. Документация не фонтан. Есть 3 вопроса к юзавшим этот контроллер:

1)Как все таки работать с многобайтовыми регистрами? Так, как в примерах Филлипса? Т.е:

isp1581Regs.INT_ENABLE.value = 0x04030201;

которая скомпилится в что-то вроде

по адресу 0x14 пишем 0x04

по адресу 0x15 пишем 0x03

по адресу 0x16 пишем 0x02

по адресу 0x17 пишем 0x01

 

или же байты регистра пишутся по одному и тому же адресу? Очень уж неясно описано в datasheet'е.

 

2)Читал я на каком то форуме, что этот контроллер некорректно работает с прерываниями. Вот я для примера балуюсь с регистром INT_ENABLE, который позволяет разрешать отдельные прерывания. По умолчанию там все нули, т.е. все источники прерываний запрещены. Но когда втыкаю разьем, проскакивает 2 прерывания, похоже Bus Reset. Снятие флага общего разрешения прерываний затыкает намертво, как и должно быть. Получается, что прерываниям ISP1581 нельзя доверять?

 

3)Ведь 2хбайтовые поля Device Request приходят младшим байтом вперед?

 

ЗЫ. Кому не жалко, пришлите кусок рабочего кода с реализацией хотя бы GetDescriptor запроса под AT89 проц (с приёмом Device Request, анализом его полей) :help:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this