Darmok 2 10 мая Опубликовано 10 мая · Жалоба Разрабатываю мышь с последовательным интерфейсом и оптическим датчиком. Мышь предназначена для использования с древними компьютерами (хобби). В данном варианте мыши будет встроен контроллер от клавиатуры для эмуляции нажатий клавиш UP и DOWN или, на выбор, PGUP и PGDOWN вращением колеса мыши, что позволяет использовать скроллинг в DOS браузерах. Кроме того, будут использованы дополнительные боковые кнопки, также вызывающие нажатия клавиш для удобства в старых DOS играх и еще некоторые возможности. Мышь подключается как к COM порту, так и к PS/2 порту клавиатуры. Я не хочу использовать программируемые контроллеры в моем решении, так как не умею их готовить. Я использую корпус от готовой мыши поэтому размер платы предопределен. В связи с этим мне приходится минимизировать число используемых деталей. В данной разработке я столкнулся со сложность аппаратной реализации энкодера колеса мыши. Мне удалось создать схему с нужными свойствами, однако пришлось использовать три микросхемы и 12 пассивных компонентов. Вместе с остальной логикой все это с трудом удалось разместить на плате мыши, но получилось довольно коряво. Поэтому я решил обратится к сообществу экспертов с просьбой помочь мне найти вариант реализации энкодера с меньшим количеством деталей. Больше всего места на плате занимают ИС в дип корпусах, однако при домашнем изготовлении печатных плат использование смд корпусов у меня занимает еще больше площади из-за множества межсторонних переходов. На чертеже я привел свой вариант решения и диаграмму логики работы механического энкодера, используемого в мышах. Требуется получать на двух выходах положительные импульсы длительностью 10-100 мили секунд, в зависимости от направления вращения колеса. Полярность и длительность импульсов диктуется логикой работы остальной части схемы с учетом ее минимизации. Нужно учесть, что колесо может быть остановлено в промежуточной позиции, а также что энкодер может давать дребезг не только в моменты замыкания, но и кратковременный при вращении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 10 мая Опубликовано 10 мая · Жалоба Диаграмма и схема нерабочие, к тому же на схеме ничего оптического. https://www.google.ru/search?q=quadrature+decoder+circuit&tbm=isch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 10 мая Опубликовано 10 мая · Жалоба Диаграмма получена прямыми измерениями нескольких механических энкодеров, используемых в мышах. Все они работают одинаково и именно так, как указано на диаграмме. Неясно почему сделан вывод о ее неверности. Полагаю, что и утверждение о неработоспособности моей схемы тоже не верно (Вы пробовали ее симулировать?). Я имел ввиду оптический датчик (сенсор) движения мыши, а не оптический энкодер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 10 мая Опубликовано 10 мая · Жалоба Здесь нечего симулировать, при первом же нажатии контакты заварятся, ну и дальше тоже работать нечему, по причине нарушения всего и вся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 10 мая Опубликовано 10 мая · Жалоба 18 минут назад, Plain сказал: Здесь нечего симулировать, при первом же нажатии контакты заварятся, ну и дальше тоже работать нечему, по причине нарушения всего и вся. Хотя я и не указал на схеме, что используются КМОП ИС К561ТМ2 и К561ЛА7, полагая что это станет ясно после одного взгляда на нее специалистом, но на всякий (всякого) случай уточню. Пожалуйста обясните, почему заварятся контакты от тока 0,5 мА и в чем конкретно нарушение всего и вся, хотя бы один пример. Я устраню. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 22 10 мая Опубликовано 10 мая · Жалоба может импульсы просто брать с одного датчика, а вот направление определить рассыпной схемой. даже не рассыпной. а с каждого оптодатчика rc цепь и на конденсаторах смотреть операционником. даже без обратной связи. в зависимости кто был замкнут чуть раньше там будет больше или меньше (как схему сделать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 10 мая Опубликовано 10 мая · Жалоба 7 минут назад, firstvald сказал: может импульсы просто брать с одного датчика, а вот направление определить рассыпной схемой. даже не рассыпной. а с каждого оптодатчика rc цепь и на конденсаторах смотреть операционником. даже без обратной связи. в зависимости кто был замкнут чуть раньше там будет больше или меньше (как схему сделать) Я уже изготовил прототип задуманной мыши и уменя все заработало за исключением схемы энкодера построенной на одной ИС. Импульсы на выходе схемы появлялись только каждый второй "щелчок" колеса. Я ранее имел дело с китайским rotary encoder и по-наивности полагал что энкодер колеса мыши работает также. Оказалось что нет. Диаграмма его работы не такая же, хотя на первый взгляд и похожа. Моя задача получить минимальную по компонентам схему, я бы хотел предложения с конкретным схемотехническим вариантом, если, конечно, это Вас не затруднит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rkit 4 10 мая Опубликовано 10 мая · Жалоба Минимально по компонентам - микроконтроллер. 1 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 10 мая Опубликовано 10 мая · Жалоба 1 час назад, Darmok сказал: почему заварятся контакты от тока 0,5 мА Контакты замыкают один керамический конденсатор на другой, сопротивления контактов и конденсаторов порядка 1 мОм, 5 В / 3 мОм = 1600 А, ну и заодно питание поделится пополам, вместо 5 В будет 2,5 В и вся схема тупо выключится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darmok 2 10 мая Опубликовано 10 мая · Жалоба 55 минут назад, Plain сказал: Контакты замыкают один керамический конденсатор на другой, сопротивления контактов и конденсаторов порядка 1 мОм, 5 В / 3 мОм = 1600 А, ну и заодно питание поделится пополам, вместо 5 В будет 2,5 В и вся схема тупо выключится. Нет тут никакого замыкания контактами одного конденсатора на другой. Контакты замыкают источник питания +5В на емкости в 100нФ. Стандартная схема подавления дребезга. Возможно величина емкости и избыточна, но я применяю такое решение много лет и никакие контакты не подгорают. Наоборот при слишком малом коммутируемом токе из-за окисления контактов возрастает переходное сопротивление, что может привести к сбоям в работе. Достаточный ток, протекающий через контакты разрушает окислы. Это называется "эффект самоочищения контактов". Что касается тока в 1600А, попробуйте посчитать энергию запасаемую конденсаторами и прикинте сможет ли она что-либо "заврить". 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 10 мая Опубликовано 10 мая · Жалоба Если как минимум один силовой конденсатор питания любой цифровой схемы отсутствует, она гарантированно нерабочая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 82 10 мая Опубликовано 10 мая (изменено) · Жалоба Для справки: энергия, запасенная в конденсаторе, равна \(W = {{CU^2 } \over 2}\), ключевая буква тут - напряжение в квадрате. При указанных номиналах энергия разряда - 1,25 микроджоуля. Ну а если учесть ESR и индуктивность выводов, то все эти килоамперы стремительно снижаются. Изменено 10 мая пользователем EdgeAligned 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 11 мая Опубликовано 11 мая · Жалоба 9 часов назад, EdgeAligned сказал: Для справки Это всё не секрет, как и то, что помимо энергии, сварку определяют теплопроводность, теплоёмкость и площадь, которые в данном случае никому не известные, а потому заведомо худшие, поэтому таки да, всё заварится с первого раза от пары 100 нФ 5 В. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 82 11 мая Опубликовано 11 мая · Жалоба После теории переходят к экспериментам - вот и попробуйте заварить. А я пока пойду заварю чаёк-с 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 11 мая Опубликовано 11 мая · Жалоба 19 часов назад, Darmok сказал: Мышь подключается как к COM порту, так и к PS/2 порту клавиатуры. Совершенно не понятно - куда автор собрался подавать свои выходные импульсы 10-100мсек? В какие именно линии COM-порта? Входных (в ПК) сигналов от COM-порта всего 4шт.: CTS, DSR, DCD, RI. Автору же нужно минимум 8 таких сигналов: 4шт. для импульсов перемещения + 2шт. - для колеса мыши + 2шт. - для минимум 2-х кнопок мыши. А если добавить ещё и: 19 часов назад, Darmok сказал: Кроме того, будут использованы дополнительные боковые кнопки То получается ещё больше. Или это будет возложено на некий "контроллер клавиатуры", с нормальным UART-выходом (TXD)? Это уже не говоря о том, что макс. частота импульсов перемещения = 50 или 100(?) Гц - маловата для нормальной работы с мышкой. Тем более - для игр (о которых пишет ТС). И не говоря о сомнительном решении с постоянным замыканием 5V-питания на 4шт. 100нФ ёмкости. Сколько протянут контакты замыкающиеся в таком режиме постоянно с частотой 50Гц? - большой вопрос. Ещё и источник этого 5V-питания - TXD(от ПК), RTS, DTR - маломощный. Но должен выдерживать эти импульсные токи замыкания 200нФ (или 400нФ?) на GND без просадок. И одновременно должен питать и всю схему и 5 выходных сигналов COM-порта. И с дребезгом борятся совсем не так. PS: Самое правильное решение тут - выкинуть весь этот колхоз (вместе с контроллером клавиатуры) и заменить его на простейший микроконтроллер с UART. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться