Подавление дребезга контактов
В лабораторных работах по цифровой схемотехнике при изучении триггеров, регистров и счетчиков для подачи тактовых импульсов с помощью кнопки Bottom рекомендуется использовать блок Antitinkling. Данный блок предназначен для подавления дребезга контактов. Из-за этого явления непосредственное подключение кнопки с механическим замыканием контактов к цифровой схеме не всегда допустимо. Суть дребезга заключается в многократном неконтролируемом замыкании и размыкании контактов в момент коммутации, в результате чего на цифровую схему подается множество импульсов вместо одного.
Для тех кто пишет на Verilog или хочет узнать о других способах реализации рекомендуем:
Подавляем дребезг контактов в ПЛИС. Debouncer на Verilog
Причина дребезга заключается в механической конструкции кнопки, которая не позволяет мгновенно зафиксировать контакт. На рисунке 1 показана временная диаграмма сигнала в момент переключения. Принято считать, что у кнопок дребезг длится не более нескольких десятков мс, а длительность нажатия кнопки человеком длится несколько сотен мс (рисунок 2).
Схема для подавления дребезга контактов показана на рисунке 3 и состоит из двухступенчатого D-триггера, работающего по переднему фронту (по умолчанию в Quartus II), и генератора управляющих импульсов. Для генерации управляющих импульсов используется внешний тактовый генератор и делитель частоты.
Схема фиксирует логическое состояние на сигнальной линии только в момент времени подачи импульса. Время фиксации определяется длительностью фронта управляющего импульса и для микросхемы EP1C3T144C8 (ПЛИС FPGA) составляет несколько нано секунд (нс). За это время уровень на линии кнопки измениться не может и в триггер будет записано текущее состояние кнопки.
Частота тактового генератора в учебных стендах LESO2 равна 6 МГц, в стендах LESO2.1 и LESO2.3 – 50 МГц. Делитель частоты должен обеспечить интервал между импульсами больше, чем длительность дребезга и менее чем длительность нажатия кнопки. Мы рекомендуем выбрать интервал 50 – 100 мс. На рисунке 4 показаны диаграммы работы схемы.
На рисунке 5 показана схема подавителя дребезга в графическом редакторе Quartus II. На рисунках 6 и 7 показано как добавить в проект счетчик-делитель частоты и настроить его с помощью MegaWizerd Plug in Manager.
На устаревших стендах LESO2 для того, чтобы внешний генератор заработал, необходимо на pin91 подать логическую "1", в новых стендах LESO2.1 и LESO2.3 этого делать не нужно.
При необходимости разрядность счетчика, а, следовательно, период следования управляющих импульсов, может быть отредактирован. Для этого следует запустить MegaWizard двойным кликом мыши по объекту lpm_counter.
Комментарии:
вт, 07/14/2015 - 23:27
Постоянная ссылка (Permalink)