Перейти к содержанию
    

Устранение дребезга коммутирующего устройства

Грубо говоря есть такая цепь:

 

+ питания

|

резистор

|

|

земля------кнопка-------о------нога ПЛИС

 

Кнопка что-то в духе МПК1-4В и дребезжит при нажатии со страшной силой.

В ПЛИС она заведена на асинхронный сброс всего что только можно.

Вопрос: насколько этот дребезг может повлиять на работу схемы и как с ним можно бороться?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если место в ПЛИСе есть, то советую сброс от кнопки завести на D-триггер с асинхронным сбросом. По первому же фронту от кнопки триггер защелкнется и запустит счетчик (настроеный на время 200-300мС, хотя нужно экспериментировать с конкретной кнопкой) который потом сбросит входной триггер и все что еще нужно сбросить. Правда окончательный сброс произойдет при отпускании кнопки. Можно поиграться и не отпускать сброс пока не отпустят кнопку - в общем решайте как лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Грубо говоря есть такая цепь:

 

                            + питания

                                  |

                            резистор

                                  |

                                  |

земля------кнопка-------о------нога ПЛИС

 

Кнопка что-то в духе МПК1-4В и дребезжит при нажатии со страшной силой.

В ПЛИС она заведена на асинхронный сброс всего что только можно.

Вопрос: насколько этот дребезг может повлиять на работу схемы и как с ним можно бороться?

 

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

 

1) У Altera в MAX+PLUS II был пример антидребезга. Посмотрите там.

2) У MAXIM есть микросхемы для этого - смотрите на их сайте.

3) Интересный вариант использовать watchdog, например Analog Devices ADM706 (у него Master Reset с антидребезгом) да и еще Power Fail Indicator

и еще как сам wathcdog :-)

4) Регистр сдвига, на вход кнопка+pullup, выходы регистра объединить по

ИЛИ, выход ИЛИ - нужный сигнал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если есть переключающая группа контактов, то всегда стараюсь использовать RS триггер для антидребезга. Единственный недостаток перерасход входов на ПЛИС т.е. по две ноги на одну кнопку, зато работает железно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Alexandr.

Первым делом почти так и сделаю, только...

У меня схема должна работать по нажатию кнопки, т.е. когда она отжата - вес в сбросе, нажата - в работе. Но мысль со счетчиком отработаю.

 

2 Victor®

1) Гм... А как хоть по аглицки этот "антидребезг" должен звучать? Я так понял смотреть нужно в хелп?

2) 3) Микросхему влепить уже не смогу - места на плате маловато, но буду иметь в виду. Особенно watchdog.

 

4) Тоже интересно, спасибо

 

2 Alhen

А можно поподробнее насчет двух ног? Торможу видимо...

 

2 Romanello

Вот это по-нашему!!

 

Всем спасибо, пошел пробовать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Victor®

1) Гм... А как хоть по аглицки этот "антидребезг" должен звучать? Я так понял смотреть нужно в хелп?

 

 

антидребезг - debounce

Микросхемы смотреть здесь:

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1896

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to Гяук

Вот пример на AHDL

 

TITLE "EPR";

Subdesign EPR

(

CLK32x :input; -- PIN 54

Button_S :input; -- PIN 49

Button_R :input; -- PIN 47

.......

)

Variable

C[1..0] :TFF;

PScaler[18..0] :TFF;

DEBOUNCER :SRFF;

 

BEGIN

PScaler[].clk = CLK32x;

PScaler[0].t = VCC; -- 16 MHz

.......

PScaler[15].t = PScaler[0] & PScaler[1]......

 

DEBOUNCER.clk = PScaler[15];

DEBOUNCER.s = !Button_S;

DEBOUNCER.r = !Button_R;

.......

END;

Ну и на рисунке схема

 

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

post-516-1111767455.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Victor®

По поводу дебоунсера корка какая-то маловнятная (пользуясь всеми подсказками данными на форуме мне проще что-то свое сваять), но за ссылку спасибо :)

 

2 Alhen Идею понял, спасибо. И, это, можно вопрос... А Вы правда из КАРАГАНДЫ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, со счетчиком все работает весьма сладко:

 

// debouncer

reg [3:0] debouncer;

parameter hold_time = 10;

 

always @(posedge clk)

if(in_to_debouncing) debouncer <= hold_hime;

else if(debouncer > 0)

debouncer <= debouncer - 1;

 

wire in_debounced = (debouncer != 0);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2Гяук, я однозначно из Караганды "мы ррузские дрругх друха не обманываем", а что?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2Гяук, я однозначно из Караганды "мы ррузские дрругх друха не обманываем", а что?

 

Гм, да нет, ничего, просто соратник на работе глазастый попался - пригляделся: "Вот, говорит, народ стебается" - а я решил спросить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

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

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...