Перейти к содержанию
    

USB падает

Добрый день...

Немного продвинулся вперед, запуская USB OHCI на платке AT91SAM9G45. Я добился начала обмена с LS устройством, но только "начала"...

Помогите протолкнуть обмен дальше, пожалста.

На данный момент обмен выглядит так:

- хост посылает запрос устройству GET_DESCRIPTOR_DEVICE (посылка видна на осциллографе), с запросом 0x40 байт данных.

- устройство начинает отвечть на запрос...

- пакет ответа "от устройства" прекращается примерно на трети от номинальной длины. (сравнивал с нормальным ответом)

- в программе заполняется только 8 байт данных в буфере, не смотря на то что функцияя чтения вернула длину буфера 0х40. Буфер выглядит криво:

 

usb_get_descriptor() = 0x40

0x00]:   12  01  10  01
0x04]:   00  00  00  08
0x08]:   CD  CD  CD  CD
0x0C]:   CD  CD  CD  CD
0x10]:   CD  CD  CD  CD
0x14]:   CD  CD  CD  CD
0x18]:   CD  CD  CD  CD
0x1C]:   CD  CD  CD  CD
0x20]:   CD  CD  CD  CD
0x24]:   CD  CD  CD  CD
0x28]:   CD  CD  CD  CD
0x2C]:   CD  CD  CD  CD
0x30]:   CD  CD  CD  CD
0x34]:   CD  CD  CD  CD
0x38]:   CD  CD  CD  CD
0x3C]:   CD  CD  CD  CD

 

пробовал увеличивать значения в поле HcFmInterval и даже в HcLSThreshold... безрезультатно... =(

 

Кто знает USB, помогите, пожалста...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного продвинулся вперед, запуская USB OHCI ...

 

Так у вас OHCI или EHCI ?

Если первое, то могу помочь только одним - дать рабочий проект для AT91SAM9XE512 на условиях нераспространения. А еще могу сказать, что писал его прошлой весной, и деталей не помню. Помню только, что повозиться пришлось изрядно, и спецификация OHCI была зачитана чуть ли не до дыр.

Если второе, то помочь не смогу ничем. Не делал я EHCI ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так у вас OHCI или EHCI ?

Если первое, то могу помочь только одним - дать рабочий проект для AT91SAM9XE512 на условиях нераспространения. А еще могу сказать, что писал его прошлой весной, и деталей не помню. Помню только, что повозиться пришлось изрядно, и спецификация OHCI была зачитана чуть ли не до дыр.

Если второе, то помочь не смогу ничем. Не делал я EHCI ...

 

Здравствуйте. Если можно поделитесь кодом вашего проекта для AT91SAM9XE512. Прикручиваю u-boot'овский OHCI к AT91RM9200. Также используется хаб TUSB2046B. Хост не видит устройства

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Также используется хаб TUSB2046B. Хост не видит устройства

 

У меня ПО, обслуживающее хост, через хаб не работает. Просто не надо было поддерживать работу через хаб. Если просто подключить к хосту, например, мышь, то все гут. А если через хаб - мое ПО на это не рассчитано. Работа с хабом - это отдельная история ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

насколько я понял этот хаб прозрачен с программной точки зрения

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Прикручиваю u-boot'овский OHCI...

Здоровски... вот и я прикручиваю u-boot-овский драйвер... у меня тоже сначала устройства не виделись... оказалось, частоты не приходили на USB-периферию. а когда стал подавать частоты, то корневой хаб определял подключение устройств, но не слал посылки... оказалось, частота тактирования была слишком высокой...

 

Так у вас OHCI или EHCI ?

Если первое, то могу помочь только одним

2 Kovigor: на EHCI забил. пока хватает и OHCI... на ваши примеры очень хотелось бы посмотреть =) а проект ваш на чем написан?

Изменено пользователем Chestor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На Си, конечно же ...

=))) дык я ж среду имел ввиду... IAR, Kdevelop для GCC, Kail, мож еще чего...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

=))) дык я ж среду имел ввиду... IAR, Kdevelop для GCC, Kail, мож еще чего...

 

Keil. Отправлю минут через 15 ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, перекопал код... Клавиатура отвечает нормально, все как положено, оказывается... ей больше 8 байт можно и не отвечать по правилам...

А вот после запроса дескриптора от клавиатуры идет ресет порта корневого хаба, на котором висит клава... и вот как раз корневой хаб уже отказывается ресетить порт... бред какой-то... 0_o

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...