-
USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Наконец нарисовал и выложил на сайт схему контроллера со встроенным низковольтным программатором на одном транзисторе, теперь можно запостить это сообщение. Вообще, программатор у Микрочипа из-за того, что DataIn и DataOut совмещены при прошивке на один вывод, на трех резисторах, как у Атмел, сделать не удастся.
На сайте http://artjoy.narod.ru/ лежит схема USB 2.0 контроллера на pic18f2550 и тестовая прошивка под HID джойстик с 3-мя 10 бит осями и 2-мя кнопками, частота опроса ~ 200 Гц
Прошивка с исходником на С, очень простая, написана заново по мотивам Микрочиповского USB фрэймворка (надо бы ее на прерывания переписать, это если будет интерес).
Если кому будет интересно, я нарисую и законченную схему, с сохранением полной разрядности при малых углах поворота резистора.
По прошивке -- советуйте кол-во осей, кнопок, хаток, т.как я сам последнее время мало интересуюсь симуляторами (Так, в Need2speed 5 катаюсь иногда, а там 3-х осей и 2-х кнопок хватает).
Обновление 1: Чтобы купить pic18f2550 или 18f4550, надо позвонить в Центр технической поддержки Микрочип, http://www.trt.ru
Они могут посоветовать, где контроллер есть в Москве. По выходным на Митинском рынке есть их точка, но надо на неделе сначала позвонить и заказать микросхему.
За идею самому сделать USB контроллер спасибо MeanDog, http://www.mindaugas.com
За идею использовать Microchip's 18f2550 спасибо lbodnar: http://forum.sukhoi.ru/showthread.php?t=37510
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Кульно. Про шитье можно поподробнее?
А кнопочек сколько можно посадить на эту м/с. Так шоб без дополнительных элементов?
Вот 25 кнопок на 1 контроллер хватает в самый раз.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
так по сылке нету вроде контролера ? я правильно понял ? только програмер ?
да . а осей маловато да и кноп тоже хотяб 4-6 осей и кноп как catfish сказал , впрочем я даже и незнаю на что можно такое количество забить.. как по мне и 10-12 хватилоб
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Сейчас прошивка опрашивает 3 оси на выводах AN0, AN1, AN2 -- соответственно, один вывод потенциометра сажаем на землю, один -- вешаем на VDD и средний на один из этих выводов MCU. Кнопки сейчас прошивка реально не опрашивает, просто ставит биты в 0 в репорте.
Теперь о точности:
500 остчетов на 10% поворота потенциометра должно хватать за глаза. Для этого надо сделать усилитель постоянного тока на операционном усилителе, по уму -- на низковольтном "rail-to-rail", но поскольку их у меня нет, то я сделаю на кр140уд708, коих у меня еще с советских времен есть коробочка, с внешним питанием вольт 12 от 78lm12 и виртуальной землей на стабилитроне, например. Как сделаю, так сразу нарисую схему и выложу на обозрение.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
А что именно про шитье? Собираешь схему, делаешь интерфейсный файл для WinPic и программируешь. Единственно что, WinPic может не опознавать программатор, но шьет и читает при этом безотказно :-)
Программирование низковольтное, специально для встроенных цепей программирования ICSP (in circuit serial programming), микросхема продается с установленным битом в конфигурации, разрешающим низковольтное программирование. В HEX файле прошивки все нужные конфигурационные биты выставлены, ничего при программировании менять не нужно. Как только программирование закончено, контроллер сразу сам резеттится и начинает работать, даже не надо кабель вынимать, т.есть к приведенной схеме добавляешь 3 потенциометра на AN0, AN1, AN2 и имеешь сразу работающий контроллер c тремя осями.
Независимых кнопок можно посадить штук 20 - 24, но тогда не будет осей. Возьми на www.microchip.com даташит и посчитай точно, сколько у нее портов, сколько выводов ушло на программатор и т.д.
Я нарисую законченную схему со встроенным программатором и вариантом с усилителями на осях и перепишу прошивку под 6 осей, хатку и 24 кнопки на матрице 6х4, например, но чуть попозже, ок?
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Очень хорошо, только я думаю не стОит дополнять схему усилителями. Уж тем более учитывать наличие усилителей в прошивке. 5 осей хватит за глаза даже самым жадным))))
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
ippow, по схеме вывод 14 контроллера посажен через кондёр на землю, а судя по обозначению Vusb должен быть запитан с USB -- это опечатка?
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от sergeyk
ippow, по схеме вывод 14 контроллера посажен через кондёр на землю, а судя по обозначению Vusb должен быть запитан с USB -- это опечатка?
Ни в коем случае! Это выход внутреннего стабилизатора 3.3в, а конденсатор -- это для устойчивости его работы(фильтр, короче). От этого стабилизатора питается внутренний контроллер USB. Питать что-либо внешнее от этого вывода нельзя, он очень маломощный.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от catfish
Очень хорошо, только я думаю не стОит дополнять схему усилителями. Уж тем более учитывать наличие усилителей в прошивке. 5 осей хватит за глаза даже самым жадным))))
Насчет усилителей -- согласен. Тем более, что есть более простой способ получить полную разрядность при малых углах поворота. На микросхеме есть два вывода: Vref+ и Vref-. Если с помощью резистивных делителей напряжения подать на них смещения, то проблема будет решена. Надо только включить этот режим программно.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Народ, а где в Москве можно купить pic18f2550 в dip-корпусе??
Чето куда не позвонишь - есть только SOIC (в том числе через www.trt.ru) :confused:
2ippow: в теме сказано что "USB 2.0", а в прошивке в девайс-дескрипторе "2.0" закоментировано и стоит "1.1" :)
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
пять осей не хватит. я например использую микроджой для обзора - 2 оси. + тангаж+крен+ рысканье+тяга+тримервысоты+ тример элеронов+триммер руля поворота+ шаг винта+ тормоз И того 10 наименований которые можно использовать в Ил2... конечно не всем столько нужно, но на меньшее ориентироваться врядли имеет смысл - в обычных джоях тогда всё что нужно есть...
Также мне интересно использование тумблеров вместо кнопок...
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от dd2
Народ, а где в Москве можно купить pic18f2550 в dip-корпусе??
Чето куда не позвонишь - есть только SOIC (в том числе через
www.trt.ru) :confused:
Я по информации от Тритона купил в SDIPe, видимо, там кончились, где я покупал...
Цитата:
Сообщение от dd2
2ippow: в теме сказано что "USB 2.0", а в прошивке в девайс-дескрипторе "2.0" закоментировано и стоит "1.1" :)
На скорость обмена по шине это не влияет.Так и так будут честные 12 Мбит (работает, кстати, тоже и так и так) и, соответственно, период опроса можно в дескрипторе конфигурации поставить меньше (у меня стоит 6 мсек, а не 10, как в MJoy'е, а можно поставить и 1 мсек, но для этого надо переделать прошивку для работы с прерываниями, чем я и занят, когда свободен :-)
Зачем мне было ставить 1.1, если с 2.0 тоже работает? Просто с 2.0 запрашивается дополнительный дескриптор, формат и назначение которого я не знаю (нет у меня документации по 2.0 под рукой и траффик не позволяет ее сгрузить), ну я и поставил 1.1, чтобы не заморачиваться.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от =М=Михалыч
пять осей не хватит. я например использую микроджой для обзора - 2 оси. + тангаж+крен+ рысканье+тяга+тримервысоты+ тример элеронов+триммер руля поворота+ шаг винта+ тормоз И того 10 наименований которые можно использовать в Ил2... конечно не всем столько нужно, но на меньшее ориентироваться врядли имеет смысл - в обычных джоях тогда всё что нужно есть...
Также мне интересно использование тумблеров вместо кнопок...
Вообще-то я думаю, что надо иметь двы устройства -- РУС и РУД + педали. Т.есть две прошивки:
1) X,Y,Z,Rx,Rz + хатка + 12 кнопок -- под РУС, 1-н триммер, обзор (как у тебя или все триммеры)
2) X,Y,Z,Rx,Rz + 16-20 кнопок под два РУД (РУД + шаг), педали и остальные триммеры и тормоз.
Можно и по 6 осей... Больше 6 не хочется, (хотя это проще, чем в MJoy, нет ограничения в 8 байт пакета USB) при цене по деталям в 300 р. можно сделать и два контроллера. Я надеюсь на неделе написать оба варианта, там собственно правка минимальна, только на прервания обмен по EP1 переставить еще надо, а все это -- время...
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от ippow
Вообще-то я думаю, что надо иметь двы устройства -- РУС и РУД + педали. Т.есть две прошивки:
1) X,Y,Z,Rx,Rz + хатка + 12 кнопок -- под РУС, 1-н триммер, обзор (как у тебя или все триммеры)
2) X,Y,Z,Rx,Rz + 16-20 кнопок под два РУД (РУД + шаг), педали и остальные триммеры и тормоз.
Можно и по 6 осей... Больше 6 не хочется, (хотя это проще, чем в MJoy, нет ограничения в 8 байт пакета USB) при цене по деталям в 300 р. можно сделать и два контроллера. Я надеюсь на неделе написать оба варианта, там собственно правка минимальна, только на прервания обмен по EP1 переставить еще надо, а все это -- время...
Ну тоже вариант. Хотя мне РУД-РУС-Педали видятся ввиде комплекса.... но твои рассуждения вполне рациональны. Еслиб я что-то смыслил в этом, я бы себе два таких контроллера спаял...
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от =М=Михалыч
Ну тоже вариант. Хотя мне РУД-РУС-Педали видятся ввиде комплекса.... но твои рассуждения вполне рациональны. Еслиб я что-то смыслил в этом, я бы себе два таких контроллера спаял...
Я надеюсь вскоре нарисовать и выложить на сайт полную схему и дописать прошивку, а так же фотографии собранного на макетной плате контроллера, чтобы любой мог для себя это повторить. Тем более, что мне удалось с помощью нескольких дополнительных подстроечных резисторов получить честные 10 бит на 5-ти осях при угле поворота резистора 10-15 градусов и шума практически нет. 10-битный газ и тормоз (пальцевые педали :-) в Need4Speep 5 позволил, например, проходить повороты "силовым скольжением", хотя NFS5 -- на 80% аркада...
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от =М=Михалыч
пять осей не хватит. я например использую микроджой для обзора - 2 оси. + тангаж+крен+ рысканье+тяга+тримервысоты+ тример элеронов+триммер руля поворота+ шаг винта+ тормоз И того 10 наименований которые можно использовать в Ил2... конечно не всем столько нужно, но на меньшее ориентироваться врядли имеет смысл - в обычных джоях тогда всё что нужно есть...
Также мне интересно использование тумблеров вместо кнопок...
И шо, все оси в РУСе?
Ведь нет.
А для РУДа нужно делать отдельный контроллер.
Вот и будет у тебя по 5 осей в каждой руке.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
2 ippow
А автокалибровка будет?
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от catfish
2 ippow
А автокалибровка будет?
Нет. Лень, не хочется, да и не очень то она и нужна, по моему.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от ippow
Нет. Лень, не хочется, да и не очень то она и нужна, по моему.
Автокалибровка - довольно удобная штука
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Всех с Днем Победы!
Выложил на сайт http://artjoy.narod.ru схему и прошивку с исходниками для контроллера 8 осей, хатка и 12 кнопок на матрице 4х3 с настраиваемой в железе чувствительностью осей. Ошибки в прошивке поправлены (новые, возможно, наляпаны, но работает), добавлена рыба для прерываний, контроллер переводится в sleep mode на время преобразования ADC для уменьшения шумов, честная USB 2.0 и т.п мелочи. Написал даже методику настройки для получения честных 10-ти бит на все оси.
Пользуйтесь, всем удачи и голубого неба. Если кто соберет, то отпишитесь сюда, любопытно все-таки...
P.S. Фотки контроллера и макетного монтажа, а также пальцевых педалей и руля для автогонок тоже выложил.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Супер! Спасибо!
Побежал искать пик... Тьфу ты - ночь на дворе... Придется с утра. :)
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Цитата:
Сообщение от ippow
Всех с Днем Победы!
Выложил на сайт
http://artjoy.narod.ru схему и прошивку с исходниками для контроллера 8 осей, хатка и 12 кнопок на матрице 4х3 с настраиваемой в железе чувствительностью осей. Ошибки в прошивке поправлены (новые, возможно, наляпаны, но работает), добавлена рыба для прерываний, контроллер переводится в sleep mode на время преобразования ADC для уменьшения шумов, честная USB 2.0 и т.п мелочи. Написал даже методику настройки для получения честных 10-ти бит на все оси.
Пользуйтесь, всем удачи и голубого неба. Если кто соберет, то отпишитесь сюда, любопытно все-таки...
P.S. Фотки контроллера и макетного монтажа, а также пальцевых педалей и руля для автогонок тоже выложил.
Спасибо!
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Вопрос впринципе не конкретно по artjoy, а вообще по работе в виндоусе HID-джойстиков: какое максимальное количество кнопок она (винда) видит на джое??
Уже вроде говорилось что винда не видит больше 8 осей, может и тут какое-то ограничение? Есть у кого инфа по этому поводу?
А то что-то больше 32-х кнопок никак видеть не хотит :( Или может она просто не показывает это. Каким софтом тогда можно поподробней посмотреть?
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Windows просто не показывает остальные кнопки. Посмотреть можно, например, маппером от МинДога - http://www.mindaugas.com/software/MJ...er/MJMInst.zip
Есть еще одна засада при работе с конкретной игрой - версия SDK от DirectX, например, DX8 их не видит, а уже 9 - видит.
-
Ответ: USB 2.0, 10 бит контроллер джойстика на Микрочипе -- схема и прошивка
Спасибо, Рик! Увидел MJM мои 40 кнопок :)
А вот ни Ил, ни Newview, ни др. проги не хотят :(