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

at91sam9g45 usb host ehci

Работал ли кто-нибудь с USB-host-EHCI HS на контроллере AT91SAM9G45... Не могу нацти никких примеров, не говоря уже о драйверах (без линукса). На сайте у Атмела, как ни странно) нет никаких примеров работы с ним. Помогите ссылками, примерами, кто может!

 

Спасибо за ответы...

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

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


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

Работал ли кто-нибудь с USB-host-EHCI HS на контроллере AT91SAM9G45... Не могу нацти никких примеров, не говоря уже о драйверах (без линукса). На сайте у Атмела, как ни странно) нет никаких примеров работы с ним. Помогите ссылками, примерами, кто может!

 

С EHCI не работал. Решал похожую задучу для AT91SAM9XE512, но там OHCI. В сети удалось найти крайне упрощенный и по сути нерабочий пример для его инициализации (не полноценной работы !). А дальше - стандартный путь: штудирование документации на МК и спецификации OHCI, масса экспериментов и проч. Ну, вы и сами знаете. Месяца за 2 управился. Другого пути нет. Попробуйте найти примеры если не на этот МК, то на любой МК с EHCI. Совсем с нуля написать можно, но слишком тяжело ...

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


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

http://research.microsoft.com/en-us/um/red...ehci/ehci.c.htm

Это первый попавшийся пример.

Их - туча.

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


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

Это первый попавшийся пример.

Их - туча.

 

Оно-то так, в теории. А на практике выходит иначе. Совсем иначе. Пример из жизни. Есть проект на ISP1160. Это такой двухпортовый хост (OHCI). Все прекрасно работает, отлажено и проблем не вызывает. И тут потребовалось этот проект портировать на AT91SAM9XE512. Там тоже OHCI. И даже регистры многие совпадают. И вот я, наивный, решил, что за пару дней справлюсь. Ага, именно так и было. Только в моем воображении. На самом деле портирование заняло несколько месяцев, а эти самые OHCI и масса сопутствующей требухи в обоих случаях различались, как небо и земля. Я не пессимист, скорее я хорошо информированный реалист. А описанный мной случай произошел не далее как прошлой весной. Так что пусть автор вопроса не строит иллюзий, а настраивается на серьезный и упорный труд ...

 

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


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

...Это первый попавшийся пример...

Спасибо, конечно, но на чем это написано и что дальше делать с кучей функций, названия которых говорят о чем-то важном, но ни о чем конктретном - не понятно...

...Таких куча...

А мне почему-то попадаются только примеры для линукса atmel-ehci.c со всевозможными патчами. Может, я чё не там ищу? Подскажите, где вы видели КУЧУ примеров, покопаюсь там?... =)

 

 

 

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


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

Че-то не понял. Какая разница, под линукс, винды или еще чего.

Что OHCI, что EHCI - это работа с набором регистров относительно базового адреса.

Всего одно аппаратно-зависимое число - базовый адрес.

 

Все остальное у всех одинаково.

 

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

 

Как организуется взаимодействие подсистем - это уж на ваш личный вкус. Хоть многозадачность, хоть как. Без разницы.

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

 

 

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


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

Заходите на сайт u-boot'a (ftp://ftp.denx.de/pub/u-boot/). Там есть реализация EHCI. OHCI оттуда я приспособил к at91rm9200 за пару недель.

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


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

Какая разница, под линукс, винды или еще чего.

Что OHCI, что EHCI - это работа с набором регистров относительно базового адреса.

Для мастера кодов разницы, возможно, и никакой... Для меня же, как для новичка, разница ОГРОМНА!.. У нифицированный Линуксовый код перегружен всяческими универсальными функциями, определения которых разбросаны по всему дереву исходников и подключаются множеством make-файлов. Выуживать из такой паутины через третье поколение переопределенный define не очень-то просто. Другое дело исходники, приспособленные для конкретного процессора: всё в одной кучке и ничего лишнего.

 

Всего одно аппаратно-зависимое число - базовый адрес.

Да, Но набор регистров разный вообще. В IAR есть описания для OHCI на at91sam9g45, но сам порт в режиме OHCI не функционирует (официальная Errata). Описания EHCI есть, но они не живут. Примеров нет ни под что.

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


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

так каким же путем идти? нужен Mass Storage на sam9xe512. пробовал за основу ohci от lpc17xx - проц виснет вместе с отладчиком в инициализации после

    /* Put HC in operational state                */
    AT91C_BASE_UHP->UHP_HcControl = (AT91C_BASE_UHP->UHP_HcControl
            & (~OR_CONTROL_HCFS)) | OR_CONTROL_HC_OPER;

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


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

так каким же путем идти? нужен Mass Storage на sam9xe512.

 

Там OHCI, а не EHCI. варианта два. Первый - ставить ОС, например, Linux. Второй - делать все самому, зачитав до дыр спецификацию OHCI и еще много другой литературы. Mass Storage я лично не делал, но делал на этом МК ПО для поддержки мыши и клавиатуры. могу сказать, что это не самая простая на свете задача, но при желании и настойчивости вполне разрешимая ...

 

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


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

Для меня же, как для новичка, разница ОГРОМНА!.. У нифицированный Линуксовый код перегружен всяческими универсальными функциями, определения которых разбросаны по всему дереву исходников и подключаются множеством make-файлов. Выуживать из такой паутины через третье поколение переопределенный define не очень-то просто.

 

Для навигации по коду больших проектов есть утилиты, облегчающие жизнь, в частности c вебинтерфейсом LXR, например тут

 

 

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


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

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

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

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

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

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

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

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

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

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