Точка Опоры 34 11 мая Опубликовано 11 мая · Жалоба Не отвлекайтесь на частности. Поставим 100 Ом последовательно с кнопками. В этом "вороньем гнезде" два резистора роли не сыграют... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 11 мая Опубликовано 11 мая · Жалоба 2 часа назад, jcxz сказал: Совершенно не понятно - куда автор собрался подавать свои выходные импульсы 10-100мсек? В какие именно линии COM-порта? Входных (в ПК) сигналов от COM-порта всего 4шт.: CTS, DSR, DCD, RI. Автору же нужно минимум 8 таких сигналов: 4шт. для импульсов перемещения + 2шт. - для колеса мыши + 2шт. - для минимум 2-х кнопок мыши. Или это будет возложено на некий "контроллер клавиатуры", с нормальным UART-выходом (TXD)? И не говоря о сомнительном решении с постоянным замыканием 5V-питания на 4шт. 100нФ ёмкости. Сколько протянут контакты замыкающиеся в таком режиме постоянно с частотой 50Гц? - большой вопрос. Ещё и источник этого 5V-питания - TXD(от ПК), RTS, DTR - маломощный. Но должен выдерживать эти импульсные токи замыкания 200нФ (или 400нФ?) на GND без просадок. И одновременно должен питать и всю схему и 5 выходных сигналов COM-порта. И с дребезгом борятся совсем не так. PS: Самое правильное решение тут - выкинуть весь этот колхоз (вместе с контроллером клавиатуры) и заменить его на простейший микроконтроллер с UART. Для понимания моей задумки привожу блок схему. Контроллер последовательной мыши берется от старой шариковой мыши. Оптический сенсор с квадратурным выходом от PS/2 оптической мыши первых вапусков (начало 2000х). Контроллер клавиатуры выдирается из PS/2 клавиатуры. Энкодер из любой мыши с колесом. Остается реализовать управляющую логику, схема энкодера - часть ее. Как видно из блок схемы по существу устройство состоит из двух независимых частей: собственно мыши и иммитатора клавиатуры. Самым правильным решением было бы выкинуть все кроме оптического сенсора и заменить на микроконтроллер. При этом пришлось бы изучать и самостятельно реализовывать протоколы и интерфейсы обмена по COM и PS/2 портам. Все это ради изделия в одном экземпляре. Сомнительное удовольствие. В моем решении все что нужно это разработать несложную управляющую логику. Пожалуйста подскажите как правильно бороться с дребезгом применитнльно к механическому энкодеру. Давайте уйдем от обсуждения конденсаторов, допустим что я уменьшу величину их емкости до 10 нФ. Так пойдет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 11 мая Опубликовано 11 мая · Жалоба 22 минуты назад, Darmok сказал: Так пойдет? Нет. Уберите эти конденсаторы вовсе и поставьте их на питание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 11 мая Опубликовано 11 мая · Жалоба 1 минуту назад, Plain сказал: Нет. Уберите эти конденсаторы вовсе и поставьте их на питание. Та схема, что я начертил только часть полной схемы. Конденсаторы по питанию присутствуют. Если я уберу конденсаторы на контактах энкодера схема гарантированно не будет работать из-за дребезга. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 11 мая Опубликовано 11 мая · Жалоба Какое время дребезга и период сигнала при вращении ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 11 мая Опубликовано 11 мая · Жалоба 15 минут назад, x893 сказал: Какое время дребезга и период сигнала при вращении ? Насчет времени дребезга затрудняюсь что-либо сказать, так как не имею инструментальных средств чтобы его измерить. Величина подавляющих дребезг емкостей выбрана эмпирически. При наладке устройства можно будет подобрать их величину по минимальной достаточности. Период сигнала зависит от того с какой скоростью вращается колесо. Оценочно, не менее 100 mS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 11 мая Опубликовано 11 мая · Жалоба Just now, Darmok said: Насчет времени дребезга затрудняюсь что-либо сказать, так как не имею инструментальных средств чтобы его измерить. Величина подавляющих дребезг емкостей выбрана эмпирически. При наладке устройства можно будет подобрать их величину по минимальной достаточности. Период сигнала зависит от того с какой скоростью вращается колесо. Оценочно, не менее 100 mS. Пионерский подход. Сначала померять надо, а потом уже схемы рисовать. Да и вопросы сами собой отпадут. Простейший лог.анализитор на 2 канала и пару часов для осознания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 11 мая Опубликовано 11 мая · Жалоба 1 час назад, Darmok сказал: Пожалуйста подскажите как правильно бороться с дребезгом применитнльно к механическому энкодеру. Давайте уйдем от обсуждения конденсаторов, допустим что я уменьшу величину их емкости до 10 нФ. Так пойдет? Нормально и легко дребезг давится программно. При наличии микроконтроллера. Логикой программы опроса. Но в вашем случае, можно хотя-бы сделать: RC-цепочку заряда + RC-цепь разряда + лог.элементы U3.1/U3.2 должны быть с триггерами Шмитта на входе. Тогда будет задержка срабатывания в обе стороны и чрезмерных токов не будет. И да - как уже посоветовали ранее - минимальный набор измерительных инструментов нужно иметь. Самого дешёвого лог.анализатора вполне хватит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 11 мая Опубликовано 11 мая · Жалоба 2 минуты назад, x893 сказал: Пионерский подход. Сначала померять надо, а потом уже схемы рисовать. Да и вопросы сами собой отпадут. Простейший лог.анализитор на 2 канала и пару часов для осознания. Тем не менее такой пионерский подход позволил разработать и изготовить не одно устройство. В данном случае, как я уже писал, мной была изготовлен работающий вариант этой мыши, хотя и с ошибкой в реализации схемы энкодера. Собственно та схема, что я опубликовал получена тупо удвоением первоначального варианта с инвертированием сигналов от энкодера и суммированием выходных сигналов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 11 мая Опубликовано 11 мая · Жалоба 42 минуты назад, Darmok сказал: Собственно та схема, что я опубликовал получена тупо удвоением первоначального варианта с инвертированием сигналов от энкодера и суммированием выходных сигналов. А зачем вообще эта схема? Я так понимаю - импульсы перемещения вы собираетесь передавать через какие-то из сигналов: CTS, DSR, DCD, RI? Если так, то драйвер мыши для ПК вам придётся всё равно писать самому. Тогда почему не бороться с дребезгом программно в этом драйвере на ПК? И вообще бОльшую часть схемы выкинуть, сделав просто 4 формирователя уровней для 4-х сигналов энкодера и пустив их напрямую на CTS, DSR, DCD, RI? Вся остальная обработка - в драйвере на ПК. Просто 4 повторителя или инвертора с триггерами Шмитта на входе и всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 11 мая Опубликовано 11 мая · Жалоба 10 минут назад, jcxz сказал: А зачем вообще эта схема? Я так понимаю - импульсы перемещения вы собираетесь передавать через какие-то из сигналов: CTS, DSR, DCD, RI? Если так, то драйвер мыши для ПК вам придётся всё равно писать самому. Тогда почему не бороться с дребезгом программно в этом драйвере на ПК? И вообще бОльшую часть схемы выкинуть, сделав просто 4 формирователя уровней для 4-х сигналов энкодера и пустив их напрямую на CTS, DSR, DCD, RI? Вся остальная обработка - в драйвере на ПК. Просто 4 повторителя или инвертора с триггерами Шмитта на входе и всё. Нет, никаких самописных драйверов не нужно. Все работает стандартным образом через стандартные системные драйверы. Причем на любой ОС поддерживающей СОМ портовую мышь. Внимательно посмотрите на блок схему, все пакеты содержащие информацию о нажатии клавиш и перемещении мыши передаются через соответствующие интерфейсы обычным образом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 11 мая Опубликовано 11 мая · Жалоба 4 часа назад, Darmok сказал: схема гарантированно не будет работать из-за дребезга Подумайте, как переставить имеющиеся компоненты, чтобы она заработала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 11 мая Опубликовано 11 мая (изменено) · Жалоба 2 часа назад, jcxz сказал: напрямую на CTS, DSR, DCD, RI? Вся остальная обработка - в драйвере на ПК. Зачем ему все это? Он в COM порт лезти не собирается, кроме того, что воткнет туда стандартную опт мышь, ему насколь понял, нужно просто прикрутить колесо на кнопки pgUp PgDwn контроллера клавы и воткнуть его в порт ps\2. А поэтому ему нужно сделать формирователь направления колеса и импульса, дальше можно поставить пару оптронов и сигналом направления выбирать нужный оптрон и долбить в него пульсом. Схема там насколь помню D триггер и пара лог. элементов с RC цепочками антидребезга... Изменено 11 мая пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 11 мая Опубликовано 11 мая · Жалоба 33 минуты назад, mantech сказал: Зачем ему все это? Он в COM порт лезти не собирается, кроме того, что воткнет туда стандартную опт мышь, ему насколь понял, нужно просто прикрутить колесо на кнопки pgUp PgDwn Я изначально понял, что речь шла об энкодере вращения шарика мышки в старой (не оптической) мыши. Там как раз такие энкодеры стояли по X и по Y. Если речь о колесе прокрутки, то да - это другое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 11 мая Опубликовано 11 мая · Жалоба 51 минуту назад, mantech сказал: Схема там насколь помню D триггер и пара лог. элементов Это для непрерывного сигнала и полнопериодная, а у автора для случайного и четвертьпериодная, кроме того сигналы нужны не кодированные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться