реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Антидребезг, Подключение кнопки
sgs
сообщение May 24 2018, 04:25
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578



Цитата(Flip-fl0p @ May 23 2018, 19:09) *
У кнопки дребезг может быть миллисекунды. Как поможет сдвиговый регистр ума не приложу....


Дребезг типовых кнопок 10-20 мсек. Но есть "чемпионы" - до 50 мсек. Антидребезг достигается либо программными, либо аппаратными методами. Счетчики, сдвиговые регистры etc. - хорошее, но весьма громоздкое решение. Если кнопок немного и они изолированы по входам (не матрица), самое простое - ТШ-входы с подтяжкой и конденсатором на землю. Для матрицы немного сложнее, но тоже решаемо. Постоянная RC-цепочки выбирается так, чтобы надежно перекрыть длительность дребезга. Частые возражения типа "это слишком медленно" снимаются простой цифрой - быстродействием пальца человека (100 - 200 мсек).
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 24 2018, 04:39
Сообщение #17


В поисках себя...
****

Группа: Свой
Сообщений: 698
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



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

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

Go to the top of the page
 
+Quote Post
sgs
сообщение May 24 2018, 04:50
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578



Цитата(Flip-fl0p @ May 24 2018, 08:39) *
Вы предлагаете в типовой FPGA где более 10 000 триггеров ставить на каждый вход по ТШ и конденсаторы ? wacko.gif

Играйте с триггерами. Никто не против. Однако, вы же не возражаете поставить десяток конденсаторов по питанию? Так чем хуже еще несколько конденсаторов на входах? У вас же не все ноги заняты кнопками? Поверьте, ТШ-входы придуманы совсем не напрасно...
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 24 2018, 05:00
Сообщение #19


В поисках себя...
****

Группа: Свой
Сообщений: 698
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(sgs @ May 24 2018, 07:50) *
Играйте с триггерами. Никто не против. Однако, вы же не возражаете поставить десяток конденсаторов по питанию? Так чем хуже еще несколько конденсаторов на входах? У вас же не все ноги заняты кнопками? Поверьте, ТШ-входы придуманы совсем не напрасно...

Придуманы они может и не напрасно. Но в FPGA от них толку мало, как я считаю. А ставить что-то лишнее - впустую тратить деньги компании. И на крупно-серийном или средне-серийном производстве, где выпекать ASIC нецелесообразно - лишние элементы приведут к достаточно серьезным затратам. Да и зачем ставить лишний элемент, который может отказать ?
Go to the top of the page
 
+Quote Post
sgs
сообщение May 24 2018, 05:48
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578



Цитата(Flip-fl0p @ May 24 2018, 09:00) *
Придуманы они может и не напрасно. Но в FPGA от них толку мало, как я считаю. А ставить что-то лишнее - впустую тратить деньги компании. И на крупно-серийном или средне-серийном производстве, где выпекать ASIC нецелесообразно - лишние элементы приведут к достаточно серьезным затратам. Да и зачем ставить лишний элемент, который может отказать ?

ТШ-входы совсем не напрасно ставятся практически во все микроконтроллеры и в большинство входов FPGA. Они предназначены для связи "виртуального" содержимого микросхемы с жестоким и непредсказуемым внешним миром, в котором могут быть помехи, дребезг, удар молнии, наконец... Вы серьезно считаете, что надежность микросхемы выше надежности резистора или конденсатора? А насчет лишних элементов: материнские платы компьютеров вы, надеюсь, не считаете мелкосерийным производством? Так на них уйма RC-цепочек, призванных снять звон и помехи в линиях связи между ВНУТРЕННИМИ компонентами плат. Что уж говорить за внешние кнопки... Понимаете, я совсем не против программных методов борьбы с дребезгом кнопок, но часто в не слишком сложных приложениях простейшая RC-цепочка снимает необходимость городить цифровой огород. Сам я давно использую простейший алгоритм опроса кнопок: опрос проводится каждые 20-30 мсек, что заведомо больше любого дребезга, но меньше длительности нажатия кнопки человеком. Следующий после обнаружения нажатия такт опроса дает либо подтверждение, либо освобождение кнопки, что позволяет сформировать однозначный флаг события.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 24 2018, 06:09
Сообщение #21


В поисках себя...
****

Группа: Свой
Сообщений: 698
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



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

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

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

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

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

Что значит городить цифровой огород ?
У меня 1 раз описан модуль антидребезга, и я пользуюсь им постоянно. Подключить его ко входу кнопки дело 20 секунд.
На какой нибудь маленькой CPLD, где проект занимает под 90% кристалла - там безусловно проще решить проблему поставив внешнюю рассыпуху. Ставить эту рассыпуху на FPGA где проект никогда не будет занимать более 50% ресурсов - есть занятие дорогое и абсолютно бессмысленное... Каждое техническое решение должно быть обоснованно.
Go to the top of the page
 
+Quote Post
sgs
сообщение May 24 2018, 06:42
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578



Цитата(Flip-fl0p @ May 24 2018, 10:09) *
Вот только сравнивать надо вероятность отказа микросхемы с вероятностью отказа микросхемы + конденсатора + ТШ. Ответ думаю очевиден.,

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

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

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

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

Вот тут согласен на все 146%. Именно обоснованный и просчитанный баланс цифровых и аналоговых компонентов, программы и "железа" делает проект упешным...
Go to the top of the page
 
+Quote Post
lembrix
сообщение May 24 2018, 06:59
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-04-17
Из: Зеленоград
Пользователь №: 96 508



Цитата(demsp @ May 23 2018, 16:58) *
Спасибо, а вот ещё в мануале MAX II Device Handbook написано про триггеры Шмитта, которые обеспечивают гистерезис на буфере входных сигналов, предотвращая дребезг контактов. Я в Pin Planer включил триггер Шмитта на входном пине, но дребезг остался. Наверное, надо внешний конденсатор повесить?

Триггер Шмидта не помогает, потому что он от пологих фронтов, когда сигнал плавно меняет свое состояние от "0" до "1". А при дребезге проблема в другом, сигнал достигает полного уровня логической "1" вызывая переключение что обычного входа, что входа с триггером Шмидта, а затем возвращается к уровню логического "0", и так несколько раз.
Go to the top of the page
 
+Quote Post
XVR
сообщение May 24 2018, 07:54
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 3 121
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sgs @ May 24 2018, 08:48) *
ТШ-входы совсем не напрасно ставятся практически во все микроконтроллеры и в большинство входов FPGA. Они предназначены для связи "виртуального" содержимого микросхемы с жестоким и непредсказуемым внешним миром, в котором могут быть помехи, дребезг, удар молнии, наконец...
Ой! А расскажите нам как ТШ поможет от 'удара молнии'? blink.gif
Go to the top of the page
 
+Quote Post
sgs
сообщение May 24 2018, 08:14
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578



Цитата(XVR @ May 24 2018, 11:54) *
Ой! А расскажите нам как ТШ поможет от 'удара молнии'? blink.gif

cool.gif Я же сказал "связь ... с жестоким и непредсказуемым внешним миром", а не защита от него...
А от молнии, если она попадет, не спасет ничего biggrin.gif
Защитится можно, и то относительно, только от ЭМ импульса, генерируемого молнией.
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 24 2018, 08:29
Сообщение #26


Гуру
******

Группа: Модераторы
Сообщений: 3 982
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(sgs @ May 24 2018, 11:14) *
cool.gif Я же сказал "связь ... с жестоким и непредсказуемым внешним миром", а не защита от него...

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
sgs
сообщение May 24 2018, 08:45
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578



Цитата(iosifk @ May 24 2018, 12:29) *
в России толковые люди знают, что если в обычном механическом счетчике просверлить дырку и туда вставить гвоздь

А у нас на рынке магнитики продают для остановки электронных счетчиков... rolleyes.gif
Цитата
А вообще в чем смысл такого бурного обсуждения антидребезга?
...И что тут друг-другу Вы доказываете?

Да смысл в общем-то в плюрализме... Посмотрев первую страницу я увидел только одну сторону решения, вот и вставил свои пять копеек... biggrin.gif
Go to the top of the page
 
+Quote Post
demsp
сообщение May 26 2018, 06:53
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 17-03-18
Пользователь №: 102 435



Цитата(iosifk @ May 24 2018, 12:29) *
А вообще в чем смысл такого бурного обсуждения антидребезга?
У кого-то от кнопки идет 2 провода, у кого-то один. Кто-то работает с CPLD, где каждый вентиль на учете, а у кого-то FPGA с миллионом ячеек

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

Цитата(lembrix @ May 24 2018, 10:59) *
Триггер Шмидта не помогает, потому что он от пологих фронтов, когда сигнал плавно меняет свое состояние от "0" до "1". А при дребезге проблема в другом, сигнал достигает полного уровня логической "1" вызывая переключение что обычного входа, что входа с триггером Шмидта, а затем возвращается к уровню логического "0", и так несколько раз.

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

Сообщение отредактировал demsp - May 26 2018, 07:56
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 26 2018, 12:55
Сообщение #29


В поисках себя...
****

Группа: Свой
Сообщений: 698
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(demsp @ May 26 2018, 09:53) *
Спасибо. Мне надо реализовать антидребезг для одной кнопки на CPLD


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

Хочу немого добавить. Применение ТШ не избавит от необходимости синхронизировать данные для подавления метастабильности.
Go to the top of the page
 
+Quote Post
Plain
сообщение May 26 2018, 15:23
Сообщение #30


Гуру
******

Группа: Участник
Сообщений: 6 615
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Цитата(demsp @ May 26 2018, 09:53) *
антидребезг для одной кнопки на CPLD

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

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

Если аналоговым способом — например, вывести наружу промежуточный сигнал стробируемого RS-триггера и завести его через внешнюю RC обратно в схему.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2018 - 12:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.00974 секунд с 7
ELECTRONIX ©2004-2016