Не так давно удалось все таки победить злополучный USB. Пробовал мышку, клаву, светодиодами мигал (NumLock, CapsLock). Был резистор специально для джойстика 2 оси, распаял к АЦП подцепил, АЦП работало в 10 бит режиме выдавало по тригеру от счетчика каждые 2мс значение которое отсылалось по USB на комп. Пробовали в BattleField 2 AIX. Удобно управлять только самолетами

(хотя это дело привычки).
Пример проекта для джойстика в прикрепленном файле.
USB.ZIP ( 807.65 килобайт )
Кол-во скачиваний: 109Загрузился идеей, да не идеей, а просто необходимо реализовать виртуальный ком порт по USB. По Агурову пример пробовал чет не вышло. Скачал спецификацию для CDC класса, поизучал. Расписано в принципе тоже что и у Агурова, но более конкретнне расписаны все заголовочные и прочие дескрипторы. Ну в общем 3 дня помаялся в результате добился чтобы из какой нибудь проги типа "термоядерной" netweak.exe без проблем открывался порт. Дальше интересно. запустил некий цикл, который раз в пол секунды отправляет какой нибудь байт. netweak.exe принимал. Ну и пробовал отправлять. Судя по USB монитору отправлял. НО!!! При условии что размер конечных точек для данных равен 64 байта!!!! Если использовать 4 и 5 конечные точки по 512 байт (по теории 4 мегабита в одну сторону), то при отправке данных USB девайс в контроллере непрерывно генерит прерывание по RX_DATA_BK0 и RX_DATA_BK1! Сброс этих битов вообще не помогает. Если использовать точки по 64 байта все работает, это конечно маловато... 512 килобит в одну сторону. Квазидуплекс 256 килобит. Для команд управления например подойдет, а если будут сыпаться данные, то это уже немного маловато...
Для примера код из атмеловских библиотек для мышки весил около 20кб. Для моей мышки)))) 2,5 - 3 кб. Использовать их тажеловесный код не хочется, хотя в AT91SAM7A3 256 килобайт за глаза, но с другой стороны мне спокойнее когда я знаю как должно (в принципе

) работать устройство))))