-
Вложений: 1
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
Вопросы.
С чем связаны эти изменения. Тоесть какие замечания есть к тому что есть на данный момент ??
Какой корпус планируешь исспользовать в своей схеме ?? ДИП или TQFP ??
Ну по порядку номеров.
1) Вообще советуется при разработке усб включать pull-up ПОСЛЕ проведения инициализации переферии. До его включения МК просто висит на питании как обычная нагрузка. Впрочем я поэкспериментировал - на этих скоростях разница малозаметна. Скорее это уже эстетство.
По идее - необязательно.
2) стабилитроны и резисторы. ТАК НАДО. Устройство на усб должно выдерживать длительное закорачивание на питание любой линии у оставаться в границах рабочего диапазона. Волновое сопротивление должно быть ок 90 Ом.
3) Перенос на D0-D1-D2. Упрощается схемотехника и РЕЗКО упрощается код (см. в файле). Плюс появляется возможность загрузки прошивки в МК без программатора, т.к. эти линии по совместительству еще и RS-232
4) Дескрипторы стандартных десктопов - плюс в том что их НЕ НАДО приводить к отрицательным значениям.
5) Изменения в порядке хатки - чтобы не заморачиваться с тем как идут многобитные значения 10-битных осей (а идут они шиворот навыворот). Хотя это тоже скорее необязательное эстетство.
5) Внутренний Aref - более стабильный источник питания. Если его установить в 2.56В - простой расчет напряжения.
6) Кнопки - менее важное (и более медленное) изменение чем оси. Можно передавать реже.
7) Корпус типа DIP удобен только при отладке. Если надо сделать хотя бы 3 экземпляра планары и SMD элементы начинают рулить, просто за счет того, что можно дырки не сверлить и делать одностороннюю печатку. Хотя их и сложнее паять.
ЗЫ: Независимо НИ от чего - можно просто делать так как есть. Все работает и работает стабильно. За что автору огромное спасибо. Мне вот было откровенно лень летом вместо пива, Волги и девушек - разбираться в коде и добавлять поддержку ХИДа, планировал это на гнусную осеннюю грязь.
ЗЗЫ. В качестве компенсации и по поводу все равно пропащих (по поводу дежурства) выходных, частично переделал прошивку под новую схему. С дескрипторами практически разбираться и тотально менять не стал. Оставил почти такие же как в оригинале.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от Rik
Я не совсем понял - откуда и зачем вторая картинка? Сделать разводку и подключение по первой (кстати, рекомендуемой автором) не судьба, что ли? Она ж рабочая, не один я проверил.
Вторая картинка взята из странички по ссылке в этой ветке
-
Ответ: USB контроллер джоистика
Молодец, LazyCamel, хорошие вещи добавил. Спасибо за инициативу.
Я пока еще лето больше времени на аэродроме провожу и руки на доработки недоходят.
-
Ответ: USB контроллер джоистика
LazyCamel
а может к нам в ВКБ махнешь? мы тебе МаРСов отсыпем....
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от SLI=SHURIK_25=
LazyCamel
а может к нам в ВКБ махнешь? мы тебе МаРСов отсыпем....
Почему нет :-) Я-таки за, и без всяких МаРСов :-) Отлаживаться я и на резисторах могу :-) Тем более осень все одно на носу.
Только у меня это... Руки под механику заточены хуже чем голова :-)
Тиски не мой любимый инструмент :-) Комп и паяльник - это да.
lazycamel@mail.ru
вАся 32050536
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
Почему нет :-) Я-таки за, и без всяких МаРСов :-) Отлаживаться я и на резисторах могу :-) Тем более осень все одно на носу.
Только у меня это... Руки под механику заточены хуже чем голова :-)
Тиски не мой любимый инструмент :-) Комп и паяльник - это да.
lazycamel@mail.ru
вАся 32050536
Ну и чудненько, с механикой, слава богу, разбираемся.
на контакт выйду завтра, если позволите, т.к. поеду встречать/провожать сестру, она в Москве проездом.
-
Ответ: USB контроллер джоистика
На данный момент сделано следующее:
Изменения в схеме
Добавлены 2 мультиплексора старосоветского образца К561КП1 и К561КП2 (стоимость 25 центов за штуку)
что позволило увеличить число опрашиваемых осей с 6ти до 8ми (из-за подлого Директикса) физ предел в такой реализации это 12 независисмых осей.
Также количество кнопок опрашиваемых устройством было увеличино до 32х (опять таки из-за Директ Х (в дескриптире можно перидовать до 64х но оно их не видит чегото :( )) + 1 восьми позиционный хэт.
Уменьшены выходные уровни на ЮСБ.
Итого получилось на данный момент
ДИП корпус (кстати сверлить отверстия совершенно не нужно при изготовлении печатной платы)
8мь независимых осей 2 по 10 бит, 6ть по 8 бит
1 восьми позиционный хет
32 кнопки
Изменения в прошивке
опрос датчиков реализован более оптимально , тоесть время "простоя" теперь исспользуется с боьшей пользой.
Реализована буферизация для устранения дребезга кнопок (хотя с теми что я купил этот самый дребезг не был замечен)
общее время опроса всех датчиков осталось прежним, тоесть в районе 800мкс
покачто всё :( :( :( :(
......
что хотел бы ещё реализовать дальше
добавить парочку внешних регистров , чтоб можно было упростить реализацию управления внешними всякими там светодиодиками и если повезёт ЦАПами для фидбэк , но пока для меня это тёмный лес :( .
добавить програмное сглаживание , для устранения "выбросов" из-за неполадок датчиков.
и вопрос .....
есть ли возможность на одном физическом ЮСБ порту реализовтаь сразу несколько ХИД устройств ??? просто у меня сложилось впечатление , что нет, так как в посылаемом нами дескрипторе устройства нет его Айди а репорт дескрипторы не содержат айди устройства .... хотя я не читал спецификацию покачто самого ЮСБ .... пожалуйста поправте те кто знает..
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
На данный момент сделано следующее:
и вопрос .....
есть ли возможность на одном физическом ЮСБ порту реализовтаь сразу несколько ХИД устройств ??? просто у меня сложилось впечатление , что нет, так как в посылаемом нами дескрипторе устройства нет его Айди а репорт дескрипторы не содержат айди устройства .... хотя я не читал спецификацию покачто самого ЮСБ .... пожалуйста поправте те кто знает..
ХИДы висят на endpointax. Сколько сделаешь столько будет. В смысле до 3-х штук :-)
Но смысла - убей не вижу. У тебя что ? портов на маме мало ? Воткни карточку внешнюю баксов за 5-10 или хаб.
Кто-бы вот схемку набросал, чтоб фантомных нажатий в матрице не было :-(
PS: Сильно ног мало - посмотри на 43USB355 - не хуже чем когуаровский
ST92163. Если не пугает TQFP 64 паять, то обойдется он вместе с памятью на круг баксов в 10.
А это и 12 10-бит каналов и 27 независимых ног, 3 точки и два даунстрим порта (т.е. он еще как хаб работает). Причем все на полной скорости, а не на 1.5Мгц
-
Ответ: USB контроллер джоистика
ясненько .....
но с разными портами в смысле ЮСБ на одном контролере получается както слишком хитровывернуто , потому как ног , как говоришь у выбраного контролера и так очень мало получается , а тут придётся делать 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ми не воспринимает - ГАДЁНЫШ !
И что терь делать ?? с ними ?? я думал вывернуться и сделать доп ХИД устройство , но пока не вьехал как (просто с первого удара "в лоб" это не видно :( )
-
Ответ: USB контроллер джоистика
ещё одно хитрое обстоятельство было замечено .. прям мистика ...
сижу вечером после работы долбаюсь с контролером и паяльником ... чтото отладил всё зашибись работает ...... ложу в коробочку и на полочку ...
на след вечер прихожу , подключаю к ЮСБ и сто наблюдаю - НИФИГА ВИНДА НЕ ВИДИТ !! ?? !!! я в шоке таком (не первый раз уже) пони прогом читаю контролер ... всё зашибись читается ... всё в норме , всё поидее что нужно для работы ... я его опять врубать а оно опять не пашет ... я перепрошиваю тойже прошивкой что из флеша контролера выдрал .... и что вижу - ВСЁ ЗАШИБИСЬ РАБОТАЕТ !! ?? !! ??
Ну и что это за БОТВА ??? раньше я с такой фигнёй не встречался .. оно раньше либо вообще не работало , либо работало ...
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
ясненько .....
другие контролеры это конечно хорошо , я вот тоже нашёл тут один такой неплохой вариант - AT43USB351M он поидее дешевле чем 355тый функций вроди на парочку меньше , специально разработан для таких вот девайсов как и у нас ... вот его краткае описание.
:-)))))) Это ROM-Masked слегка упрощенного 43USB355E.
Ситуация такая:
Есть 43USB355E - он свои 24Кб прошивки загружает из внешней EEPROM. На нем разрабатываешь конструкцию и проводишь отладку.
Есть 43USB355М - тот самый РОМ-маскид, когда ты отсылаешь в АТМЕЛ прошивку и они делают ЗАПРОГРАММИРОВАННЫЕ на заводе чипы, в которых прошивку поменять уже нельзя.
43USB353/43USB351 - это вариант 43USB355М, в котором часть функций обрезано и все это спрятано в 56-ногий корпус
А по поводу фантомок смотри:
есть столбцы которые считывают инфу (включенные на ввод), есть строки которые последовательно замыкаются на землю и догда на столбцах уровень "0" что означает нажатие кнопки.
теперь представь.
в первой строке замкнута самая левая кнопка, во второй самая левая и вторая за ней, первая строка посажена на ноль.
Пройдись по проводам, получается что низкий уровень заодно и на втором столбце, т.е. все выглядит так как будто в первой строке замкнуты две самые левые кнопки. И т.д.
Вот теперь представь что у тебя две кнопки это хат, а третья - ШИФТ.
ты радостно нажимаешь ШИФТ и жмешь хатку по диагонали - оп-па... у тебя еще что-то нажалось. Вот такой облом.
А нерабочая прошивка - это бывает когда при низком уровне питания пишешь - плавающие биты появляются. Особенность NOR-флеша такая
-
Ответ: USB контроллер джоистика
я суйчас на работе , такчто особо времени нету .. завтра всё с кнопками у себя проверю ... на такие же глюки . но поидее их небыло...
А с прошивкой что делать ???? ведь это не порядок каждый раз перипрошивать контролер чтоб он заработал !!!
экспериментально установлено что такие глюки начинаются примерно через 4 часа после отключения от питания.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
я суйчас на работе , такчто особо времени нету .. завтра всё с кнопками у себя проверю ... на такие же глюки . но поидее их небыло...
Провер, мож у меня в голове/коде глюки...
Цитата:
Сообщение от BAG
А с прошивкой что делать ???? ведь это не порядок каждый раз перипрошивать контролер чтоб он заработал !!!
Программатором другим шить, который тайминги и напряжение выдерживает.
Как вариант - прошить бут-блок для АТМеги и прошиваться через ЕЕ УАРТ. Я для этого и ноги перенес.
-
Ответ: USB контроллер джоистика
проблема с кнопками впринципе ясна , да она получается если попытаться осуществить паралельное считывание, но поидее если все строки периводить в третье состояние перед выставлением нуля на считываемую строку , то такого быть не должно.
У меня просто вся эта ботва сделана через мультиплексор. Я вообще не подаю на строки ноль с контролера , у меня 1 вход мультиплексора всегда с "0" получается , что я просто переподключаю этот ноль последовательно к каждой строке и считываю после гарантировного переключения мультиплексора столбцы , тоесть одновременно у меня активно только 1 строка , но я толко мне успел всё проверить на глюки ......
нужно будет проверить ...
А у тебя или когонить ещё возникали проблемы с прошивкой ???? в плане её не работоспособности через некоторое время ???
-
Ответ: USB контроллер джоистика
фантомные нажатия будут, если кнопки нажимать уголком (по схеме)
будет светиться квадрат
лечится - последовательно с каждой кнопкой добавить диод
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от mrFox
фантомные нажатия будут, если кнопки нажимать уголком (по схеме) будет светиться квадрат, лечится - последовательно с каждой кнопкой добавить диод
Эхе-хе... Во первых последовательно это куда ? в строки, в столбы и т.д.
Не поленись кусок схемки черкнуть...
Во вторых на диоде падения напряжения от 0.4В до 1В , а АТМЕГИ существа у которых по даташиту "0" - не более 0.2VCC - т.е. 1В
-
Вложений: 1
Ответ: USB контроллер джоистика
"По-моему, так" (© Винни-Пух). Кусочек схемы - левый верхний угол, остальные кнопки аналогично. Должны развязаться, если лог. "0" для контроллера не более 1 В - на диоде упадет 0,65..0,75 В (практически любой маломощный кремниевый). Конечно, лучше диоды Шоттки (у них прямое напряжение гораздо меньше) или германиевые, но мне кажется, что и так работать будет.
На символ "земли" (правый контакт кнопки S1) просьба внимания не обращать, я его забыл стереть.
PS Сорри - схема исправлена (была не та полярность диодов. Эта - проверена и работает).
-
Ответ: USB контроллер джоистика
to Rik
ну да правильно, а направление выбирается, чтоб кнопка работала
я набрал бескорпусных диодов в выходные распаяю - раскажу
если у кого проблемы со стабильностью - можно спаять програматор
с микросхемкой - буффером - например:
http://ln.com.ua/~real/avreal/adapters.html#ABB
-
Ответ: USB контроллер джоистика
Да, у меня проблема со стабильностью прошивки .. тоесть получается что простое подключение к ЛПТ порту не годиться ???
Значит буду пробовать достать нормальный програматор ..... если это конечно необходимо.
-
Ответ: USB контроллер джоистика
2 BAG.
Нах его доставать ? Возьми 74НСТ244 (только ради бога не LS/ALS/AC/ACT и все наши серии ) Схемки у Аврила есть.
Если хочешь - прошей бутлоадер с http://www.microsyl.com/megaload/megaload.html
Или обычный референс который прикидывается внешним программатором с http://www.dl5neg.de/bootloader/bootloader_mega8.hex
И хоть обпрошивайся через ком-порт
-
Ответ: USB контроллер джоистика
вот , проверил , блин у меня тоже есть фантомные нажатия .... и с чего бы это ???? ведь у меня строки матрицы кнопок поидее разделяются електрически ... хм хотя ...
вобщем буду думать ...
Вопрос.
ЛэзиКамел . в чем ты делал чертёжик схемы которая у тебя в ПДФе ??? если можно полное название проги , я её себе скачаю. Ато в Автокаде както не сподручно рисовать , пусть даже и с билиотекой електронных компонентов ...
-
Ответ: USB контроллер джоистика
На счет фантом-кнопок просто надо ставить диоды последовательно каждой кнопке. С полярностью разобратса недолжно быть трудно.
Я нехотел нагружать началную схему чтобы неспугнуть ентузиастов :)
Про это можно почитать здесь http://www.extremetech.com/article2/...1610434,00.asp
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
вот , проверил , блин у меня тоже есть фантомные нажатия .... и с чего бы это ???? ведь у меня строки матрицы кнопок поидее разделяются електрически ... хм хотя ...
А как ты их электрически разделял? Моя схема должна работать.
По поводу прошивки - сейчас специально проверил свой макет, валялся без питания несколько дней - все в порядке. Смотри прошивальщик, или питание, или тайминги неверно были откалиброваны, как LazyCamel сказал. Как вариант - полудохлый контроллер - но это уж сам смотри.
-
Ответ: USB контроллер джоистика
Интересно то , что такие глюки наблюдаются только с моей версией прошивки , если писасть в контролер прошивку МианДога , то на след день всё пашет .. а моя почемуто через 4 часа перестаёт работать ... бред какойто .. но я буду смотреть. Прикол в том , что вот прошло 4 часа подключаю надавно работавший контролер .. и фонарь не пашет ... беру читаю из него прошивку ..всё ОК ЦРЦ совпадает .. все флаги стоят как нужно .... перепрашиваю ейже - всё равно не пашет .... перепрошиваю этоёжк версией уже из хекс файла - иногда пашет иногда нет . Потом прошиваю контролер прошивкой МинДога .... он начинает работать .. после этого прошиваю своей (ничего в ней не меняя) и всё начинает работать .... очень странно как по мне .. я с таким бредом не сталкивался ... хотя я с Атмейловскими контролерами вообще не имел до этого никакого дела ...
По поводу кнопок.
У меня вся схема сейчас представляет из себя 3 корпуса - 1 контролер 2 мультиплексора ... 1 на оси второй на кнопки ....
вобшем матрица кнопок - строки подключены к выходам мультиплексора (8 штук) а столбцы к 4(5) ножкам порта Д .
работает это счастье таким макаром .. выставляю адрес на мультиплексор , который в свою очередь комутирует "0" взятый с шины на выьранную строку. (при этом все другие строки отключаются тоесть подключены через закрытые ключи )
поидее низкий уровень не должен проходить через закрытый ключ !! но он проходит !! и мне это не нравиться .. возможен конечно вариант , что у меня сейчас стоят не правильные задержки и просто ключи не закрываются полностью , но это маловероятно ..... Странно ещё то что с осями особых проблем не возникло ... хотя там тоже стоит подобный мультиплексор. И для кнопопк я в режиме тестирования даже увеличил интервал для гарантированого переключения мультиплексора
По поводу прошивальщика .. какие ты резисторы цеплял на выводах ??? тоесть проято я поставил вместо 330 Ом 390 так как просто не нашел дома 330 ... впринципе мне так кажеться что проблема не в этом ..... понять бы в чем она ...
-
Ответ: USB контроллер джоистика
Ну смотри, что получается (как я себе представляю твою схему).
Допустим, замкнуты кнопки "уголком" - левый верхний (ЛВ), левый нижний (ЛН), правый нижний (ПН). Идет лог. "0" на верхнюю шину (т.е. на ЛВ кнопку, она получается замкнута на землю). Но при этом через ЛН и ПН кнопки получается замкнутый на землю и весь второй столбец матрицы (т.е. кнопка ПВ) - вот она и есть фантомно "нажата" при опросе второго столбца и лог. "0" на верхней строке. И мультиплексор здесь непринципиален, он просто декодирует двоичный код от контроллера в позиционный для матрицы.
Сопротивление резисторов 330 или 390 Ом не должно иметь особого значения, ИМХО. У меня стоят по 340 (просто было их много).
Кстати, а правильно ли формируется код для мультиплексора? Может, тут собака порылась? Нужно-то уже двоичный, может, появляется лог. "0" одновременно на двух строках?