PDA

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



Страницы : [1] 2 3 4 5 6 7 8 9 10 11 12

MeanDog
19.05.2004, 00:32
Привет всем,

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

MeanDog

VGV
19.05.2004, 00:57
однако, респект! а как в виндах видится? как обычный джой или нужны спец драйвера?

MeanDog
19.05.2004, 01:13
Обычный джой. Никаких дополнителных драйверов.

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

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

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

если будешь делать на плате бери мегу в планаре у нее каналов больше
или вообще лучше 16 у 8 для всех кнопок портов маловато

ZLODEY
19.05.2004, 10:38
Во блин литовцы! ;)

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

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

если будешь делать на плате бери мегу в планаре у нее каналов больше
или вообще лучше 16 у 8 для всех кнопок портов маловато

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

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

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

Maxix
19.05.2004, 19:09
Весь USB протокол обрабатывается програмой контролера. Часть кода брал у Игоря Цэско. ...

сильно :)
я решил стандартным способом сделать



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


магнитные тоже шумят в пределах 1 разряда. оптика тем более...
я сглаживал.



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

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

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

Решение красивое, поздравляю! Но есть вопрос: какова скорость в канале USB? Дотягивает ли она (хотя бы порядком величины) до ограничения для "low-speed signaling mode"?

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

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

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

Mishel
24.05.2004, 16:01
Спасибо, именно это я и хотел услышать :).

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

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

Вот именно. Попробуйте зайти в магазин радиодеталей и попросить дать вам какой нибудь из контроллеров с встроенной УСБ функцией. Когда вам скажут что можно заказать и прибудет через месяц спросите про цену.

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

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

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

Ждем-с....
Сий девас именно то, что нужно.
Интересно, насколько сложно будет его повторить в домашних условиях?
;)

MABP
26.05.2004, 01:12
Сий девас именно то, что нужно.
Интересно, насколько сложно будет его повторить в домашних условиях?
;)

ИМХО не сложно, ежели хоть пару раз держал паяльник. Там софт править главное, а железки элементарные.
Уважаемый MeanDog мя поправит, ежели что.. :)

LazyCamel
27.05.2004, 17:18
Спасибо, именно это я и хотел услышать :).

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

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

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

MeanDog

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

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

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

MeanDog

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

В interrupt режиме примерно такая скорость и есть. Но если использовать bulk режим то скорость может достигать мною упомянутых величин.

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

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

Mishel
31.05.2004, 03:53
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 он врядли потянет (или всё-таки потянет?:)), но для таких задач, как у автора - этого вполне достаточно, судя по всему.

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

MeanDog
31.05.2004, 10:32
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. Я просто привел скорость, которую можно бы достигнуть используя режим на этом контроллере. Но как видимо это теоретически ;).

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

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

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

Вы импользуйте не 8 байт, а 13(с оверхедами протокола) Речь-то шла о шинной скорости.

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

Mishel
03.06.2004, 18:05
[...] Я бы все же поставил буферную микруху между контроллером и компом! Ну и пусть лишний корпус, зато, если что - сгорит буфер, а не AVR! (из моей практики - очень помогает, я бы даже сказал, что это необходимо!!!!!).
Данная схема, судя по всему, запитина от порта, а не от отдельного БП, поэтому потребность в дополнительном буфере сомнительна, IMHO.

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

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

Вы импользуйте не 8 байт, а 13(с оверхедами протокола) Речь-то шла о шинной скорости.

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

MeanDog
28.06.2004, 00:05
Привет всем,

Я доработал контролер чтобы преодолеть 64-битный барьер. Всю информацию и исходники можете найти здесь http://www.mindaugas.com/projects/MJoy/.
Она на английском.
Был бы благодарен если кто-нибудь перевел ее на русский так как я по русский печатаю одним палцем. Можно бы было положить в ВКБ Бороды.
Ваши отклики велкам.

boRada
28.06.2004, 08:31
Непременно положим. Но я тож в басурманском ... хм..

SLI=SHURIK_25=
28.06.2004, 09:11
Непременно положим. Но я тож в басурманском ... хм..

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

boRada
28.06.2004, 10:53
Ссылку то положил, ждем переводчика!

M@troskin
28.06.2004, 13:36
Ладно, я попробую перевести -не обещаю скорости, но постараюсь :)

Пока вот вам, для затравки ;)



MJoy
USB-контроллер джойстика на основе микроконтроллера AVR ATMega8
Mindaugas Milasauskas
Основан на проекте контроллера "USB в RS232" от Igor Cesko

Введение
Я начал разрабатывать этот контроллер джойстика, вдохновленный необходимостью в простом самодельном джойстике, который мог бы преодолеть ограничения гейм-порта и предоставить бОльшую точность и гибкость для всевозможных проектов. Я реализовал потребность в таком устройстве, поскольку я люблю играть в игру Ил-2 Штурмовик. Для этой игры очевидна необходимость иметь высококачественный джойстик, если Вас не радует быть «мясом». Наиболее массово представленные на рынке джойстики имеют массу недостатков. И есть много парней, которые делают джойстики по своим собственным проектам. Многие эти проекты значительно лучше, чем те, что производятся массово. Для большинства этих проектов необходим контроллер. Использование гейм-порта разрушает все достоинства высокоточной и прецизионной механики. Все это обсуждается во многих форумах по игре Ил-2. Очевидное требование для контроллера джойстика – подключение по шине USB, так что я начал работать в этом направлении. И теперь это здесь…
Исследования
Наиболее хорошо выглядел следующий путь – найти подходящий USB-контроллер и добавить к нему необходимые функции. Но после изучения различных устройств и их возможностей стало очевидным, что разработать такое устройство за разумное время и при разумных затратах простому любителю-самодельщику не так уж просто. Другая возможность была - взять более общий микроконтроллер и встроить в него протокол шины USB, как процедуру прикладного уровня. Поиски в интернете привели меня на страницу Igor Cesko http://www.cesko.host.sk
Igor провел хорошее исследование и проделал большую работу по встраиванию протокола USB в микроконтроллер. Итак, Я решил взять его проект за основу и осуществить все, что необходимо для топ-джойстика. Я выбрал контроллер ATMega8, так как он дешев и легкодоступен. Браво, Igor! :)
Затем настало время для исследования реализации микропрограмм HID (Human Interface Device – Устройство Взаимодействия с Человеком). После этого понадобилось также поглубже копать в спецификациях USB – так как реализация прерываний USB не была включена устройство Игоря. После интенсивной ежевечерней работы в течение пары недель мне удалось заставить работать этот контроллер

MeanDog
28.06.2004, 13:55
Браво :)

boRada
28.06.2004, 15:56
Браво :)
Т.е. все верно? Можно взять этот текст?

M@troskin
28.06.2004, 16:06
Т.е. все верно? Можно взять этот текст?

Получите перевод. Сильно не пинайте - ну, да там дисклеймер есть ;)

M@troskin
28.06.2004, 16:12
Получите перевод. Сильно не пинайте - ну, да там дисклеймер есть ;)
О! получилось %)

Читайте, в общем.
Статейка интересная ;)

MeanDog
28.06.2004, 19:28
Спасибо, Матроскин!

Я подправил некоторые места, добавил ссылки и учел замечания Матроскина.

Здесь версия без картинок чтобы неразбивать архив. Борада, можеш это ложить.

Если кому что нужно дополнительно пояснить, спрашивайте - помогу. Ну не писатель я :)

boRada
29.06.2004, 02:12
Ок! Там твои координаты есть?

M@troskin
29.06.2004, 09:19
Ок! Там твои координаты есть?

Мои - точно есть. прямо в дисклеймере ;)

boRada
30.06.2004, 07:12
http://vkb.sukhoi.ru/elektron/mjoy.htm

M@troskin
30.06.2004, 08:26
http://vkb.sukhoi.ru/elektron/mjoy.htm

Оперативно :)

USSR_Rik
30.06.2004, 09:35
Отличная штука, судя по описанию и схеме. Повторяема, проста, функциональна.
Вопрос: есть ли ограничение по числу одновремено нажатых кнопок контроллера? Скажем, положение хатки влево-вверх (это две кнопки одновременно, насколько я понял - на 8-позиционный хат работают 4 кнопки) плюс нажатие еще одной отработается? Или есть запрещенные комбинации, и есть разрешенные?

MeanDog
30.06.2004, 10:39
Вопрос: есть ли ограничение по числу одновремено нажатых кнопок контроллера? Скажем, положение хатки влево-вверх (это две кнопки одновременно, насколько я понял - на 8-позиционный хат работают 4 кнопки) плюс нажатие еще одной отработается? Или есть запрещенные комбинации, и есть разрешенные?

Можно все нажимать одновременно. Забыл заметить что хатка стоит на кнопках: PD7-PD3, PD7-PD4, PD7-PD5, PD7-PD6. Дополню это в описание или в схему.

USSR_Rik
30.06.2004, 11:12
Да, это класс!
Я тут прикинул - если особо не наглеть - контроллер сможет легко проглотить сразу 3 девайса - РУС с хатом и кнопками, РУД с разнотягом, аналоговым зумом и кнопками, педали. Что еще надо?
Надоть на рынок за микросхемой ехать.

schuss
30.06.2004, 11:45
Да, это класс!
Я тут прикинул - если особо не наглеть - контроллер сможет легко проглотить сразу 3 девайса - РУС с хатом и кнопками, РУД с разнотягом, аналоговым зумом и кнопками, педали. Что еще надо?


Надо еще оси для тормозов, шага винта и триммеров...

ЗЫ Дайте мне таблеток от жадности, да побольше, побольше!!!

M@troskin
02.07.2004, 16:03
шага винта и триммеров...
Ну, нам на свистках этого не надоть ;)
А вот разнотяг - эт да, эт надо...
Народы, а про программатор кто что скажет? Автор-то, как я понял, использует какой-то промышленный. Или подойдет любой? У меня просто есть возможность обратиться либо на автосервис к электронщикам, либо в фирму, занимающуюся настройкой и ремонтом кассовых аппаратов...

USSR_Rik
02.07.2004, 17:16
Как я понял, используется PonyProg - ссылка на сайт есть в статье. А сама схема подключения к LPT - ну проще уж некуда. Вот только правильно настроить программу надо - ну да это тоже решаемо.

Все-таки завтра поеду я за железом (праздник у нас, но надеюсь, рынок работать будет).

Кстати, видел пролеты на праздничную тренировку четверки Су-25 - невысоко шли - слюни текут.

MABP
03.07.2004, 01:32
ИМХО лучшее делать несколько отдельных функциональных устройств - РУС (+упр. обзором, триммеры), управление двигателями (РУДы, шаг, смесь) и т.д. Так будет прощее модифицировать фирмваре, модернизировать устройства. Плюс не будет длинных проводов и наводок на них.

Brother
03.07.2004, 14:53
Возник вопрос по поводу схемы - там обозначены конденсаторы C1 и C2, но не указан их номинал. Какие стоит использовать?
Спасибо.

MeanDog
04.07.2004, 08:39
Возник вопрос по поводу схемы - там обозначены конденсаторы C1 и C2, но не указан их номинал. Какие стоит использовать?
Спасибо.

Это филтрующие конденсаторы. Обычно они по 0.1мкф. Паять их надо у самих ножек питания микросхемы. Правда у меня стоит только один :)

MeanDog
04.07.2004, 09:32
Помогу на счет программатора.

У меня он очень простой. Приклеил его фотки. Он хотя и смешной но работает ;) Соединяется с контроллером простым 8-хжильным кабелем от локальной сети.

Програма PonyProg настраиваетса очень просто. Выбираетса микросхема и в Setup->Interface Setup... выбираетса тип программатора. Скриншоты приклеил.

А дальше RTFM :)

Submer
06.07.2004, 10:21
Сделал плату (пока только на бумаге). Хэлп ми. Как выложить рисунок?

boRada
06.07.2004, 10:25
"управление файлами" ниже окна набираемого текста посмотри

Submer
06.07.2004, 11:52
Кнопку жму - ничего не происходит. Может в опере не работает?
Еще вопрос к MeanDog: можно ли выложить подробное описание чего в понипрог делать? (ну там загружаем такой-то файл, нажимаем такую-то кнопочку...) Посмотрел - ничего не понял.
Заранее спасибо.

MeanDog
07.07.2004, 16:25
Попробую изложить...

1. Присоединяеш программатор с присоединеной АТМега к LPT1. При этом микросхема должна иметь питание +5В. Я ее програмирую просто включенную в УСБ.
2. Запускаеш PonyProg. При первом запуске он предлагает сделать калибровку по скорости твоей машины. Делаеш это. Или Setup->Calibration.
3. Делаеш Setup->Interface Setup... как было показано выше.
4. Делаеш Device->ATMega8 как было показано выше.
5. Открываеш mjoy.hex с File->Open Program(FLASH) File...
6. Програмируеш микросхему с Command->Write Program (FLASH)
7. Програмируеш биты с Command->Security and Configuration bits... Там ставиш опции как показано на скриншоте и жмеш Write.
8. Закрываеш PonyProg, отсоединяеш программатор и включаеш свой мегаджойстик в USB (или выключаеш и снова втыкаеш обратно).

Submer
08.07.2004, 08:29
MeanDog, спасибо, сегодня сделаю платку - завтра буду пробовать програмить.

Submer
10.07.2004, 22:25
Сегодня закончил делать контроллер - ВСЕ РАБОТАЕТ. %) Резюки пока не подключал (спатки хоцца), но Винда видит ЭТО УСТРОЙСТВО!!!. :p
MeanDog, аггромное спасибо за твое творение. Восхищен и преклоняюсь. ;)
По свободе сделаю фотки и запостю.

USSR_Rik
11.07.2004, 08:12
А у нас контроллеров таких нет... Мне привезут только через неделю-другую.

Submer
11.07.2004, 08:35
Подключил резюки (100 кОм), хорошие, к X,Y. Заметно дрожание осей (смотрел в конфиге NewView) примерно в пределах сотни/полутора положений (из 16000), в свойствах игрового устройства (Винда) тоже заметно.
У меня не стоят кондеры по питанию, может в этом дело? Или все-таки в резюках? Попробую поставить 50 кОм, а потом другие резюки. О результатах доложу.
И еще хочу спросить: 10-разрядные оси сколько могут дать положений? 1792?

USSR_Rik
11.07.2004, 12:57
10 двоичных разрядов = 2^10 = 1024 отсчета. Питание фильтровать в любом случае нужно, тут не скупятся.
Я бы попробовал снизить сопротивление резисторов до 5..15 кОм (тут хорошо бы знать входное сопротивление или ток по аналоговым входам микросхемы контроллера - так оно правильнее для грубой прикидки).

MeanDog
12.07.2004, 08:19
Подключил резюки (100 кОм), хорошие, к X,Y. Заметно дрожание осей (смотрел в конфиге NewView) примерно в пределах сотни/полутора положений (из 16000), в свойствах игрового устройства (Винда) тоже заметно.
У меня не стоят кондеры по питанию, может в этом дело? Или все-таки в резюках? Попробую поставить 50 кОм, а потом другие резюки. О результатах доложу.
И еще хочу спросить: 10-разрядные оси сколько могут дать положений? 1792?

По питанию хоть один конденсатор должен стоять обязательно.

Колебания могут быть наводки от сети и т.п. Уменшение сопротивления потенциометра должно помогать. Также сильно помогает подсоединение резисторов экранированным проводом. Я подключил свои микрофонным проводом с двумя проводами внутри. Экран - земля, провод1 - +5В, провод2 - сигнал от резюка.

10 бит это 1024 значений как говорил Rik. Реально будет меньше так как реально неиспользуеш весь диапазон 0-5В. В моем варианте получилось ~750. Конечно возможно добится полного диапазона поставив операционный усилитель. Но это усложнило бы схему и настройку.

boRada
14.07.2004, 04:45
Посмотрел в Платане, там их немало всяких. Какой надо (полную маркировку)?

MeanDog
14.07.2004, 06:52
Я использовал ATMega8-16PI. В принципе можно любой с частотой не менее 12МГц. Здесь цифра 16 указывает что он 16МГц. PI - DIP корпус легче всего паять.

MeanDog
14.07.2004, 11:17
Да еще.
Maxix мудро предлагал делать контроллер на другом корпусе так как тогда будут 8 АЦП, а не 6 как сейчас. Или можно взять АТМега16.
Но в то время был барьер 64 бита. Потому я и не работал над этим.
А сейчас это было бы весьма кстати. Может быть незадолго сделаю вариант на ATMega16 с 8 осями и тучей кнопок. Он хотя и стоит дороже, но все равно дешево по сравнению с тем какая вещь получается.

boRada
14.07.2004, 17:14
Я планар заказал

Maxix
15.07.2004, 08:57
2Mean Dog
ты не против если я на своем контроллере добавлю на плату разводку чтоб можно было перешить твоим USB вариантом? а то уже несколько раз спрашивали "а нельзя ли?"
а свой с нормальным Usb я пока не доделал

MeanDog
15.07.2004, 11:57
2Maxix
Давай, нет проблем. Может и я потом платку попрошу :) А то мне как-то неохота с ними возится.

LazyCamel
16.07.2004, 11:18
Советы примешь ?

Перевод комбинаций нажатий кнопок в положения хатки, не через условия, а через 15-ти элементную таблицу (невалидные значения - в 0) ускорит эту часть в несколько раз.

А RC - цепочка для AREF из ПДФ-а - резко уменьшит шумы.

ЗЫ: Намек - осталось найти человека, который УСБ-сниффером снял бы дескрипторы с реального когуара и можно будет спокойно использовать его ПО.

MeanDog
16.07.2004, 17:34
Хорошие советы. Приму во внимание для следующего релиза. Спасибо. Этот вариант хатки просто остался от стадии налаживания. А оптимизацию оставил на потом :)
Рад что заглянул в код ;)
Про RC цепочку или какой другой филтр думал в начале, но чтобы сделать контроллер как можно более доступный в изготовлении даже для непосвященных решил не нагружать схему необязательными деталями.
В новом релизе (наверное АТМега16) собираюсь сделать более грамотное схематическое решение.

Кугар проанализировать было бы неплохо. Я его никогда живьем и не видел...

И еще вопрос всем замешенным - чего бы больше хотелось от этого контроллера? Больше кнопок, хаток, что-то другое или больше ничего ненадо? %)

BAG
18.07.2004, 14:36
не поверишь 8) я хотел заняться выдумыванием схемы с контролером и решил для этого почитать форум 8) .... и на свё большое удивление обнаружил эту ветку.

Я когда планировал созадать свою електронику сразу начал периберать в памяти доступ к каким отладочным платам у меня имеется .... и из подходящего оказалась только отладочная плата с МС68НС11. Так как я не имею опыта создания реальных устройств с полного нуля то я не имел понятия что впринципе можно обойтись без отладочной платы.

Вот собственно меня интересует вопрос , пользовался ли ты какимито специальными средствами. так как мне кажется написав ПО для незнакомого контролера ,и отладив его в эмуляторе , на реальном обьекте оно врятли нормально запуститься сразу .... и вообще нужно же както было смотреть что делает контролер и находить ошибки ПО для реального обьекта??

Сейчас засел за изучение твой статьи 8) .... мне очень интересно 8)

ПС , а почему ты не исспользовал внешний например 2х канальный 16ти разрядный АЦП ?? (Сори я ещё не прочитал твою статью и не разобрался со спецификацией контролера)

BAG
18.07.2004, 15:20
вот по ходу дела я тут слышал ты писал что можно обойти ограничение в 64 бита тоесть можно сделать пакет больше 8ми байт ... что интересно для этого нужно и впринципе насколько кртично время опроса контролера, Если например оно будет равно 30мс тоесть 3 пакета по 64 бита. Сильно ли это ухудшит качество ????

LazyCamel
19.07.2004, 07:29
Кугар проанализировать было бы неплохо. Я его никогда живьем и не видел...

И еще вопрос всем замешенным - чего бы больше хотелось от этого контроллера? Больше кнопок, хаток, что-то другое или больше ничего ненадо? %)

На мой взгляд дальше морочить что-то смысла еще большого не будет.

Дело в том, что насколько я понимаю все мыши, клавы и прочее под джои делаются через виртуальные хид-девайсы фильтрами верхнего уровня. Для этого 16 кнопок (+2 хата) за глаза.

Большее количество кнопок имеет смысл на чем-то типа "приборной доски", но ее дешевле завести через другой УСБ порт. Тем более народ сразу захочет выводит туда и данные из ломачной LUA.

Хардварная же калибровка на домашних джойстиках вещь очень спорная по алгоритмам и вариантам и лучше ее тоже отдать софту наружу.

Т.ч. на мой взгляд, единственная доработка - это эмуляция различных джоев, чтобы можно было использовать их штатный софт. Для этого хватает даже Мега8 (пусть и в PLCC корпусе). Остаются вопросы с копирайтами производителей - но кого в России тем более на некомерческой разработке они волнуют.

Дальше - просто вылизывание схемы, печатки и прошивки.

ЗЫ: И еще. Никто вроде не заставляет отдавать пакеты в режиме ID1-ID2-ID1-ID2. Можно отдавать как ID1-ID1-ID2-ID1-ID1, т.е. пакеты с осями в два раза чаще пакетов с кнопками.

Тогда до ФПС=60 у джойя будет достаточно информации чтобы передавать измененную инфу каждый фрейм отрисовки.

Maxix
19.07.2004, 07:36
Могу снять протокол обмена с кугара,сайтека 45(есть), msffb2(есть ) и логитеха ffb(тоже есть)
если интересно.
вот тока расписывать что там где я не очень могу :( ...

PS добавил то что под рукой оказалось
PPS
смотреть прогой snoopypro

LazyCamel
19.07.2004, 07:55
Так как я не имею опыта создания реальных устройств с полного нуля то я не имел понятия что впринципе можно обойтись без отладочной платы.


А смысл - кто тебе мешает прицепить на порт 7-разрядный светодиодный индикатор и сразу валить на него информацию



Вот собственно меня интересует вопрос , пользовался ли ты какимито специальными средствами. так как мне кажется написав ПО для незнакомого контролера ,и отладив его в эмуляторе , на реальном обьекте оно врятли нормально запуститься сразу .... и вообще нужно же както было смотреть что делает контролер и находить ошибки ПО для реального обьекта??


В зависимости от необходимости. В простейшем алгоритме можно проверить в АВР-Студио (это симулятор) , чуть более сложном - повесить индикаторы и выводить на них, в еще более сложном - зацепить через JTAG-интерфейс полноценный эмулятор, т.к. в новых Мегах встроен внутрикристальный отладчик и можно гнать прямо по тактам смотря изменения.




ПС , а почему ты не исспользовал внешний например 2х канальный 16ти разрядный АЦП ?? (Сори я ещё не прочитал твою статью и не разобрался со спецификацией контролера)

Гм.
Начальные данные - полное отклонения ручки джой ~90-100 градусов.
Полный диапазон 10бит встроенного АЦП - 1024 отсчета.
Итого минимальный угол хода ручки ~0.1 градуса.
Точность ограниченная АЦП = +\- половина последнего разряда или 1/(2^9.5)~0.14%

Вам еще нужен 16-бит АЦП (все цифры поделить на 64) для магниторезисторов с точностью 1-3 % или обычных резисторов с 5% ?

MeanDog
19.07.2004, 08:28
и вообще нужно же както было смотреть что делает контролер и находить ошибки ПО для реального обьекта??
Для отладки контроллера я использую светодиод подключенный к какой нибудь I/O ножке, а в програме в нужном месте ставлю код чтобы зажигать или гасить его.


ПС , а почему ты не исспользовал внешний например 2х канальный 16ти разрядный АЦП ?? (Сори я ещё не прочитал твою статью и не разобрался со спецификацией контролера)
Я думал об этом. Но еще ненашел широкодоступный и дешевый АЦП для этого. Уже подметил пару микросхем от Analog Devices. Но для начала я делал все как можно проще.


вот по ходу дела я тут слышал ты писал что можно обойти ограничение в 64 бита тоесть можно сделать пакет больше 8ми байт ... что интересно для этого нужно и впринципе насколько кртично время опроса контролера, Если например оно будет равно 30мс тоесть 3 пакета по 64 бита. Сильно ли это ухудшит качество ????
Я думаю что уменшение частоты даже до 20 раз в секунду нечувствовалась для пользователя. Конечно это еще нужно проверить. Так что наверное можно посылать и 5 репортов. И при том можно делать обновление данных не поочередно, а посылать наыболее важные репорты чаще как говорит LazyCamel. Например ID1 - ID2 - ID1 - ID3 - ID1 - ID4 - ID1 - ID5 - ID1 - ID2...

MeanDog
19.07.2004, 08:30
PS добавил то что под рукой оказалось
PPS
смотреть прогой snoopypro

Посмотрю в свободную минутку.

MeanDog
19.07.2004, 08:35
В зависимости от необходимости. В простейшем алгоритме можно проверить в АВР-Студио (это симулятор) , чуть более сложном - повесить индикаторы и выводить на них, в еще более сложном - зацепить через JTAG-интерфейс полноценный эмулятор, т.к. в новых Мегах встроен внутрикристальный отладчик и можно гнать прямо по тактам смотря изменения.

Точно, я еще забыл сказать что использовал внутренний софтовый эмулятор AVR Studio 4. Там вручную ставиш биты на входах и смотриш что делает програма. Очень удобно. И ничего нестойт :)

MeanDog
19.07.2004, 17:42
Могу снять протокол обмена с кугара,сайтека 45(есть), msffb2(есть ) и логитеха ffb(тоже есть)
если интересно.
вот тока расписывать что там где я не очень могу :( ...

PS добавил то что под рукой оказалось
PPS
смотреть прогой snoopypro
Посмотрел на дескриптор. Простой 8 битный джой с ФФБ. Эго эмулировать толку мало. Может только с ФФБ разобратся было бы полезно. Вот Кугар был бы интереснее.

Der Anfänger
19.07.2004, 18:54
Спасибо, но, видимо, я недостаточно конкретизировал вопрос, прошу прощения.
Меня интересует характеристика нижнего уровня интерфейса, независимо от применения к конкретному устройству. То есть, в случае полностью программной обработки протокола USB, как у Вас, на ATMega8, можно ли рассчитывать на максимальную для low-speed устройств скорость (~1,5 мбит/с). Или Вы не тестировали его на максимальную пропускную способность?
=======================================
Я не спец конечно, но видал какие то статьи в Журналах Компоненты и Технологии посвященные микросхемам контроллеров USB - может они чем то помогут? Там вроде бы спецификации USB расписаны, по идее стандарт открыт - можно что нибудь и с сайта IEEE снять?

MeanDog
20.07.2004, 06:22
=======================================
Я не спец конечно, но видал какие то статьи в Журналах Компоненты и Технологии посвященные микросхемам контроллеров USB - может они чем то помогут? Там вроде бы спецификации USB расписаны, по идее стандарт открыт - можно что нибудь и с сайта IEEE снять?

USB микроконтроллеров есть всяких немало. Но их всех общая беда - доступность и цена в малых количествах. Если налаживать массовое производство или необходима большая скорость передачи, то конечно нужно бы было брать микроконтроллер с апаратной реализацией USB протокола.

LazyCamel
20.07.2004, 07:21
Посмотрел на дескриптор. Простой 8 битный джой с ФФБ. Эго эмулировать толку мало. Может только с ФФБ разобратся было бы полезно. Вот Кугар был бы интереснее.
Угу. ТМ АфБ2 - такая же фигня. даже дырка 8-ми битная свободная в дескрипторе, что их жаба задавила качалку и ручку отдельным осями ввести - непонятно.

И что меня прикололо - ОШИБКА в хид-дескрипторах в виде незакрытой СС коллекции, что переодически приводит к прикольным глюкам.

У х45 САЙТЕКА на мой взгляд более чем достойный софт. Т.ч. его протокол лишним точно не будет.

Т.ч. закосы под Кугуар и Х45 будут ИМХО крайне интересны, а вот в Логитеках и АфБ2 большого смысла не видно.

BAG
20.07.2004, 10:11
хм , я попробовал скачать програматор ... и у меня ничего не вышло ... странно очень тама на указанном тобой сайте находится только кнопка купить , а дальше муть не сдоровая .. я так и несмог понять можно ли скатать хоть какуюто версию програматора.

Еще вопросик по програматору. Неужели для нормальной прошивки контролера достаточно непосредственного подключения его к ЛПТ порту ?? просто у нас есть в прайсах такая штука как ПОНИ програматор (железяка) для АТмегаХ и стоит это счастье 16 уе .. ??? нужен ли он мне или нет ????

и такое я смотрю в текущем виде для расширения возможностей софтовых у контролера мега8 практически не осталось памяти так как текущая версия прошивки занимает чуточку меньше 7К ну на пару десятков байт .. а программной памяти осталось совсем фонарь .. всегото её 8К ... я вот думаю может лучше взять мега16 ??? у нас в Киеве разница в стоимости всегото в 2.5 уе ... ??

вот надыбал такие контролеры
ATmega8-16AI 5
ATmega8-16PI 4.5
ATmega8L-8AI 5.2
ATmega16-16AI 8
ATmega16-16PI 7

даже и не знаю что лучше себе взять .. вот сейчас занимаюсь тем что читаю их спецификации ...

и меня удручает тот факт что в зависимости от корпуса у них как я понял разное количество АЦП.


LazyCamel , да конечно полных 16ть разрядов это будет многовато , но никто не заставляте исспользовать их полностью . на основе их можно реализовать програмное регулироемое сглаживание прямо на борту контролера. Тоесть например исспользовать только 14 верхних бита. В таком случае можно гарантировать не меньше 8000 различных положений.
Впринципе никто не заставляет исспользовать резистивные датчики. Впринципе можно посмотреть и чтото придумать для сносной точности ... я так навскидку не помню у кого какая точность но узнать смогу , так как впринципе это всё вышеперечисленное связано с моей профессией , у меня вроди как профелирующий предмет метрология , но (каюсь) я не помню у каких схем измерения угла поворота наименьшая погрешность, но узнаю в ближайшее время.

Впринципе я знаю что нужно порыть в направлении трансформаторных датчиков угловых перемещений. (Но они поидее не шибко распространены Более распространены трансформаторные датчики линейнхы перемещений - Линейные дифференциальные трансформаторы) погрешность ЛДТ очень мала.

Впинципе никто не заставляет нас подключать к АЦП контролера датчики напрямую. Ведь действительно у "голого" резистора погрешность будет очень большой.

MeanDog
20.07.2004, 20:29
хм , я попробовал скачать програматор ... и у меня ничего не вышло ...

http://www.lancos.com/e2p/V2_06/ponyprogV206c.zip



Еще вопросик по програматору. Неужели для нормальной прошивки контролера достаточно непосредственного подключения его к ЛПТ порту ??

http://vkb.sukhoi.ru/elektron/mjoy.htm



просто у нас есть в прайсах такая штука как ПОНИ програматор (железяка) для АТмегаХ и стоит это счастье 16 уе .. ??? нужен ли он мне или нет ????

Нет



и такое я смотрю в текущем виде для расширения возможностей софтовых у контролера мега8 практически не осталось памяти так как текущая версия прошивки занимает чуточку меньше 7К ну на пару десятков байт .. а программной памяти осталось совсем фонарь .. всегото её 8К ...

mjoy.hex = ~2кБ

LazyCamel
21.07.2004, 07:04
хм , я попробовал скачать програматор ... и у меня ничего не вышло ... Еще вопросик по програматору.


http://ln.com.ua/~real/avreal/

По русски и расжевано. ЛУЧШИЙ из бесплатных программаторов.ИМХО.
Года три уже им пользуюсь.



и такое я смотрю в текущем виде для расширения возможностей софтовых у контролера мега8 практически не осталось памяти так как текущая версия прошивки занимает чуточку меньше 7К ну на пару десятков байт .. а программной памяти осталось совсем фонарь .. всегото её 8К ... я вот думаю может лучше взять мега16 ??? у нас в Киеве разница в стоимости всегото в 2.5 уе ... ??

вот надыбал такие контролеры
ATmega8-16AI 5
ATmega8-16PI 4.5
ATmega8L-8AI 5.2
ATmega16-16AI 8
ATmega16-16PI 7


Гм. во первых Мега 16 почти вдвое дороже, а из плюсов только внутренний отладчик.

Во вторых - "L" - можешь выкидывать сразу. Это низкоскоростные с пониженым потреблением.

В третьих - "AI"- Другой корпус(планар), если руки не дрожат - он лучше тем, что не надо плату сверлить, можно односторонную сделать. Хуже - тем что паять и разводить плату сложнее (шаг ножек меньше).

В четвертых 7 кб занимает НЕХ-файл ДЛЯ ПРОГРАММАТОРА, бинарник обычно раза в три-четыре меньше. Места там в Мега8 остается до задницы.



LazyCamel , да конечно полных 16ть разрядов это будет многовато , но никто не заставляте исспользовать их полностью . на основе их можно реализовать програмное регулироемое сглаживание прямо на борту контролера. Тоесть например исспользовать только 14 верхних бита. В таком случае можно гарантировать не меньше 8000 различных положений.


Нах? Странно что вас тогда с такой специальностью не учили выбирать достаточную точность датчиков.

Ну посчитайте же наконец механическую точность, например.

Ручка джоя - 25 см. Угол отклонения 90. Ход ручки 2pi*R/4=~293 мм.

делим на 1024 (10 бит) ~0,3 мм МИНИМАЛЬНОЕ ОТКЛОНЕНИЕ ВЕРХА РУЧКИ, регистрируемое на 10 БИТАХ - ТРИ ДЕСЯТЫХ МИЛИМЕТРА.

Даже если кочерга будет метр длиной - чуть больше миллиметра.

ЕЩЕ не смешно ? С учетом того что люфт в подвесе джойстика - числа этогоже порядка.

На борту контроллера програмное сглаживание путем понижение точности тоже неэфективно, хотя бы из-за ограниченной математики.
Максимум - выкинуть резкие пики/провалы из-за износа резисторов.
Но для этого избыточная точность не нужна. Достаточно завести буфер для нескольких значений.

Пусть этим (сглаживанием) занимается ЦП в игрушках, с произвольными хитровыежнутыми алгоритмами. ИМХО.

M@troskin
21.07.2004, 09:48
Народ! А я вот вдруг задумался и не нашел ничего похожего в даташите (может, плохо искал?) - а Atmega 8 перепрограмируемый контроллер? Или если я ошибусь при прошивке - бежать в магазин за новым?

BAG
21.07.2004, 21:43
LazyCamel, Я знаю что значит "Л" в названии контролера и тп ... про АЦП .. хм , да конечно такая точность никому нафиг не нужна , так как это уже граница например теплового шума резистора или например наводок на провод, но почембы и нет 8)))

и что такое АИ я тоже знаю ... меня например ДИП корпус не устраивал по другой причине - в нём на 2 АЦП меньше !!!! А точто его вручную припаять у меня не получится никак это плохо ((( пытался для них найти гнёздо , но не вышло ... и вообще покачто для воссоздания творения МинДога купил в ДИП корпусе.

а про размер файла ХЕКС ... НУ НЕ ЗНАЛ Я ЧТО ТУТ ТАКОЙ НЕНАШЕНСКИЙ ФОМАТ ХЕКСА. Для моторол с которыми я имел дело хекс как хекс , размер байт в байт. Странно чегож должны отличатся размеры , если это хекс файл ???

В данный момент очень хочу воссоздать творение МинДога , а в перспективе немного изменить конструкцию методом добавления новых осей , минумум штучки 4 мона и 8 8) методом временного разделения каналов АЦП .. Просто заюзать часть одного порта как внешнюю шину адреса 8) ... а осташуюся часть портов как шину данных , тогда можно будет увеличить возможности голого контролера во много много раз ... Я тут прикидывал быстродействие , так 12Мипс это дофига 8)) вот шас про встроеные АЦП почитаю тогда вообще и решу что делать потома 8) ... вотс ..

BAG
21.07.2004, 21:46
Народ! А я вот вдруг задумался и не нашел ничего похожего в даташите (может, плохо искал?) - а Atmega 8 перепрограмируемый контроллер? Или если я ошибусь при прошивке - бежать в магазин за новым?

та они все перепрограмируемые. На контролерах уже давно не ставят РОМ Ю типа перешли на флеш. И вообще в минимальном обзоре этого контролера написано , что мона перепрошивать флеш аж 10000 раз 8) я думаю нам хватит 8) ...

BAG
21.07.2004, 21:53
да ещё . Про выбор точности и датчиков эжто конечно всё хорошо 8)

Нас и учили что нуна делать то что заказывали и с конфигурацией оптимальной по стоимости и технологичности. Но тут работает другой закон 8) :
Макак (тоесть Я) дорвался до грАнАтЫ .... естесно что 14 бит это просто абсурд ,но помечтать чтоли низя ??? Ведь хочется иметь как можно более точную електронику , чтоб в дальнеёшем не меть к ней никаких притензий.

MeanDog
22.07.2004, 07:14
Для стандартного джоя 10 разрядов вполне достаточно. Но я думаю о 16-и разрядном АЦП с перспективой эго использования в качестве точного контрольного измерительного прибора. Он тоже пригодится для мерения сигналов с большим динамическим диапазоном. В этом случае усиление или гашение сигнала может быть исполнено простыми програмными алгоритмами.

boRada
22.07.2004, 09:33
.

Ручка джоя - 25 см. Угол отклонения 90. Ход ручки 2pi*R/4=~293 мм.

делим на 1024 (10 бит) ~0,3 мм МИНИМАЛЬНОЕ ОТКЛОНЕНИЕ ВЕРХА РУЧКИ, регистрируемое на 10 БИТАХ - ТРИ ДЕСЯТЫХ МИЛИМЕТРА.

Даже если кочерга будет метр длиной - чуть больше миллиметра.


Еще смешнее, что ход джойстика гораздо меньше 90. У Кугара например в сумме примерно 45 град.

GO!
22.07.2004, 21:59
Попробовал повторить этот контроллер, но ничего не получилось, винда ругается на неопознанный USB-device. Интересно, где собака порылась?! В разводке и в пайке я уверен, несколько раз проверял. Несколько странно, что RESET висит в воздухе, может быть, в этом дело, или в битах конфигурации? (Я честно говоря, впервые столкнулся с AVR контроллером). Я прошивал проц не через PoniProg, а через доступный мне программатор PicProg, в параллельном режиме, не через SPI. Думаю, вся загвоздка в битах конфигурации, они в PicProg называются немного по-другому (не как в PoniProg). Подскажите, кто знает, как их правильно выставить. Картинку прилагаю:

MeanDog
23.07.2004, 07:08
Думаю, вся загвоздка в битах конфигурации, они в PicProg называются немного по-другому (не как в PoniProg). Подскажите, кто знает, как их правильно выставить. Картинку прилагаю:

Ставь CkSel=1111

paraManiac
23.07.2004, 08:16
И еще вопрос всем замешенным - чего бы больше хотелось от этого контроллера? Больше кнопок, хаток, что-то другое или больше ничего ненадо? %)

Молоток, MeanDog, классную вещь сконструировал!
В ближайшее время собираюсь воспроизвести енту хитрую штуковину по твоим чертежам, однако у меня тут идея возникла такого плана:

Вобщем, мне кажется что целесообразней иметь больше осй т.к. для хаток и кнопок можно взять дешёвую USB- клаву и
1-можно ведь разобраться с её контролером, или более грубо-
2-припоять провода на контактную матрицу.
В любом случае получится довольно удобно ведь на разработаной
тобой плате уже есть USB - шина, то бишь к ней можно, на сколько я
понял, паралельно подключиться, да и винда две клавиауры
одновременно должна поддерживать.
Всё-таки 101 КНОПКА ЭТО НЕ ШУТКА. :) :confused:

BAG
23.07.2004, 17:01
хех я дособрал устройсво. Скатал програматор . Вобщем прошил контролер .. поидее ошибок нету , тоесть всё отлично прошилось но винда не видит его , говорит неопознанное устроёство ЮСБ !!! собсно буду проверять распайку , но помоему тут чтото не то ... ((

ЗЫ А так хотелось.

Интересно , а в чем собственно ошибка ???

MABP
24.07.2004, 00:38
Интересно , а в чем собственно ошибка ???

0. Проверить распайку (2 раза) Особо обратить внимание на разъем USB. Проверить наличие и полярность питания на AVR
1. Не прошился таки AVR. Проверь через верифай
2. Не правильно прошиты FUSE - проверь, все флажки кроме CKOPT должны быть сброшены. Обрати внимание на полярность - в AVR 1-сброшенный флаг, 0-установленный, в понипрог по умолчанию галочка-установленный флаг, пусто-сброшенный
3. Проверь осциллом наличие генерации на кварце и соответствие частоты. При отличии частоты от 12 МГц хотябы на 200кГц работать не будет.
4. Ежели FUSE стоят правильно а генерации нет - повесь на ноги кварца кондеры пик по 20-30 на землю.

BAG
24.07.2004, 06:30
В распайке вроди как уверен. Полярность питания поидееправильная. Контролер прошивается отлично, прошивка совпадает с оригиналом.
Проверить частоту кварца возможности покачто нету никакой.
Флажки установлены небыли , сейчас их поменял, тоесть установил только СКОРТ, но я про них нигде не прочитал .

Такс выставил биты конфигурации и всё счастье заработало. Спасибо.

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

На данный момент наблюдаю дребезг на осях ,но это скорее всего из-за того что не подключены датчики

BAG
24.07.2004, 14:25
вот по ходу дела возник вопрос.
У ЮСБ поидее есть экран, так вот у меня когда екран находится в болтающемся положении тоесть когда он не подключен никуда на выходах с АЦП наблюдается сильнейший дребезг , но когда я "подключаю" себя к экрану , тоесть как я понял свою ёмкость , то дребезг исчезает.
Вопрос в следующем - куда подключить экран ЮСБ ???

MeanDog
24.07.2004, 19:39
Имею вопрос - где мона про них прочитать , так как чтото в спецификации контролера я их сразу не вижу.
Читай на странице 24 документа ATMega8


Вопрос в следующем - куда подключить экран ЮСБ ???
Подключай к земле. Это единственное хорошое место для его :)

BAG
24.07.2004, 23:15
уря. я его таки запустил нормально 8)

ПС надеюсь что нормально

Жаль только что в совте теста точности джоя нету возможности выбора номера девайса , ато у меня Мджой полюбому становиться девайсом 1 а не 0 .
Хотя я в исходниках прошивки покачто не ковырялся , но поидее там этого быть не может.

Буду искать автора проги и просить о нововведении или исходники проги 8)

GO!
25.07.2004, 20:44
Ставь CkSel=1111
Yes! Именно в этом и было дело! Спасибо, MeanDog! :)
Теперь работает и в Win98 и в WinXP. ;)
Интересно, где можно почитать про биты конфигурации для AVR контроллеров?
Можеть быть, у BAG та же проблема?
На что влияют биты CkSel, на опрос сторожевого таймера? :confused:

GO!
25.07.2004, 21:30
Раз все получилось, начинаю наглеть! :)
Как обстоят дела с FeedBack? ;)
Имхо, полностью сделать трудно, и в механике и даже в электронике. Но можно начать с Shock-варианта, который элементарно делается и механически, и электрически. Дело только за программой. В этом случае, я сразу бы поменял кишки своего "ThrastMaster TopGun Fox2 Pro Shock" на это новое чудо: 10-бит АЦП, Хатка, 24 кнопки + 4 8-бит осей и еще, FFB "Shock", - хочу!!! :)

GO!
25.07.2004, 21:53
И вот еще, о чем я думаю: :rolleyes:
Для независимого опроса комбинации нажатых кнопок НЕОБХОДИМО последовательно с КАЖДОЙ кнопкой включить диод!
Без этого контроллер не сможет отличить одновременно нажатые кнопки, например:
S1 и S6, и S5 и S2!
Или я где-то не прав? :confused:

LazyCamel
26.07.2004, 09:17
2 GO.
Имхо нет. Тут (на этом алгоритме) получается другое, появляется виртуальное нажатие еще одной кнопки, если нажаты три в углах матрицы.

2 MeanDOG.
Тогда (для внешних 16-бит АЦП) придется освобождать SPI, заводить двухполярное +/- 12В и маньячить с разводкой и питанием. USB-шные +5В звенят сильно.

2 ALL
вот здесь
http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm
и особенно вот здесь
http://www.atmel.ru/Articles/Articles.htm
есть русские доки связанные с АВРами.

И еще http://home.tula.net/algrom/russian.html - супер! Графический ассемблер, прошивальщик,отладчик,симулятор. Больше года работаю с ним. Жаль для х86 ничего подобного нет.

Вдогонку. Кстати, рекомендую посмотреть в сторону
AtMega48-20PI(ai) - у них розница должна быть меньше 100 рублей, а так это функционально и по-пиново полные аналоги Мега8

GO!
28.07.2004, 21:25
2 GO.
Имхо нет. Тут (на этом алгоритме) получается другое, появляется виртуальное нажатие еще одной кнопки, если нажаты три в углах матрицы ...
Имхо, это как раз и значит, что независимого нажатия кнопок (больше двух, и то не во всех случаях), не получится без применения диодов!
Однако, во многих клавах матрица пленочная и без диодов и распознают они гораздо большеее количество нажатых/отпущенных кнопок.. :confused: Im wondering какой алгоритм? :confused:

GO!
28.07.2004, 21:51
Вдогонку. Кстати, рекомендую посмотреть в сторону
AtMega48-20PI(ai) - у них розница должна быть меньше 100 рублей, а так это функционально и по-пиново полные аналоги Мега8
Интересно, AtMega48-20PI прошьется без ошибок на программаторе, который его не знает (в частности PicProg - он знает только ATmega8)?

GO!
28.07.2004, 22:03
Для стандартного джоя 10 разрядов вполне достаточно. Но я думаю о 16-и разрядном АЦП с перспективой эго использования в качестве точного контрольного измерительного прибора. Он тоже пригодится для мерения сигналов с большим динамическим диапазоном. В этом случае усиление или гашение сигнала может быть исполнено простыми програмными алгоритмами.
В этом что-то есть!
Если не заморачиваться с АЧХ АЦП, то можно обойтись встроенным компаратором AVR! (интегрирующий АЦП).


Тогда (для внешних 16-бит АЦП) придется освобождать SPI, заводить двухполярное +/- 12В и маньячить с разводкой и питанием. USB-шные +5В звенят сильно.
На этот случай предлагаю применить старинные CPU AT89C5X. Если для них написать софтовый контроллер USB, то им просто цены не будет! (в плане функциональности - практически полная микроЭВМ! ;) ).

BAG
29.07.2004, 18:43
Имхо, это как раз и значит, что независимого нажатия кнопок (больше двух, и то не во всех случаях), не получится без применения диодов!
Однако, во многих клавах матрица пленочная и без диодов и распознают они гораздо большеее количество нажатых/отпущенных кнопок.. :confused: Im wondering какой алгоритм? :confused:

алгоритм очень простой - последовательный опрос а не паралельный. он состоит в том что на (например) строку матрицы (только одну) подается "1" и при этом считываются все столбцы которых не много (примерно 4 - 6).
итого получаем дофигище кнопок.

Таким алгоритмом я сейчас и планирую заняться. Тоесть реализовать на данной базе.

Планирую сделать електронику : 12-18 осей , что с технической точки зрения вполне реально
32 - 128 кнопок это сли не заниматься извращениями, Если немножко поизвращаться , то можно на этом контролере реализовать 256 или даже 512 кнопок. Но это всё только с хардовой части. Тут возникает загвоздка с временем обработки всего этого счастья и с перидачей и восприимчивости собсно винды к устройствам с таким не хилым количеством всяких кнопочек.

Но впринципе никому такое счастье не нада. Пока я решил сделать вариант с 12 осей 28 кнопок 1 хат

ПС я решил посмортеть на стоимость АЦП 12 14 и 16 разрядов , я просто ОФИГИНЕЛ !!!! это просто кАААшмААр !!! от 100 уе !!
а мультиплексоры блин от 20 уе !!! просто маразм !! пришлось купить наши старые аж по 0.2 бакса за штуку :)

вобщем вот пытаюсь вьехать сейчас в ХИД устройства и особенно есть ли у них ограничения на количество осей и кнопок так как не хотелось бы пролететь :rolleyes:

ППС впринципе можно сделать свой 12 максимум 14 разрядный АЦП на основе имеющегося 8ти разрядного АЦП и дето достать 8 розрядный ЦАП.

UIV
30.07.2004, 06:27
Ограничение по осям и кнопкам в ДиректХ - 8 осей, 128 кнопок. Если через WinAPI работать, то 6 осей.
Можно оси на разные джои замапить, тогда ограничение по осям и кнопкам обойдешь.
Но нафига 12 осей???

BAG
30.07.2004, 08:57
Ограничение по осям и кнопкам в ДиректХ - 8 осей, 128 кнопок. Если через WinAPI работать, то 6 осей.
Можно оси на разные джои замапить, тогда ограничение по осям и кнопкам обойдешь.
Но нафига 12 осей???

Про ограничения пасиба.

А зачем 12 , так это очень просто - для ИЛ2 поидее нужно 10 ну а 12 - так получается 8) можно конечно оставить только 10 , но както обидно чтоли , что максимум всего только 8 :(

буду смотреть . Но во всяком случае , почему если можно сделать больше - делать меньше ??? Ведб помоему чем больше осей , тем больше функций на них можно повесить.

boRada
30.07.2004, 15:08
Имхо, это как раз и значит, что независимого нажатия кнопок (больше двух, и то не во всех случаях), не получится без применения диодов!
Однако, во многих клавах матрица пленочная и без диодов и распознают они гораздо большеее количество нажатых/отпущенных кнопок.. :confused: Im wondering какой алгоритм? :confused:
Там матрица большая.. где-то есть у меня зарисовка

schuss
30.07.2004, 15:26
Ограничение по осям и кнопкам в ДиректХ - 8 осей
На устройство или вообще? Если вообще, то мне очень интересно, как в Ил-2 работают 10 осей. А они работают - проверено.

BAG
30.07.2004, 15:34
вот возник вопрос.

где найти описания ко всем устройствам и параметрам состояния которых можно перидавать с помошью рапортов ХИД устройств.

однако 8) зашел на сайт ХИД устройств , кажется чтото подобное нашел , но чот у меня не качается 8( "HID Usage Tables" это оно ????

USSR_Rik
31.07.2004, 06:11
BAG
Сайт - это www.usb.org? Вроде там все качалось.
Если хочешь, я тебе на мыло могу скинуть "Введение в разработку HID устройств" (360к) и "Описание USB шины" (450 к) - оба на русском, в pdf - только там не очень много информации.

paraManiac
31.07.2004, 06:38
Rik если не влом выложи их на форум pls.:))

USSR_Rik
31.07.2004, 19:54
Вот один, второй не влезает, млин. Завтра или раром запакую, или разрежу надвое.
Вот, добавил.

USSR_Rik
31.07.2004, 20:09
Кстати, сегодня мне достался контроллер - спасибо Максу и Илье. Только и успел, что спаять, запрограммировать и проверить 2 оси и несколько кнопок - все ОК, только хатка вместо "вниз" отрабатывает "влево-вниз", наверное, где-то соплю припоя повесил. Завтра продолжу танцы.

BAG
01.08.2004, 14:15
Рик спасибо.
Да контролер работает , вот сейчас читаю ... прсвещаюсь по поводу улучшений.
Вот надыбал такую штучку AT43USB351M , но таких в Киеве нету (( я смотрел - не нашёл.

Если не тяжело , можешь мне отправить на емейл , так как я имею очень ограниченный доступ сюда на форум , и качать сейчас не могу .. а до среды ждать чтото не хочеться. Только тогда у меня будет возможность скачать (((

мой емейл. buddy_bag@ipnet.kiev.ua

USSR_Rik
02.08.2004, 05:50
Смотри почту.

BAG
02.08.2004, 09:23
Большое спасибо

LazyCamel
02.08.2004, 10:17
По поводу меги 48. На самом деле это обычная мега8 сделаная по новому тех.процессу(0.25 вместо 0.35), с отбракованной половиной памяти.
Поэтому дешевле. Все программаторы что умеют програмить Мега8, апвтоматически умеют програмить и Мега88/48. Только для Мега48 надо самому следить за памятью, чтобы предел не привысить.
http://efo.ru/components/atmel/tables/avr.htm

Цены:
http://efo.ru/doc/Atmel/Atmel.pl?530

По поводу осей и кнопок.
Имхо больше 6-8 осей в одном устройстве извращаться не сильно-то эффективно.
Дешевле повесить еще одно устройство на УСБ.
Второе - по кнопкам. Любой 8-10 битный АЦП легко превращается в 16 кнопок.
Достаточно собрать последовательно цепь из резисторов каждый из которых вдвое больше предыдущего. А кнопки будут просто его шунтированть(закорачивать) вот тебе и минимум 8 независимых кнопок на 1-ой ноге джоя.

Про направление развития/удешевления/унификации.
Есть такой хороший АВР - Attiny26. Если у него перепрограмить ногу РВ1 как ИНТ0, то получается контроллер УСБ с 8 АЦП. А это 5 осей (тангаж,крен,раддер,2газа или шаг/газ)+2 хатки+16 кнопок. В 20-ногом корпусе. 8 байт дескриптор.
Легко поместится в спичечном коробке :-)

Про средства отладки для АВР - симулятор, с возможностью эмуляции внешних деталей (включая виртуальные осицилограф и генераторы сигналов) :
http://www.amctools.com/
если кто хочет ковыряться для себя для дома в АВР - маст хэв однозначно.

BAG
02.08.2004, 13:15
вот блин фигня , !! я писал ответ примерно минут 15 и тут зараза експлорер закрылся !! вот гадёныш !!

в кратце что я хотел сказать ..

исспользовать вход АЦП для кнопок это всёравно что фотоаппаратом гвозди забивать !! просто бред так как с помошью 2х портов можно реализовать сдоровую матрицу кнопок.
если например порт А - 4 бита порт В 6 бит

не исспользуя внешних микросхем имеем матрицу 6*4= 24 кнопки (опрос строк последовательный, что даёт возможность ликвидировать неоднозначности при нажатии комбинаций кнопок)

при исспользовании внешнего мультиплексора 1 на 8 .
К входу подключаем "1" , к адресным входам 3 бита порта В . В такм случае получаем матрицу уже размеро 8*(3+4)=56 независимых кнопок

Если в обеих случаях посмотреть время приобразования , то оно будет меньше чем время необходимое АЦП на оцифровку аналогового сигнала.

вобщем забивать гвозди фотоаппаратом это маразм.

BAG
02.08.2004, 13:40
имею вопрос к создателю САБЖА.

Скажи пожалуйста , сбор информации с датчиков (входов контролера) джоя идёт во время промежутков ожидания запроса от ЮСБ ХОСТа на поставку информации (для каждого пакета отдельно или нет) , или уже после полученя запроса контролер начинает этот сбор ??

тоетсь к чему я это : будет ли кртично если время сбора информации возрастёт с максимума сейчас возможного и равного 1.5мс до максимально возможного промежутка например в 3 мс ??

откуда эти цифры: взяты на сонове того что написано , что приобразовние АЦП максимум 250мкс .... хм ... но если посмотреть что получается.....


У тебя 6 осей каждая из них обрабатывается в режиме единичного опроса входов , тоесть на такой опрос нужно 25 тактов АДС

после подсчётов получилос что на опрос 6ти осей нужно 825мкс

так вот всётаки этот опрос как я понял ведётся после того как был получен запрос на информацию , или всётаки в промежутках между опросами ???

просто например в опосе есть такой фрагмент

out ADMUX, temp0
sbi ADCSRA, ADSC ; start conversion
WaitForADC_10:
sbic ADCSRA, ADSC
rjmp WaitForADC_10

in temp0,ADCL
in temp1,ADCH

так вот в промежутке
WaitForADC_10:
sbic ADCSRA, ADSC
rjmp WaitForADC_10
наблюдается явный простой , так как АЦП работает как независимое устроёство поралельно всем контролеру , так в эти промежутки времени можно внести например другую обработку чего либо , так как они состовляют примерно 135 микросекунд , а это 1680 тактов при частоте 12МГц .. впринципе достаточно сУрьёзный промежуток :)

я вот просто собираюсь добавить осей и мне эта информация очень и очень нужна


Я просто не смог точно покачто понять механизм общения по ЮСБ , из твоего кода.

MeanDog
02.08.2004, 19:08
имею вопрос к создателю САБЖА.

Скажи пожалуйста , сбор информации с датчиков (входов контролера) джоя идёт во время промежутков ожидания запроса от ЮСБ ХОСТа на поставку информации (для каждого пакета отдельно или нет) , или уже после полученя запроса контролер начинает этот сбор ??


Сбор ведется в промежутках между запросами. Я кажется писал об этом. В цикле Main вызывается процедура ProcJoystickRequest, которая опрашивает входы. Она вызывается по установке флага JoystickDataRequestBit. Этот флаг устанавливается в процедуре ProcessEndpoint1 когда закончена пересылка ответа на USB запрос. Эта процедура вызывается из INT0handler по получении пакета данных для опроса Endpoint1 по USB.

LazyCamel
03.08.2004, 04:16
исспользовать вход АЦП для кнопок это всёравно что фотоаппаратом гвозди забивать !! просто бред так как с помошью 2х портов можно реализовать сдоровую матрицу кнопок.


О. Наконец то пошла дисскусия/обсуждение. :-)

Во-1. О гвоздях и фотоаппаратах. Ты считаешь что использования 3 (лишних) выходов штатного АЦП для 24 кнопок это хуже чем использование 10 выводов для матрицы кнопок ?
Во-2. Опрос АЦП (13 тактов 200кГц АЦП) - 65 мкс, из которых непосредственно на код - 2-4 такта МК. Никто кстати не мешает задрать скорость АЦП выше, ценой увеличения тока потребления - читай даташит внимательнее.



Если в обеих случаях посмотреть время приобразования , то оно будет меньше чем время необходимое АЦП на оцифровку аналогового сигнала.

Да-да-да... :-)

in temp,ADCH для АЦП

против цикла(точнее 2-х) и ксоров/сдвигов для 6Х4 матрицы.
Загрузи в AVR Studio или VMLAB и посмотри растактовку.

Мне рассказывать про дребезг контактов и почему в джойстиках на кнопках тройная буфферизация и какая обработка, прежде чем отдать состояние кнопок в порт ?


вобщем забивать гвозди фотоаппаратом это маразм.

Открой ЛЮБОЙ нормальный джойстик и посмотри КАК там сделана хатка.
Или ты считаешь что вся рота идет не в ногу и страдает МАРАЗМОМ, один ты в ногу...

BAG
03.08.2004, 10:08
О. Наконец то пошла дисскусия/обсуждение. :-)

Во-1. О гвоздях и фотоаппаратах. Ты считаешь что использования 3 (лишних) выходов штатного АЦП для 24 кнопок это хуже чем использование 10 выводов для матрицы кнопок ?


Да я считаю что это хуже , так как это вопервых медленнее и вовторых имеет значительно меньшую точность - остутсвие какой-либо возможности реализовать комбинации кнопок которые повешены на один вход АЦП



Во-2. Опрос АЦП (13 тактов 200кГц АЦП) - 65 мкс, из которых непосредственно на код - 2-4 такта МК. Никто кстати не мешает задрать скорость АЦП выше, ценой увеличения тока потребления - читай даташит внимательнее.


65 мкс лишь в том случае , если мы имеем потоковый опрос входов АЦП , а если всётаки единичный опрос , то 125 мкс.
Для справки при частоте 12МГц 1 такт это аж 0.08мкс помоему это маленькое время .. и за 65 мкс пройдет всеголишь 800 тактов, за которые можно не то что матрицу всю опросить , но и дребезг исключить !



Да-да-да... :-)

in temp,ADCH для АЦП


ты забыл
. out ADMUX, temp0
. sbi ADCSRA, ADSC
WaitForADC:
. sbic ADCSRA, ADSC
. rjmp WaitForADC

а это дофигише времени простоя !!
и только потом
in temp,ADCH для АЦП



против цикла(точнее 2-х) и ксоров/сдвигов для 6Х4 матрицы.
Загрузи в AVR Studio или VMLAB и посмотри растактовку.



а для того чтоб это сделать быстро нужно не делать это в тупую !!

знаешь есть такая команда как
SWAP Rd Перестановка тетрад Rd(3..0) = Rd(7..4), Rd(7..4) = Rd(3..0) 1 цикл
и еще есть такая команда как add adc rol ror ну и некоторые другие ... ну уж поверь что они все выполнятся раз в 20 быстрее чем твои на основе АЦП !



Мне рассказывать про дребезг контактов и почему в джойстиках на кнопках тройная буфферизация и какая обработка, прежде чем отдать состояние кнопок в порт ?


А мне вспомнить что есть такие вещи как кнопки БЕЗ дребезга , или с очень малым дребезгом ?? который может быть устранён просто двойным буфером. А также никто тебя не заставлят считывать кнопки с периодичностью соизмеримой с их дребезгом !! периода опроса в 20-30мс достаточно для ликвидации дребезга большинства "нормальных" кнопок



Открой ЛЮБОЙ нормальный джойстик и посмотри КАК там сделана хатка.
Или ты считаешь что вся рота идет не в ногу и страдает МАРАЗМОМ, один ты в ногу...

уляля ... я ЗНАЮ как делается хатка !! она НОРМАЛЬНО делается с помошью 4х кнопок !!! а не целого канала АЦП !!! только не нужно говорить что лишний канал АЦП можно занять хаткой вместо того , чтоб исспользовать его для оси например или ещё чегонить хитрого.
Покарйней мере все джои которые я держал в руках с 8ми позиционным хатом имели реализацию оного на 4х кнопках !!!

BAG
03.08.2004, 10:16
да еще вот забыл ..

ты где это видел НОРМАЛЬНЫЙ джойстик ????? есть хоть один такой а ???
А если такие есть , то почему тут народ всякой фигнёй мается ??? разнообразные приспособы делает ???? датчики нафиг выбрасывает !!!

Почем тогда на половине джоев не хватает осей ?? может потому , что очень умные "дятлы" исспользуют для хета каналы АЦП ??? или потому, что ктото делает джойстик за 20 баксов а продаёт его за 400 ????? и ставит в него такую електроонику которой бы не в джойстике стоять а в аквариуме рыбкам реле переключать !!! а не заниматься измерением угловых перемещений!!!

и вообще ты гденибуть видел механику джойстика нормально исполненную в металле с подогнанными деталями и подшипниками ????

BAG
03.08.2004, 10:27
Сбор ведется в промежутках между запросами. Я кажется писал об этом. В цикле Main вызывается процедура ProcJoystickRequest, которая опрашивает входы. Она вызывается по установке флага JoystickDataRequestBit. Этот флаг устанавливается в процедуре ProcessEndpoint1 когда закончена пересылка ответа на USB запрос. Эта процедура вызывается из INT0handler по получении пакета данных для опроса Endpoint1 по USB.

Спасибо. Ты мне очень помог.

Такой еще вопрос.

если создавать репорт дескриптор с помошью изнего тула , то он не пашет вообще 8)))

а также было замечено что дравами поддерживаются только некоторые оси ... большинство осей не поддерживаетс (( с чем это может быть связанно ??? вот например с страницы Simulation Controls пашут только Газ и Рудер , а остальные просто не хотят восприниматься !!! или может я чтото не так делаю ??? Хотя очень всё это странно... я всё по спецификации делал.

вот собственно при описании твоей структуры таким дескриптором
пашут только оси Х У и Газ с Рудом ....

пробовал вместо газа и руда подставлять другие с тойже страницы - ФОНАРЬ !!!! не работают ((( меня это сильно огорчает. В чём тут ошибка ??

пытался обьединять проблемные оси в разнообразные колекции - не помогает - не пашут всёравно ((

db 5h, 1h ; USAGE_PAGE (Generic Desktop)
db 15h, 0h ; LOGICAL_MINIMUM (0)
db 9h, 4h ; USAGE (Joystick)
db a1h, 1h ; COLLECTION (Application)
db 5h, 2h ; USAGE_PAGE (Simulation Controls)
db 85h, 1h ; REPORT_ID (1)
db 9h, bah ; USAGE (Rudder)
db 9h, bbh ; USAGE (Throttle)
db 9h, b1h ; USAGE (Aileron Trim)
db 9h, b9h ; USAGE (Elevator Trim)
db 15h, 81h ; LOGICAL_MINIMUM (-127)
db 25h, 7fh ; LOGICAL_MAXIMUM (127)
db 75h, 8h ; REPORT_SIZE (8)
db 95h, 4h ; REPORT_COUNT (4)
db 81h, 2h ; INPUT (Data,Var,Abs)
db 5h, 1h ; USAGE_PAGE (Generic Desktop)
db 9h, 1h ; USAGE (Pointer)
db a1h, 0h ; COLLECTION (Physical)
db 9h, 30h ; USAGE (X)
db 9h, 31h ; USAGE (Y)
db 16h, 0h, feh ; LOGICAL_MINIMUM (-512)
db 26h, ffh, 1h ; LOGICAL_MAXIMUM (511)
db 75h, ah ; REPORT_SIZE (10)
db 95h, 2h ; REPORT_COUNT (2)
db 81h, 2h ; INPUT (Data,Var,Abs)
db c0h ; END_COLLECTION
db 9h, 39h ; USAGE (Hat switch)
db 35h, 0h ; PHYSICAL_MINIMUM (0)
db 46h, 3bh, 1h ; PHYSICAL_MAXIMUM (315)
db 15h, 0h ; LOGICAL_MINIMUM (0)
db 25h, 7h ; LOGICAL_MAXIMUM (7)
db 65h, 14h ; UNIT (Eng Rot:Angular Pos)
db 75h, 4h ; REPORT_SIZE (4)
db 95h, 1h ; REPORT_COUNT (1)
db 81h, 2h ; INPUT (Data,Var,Abs)
db 85h, 2h ; REPORT_ID (2)
db 5h, 9h ; USAGE_PAGE (Button)
db 19h, 1h ; USAGE_MINIMUM (Button 1)
db 29h, 18h ; USAGE_MAXIMUM (Button 24)
db 15h, 0h ; LOGICAL_MINIMUM (0)
db 25h, 1h ; LOGICAL_MAXIMUM (1)
db 75h, 1h ; REPORT_SIZE (1)
db 95h, 18h ; REPORT_COUNT (24)
db 55h, 0h ; UNIT_EXPONENT (0)
db 65h, 0h ; UNIT (None)
db 81h, 2h ; INPUT (Data,Var,Abs)
db c0h ; END_COLLECTION


Ах да , чуть не забыл.

С окончанием коллекции тоже пришлось помучаться ... просто стандартный конец С0 приходиться заменять пустышками как и у тебя .... Это просто взято сразу из едитора....

USSR_Rik
03.08.2004, 11:14
остутсвие какой-либо возможности реализовать комбинации кнопок которые повешены на один вход АЦП
Это не так. Резисторная матрица типа R-2R (если я все правильно путаю) дает возможность получения информации о любой произвольной комбинации нажатых одновременно кнопок для одного АЦП. (Или я все-таки нахомутал с названием? Тогда поправьте.)

Только это не значит, что я за такую реализацию. Богу - богово, слесарю - слесарево. Требуемая разрядность невелика - 5 разрядов АЦ преобразования - это 32 кнопки - вполне достаточно. Конечно, если выхода нет - скажем, задействованы все цифровые порты, но есть свободный канал АЦП - почему бы и нет, но имхо, все-таки дискретные сигналы лучше и обрабатывать дискретно.


и вообще ты гденибуть видел механику джойстика нормально исполненную в металле с подогнанными деталями и подшипниками ????
Сорри - не могу молчать, хоть и не в тему. Я видел! В субботу у Ильи UIV (забирал микросхему контроллера). Напольный РУС, металл, подшипники - ребята, это надо почувствовать! Ставить хорошую фукциональную электронику в типовые палки - это очень жалко.

LazyCamel
03.08.2004, 12:32
Да я считаю что это хуже , так как это вопервых медленнее и вовторых имеет значительно меньшую точность - остутсвие какой-либо возможности реализовать комбинации кнопок которые повешены на один вход АЦП


Какой-нибудь букварь типа ХиХ "Искусство схемотехники" читать в части посвещенной ЦАП.

R-2r матрица на 10 битном АЦП спокойно дает 8 НЕЗАВИСИМЫХ кнопок.



65 мкс лишь в том случае , если мы имеем потоковый опрос входов АЦП , а если всётаки единичный опрос , то 125 мкс.
Для справки при частоте 12МГц 1 такт это аж 0.08мкс помоему это маленькое время .. и за 65 мкс пройдет всеголишь 800 тактов, за которые можно не то что матрицу всю опросить , но и дребезг исключить !


Блин, ЧИТАЙ ДАТАШИТЫ ВНИМАТЕЛЬНО. Или в симуляторе прогоняй, если с английским сложно.
25 тактов занимает ПЕРВОЕ, вообще ПЕРВОЕ включение АЦП. А не начало преобразования. Из которых основная масса времени уходит на измерение AREF и настройку масштабирования. Я на работе АЦП у АВРов собаку съел.



ты забыл
. out ADMUX, temp0
. sbi ADCSRA, ADSC
WaitForADC:
. sbic ADCSRA, ADSC
. rjmp WaitForADC

а это дофигише времени простоя !!
и только потом
in temp,ADCH для АЦП


Это просто вопрос оптимизации. Автору огромное спасибо за то что он просто это (джой) сделал. Оптимально или нет - это другой вопрос.

Но так - чисто в сторону, замечу что 1мс на УСБ 1.1 у нас гарантированно есть. Во фри-ране этого вполне хватает на 8 каналов АЦП.



уляля ... я ЗНАЮ как делается хатка !! она НОРМАЛЬНО делается с помошью 4х кнопок !!! а не целого канала АЦП !!! только не нужно говорить что лишний канал АЦП можно занять хаткой вместо того , чтоб исспользовать его для оси например или ещё чегонить хитрого.
Покарйней мере все джои которые я держал в руках с 8ми позиционным хатом имели реализацию оного на 4х кнопках !!!

ОТКРОЙ джой и ПРОЙДИСЬ по разводке до микроконтроллера. ВСЕ что я видел джойстики от Логитека и Трастмастера хатку держат на АЦП.
Там схемка на резисторах, которые эти кнопки замыкают.


да еще вот забыл ..
Почем тогда на половине джоев не хватает осей ?? может потому , что очень умные "дятлы" исспользуют для хета каналы АЦП ??? или потому, что ктото делает джойстик за 20 баксов а продаёт его за 400 ????? и ставит в него такую электронику которой бы не в джойстике стоять а в аквариуме рыбкам реле переключать !!! а не заниматься измерением угловых перемещений!!!


Дерзай. И может ИМЕННО у тебя получиться. И вот когда сможешь разработать конструкцию джой, где есть точная механика с "МНОГО ОСЕЙ", вечные датчики с погрешностью в 0.5-1 угловую минуту, а главное умудришься наладить его ХОТЯБЫ МЕЛКОСЕРИЙНЫЙ выпуск,
чтоб тот не стоил как пол-самолета - сможешь гордо всех остальных производителей обвинять в хапужничестве, отсутсвии видения перспектив и раздолбайстве в разработке.

Я еще помню как народ возмущался насчет минимум 100 баксов за доработку Когуара до нормальной механики.
А это черным налом, на ворованом материале и бесплатных станках, т.е. практически по себестоимости работ.

boRada
04.08.2004, 02:36
Хатка везде на "АЦП", исключая некоторые оригинальные конструкции ( < 1% ) Да, 4 кнопки, но они зацепленны на резисторы, которые соеденены последовательно.
Обсуждению не подлежит. Правильно это или нет - отдельная тема. Если хочешь - имеешь право создать отдельный топик.
BAG - прошу не создавай пустой флейм. Тут очень интересная для всех тема, и выковыривать потом ценную информацию из споров затруднительно.
Прежде чем утверждать и возмущатся, подробней ознакомься с материалом, если у оппонента есть другое мнение.

USSR_Rik
04.08.2004, 05:41
Тогда - к теме. Кто-нибудь полностью запустил джойстик и полетал? Впечатления? Баги (если есть)? У меня сейчас со временем плохо, сижу на чемоданах, переселяюсь. Только и успел, что спаять и покрутить резисторами на весу.

LazyCamel
04.08.2004, 11:17
Тогда - к теме. Кто-нибудь полностью запустил джойстик и полетал? Впечатления? Баги (если есть)? У меня сейчас со временем плохо, сижу на чемоданах, переселяюсь. Только и успел, что спаять и покрутить резисторами на весу.

Я запустил. и уже даже воткнул приятелю вместо электроники от Логитеха Экстрим3Д.

Работает стабильно. Иногда (очень редко) вылезают косяки с кнопками, но это моя вина, я кнопки подвесил на порты неудачно, вот они с хаткой и спариваются.

Есть вопросы к схемотехнике:
Из того что стоит ИМХО сделать - подвесить стабилитроны на 3.6В на линии Д+ и Д- и делители для пулл-апа на Д-. Все-таки УСБ это 3.3 В и от греха подальше на 2.0 порты новых мам не стоит +5В подавать всеже.

BAG
04.08.2004, 21:27
А если это же счастье поставить не на выход, а на вход , тоесть понизить питание схемы до 4х вольт. мне кажеться что это будет эффективнее , так как сразу убьётся 3 зайца - шумы по питанию и выходные уровни. А также позволит достаточно просто уменьшить "ход" резистивных датчиков (или любых других) у которых рабочий ход значительно привышает например ход РУСа.


ПС и не нужно сразу бросаться тухлыми помидорами !!!! что я вижу некоторые люди делают с великим удовольствием !! :mad:

catfish
04.08.2004, 23:29
Просьба к предыдущим двум ораторам - схемы в студию!

SLI=SHURIK_25=
05.08.2004, 07:19
А если это же счастье поставить не на выход, а на вход , тоесть понизить питание схемы до 4х вольт. мне кажеться что это будет эффективнее , так как сразу убьётся 3 зайца - шумы по питанию и выходные уровни. А также позволит достаточно просто уменьшить "ход" резистивных датчиков (или любых других) у которых рабочий ход значительно привышает например ход РУСа.


ПС и не нужно сразу бросаться тухлыми помидорами !!!! что я вижу некоторые люди делают с великим удовольствием !! :mad:
В этом предложении есть одни нюанс - с датчиками МаРС схема не будет работать. Им необходимо строго 5 В.

BAG
05.08.2004, 07:57
не совсем. Я говорю про то что можно былоб понизить питаний схемы , но не датчиков. Их питание можно брать сразу от ЮСБ и впринципе это не 5 В а 4.75В ...

SLI=SHURIK_25=
05.08.2004, 10:05
не совсем. Я говорю про то что можно былоб понизить питаний схемы , но не датчиков. Их питание можно брать сразу от ЮСБ и впринципе это не 5 В а 4.75В ...
Можно и так, но чем шире диапазон сигнала с датчика, тем больше разрешение, не правда ли? И коль мы используем столь точный контроллер, то брезговать диапазоном датчика мы не вправе, я так считаю. Чем в этом плане хорош МаРС - это тем, что его угловой диапазон настраивается от плюс-минуc 15 гр., до плюс-минус 90, кажись. Под любую механику можно настроить, что и пригодилось в случае с педалями.

USSR_Rik
05.08.2004, 10:49
LazyCamel

А как ты кнопки разложил? Вроде действительно - не должны они пересекаться при любых комбинациях, опрос последовательный. Разве что - неточная отработка задержек на дребезг?

Я себе планирую такой вариант (вроде оптимально по количеству проводов к железкам, у меня Лоджик с двумя хатками).

По поводу питания. Я тут просмотрел наскоро даташит (полный, который 5,5 метров) - вроде при 4 вольтах питания (и даже немного поменьше) контроллер потянет с запасом тактовую в 12 МГц. Но питать контроллер от 4 В, а АЦП (Ref) и резисторы осей от звенящих 5 В по линии USB - не дело. Тогда уж лучше ставить простенький стабилизатор на те же 4 вольта выходных, питать ими контроллер (приближаем уровни сигналов к требуемым USB), через дроссель - конденсатор - АЦП и резисторы. Тогда хоть избавиться можно от помех по питанию USB шины. Кстати, аналоговую цепь я через фильтр дроссель - конденсатор включил. Печатку не рисовал - лень, собрал на макетке монтажными проводами. Вот выходные разъемы только достали - уж больно их много получается. Хотите - сфотографирую, положу сюда.

BAG
05.08.2004, 23:12
хм .... я вот что подумал : высокочастотеные шумы по питанию от ЮСБ срезаются обычными конденсаторами , а вот нихкочастотные (меньше 100КГц) на погрешность измерения сильно не влияют , так как с изменением Vref меняется соответсвенно и сигнал с датчика , тоесть их отношение остаётся постоянным , а впринципе добавлять ещё и стабилизатор смысла нет.

Возможно конечно я ошибаюсь (( , хотя всё вроди как правильно.

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

Другой вопрос.. у меня почемуто когда я добавляю в репорт дескриптор ещё 1 хэт всё перистаёт работать. Добавляю поидее правильно, всё учёл , но винда перистаёт видить устройство. ?????

Оси добавил , проблем нет ... дескриптор периколбасил чуток.... всё нормально , а вот второй хет сделать не получается . Можно у тебя попросить твой репорт дескриптор ??

USSR_Rik
06.08.2004, 05:26
Я программу не менял. Нет ни сил, ни времени. В программировании я остановился 100 лет назад на ассемблере PDP-11 (аксакалы помнят такую машинку - БК-0010, мы с коллегами работали на них и писали программы). Так что скорее я бы попросил что-то готовое под 2 хэта :)
Но в принципе мне и так хватает - ну видится второй хэт как 4 кнопки - и что?

LazyCamel
06.08.2004, 05:45
От меня схемка смотри внизу, для стандартного варианта прошивки, цельнотянутая из даташита
R=68 или 82 Ома
R1=2.2 кОма
R2=4.7 кОма
Стабилитроны на 3.6В

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

Из планируемых изменений по сравнению со стандартной.

Схемные:
УСБ - перенесено на PD0,PD1+PD2. Последовательно включены резисторы на 68(или 82) Ома. На линиях висят стабилитроны на 3.6 Вольта.

Кнопки - матрица PB0-PB5 х PD4-PD7
Aref через 100 nF подcоединен к ЗЕМЛЕ (включен внутрениий Ареф равный AVCC)
pull-up делитель R1-R2 подключен к PD3
PC0 - подключеный к земле - Dip, к VCC - TQFP/MLF

Изменения в прошивке:
Дескрипторы - оси будут стандартные десктопные X,Y,Slider,Rz,Rx,Ry,(Z,dial)
АЦП при работе будет усыплять МК
Включаться УСБ на микроконтроллере будет после инициализации всего, чтобы не гнать волну пытаясь успеть на инициализацию УСБ.
Деcкрипторы:
ИД0
Х - 10бит
hat - 4 бит
Y - 10 бит
slider - 8 бит
RZ - 8 бит
кнопки - 8 бит

Ид1
кнопки - 12 бит
константа - 4 бит
Rx - 8бит
Ry - 8бит
Z - 8бит
dial - 8бит
константа - 16бит

Порядок ИД0-ИД0-ИД1-ИД0-ИД0-ИД1

LazyCamel
06.08.2004, 05:54
Оси добавил , проблем нет ... дескриптор периколбасил чуток.... всё нормально , а вот второй хет сделать не получается . Можно у тебя попросить твой репорт дескриптор ??

Дескрипторы дома, тут даже DT нет.
Посмотри не забыл ли после кнопок страницу назад переключить на генерик десктоп.
Если хаты подряд идут INSTANCE(0) INSTANCE(1) явно поставь.
ЗЫ:

Два хата насколько я помню ДХ только с 8.1 поддерживаются.
Имхо проше кнопками оставить. Единственный минус - только 4-х позиционный хат получается, если 4 кнопки ставить.

ЗЗЫ:

Ктобы мне сказал что такое в дескрипторах
66 40 00
и
66 00 00
в дескрипторе АВ2 стоит, причем совершенно бредово.
По идее это UNIT(код 65), но со странной единицей измерения.

paraManiac
06.08.2004, 07:47
Единственный минус - только 4-х позиционный хат получается, если 4 кнопки ставить.


Никто ж не мешает на физическом уровне одной кнопкой замыкать две пары контактов :confused:

LazyCamel
06.08.2004, 12:30
Никто ж не мешает на физическом уровне одной кнопкой замыкать две пары контактов :confused:

Вот только много ли програм умеют это понимать ?

LazyCamel
06.08.2004, 12:57
В этом предложении есть одни нюанс - с датчиками МаРС схема не будет работать. Им необходимо строго 5 В.

А с KMZ-41 ситуация что - наладилась ? Они ж были под заказ и с нормой заказа "от упаковки".

paraManiac
06.08.2004, 14:00
Вот только много ли програм умеют это понимать ?

А зачем им понимать, они будут исполнять "вверх, направо"- вот и диагональ!
или я тебя не понимаю?

BAG
07.08.2004, 11:28
Вопрос. Какой эмулятор исспользовать для того чтоб посмотреть работу контролера нормально. Я скачал Visual Micro Lab 3.10 , но у нему не нашёл кряка .. ну да ладно , это не важно , важно то , что прошивка которая имеется для САБЖА после устранения всех замечаний которые имел Visual Micro Lab
по отношении к ней, так и не запускается . Тоесть возможности запустить код так и не появляется !!!

Может взять какойнибуть другой емулятор ??? или что посоветуете.

Ещё вопрос , В чем вы моделируете схемы ??

BAG
07.08.2004, 11:34
На выходные как раз прошивку перерабатывать буду и схему сильно менять.

Из планируемых изменений по сравнению со стандартной.

Схемные:
УСБ - перенесено на PD0,PD1+PD2. Последовательно включены резисторы на 68(или 82) Ома. На линиях висят стабилитроны на 3.6 Вольта.

Кнопки - матрица PB0-PB5 х PD4-PD7
Aref через 100 nF подcоединен к ЗЕМЛЕ (включен внутрениий Ареф равный AVCC)
pull-up делитель R1-R2 подключен к PD3
PC0 - подключеный к земле - Dip, к VCC - TQFP/MLF

Изменения в прошивке:
Дескрипторы - оси будут стандартные десктопные X,Y,Slider,Rz,Rx,Ry,(Z,dial)
АЦП при работе будет усыплять МК
Включаться УСБ на микроконтроллере будет после инициализации всего, чтобы не гнать волну пытаясь успеть на инициализацию УСБ.

Порядок ИД0-ИД0-ИД1-ИД0-ИД0-ИД1

Вопросы.

С чем связаны эти изменения. Тоесть какие замечания есть к тому что есть на данный момент ??

Какой корпус планируешь исспользовать в своей схеме ?? ДИП или TQFP ??

SLI=SHURIK_25=
07.08.2004, 15:01
А с KMZ-41 ситуация что - наладилась ? Они ж были под заказ и с нормой заказа "от упаковки".
Нашли в одном месте остатки невыкупленной партии. Но они продавали только оптом минимум на 10000 р.
Скинулись и купили. Помимо KMZ-41 взяли комплектом UZZ9000, вот на этой спарке и родились МаРСы. Правда окончательной конструкции датчика до сих пор еще не наработали. Связано с изменениями мест производства, одни то могут, другие это. С кугаром вообще отдельная история - в процессе установки и эксплуатации первых 10 комплектов много подводных камней всплыло. Но если делать датчик под самодельную механику - то все попроще получается.

catfish
08.08.2004, 15:19
ХЭЛП! Понипрог пишет - потеряное устройство (-24). И как быть с отличиями в номерах контактов в программаторах на картинках?
Чо делать?

USSR_Rik
08.08.2004, 16:26
Я не совсем понял - откуда и зачем вторая картинка? Сделать разводку и подключение по первой (кстати, рекомендуемой автором) не судьба, что ли? Она ж рабочая, не один я проверил.

LazyCamel
09.08.2004, 03:17
блин, забыл сказать про этот смешной баг в VM LAB :-)

Она не дает запускать симуляцию, если заканчивается на метку без данных.

добавь в самом конце ".db 0"

LazyCamel
09.08.2004, 04:19
Вопросы.

С чем связаны эти изменения. Тоесть какие замечания есть к тому что есть на данный момент ??

Какой корпус планируешь исспользовать в своей схеме ?? ДИП или TQFP ??

Ну по порядку номеров.

1) Вообще советуется при разработке усб включать pull-up ПОСЛЕ проведения инициализации переферии. До его включения МК просто висит на питании как обычная нагрузка. Впрочем я поэкспериментировал - на этих скоростях разница малозаметна. Скорее это уже эстетство.
По идее - необязательно.

2) стабилитроны и резисторы. ТАК НАДО. Устройство на усб должно выдерживать длительное закорачивание на питание любой линии у оставаться в границах рабочего диапазона. Волновое сопротивление должно быть ок 90 Ом.

3) Перенос на D0-D1-D2. Упрощается схемотехника и РЕЗКО упрощается код (см. в файле). Плюс появляется возможность загрузки прошивки в МК без программатора, т.к. эти линии по совместительству еще и RS-232

4) Дескрипторы стандартных десктопов - плюс в том что их НЕ НАДО приводить к отрицательным значениям.

5) Изменения в порядке хатки - чтобы не заморачиваться с тем как идут многобитные значения 10-битных осей (а идут они шиворот навыворот). Хотя это тоже скорее необязательное эстетство.

5) Внутренний Aref - более стабильный источник питания. Если его установить в 2.56В - простой расчет напряжения.

6) Кнопки - менее важное (и более медленное) изменение чем оси. Можно передавать реже.

7) Корпус типа DIP удобен только при отладке. Если надо сделать хотя бы 3 экземпляра планары и SMD элементы начинают рулить, просто за счет того, что можно дырки не сверлить и делать одностороннюю печатку. Хотя их и сложнее паять.

ЗЫ: Независимо НИ от чего - можно просто делать так как есть. Все работает и работает стабильно. За что автору огромное спасибо. Мне вот было откровенно лень летом вместо пива, Волги и девушек - разбираться в коде и добавлять поддержку ХИДа, планировал это на гнусную осеннюю грязь.

ЗЗЫ. В качестве компенсации и по поводу все равно пропащих (по поводу дежурства) выходных, частично переделал прошивку под новую схему. С дескрипторами практически разбираться и тотально менять не стал. Оставил почти такие же как в оригинале.

catfish
09.08.2004, 06:28
Я не совсем понял - откуда и зачем вторая картинка? Сделать разводку и подключение по первой (кстати, рекомендуемой автором) не судьба, что ли? Она ж рабочая, не один я проверил.

Вторая картинка взята из странички по ссылке в этой ветке

MeanDog
09.08.2004, 07:59
Молодец, LazyCamel, хорошие вещи добавил. Спасибо за инициативу.
Я пока еще лето больше времени на аэродроме провожу и руки на доработки недоходят.

SLI=SHURIK_25=
09.08.2004, 08:34
LazyCamel
а может к нам в ВКБ махнешь? мы тебе МаРСов отсыпем....

LazyCamel
09.08.2004, 09:16
LazyCamel
а может к нам в ВКБ махнешь? мы тебе МаРСов отсыпем....

Почему нет :-) Я-таки за, и без всяких МаРСов :-) Отлаживаться я и на резисторах могу :-) Тем более осень все одно на носу.

Только у меня это... Руки под механику заточены хуже чем голова :-)
Тиски не мой любимый инструмент :-) Комп и паяльник - это да.

lazycamel@mail.ru

вАся 32050536

SLI=SHURIK_25=
09.08.2004, 09:41
Почему нет :-) Я-таки за, и без всяких МаРСов :-) Отлаживаться я и на резисторах могу :-) Тем более осень все одно на носу.

Только у меня это... Руки под механику заточены хуже чем голова :-)
Тиски не мой любимый инструмент :-) Комп и паяльник - это да.

lazycamel@mail.ru

вАся 32050536
Ну и чудненько, с механикой, слава богу, разбираемся.

на контакт выйду завтра, если позволите, т.к. поеду встречать/провожать сестру, она в Москве проездом.

BAG
09.08.2004, 11:35
На данный момент сделано следующее:

Изменения в схеме

Добавлены 2 мультиплексора старосоветского образца К561КП1 и К561КП2 (стоимость 25 центов за штуку)
что позволило увеличить число опрашиваемых осей с 6ти до 8ми (из-за подлого Директикса) физ предел в такой реализации это 12 независисмых осей.
Также количество кнопок опрашиваемых устройством было увеличино до 32х (опять таки из-за Директ Х (в дескриптире можно перидовать до 64х но оно их не видит чегото :( )) + 1 восьми позиционный хэт.

Уменьшены выходные уровни на ЮСБ.

Итого получилось на данный момент
ДИП корпус (кстати сверлить отверстия совершенно не нужно при изготовлении печатной платы)
8мь независимых осей 2 по 10 бит, 6ть по 8 бит
1 восьми позиционный хет
32 кнопки

Изменения в прошивке

опрос датчиков реализован более оптимально , тоесть время "простоя" теперь исспользуется с боьшей пользой.
Реализована буферизация для устранения дребезга кнопок (хотя с теми что я купил этот самый дребезг не был замечен)

общее время опроса всех датчиков осталось прежним, тоесть в районе 800мкс

покачто всё :( :( :( :(
......

что хотел бы ещё реализовать дальше

добавить парочку внешних регистров , чтоб можно было упростить реализацию управления внешними всякими там светодиодиками и если повезёт ЦАПами для фидбэк , но пока для меня это тёмный лес :( .

добавить програмное сглаживание , для устранения "выбросов" из-за неполадок датчиков.

и вопрос .....

есть ли возможность на одном физическом ЮСБ порту реализовтаь сразу несколько ХИД устройств ??? просто у меня сложилось впечатление , что нет, так как в посылаемом нами дескрипторе устройства нет его Айди а репорт дескрипторы не содержат айди устройства .... хотя я не читал спецификацию покачто самого ЮСБ .... пожалуйста поправте те кто знает..

LazyCamel
09.08.2004, 12:24
На данный момент сделано следующее:
и вопрос .....

есть ли возможность на одном физическом ЮСБ порту реализовтаь сразу несколько ХИД устройств ??? просто у меня сложилось впечатление , что нет, так как в посылаемом нами дескрипторе устройства нет его Айди а репорт дескрипторы не содержат айди устройства .... хотя я не читал спецификацию покачто самого ЮСБ .... пожалуйста поправте те кто знает..

ХИДы висят на endpointax. Сколько сделаешь столько будет. В смысле до 3-х штук :-)

Но смысла - убей не вижу. У тебя что ? портов на маме мало ? Воткни карточку внешнюю баксов за 5-10 или хаб.

Кто-бы вот схемку набросал, чтоб фантомных нажатий в матрице не было :-(

PS: Сильно ног мало - посмотри на 43USB355 - не хуже чем когуаровский
ST92163. Если не пугает TQFP 64 паять, то обойдется он вместе с памятью на круг баксов в 10.
А это и 12 10-бит каналов и 27 независимых ног, 3 точки и два даунстрим порта (т.е. он еще как хаб работает). Причем все на полной скорости, а не на 1.5Мгц

BAG
09.08.2004, 14:39
ясненько .....
но с разными портами в смысле ЮСБ на одном контролере получается както слишком хитровывернуто , потому как ног , как говоришь у выбраного контролера и так очень мало получается , а тут придётся делать 2 физ подключения и причем получается слушать сразу 2 порта и мне кажется делать это нужно будет независимо так как вместе каламбур выйдет.

другие контролеры это конечно хорошо , я вот тоже нашёл тут один такой неплохой вариант - AT43USB351M он поидее дешевле чем 355тый функций вроди на парочку меньше , специально разработан для таких вот девайсов как и у нас ... вот его краткае описание.

• AVR ® Microcontroller-based Function Controller
• Fully Programmable USB Low/Full-speed Function with Five Endpoints
• High Performance and Low Power 1.5/12/24 MIPs AVR RISC Microcontroller
• 120 Powerful Instructions – Most with 83 ns Execution Cycle Times
• 24 KB Masked ROM Program Memory
• 1 KB Internal SRAM
• 32 x 8 General-purpose Working Registers
• 19 Programmable I/O Port Pins
• 12 Channels 10-bit A-to-D Converter
• Programmable SPI Serial Interface
• One 8-bit Timer Counter with Separate Pre-scaler
• One 16-bit Timer Counter with Separate Pre-scaler and Two PWMs
• External and Internal Interrupt Sources
• Programmable Watchdog Timer
• Low Power Idle and Power-down Modes
• 6 MHz Crystal Oscillator with PLL
• 5V Operation with On-chip 3.3V Regulators
• 48-lead LQFP Package
• Binary-compatible with the AT43USB355

Вобщем агригат то что нада , самое оно , но есть одно НО ! У нас в Киеве его нету .. искал по инету , нашел на какойто московской фирме , цена не указана , сказано мол заказывайте , доставим мол , не вопрос , НО упаковкой минимум 500 штук .... 8)

вобщем есть конечно вариант попытаться заказать как тестовый образец на самом Атмейл ... хм , но врядли если и пришлют то в ближаёшее время , у моего знакомого то что он попросил шло примерно 3 месяца ....


хех, мне вот не понятно почему у тебя в матрице возникают фантомные нажатия ???
Фантомные это я так понял ложные тоесть ты нажимаешь например 2 кнопки а нажимается ещё и третья ????
если я правильно понял , то такого быть не должно , так как опрос поидее последовательный был (ну и я для себя такойже сделал , развечто задержки между опросами увеличились из-за мультиплекосора и одного доп опроса)

ещё одно обидное обстоятельство - сколькоб осей в ХИД устройство не перидавало винда (ДиректХ) больше 8ми не воспринимает - ГАДЁНЫШ !
И что терь делать ?? с ними ?? я думал вывернуться и сделать доп ХИД устройство , но пока не вьехал как (просто с первого удара "в лоб" это не видно :( )

BAG
09.08.2004, 14:45
ещё одно хитрое обстоятельство было замечено .. прям мистика ...

сижу вечером после работы долбаюсь с контролером и паяльником ... чтото отладил всё зашибись работает ...... ложу в коробочку и на полочку ...

на след вечер прихожу , подключаю к ЮСБ и сто наблюдаю - НИФИГА ВИНДА НЕ ВИДИТ !! ?? !!! я в шоке таком (не первый раз уже) пони прогом читаю контролер ... всё зашибись читается ... всё в норме , всё поидее что нужно для работы ... я его опять врубать а оно опять не пашет ... я перепрошиваю тойже прошивкой что из флеша контролера выдрал .... и что вижу - ВСЁ ЗАШИБИСЬ РАБОТАЕТ !! ?? !! ??

Ну и что это за БОТВА ??? раньше я с такой фигнёй не встречался .. оно раньше либо вообще не работало , либо работало ...

LazyCamel
10.08.2004, 03:17
ясненько .....
другие контролеры это конечно хорошо , я вот тоже нашёл тут один такой неплохой вариант - AT43USB351M он поидее дешевле чем 355тый функций вроди на парочку меньше , специально разработан для таких вот девайсов как и у нас ... вот его краткае описание.


:-)))))) Это ROM-Masked слегка упрощенного 43USB355E.

Ситуация такая:
Есть 43USB355E - он свои 24Кб прошивки загружает из внешней EEPROM. На нем разрабатываешь конструкцию и проводишь отладку.
Есть 43USB355М - тот самый РОМ-маскид, когда ты отсылаешь в АТМЕЛ прошивку и они делают ЗАПРОГРАММИРОВАННЫЕ на заводе чипы, в которых прошивку поменять уже нельзя.
43USB353/43USB351 - это вариант 43USB355М, в котором часть функций обрезано и все это спрятано в 56-ногий корпус

А по поводу фантомок смотри:

есть столбцы которые считывают инфу (включенные на ввод), есть строки которые последовательно замыкаются на землю и догда на столбцах уровень "0" что означает нажатие кнопки.

теперь представь.
в первой строке замкнута самая левая кнопка, во второй самая левая и вторая за ней, первая строка посажена на ноль.
Пройдись по проводам, получается что низкий уровень заодно и на втором столбце, т.е. все выглядит так как будто в первой строке замкнуты две самые левые кнопки. И т.д.

Вот теперь представь что у тебя две кнопки это хат, а третья - ШИФТ.
ты радостно нажимаешь ШИФТ и жмешь хатку по диагонали - оп-па... у тебя еще что-то нажалось. Вот такой облом.

А нерабочая прошивка - это бывает когда при низком уровне питания пишешь - плавающие биты появляются. Особенность NOR-флеша такая

BAG
10.08.2004, 08:25
я суйчас на работе , такчто особо времени нету .. завтра всё с кнопками у себя проверю ... на такие же глюки . но поидее их небыло...

А с прошивкой что делать ???? ведь это не порядок каждый раз перипрошивать контролер чтоб он заработал !!!

экспериментально установлено что такие глюки начинаются примерно через 4 часа после отключения от питания.

LazyCamel
10.08.2004, 13:42
я суйчас на работе , такчто особо времени нету .. завтра всё с кнопками у себя проверю ... на такие же глюки . но поидее их небыло...

Провер, мож у меня в голове/коде глюки...



А с прошивкой что делать ???? ведь это не порядок каждый раз перипрошивать контролер чтоб он заработал !!!


Программатором другим шить, который тайминги и напряжение выдерживает.

Как вариант - прошить бут-блок для АТМеги и прошиваться через ЕЕ УАРТ. Я для этого и ноги перенес.

BAG
10.08.2004, 15:03
проблема с кнопками впринципе ясна , да она получается если попытаться осуществить паралельное считывание, но поидее если все строки периводить в третье состояние перед выставлением нуля на считываемую строку , то такого быть не должно.

У меня просто вся эта ботва сделана через мультиплексор. Я вообще не подаю на строки ноль с контролера , у меня 1 вход мультиплексора всегда с "0" получается , что я просто переподключаю этот ноль последовательно к каждой строке и считываю после гарантировного переключения мультиплексора столбцы , тоесть одновременно у меня активно только 1 строка , но я толко мне успел всё проверить на глюки ......

нужно будет проверить ...


А у тебя или когонить ещё возникали проблемы с прошивкой ???? в плане её не работоспособности через некоторое время ???

mrFox
10.08.2004, 15:52
фантомные нажатия будут, если кнопки нажимать уголком (по схеме)
будет светиться квадрат
лечится - последовательно с каждой кнопкой добавить диод

LazyCamel
11.08.2004, 03:12
фантомные нажатия будут, если кнопки нажимать уголком (по схеме) будет светиться квадрат, лечится - последовательно с каждой кнопкой добавить диод

Эхе-хе... Во первых последовательно это куда ? в строки, в столбы и т.д.
Не поленись кусок схемки черкнуть...

Во вторых на диоде падения напряжения от 0.4В до 1В , а АТМЕГИ существа у которых по даташиту "0" - не более 0.2VCC - т.е. 1В

USSR_Rik
11.08.2004, 08:02
"По-моему, так" (© Винни-Пух). Кусочек схемы - левый верхний угол, остальные кнопки аналогично. Должны развязаться, если лог. "0" для контроллера не более 1 В - на диоде упадет 0,65..0,75 В (практически любой маломощный кремниевый). Конечно, лучше диоды Шоттки (у них прямое напряжение гораздо меньше) или германиевые, но мне кажется, что и так работать будет.


На символ "земли" (правый контакт кнопки S1) просьба внимания не обращать, я его забыл стереть.

PS Сорри - схема исправлена (была не та полярность диодов. Эта - проверена и работает).

mrFox
11.08.2004, 14:08
to Rik
ну да правильно, а направление выбирается, чтоб кнопка работала
я набрал бескорпусных диодов в выходные распаяю - раскажу
если у кого проблемы со стабильностью - можно спаять програматор
с микросхемкой - буффером - например:
http://ln.com.ua/~real/avreal/adapters.html#ABB

BAG
11.08.2004, 20:00
Да, у меня проблема со стабильностью прошивки .. тоесть получается что простое подключение к ЛПТ порту не годиться ???

Значит буду пробовать достать нормальный програматор ..... если это конечно необходимо.

LazyCamel
12.08.2004, 03:44
2 BAG.
Нах его доставать ? Возьми 74НСТ244 (только ради бога не LS/ALS/AC/ACT и все наши серии ) Схемки у Аврила есть.

Если хочешь - прошей бутлоадер с http://www.microsyl.com/megaload/megaload.html
Или обычный референс который прикидывается внешним программатором с http://www.dl5neg.de/bootloader/bootloader_mega8.hex
И хоть обпрошивайся через ком-порт

BAG
12.08.2004, 05:42
вот , проверил , блин у меня тоже есть фантомные нажатия .... и с чего бы это ???? ведь у меня строки матрицы кнопок поидее разделяются електрически ... хм хотя ...

вобщем буду думать ...

Вопрос.
ЛэзиКамел . в чем ты делал чертёжик схемы которая у тебя в ПДФе ??? если можно полное название проги , я её себе скачаю. Ато в Автокаде както не сподручно рисовать , пусть даже и с билиотекой електронных компонентов ...

MeanDog
12.08.2004, 08:29
На счет фантом-кнопок просто надо ставить диоды последовательно каждой кнопке. С полярностью разобратса недолжно быть трудно.

Я нехотел нагружать началную схему чтобы неспугнуть ентузиастов :)

Про это можно почитать здесь http://www.extremetech.com/article2/0,1558,1610434,00.asp

USSR_Rik
12.08.2004, 08:48
вот , проверил , блин у меня тоже есть фантомные нажатия .... и с чего бы это ???? ведь у меня строки матрицы кнопок поидее разделяются електрически ... хм хотя ...

А как ты их электрически разделял? Моя схема должна работать.

По поводу прошивки - сейчас специально проверил свой макет, валялся без питания несколько дней - все в порядке. Смотри прошивальщик, или питание, или тайминги неверно были откалиброваны, как LazyCamel сказал. Как вариант - полудохлый контроллер - но это уж сам смотри.

BAG
12.08.2004, 09:17
Интересно то , что такие глюки наблюдаются только с моей версией прошивки , если писасть в контролер прошивку МианДога , то на след день всё пашет .. а моя почемуто через 4 часа перестаёт работать ... бред какойто .. но я буду смотреть. Прикол в том , что вот прошло 4 часа подключаю надавно работавший контролер .. и фонарь не пашет ... беру читаю из него прошивку ..всё ОК ЦРЦ совпадает .. все флаги стоят как нужно .... перепрашиваю ейже - всё равно не пашет .... перепрошиваю этоёжк версией уже из хекс файла - иногда пашет иногда нет . Потом прошиваю контролер прошивкой МинДога .... он начинает работать .. после этого прошиваю своей (ничего в ней не меняя) и всё начинает работать .... очень странно как по мне .. я с таким бредом не сталкивался ... хотя я с Атмейловскими контролерами вообще не имел до этого никакого дела ...

По поводу кнопок.

У меня вся схема сейчас представляет из себя 3 корпуса - 1 контролер 2 мультиплексора ... 1 на оси второй на кнопки ....

вобшем матрица кнопок - строки подключены к выходам мультиплексора (8 штук) а столбцы к 4(5) ножкам порта Д .
работает это счастье таким макаром .. выставляю адрес на мультиплексор , который в свою очередь комутирует "0" взятый с шины на выьранную строку. (при этом все другие строки отключаются тоесть подключены через закрытые ключи )

поидее низкий уровень не должен проходить через закрытый ключ !! но он проходит !! и мне это не нравиться .. возможен конечно вариант , что у меня сейчас стоят не правильные задержки и просто ключи не закрываются полностью , но это маловероятно ..... Странно ещё то что с осями особых проблем не возникло ... хотя там тоже стоит подобный мультиплексор. И для кнопопк я в режиме тестирования даже увеличил интервал для гарантированого переключения мультиплексора


По поводу прошивальщика .. какие ты резисторы цеплял на выводах ??? тоесть проято я поставил вместо 330 Ом 390 так как просто не нашел дома 330 ... впринципе мне так кажеться что проблема не в этом ..... понять бы в чем она ...

USSR_Rik
12.08.2004, 13:17
Ну смотри, что получается (как я себе представляю твою схему).

Допустим, замкнуты кнопки "уголком" - левый верхний (ЛВ), левый нижний (ЛН), правый нижний (ПН). Идет лог. "0" на верхнюю шину (т.е. на ЛВ кнопку, она получается замкнута на землю). Но при этом через ЛН и ПН кнопки получается замкнутый на землю и весь второй столбец матрицы (т.е. кнопка ПВ) - вот она и есть фантомно "нажата" при опросе второго столбца и лог. "0" на верхней строке. И мультиплексор здесь непринципиален, он просто декодирует двоичный код от контроллера в позиционный для матрицы.

Сопротивление резисторов 330 или 390 Ом не должно иметь особого значения, ИМХО. У меня стоят по 340 (просто было их много).

Кстати, а правильно ли формируется код для мультиплексора? Может, тут собака порылась? Нужно-то уже двоичный, может, появляется лог. "0" одновременно на двух строках?

BAG
12.08.2004, 20:26
хех вижу проблему ... я просто протупил 8) и не посмотрел .. долго не мог вьехать как же 0 попадает на якобы неактивный столбец .... вобщем придётся лепить кучу диодов .... а это есть плохо - удорожание схемы .... блин ... и мороки много ...

С програмной частью этого вопроса всё нормально.

хех ... буду теперь кумекать печатную плату .. Ксати можете подсказать в чём её лучше всего делать , тоесть впринципе есть пакеты для автоматического создания плат (я просто про такие слышал) знать бы их название
А также название того в чём ЛазиКамел рисовал свои схемы, мне оч понравилась возможность сохранить в ПДФе , так как для меня это больная тема (из-за печати)

ну чтож пора я думаю делать макет на печатной плате. Кстати есть какойнить более ефективный в домашних условиях способ изготовления печатной платы чем печать лазерником на бумаге жирного изображения платы в зеркальном отражении ,а потом приклеивания утюгом этого счастья к фольгированому чемуто там.. ???

LazyCamel
13.08.2004, 04:56
Я рисовал принципиалку в SPLAN 5.0. Печатку в Sprint Layout 4.0 Печатал потом на PDF Factory(драйвер принтера сразу делающий пдф). Просто это весит мало и есть под рукой на работе. Скачать можно например отсюда.
http://www.picbasic.net.ru/soft.html

А вообще для нормальных схем пользуюсь Protel DXP, там в нем есть аналоговая симуляция схем и авторазводка платы/авторасстановка элементов. Но весит докуя.

Платы делаю фоторезистом POSITIV20. Печатаю лазерником на кальке, потом прозрачу TRANSPARANCE SPRAY. Свечу УФ-лампой ДРМ-8. Процесс описан в инете подробно. ТОлько воняет этот фоторезист страшно...

mrFox
20.08.2004, 14:55
to LazyCamel
похоже что вы перепутали D+ и D-
я по крайней мере спаял PD0 на D- и PD1+PD2 на D+
по крайней мере джойстик видится и работает
или для USB это все равно ?

USSR_Rik
21.08.2004, 21:09
Извиняюсь за неправильную схему включения развязывающих диодов (постинг #167 - сейчас исправлена). Я не анализировал код и принял на веру сообщение, что идет опрос столбцов, а на строки подается лог. "0". На самом деле наоборот, судя по всему (просьба к MeanDog'у - подтвердить или опровергнуть). Во всяком случае, теперь схема разделения работает (проверил лично, добрался-таки до паяльника после переезда). Правда, два дня - коту под хвост - снимал размеры печатной платы в голове джоя, рисовал и разводил новую с диодами, сверлил, травил, паял... "а включаешь - не работает!" (© Райкин).

Для тех, кто будет повторять - хинт. Может оказаться удобным использовать вместо двух диодов один p-n-p транзистор. Особенно если для smd-монтажа - самое то, имхо. На эту мысль меня навела конструкция моего лоджика - там именно так и было, я просто чуть-чуть доработал плату.

Кстати, если работа хата реализована через АЦП в контроллере, кто мне объяснит смысл сих транзисторов? Включены-то они точь в точь как надо для диодной развязки... А для включения хат-АЦП никакая диодная развязка не нужна, АЦП в этом смысле - сам себе развязка.

BAG
21.08.2004, 22:33
ненаю ... я писал что читаю столбцы , так как я именно так реализовал свою схемку. В часть кода МианДога которая опрашивает кнопки я не вникал , я её просто заменил , так как у меня всё подругому.

MeanDog
22.08.2004, 12:21
Я не анализировал код и принял на веру сообщение, что идет опрос столбцов, а на строки подается лог. "0". На самом деле наоборот, судя по всему (просьба к MeanDog'у - подтвердить или опровергнуть).

На входах строк PD0-PD6, PB2 есть подтягивающие на +5В резисторы. Если кнопки ненажаты то все они считывают значения "1". Во время считывания столбца одна из ножек PB3-PB5, PD7 переводитса в режим выхода и на нее подается "0". Когда кнопка нажата этот "0" тянет вниз напряжение на входе строки. Это же самое происходит и через диоды. Вот почему, Rik, твоя новая схема есть правильная.

USSR_Rik
22.08.2004, 21:34
То есть, читаются именно строки, а на столбцы последовательно подается "0". Все верно. А то, что схема моя рабочая - так я ее проверил, перед тем как постить, благо - время появилось.

А насчет подтягивающих резисторов - надо посмотреть даташит. Тут интересная штука получается - у меня кнопка хата "вниз" отрабатывается как "вниз-влево". Полагаю, неудачная разводка (монтаж проводами). Так вот, я сегодня и решил подтянуть к +5 В линию PD6 - сработало! Резистор 39 к.

Эх, жаль, N лет назад я не продолжил работу с микроконтроллерами.

LazyCamel
23.08.2004, 06:32
to LazyCamel
похоже что вы перепутали D+ и D-
я по крайней мере спаял PD0 на D- и PD1+PD2 на D+
по крайней мере джойстик видится и работает
или для USB это все равно ?

Да, так и есть... Перепутаны надписи на разъеме УСБ.
Будет исправлено...

ЗЫ: Работает в ХР/98 нормально ? У меня сейчаз просто нет под рукой Windows систем чтобы проверить.



Эх, жаль, N лет назад я не продолжил работу с микроконтроллерами.


Не жалей. Они (МК) стали приличными буквально пару лет, еще в 2002-начале 2003 геморойя хватало. И по производительности и по цене. Это сейчаз раздолье.

По поводу сканирования строк/столбцы. Я просто переписал ту часть кода, под свою плату. У меня притягиваются к "0" строки, а 4-ре столбца как раз и генерирует код. Т.е. прямо противоположно тому что было в оригинальном джое. Впрочем кто не дает развернуть матрицу на схеме :-)

BAG
23.08.2004, 09:44
По поводу сканирования строк/столбцы. Я просто переписал ту часть кода, под свою плату. У меня притягиваются к "0" строки, а 4-ре столбца как раз и генерирует код. Т.е. прямо противоположно тому что было в оригинальном джое. Впрочем кто не дает развернуть матрицу на схеме :-)

И вот мне показалось что так будет лучше ...

Но вот почемуто не получается сейчас сделать плату односторонюю. 8(

BAG
23.08.2004, 09:47
Да кстати у меня в схеме получается что "1" соответсвует не напряжение питания а 3.3Вольта .... я мерал оч много раз.

Такчто поидее резистор на 2К2 поидее и не очень нужен. Впринципе в спецификации написано что там воспринимаются напряжения от 2х до 4х примерно вольт , для определения режима работы ЮСБ ... но кажись всётаки лучше давать именно 3 вольта.

mrFox
23.08.2004, 11:29
to LazyCamel
система Win2000 - джойстик видится и работает
оси работают нормально, кнопки вроде тоже
правда почемуто все время нажата нат вверх
(хотя контролер я перегрел когда паял - может и из-за этого)

catfish
23.08.2004, 23:49
А вот кому платку для TQS F16. От такую. Рисовал в кореле, кому нада могу выслать

LazyCamel
24.08.2004, 06:50
to LazyCamel
система Win2000 - джойстик видится и работает
оси работают нормально, кнопки вроде тоже
правда почемуто все время нажата нат вверх
(хотя контролер я перегрел когда паял - может и из-за этого)

Я посмотрю. Как раз новый комп запущу себе и посмотрю.
Может там в хатке в дескрипторе NULL мешается.

Попробуй прошить файлик модифицированный

mrFox
24.08.2004, 10:30
to catfish
не хватает расположения деталей
to LazyCamel
спасибо - посмотрю

USSR_Rik
25.08.2004, 06:14
Что-то у меня странная бодяга вылезла, как стал проверять все в комплексе.

1. Винда видит джой прекрасно - хат, кнопки, оси (правда, одну еще вообще не включал - посадил на землю, лишняя пока). Это есть гут.
2. LockOn плохо видит хатку - в настройках назначение проходит нормально, при выходе из настроек остается только "вверх". Никакими танцами заставить его увидеть остальные положения в игре не удается (но повторюсь - в настройках все видится и отрабатывается!).
3. Il-2, Il-2 FB видят все нормально, правда, кнопки и оси видятся как девайс ID2, а хатка - как девайс ID5!!! Но работает.

Ну и что это может быть?

catfish
25.08.2004, 15:05
to LazyCamel

Уважаемый!!! А можно ли избавится от несметого количества кнопок (ну не нада мне стоко реально, и некоторым, я думаю тоже), а в замен сделать 9 или 11, только штоб факт нажатия кнопки происходил замыканием выводов контроллера на земляной провод. Допустимо ли это для микросхемы и как должна выглядеть программа прошивки.

LazyCamel
26.08.2004, 06:29
to LazyCamel

Уважаемый!!! А можно ли избавится от несметого количества кнопок (ну не нада мне стоко реально, и некоторым, я думаю тоже), а в замен сделать 9 или 11, только штоб факт нажатия кнопки происходил замыканием выводов контроллера на земляной провод. Допустимо ли это для микросхемы и как должна выглядеть программа прошивки.

Да ясен пень можно. Выглядеть схемно это будет как замыкание нужных выводов на землю. Для микросхемы это нормальный режим работе, там внутри встроеные резисторы к +5В подключены как раз для этого. Если не жмотится осями и отдать одну под хатку, 9-10 кнопок свободно. Прошивку слегка правда надо будет перепахать.

Сейчаз я к сожалению занят, будет время... в сентябре ...

LazyCamel
26.08.2004, 06:40
Что-то у меня странная бодяга вылезла, как стал проверять все в комплексе

...

Ну и что это может быть?

ХЕЗ. Надо пристать к программерам ИД и МГ, как они (через какие вызовы) они обрабатывают джой.

BAG
26.08.2004, 16:00
Я вот непойму чем неустравивает матрица кнопок ????
Она получается несложная в изготовлении ... тоесть тебя никто не заставляет реализовывать все кнопки ... поцепи только столько сколько тебе нужно , а остальные просто будут в запасе. А вот если напрямую делать кнопки то их будет максимум 10 и больше выводов не останется , тогда если 4 на хэт то всего 6 кнопок либо -1 ось для хатки.

А вот добавить в прошивку всяких приколов с кнопками можно , тоесть никто тебя не заставляет перидавать винде все кнопки некторые можешь исспользовать для служебных целей.

catfish
27.08.2004, 09:46
Видите ли Сударь! Я переделываю TQS F16. А в ней такая разводка проводов внутри самой ручки, штаа матрица не подходить. Раскручивать ручку - не внушаить! (узнать почему не внушаить можно в соседней теме по THrustmaster-у). Если можно сделать програмно, зачем ковырять железо? Самостоятельно написать программу под контроллер немогу. Поэтому HELP!!!!

mrFox
27.08.2004, 11:31
то catfish
ну перепаять разводку всетаки быстрее,
чем переписывать программу контролера

то LazyCamel
что-то все равно у меня нат вверх торчит
(страница калибровка джоя)

LazyCamel
27.08.2004, 12:36
то LazyCamel
что-то все равно у меня нат вверх торчит
(страница калибровка джоя)

Странное кино. Нигде ничего по схеме не замыкает ?

mrFox
27.08.2004, 17:24
не замыкает - первое что проверил
может порт пробит - однако с ЖКИ все работает
(может пробит на вход - с ЖКИ все порты только на выход)
пусть кто-нибудь еще эту схемку проверит

BAG
27.08.2004, 17:54
насчёт замыканий. Была замеченя одна весчь , что если юзать флюс , то при его испарении с поверхности паяльником с припоем (а он полюбому с припоем) на поверхности платы может образоваться проводящая плёнка. Я просто сам на такой прикол попал. Впринципе всё вроди как нормально , но вот тестер показывает что мол сопративление между 2мя не замкнутыми дорожками (от платы отключено всё) примерно 5К Ом .... вобщем не очень гуд. Пришлось окуратненько всё почистить и девайс после этого заработал нормально.

Ещё конечно есть вариант такой , что какойто глюк в программе .. но это оч маловероятно. Проверь просто код. Но опять таки мне чтото не вериться что там есть ошибка, хотя всё может быть.

для проверки если у тебя постоянно горит вверх попробуй замкнуть при этом вправо или влево ,если всё будет как и положено , то сделай недопустимую комбинацию тоесть вверх(якобы нажата) и вниз (сам нажми). и посмотри как оно будет обработано. (я не смотрел обрабатывает ли такое состояние ЛэзиКэмэл в своём варианте)

но мне чтото кажеться что это всётаки железо.

Порт тут однозначно непричём так как еслиб не работал порт , то у тебяб ничего там не работало.

BAG
28.08.2004, 16:50
Люди знающие пожалуйста посоветуйте .. я просто с такой ерундой раньше не встречался.....

Значит история старая ... у меня есть своя прошивка .... значит прошиваю я ей контролер , проверяю , всё работает зашибись !! Но после того как контролер с моей прошивкой лежит 3-4 часа отключенный от питания , то винда его вроди как больше не видит !!!!!!!

С первоначальной прошивкой таких глюков замечено небыло !!!!

Самое смешное то что читаю свою прошивку из флешки - идентична !!! перипрошиваю опять еёже - НЕРЕБОТАЕТ !!! прошиваю первоначальной , РАБОТАЕТ , после прошиваю своей, ТОЖЕ РАБОТАЕТ !!!!! и если опять полежит 3-4 часа то работать перистаёт !!!

я ничерта не могу понять ... думал что это из-за конденсатора , отпаял .. таже фигня ... ничего не изменилось..

Помогите кто чем может. Пжалсат 8)

MeanDog
30.08.2004, 09:01
Значит история старая ... у меня есть своя прошивка .... значит прошиваю я ей контролер , проверяю , всё работает зашибись !! Но после того как контролер с моей прошивкой лежит 3-4 часа отключенный от питания , то винда его вроди как больше не видит !!!!!!!


Попробуй поставить на кварц кондэнсаторы как рекомендуется в даташите. Может он непрогретый плохо стартует.

MeanDog
30.08.2004, 09:08
Из моего опыта работы с контроллером:

Если хотите чтобы джоистик всегда стоял первым в списке Game Controllers в Control Panel, тогда ставьте очень малое число в Vendor_ID. Я переставил на своем с 0777 на 0111.
Ил2FB всегда берет первый деваис по списку и его показывает в Hardware -> Input.

LazyCamel
01.09.2004, 16:17
VID = 0000 свободен под тестовые и некоммерческие разработки, ЕМНИП.

BAG
01.09.2004, 17:32
хех . таки решил проблемку. Она оказалась в том , что винда какимто хитрым макаром кеширует чтоли устройства к ней подключаемые .... у меня была ошибка в репорт дескрипторе (а какая чёрт его знает , так как я его изменил и всё заработало) Так вот вобщем АЙДИ ж устроёства не менялось вот оно и стартовало .... а через некоторое время кеш чтоли обнуллся .... вот такие вот пироги.

LuckyBoy
01.09.2004, 23:19
To LazyCamel
Спаял вашу схему, прошилась, НО...
Windows в упор не хочет опознавать устройство.
Вопрос, все ли правильно в схеме, как я читал там напутаны D- и D+, это я поменял местами, но вот подключение делителя к PD3 вызывает смутные сомнения, разве 2.2к резистор не должен идти на VCC???
Если есть возможность выложите не сильно затягивая окончательный подчищеный вариант схемы, а то и так прыгал от нетерпения пока Сухой 2 дня лежал.

GO!
02.09.2004, 00:16
Попробуй поставить на кварц кондэнсаторы как рекомендуется в даташите. Может он непрогретый плохо стартует.
Имхо, нет. кондеры спасут только при НЧ кварцах - меньше 1МГц. Здесь стоит поменять сам кварц, или сам проц.

mrFox
02.09.2004, 11:46
можно попробовать собрать устройство,
которое будет формировать сигнал RESET
у меня контролер просто так запускается,
подключаешь дисплей - нифига
помогла обычная кнопка на RESETе

LuckyBoy
02.09.2004, 15:18
To mrFOX:
Ты вроде спаял контролер по схеме LazyCamel, все у тебя сразу зажило? Не было исправлений в его схеме, а то я все перепроверил по 20 раз - не живет :(

catfish
02.09.2004, 20:07
To mrFOX:
Ты вроде спаял контролер по схеме LazyCamel, все у тебя сразу зажило? Не было исправлений в его схеме, а то я все перепроверил по 20 раз - не живет :(


Я собрал 3 экз. Живут все и с полпинка. Первый зажил не сразу из-за собственной невнимательности

Archer
03.09.2004, 09:03
хотелось бы внести некоторые соображения обыкновенного "эксплуататора" :) по-поводу общей эргономики :)

одной хатки мало. вы тут задумали прекрасное устройство, но, как я вижу, большинство "летает" в Ил-2 ЗС и пляшет от этой печки. однако есть немало харкорных симов, где эмулируется работа с обширной авионикой и надо бы минимум 4 хатки всего на рус-руд. имхо наиболее универсальный рус - у Х-52, если все, что написано в рекламном проспекте соответствует :)
кроме хаток надо бы обеспечить возможность фунциклирования пары многопозиционных тумблеров/переключателей (хотя, это - те же кнопки, только называются по другому)
осей надо бы минимум 8, лучше, конечно, 10 но раз есть ограничение в винде...


еще такой вопрос: давным0давно ко мне в голову пришла идея и никак не хочет уходить :) купить/раздобыть геймпад из тех, где есть аналоговые микроджойстики, оторвать один из них и присобачить его в к рус для управления взглядом. на это ведь тоже понадобится две оси?

LazyCamel
03.09.2004, 10:19
Я тут валяюсь с температурой и лазю в инет по мобиле ошибки в тексте простите . ситуация такая. делитель можно отключить от контроллера и подключить в +5 практически ничего не измениться. сделайте это

В этом случае даже если контроллер не прошит или его нет - виндоуз должна найти УСБ устройство но потом написать - неопознано или неработоспособное устройство или как то похоже

Если она не пишет, значит что то с разъемами проводами или стабилитронами

если пишет то попробуйте померять напряжение на ноге к которой был подключен делитель. иам через долю секунды после подключения должен появиться сигнал +5 я его использовал вместо питания для задержки старта.
Если сигнал появился - значит контроллер работает, если нет - значит нет.

Если контроллер работает, но виндоуз его не определяет - возможно былы ошибка при прошивке или что-то еще.

LuckyBoy
03.09.2004, 10:29
Я тут валяюсь с температурой и лазю в инет по мобиле ошибки в тексте простите . ситуация такая. делитель можно отключить от контроллера и подключить в +5 практически ничего не измениться. сделайте это

В этом случае даже если контроллер не прошит или его нет - виндоуз должна найти УСБ устройство но потом написать - неопознано или неработоспособное устройство или как то похоже

Если она не пишет, значит что то с разъемами проводами или стабилитронами

если пишет то попробуйте померять напряжение на ноге к которой был подключен делитель. иам через долю секунды после подключения должен появиться сигнал +5 я его использовал вместо питания для задержки старта.
Если сигнал появился - значит контроллер работает, если нет - значит нет.

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

mrFox
03.09.2004, 11:25
to LuckyBoy
если ты используешь схемку с самого первого архива MJoyMod
там были перепутанны D- и D+
я паял так : на D- PD0 и делитель; на D+ PD1 и PD2

BAG
03.09.2004, 11:39
либ не прошиты правильно биты конфигурации контролера (смотри оригинальную статью МинДога , там указано всё , а вот в переводе одну картинку забыли дать)

LuckyBoy
03.09.2004, 13:10
to LuckyBoy
если ты используешь схемку с самого первого архива MJoyMod
там были перепутанны D- и D+
я паял так : на D- PD0 и делитель; на D+ PD1 и PD2
О, у меня не так спаяно, я просто D+ и D- поменял. Вечером перепаяю и посмотрю :)

LuckyBoy
03.09.2004, 21:36
Всем спасибо. Все заработало :D

Gennady
05.09.2004, 02:05
Подскажите в чем проблема.Винда определяет контроллер,захожу в
свойства джоя,но ни одна ось не работает.При калибровке оси не отзываются.При нажатии на одну из кнопок-высвечивается двойное нажатие.Все рекомендации по изменениям схемы учитывал.

BAG
06.09.2004, 06:56
питание на АЦП джоя подано нормально ???? и как говорилось неоднократоно проверь разводку . скорее всего гдето просто ошибка.

Возможно если при старте ті хватаешь рками за оси АЦП которіе не подключены то он просто виснет , есть такой прикол.

ПС проверь разводку

Gennady
06.09.2004, 19:09
to BAG
в разводке ошибок нет, в принципе ошибаться то не в чем.
может быть что-то с прошивкой? прошивал через LPT.
по питанию АЦП- подскажи как должно быть

Gennady
06.09.2004, 19:31
to catfish
Может быть подскажещь по поводу контроллера

catfish
06.09.2004, 20:56
Я тут свою платку постил, в jpg. Могу выслать в Corel Draw.
Ты в Москве? А то есть лишняя вытравленная. Ваапче устройство боится "коленок", обращаться с собранной платой при калибровке в винде нада аккуратно. Руками не лапать. (И какая у тебя винда? Если 98 то могут быть и проблемы, думаю из-за дров USB). Програмировал ПОНИ ПРОГ через принтерный порт из под ХР.


Еще раз плата под TQS F16, уже со стабилитронами и некоторыми исправлениями (вид со стороны дорожек), сейчас такая стоит в моем РУДе. Она двухсторонняя, второй слой меди, со стороны деталек служит общим проводом. Провода АЦП не экранировал, и так все прекрасно работает. Программа для прошивки из архива


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

Gennady
06.09.2004, 21:51
to catfish
нет не в Москве- Питере
Винда Хрюшка. прогромил в пони прог
посмотри почту

Gennady
06.09.2004, 22:37
так вот в чем дело!
спасиб тебе.
посмотри еще раз почту

catfish
07.09.2004, 10:06
Сейчас попробовал свой РУД на машине с Win98. Система потребовала дрова USB. Дров от этой матери нет. В Девайсах появилось Неизвестное устройство - PCI USB ..... Ни одна ось не работает, хотя все кнопки реагируют.

mrFox
07.09.2004, 10:35
а разве под Win98 HID есть ?
в Win2000 попробуй

catfish
07.09.2004, 12:25
В принципе добиться работы в Win98 можно, как я понял, но с извращениями и бубном, правда еще не понял с каким.

USSR_Rik
07.09.2004, 19:08
Gennady

Я так понял, что у тебя заработало? Гут!

catfish
07.09.2004, 19:36
ГеНННААААААдий, ты где?

mrFox
08.09.2004, 09:57
ну тут не бубен нужон а драйвера HID под Win98
а на сайте M$ их разве нет ?

BAG
08.09.2004, 11:31
Стоп. а разве под 98мую не работают стандартные ХИД устройства ???
Или я чегото не понял .... ведб всё что делают современные производители впринципе работает как стандартный хид только их "родные" дрова меняют парочку картинок и всё.
Судя по своим личным наблюдениям....

catfish
08.09.2004, 15:51
Если честно, небыло времени разбираться, а сразу не поехало

Gennady
09.09.2004, 06:54
to catfish
Оси заработали :D ,кнопки пока не подключал,думаю что и они работают.
Спасиб за инфу!

USSR_Rik
09.09.2004, 07:45
Ну хорошо, а с оригинальной версией (от MeanDog) кто-нибудь работает? Это я из чистого любопытства. Просто уж больно хорошо подошли кнопки к моему Strike Force (и "диодная" развязка уже на плате кнопок в голове джоя была - не пришлось дорожки резать).

LazyCamel
09.09.2004, 09:28
А принципиальная разница какая ? Из того что было я только алгоритм хатки переделал, да ноги перенес - все остальное как было так и осталось.

Файлик с переделаной схемой и печаткой прилагается. Переименуйте в PDF.

Для масштабирования печатки - расстояние между центрами крепежных отверстий - 1.7" ~43.2 мм. Между центрами ног микросхема 2,54 мм

Если жаба давит/негде взять дроссель - так и быть, замените перемычкой :-)

LuckyBoy
09.09.2004, 10:04
А принципиальная разница какая ? Из того что было я только алгоритм хатки переделал, да ноги перенес - все остальное как было так и осталось.

Файлик с переделаной схемой и печаткой прилагается. Переименуйте в PDF.

Для масштабирования печатки - расстояние между центрами крепежных отверстий - 1.7" ~43.2 мм. Между центрами ног микросхема 2,54 мм

Если жаба давит/негде взять дроссель - так и быть, замените перемычкой :-)
Супер, спасибо. А про алгоритм хатки можно поподробнее, а то я еще только паяю диоды к кнопками и еще не протестировал, где на каких парных замыканиях хатка находится. А так бы сразу и спаял :D

LazyCamel
09.09.2004, 11:34
Хатка - это та, что висит на B0 (row 0)

Изменения в алгоритме тривиальны - вместо переходов и присваиваний - поиск по индексу нажатых кнопок готовых значений в 16-байтной таблице. Запрещенные комбинации установлены в NULL (1111b)

Из неуказанного на схеме - емкости конденсаторов у кварца 22pF

JP2 - разъем для программирования AVR. Нумерация пинов совпадает с программаторами совместимыми с STK200/300

LuckyBoy
09.09.2004, 12:50
Хатка - это та, что висит на B0 (row 0)


Это пояснение для умных :D А для чайников типа меня можно попроще?)))
Например : "Чтобы получить 4 нажатия хатки нужно замкнут 1. РВ0 и ???. 2. РВ0 и ???..."
Просто в оригинальной схеме идет матрица 4-7 и понятно что 24 кнопки и 4 на хатку. А у Вас ...кхм... мне не понятно)))
Даешь электронику в непросвещенные массы необразованных любителей!!! :D

LazyCamel
09.09.2004, 13:49
Объяснения для чайников. Хатка - эти те четыре кнопки подсоединеные к

Pb0-Pd4 ... Pb0-Pd7

LuckyBoy
09.09.2004, 14:45
Объяснения для чайников. Хатка - эти те четыре кнопки подсоединеные к

Pb0-Pd4 ... Pb0-Pd7
Опаньки - значит хатка отжирает 4 кнопки и остается всего 20? Я правильно понимаю?
Вроде же в оригинале было 24 ПЛЮС хатка или я все неправильно понял? :(

M@troskin
09.09.2004, 15:09
Опаньки - значит хатка отжирает 4 кнопки и остается всего 20? Я правильно понимаю?
Вроде же в оригинале было 24 ПЛЮС хатка или я все неправильно понял? :(
Не, неправильно понял - всего 24 кнопки либо хатка плюс 20 кнопок.
Матрица-то всего 6 на 4, откуда ж еще кнопам взятца? ;)

LuckyBoy
09.09.2004, 15:28
Не, неправильно понял - всего 24 кнопки либо хатка плюс 20 кнопок.
Матрица-то всего 6 на 4, откуда ж еще кнопам взятца? ;)
Нет, у MeanDog матрица 4 на 7. Я может и чайник, но до 7 считать-то умею :D

LazyCamel
10.09.2004, 05:39
Ты эти кнопки солить собрался ? :-) Я вон по заказу отдельным личностям вообще переделал на 4 оси 10 кнопок и две хатки.

ЗЫ: ВНИМАНИЕ. ВАЖНО!!!

Вообще-то стандарт УСБ очен жесткий и регламентирует все, вплоть до положения эмблемы УСБ на устройствах.
И по этому стандарту жестко прописаны цвета и разделка кабеля.

Если смотреть на шнур, положив его вниз пластиковой пластиной разъема то разводка должна быть такой (справа налево)
1 - Красный - +5В
2 - белый - "Дата -"
3 - зеленый - "Дата+"
4 - черный - "земля"
корпус разъема - голый провод - "защитная земля"

Красный - в 2 раза толще белого и зеленого.
Черный и защитная - в 3 раза толще.

ТАК ВОТ - КАКИМ идиотом надо быть, чтобы в таких условиях перепутать разводку кабеля ? Вчера бился часа два с контрллером который фигней страдал и не работал. Оказалось - при заделке кабеля какие-то идиоты перепутали провода вот так:

Красный - ЗЕМЛЯ !!!
белый - +5 В
Зеленый - ДАТА+
Черный - ДАТА-

ПРОВЕРЯЙТЕ РАЗВОДКУ КАБЕЛЯ УСБ ПРЕЖДЕ ЧЕМ ЕГО ЗАПАИВАТЬ В СХЕМУ.
Оказывается в электронике не только армяне, на и тайванцы страдают встроенным косоглазием и криворучием.

Если БЫ +5 В оказалось бы не на белом, а на черном проводе - на схему пошло бы 5 в обратной полярности. С МК можно было бы распрощаться.

USSR_Rik
10.09.2004, 08:22
Тайваньцы... может, им так проще... иль дальтоники.

У меня USB кабель не впаян, а на разъеме в плате сидит (обычные штырьки, как на MoBo). А в качестве защиты "от дурака" (фактически - себя любимого :) ) разъем USB на плате контроллера сделал пятиштырьковым (все равно ведь экран есть) и расположил так, чтобы при переворачивании на 180 град. ничего фатального не было - справа налево: экран, +5V, Data+, Data-, земля. Переворачиваем - вместо земли будет экран, вместо экрана - земля. Старый трюк. В идеале, конечно, +5 надо бы в центре и симметрично сделать линии Data - но и так сойдет.

mrFox
10.09.2004, 09:18
проще на плату запаять зазъем USB тип B мама
тогда можно будет стандартным USB кабелем соединять

M@troskin
10.09.2004, 10:18
Нет, у MeanDog матрица 4 на 7. Я может и чайник, но до 7 считать-то умею :D

А я-то не умею ;)
я не программер, первый ноль не сосчитал. Действительно, кнопок-то здесь (http://vkb.sukhoi.ru/elektron/mjoy/schematic.gif) 28...
Но это же не МинДога схема, а Миласаускаса? Может, я что-то за время отпуска упустил, и появилась еще одна схема на Атмега8?

Ага, в 151 постинге появилась схема от LazyCamel, так там уже шесть на четыре линии для кнопок - с PB0 по PB5... Где правда, брат? ;)

LazyCamel
10.09.2004, 10:29
проще на плату запаять зазъем USB тип B мама
тогда можно будет стандартным USB кабелем соединять

Ясен пень что можно... Вот только не всегда возможно по конструкции. Тип В хорошо, когда у тебя плата вплотную к корпусу устройства. А если она посередке ? Или не дай бог вертикально ?

catfish
10.09.2004, 10:57
Ты эти кнопки солить собрался ? :-) Я вон по заказу отдельным личностям вообще переделал на 4 оси 10 кнопок и две хатки.


Большая просьба!! Можно здесь выложить схему с прошивкой? А?
Заранее благодарен.

LuckyBoy
10.09.2004, 11:13
А я-то не умею ;)
я не программер, первый ноль не сосчитал. Действительно, кнопок-то здесь (http://vkb.sukhoi.ru/elektron/mjoy/schematic.gif) 28...
Но это же не МинДога схема, а Миласаускаса? Может, я что-то за время отпуска упустил, и появилась еще одна схема на Атмега8?

Ага, в 151 постинге появилась схема от LazyCamel, так там уже шесть на четыре линии для кнопок - с PB0 по PB5... Где правда, брат? ;)
Миндог и Миласаускас - это вроде одно и тоже лицо :D

LuckyBoy
10.09.2004, 11:18
Ты эти кнопки солить собрался ? :-) Я вон по заказу отдельным личностям вообще переделал на 4 оси 10 кнопок и две хатки.


Да нет, просто я уже просверлил 28 дырочек и прибабахал 28 кнопочек.
Я пока делаю что-то типа панельки с кнопочками и 6 осями на крутилках. В общем фигней страдаю. Механику для джоя еще делать не начинал, а вот панельку решил довести до ума и ... дальше думать куда ее деть :D Спортивный интерес.

MeanDog
10.09.2004, 12:19
Миндог и Миласаускас - это вроде одно и тоже лицо :D
Правильно!
:D