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

OHCI Interrupt handle

Приветствую. Пришла пора поразбираться с OHCI USB портом процессора Allwinner, сделал инициализацию, control-запросы, энумерацию...

В результате при подключении обычной проводной мыши происходит ее определение, чтение HID репорта и начало работы с interrupt ED

Вот тут моя соображалка перестает нормально работать, ибо так и не понял, что не так.

Делаю, инит новой ED.  ED0 - была создана для контрол-запросов,   ED1 - для interrupt, создаю для нее новый TD, а адрес ED1 записываю первым в массив HCCA.

ohci_hcca->int_table[0]=(uint32_t)usbhMouse->ohci_Ep1 ;
 

Что еще нужно сделать, чтоб оно заработало?

создаю для нее новый TD

usbhMouse->OHtd_HID = usbh_OHtd_init();

    usbhMouse->OHtd_HID->hwINFO = TD_DP_IN|TD_T_DATA0|TD_R|TD_DI;//0x03540000L;
    usbhMouse->OHtd_HID->hwCBP = (uint32_t)usbhMouse->usbhMouseData;
    usbhMouse->OHtd_HID->hwNextTD = 0;
    usbhMouse->OHtd_HID->hwBE = ((uint32_t)usbhMouse->usbhMouseData)+(usbhMouse->int_transfer_size-1); //In  bytes

 

В параметрах адресации  ED1 прописываю:

    usbhMouse->ohci_Ep1->hwHeadP = usbhMouse->OHtd_HID;
    usbhMouse->ohci_Ep1->hwTailP = usbhMouse->OHtd_HID;
    usbhMouse->ohci_Ep1->hwNextED = 0;

 

Может у кого есть-какие-то примеры работы с interrupt на OHCI, был бы очень рад)))

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

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


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

Вообщем пока ни к чему не привело, поэкспериментировал с регистрами интервалов, ибо где ни смотрел, все магические цифры и у всех разные. В результате при первом движении мыши выдается 1 раз ответ и потом молчит, может там какой флаг сбросить надо, в контроллере от IMX надо было реинициализировать TD, но тут такого флага нет, вообщем х.з.  нигде толком не объяснено, печально...

А исходники словно маньяки пишут, мильон оберток и структур((

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


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

В 28.01.2023 в 12:59, mantech сказал:

Вообщем пока ни к чему не привело,

Интересно, видимо никто с усб связываться не хочет...  

В любом случае проблема решена - надо просто внимательнее читать доки, или как там раньше - RTFM))) - нужно было просто восстанавливать дескрипторы конечной точки после получения пакета данных.

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

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


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

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

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

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

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

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

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

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

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

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