???
Математика на уровне МГУ

Страница 1 из 112 123451151101 ... КрайняяКрайняя
Показано с 1 по 25 из 2776

Тема: USB контроллер джойстика

  1. #1
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    USB контроллер джойстика

    Привет всем,

    Сегодня заставил работать свой USB контролер джоистика на ATMega8.
    Пока все на макетке и толко 2 оси по 10 бит. Но расширить и доделать проблем уже небудет.
    Для опробования подключил к резисторам своево старого Logitech Wingman Attack. Так что заметное в местах дрожание - это старые резюки.
    Добавил картинки тэстера до и после калибровки. До калибровки видна разрешающая способность АЦП, но зато диапазон неполный из за неполного хода резисторов.
    После калибровки в Виндозе диапазон стал полный. Зато разрешение уменшилось с 1024 до 780. Хотя, думаю, 780 вполне достаточно. Сравнивая с моим АБ2 это в три раза лучше.
    Разрешение, конечно, зависит от хода резюков и разных случаях будет разным. С этим можно игратся.
    Провода к резюкам поставил микрофонные экранированные так как с простыми проводами были наводки. Теперь если резюк недрожит число от АЦП стойт как вкопанное. Что, считаю, есть весьма хорошо.
    Потом сфоткаю и выложу как все выглядит.

    MeanDog
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	AVR_Joy_before_calibration.GIF 
Просмотров:	3279 
Размер:	47.4 Кб 
ID:	22119   Нажмите на изображение для увеличения. 

Название:	AVR_Joy_after_calibration.GIF 
Просмотров:	3021 
Размер:	49.4 Кб 
ID:	22120  

  2. #2
    Turkina Keshik Аватар для VGV
    Регистрация
    06.02.2002
    Адрес
    Псков
    Возраст
    42
    Сообщений
    2,495

    Ответ: USB контроллер джоистика

    однако, респект! а как в виндах видится? как обычный джой или нужны спец драйвера?
    А так... качать нахаляву патчи никто никого не заставляет ;)

  3. #3
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Обычный джой. Никаких дополнителных драйверов.

    Можно легко всякие различные конфигурации сделать - кнопки, хатки и т.п.

  4. #4

    Ответ: USB контроллер джоистика

    ЗдОрово!
    а мой что то пока не оживает
    поделись что в качестве usb интерфейса используешь?

    по моему даже половины от 780 вполне хватает для всего кроме РУСа
    чтоб не шумела совсем можно добавить сглаживание или просто последний разряд совсем отбросить.

    если будешь делать на плате бери мегу в планаре у нее каналов больше
    или вообще лучше 16 у 8 для всех кнопок портов маловато
    Крайний раз редактировалось Maxix; 19.05.2004 в 09:29.

  5. #5
    Мастер Аватар для ZLODEY
    Регистрация
    27.12.2001
    Адрес
    Vilnius
    Возраст
    44
    Сообщений
    1,633

    Ответ: USB контроллер джоистика

    Во блин литовцы!
    HCRM / HOTAS Cougar Russian Modification
    HCUIV / HOTAS Cougar "UIV" edition
    HCFFB2 / HOTAS Cougar + MS FFB2

  6. #6
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Цитата Сообщение от Maxix
    ЗдОрово!
    а мой что то пока не оживает
    поделись что в качестве usb интерфейса используешь?

    по моему даже половины от 780 вполне хватает для всего кроме РУСа
    чтоб не шумела совсем можно добавить сглаживание или просто последний разряд совсем отбросить.

    если будешь делать на плате бери мегу в планаре у нее каналов больше
    или вообще лучше 16 у 8 для всех кнопок портов маловато
    Весь USB протокол обрабатывается програмой контролера. Часть кода брал у Игоря Цэско. Используется класс HID чтобы исключить надобность дополнительных драйверов.

    Бит сбрасывать, думаю, не надо. Все разрешится исползованием качественных датчиков - магнитных или оптических.

    Насчет платы нужно будет опдумать. Пока контролер в DIP корпусе, что легче в домашних условиях.

  7. #7

    Ответ: USB контроллер джоистика

    Цитата Сообщение от MeanDog
    Весь USB протокол обрабатывается програмой контролера. Часть кода брал у Игоря Цэско. ...
    сильно
    я решил стандартным способом сделать

    Бит сбрасывать, думаю, не надо. Все разрешится исползованием качественных датчиков - магнитных или оптических.
    магнитные тоже шумят в пределах 1 разряда. оптика тем более...
    я сглаживал.

    Насчет платы нужно будет опдумать. Пока контролер в DIP корпусе, что легче в домашних условиях.
    планар легче паять не надо сверлить ну вот разводить только сложнее

  8. #8
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Вот выкладываю фотки моего творения в состоянии какой он пока есть. Все предельно просто. Матерьялы дешевые и доступные. Одно гнездо - USB . Другое для програмирования контролера через паралельный порт.
    Теперь задача - нормальная плата, больше функций и датчики...
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	IMG_0381.JPG 
Просмотров:	3306 
Размер:	84.4 Кб 
ID:	22283   Нажмите на изображение для увеличения. 

Название:	IMG_0383.JPG 
Просмотров:	4401 
Размер:	50.2 Кб 
ID:	22284   Нажмите на изображение для увеличения. 

Название:	IMG_0384.JPG 
Просмотров:	2887 
Размер:	44.1 Кб 
ID:	22285   Нажмите на изображение для увеличения. 

Название:	IMG_0387.JPG 
Просмотров:	2727 
Размер:	61.3 Кб 
ID:	22286   Нажмите на изображение для увеличения. 

Название:	IMG_0388.JPG 
Просмотров:	3096 
Размер:	96.7 Кб 
ID:	22287  


  9. #9
    Зашедший
    Регистрация
    25.01.2002
    Адрес
    Украина, г.Запорожье
    Возраст
    49
    Сообщений
    84

    Ответ: USB контроллер джоистика

    Цитата Сообщение от MeanDog
    Вот выкладываю фотки моего творения в состоянии какой он пока есть. Все предельно просто. Матерьялы дешевые и доступные. Одно гнездо - USB . Другое для програмирования контролера через паралельный порт.
    Теперь задача - нормальная плата, больше функций и датчики...
    Решение красивое, поздравляю! Но есть вопрос: какова скорость в канале USB? Дотягивает ли она (хотя бы порядком величины) до ограничения для "low-speed signaling mode"?

  10. #10
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Это low speed USB device как и все другие УСБ джойстики. По стандарту минимальное время опрашивания 10мсек. Мой на такой скорости и работает и с опросом 3 АЦП по 10 бит ATMega8 проблем ненаблюдается.
    Хотя можно задавать и большие периоды опрашивания вплоть до 255 мсек.

  11. #11
    Зашедший
    Регистрация
    25.01.2002
    Адрес
    Украина, г.Запорожье
    Возраст
    49
    Сообщений
    84

    Ответ: USB контроллер джоистика

    Спасибо, но, видимо, я недостаточно конкретизировал вопрос, прошу прощения.
    Меня интересует характеристика нижнего уровня интерфейса, независимо от применения к конкретному устройству. То есть, в случае полностью программной обработки протокола USB, как у Вас, на ATMega8, можно ли рассчитывать на максимальную для low-speed устройств скорость (~1,5 мбит/с). Или Вы не тестировали его на максимальную пропускную способность?
    Крайний раз редактировалось Mishel; 24.05.2004 в 14:08.

  12. #12
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Теперь понял
    Я нетестировал его на максимальную пропускную способность. Но она точно на порядок меньше 1.5 мбпс. Во время приема/передачи каждый бит обрабатываетса програмой и информация записываетса в буфер. Это около 10 операций/бит. Что-то другое и неуспееш сделать. Вся обработка делаетса между запросами. Поетому быстродеиствие зависит от сложности задач между УСБ запросами. Если исползовать очень простые задачи, думаю, 200-300 кбпс должно достигать.

  13. #13
    Зашедший
    Регистрация
    25.01.2002
    Адрес
    Украина, г.Запорожье
    Возраст
    49
    Сообщений
    84

    Ответ: USB контроллер джоистика

    Спасибо, именно это я и хотел услышать .

    На счёт скорости: да, негусто получается. Но, с другой стороны, для тех задач, которым этого достаточно, программный вариант повышает доступность элементной базы.

  14. #14
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Цитата Сообщение от Mishel
    Но, с другой стороны, для тех задач, которым этого достаточно, программный вариант повышает доступность элементной базы.
    Вот именно. Попробуйте зайти в магазин радиодеталей и попросить дать вам какой нибудь из контроллеров с встроенной УСБ функцией. Когда вам скажут что можно заказать и прибудет через месяц спросите про цену.

  15. #15
    Зашедший
    Регистрация
    04.09.2003
    Адрес
    Russian Federation
    Возраст
    56
    Сообщений
    89

    Ответ: USB контроллер джоистика

    2 MeanDog
    А исходники публиковать не собираешься? Ежели не жалко на mabp()inbox.ru плиз
    Я тоже начал копать в этом направлении, сейчас изучаю исходники Игоря. Для начала подвесил кнопки и ЖК индикатор.

  16. #16
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Исходники излагать пока несобираюсь. Недоделан он еще. Как доделаю будет видно.

  17. #17
    Зашедший Аватар для ZlojCrash
    Регистрация
    25.05.2004
    Адрес
    Одесса, Украина
    Возраст
    51
    Сообщений
    6

    Ответ: USB контроллер джоистика

    Цитата Сообщение от MeanDog
    Исходники излагать пока несобираюсь. Недоделан он еще. Как доделаю будет видно.
    Ждем-с....
    Сий девас именно то, что нужно.
    Интересно, насколько сложно будет его повторить в домашних условиях?
    "Неее - нам кузнец не нужен!"

  18. #18
    Зашедший
    Регистрация
    04.09.2003
    Адрес
    Russian Federation
    Возраст
    56
    Сообщений
    89

    Ответ: USB контроллер джоистика

    Цитата Сообщение от ZlojCrash
    Сий девас именно то, что нужно.
    Интересно, насколько сложно будет его повторить в домашних условиях?
    ИМХО не сложно, ежели хоть пару раз держал паяльник. Там софт править главное, а железки элементарные.
    Уважаемый MeanDog мя поправит, ежели что..

  19. #19
    Инструктор
    Регистрация
    15.12.2000
    Адрес
    Togliatty
    Сообщений
    1,545

    Ответ: USB контроллер джоистика

    Цитата Сообщение от Mishel
    Спасибо, именно это я и хотел услышать .

    На счёт скорости: да, негусто получается. Но, с другой стороны, для тех задач, которым этого достаточно, программный вариант повышает доступность элементной базы.
    LowSpeed USB в режиме Interrupt (если у Игоря исходники взяли - то скорее всего это так, да и проще просто) - максимальная скорость ~70-100 Kb/sec

    И не важно софтовый или аппаратный контролер. Это стандартная скорость. Она зависит только от величины пакета. Точнее от его кратности 8-байтам

    MeanDog

    Не пробовал две хатки уложить в дескрипторы так чтоб только байт от АЦП заняли ?
    Чего-то я никак схемку не набросаю. А тратить лишний канал АЦП на вторую хатку жаба давит.
    Если кто-то в Грузии думал что русские простят 20.09.07 - он был категорически неправ !!!

  20. #20
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Цитата Сообщение от LazyCamel
    LowSpeed USB в режиме Interrupt (если у Игоря исходники взяли - то скорее всего это так, да и проще просто) - максимальная скорость ~70-100 Kb/sec

    И не важно софтовый или аппаратный контролер. Это стандартная скорость. Она зависит только от величины пакета. Точнее от его кратности 8-байтам

    MeanDog

    Не пробовал две хатки уложить в дескрипторы так чтоб только байт от АЦП заняли ?
    Чего-то я никак схемку не набросаю. А тратить лишний канал АЦП на вторую хатку жаба давит.
    В interrupt режиме примерно такая скорость и есть. Но если использовать bulk режим то скорость может достигать мною упомянутых величин.

    На счет двух хаток фактически непробовал но невижу проблем их запихнуть в один баит. Это по 4 бита каждой. Получаетса две 8-позиционные хатки. С одной все у меня работает. Жаль надо одно значение тратить на нейтральную позицию а то можно бы было в 3 бита поместится.

    Ограничение одно - все данные должны поместится в 64 бита.

  21. #21
    Зашедший
    Регистрация
    25.01.2002
    Адрес
    Украина, г.Запорожье
    Возраст
    49
    Сообщений
    84

    Ответ: USB контроллер джоистика

    Цитата Сообщение от LazyCamel
    LowSpeed USB в режиме Interrupt (если у Игоря исходники взяли - то скорее всего это так, да и проще просто) - максимальная скорость ~70-100 Kb/sec

    И не важно софтовый или аппаратный контролер. Это стандартная скорость. Она зависит только от величины пакета. Точнее от его кратности 8-байтам
    1. Так для Low-speed и нет другого режима, кроме Interrupt (не считая управляющего - Control). Bulk и Isochronous режимы доступны только для Full-speed устройств.

    2. В каких единицах Вы привели цифры: "~70-100 Kb/sec"?
    Если это килобиты/сек., тогда, судя по приведённой в спецификации таблице для "Low-speed Interrupt Transaction", Ваши цифры соответствуют самому медленному варианту: "Data Payload" = 1 байт, "Max Bandwidth" = ~13000 байт/сек. При этом самый быстрый вариант (по той же таблице): "Data Payload" = 8 байт, "Max Bandwidth" = ~64000 байт/сек. Если же это у Вас килобайты/сек., то откуда? И потянет ли софтовый контроллер (на ATMega8) такую максимальную скорость, если у него ещё и другие задачи есть?
    Если я где-то ошибся - поправьте меня.

    Мой изначальный вопрос звучал в отношении обеспечения программным контроллером максимальной скорости на шине (1.5 мбит/с для Low-speed), а не той, которая учитывает только полезные данные. Думаю, по ответу MeanDog можно косвенно судить о программном варианте: максимальную скорость для Low-speed он врядли потянет (или всё-таки потянет?), но для таких задач, как у автора - этого вполне достаточно, судя по всему.

  22. #22
    Пилот
    Регистрация
    07.07.2003
    Адрес
    Samara
    Сообщений
    571

    Ответ: USB контроллер джоистика

    MeanDog
    От меня тоже респект!
    Если бы я делал USB контроллер, я бы сделал его именно так - софтово! Уменьшение скорости мало волнует (в случае джоя - на все хватит с лихвой!). Также я поддерживаю вариант CPU в дип корпусе, может, еще не созрел для внутрисхемного программирования... Имхо, правда паять проще (шаг у ножек 0,1 или 0,05 дюйма - ясно дело, что нормальный чел выберет ). НО! Я бы все же поставил буферную микруху между контроллером и компом! Ну и пусть лишний корпус, зато, если что - сгорит буфер, а не AVR! (из моей практики - очень помогает, я бы даже сказал, что это необходимо!!!!!). А софтовое подключение к USB мне очень импонирует! Я тоже так хочу! И обязательно сделаю!! (когда-нибудь!)
    Успехов!

  23. #23
    Пилот-Конструктор Аватар для MeanDog
    Регистрация
    04.02.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    122

    Ответ: USB контроллер джоистика

    Цитата Сообщение от Mishel
    1. Так для Low-speed и нет другого режима, кроме Interrupt (не считая управляющего - Control). Bulk и Isochronous режимы доступны только для Full-speed устройств.

    2. В каких единицах Вы привели цифры: "~70-100 Kb/sec"?
    Если это килобиты/сек., тогда, судя по приведённой в спецификации таблице для "Low-speed Interrupt Transaction", Ваши цифры соответствуют самому медленному варианту: "Data Payload" = 1 байт, "Max Bandwidth" = ~13000 байт/сек. При этом самый быстрый вариант (по той же таблице): "Data Payload" = 8 байт, "Max Bandwidth" = ~64000 байт/сек. Если же это у Вас килобайты/сек., то откуда? И потянет ли софтовый контроллер (на ATMega8) такую максимальную скорость, если у него ещё и другие задачи есть?
    Если я где-то ошибся - поправьте меня.

    Мой изначальный вопрос звучал в отношении обеспечения программным контроллером максимальной скорости на шине (1.5 мбит/с для Low-speed), а не той, которая учитывает только полезные данные. Думаю, по ответу MeanDog можно косвенно судить о программном варианте: максимальную скорость для Low-speed он врядли потянет (или всё-таки потянет?), но для таких задач, как у автора - этого вполне достаточно, судя по всему.
    1. Ты прав. Я невникался в bulk & isochronous и нечитал внимательно Chapter 5 поскольку моей целью был interrupt, так как он используетса в джойстиках.
    Тогда: 64 бита - количество данных на одну транзакцию, 10мс - стандартный минимальный период опроса low-speed device interrupt. Получаем 6400 битов в секунду. Не густо, но для большинства джойстиков хватает. А так специалный драйвер может опрашивать вплоть до минимальных периодов допустимых low-speed interrupt протоколом. Тогда скорости могут достигать величин указаных на таблице 5-5 в Chapter 5 Universal Serial Bus Specification Revision 1.0. Это 64000 бита в секунду если драйвер опрошивает через каждую 1мс.

    2. Я просто привел скорость, которую можно бы достигнуть используя режим на этом контроллере. Но как видимо это теоретически .

  24. #24
    Инструктор
    Регистрация
    15.12.2000
    Адрес
    Togliatty
    Сообщений
    1,545

    Ответ: USB контроллер джоистика

    Цитата Сообщение от Mishel
    1. Так для Low-speed и нет другого режима, кроме Interrupt (не считая управляющего - Control). Bulk и Isochronous режимы доступны только для Full-speed устройств.

    2. В каких единицах Вы привели цифры: "~70-100 Kb/sec"?
    Если же это у Вас килобайты/сек., то откуда? И потянет ли софтовый контроллер (на ATMega8) такую максимальную скорость, если у него ещё и другие задачи есть?
    Если я где-то ошибся - поправьте меня.
    ...

    Мой изначальный вопрос звучал в отношении обеспечения программным контроллером максимальной скорости на шине (1.5 мбит/с для Low-speed), а не той, которая учитывает только полезные данные. Думаю, по ответу MeanDog можно косвенно судить о программном варианте: максимальную скорость для Low-speed он врядли потянет (или всё-таки потянет?), но для таких задач, как у автора - этого вполне достаточно, судя по всему.
    Вы импользуйте не 8 байт, а 13(с оверхедами протокола) Речь-то шла о шинной скорости.

    Максимальную скорость он в тупом (гнать готовый шаблон) режиме потянет.
    Если кто-то в Грузии думал что русские простят 20.09.07 - он был категорически неправ !!!

  25. #25
    Зашедший
    Регистрация
    25.01.2002
    Адрес
    Украина, г.Запорожье
    Возраст
    49
    Сообщений
    84

    Ответ: USB контроллер джоистика

    Цитата Сообщение от GO!
    [...] Я бы все же поставил буферную микруху между контроллером и компом! Ну и пусть лишний корпус, зато, если что - сгорит буфер, а не AVR! (из моей практики - очень помогает, я бы даже сказал, что это необходимо!!!!!).
    Данная схема, судя по всему, запитина от порта, а не от отдельного БП, поэтому потребность в дополнительном буфере сомнительна, IMHO.
    Цитата Сообщение от MeanDog
    [...] А так специалный драйвер может опрашивать вплоть до минимальных периодов допустимых low-speed interrupt протоколом. Тогда скорости могут достигать величин указаных на таблице 5-5 в Chapter 5 Universal Serial Bus Specification Revision 1.0. Это 64000 бита в секунду если драйвер опрошивает через каждую 1мс
    Это если в каждый фрейм попадает по одному 8-байтному пакету. А вот так, чтобы заполнять его (фрейм) по максимуму (8 пакетов по 8 байт для Low-speed), дабы получить 64000 байт в секунду - это, видимо, теоретически.

    Несмотря на всё это, программный контроллер очень привлекателен ещё и тем, что можно попытаться сэмулировать одновременно несколько HID-устройств. Спецификация это позволяет, а так как у разработчика, в этом случае, в распоряжении - все уровни протокола, это вполне достижимо, если у AVR "сил" хватит . Думаю, устройство, которое "прикидывается" одновременно парой джойстиков и клавиатурой никому не помешает .
    Цитата Сообщение от LazyCamel
    Вы импользуйте не 8 байт, а 13(с оверхедами протокола) Речь-то шла о шинной скорости.

    Максимальную скорость он в тупом (гнать готовый шаблон) режиме потянет
    Возможно, только толку от этого немного.

Страница 1 из 112 123451151101 ... КрайняяКрайняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •