Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB падает
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Chestor
Добрый день...
Немного продвинулся вперед, запуская 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, помогите, пожалста...
kovigor
Цитата(Chestor @ Apr 21 2011, 12:07) *
Немного продвинулся вперед, запуская USB OHCI ...


Так у вас OHCI или EHCI ?
Если первое, то могу помочь только одним - дать рабочий проект для AT91SAM9XE512 на условиях нераспространения. А еще могу сказать, что писал его прошлой весной, и деталей не помню. Помню только, что повозиться пришлось изрядно, и спецификация OHCI была зачитана чуть ли не до дыр.
Если второе, то помочь не смогу ничем. Не делал я EHCI ...
freeman_
Цитата(kovigor @ Apr 21 2011, 13:12) *
Так у вас OHCI или EHCI ?
Если первое, то могу помочь только одним - дать рабочий проект для AT91SAM9XE512 на условиях нераспространения. А еще могу сказать, что писал его прошлой весной, и деталей не помню. Помню только, что повозиться пришлось изрядно, и спецификация OHCI была зачитана чуть ли не до дыр.
Если второе, то помочь не смогу ничем. Не делал я EHCI ...


Здравствуйте. Если можно поделитесь кодом вашего проекта для AT91SAM9XE512. Прикручиваю u-boot'овский OHCI к AT91RM9200. Также используется хаб TUSB2046B. Хост не видит устройства
kovigor
Цитата(freeman_ @ Apr 21 2011, 12:31) *
Также используется хаб TUSB2046B. Хост не видит устройства


У меня ПО, обслуживающее хост, через хаб не работает. Просто не надо было поддерживать работу через хаб. Если просто подключить к хосту, например, мышь, то все гут. А если через хаб - мое ПО на это не рассчитано. Работа с хабом - это отдельная история ...
freeman_
насколько я понял этот хаб прозрачен с программной точки зрения
kovigor
Цитата(freeman_ @ Apr 21 2011, 13:07) *
насколько я понял этот хаб прозрачен с программной точки зрения


Нет. При попытке энумерации устройства на порту (через хаб) вы получите дескриптор хаба, а не дескриптор подключенного через этот хаб устройства. И тут начнется самое интересное ...
Chestor
Цитата(freeman_ @ Apr 21 2011, 13:31) *
...Прикручиваю u-boot'овский OHCI...

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

Цитата(Kovigir)
Так у вас OHCI или EHCI ?
Если первое, то могу помочь только одним

2 Kovigor: на EHCI забил. пока хватает и OHCI... на ваши примеры очень хотелось бы посмотреть =) а проект ваш на чем написан?
kovigor
Цитата(Chestor @ Apr 21 2011, 14:05) *
а проект ваш на чем написан?


На Си, конечно же ...
Chestor
Цитата(kovigor @ Apr 21 2011, 15:28) *
На Си, конечно же ...

=))) дык я ж среду имел ввиду... IAR, Kdevelop для GCC, Kail, мож еще чего...
kovigor
Цитата(Chestor @ Apr 21 2011, 16:05) *
=))) дык я ж среду имел ввиду... IAR, Kdevelop для GCC, Kail, мож еще чего...


Keil. Отправлю минут через 15 ...
Chestor
Кстати, перекопал код... Клавиатура отвечает нормально, все как положено, оказывается... ей больше 8 байт можно и не отвечать по правилам...
А вот после запроса дескриптора от клавиатуры идет ресет порта корневого хаба, на котором висит клава... и вот как раз корневой хаб уже отказывается ресетить порт... бред какой-то... 0_o
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.