Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Составное USB устройство (клавиатура + mass storage) нужна помощь. AT32UC3A3
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
yura_lvk
Пытаюсь создать такое устройство на базе платы EVK1104 c AT32UC2A3256. Признаюсь, что опыта у меня в этом деле совсем мало, но к делу. Пользуюсь AVR Studio 5.1, из ASF взял в качестве образца проект HID(KBD)+MSC для EVK1101. Чуть-чуть изменил проект под 1104, поставил поддержку USB_DEVICE_HS_SUPPORT, для простоты выкинул оттуда SPI и включил компонент VIRTUAL_MEM. Проблема возникла уже на стадии опознания устройства. Не могу понять в чем дело. Прошу тех у кого есть время и желание помочь посмотреть приложенный doc (там картинки из Elisys Visual USB и дополнительные подробности). Заранее всем спасибо.
kovigor
Цитата(yura_lvk @ Jul 9 2012, 16:59) *
Чуть-чуть изменил проект под 1104


Вот на этом остановитесь. Если считаете, что SPI не относится к проекту - уберите ее. Но не более того. Вы, похоже, что-то с дескрипторами напутали ...
Возьмите любой другой готовый проект USB для этой платы. Он тоже так себя ведет ?
yura_lvk
Готового проекта с составным устройством под данную плату в ASF, к сожалению, нет. Но примеры с mass-storage, клавиатурой и мышью, собираются, зашиваются и работают как положено и подобных проблем не возникает. Вот только клавиатура и мышь в примерах работают в Full-Speed. У меня тут пробел: не знаю может ли клавиатура в состаном устройстве поддерживать High-Speed?
kovigor
Цитата(yura_lvk @ Jul 9 2012, 20:42) *
У меня тут пробел: не знаю может ли клавиатура в состаном устройстве поддерживать High-Speed?


Да, клавиатура (и вообще любое HID - устройство) может работать на LS/FS/HS, а вот Mass-Storage - только на FS/HS ....
yura_lvk
Спасибо, с High-Speed понятно!

Я также попробовал пойти другим путем. Создал чистый проект под EVK1104, в него добавил из ASF компоненты HID(kbd)composite device, MSC composite device, VIRTUAL_MEM, дальше в conf_usb.h задал все EP точки, количество интерфейсов и т.д... то есть все как я описывал в приложенном файле. Итог тот же самый, устройство начинает опознаваться, Mass-storage даже становится видно в Windows, к нему проходят запросы GetMaxLun, Inquiry, ReadCapacity (это я к тому, что не похоже, что с дескрипторами косяк), затем ко второму интерфейсу клавиатуре проходит запрос GetReport (успешно отрабатывает, видно из приложенного DOC). А вот затем к Mass-storage идет запрос READ(boot сектор) и контроллер его почему-то не отрабатывает, нет ответа на READ и все тут. На READ CAPACITY есть ответ, а на READ нет. Вот мне и непонятно почему это происходит?!

Кстати вместо VIRTUAL_MEM делал и MMC и 45BDx... все один в один. Одинаково не работает. А в примерах (Mass-storage single interface) все работает.
yura_lvk
М-да... Разобрался! 01.gif
Ошибка, естественно, тупейшая - неправильный тактовый сигнал (conf_clock.h)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.