Популярные микроконтроллеры Nuvoton серий М2354 и М251 со склада компании Смарт-ЭК

Дребезг контактов под микроскопом

Texas Instruments SN74LVC1G14 SN74LVC1G17

- Москва

В копилку разработчику, который привык уделять внимание мелочам

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

Hongfa разработала новое силовое реле HF36F-G для умного дома

Есть два метода подавления ложных срабатываний: аппаратный – с помощью схемы, и программный – с помощью алгоритма. В каждом конкретном случае надо смотреть, какой из методов лучше использовать. Я работаю в сфере медицины, поэтому приоритет – надежность, цена реализации на втором месте. Для надежности бороться с ложными срабатываниями будем, используя аппаратный подход как первую ступень защиты, а если это не поможет, добавим программный алгоритм как вторую ступень. На Рисунке 1 представлена схема подавления дребезга контактов для одной кнопки.

Схема подавления дребезга контактов на RC фильтре и триггере Шмитта с инвертором.
Рисунок 1. Схема подавления дребезга контактов на RC-фильтре
и триггере Шмитта с инвертором.

На входе 2 микросхемы D1 (SN74LVC1G14) расположен RC-фильтр с постоянной времени 11 мс. Фильтр, состоящий из элементов R1, R2 и C1, выполняет основную работу по подавлению дребезга. А микросхема логики «НЕ» с триггером Шмитта, во-первых, инвертирует сигнал, чтобы с ним было удобнее работать (кнопка нажата – на выходе «1», отпущена – «0»). Во-вторых, как бы дофильтровывает сигнал, делая это за счет гистерезиса триггера Шмитта. Получается надежная фильтрация.

Работает схема на Рисунке 1 следующим образом. Будем считать, что в исходном положении кнопка SB1 разомкнута.

При подаче питания на схему (в нашем случае 3.3 В) через резисторы R1 и R2 начинает заряжаться конденсатор C1. Микросхема логики стартует быстро и за какие-то микросекунды уже готова к работе. При этом конденсатор C1 заряжается достаточно медленно, и в момент запуска на входе 2 микросхемы D1 низкое напряжение, которое распознается как 0. А значит, микросхема по своей логике «НЕ» переключает свой выход 4 в единицу. На Рисунке 2 показана осциллограмма при подаче питания на схему (точка А).

Канал 1 - напряжение питания схемы; канал 2 - напряжение на входе 2 микросхемы D1; канал 3 - напряжение на выходе 4 микросхемы D1.
Рисунок 2. Канал 1 – напряжение питания схемы; канал 2 – напряжение на входе 2
микросхемы D1; канал 3 – напряжение на выходе 4 микросхемы D1.

Примерно через 10 мс, которые задаются сопротивлениями R1, R2 и емкостью C1, напряжение на входе микросхемы достигнет порога переключения, и выход микросхемы D1 притянется к земле (точка Б на осциллограмме). Таким образом, надо учитывать, что в момент подачи питания на выходе микросхемы проскочит импульс длительностью примерно 10 мс (расстояние от точки А до точки Б, Рисунок 2).

Для того чтобы получить обратную логику работы кнопки, то есть, чтобы при нажатии SB1 на выходе D1 был «0», а при отпускании – «1», надо использовать триггер Шмитта без логического «НЕ» (например SN74LVC1G17). При использовании такой микросхемы после подачи питания логическая «1» на выходе D1 появится спустя 10 мс, которые также определяются зарядом конденсатора C1.

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

Канал 1 - напряжение питания схемы; канал 2 - напряжение на входе 2 микросхемы D1; канал 3 - напряжение на выходе 4 микросхемы D1.
Рисунок 3. Канал 1 – напряжение на кнопке; канал 2 – напряжение на входе 2
микросхемы D1; канал 3 – напряжение на выходе 4 микросхемы D1.

При замыкании кнопки SB1 конденсатор C1 начинает разряжаться через резистор R2. Как только уровень напряжения на нем упадет ниже порогового уровня триггера Шмитта, микросхема «подтянет» выход к плюсу питания, то есть в «1» (точка Б, Рисунок 3). На Рисунке 4 изображена осциллограмма в момент отпускания кнопки (точка А).

Канал 1 - напряжение на кнопке; канал 2 - напряжение на входе 2 микросхемы D1; канал 3 - напряжение на выходе 4 микросхемы D1.
Рисунок 4. Канал 1 – напряжение на кнопке; канал 2 – напряжение на входе 2
микросхемы D1; канал 3 – напряжение на выходе 4 микросхемы D1.

На Рисунке 4 отчетливо видно возникновение дребезга контактов в момент отпускания кнопки (точка В). Условно говоря, дребезг контактной пары частично заряжает конденсатор C1 через резисторы R1 и R2, но из-за своей малой длительности не может поднять напряжение на входе триггера Шмитта выше порогового уровня переключения. Когда же дребезг пропадает (контактная пара кнопки полностью разомкнулась), напряжение на конденсаторе C1 начинает расти, и дойдя до порогового значения, переключает триггер Шмитта в «0» (точка Б, Рисунок 4).

Таким образом, схема подавляет любые импульсы длительностью ниже постоянной времени RC-фильтра на элементах R1, R2, C1 (при указанных на схеме номиналах – это около 10-11 мс). Указанных номиналов обычно хватает практически для любых тактильных кнопок. Если у вас кнопка отвратительного качества, то надо увеличить постоянную времени RC-фильтра, например, поставив конденсатор C1 емкостью 4.7-10 мкФ. Если же вы хотите использовать эту схему для подавления ложных срабатываний энкодера, то номинал C1 надо, наоборот, уменьшить (на практике до 10 нФ). Иначе быстрое вращение ручки энкодера будет восприниматься схемой как помеха.

Несколько слов о резисторе R3. Он нужен для ограничения тока в случае замыкания выхода «OUT» на «землю» или на плюс питания. Такое может случиться, если схема расположена на плате с кнопками, а сигнал принимается на другой плате через шлейф (например, замыкание оголенных проводов, перепутаны контакты и т. д.). Второе его назначение – сделать восходящий и нисходящий фронт сигнала более пологими. Это необходимо для прохождения тестов на электромагнитную совместимость (ЭМС), особенно если длина проводника от выхода микросхемы D1 до входа микроконтроллера большая.

Фронт выходного сигнала микросхемы D1 при отсутствии резистора R3.
Рисунок 5. Фронт выходного сигнала микросхемы D1 при отсутствии резистора R3.

Если R3 не устанавливать, то положительный и отрицательный фронты сигнала будут примерно по 10 нс. На Рисунке 5 показан положительный фронт сигнала при переключении микросхемы D1 в единицу при отсутствии резистора R3.

На Рисунке 6 показан положительный фронт сигнала при переключении микросхемы D1 в единицу при установленном резисторе R3 номиналом 270 Ом.

Фронт выходного сигнала микросхемы D1 с установленным резистором R3 (270 Ом).
Рисунок 6. Фронт выходного сигнала микросхемы D1 с установленным резистором R3 (270 Ом).

Нагрузкой выхода схемы служит вывод микроконтроллера STM32F405, сконфигурированный как вход. Как видно из Рисунка 6, при установленном резисторе R3 фронт сигнала увеличивается примерно до 50 нс. Увеличивая сопротивление резистора R3, можно еще больше растягивать фронт сигнала.

Теперь пару слов о финансовой стороне вопроса. Цена микросхемы SN74LVC1G14 производителя Youtai на сегодняшний день (ноябрь 2024 года) составляет около 10 рублей в магазине Чип и Дип (это, можно сказать, потолок цены). Остальные элементы в расчет не беру – они копеечные. Если вы, к примеру, делаете средний по сложности проект, содержащий клавиатуру из 10 кнопок, 4-5 внешних датчика и пару энкодеров, то в сумме вы получаете 10 + 5 + 2 = 17 каналов для фильтрации. 17×10 руб. = 170 руб. Много это или мало за стабильность устройства в целом? Думаю, ответ очевиден.

Материалы по теме

  1. Datasheet Texas Instruments SN74LVC1G14
  2. Datasheet Texas Instruments SN74LVC1G17
66 предложений от 34 поставщиков
Инвертор, семейство LVC, триггер Шмитта, 1 элемент, 1 вход, 32мА, 1.65В до 5.5В, SOT-23-5
Akcel
Весь мир
SN74LVC1G14DBVR
от 2.12 ₽
ЗУМ-СМД
Россия
SN74LVC1G14DCKR
Youtai
2.70 ₽
EIS Components
Весь мир
SN74LVC1G14DBVRG4
Texas Instruments
4.97 ₽
Кремний
Россия и страны СНГ
SN74LVC1G14GMX
Philips
по запросу
Электронные компоненты. Скидки, кэшбэк и бесплатная доставка от ТМ Электроникс
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Интересные кнопки, не знал. Спасибо за информацию! Вообще я бы с радостью применял подобные кнопки, но в медицине почти ко всем приборам требование по протирке дезинфицирующими средствами. Поэтому почти везде ставим пленочную клавиатуру. Так технологично проще. Чтобы механику поставить и сделать панель так, чтобы вода внутрь прибора не попадала - прям сильно жизнь усложняет.
  • На старых компах производства Болгарии (8086) клавиатура была с герконами. В клавише магнитик в виде колечка, а на плате - геркон. И подпружинено все это очень приятной, мягкой пружинкой. И так на все 100 с чем-то клавиш. Очень надежно, но реализация хромала, ибо клавиатура была сделана из плохо подходящего для этого сорта пластика и могла подклинивать ...
  • "Обычно от дребезга на логических инверторах избавляются установкой резисторов. Самые простые это вот так. Здесь пошаговое управление цапом на счетчике." На первой приложенной схеме дребезг контактов не устраняется и на выходе U2A будет пролетать пачка импульсов, которую, в свою очередь, будет считывать счётчик. Особо порадовал Вам лайк от автора, который сам же и объяснял назначение конденсатора на выходе кнопки.
  • Я разбирал тоже старые клавиатуры от компов. В институте много списывали офисной старой техники. Потом просто выкидывали. Вот тут мы ремонтники кое что могли взять. Много старых принтеров было. Из старых компов вытаскивали в основном жесткие диски и источники питания. Клавы в основном были на датчиках Холла. И магнитик на клавише. Поснимал я этих датчиков полно с плат. Вообще датчики Холла больше подходят под тактовые генераторы. Кроме того которые использовались на клавах имеют пять выводов два там вход вкл. третьего состояния выхода. И корпус такой прямоугольный небольшой. Поднес магнит сверху датчика лог. 1 убрал лог.0 Можно по выходу объединять. На герконах не встречал клавы.
  • [b]DIMON1117[/b], Да не пролетала никогда пачка импульсов. Это схема у меня в железе работала. Источник питания из одного журнала радио. Потом я ее снял. Там при выключения питания все установки по напряжению надо делать заново. Так стояла у меня на макетной плате. Вывести напряжение очень удобно было. Там еще была цифровая защита по току.
  • У автора - надежность, значит, аппаратное подавление. Спорное утверждение. А если конденсатор "оторвется", а если резистор .... Больше компонентов - больше вероятность отказов - меньше надежность. ИМХО. Давно уже отказался от аппаратного подавления дребезга, только программное.
  • [b]petrd[/b], Насчёт аппаратного подавления на этих RC цепочках это все устарело конечно. Можно это все применять в каких то единичных радио любительских конструкциях не более. Для коммерческих массовых изделий применяют специальные микросхемы подавления дребезга. Да и стараться механические контакты заменять электронными например на тех же датчиках Холла. Насчёт программного подавления то это в программе закладывается например при управлении режимами микроконтроллеров. Там обычные кнопки на включение и коммутация на потенциал земли. Ни каких резисторов там не вешается. Но это из другой темы. Здесь чисто аппаратное и не для коммерческих целей.
  • Вот например чистый аппаратный принцип подавления дребезга контактов клавы. Ввод чисел с клавы с сохранением кода и выход на дешифратор команды. Мгновенное нажатие на любую кнопку и двоичное число на выходе и шестнадцатиричный на выходе дешифратора. Дешифратор имеет свое запоминание команды. И не каких дребезгов. Покажу еще что нибудь интересное по управлению контроллером.
  • Например программное устранение дребезгов контактов по управлению кнопками режимов контроллера. Нет на кнопках ни одного резистора. Управление шаговым двигателем по количеству заданных полных шагов и возвратом в предыдущее состояние.
  • Поясните, п-ста, чем подавляется дребезг контактов клавиш A и B при его наличии. Здесь же происходит обсуждение способов его подавления. Может, в симуляторе, где всё ладно и гладко, оно и работает. Да, кстати, если по вашим словам это было изготовлено в железе, то почему не смутило отсутствие блокировки счёта в крайних состояниях? Поясню на пальцах: при нажатии на клавишу A (увеличение) при уже максимальном напряжении на выходе ЦАПа оно упадёт до нуля, и наоборот: при нажатии на B (уменьшение) при нулевом значении скаканёт до максимума. Счётчик то кольцевой. Поправьте, если ошибаюсь.
  • Да вон она лежит, под столом! ;) Шутка :)
  • Так все правильно что вы пишите. Так и работает. В момент включения происходит сброс счетчика. Выходное напряжение на вых. стаба равно практически нулю. Начинаем поднимать напряжение нажатием на увеличение. Всего 15 импульсов ( ступенек напряжений) Если после включения нажать на уменьшение то сразу максимальное напряжение на выходе стаба. Какие тут блокировки нужны. Так же еще сброс счетчика происходит по токовой защите при превышении заданного. Здесь нет ни каких защелок состояний. Можно конечно сделать защелку прямо с четырех выходов счетчика до резисторов цапа.
  • [b]DIMON1117[/b], Вот работа этих установок на повышение напряжения и понижение. После включения напряжения питания. У меня было 18в по входу выходного составного транзистора.
  • [b]DIMON1117[/b], Насчет подавления дребезга на кнопках с резистором. Не забывайте что сами формирователи сделаны не на простой логике а на тригг. шм. Они имеют свои пороги переключения в отличие от обычной логики. Не нравяться вам такие формирователи так в чем же дело. Применяйте без дребезговые тактовые кнопки. Их выбор большой. Я выше давал ссылку.
  • [b]DIMON1117[/b], Вот посмотрите это тригг.шм. CD4093 - его гистерезис переключения и посматрите как меняеться этот уровень переключения при различных напряжениях питания. У серии СD питание от 4- 20в. В отличие от нашей 561 у которой от 4-15в и задержки в три раза больше а значит и максимальная частота у них в три раза меньше.
  • Вот классическая проверенная временем элементарная схема тактовых импульсов на микрике и RS - триггере сделанном на 155ЛА3. Две картинки с разными развертками. В железе на реальных осциллографах ( тоже самое) вы не увидите на импульсе ни каких дребезгов. Можно чтобы ноль был активным - меняется выход у триггера. Можно делать и на СMOS логике. Только номиналы резисторов увеличиваются при этом примерно в десять раз. На таких формирователях в 70 годы работала вся цифровая схемотехника.
  • Ма-а-а-хонький ньюанус: кнопка должна быть переключающей. А суть данной темы в том, что она просто замыкающая.
  • Кнопка должна быть не нейтральной а переключающий. Один вывод замкнут другой разомкнут. Если поставить кнопку с переключением то в одну то в другую сторону, то будет лог. 1 на обоих входах триггера. А это не определенное состояние по выходам Вот и вся суть.
  • То есть обычный микрик с тремя контактами. Есть очень миниатюрные которые стоят в мышках компов. А вся плата размером чуть больше самой микросхемы.
  • Например еще один формирователь от кнопки. Тут любое нажатие по длительности формирует заданное количество импульсов 1 кгц от внешнего генератора. Прошла пачка импульсов и счетчики остановились.. Ждут следующего нажатия. Количество имп. задается на кодовых дискретных переключателях. От 1 - 100. Схема в проте. Тут по импульсной схемотехники побогаче.
Полный вариант обсуждения »