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

У кнопки дребезг может быть миллисекунды. Как поможет сдвиговый регистр ума не приложу....

 

Дребезг типовых кнопок 10-20 мсек. Но есть "чемпионы" - до 50 мсек. Антидребезг достигается либо программными, либо аппаратными методами. Счетчики, сдвиговые регистры etc. - хорошее, но весьма громоздкое решение. Если кнопок немного и они изолированы по входам (не матрица), самое простое - ТШ-входы с подтяжкой и конденсатором на землю. Для матрицы немного сложнее, но тоже решаемо. Постоянная RC-цепочки выбирается так, чтобы надежно перекрыть длительность дребезга. Частые возражения типа "это слишком медленно" снимаются простой цифрой - быстродействием пальца человека (100 - 200 мсек).

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


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

Дребезг типовых кнопок 10-20 мсек. Но есть "чемпионы" - до 50 мсек. Антидребезг достигается либо программными, либо аппаратными методами. Счетчики, сдвиговые регистры etc. - хорошее, но весьма громоздкое решение. Если кнопок немного и они изолированы по входам (не матрица), самое простое - ТШ-входы с подтяжкой и конденсатором на землю. Для матрицы немного сложнее, но тоже решаемо. Постоянная RC-цепочки выбирается так, чтобы надежно перекрыть длительность дребезга. Частые возражения типа "это слишком медленно" снимаются простой цифрой - быстродействием пальца человека (100 - 200 мсек).

Вы предлагаете в типовой FPGA где более 10 000 триггеров ставить на каждый вход по ТШ и конденсаторы ? :wacko:

 

 

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


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

Вы предлагаете в типовой FPGA где более 10 000 триггеров ставить на каждый вход по ТШ и конденсаторы ? :wacko:

Играйте с триггерами. Никто не против. Однако, вы же не возражаете поставить десяток конденсаторов по питанию? Так чем хуже еще несколько конденсаторов на входах? У вас же не все ноги заняты кнопками? Поверьте, ТШ-входы придуманы совсем не напрасно...

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


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

Играйте с триггерами. Никто не против. Однако, вы же не возражаете поставить десяток конденсаторов по питанию? Так чем хуже еще несколько конденсаторов на входах? У вас же не все ноги заняты кнопками? Поверьте, ТШ-входы придуманы совсем не напрасно...

Придуманы они может и не напрасно. Но в FPGA от них толку мало, как я считаю. А ставить что-то лишнее - впустую тратить деньги компании. И на крупно-серийном или средне-серийном производстве, где выпекать ASIC нецелесообразно - лишние элементы приведут к достаточно серьезным затратам. Да и зачем ставить лишний элемент, который может отказать ?

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


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

Придуманы они может и не напрасно. Но в FPGA от них толку мало, как я считаю. А ставить что-то лишнее - впустую тратить деньги компании. И на крупно-серийном или средне-серийном производстве, где выпекать ASIC нецелесообразно - лишние элементы приведут к достаточно серьезным затратам. Да и зачем ставить лишний элемент, который может отказать ?

ТШ-входы совсем не напрасно ставятся практически во все микроконтроллеры и в большинство входов FPGA. Они предназначены для связи "виртуального" содержимого микросхемы с жестоким и непредсказуемым внешним миром, в котором могут быть помехи, дребезг, удар молнии, наконец... Вы серьезно считаете, что надежность микросхемы выше надежности резистора или конденсатора? А насчет лишних элементов: материнские платы компьютеров вы, надеюсь, не считаете мелкосерийным производством? Так на них уйма RC-цепочек, призванных снять звон и помехи в линиях связи между ВНУТРЕННИМИ компонентами плат. Что уж говорить за внешние кнопки... Понимаете, я совсем не против программных методов борьбы с дребезгом кнопок, но часто в не слишком сложных приложениях простейшая RC-цепочка снимает необходимость городить цифровой огород. Сам я давно использую простейший алгоритм опроса кнопок: опрос проводится каждые 20-30 мсек, что заведомо больше любого дребезга, но меньше длительности нажатия кнопки человеком. Следующий после обнаружения нажатия такт опроса дает либо подтверждение, либо освобождение кнопки, что позволяет сформировать однозначный флаг события.

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


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

Вы серьезно считаете, что надежность микросхемы выше надежности резистора или конденсатора?

Вот только сравнивать надо вероятность отказа микросхемы с вероятностью отказа микросхемы + конденсатора + ТШ. Ответ думаю очевиден.,

 

Так на них уйма RC-цепочек, призванных снять звон и помехи в линиях связи между ВНУТРЕННИМИ компонентами плат.

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

 

но часто в не слишком сложных приложениях простейшая RC-цепочка снимает необходимость городить цифровой огород.

Что значит городить цифровой огород ?

У меня 1 раз описан модуль антидребезга, и я пользуюсь им постоянно. Подключить его ко входу кнопки дело 20 секунд.

На какой нибудь маленькой CPLD, где проект занимает под 90% кристалла - там безусловно проще решить проблему поставив внешнюю рассыпуху. Ставить эту рассыпуху на FPGA где проект никогда не будет занимать более 50% ресурсов - есть занятие дорогое и абсолютно бессмысленное... Каждое техническое решение должно быть обоснованно.

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


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

Вот только сравнивать надо вероятность отказа микросхемы с вероятностью отказа микросхемы + конденсатора + ТШ. Ответ думаю очевиден.,

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

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

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

Что значит городить цифровой огород ?

У меня 1 раз описан модуль антидребезга, и я пользуюсь им постоянно. Подключить его ко входу кнопки дело 20 секунд.

И так для каждой кнопки, подключенной к проекту?..

На какой нибудь маленькой CPLD, где проект занимает под 90% кристалла - там безусловно проще решить проблему поставив внешнюю рассыпуху. Ставить эту рассыпуху на FPGA где проект никогда не будет занимать более 50% ресурсов - есть занятие дорогое и абсолютно бессмысленное...

А использовать 30-50% микросхемы - это дешевое занятие? Понимаю, что при избытке ресурсов можно смоделировать в FPGA почти любой аналоговый процесс (а внешнее управление, в том числе, кнопка - процесс аналоговый). Вот только стоит ли? Это мне напоминает один видимый мной проект, когда на управление пневмоклапаном поставили сначала STM32, а потом всерьез обсуждали вариант с FPGA...

Каждое техническое решение должно быть обоснованно.

Вот тут согласен на все 146%. Именно обоснованный и просчитанный баланс цифровых и аналоговых компонентов, программы и "железа" делает проект упешным...

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


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

Спасибо, а вот ещё в мануале MAX II Device Handbook написано про триггеры Шмитта, которые обеспечивают гистерезис на буфере входных сигналов, предотвращая дребезг контактов. Я в Pin Planer включил триггер Шмитта на входном пине, но дребезг остался. Наверное, надо внешний конденсатор повесить?

Триггер Шмидта не помогает, потому что он от пологих фронтов, когда сигнал плавно меняет свое состояние от "0" до "1". А при дребезге проблема в другом, сигнал достигает полного уровня логической "1" вызывая переключение что обычного входа, что входа с триггером Шмидта, а затем возвращается к уровню логического "0", и так несколько раз.

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


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

ТШ-входы совсем не напрасно ставятся практически во все микроконтроллеры и в большинство входов FPGA. Они предназначены для связи "виртуального" содержимого микросхемы с жестоким и непредсказуемым внешним миром, в котором могут быть помехи, дребезг, удар молнии, наконец...
Ой! А расскажите нам как ТШ поможет от 'удара молнии'? :blink:

 

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


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

Ой! А расскажите нам как ТШ поможет от 'удара молнии'? :blink:

B) Я же сказал "связь ... с жестоким и непредсказуемым внешним миром", а не защита от него...

А от молнии, если она попадет, не спасет ничего :biggrin:

Защитится можно, и то относительно, только от ЭМ импульса, генерируемого молнией.

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


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

B) Я же сказал "связь ... с жестоким и непредсказуемым внешним миром", а не защита от него...

Про жестокость мира...

Приехал как-то к нам на фирму парень из венского европейского офиса Аналога. И он рассказывал о микросхемах электросчетчиков...

Ну а я решил с ним познакомиться поближе. Вот, значит подхожу и говорю, что мол в России толковые люди знают, что если в обычном механическом счетчике просверлить дырку и туда вставить гвоздь, то счетчик не крутится и денег платить не надо. А куда надо сверлить микросхему? Иоганнесу потребовалось минуты три, и они понял о чем я говорил.. Он все же часто в Россию к нам ездил.. Вот так и познакомились.

А вообще в чем смысл такого бурного обсуждения антидребезга?

У кого-то от кнопки идет 2 провода, у кого-то один. Кто-то работает с CPLD, где каждый вентиль на учете, а у кого-то FPGA с миллионом ячеек. У одних - настольные изделия, у других - цех или электровоз. И что тут друг-другу Вы доказываете?

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


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

в России толковые люди знают, что если в обычном механическом счетчике просверлить дырку и туда вставить гвоздь

А у нас на рынке магнитики продают для остановки электронных счетчиков... :rolleyes:

А вообще в чем смысл такого бурного обсуждения антидребезга?

...И что тут друг-другу Вы доказываете?

Да смысл в общем-то в плюрализме... Посмотрев первую страницу я увидел только одну сторону решения, вот и вставил свои пять копеек... :biggrin:

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


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

А вообще в чем смысл такого бурного обсуждения антидребезга?

У кого-то от кнопки идет 2 провода, у кого-то один. Кто-то работает с CPLD, где каждый вентиль на учете, а у кого-то FPGA с миллионом ячеек

Спасибо. Мне надо реализовать антидребезг для одной кнопки на CPLD

 

Триггер Шмидта не помогает, потому что он от пологих фронтов, когда сигнал плавно меняет свое состояние от "0" до "1". А при дребезге проблема в другом, сигнал достигает полного уровня логической "1" вызывая переключение что обычного входа, что входа с триггером Шмидта, а затем возвращается к уровню логического "0", и так несколько раз.

Тогда надо включить ТШ в настройках пина, а на пин повесить конденсатор. Так?

Изменено пользователем demsp

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


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

Спасибо. Мне надо реализовать антидребезг для одной кнопки на CPLD

 

 

Тогда надо включить ТШ в настройках пина, а на пин повесить конденсатор. Так?

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

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


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

антидребезг для одной кнопки на CPLD

RC на входе ТШ на это не способна, потому что будет работать лишь в случае, если среднее напряжение, создаваемое дребезгом, будет находиться заведомо далеко от обоих порогов ТШ, а это нереально, потому что они у него чисто символические (гистерезис никакой). Следовательно, требуется всё сделать честно.

 

Если цифровым способом, то, как сказали выше, короткий медленно тактуемый сдвиговый регистр и цифровой аналог ТШ с большим гистерезисом с его выходов — функция "все нули / все единицы" разрешает запись в выходной однобитный регистр.

 

Если аналоговым способом — например, вывести наружу промежуточный сигнал стробируемого RS-триггера и завести его через внешнюю RC обратно в схему.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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