Закрыть

Подавление дребезга контактов кнопки: Устранение и подавление дребезга кнопок в проектах ардуино

Содержание

Подавления дребезга механических контактов

Подавления дребезга механических контактов


Непосредственная подача сигналов на входы микросхем от кнопок и переключателей не всегда допустима из-за так называемого "дребезга" — многократного неконтролируемого замыкания и размыкания контактов в момент переключения (происходит из-за механического резонанса в течение времени до 40...100 мс).

Нечувствительными к дребезгу являются входы начальной установки триггеров, счетчиков и регистров (обнуление по входам R). В этом случае могут использоваться схемы рис. 1.1.

Рис. 1.1. Импульсы с дребезгом на контактах

Подача логических уровней сигнала на счетные входы микросхем требует подавления дребезга — без этого возможно случайное многократное срабатывание счетчиков.

Рис. 1.2. Подавление дребезга при помощи:
а), б) RS-триггера на элементах 2И-НЕ; в), г) RS-триггера на элементах 2ИЛИ-НЕ

На рис. 1.2 приведены схемы подавления дребезга с помощью RS-триггера, собранного на отдельных ЛЭ. Варианты приведенные на рис. 1.2в и 1.2г, менее помехоустойчивы. Аналогичную схему можно выполнить на RS-триггере микросхемы 561 ТМ2, соединив неиспользуемые входы D и С с 0. Если требуется подавать много сигналов, то лучше воспользоваться микросхемами с четырьмя триггерами в одном корпусе (рис. 1.3).

Рис. 1.3. Использование одной микросхемы с четырьмя триггерами для подавления дребезга

На выходах триггеров 561 ТР2 сигнал лог. "1" появляется на время переключения S1...S4. При этом переключатели независимы друг от друга. Варианты формирователей сигналов на микросхемах 561 ТМЗ, 561 ИР9 и 561ИЕ11 обеспечивают фиксацию coстояния на выходе лог. "1" после нажатия соответствующей кнопки (остальные выходы обнуляются). Схемы (рис. 1.3б...1.3г) позволяют нажимать поочередна только одну кнопку, а при нажатии двух одновременно запоминается состояние первой по времени сработавшей кнопки. Цепь из C1-R6 служит для начальной нулевой установки выходов при включении питания. Применение регистра ИР9 позволяет при необходимости иметь на выходах инверсные сигналы, подав на его управляющий вход 2 лог. "0".

Чаще удобнее использовать кнопки с одной группой контактов. Высокое входное сопротивление КМОП микросхем и относительно высокое выходное (100...1000 Ом) позволяют упростить узел подавления дребезга (рис. 1.4),

Рис. 1.4. Подавление дребезга на триггере с управлением по выходу

но такое включение недопустимо для микросхем с повышенной нагрузочное способностью, например 561ЛН1, 561ЛН2, 176ПУ1,176ПУ2 и т. д., так как их выходные токи при закорачивании выхода на общий провод кратковременно могут достигать десятков миллиампер, что снизит надежность устройства, а также создаст импульсные помехи.

Рис. 1.5. Формирование длинного импульса с помощью:
а) триггера Шмитта; б) триггера Шмитта собраннго на ЛЭ

Подавление дребезга на контактах возможно с помощью RC-цепи и триггера Шмитта (рис. 1.5). На выходе ЛЭ формируется импульс с крутым фронтом.

Рис. 1.6. Подавление дребезга с задержкой включения и выключения

Для подавления дребезга от кнопки с одной группой контактов могут применяться схемы, приведенные на рис. 1.6. Они аналогичны по принципу работы. При замыкании кнопки SB1 емкость С1 начинает заряжаться. Постоянная времени цепи заряда (tз=0,7R2С1) выбирается такой, чтобы переключение элемен та D1.1 происходило после прекращения дребезга. При размыкании SB1 процесс перезаряда конденсатора аналогичен, что видно из диаграммы.

Рис. 1.7. Подавление дребезга с задержкой:

а) выключения; 6) включения

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

Рис. 1.8. Переключатель с взаимовыключением на основе трехстабильного триггера

На рис. 1.8 показана схема переключателя на три положения с взаимным выключением на основе трехстабильного триггера. При включении питания лог. "0" с разряженного конденсатора С1 через диод VD1 подается на входы элементов D1.1, D1.2 и на выходах появится лог. "1". Этот сигнал через резисторы R1 и R2 поступает на входы элемента D1.3 (на выходе появится лог. "0"). Таким образом, в исходном состоянии на выходах 1 и 2 будет лог. "1", а на выходе 3 —
лог. "0". При нажатии на кнопку SB1 на выходе 1 появится лог. "0", а на 2 и 3 — лог. "1". Аналогично происходит при нажатии других кнопок, что исключает дребезг сигнала на выходе, однако при одновременном нажатии сразу двух или трех кнопок переключение выходного уровня происходит без подавления дребезга.

При проектировании цифровых устройств с подачей управляющих сигналов от многокнопочной клавиатуры для уменьшения числа деталей используют матричные шифраторы, на выходе которых в зависимости от номера нажатой кнопки формируется соответствующий двоичный код (например Л5, стр. 279; ЛЗ стр. 226).

В качестве простейших схем для подавления дребезга механических контактов могут использоваться ждущие мультивибраторы.


Подавление дребезга контактов | Лаборатория Электронных Средств Обучения (ЛЭСО) СибГУТИ

В лабораторных работах по цифровой схемотехнике при изучении триггеров, регистров и счетчиков для подачи тактовых импульсов с помощью кнопки Bottom рекомендуется использовать блок Antitinkling. Данный блок предназначен для подавления дребезга контактов. Из-за этого явления непосредственное подключение кнопки с механическим замыканием контактов к цифровой схеме не всегда допустимо. Суть дребезга заключается в многократном неконтролируемом замыкании и размыкании контактов в момент коммутации, в результате чего на цифровую схему подается множество импульсов вместо одного.

Для тех кто пишет на Verilog или хочет узнать о других способах реализации рекомендуем:
Подавляем дребезг контактов в ПЛИС. Debouncer на Verilog

Причина дребезга заключается в механической конструкции кнопки, которая не позволяет мгновенно зафиксировать контакт. На рисунке 1 показана временная диаграмма сигнала в момент переключения. Принято считать, что у кнопок дребезг длится не более нескольких десятков мс, а длительность нажатия кнопки человеком длится несколько сотен мс (рисунок 2).

Рисунок 1 – Дребезг контактов при замыкании кнопки   Рисунок 2 – Диаграмма нажатия кнопки

Схема для подавления дребезга контактов показана на рисунке 3 и состоит из двухступенчатого D-триггера, работающего по переднему фронту (по умолчанию в Quartus II), и генератора управляющих импульсов. Для генерации управляющих импульсов используется внешний тактовый генератор и делитель частоты.

Рисунок 3 – Функциональная схема подавителя дребезга

Схема фиксирует логическое состояние на сигнальной линии только в момент времени подачи импульса. Время фиксации определяется длительностью фронта управляющего импульса и для микросхемы EP1C3T144C8 (ПЛИС FPGA) составляет несколько нано секунд (нс). За это время уровень на линии кнопки измениться не может и в триггер будет записано текущее состояние кнопки.

Частота тактового генератора в учебных стендах LESO2 равна 6 МГц, в стендах LESO2.1 и LESO2.3 – 50 МГц. Делитель частоты должен обеспечить интервал между импульсами больше, чем длительность дребезга и менее чем длительность нажатия кнопки. Мы рекомендуем выбрать интервал 50 – 100 мс. На рисунке 4 показаны диаграммы работы схемы.

Рисунок 4 – Диаграмма работы подавителя дребезга (debounce)

На рисунке 5 показана схема подавителя дребезга в графическом редакторе Quartus II. На рисунках 6 и 7 показано как добавить в проект счетчик-делитель частоты и настроить его с помощью MegaWizerd Plug in Manager.

Рисунок 5 – Схема подавителя дребезга (debounce) в среде Quartus II

На устаревших стендах LESO2 для того, чтобы внешний генератор заработал, необходимо на pin91 подать логическую "1", в новых стендах LESO2.1 и LESO2.3 этого делать не нужно.

Рисунок 6 – Выбор счетчика (lpm_counter) в среде Quartus II Рисунок 7 – Настройка счетчика (lpm_counter)

При необходимости разрядность счетчика, а, следовательно, период следования управляющих импульсов, может быть отредактирован. Для этого следует запустить MegaWizard двойным кликом мыши по объекту lpm_counter.

что это за явление, способы его устранения и подавления

В этой статье мы рассмотрим такое распространенное и вредное явление как дребезг контактов. Ознакомимся с основными причинами возникновения дребезга. Изучим основные методы аппаратного и программного устранения данного явления.

Что такое дребезг контактов?

В конструкциях всех электромеханических устройств, предназначенных для замыкания-размыкания цепей, существует одна или несколько контактных пар. С их помощью происходит коммутация соответствующих электрических компонентов. Существенным недостатком электромеханических контактов являются произвольные неконтролируемые многократные повторы коммутации, вследствие упругости элементов контактной системы. Это явление получило название – дребезг контактов, а борьбу с ним ведут практически с того момента когда появились первые элементы автоматизированных систем.

Давайте разберёмся, какие физические факторы вызывают дребезжание и почему при этом возникают негативные последствия.

Причины возникновения

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

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

Разницу между идеальной и реальной формой импульсов видно на рис. 1.

Рисунок 1. Сравнение идеального импульса с реальным

Как видно из рисунка идеальным является сигнал с одним прямоугольным импульсом. На практике всё выглядит иначе. Дребезг изменяет осциллограмму сигнала. Определённые коррективы вносит искрение. Форма импульсов на рисунке сильно приукрашена. В реальной ситуации осциллограмма выглядит более потрёпанной.

Частота и количество касаний контактов зависит:

  • от свойств компонентов коммутирующего узла;
  • уровня напряжения на обмотках реле;
  • от упругости пружины и некоторых других факторов.

Дребезг наблюдается и во время размыкания контактов. Обычно при механическом размыкании контакты меньше дребезжат.

На рисунке 2 наглядно изображена осциллограмма напряжения в результате коммутации электрического тока вследствие нажатия на кнопку.

Рисунок 2. Осциллограмма коммутационного тока

На осциллограмме видно серии импульсов, характеризующих процесс дребезга.

Вредное влияние дребезга

Чтобы понять негативные последствия от дребезга, рассмотрим процессы, возникающие при коммутации слабых и мощных электрических цепей. Как только расстояние между контактами оказывается достаточным для зажигания электрической дуги, между ними возникает разряд, который разрушает соприкасающиеся поверхности. Искрение, возникающее при механическом контакте, обычно имеет небольшую разрушающую силу. Но электрическая дуга большой мощности вызывает повышенный износ.

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

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

Цифровая электроника воспринимает их за чередование сигналов, состоящих из нулей и единиц. Устройствами считываются ложные коды, вызванные дребезгом при нажатиях кнопки, что приводит к сбоям в работе. Поэтому устранения дребезга является важнейшей задачей, которую приходится решать многим конструкторам и схемотехникам.

Способы устранения и подавления дребезга

Без конструктивного изменения контактной системы устранить либо подавить дребезг принципиально невозможно. Примером таких конструктивных изменения можно наблюдать в узлах галетных переключателей или в кнопках типа П2К. В упомянутых конструкциях дребезг практически отсутствует. Нет его и у механического переключателя ползункового типа.

Аппаратный способ

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

Для снижения уровня коммутационного износа в различных реле и силовых выключателях применяют искрогасящие цепочки:

  • шунтирующие RC-цепи;
  • варисторы, препятствующие скачкообразному изменению напряжения;
  • обратные диоды, подавляющие напряжения самоиндукции;
  • стабилитроны;
  • комбинированные схемы (варистор +RC-цепь).

Эти цепочки помогают устранить дребезг путём выравнивания скачкообразных характеристик тока. Их подключают параллельно нагрузке либо к контактам реле. Существуют также схемы, в которых искрогасящие цепи подключаются одновременно и к нагрузке и к реле.

Схемы цепей изображены на рис. 3.

Рисунок 3. Схемы искрогасящих цепей

У каждого способа есть свои преимущества и недостатки. В зависимости от того какого результата необходимо достигнуть, применяют ту или иную схему.

Управление приборами чувствительными к дребезгу осуществляется через ФНЧ (например, через RC-цепочку). Обладая электрической емкостью, конденсатор забирает часть энергии в момент касания контактов. После разрыва цепи вследствие дребезга накопленная энергия возвращается. Таким образом, происходит сглаживание амплитуды колебаний.

Установки триггеров

Ещё один способ борьбы с дребезгом состоит в использовании специальных электронных схем, включающих rs-триггеры.

Роль триггеров заключается в преобразовании входного аналогового сигнала в цифровой и инверсии (переворачивания) логических уровней. Наглядно инверсию объясняет схема на рисунке 4.

Рис. 4. Наглядная схема инверсии сигнала

Устройство учитывает только части сигналов, превосходящие заданные пороговые значения, выдавая логические нули и единицы на выходе. Каждый раз восходящий или нисходящий сигнал переключает триггер, когда он проходит верхнее или нижнее пороговое значение. Проще говоря, провалы напряжения компенсируются инвертированными импульсами триггеров.

Простая схема с триггером показана на рисунке 5.

Рис. 5. Наглядная схема подключения rs-триггеров

Промежутки между пороговыми значениями называются гистерезисом. Форма таких импульсов используется для шумоподавления во время переключения логических сигналов. Сигнал от контакта поступает на схему, имеющую передаточную статическую характеристику в виде петли гистерезиса (триггер Шмидта). Только после этого сигнал с выходов триггера подаётся на вход цифрового устройства для тактирования.

Использование герконов

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

Управление контактами герконов осуществляется внешним магнитным полем. Для этого можно использовать постоянные магниты или электромагнитную индукцию. Устройства могут использоваться в маломощных цепях. Они имеют длительный срок службы, так как контакты в них не изнашиваются.

Программный метод

Для устранения дребезгов в различных вычислительных машинах используют программную обработку сигналов. При этом для тактирования берётся сигнал не непосредственно от контакта, а связанная с ним однобитная булевая переменная, сформированная специальной программой:

  • путём временной задержки сигнала, на период вероятного дребезга контактов;
  • методом многократного считывания состояния контактов, на заданном временном интервале. Программа считает цепь замкнутой, если на этом промежутке времени наступает период устойчивого замыкания контакта;
  • используя алгоритм подсчёта, при котором учитывается количество совпадающих значений сигналов замкнутости в определённый промежуток времени (в пределах от 10 до 100 мкс). Если программой будет замечено заданное число совпадений состояния замкнутости, она посчитает контакт устойчиво замкнутым и пропустит сигнал.

Сигнал, полученный программным способом, довольно надёжный и устойчивый. К недостаткам такой схемы подавления дребезга можно отнести разве что небольшую задержку сигнала, которая не превышает 0,1 с. Этот промежуток времени настолько мал, что им можно пренебречь во многих случаях. Обычно палец человека задерживается на клавише до момента отпускания кнопки свыше 0,2 с.

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

Программируемое устройство для устранения дребезга

Заключение

Подытоживая выше сказанное, приходим к выводу: несмотря на несовершенство современных переключателей, мы можем эффективно подавлять дребезг контактов. В зависимости от решаемых задач, существует достаточно способов устранения дребезга. Самые простые из них – аппаратные, с применением низкочастотных фильтров. Очень распространёнными и практичными оказались схемы подавления дребезга с использованием триггеров.

Для управления высокоточными цифровыми устройствами лучше использовать программный метод. Он более дорогой и сложный, но в ряде случаев – безальтернативный.

Видео в развитие темы

riuson.com - Программное подавление дребезга контактов

Обычно я использовал следующий алгоритм антидребезга:

  1. Разрешаем EXTI ISR по входам с клавиш, по обоим фронтам.
  2. Происходит ожидание изменения уровня сигнала на входах.
  3. Прерывание по EXTI, вызов EXTI ISR.
    В EXTI ISR останавливаем и запускаем заново таймер. Например, на 20 мс.
  4. Если ко времени вызова ISR таймера произойдёт новый вызов EXTI ISR, то таймер будет перезапущен и начнёт считать заново.
  5. Таймер досчитал, вызывается ISR таймера. Таймер останавливаем.
    Здесь состояние клавиатуры можно считать стабильным. Поэтому считываем её состояние и передаём на обработку, куда следует.
  6. Переходим к пункту 1.

Этот же метод вполне пригоден для определения таймаута по приёму UART на микроконтроллерах, у которых отсутствует отдельное прерывание по таймауту.

На CyberForum'е заметили, что при плохом контакте прерывания от клавиатуры могут идти слишком часто и микроконтроллер будет всё время висеть в прерываниях. Отсюда возникла небольшая доработка.

  1. Разрешаем EXTI ISR по входам с клавиш, по обоим фронтам.
  2. Нажимается ржавая кнопка.
  3. По первому вызову EXTI ISR:
  4. Запускается таймер;
  5. Отключается только вызов ISR по EXTI в NVIC, флаги прерываний продолжают сохраняться в регистре PR;
  6. В ISR таймера:
  7. Останавливаем таймер;
  8. проверяем наличие флага прерывания от EXTI:
    • Если флаг установлен, перезапускаем таймер;
    • Если флаг не установлен, то считываем состояние клавиатуры и передаём на обработку.
  9. Переходим к пункту 1.

Видео: Демонстрация подавления дребезга контактов

Наличие матричной клавиатуры ничего не меняет. Просто на EXTI надо завести все линии строк либо столбцов, чтобы изменение уровня сигнала из-за любой кнопки вызывало прерывание EXTI. В момент же считывания состояния матричной клавиатуры прерывания мешать не будут, так как таймер полностью остановлен, а EXTI ISR отключены.

Ламповый модуль подавления дребезга контактов от компьютера IBM 705. Что будет, если попробовать его включить?

Спойлер: он будет подавлять дребезг контактов.

В наши дни подавление дребезга контактов чаще всего осуществляют программно, но в отдельных случаях продолжают применяться и аппаратные способы: на RC-цепочках и на триггерах. В 1950-х, конечно, другого выбора не было. Множество модулей, подобных этому:

обрабатывало сигналы с кнопок такого пульта:


Отсюда

Любая сложная схема становится понятной, если разбить её на простые фрагменты. В данном модуле применяются два вида каскадов. Ниже показана слегка упрощённая схема инвертирующего усилителя постоянного тока:

Здесь нагрузочный резистор включён между плюсом питания и анодом лампы, поэтому чем больше она открыта, тем меньше напряжение на выходе. Такой усилитель не только усиливает по напряжению, но и инвертирует.

У катодного повторителя нагрузочный резистор включён между катодом и источником отрицательного напряжения. Его задача — не внося изменений в амплитуду сигнала, обеспечивать малое выходное сопротивление, а значит, большую нагрузочную способность по току.

Проверку модуля автор начал с подачи напряжения пока только на подогреватели ламп. Для этого он взял накальный трансформатор (6,3 В, 2,5 А) весом в 1,5 кг.

Оказалось, что подогреватели всех ламп исправны. Все они — двойные триоды, и у каждого засветились оба подогревателя.

С источниками питания анодных цепей сложнее. Модулю требуются три напряжения: +140, -60 и -130 В, а входные сигналы — предположительно, 48-вольтовые (позже оказалось, что нет). Имеющиеся блоки питания обеспечивают максимум ± 120 В, но симуляция в LTspice показала, что при меньших напряжениях всё тоже заработает. Автор взял несколько блоков питания, большей частью — устройства фирмы HP из коллекции Marc'а, а также измерительное оборудование. Ещё два БП не видны — они под столом:

БП применены следующих типов: 2 шт. HP3068A (по 60 В каждый) — для линий -60 и -120 В, 1 шт. HP6645A — для +120 В, 1 шт. Protek 3003B (современный) — для +30 В (напряжение, подаваемое на вход подавителя дребезга через кнопку).

Следующая задача — подключить к модулю проводники. Соответствующие разъёмы не выпускаются 50 лет, а припаивать нельзя из соображений аутентичности. К штырькам модуля подошли 0,110-дюймовые соединители, напоминающие РППИ.

Чтобы коммутировать питающие напряжения, а также подавать сигналы с кнопки, дребезг контактов которой требуется подавлять, автор изготовил небольшой пульт:

Переходим теперь к одной из схем подавления дребезга:

В документации IBM она названа «контактно-управляемым триггером». Входной сигнал проходит через ФНЧ, затем поступает на сетку первой половины двойного триода, на котором собран инвертирующий усилитель. Снятый с его нагрузочного резистора инвертированный сигнал подан на сетку второй половины двойного триода через цепь из резисторов и конденсатора. Через другой резистор на ту же сетку подано отрицательное смещение.

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

Катоды ламп соединены вместе и соединены с общим проводом через один и тот же резистор. Благодаря этому схема приобретает свойства триггера Шмитта. На графике показаны три сигнала: красный — многократные импульсы, поступающие с контактной группы, зелёный — они же после ФНЧ, синий — после триггера Шмитта.

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

Для удобства кто-то ещё в те годы нанёс на модуль рядом с лампами метки красной и зелёной красками:

При проверке из всех схем подавления дребезга сразу заработала только четвёртая. Из остальных кто-то потихоньку брал себе по мере надобности резисторы. При проверке к соответствующим выходам подключали неонку и осциллограф. Им же контролировали и входной сигнал.

Сравнение двух осциллограмм показывает, что во входном сигнале дребезг присутствует, а в выходном — нет. Также выходной сигнал сдвинут относительно входного на 1,3 мс — это внёс свой вклад ФНЧ.

Затем кнопку попробовали подключить к счётчику импульсов HP 5334B — тоже винтажному, но не настолько — напрямую и через схему подавления дребезга. Делителем напряжения, собранным из больших магазинов сопротивлений, выходные импульсы были «переведены» на понятный счётчику «пятивольтовый язык». При прямом подключении кнопки каждое нажатие на неё счётчик принимал за несколько импульсов, при подключении через модуль — за один.


Благодарности:

Carl Claunch — за модуль
Paul Pierce, bitsavers и Музею компьютерной истории — за сохранённую документацию к компьютерам IBM серии 700

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

Дребезг контактов и его устранение

Дребезг контактов - это нежелательное многократное их замыкание и размыкание возникающее в результате воздействия на них с целью получения желаемого одного замыкания или размыкания. Т.е. мы например как бы хотим чтобы контакты замкнулись один раз как в идеальном ключе а вместо этого получаем не одно замыкание а много замыканий и размыканий. Эти нежелательные замыкания длятся очень не долго и поэтому во многих случаях не мешают или мешают не сильно но в некоторых случаях они могут помешать, например в том случае если для подсчёта нажатий на кнопку используется достаточно быстрая микросхема-счётчик. Дребезг возникает от того что контакты обладают массой и упругостью. Эти параметры можно считать паразитными и контакты имеющие их как бы являются колебательной системой на подобии грузика на пружинке. Из за потерь в системе колебания затухают. Примерно представить себе этот процесс можно так как показано на анимированной картинке:
На некоторых сайтах в интернете пишут что дребезга контактов при размыкании возникать не должно и это логично однако практика показывает что при соединении тактового входа счётчика с кнопкой с нормально замкнутыми котактами и при нажатиии на эту кнопу, счётчик по каким то причинам считает те нажатия которые не производились. Это можно увидеть из видео ниже т.к. там показан результат действия именно кнопки с нормально замкнутыми контактами на тактовый вход счётчика.
Устранить дребезг у уже сделанной кнопки нельзя но зато, применяя специальные схемы, можно устранить его последствия и получить "чистый ровный" импульс который можно подавать на входы быстродействующих микросхем. Одной из самых распространенных и популярных в интернете схем является схема из одного конденсатора большой ёмкости подключенного параллельно контактам. Конденсатор как бы сглаживает пульсации т.к. по второму закону коммутации напряжение на конденсаторе не может резко измениться однако бывают такие контакты которые дребезжат столь сильно что это не помогает. Увеличение ёмкости - решение не самое лучщее т.к. при замыкании контактов происходит как бы к.з. конденсатора и через эти контакты течёт большой ток что будет приводить к более быстрому износу данных контактов, к тому же большой конденсатор может быть неудобен из за своих размеров. К счастью существуют другие схемы. Логично предположить что для устранения последствий дребезга можно использовать одновибратор т.е. схему которая при подаче на его вход короткого запускающего импульса делает у себя на выходе длинный импульс. Если длинна выходного импульса будет больше длительности дребезга то идея сработает. Одновибратор можно например сделать на основе таймера 555 однако данный таймер имеет некоторые конструктивные недостатки которые мешают сделать на его основе надёжную систему устранения дребезга. На практике хорошо"себя показала" схема на элементах "не":
Однако она делает задержку на выходе относительно первого касания контактов друг друга. Это не всегда бывает большим недостатком (возможно даже бывает достоинством) но если всё же это мешает то можно применить схему на элементах "и-не":
В первой схеме выход одного из элементов соединен со входом другого а выход другого со входом одного через конденсатор. В исходном состоянии (контакты кнопки разомкнуты) на входе первого элемента "не" (который слева) имеется логическая единица и на выходе второго тоже, конденсатор разряжен. Когда кнопка нажимается и начинает дребезжать, конденсатор начинает понемногу заряжаться от выхода второго элемента "не" на котором будет единица до тех пор пока конденсатор не зарядиться достаточно для переключения первого элемента в другое состояние. После этого на выходе появиться ноль и конденсатор будет разряжаться, номиналы деталей д.б. такими чтобы он успел это сделать до того как кнопка будет отпущена т.е. возможно времени у него не много, по этому не стоит делать емкость конденсатора и сопротивление резистора RC цепи слишком большими. Слишком малыми тоже делать не стоит чтобы схема исправно устраняла дребезг. После отпускания кнопки пойдут аналогичные процессы и дребезг (или что там ещё происходит) от отпускания будет устранен тоже. Вторая схема аналогична первой но из за того что один из выводов первого элемента "и-не" соединен с кнопкой напрямую, переключение из лог. единицы в лог. ноль на выходе произойдет после первого касания контактов но перехода обратно не будет после первого размыкания по тому что это элемент "и-не" и для его переключения лог. единица нужна на обоих входах а после первого касания на один из входов попал лог. ноль.
Видео по данной теме:


КАРТА БЛОГА (содержание)

Про Ардуино и не только: Устранение дребезга контактов. Часть 3


Микросхемы MAX6816, MAX6817 и MAX6818 - это одно-, двух- и восьмиканальные аппаратные подавители дребезга производства Maxim Integrated, выполненные по CMOS технологии. Они принимают искаженный контактным дребезгом сигнал и через некоторый интервал времени выдают очищенный цифровой сигнал. Микросхемы не требуют дополнительных компонентов, имеют низкое энергопотребление, защиту от электростатического разряда и способны работать с входным сигналом в диапазоне ±25В.
Кроме того MAX6818, разработанная для взаимодействия с шиной данных, имеет выводы с тремя состояниями и вывод, сообщающий об изменении сигнала на входе для упрощения ее опроса.

Более подробную информацию о характеристиках микросхем можно найти в даташите. При его изучении первое, что бросается в глаза - это время установления очищенного от дребезга сигнала на выходах микросхем: оно составляет около 40мс после стабилизации сигнала на входе. А значит о применении данных микросхем для подавления дребезга механических энкодеров не может быть и речи, т.к. сигнал на их выходах изменяется значительно быстрее. Поэтому я для проверки имеющейся у меня MAX6818 буду использовать обычные кнопки и переключатели. Ниже приведена схема включения MAX6818. Другие две микросхемы подключаются аналогично, за исключением отсутствующих выводов CH и EN.

Вывод EN на схеме подключен к земле, таким образом считывание с выводов микросхемы всегда разрешено. Сигнал CH, сообщающий об изменении сигнала на выходах OUT1...OUT8, может быть подключен на вход микроконтроллера (Ардуино), поддерживающий прерывания. Я его сейчас не использую. И на данной схеме нет подтягивающих резисторов на кнопках, т.к. они присутствуют в самой микросхеме (по 63кОм на каждом входе).

Микросхема MAX6818 выпускается в SSOP корпусе что не очень удобно для экспериментов с ней, поэтому я сделал для нее монтажную плату. Получилась такая штуковина:

Ну и собственно осциллограмма работы микросхемы:

Сверху исходный сигнал с кнопки, снизу - с выхода MAX6818. На фоне задержки в 40 мс дребезг длительностью около 1 мс не так хорошо различим. Но в большинстве случаев эта задержка не препятствует использованию микросхемы в реальных устройствах: для кнопки, нажимаемой человеком, 40 мс не сыграют роли. Другое дело - цена микросхем: на данный момент на Али самое выгодное предложение - это 5$ за 5 микросхем MAX6818. MAX6816 и MAX6817 и того дороже. А с учетом размеров их корпусов (SOT143, SOT23 и SSOP) рассмотренные ранее триггер Шмитта и MC14490 в привычных DIP корпусах кажутся более удобным и выгодным решением для любительских проектов. Поэтому, думаю, лучше оставить MAX6816, MAX6817 и MAX6818 для промышленного применения.

Рекомендую также почитать следующие публикации про подавление дребезга:
Устранение дребезга контактов. Часть 1 - триггер Шмитта
Устранение дребезга контактов. Часть 2 - микросхема MC14490

Электронные схемы подавления дребезга контактов


Контактные цепи подавления дребезга


Последнее обновление: 31 декабря 2017 г., 06:47

Ссылки на электронные схемы, электронные схемы, проекты для инженеров, любителей, студентов и изобретателей:

Цепь

устраняет дребезг контактов реле - 27-ноя-03 EDN-Design Идеи Достижения в полупроводниковой технологии позволили ИС заменить многие механические реле, но реле по-прежнему доминируют в сильноточных цепях, которые должны выдерживать высокое напряжение произвольной полярности.Однако дребезг контактов в этих реле может создать проблемы для последующих цепей. Один из подходов к дребезгу контактов сочетает в себе реле с контроллером с возможностью горячей замены. Разработка схемы Шьяма Сандера Тивари, IGCAR, Калпаккам, Индия

Цепь

имитирует дребезг контактов - 05.08.97 Идеи проектирования EDN Схема на рисунке 1а имитирует дребезг контактов электромеханических и механически приводимых в действие электрических контактов. Схема генерирует импульсы дребезга контактов для замыкания и размыкания контактов.Вы можете легко запрограммировать период и частоту дребезга контактов с помощью переменных резисторов. Эта схема полезна для тестирования схем аппаратных средств устранения неполадок и программ устранения неполадок __ Схема схем Джона Гая, Maxim Integrated Products, Саннивейл, Калифорния

Сети с устранением дребезга

делают надежный селектор - 05.06.97 Идеи проектирования EDN Расширяемый селектор на рис. 1 состоит из шести переключателей, триггера HEX D-типа и двух компараторов с гистерезисом и цепями устранения дребезга.Сети с противодействием обеспечивают высокий уровень только на одном выходе IC2, и вы можете расширить эту схему, используя больше переключателей и триггеров D-типа .__ Дизайн схемы - В. Дейкстра, Ваалре, Нидерланды

Дебаунсер кнопочного переключателя - Эта схема устраняет кратковременные всплески и дребезги контактов от кнопочного переключателя без фиксации. __ Дизайн Энди Коллисона

Устранение дребезга контактов реле - 27/11/03 Идеи проектирования EDN Достижения в полупроводниковой технологии позволили ИС заменить многие механические реле, но реле все еще преобладают в сильноточных цепях, которые должны выдерживать высокое напряжение произвольной полярности.Дребезг контактов в этих реле, ho__ Дизайн схемы Шьямом Сандером Тивари, IGCAR, Калпаккам, Индия

Switch Debouncer - Эта схема устраняет кратковременные всплески и дребезги контактов нефиксируемого кнопочного переключателя. __ Дизайн Энди Коллисона

Switch Debouncer изолирует вход и выход - 27/04/00 Идеи проектирования EDN Современные программируемые логические контроллеры (ПЛК) для автоматизированных систем управления технологическими процессами имеют 16 или 32 входа и принимают переменное напряжение от 24 до 120 В.Одиночная схема (реле для изоляции и RC-сеть с триггером Шмитта для устранения дребезга сигналов, поступающих в процессор) может последовательно блокировать все сигналы ПЛК. Однако такой подход замедляет обработку данных в реальном времени. __ Схемотехника Филла Лейва

Switch Debouncer использует только один вентиль - 30.05.2002 Идеи разработки EDN Схема на рисунке 1 выдает одиночный дебаунд-импульс каждый раз, когда вы нажимаете S1. Более того, схема использует только логическую мощность от удаленного подтягивающего резистора R2.Вы можете использовать схему для обнаружения нажатия клавиши на устройстве, не находящемся под напряжением, например, на устройстве в системе, которое только что выходит из режима ожидания. Разработка схемы Стивена Робертсона, Anritsu Co, Morgan Hill, CA


Подавление дребезга контактов

Отскок коммутатора и другие грязные маленькие секреты

Аннотация: Maxim предлагает простое решение для уменьшения эффекта вызывного сигнала коммутатора.Эти устройства применимы для приложений с кнопочными панелями, дисплеями с сенсорным экраном и простыми кнопочными устройствами. Эти устройства также обеспечивают защиту от перенапряжения и электростатического разряда. MAX6816 / MAX6817 / MAX6818 объединяет множество функций в одной ИС, тем самым устраняя многочисленные дискретные компоненты.

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

После подключения стандартного переключателя к цифровой счетной схеме вы можете наблюдать несколько отсчетов при размыкании и несколько отсчетов при замыкании ( рисунки 1 и 2 ).Это беспорядочное действие может нанести ущерб данным, потому что точное количество подсчетов не обязательно повторяется в долгосрочной перспективе. Отскок переключателя не является постоянным от устройства к устройству, от партии к партии или даже в течение срока службы отдельного коммутатора. Мембранные переключатели и некоторые другие типы, кажется, не дергаются, когда новые, но все механические переключатели иногда дергаются. Ничто не может гарантировать, что другой переключатель того же типа будет действовать таким же образом или что конкретный переключатель останется без дребезга с течением времени.


Рисунок 1.Этот дребезг переключателя по переднему фронту для небольшого кнопочного переключателя показывает интервал дребезга примерно 5 мс, который включает 10 переходов. Как прыгающий мяч, частота срабатывания переключателя увеличивается вправо.


Рис. 2. Другой дребезг переключателя по переднему фронту (для контактного реле 5А) показывает интервал дребезга примерно 5,5 мс, который включает 20 переходов полной амплитуды и несколько переходов поменьше.

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

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

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

Цифровые и аналоговые входы оборудования, используемого дома, в офисе и в промышленности, подвержены воздействию перенапряжения, переходных процессов напряжения и электростатических разрядов. Перенапряжение вызывается неправильным подключением, различными неисправностями и последовательностью подачи питания (при котором один блок с выключенным питанием соединяется с другим с включенным питанием, даже временно).Переходные процессы напряжения часто связаны с емкостными или индуктивно связанными выбросами, как обсуждалось выше. Электростатический разряд может поразить разъем, консоль оператора или клеммную колодку во время установки. Любой из этих переходных процессов может вызвать разрушение, если система заблокируется. Если они не разрушительны, они могут вызвать перезагрузку ЦП, переполнение сторожевого таймера и другие типы неустойчивой работы.

Разработчики систем должны знать об этих проблемах и методах, используемых для их решения. Одним из решений таких проблем интерфейса является новая серия микросхем.Доступные в недорогих и простых в использовании конфигурациях, ИС (MAX6816 / 6817/6818 с одним / двумя / восьмеричными переключателями для защиты от сбоев) обеспечивают надежное, беспрограммное устранение дребезга, а также защиту от перенапряжения и электростатического разряда. В этой статье рассказывается о применении средств защиты от прерывания переключателя IC, а также описываются классические методы предотвращения перенапряжения, скачков напряжения / тока, дребезга переключателя и электростатических разрядов.

Переключатель Bounce

Если спросить, большинство инженеров ответят, что в программном обеспечении имеется отказ от сбоев в работе коммутаторов, и что устранение неполадок «не представляет проблемы».«Оба предположения верны, если вы уделяете должное внимание деталям. Программное обеспечение устраняет дребезги, но оно не решает проблемы перенапряжения, электростатического разряда или других переходных процессов.

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


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

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

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

Действие Комментарии
1. Таймер входа: истек? Бит таймера опрашивается в основной программе.
2. Вернуть, если нет таймера. Сделайте что-нибудь более полезное.
3. Получить входной бит. "Бодрый" вход.
4. Считать ++, если высокий, сбросить в противном случае. Увеличивает значение счетчика, если на входе высокий уровень.
5.Если count> 4 state = 1, иначе 0. Проверьте счетчик и зажмите его на 4.
6. Вернуть состояние входа. Состояние отклонено.
Эта процедура препятствует закрытию переключателя, но примет открытие как допустимое состояние, даже когда переключатель "подпрыгивает". Эта асимметричная операция, хотя и непреднамеренная, может быть приемлемой для клавиатур и других систем, которые действуют при закрытии, но не при открытии. Для входов общего назначения вы должны отклонить оба края.

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

Многие подпрограммы устранения дребезга повторно выполняют выборку входных данных, ожидая, пока он останется в том же состоянии в течение заранее установленного количества выборок.Если переключатель меняет состояние в течение этого интервала, процедура таким же образом проверяет новое состояние на стабильность. Это действие может вызвать большие задержки, которые съедают много процессорного времени. В крайнем случае, ПЛК с высокой частотой, поданной на один из его универсальных входных портов (случайно, намеренно или из-за сбоя), полностью зависнет от процессора. Сторожевой таймер может вернуть процессор, но проблема будет повторяться бесконечно; это не надежная конструкция. Кроме того, вам понадобится много ОЗУ и кода, чтобы отразить большую промышленную систему с большим количеством входов, например, ПЛК или универсальную входную плату.Для каждого входа требуется закрытый счетчик, открытый счетчик и 2 бита для определения его состояния.

Подавление переходных процессов и электростатических разрядов

Стандартной защитой от электростатического разряда является подавитель переходных процессов или устройство MOV на каждом внешнем входе. Квадратный и восьмеричный TransZorbs ™, например, являются простыми и относительно недорогими устройствами, которые могут уменьшить беспорядок и требования к площади, но необходимо соблюдать осторожность, чтобы избежать перекрестной связи токов короткого замыкания. Этот подход распространен в промышленных и автомобильных системах, где инженеры понимают опасность отказа от такой защиты.

Хорошей практикой является подключение резистора 220 Ом последовательно с линией V CC для устройств ввода порта. Обычное устройство ввода CMOS, такое как восьмеричное 74HC244 или 74HC573, например, потребляет очень мало тока. В случае фиксации резистор 220 Ом ограничивает рассеиваемый ток и мощность до безопасного уровня. Тем не менее, включение и выключение питания все еще может быть необходимо. В общем, вы не должны напрямую подключать контакты порта микроконтроллера к внешним входам. Защелкивание - это проблема, но излучаемые электромагнитные помехи могут быть еще хуже.

Поскольку деталь не может зафиксироваться, если на один из ее выводов не будет подан достаточный ток, некоторые разработчики считают, что резисторы, включенные последовательно с цифровыми входами CMOS, предотвращают эти проблемы. Действительно, порог срабатывания тринистора в современных КМОП-микросхемах может превышать 50 мА. Этот высокий порог тока (описанный в следующем разделе) на самом деле в некоторой степени защищает от перенапряжения, но не обязательно эффективен при электростатическом разряде. Разряд электростатического разряда 15 кВ может вызвать значительные токи через паразитные пути и вокруг резисторов, и он может вызвать большой ток даже через 100 кОм.

Защита от перенапряжения

Защита от перенапряжения позволяет системе выдерживать непрерывные и длительные переходные процессы, выходящие за пределы рельсов. Например, микросхема без V CC имеет 24 В от внешнего источника, подаваемого на входы. Такое приложенное напряжение часто «отталкивает» сети защиты, передавая напряжение на шину питания внутри системы. Одним из эффективных способов противодействия является включение резистора, включенного последовательно со входом, против защитных диодов, привязанных к шинам.Также следует учитывать стабилитрон на шинах V CC входного порта. Чтобы гарантировать, что схемы защиты не выйдут из строя в наихудших условиях, вы должны рассчитать максимальную рассеиваемую мощность этого стабилитрона и последовательных входных резисторов.

Дебаунсеры переключателей MAX6816, MAX6817 и MAX6818

Несколько лет назад инженеры Maxim увидели необходимость в простом интерфейсном устройстве, способном отключать коммутатор и одновременно защищать его от электростатического разряда и перенапряжения. Некоторые заказчики использовали вход ручного сброса контрольных микросхем µP, таких как MAX811, только для того, чтобы получить функцию одноканального противодействия отбойнику в корпусе SOT-23.Другие использовали защищенные от электростатического разряда приемопередатчики RS-232 в качестве универсальных устройств цифрового ввода. Покупатели были привлечены к микросхемам RS-232, потому что они могли обрабатывать переходы низкого напряжения, выдерживая при этом высокое напряжение и электростатические разряды. Объединив эти факты, компания Maxim произвела линейку устройств защиты от сбоев коммутатора, которые включают в себя защиту от электростатического разряда и надежные входные функции (, рис. 4, и , 5, ).


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


Рис. 5. В этом типичном приложении с одним дебаунсером единственными компонентами являются небольшой байпасный конденсатор и 4-контактный корпус SOT-23.

MAX6816 и MAX6817

MAX6816 представляет собой противодребезговое средство с одним переключателем в корпусе SOT-23 с 4 выводами, а MAX6817 - это средство защиты от сбоев с двумя переключателями в корпусе с 6 выводами SOT-23. Они обеспечивают логику защиты от дребезга и цифровой фильтр, защиту от перенапряжения на входе до ± 25 В и защиту от электростатического разряда до ± 15 кВ для тяжелых промышленных условий.Работая от однополярного источника питания в диапазоне от 2,7 В до 5,5 В, они потребляют типичные токи питания всего 6 мкА. Они также имеют схему блокировки при пониженном напряжении, которая обеспечивает правильные выходные состояния при включении питания. Поскольку запатентованная структура защиты от электростатического разряда на каждом входе включает ограничивающий диод перенапряжения и подтягивающий резистор 63 кОм, эти ИС обеспечивают прямой интерфейс с коммутатором без внешних компонентов. Их номинальная задержка от дребезга (40 мс ± 20 мс) маскирует дребезг даже самых уродливых переключателей (, рис. 6, ).


Рис. 6. Временная диаграмма для семейства переключателей-дебаунсеров MAX6816 показывает, что выходы меняют состояние примерно через 40 мс после того, как входы становятся стабильными. Дополнительный выход MAX6818 указывает на изменение состояния любого из входов. Канал с активным низким уровнем снижает накладные расходы на опрос, особенно в системах с несколькими входами.

MAX6818

Блокировщик защиты от восьмеричного переключателя MAX6818 предназначен для взаимодействия с шиной данных (, рис. 7, ). Он контролирует восемь переключателей, обеспечивая выход изменения состояния ( Active-low CH ) и выход шины данных с тремя состояниями в дополнение к функциям защиты от дребезга и защиты входа одиночной и двойной частей.В частности, его выход Active-low CH значительно упрощает опрос и прерывание микропроцессоров. Каждый раз, когда система считывает выходные данные (путем установки низкого уровня EN на низкий уровень), IC сбрасывает активный низкий уровень CH на высокий уровень. Активный-низкий CH затем переходит в низкий уровень при изменении состояния любого входа. MAX6818 совместим по выводам с 74HC573 и другими стандартными 20-выводными устройствами с восьмеричной логикой. Он легко обрабатывает несколько входов.


Рис. 7. В типичном приложении выходные данные MAX6818 остаются трехзначными до тех пор, пока активный низкий EN не будет понижен до низкого.Выход изменения ( Активный низкий CH ) сбрасывается на высокий уровень после каждого считывания и устанавливается на низкий уровень после изменения состояния на любом входе. Он может быть либо опрошен системой, либо привязан к прерыванию, как показано.

Коммутаторы MAX6816, MAX6817 и MAX6818 решают множество проблем, связанных с подключением цифровых систем к шумным, подверженным переходным процессам, «дребезжащим» входам. Они делают системы более устойчивыми и надежными за счет упрощения конструкции, сокращения времени процессора и накладных расходов, а также замены нескольких пассивных компонентов.

Описание различных причин подавления | GoDaddy Email Marketing

Ваш скрытый список содержит все контакты, которые больше не входят в число ваших активных подписчиков: подавленные и отклоненные.

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

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

Подавлен

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

Отбито

  • Hard bounce : это контакты, которые невозможно доставить. Скорее всего, это связано с тем, что адреса не существует.
  • Мягкий возврат : это контакты, которые невозможно доставить во время отправки, но проблема может исчезнуть сама собой или измениться. Часто это происходит из-за переполнения почтовых ящиков или временного отключения доменов. Все мягкие отскоки повторяются автоматически, поэтому их можно подавить только на короткое время.
  • Общий отказ от доставки : это разные категории недоставленных адресов. Распространенными причинами являются брандмауэры на сервере контакта, которые блокируют входящую электронную почту из-за пределов сети. Это обычное дело для корпораций, которые не получают электронную почту из неизвестных источников. Все обычные отказы повторяются автоматически, поэтому их можно подавить только на короткое время.
  • Все еще пытается : это означает, что конкретное почтовое сообщение еще не может быть доставлено, но сервер все еще пытается и не получил окончательного ответа.Этот тип отказов временный.

Следующий шаг

Подробнее

Понимание и управление вашим списком подавления - электронная почта

Вы можете получить доступ к своему списку подавления по электронной почте > Список подавления

Введение

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

Ваш список подавления - это список всех адресов электронной почты, которые вы не можете отправлять по электронной почте. Это смесь отказов от подписки, отказов и жалоб . Этот список также очень важен, если вы управляете электронной почтой вне этой системы. Список обновляется автоматически.Если вы переходите к нам из другой системы электронного маркетинга, рекомендуется экспортировать свой список подавления, а затем добавить его в свой список подавления intouchcrm, чтобы поддерживать непрерывность и удовлетворить пожелания ваших получателей.

Стоит отметить, что Контакты могут быть удалены из списка подавления следующими способами:

1) Если электронное письмо было помечено как недоставленное, и контакт записывается, открывая или щелкая ссылку из кампании, отказ удаляется, а контакт удаляется из списка подавления.
2) Если пользователь отменяет подписку, но позже повторно подписывается через формы, связанные с системой, электронное письмо будет удалено из списка для подавления.
3) Контакт отменяет подписку, но затем сразу же щелкает опцию повторной подписки в сообщении об отказе от подписки на экране.
4) Контактное лицо в письменной форме запрашивает повторную подписку, и вы затем отправляете электронное письмо с повторным привлечением.

Запрос на удаление из вашего списка запрещенных

если вы получили запрос от контакта на удаление из вашего списка запрещенных i.е. чтобы снова получать ваши рассылки по электронной почте, выполните следующую процедуру:

1) Попросите вашего собеседника отправить вам электронное письмо с просьбой удалить его из вашего списка запрещенных.

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

Добавление контактов в список подавления вручную

Вы можете скопировать / вставить несколько адресов электронной почты одновременно в список подавления. На всякий случай убедитесь, что вы НЕ копируете пробелы до или после фактического адреса электронной почты.

Как только вы будете довольны своим списком, просто нажмите кнопку Подавить адреса .

Поиск в списке подавления

У вас есть средство поиска, которое позволяет вам искать определенный адрес электронной почты:

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

Решение проблем с отскоком коммутатора - Embedded.com

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

Щелкните здесь, чтобы прочитать ответ на эту статью

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

В прошлом месяце я описал проведенный мною эксперимент по оценке характеристик дребезга ряда переключателей. Данные показали, что время отскока варьируется от микросекунды до долей секунды.Идентичные переключатели сильно различались. Некоторые устройства из токопроводящего эластомера никогда не переключались сами по себе; их выходы медленно растекались от нуля до логической единицы. Другие вели себя так, чтобы запутать типичный код устранения неполадок, который мы обычно используем в нашей прошивке.

Готов поспорить, вы подумали, что в этом месяце я опишу лучшие алгоритмы, предоставив полезные фрагменты кода. Простите! Ибо устранение неполадок - одно из тех действий, которые лежат между кодом и оборудованием. В некоторых случаях правильным подходом является очистка оборудования.

Установить и забыть
На рисунке 1 показана классическая схема защиты от дребезга. Два перекрестно связанных логических элемента NAND образуют простую защелку Set-Reset (SR). Конструкция требует двухходового переключателя. Два подтягивающих резистора генерируют логическую единицу для ворот; переключатель замыкает один из входов на массу.


Рисунок 1: Дебансер SR

Защелка SR - довольно забавный зверь, сбивающий с толку не-EE, как рекурсия, ну, почти всех.

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

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

Схема предлагает альтернативный подход, программную версию той же идеи. Почему бы не пропустить пару NAND и не запустить два контакта с подтягиванием напрямую к входным контактам на ЦП? Конечно, компьютер будет замечать много подвижности, но напишите тривиальный фрагмент кода, который обнаруживает любое утверждение любого полюса, что означает, что переключатель находится в этом положении, как показано ниже:

если (switch_hi ()) state = ON;
, если (switch_lo ()) state = OFF;

Каждая из функций switch_hi и switch_lo считывает один из двух полюсов.Другие функции в программе проверяют состояние переменной , чтобы определить положение переключателя. Это экономит два логических элемента, но требует затрат на один дополнительный входной вывод процессора. Это самый простой - и самый надежный - код устранения ошибок.

(Хорошо, я все-таки вставил код).

RC-противодребезговой отбойник
SR-схема - самый эффективный из всех подходов к устранению дребезга, но он используется редко. Двухпозиционные переключатели более громоздкие и более дорогие, чем более простые однополюсные версии.Очень многие из нас используют переключатели, нанесенные на печатную плату, и сделать их двухполюсные версии невозможно. Поэтому EE предпочитают альтернативные конструкции, которые работают с дешевыми однополюсными переключателями.

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

Зарядите или разрядите конденсатор через резистор, и вы обнаружите, что напряжение на крышке медленно растет; он не привязывается к новому значению, как маленькая милая логическая схема.Увеличьте значение любого из компонентов, и запаздывание («постоянная времени» на жаргоне EE) увеличится.

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


Рисунок 2: Дебаунтер RC

Предположим, наш бесстрашный плавник открывает переключатель. Напряжение на крышке равно нулю, но оно начинает расти со скоростью, определяемой значениями R 1 , R 2 и C .Отскакивающие контакты понижают напряжение и замедляют накопление заряда конденсатора. Если мы очень умно подбираем значения компонентов, напряжение остается ниже логической единицы логического элемента, пока все толчки и удары не прекратятся. (Если постоянная времени слишком велика, конечно, система не будет реагировать на быстрые срабатывания переключателя.)

Таким образом, выход затвора представляет собой чистый логический уровень без дребезга.

Теперь предположим, что переключатель был разомкнут некоторое время. Шапка полностью заряжена.Щелчок! Пользователь закрывает переключатель, который сбрасывает колпачок через R 2 . Медленно, снова, напряжение падает, и вентиль продолжает видеть на входе логическую единицу в течение некоторого времени. Возможно, во время подпрыгивания контакты немного размыкаются и замыкаются. В разомкнутом состоянии, даже если только на короткие периоды, два резистора начинают заряжать конденсатор, усиливая логическую единицу затвора. Опять же, умный дизайнер выбирает значения компонентов, которые гарантируют, что вентиль увидит единицу, пока щелкающие контакты не утихнут.

Убогие таверны заполнены седыми ветеранами войн отскоков, рассказывающими свои схемы и рассказы о битвах в аналоговых окопах. Большинство будет озадачено R 2 , и это не полностью из-за эффекта дешевой выпивки. В классическом RC-дебаунсере этот резистор не используется, но критически важно получить безударный выход затвора.

R 2 не используется при размыкании переключателя. R 1 и C эффективно устраняют эти отскоки.Но при внезапной разрядке конденсатора могут происходить странные вещи. Ранний отскок может быть коротким, длящимся микросекунды или меньше. Хотя короткое замыкание должно мгновенно разрядить конденсатор, в аналоговом мире нет идеальных условий. Переключатель имеет некоторое сопротивление, как и провода и дорожки на печатной плате, которые все соединяют.

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

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

R 2 гарантирует, что крышка опорожняется медленно, обеспечивая чистый логический уровень независимо от множества отскоков.

Еще одна хитрость скрывается в дизайне. Инвертор не может быть стандартным логическим вентилем. TTL, например, определяет ноль как входное значение между 0,0 и 0,8 В. Единица начинается с 2.0. Между ними находится демилитаризованная зона, которой мы обязаны избегать. Подайте, например, 1,2 В на такой вентиль, и выход будет непредсказуемым. Но именно это и будет происходить при зарядке и разрядке шапки.

Вместо этого используйте устройство с триггерными входами Шмитта . Эти устройства имеют гистерезис; входы могут дизерировать, но выход остается в стабильном известном состоянии.

Никогда не подавайте заглушку непосредственно на вход микропроцессора или практически на любое устройство ввода-вывода. Некоторые из них имеют входной гистерезис.

Выполнение математических расчетов
Уравнение сброса крышки:

Уравнение 1:

где:

  • V cap - напряжение на конденсаторе в момент времени t
  • В начальное напряжение изначально на цоколе
  • t - время в секундах
  • R и C - номиналы резистора и конденсатора в омах и фарадах соответственно

Уловка состоит в том, чтобы выбрать значения, которые гарантируют, что напряжение на конденсаторе останется выше В th , порогового значения, при котором затвор переключается, пока переключатель не перестанет подпрыгивать.Удивительно, сколько из этих изгоев, тусующихся в барах на берегу, выбирают почти случайную постоянную времени. «Мальчики и я, мы шутим над фиггер-сампином, как 5 мс». Если превратиться в настоящий анализ, то даже чистый инженер может спуститься по скользкой дорожке к жизни беспризорного бродяги.

У большинства коммутаторов, которые я исследовал в прошлом месяце, время дребезга было меньше 10 мс. Используйте 10, чтобы быть консервативным. Теперь увеличьте это на рабочий цикл отскока. Ударные контакты замедляют заряд конденсатора. Мои данные показывают, что мы можем ожидать около 50% рабочего цикла, что дает нам 20 мс.

Изменение формулы постоянной времени для определения R (стоимость и размер крышек сильно различаются, поэтому лучше выбрать значение для C , а затем вычислить R ) дает:

Уравнение 2:

Хотя шестнадцатеричный инвертор 7414 и является древней деталью, он представляет собой триггер Шмитта с большим входным гистерезисом. Версия AHCT имеет наихудший вариант V th для сигнала, понижающегося до 1,7 В. Давайте попробуем 0,1 мкФ для конденсатора, так как он небольшой и дешевый, и решим условие, при котором переключатель просто замыкается.Колпачок выпускается через R 2 . Если напряжение питания 5 В (так что V начальное значение равно 5), то R 2 составляет 185 кОм. Конечно, вы не можете на самом деле купить резистор такого типа, поэтому используйте 180 кОм.

Но анализ игнорирует входной ток утечки затвора. Устройство CMOS, такое как 74AHCT14, излучает около микроампера со входов. Этот резистор 180 кОм будет смещать вход до 0,18 В, что неудобно близко к нулевой точке переключения затвора в лучшем случае.5В. Измените емкость на 1 мкФ и используйте 18 кОм для R 2 .

R 1 + R 2 управляет временем зарядки крышки и, таким образом, устанавливает период противодействия для состояния, при котором переключатель размыкается. Уравнение для зарядки:

Уравнение 3:

Решение для R :

Уравнение 4:

В final - это последнее значение заряда - источник питания 5 В.V th теперь является точкой перехода наихудшего случая для высокого сигнала, который для нашего 74AHCT14 составляет персиковое значение 0,9 В. R 1 + R 2 работает до 101 кОм. Значение 82 кОм для R 1 .


Рисунок 3: RC-дебаунсер, который действительно работает

Диод - дополнительная деталь, необходимая только тогда, когда математика идет наперекосяк. Возможно, с неправильным типом затвора, где напряжения гистерезиса принимают другие значения, из формул выскочит значение для R 1 + R 2 , которое меньше, чем у R 2 .Деталь образует ярлык, который удаляет R 2 из цепи зарядки. Весь заряд проходит через R 1 .

Уравнение 4 все еще применимо, за исключением того, что мы должны учитывать падение напряжения на диоде. Измените V final на 4,3 В (5 минус падение диода 0,7), поверните рукоятку, и R 1 выскочит.

Остерегайтесь допусков компонентов. Стандартные резисторы обычно составляют ± 5%. Конденсаторы сильно различаются; + 80 / -20% - обычный рейтинг для электролитов; Даже небольшая керамика может отличаться на ± 30%.

Другие мысли
Не забывайте учитывать сопротивление замкнутых переключателей oddball. Некоторые устройства из токопроводящего эластомера превышают 200 Ом.

Два переключателя из эластомера, которые я исследовал в прошлом месяце, вообще не дергались; их выход плавно увеличивался от нуля до + 5В. Цепи устранения дребезга SR и RC не нужны и не эффективны в этих случаях. Лучше запустить переключатель прямо на вход триггера Шмитта.

Никогда не подключайте выключатель без дребезга к часам триггера.Случайный хэш отскока обязательно запутает устройство. 74HCT74 имеет максимальное время нарастания и спада, равное 6 нс, что легко превосходит некоторые из 18 переключателей, которые я тестировал.

Для 74HC109 требуется минимальная ширина тактовой частоты 100 нс. В своих экспериментах я обнаружил, что импульсы короче этого значения. Его более высокотехнологичный брат, 74HFC109, на самом деле имеет вход синхронизации триггера Шмитта - это гораздо более безопасная часть для использования при подключении к реальным событиям.

Точно так же не привязывайте отключенные переключатели, даже если сработал Шмитт, для прерывания ввода на ЦП.Обычно вывод прерывания поступает на тактовый вход внутреннего триггера. По мере того, как процессоры становятся более сложными, их таблицы данных содержат менее полезную электрическую информацию; они наводнены данными о программировании, но оставляют дизайнеров на произвол судьбы без полных временных характеристик. Как правило, мы не знаем, что ЦП ожидает от максимального времени нарастания или минимальной ширины импульса. Эти внутренние провалы не идеальны, так что не заигрывайте с опасностями, скармливая их мусором.

В следующем месяце я подведу итоги конференции по встроенным системам.После этого подробнее о противодействии.

Джек Г. Гэнссл - лектор и консультант по вопросам разработки встроенных систем. Он проводит семинары по встроенным системам и помогает компаниям решать их проблемы. Свяжитесь с ним по адресу. Ответ читателя


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

Перед рикошетом вход обязательно находится в одном состоянии.

При сэмплировании во время отскока состояние может считываться в любом состоянии.

Когда следующий образец будет закреплен, переключатель перестанет подпрыгивать в другом состоянии.

Эффект дребезга заключается в дрожании обнаружения изменения состояния на один период выборки.

Во многих случаях это приемлемо.

Я подозреваю, что это было бы неприемлемо в действительно быстром экшене «стрелялке», но в оригинальном PDP-1 «Spacewar!» Он много лет работал хорошо со многими переключателями.

- Стив Рассел


Спасибо за ответ. Мой метод очень похож на метод Стива Рассела и очень надежно работает с небольшими тактильными переключателями на печатной плате. Я часто слышу о том, что EE идут на невероятные меры, чтобы отразить переключатели, хотя часто этот очень простой метод работает хорошо с гораздо меньшими усилиями.

Я также использовал схему R1 (10k или меньше) + R2 (100k) + C (100nF) (постоянная времени 10 мс) прямо во вход ЦП, который дискретизируется каждые 20-50 мс. Я помню предыдущее состояние ввода.Если я сэмплирую, когда входной уровень недопустим, он может сэмплировать низкий или высокий. Если он такой же, как и раньше, без изменений = штраф. Если сэмплы отличаются, значит, они меняются = нормально. Следующий образец будет стабильным. Не используйте этот метод для синхронизированных входов!

Прежде всего, используйте технику, которая подходит для используемых переключателей и входа IC. К счастью, я не вижу много контактов из эластомера…

- Ле Грант

Продолжить чтение

Отключение контактов и коммутаторов

Для новых идей о создании встроенных систем (как аппаратных, так и микропрограмм) присоединяйтесь к более чем 40 000 инженеров, подписавшихся на The Embedded Muse, бесплатную рассылку новостей каждые две недели.У Muse нет ни шумихи, ни пиара продавца. Нажмите здесь, чтобы подписаться.

На этой странице представлены данные о том, как несколько переключателей на самом деле отскакивают, и представлен код C, который устраняет это отскок.

Этот отчет разделен на две части:

  • Часть 1 (которую вы читаете) описывает проблему устранения неполадок и дает практические данные.
  • Часть 2 показывает, во-первых, аппаратные решения, а затем программный код устранения неполадок.


Август 2004 г.
Ред. 1: апрель 2006 г.
Ред. 2: апрель 2007 г.
Ред. 3: июнь 2008 г.
Ред. 4: март 2014 г. (добавлена ​​ссылка на код Трента Клегхорна)

Пиво немного нагревается, когда вы стучите по пульту дистанционного управления.Снова и снова, теряя самообладание, вы нажимаете кнопку «канал вверх», пока телевизор, наконец, не вознаградит ваши усилия. Но оказывается, что канал 345 воспроизводит Jeopardy, поэтому вы снова машете пультом в общем направлении телевизора и продолжаете возиться с кнопками.

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

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

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

Посещайте Интернет, чтобы попробовать различные подходы к устранению неполадок. Большинство из них довольно хромые. Некоторые из них основаны на экспериментальных параметрах отскока. Смешанные анекдотические истории, которые ходили по телеконференциям, заменяли эмпирические данные.

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

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

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

Итак, я провел несколько экспериментов.

Я вытащил несколько старых переключателей из своего мусорного ящика. 20 баксов в постоянно надоедливой местной Radio Shack дали больше (вы заметили, что Radio Shack имеет все меньше и меньше компонентов? Становится все труднее купить там паршивый NPN-транзистор). Baynesville Electronics (http://www.baynesvilleelectronics.com), лучший магазин электроники в Балтиморе, оказался настоящей находкой для переключателей. В итоге у меня было 18 очень разных переключателей.

К моему настольному ПК всегда прилагается небольшая плата разработки MSP430 за 49 долларов (сильно недооцененный 16-разрядный микропроцессор TI) с установленным набором инструментов IAR. Вставить на доску небольшой код и провести эксперименты - это дело секунд. Изначально я планировал подключить каждый коммутатор к входу MSP430, чтобы прошивка считывала параметры отказов и сообщала о них. Небольшая игра с осциллографом смешанных сигналов (MSO) показала, что это неразумный подход.

Я отказался от обычных осциллографов.Теперь мой прицел Agilent MSO-X 3054A MSO стал моим любимым прицелом. MSO - осциллограф смешанных сигналов; он сочетает в себе логический анализатор и осциллограф. Запуск по аналоговому каналу или по цифровому шаблону, чтобы начать трассировку, и посмотреть, как взаимодействуют цифровой и аналоговый.

Многие переключатели демонстрировали довольно необычное и неожиданное поведение. Отскоки менее 100 нсек были обычным явлением (подробнее об этом позже). Никакое разумное микро не могло надежно зафиксировать такие переходы, поэтому я отказался от этого плана и вместо этого использовал осциллограф, подключив к переключателю как аналоговые, так и цифровые каналы.Это позволило мне увидеть, что происходит в аналоговой области, и как компьютер интерпретирует данные. Питание 5 В и напряжение 1 кОм завершили испытательный стенд.

Если переход менее 100 нсек не может быть зафиксирован компьютером, зачем беспокоиться об этом? К сожалению, даже очень короткий сигнал время от времени будет переключать логику. Привяжите его к прерыванию, и вероятность возрастет. Эти переходы, хотя и очень короткие, иногда будут искажать рутину противодействия. Ради эксперимента нам нужно их увидеть.

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


Переключатели протестированы. Вверху слева находится переключатель A, справа - B, работающий на E (красный), затем на F под A и т. Д.

Результаты были интересными.

Так как долго переключатели дергаются? Короткий ответ: иногда много, иногда совсем нет.

Только два переключателя показали дребезги, превышающие 6200 мкс. Переключатель E, который казался красивой красной кнопкой, имел наихудший дребезг, когда он открывался на 157 мсек - почти 1/6 секунды! Юк. Однако в закрытом состоянии он никогда не превышал скачок в 20 мкс. Иди разберись.

Другой выключатель занял 11.3 мсек для полного закрытия один раз; все остальные срабатывания были менее 10 мсек.

Выбросьте эти два отсчета, и остальные 16 переключателей показали в среднем 1557 мкс подпрыгивания, при этом, как я уже сказал, максимум 6200 мкс. Совсем неплохо.

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

Идентичные переключатели особо не идентичны. Были протестированы две совпадающие пары; каждый близнец отличался от своего брата в два раза.

Несколько лет назад мы с приятелем установили систему для секретной службы, в которой были тысячи очень дорогих переключателей на панелях в диспетчерской. Мы боролись с уникальным набором проблем с отскоком, потому что офицеры в форме были слишком ленивы, чтобы встать и нажать кнопку.Они бросили линейки на панели через комнату. Различные удары создавали (а иногда и уничтожали, но в конце концов, это всего лишь деньги налогоплательщиков) довольно много отскоков. Итак, в этих экспериментах я пытался задействовать каждое устройство с помощью различных техник. Сильное или мягкое нажатие, быстрое или медленное, мягкое или резкое отпускание, поиск различных ответов. Ползунковый переключатель F действительно был очень чувствителен к скорости срабатывания. Тумблер G показал разницу во времени отскока 3: 1 в зависимости от того, как быстро я нажимал на его рычаг.Несколько других показали аналогичные результаты, но мало различимых закономерностей.


Я был очарован аналоговым поведением переключателей. Некоторые работали, как ожидалось, давая твердый ноль или 5 вольт. Но большинство дало гораздо более сложные ответы.

MSO реагировал на цифровые входы, предполагая уровни сигнала TTL. Это означает, что от 0 до 0,8 вольт - это ноль, от 0,8 до 2,0 - неизвестно, а выше 2 - единица. Инструмент отображал как цифровые, так и аналоговые сигналы, чтобы увидеть, как логическое устройство интерпретирует грубость реального мира.

Switch A был типичным. В открытом состоянии сигнал перемещается немного над землей и колеблется в диапазоне сотен милливольт до 8 мсек. Затем он внезапно превратился в единицу. По мере того, как сигнал доходил до почти вольта, осциллограф интерпретировал его как единицу, но продолжающиеся беспокойные блуждания аналога забирали его на «одну» территорию и обратно. MSO засыпал экран хешем, пытаясь интерпретировать данные.

Это было, если бы контакты не отскакивали, а протирали, перетягивая друг друга какое-то время, действуя как переменный резистор.


Изучив это более глубоко, я расширил кривые для переключателя C и с помощью закона Ома обнаружил, что сопротивление при открытии устройства ползет довольно равномерно в течение 150 мкс от нуля до 6 Ом, прежде чем внезапно достичь бесконечности. Как такового не было подпрыгивания; просто непростой скачок от 0 до 300 мВ, прежде чем он внезапно упал до твердого +5.


Еще одним артефактом этого очищающего действия были беспорядочные аналоговые сигналы, протекающие в ужасной нейтральной зоне неопределенности TTL (0.От 8 до 2,0 вольт), заставляя MSO дрожать, выбрасывая единицы или нули почти случайным образом, так же, как ваш микропроцессор, если бы он был подключен к тому же переключателю.


Два от дешевого игрового джойстика были не чем иным, как позолоченными контактами, нанесенными на печатную плату; при нажатии на резиновую крышку на плату падает какой-то проводящий эластомер. Интересно, что аналоговый результат был медленным нарастанием от нуля до пяти вольт без шума, протирания или другой неопределенности.Ни следа отскока. И все еще.. . . логический канал показывал около миллисекунд диких колебаний! Что происходит?

При использовании логики TTL сигналы в диапазоне от 0,8 до 2,0 вольт недопустимы. Все идет, и все делают. Привяжите этот, казалось бы, свободный от скачков входной сигнал к вашему процессору и приготовьтесь иметь дело с множеством колебаний - виртуальных отскоков.


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

Итак, мы знаем, как долго контакты отскакивают, и что может появиться много цифровой ерунды - в частности, ультракороткие импульсы.

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

Снова рассмотрим переключатель E, тот с красивым личиком, за которым скрывается яростное бьющееся сердце на 157 мсек. Один тест показал, что переключатель переходит в устойчивое состояние на 81 мс, после чего он упал до идеального нуля на 42 мс, прежде чем, наконец, принял правильное высокое состояние.Подумайте, что бы это могло сделать практически с любым кодом отладки!


Switch G вел себя довольно хорошо, за исключением того, что пару раз он давал несколько микросекунд, прежде чем упал до нуля более чем на 2 мс. Затем он принял свой правильный окончательный вариант. Первоначальный узкий импульс может ускользнуть от вашего ввода / вывода по запросу, но наверняка вызовет прерывание, если вы осмелитесь подключить систему таким образом. Плохая ISR будет озадачена, поскольку она рассматривает 2 мс небытия. «Я? Почему он призвал меня? Нет ничего там!»


O - очень красивый, качественный микропереключатель, который никогда не показывал больше 1.18 мс подпрыгивания. Но копнув глубже, я обнаружил, что обычно он генерирует последовательность импульсов, которая гарантированно наносит ущерб с помощью простого кода фильтра. Нет высокоскоростного хеширования, есть только твердые единицы и нули, от которых трудно избавиться. Одно срабатывание давало 7 уровней чистых нулей с интервалом времени от 12 до 86 мкс и 7 логических уровней с интервалом от 6 до 95 мкс. Легко фильтровать? Конечно. Но не по коду, который просто ищет пару идентичных чтений.


Что произойдет, если мы будем нажимать кнопки очень, очень быстро? Значительно ли это меняет подпрыгивание? Этим стареющим пальцам ужасно трудно что-то делать особенно быстро, поэтому я поставил модифицированный эксперимент, подключив мою плату MSP430 к большому четырехполюсному реле на 3 А.Загрузка кода во флэш-память процессора позволила мне переключать реле с разной скоростью.

Время дребезга варьировалось от 410 до 2920 мкс, что очень похоже на время дребезга переключателей, что, по-видимому, подтверждает эксперимент. Реле не имело заметных аналоговых эффектов, четко выбивая между 0 и 5 вольт.

Хриплый щелканье контактов на несколько часов заглушил нашу обычную классическую плату за проезд, так как MSO накапливал время отказов в режиме хранения. Когда реле размыкается, максимальное время дребезга всегда равно 2.От 3 до 2,9 мс при скорости от 2,5 до 30 Гц. Больше вариаций появилось при замыкании контакта: при 2,5 Гц скачки никогда не превышали 410 мкс, а при 30 Гц они увеличивались до 1080 мкс. Почему? Не имею представления. Но ясно, что существует некоторая корреляция между быстрым срабатыванием и большим отскоком. Эти цифры предполагают приемлемое увеличение в два раза, но не на страшный порядок величины или больше.

В старые добрые времена мы использовали много листовых переключателей, которые обычно бесконечно дергались. Кажется, недели.Любопытно, что я разобрал ряд дешевых потребительских товаров, надеясь найти такие недорогие устройства. Ничего не найдено! Теперь, когда все установлено на печатной плате, поставщики используют переключатели на плате, которые являются чертовски хорошими маленькими устройствами.


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

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

Перейдите на вторую страницу этого отчета, где представлены решения для устранения неполадок аппаратного и программного обеспечения.

Настройки невозможности доставки - Acoustic Help Center

Используйте настройки невозможности доставки для настройки повторных попыток доставки и обработки недоставленных сообщений электронной почты.

Примечание: По умолчанию администратор организации не может изменять какие-либо из этих параметров. Если вам нужно изменить эти настройки, обратитесь в службу поддержки.

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

  • Настройки повторной попытки возврата
  • Невозможные настройки обработки

Чтобы просмотреть эти настройки, перейдите в раздел «Настройки » > «Администрирование » > «Настройки организации» > Настройки невозможности доставки .

Обработка невозможности доставки добавляет контакты в список подавления. Эти настройки могут применяться на уровне списка или на уровне организации. Если настройка находится на уровне организации, обычно выбирается главный список подавления.

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

Настройки повторной попытки возврата

Эти параметры определяют частоту повторных попыток отправки того же сообщения после его мягкого возврата.

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

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

Если включены повторные попытки возврата, мягкие отказы не отображаются в отчетах до тех пор, пока не будут выполнены все попытки. Отскок не засчитывается как недоставленная обработка до тех пор, пока не будут завершены все попытки, после чего он засчитывается как один отскок.

Невозможные настройки обработки

Когда вы активируете обработку недоставленных сообщений, Acoustic Campaign блокирует отправку контактов, когда они достигают максимального количества отказов.

Если эта функция включена, используйте параметр «Правила недоставки», чтобы выбрать, следует ли помечать контакты как недоставленные для отказов только в одной базе данных (уровень списка) или добавлять их в главный список подавления, который подавляет их из любого электронного письма, отправленного из вся организация (уровень организации).

По умолчанию главный список подавления выбран как Недоставленная база данных / список. Если для правил невозможности доставки установлено использование «Уровень списка», это поле будет пустым.

Счетчик недоставленных сообщений (# отказов) и Диапазон недоставленных сообщений в днях определяет частоту, с которой мягкие отказы считаются недоставленными адресами.

Например, настройки по умолчанию Счетчик недоставленных сообщений (# отказов): 3 и Диапазон недоставленных сообщений в днях: 21 означает, что должно пройти 3 последовательных мягких возврата и минимум 21 день, прежде чем адрес будет признан недействительным адресом или не может быть доставлен.Должны быть выполнены как последовательные отказы, так и минимальное количество дней, прежде чем адрес будет считаться недоставленным. Например, электронное письмо отправляется на адрес два раза в неделю, и каждый раз они мягко возвращаются, этот адрес должен получить более 6 отказов до того, как пройдет 21 день.

Если для параметра «Обработка жестких отказов как невозможности доставки» установлено значение «Да», жесткие отказы (также известные как неверные адреса) помечаются как недоставленные немедленно и добавляются в главный список подавления.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *