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

Кому-нибудь удалось запустить на AT91sam7sxxx пример usb-device-composite-cdchid-project?

Кому-нибудь удалось запустить на AT91sam7sxxx пример usb-device-composite-cdchid-project? У меня даже прекомпилированный из пакета с примерами не опознаётся... (cdc в одиночестве нормально видится).

После некоторгого колчестав возни сделал общее дерево исходников для конфигураций

 

#CHIP  = at91sam9xe512
#BOARD = at91sam9xe-ek

CHIP  = at91sam7s64
BOARD = at91sam7s-ek

 

на evaluation board с at91sam9xe512 оба устройства опознаются нормально, на плате с at91sam7s64 процесс не доходит до конца - и USB composite device висит с вопросиком.

 

Это у меня криво или играет роль та самая ошибка в usb framework про недосылку нулевого пакета после кратного длине допустимого для EP пакета?

Есть ли поправленный вариант usb framework?

Одиночное устройство CDC, композитное usb-device-audio-looprec-project работают нормально.

 

Да, уточняю - используется AT91LIB version 1.9 (11 MB, revision 1.9, updated 12/08) из файла at91lib_20100901_softpack_1_9_v_1_0_svn_v15011

С версией 1.5 не отличается.

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

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


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

Я бы скачал Bushound и посмотрел, где именно сбивается энумерация. Вообще, от бесплатных примеров трудно ожидать корректной работы. Их всегда приходится разбирать до винтика и исправлять по ходу кучу разных мелких и не совсем мелких недоработок ...

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

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


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

Я бы скачал Bushound и посмотрел, где именно сбивается энумерация. Вообще, от бесплатных примеров трудно ожидать корректной работы. Их всегда приходится разбирать до винтика и исправлять по ходу кучу разных мелких и не совсем мелких недоработок ...

USBlyzer в своём логе сообщает о неудачном завершении вызовов SelectConfiguration. На плате с AT91SAM9XE512 нормально.

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


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

USBlyzer в своём логе сообщает о неудачном завершении вызовов SelectConfiguration. На плате с AT91SAM9XE512 нормально.

 

Лог - это хорошо. Но этого мало. Bushound показывает содержимое пакетов, а не просто лог ...

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


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

Лог - это хорошо. Но этого мало. Bushound показывает содержимое пакетов, а не просто лог ...

у SelectConfiguration содержимое пакета? Это же не ответ на GetDescriptor... Для последней можно посмотреть хоть raw, хоть интерпретированное.

 

У кого-нибудбь с родной (atmel) evaluation board с AT91SAM7Sxxx этот пример заработал нормально? Чтобы знать - это аппаратура или программа?

 

В ответ на запрос от хоста setconfig устройство удивляется - ещё не закончилась передача сегментированного блока (состояние в программе UDP_ENDPOINT_SENDINGM).

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


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

Посмотрите, правильно ли я понял - при наличии в контроллере USB четырёх endpoint не может быть значение bEndpointAddress

больше 3?

 

"в наглую" поменяв все номера ендпоинтов, превышавшие 3 на то число дало нормально опознающийся (и, даже, функционирующий в части CDC) комплект устройств...

Попутно, было вычищено пара мест (использование неинициализированого массива указателей в SetConfiguration (USBDDriver.c) - там же авторы пердусмотрели "запасной" элемент, но не предусмотрели контрль индексов при адресации к массиву endpoints. Контроль выявил место ошибки.

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

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


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

Посмотрите, правильно ли я понял - при наличии в контроллере USB четырёх endpoint не может быть значение bEndpointAddress

больше 3?

 

"в наглую" поменяв все номера ендпоинтов, превышавшие 3 на то число дало нормально опознающийся (и, даже, функционирующий в части CDC) комплект устройств...

Попутно, было вычищено пара мест (использование неинициализированого массива указателей в SetConfiguration (USBDDriver.c) - там же авторы пердусмотрели "запасной" элемент, но не предусмотрели контрль индексов при адресации к массиву endpoints. Контроль выявил место ошибки.

 

Хорошо хоть у вас в наличие есть другие МК, т.к. на этом (SAM7S) вы обречены на неудачу получить из представленных примеров работающий Composit(Compound) устройство [CENSORED]! Вы абсолютно правы, беда с EP (end point), их просто физически МАЛО, всего-то 4 (включая 0-ой) [CENSORED]!!! Как так можно было поиздеваться над пользователями :( Для нормальной работы CDC+HID надо 6 (включая 0-ой)! Я тоже, наткнулся на эту проблему, когда понадобилось композитное устройство (только в моем случае CDC+MSD), потратил пару часов пока со всем разобрался... Просто код они попытались написать универсальный (в частности для конфигурации EP), но допустили ошибку для SAM7S, даже каким-нить #define-ом не учли (хотя такой и есть в board.h) сколько EP есть а сколько надо (и могли бы выдать хотя бы ошибку компиляции)!

 

Физически, по идее, получить композитное устройство не получиться для SAM7S! Но, можно получить "комбинированное" :))) Правда все зависит от требований к проекту... Т.е. можно сначала проинициализировать одно, скажем MSD (чтобы, к примеру, взять из него inf файлик для CDC устройства и еще какой нужный софт или данные), затем его остановить + сбросить шину (для этого надо транзистор на подтягивающем резисторе, ну или хотя бы переключатель :)), а в конечном итоге проинициализировать второе, скажем CDC (для рассматриваемого примера) - И СЕ, работаем!!! (вот так вот пару месяцев назад мне и пришлось выходить из "положения"! аллах ахбар там хоть не требовалась постоянная работа Флэшки(MSD)) :)))

Изменено пользователем IgorKossak
Поменьше эмоций

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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