Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Хелп ми! Помогите разобраться с USB плиз!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Artem
Доброго времени суток! Подскажите, где можно найти простой примерчик работы с USB с прерываниями. Может кто - нибудь поделится своей разработкой для примера? Смотрел USB MassStorage от атмела, но там всё как-то сложно. Пример BasicUSB пробовал. Хочется посмотреть как работать через прерывания.. Заранее огромное спасибо!
ig_z
Цитата(Artem @ Sep 26 2006, 13:01) *
Доброго времени суток! Подскажите, где можно найти простой примерчик работы с USB с прерываниями. Может кто - нибудь поделится своей разработкой для примера? Смотрел USB MassStorage от атмела, но там всё как-то сложно. Пример BasicUSB пробовал. Хочется посмотреть как работать через прерывания.. Заранее огромное спасибо!


Посмотри фри ртос. Там есть примеры работы с юсб, но не уверен, что они намного проще, чем USB MassStorage от атмела.
Кроме того полностью по прерываниям работать не получится, т.к. есть флаги, не генерящие прерывания.
nameless
Ткните носом: где во фриртосе конфигурируются UDP_IER и UDP_IMR до прерывания.
Axel
Можно посмотреть USB примеры для STR710. Там, вроде, все присутствует.
nameless
Дык причем здесь STR? Большинство присутствующих (как я понял) пилит атмеловские камни.....
Костян
Попробуйте заглянуть в Агуров "Интерфейс USB" . Эл вариант тута
http://lord-n.narod.ru/walla.html
сложновато пишет , зато на атмелах примеры
listener
Цитата(Artem @ Sep 26 2006, 14:01) *
Доброго времени суток! Подскажите, где можно найти простой примерчик работы с USB с прерываниями. Может кто - нибудь поделится своей разработкой для примера? Смотрел USB MassStorage от атмела, но там всё как-то сложно. Пример BasicUSB пробовал. Хочется посмотреть как работать через прерывания.. Заранее огромное спасибо!


Смотрел я этот mass storage. Резюме: нужно либо разбираться в нем, либо с нуля (если есть неплохое понимание, как работает USB). Все остальное - вряд ли будет проще. Код там достаточно прозрачен и прилично откомментирован. Чтобы не выглядело так ужасно - рекомендуется его нормально отформатировать и, возможно, переименовать особо страшные функции.

Начинать с fw_task.c, приводить fw_isr в читабельный вид, по ходу залезая в остальные файлы.

Еще раз: проще вряд ли что-то будет. 70КБ комментированного текста - это близко к минимуму.
listener
Цитата(Костян @ Sep 28 2006, 22:02) *
Попробуйте заглянуть в Агуров "Интерфейс USB" . Эл вариант тута
http://lord-n.narod.ru/walla.html
сложновато пишет , зато на атмелах примеры


Атмел, да не тот - там говорится про AT89C5131 - 8-ми битный, x51-based. Здесь же, если я ничего не путаю, речь идет про AT91SAM7.

И вообще, книжка странная. Для начинающего она слишком сложна. Для человека с опытом - практически бесполезна.
Artem
Странноватая конечно, но хорошо, что хоть такая появилась по USB. Плохо в ней только одно: в ней рассказывается как написать под DriverStudio c её классами. Но как я понял - лучше писать с ивспользованием DDK. Я вроде с написанием драйвера разобрался, теперь буду мучить AT91SAM7S64.. Хочу весь проект сделать сам, от программы для девайса до программы для PC и драйвер USB. Вот и хочется посмотреть как правильно работать с USB со стороны девайса. Со стороны хоста представление уже имею. Если кто-то ещё хочет разобраться - предлагаю попробовать вместе. Как говориться две головы -лучше.
listener
Я начинал разбираться с USB четыре года назад. Инфы тогда не было никакой, кроме, собственно, стандарта и пары примеров. До всего приходилось доходить самому. Собственный USB-стэк для связки ATmega+PDIUSBD12 я писал два месяца. Пока писал - разобрался досконально. После этого, написал собственный стэк для MC68HC908JB8 за вечер.

После этого, книжка (что первая, что вторая) - для меня не содержит ничего нового. Я, правда, себе их прикупил - как справочник, чтобы в MSDN лишний раз не лазить.

С драйверами - все просто. В минимальном варианте, берется пример bulk из ddk, для него генерится свой guid и, возможно, указывается размер буфера побольше. Если драйвер не содержит собственной логики - этого достаточно. Работа из программы - тоже проста: самое сложное - получить имя устройства (но для этого есть стандартный пример), а дальше - CreateFile, ReadFile, WriteFile...

C ARM-ами я еще толком не работал. Серьезные разборки у меня намечаются в ближайшем времени, но не с SAM7, а с LPC2148.

Если будут вопросы по протоколу/реализации chapter9 на клиенте - попробую ответить.
Artem
А про какую вторую вы говорите? Первая как я понимаю Агуров "Интерфейс USB"? ,а какая вторая?
Костян
Цитата(Artem @ Sep 29 2006, 02:55) *
А про какую вторую вы говорите? Первая как я понимаю Агуров "Интерфейс USB"? ,а какая вторая?

Вторая видимо того же автора , но "Практика программирования USB". Является логическим продолжением первой и содержит примеры на Си , C Builder, Delphi

Цитата
Атмел, да не тот - там говорится про AT89C5131 - 8-ми битный, x51-based. Здесь же, если я ничего не путаю, речь идет про AT91SAM7.

Все верно , но в ней разобрана теория USB и высокоуровневое программирование под PC.
nameless
А где брать исходники mass storage ???
grau
Цитата(nameless @ Sep 29 2006, 17:06) *
А где брать исходники mass storage ???


Можно зайти на сайт Philips. Там в примерах лежит мышка в исходниках. И у Keil то же пара примеров есть..
aaarrr
Цитата(nameless @ Sep 29 2006, 17:06) *
А где брать исходники mass storage ???

На местном ftp, например: /pub/MCs/_ARM_/mass_storage
listener
Костян
Насчет теории - согласен. А вот с практикой у автора - скорее всего, плоховато. Есть несколько вещей, которые неочевидны (reset после первого пакета device descriptor, два разных запроса config descriptor). После того, как напишешь реализацию ch9, о них очень хорошо помнишь и, объясняя кому-то, обращаешь на них особое внимание. У Агурова этого нет. Более того, там нет даже лога энумерации устройства - который на определенном этапе очень полезен. Такое ощущение, что был взят какой-то референсный пример, откомментирован и не больше.

nameless
http://www.atmel.com/dyn/products/product_...sp?part_id=3521
Ссылка где-то в середине страницы, для скачивания исходников - нужно формочку заполнить.

grau
Для LPC2148 - примеров полно. Есть мышка, есть звуковуха, есть mass storage. Для SAM7 - ситуация другая: есть атмеловский mass storage, есть два BasicUSB (CDC и HID, кажется). И все. Разобраться хватит, но халявы не выйдет.
Artem
И ещё один вопросик: А кам можно симулировать работу USB порта в кейле? Видел где -то симуляцию I2C. А на USB такого нет?

А то UDP даже в симуляторе нету. Как быть? Надо хотя-бы энумерацию отладить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.