Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Помогите чайнику с usb-интерфейсом.

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   Помогите чайнику с usb-интерфейсом.
EAMedvedev
Junior Member

Сообщений: 1
Откуда: Москва, Россия
Регистрация: Февраль 2004

написано 11 Февраля 2004 13:09ИнфоПравкаОтветитьIP

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

Дано:
Есть usb-геймпад Logitech Wingman (нарисованная с натуры принципиальная схема прилагается) Кнопки SA1..4 и 7..10 сделаны на токопроводящей резине, в замкнутом состоянии имеют сопротивление порядка 30 ом. SA5..6 - микровыключатели, в данной конструкции не используются, приведены со всей обвязкой лишь для полноты картины. (хотя если кто-то объяснит мне почему они подключены так странно, буду благодарен - на сайте производителя этой микросхемы, Cypress, даташита от нее нет в принципе, потому что она снята с продаж... сорок дней тому как. Мда.)

Параллельно кнопкам SA7..10 подключены самодельные кнопки большого размера, призванные дублировать их для совершенно других целей. (о том зачем это надо и почему именно так - отдельный рассказ, потому вдаваться в детали не буду) Они представляют собой конструкцию из фанеры и шурупов, подробно показанную на фотографиях. ( снимок 1 , снимок 2 ) Восемь соединенных через один шурупов, образующих две пары контактов, замыкаются контактной площадкой на нижней стороне фанерного квадрата. Чтобы она не была замкнута все время, под нее положена отжимающая ее вверх подушка из пенофола. (То что он фольгированый - вторично и к делу собственно отношения не имеет, фольга в конструкции не используется. На фотографиях приведен первоначальный вариант конструкции, в окончательном варианте пенофола остались только узкие полоски по краям квадрата.) Контакты естественно слегка дребезжат, но бороться с этим не реально. Таких кнопок четыре, монтаж внутри на мгтф, от конструкции до джойстика идет шлейф пяти проводков, около метра.

Суть проблемы:
Конструкция работает нормально, то есть нажатие кнопок, их удержаниие и прочие операции с ними успешно детектируются и поступают в комп через драйвер джойстика. Тем не менее, это продолжается только ограниченное время - порядка 300-400 нажатий, (каждый раз по разному) после чего джойстик перестает реагировать на какие бы то ни было нажатия даже своих родных кнопок и делает вид что умер. Ничего подобного при штатном использовании джойстика не происходит. Переинициализация его через драйвер в 80% случаев приводит к восстановлению нормального поведения. В оставшихся 20% случаев помогает физически выдернуть его из usb и воткнуть обратно. В конце концов после длительного повторения подобных экзеризисов это приводит к окончательному отказу джойстика реагировать на некоторые из кнопок.

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

Теории:
Теория 1]: Сопротивление внешних кнопок слишком низкое (порядка 1 ом) против 30 ом резиновых кнопок и это вызывает слишком большой ток в микросхеме джойстика.
Теория 2: Неизвестные пока ошибки в конструкции приводят к тому, что ток из одной кнопки втекает в другую каким-то таинственным образом.
Теория 3: Накопленное при нажатиях статическое электричество разряжается в сигнальные контакты.

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

Засим и остаюсь в полнейших непонятках...

Весельчак У
Moderator

Сообщений: 4772
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 12 Февраля 2004 02:57ИнфоПравкаОтветитьIP

А ссылку на datasheet на эту м/сх можно? Что-то я ничего не нашёл.
А вообще-то, очень подозрительно включены кнопки SA1..SA4 и SA7..SA10 - нет подтягивающих к питанию резисторов.

EAMedvedev
Junior Member

Сообщений: 3
Откуда: Москва, Россия
Регистрация: Февраль 2004

написано 12 Февраля 2004 03:07ИнфоПравкаОтветитьIP

цитата:
Весельчак У писал:
А ссылку на datasheet на эту м/сх можно? Что-то я ничего не нашёл.

Да нету ее нигде - ну может если списаться то выложат, но для этого надо у них на сайте зарегистрироваться, да потом создать support case, (если просто так написать - не дадут, так на сайте и сказано) да потом ждать пока ответят, а они и зарегистрироваться-то не дали. Проверяют информацию, видимо. Вручную. Скоро вторые сутки как.

цитата:
А вообще-то, очень подозрительно включены кнопки SA1..SA4 и SA7..SA10 - нет подтягивающих к питанию резисторов.

Это как раз ничего подозрительного. Точно так же кнопки в стандартном PC геймпорте сделаны - в свободном состоянии на них единица, когда кнопка нажимается, эта единица сливается в ноль. Так и в Thrustmaster геймпаде который я попробовал следующим, причем так там сделаны все до единой кнопки. (только чип там вообще бескорпусный и никакой маркировки на нем нет) Собственно, странно наоборот, то что SA5..6 в свободном состоянии равны нулю а не единице - непонятно, чем это обусловлено, потому что микросхема-то судя по тому что удалось найти на сайте Cypress (они, сволочи, после того как сняли с производства, все потерли, но у микросхемы есть потомки) суть программируемый микроконтроллер и входы можно было запрограммировать любым образом. А эти две кнопки - единственные на микровыключателях вместо резины и единственные с нулем вместо единицы. И если микровыключатели можно объяснить механическими причинами (там так удобно в силу формы корпуса - не надо городить огород с дополнительными платами) то вот про подключение их наоборот не знаю.

Dikoy
Member

Сообщений: 301
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 12 Февраля 2004 13:37ИнфоПравкаОтветитьIP

EAMedvedev
SA5..6 - микровыключатели, в данной конструкции не используются, приведены со всей обвязкой лишь для полноты картины.
То есть в Вашей конструкции их нет? Тогда выводы 8 и 9 на +5 брошены?

А тип порта какой? USB1 или 2? Может старая микруха плохо уживается с конкретным протоколом?... Хотя врядли... Судя по тому, что у Вас такие же глюки с другим джойстиком, то проблемы тут, ИМХО, в порту. Или дривере... Поробуйте на другом компе.

Весельчак У
А вообще-то, очень подозрительно включены кнопки SA1..SA4 и SA7..SA10 - нет подтягивающих к питанию резисторов.
Скорее всего, они внутренние. Так всегда делают, если кнопки предполагается использовать резиновые.

EAMedvedev
Junior Member

Сообщений: 4
Откуда: Москва, Россия
Регистрация: Февраль 2004

написано 12 Февраля 2004 20:06ИнфоПравкаОтветитьIP

цитата:
Dikoy писал:
Судя по тому, что у Вас такие же глюки с другим джойстиком, то проблемы тут, ИМХО, в порту. Или дривере... Поробуйте на другом компе.

"При штатном использовании джойстика ничего подобного не происходит". А драйвер линюх hid, какие тут нафиг проблемы, все давно отполировано... Более того, иногда в момент повисания в колонках слышен щелчок, так что определенно происходит какой-то пробой или разряд. Но где? Между чем и чем? Откуда оно там берется? Судя по всему, система из шурупов, проводов и контактных площадок в каком-то смысле не является эквивалентной электрически простым резиновым кнопкам. Вопрос в каком именно, и как с этим бороться, и именно на это моих знаний и не хватает...

Весельчак У
Moderator

Сообщений: 4777
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 13 Февраля 2004 02:33ИнфоПравкаОтветитьIP

EAMedvedev
Точно так же кнопки в стандартном PC геймпорте сделаны
Это слишком разные вещи, чтобы сравнивать.

Может действительно статика? Надо попробовать поставить защитные диоды на входы.

Dikoy
Скорее всего, они внутренние. Так всегда делают, если кнопки предполагается использовать резиновые.
И не с резиновыми тоже, однако почему-то на SA5 и SA6 стоят дополнительные резисторы.

EAMedvedev
Junior Member

Сообщений: 5
Откуда: Москва, Россия
Регистрация: Февраль 2004

написано 13 Февраля 2004 12:13ИнфоПравкаОтветитьIP

цитата:
Весельчак У писал:
EAMedvedev
Точно так же кнопки в стандартном PC геймпорте сделаны
Это слишком разные вещи, чтобы сравнивать.[/b]

Там и там логическая единица замыкается на логический ноль. Так уж и разные?...

цитата:
Может действительно статика? Надо попробовать поставить защитные диоды на входы.

"Для проверки этих теорий между микросхемой и внешними кнопками были запаяны диоды Д9. Никаких изменений в поведении конструкции при этом обнаружено не было..."
Уже пробовал. Ноль внимания фунт презрения, как висло так и виснет.

Весельчак У
Moderator

Сообщений: 4783
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 14 Февраля 2004 02:16ИнфоПравкаОтветитьIP

EAMedvedev
Защитные диоды включаются совсем по-другому. Соединяются 2 диода последовательно (анод к катоду), свободный анод присоединяется к общему проводу ("земле"), свободный катод - к питанию, общая точка - к входу м/сх. Ещё неплохо бы поставить между кнопками и входами м/сх резисторы.

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

Dikoy
Member

Сообщений: 303
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 14 Февраля 2004 18:08ИнфоПравкаОтветитьIP

Щёлкать в колонках может не только от статики, но и от глюков на шинах. Этот эффект я часто наблюдал.
Может все эти железки какие то помехи ловят... Микроволновки рядом нет? Или высоковольтной линии? Я бы сначала просто резисторы поставил (как можно ближе ко входу МС), безо всяких диодов. Ом по 50-10000, в зависимости от результата. Если не поможет, тогда добавить диоды. Если и это не поможет, тогда хреново...

Добавление от 14 Февраля 2004 18:35:

Если микра КМОП, то и через 100к по входу должна срабатывать.

ЗЫ, а может в инфе ошибка? Может подтяжки стоит поставить, как у тех двух кнопок?... Хуже не должно быть...

EAMedvedev
Junior Member

Сообщений: 6
Откуда: Москва, Россия
Регистрация: Февраль 2004

написано 14 Февраля 2004 22:18ИнфоПравкаОтветитьIP

цитата:
Весельчак У писал:
EAMedvedev
Защитные диоды включаются совсем по-другому. Соединяются 2 диода последовательно (анод к катоду), свободный анод присоединяется к общему проводу ("земле"), свободный катод - к питанию, общая точка - к входу м/сх.

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

Конденсатор параллельно кнопке запаять чтоли...

Добавление от 14 Февраля 2004 22:26:

цитата:
Dikoy писал:
Микроволновки рядом нет? Или высоковольтной линии?

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

цитата:
Я бы сначала просто резисторы поставил (как можно ближе ко входу МС), безо всяких диодов. Ом по 50-10000, в зависимости от результата.

Ставил 200 ом, она их проигнорировала. Попробую сейчас, скажем, 50к, вместо тех диодов...

цитата:
ЗЫ, а может в инфе ошибка? Может подтяжки стоит поставить, как у тех двух кнопок?... Хуже не должно быть...

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

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

Добавление от 14 Февраля 2004 23:25:

цитата:
Dikoy писал:
Если микра КМОП, то и через 100к по входу должна срабатывать.

Попробовал подтянуть кнопки к питанию через резисторы 1к. Ноль внимания фунт презрения.

Привесил последовательно кнопкам резисторы 20к. Реакция на кнопки прекратилась. Попробовал 1к. Стало виснуть чуть реже, но не перестало. Поставил 5к1. Вместо джойстика начала таинственным образом вылетать на перезагрузку сама машина, причина непонятна.

Что-йто вы мне всё не то советуете.

Dikoy
Member

Сообщений: 305
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 15 Февраля 2004 00:34ИнфоПравкаОтветитьIP

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

Привесил последовательно кнопкам резисторы 20к. Реакция на кнопки прекратилась. Попробовал 1к. Стало виснуть чуть реже, но не перестало.
Поставил 5к1. Вместо джойстика начала таинственным образом вылетать на перезагрузку сама машина, причина непонятна.
Парадокс... Улучшение ситуации при установке резюков говорит о наличии на входе помехи... А то что вылетает, на ошибку дривера... Или КЗ в порту... Хотя.... У Вас там что, 4.7 пФ стоит? Если да, то это очень странно... Хотя, сетевые помехи там уже блоком питания отфильтрованы, это может быть от других помех...
Так какая ёмкость Вам неизвестна: электролита или простого кондёра? Может электролит пробило...
Привесил последовательно кнопкам резисторы 20к.
Это говорит о наличии внутренних "подтяжек".
Фотографию платы джойстика дать?
Не те частоты... Хотя, вылож если не трудно. Кто знает, может в ней дело...


Что-то мне подсказывает, что причина именно в компе. Попрбуй на другой машине.

EAMedvedev
Junior Member

Сообщений: 7
Откуда: Москва, Россия
Регистрация: Февраль 2004

написано 15 Февраля 2004 01:02ИнфоПравкаОтветитьIP

цитата:
Dikoy писал:
Парадокс... Улучшение ситуации при установке резюков говорит о наличии на входе помехи... А то что вылетает, на ошибку дривера... Или КЗ в порту...

Это не винда. Это линюкс. Он при ошибке в драйвере не молча дохнет, а говорит kernel panic. Вылетает так, как вылетает при хорошей искре в незаземленный корпус, и я думаю что это я просто вышеописанными экспериментами с диодами данный порт usb попортил слегка. (второй джойстик, который благополучно работал хотя бы некоторое время, я пока трогать не стал, но когда я воткнул его в этот же порт, вылетание компа на перезагрузку при нажатии повторилось. Когда воткнул в другой порт, все вернулось на свои места, т.е. он отработал некое разумное время и повис.) Завтра попробую снова с 5к1 на другом порту и посмотрю что станется...

цитата:
Так какая ёмкость Вам неизвестна: электролита или простого кондёра?

Простого кондера. На нем попросту невнятно написано и он заляпан термоклеем. Это единственное что в этой схеме неопределенно, но он-то уж тут точно непричем. Если бы его пробило, блок питания ATX просто отказался бы включаться - у меня уже был в практике именно такой случай, когда я починил считавшийся окончательно мертвым винт при помощи паяльника, конденсатора выковырянного из платы памяти СМ-4, отвертки и молотка, да еще все что на нем было оттуда вытащил...

цитата:
Не те частоты... Хотя, вылож если не трудно. Кто знает, может в ней дело...

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

цитата:
Что-то мне подсказывает, что причина именно в компе. Попрбуй на другой машине.

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

Dikoy
Member

Сообщений: 307
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 15 Февраля 2004 02:12ИнфоПравкаОтветитьIP

EAMedvedev
Это не винда. Это линюкс.
Ну... Пингвина я не очень хорошо знаю...

Простого кондера.
Это хуже. Ибо он то как раз и фильтрует помехи... Неплохо было бы его ёмкость узнать (скорее всего там не 4,7 пФ, а 47нФ нужен, хотя утверждать не берусь).

Но даже если бы и верил, это физиологически невозможно - эта хрень такая здоровая и тяжелая что дотащить ее до другого компьютера просто нереально...
Если гора не идёт к Магомету....
А USB и на буках есть...

EAMedvedev
Junior Member

Сообщений: 8
Откуда: Москва, Россия
Регистрация: Февраль 2004

написано 15 Февраля 2004 11:47ИнфоПравкаОтветитьIP

цитата:
Dikoy писал:
А USB и на буках есть...

Ага, чтобы я еще usb угробил на машине на которой контроллер в принципе не поддается замене. Попытка вставить 5к1 утром снова привела к падению машины насмерть как от искры. И еще одна кнопка умерла, кстати...

Что-то вы все не то мне советуете, определенно.

P.S. Изначально, между прочим, та же конструкция была подключена к геймпорту. Отлично работала неделю и ни разу никто не повис, пока одна из кнопок вдруг не прогорела и не перестала реагировать. Дело определенно в том что конструкция чем-то электронике остро не нравится, вопрос только чем же именно и как с этим бороться чтобы оно перестало дохнуть наконец.

Dikoy
Member

Сообщений: 309
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 15 Февраля 2004 16:05ИнфоПравкаОтветитьIP

EAMedvedev
И еще одна кнопка умерла, кстати...
Изначально, между прочим, та же конструкция была подключена к геймпорту. Отлично работала неделю и ни разу никто не повис, пока одна из кнопок вдруг не прогорела и не перестала реагировать.
Это говорит о ненормальном режиме работы микры... Что-то в подключении не так... или сама она бракованная... Ну не могут микрухи просто так гореть, это ж не 176 серия, в конце концов...
А если попробовать заменить микросхему?

Весельчак У
Moderator

Сообщений: 4794
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 16 Февраля 2004 02:34ИнфоПравкаОтветитьIP

одна из кнопок вдруг не прогорела и не перестала реагировать
То есть как прогорела? Или просто микросхема не реагирует?

Dikoy
Member

Сообщений: 313
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 21 Февраля 2004 02:41ИнфоПравкаОтветитьIP

Вспомнил тут одну вешчь... Не знаю, подходит ли это для данной микры, но однажды знакомый ваял нечто на pic16f84. А там от какой-то буквы зависит начальное состояние сторожевого таймера: отключён или включён. Так вот он тоже неделю маялся и не мог понять, почему у него девайс 30 секунд работает и дохнет Потом отключил таймер в программе и всё заработало.
Эх, даташиту бы

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика