sgs 0 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба У кнопки дребезг может быть миллисекунды. Как поможет сдвиговый регистр ума не приложу.... Дребезг типовых кнопок 10-20 мсек. Но есть "чемпионы" - до 50 мсек. Антидребезг достигается либо программными, либо аппаратными методами. Счетчики, сдвиговые регистры etc. - хорошее, но весьма громоздкое решение. Если кнопок немного и они изолированы по входам (не матрица), самое простое - ТШ-входы с подтяжкой и конденсатором на землю. Для матрицы немного сложнее, но тоже решаемо. Постоянная RC-цепочки выбирается так, чтобы надежно перекрыть длительность дребезга. Частые возражения типа "это слишком медленно" снимаются простой цифрой - быстродействием пальца человека (100 - 200 мсек). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Дребезг типовых кнопок 10-20 мсек. Но есть "чемпионы" - до 50 мсек. Антидребезг достигается либо программными, либо аппаратными методами. Счетчики, сдвиговые регистры etc. - хорошее, но весьма громоздкое решение. Если кнопок немного и они изолированы по входам (не матрица), самое простое - ТШ-входы с подтяжкой и конденсатором на землю. Для матрицы немного сложнее, но тоже решаемо. Постоянная RC-цепочки выбирается так, чтобы надежно перекрыть длительность дребезга. Частые возражения типа "это слишком медленно" снимаются простой цифрой - быстродействием пальца человека (100 - 200 мсек). Вы предлагаете в типовой FPGA где более 10 000 триггеров ставить на каждый вход по ТШ и конденсаторы ? :wacko: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sgs 0 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Вы предлагаете в типовой FPGA где более 10 000 триггеров ставить на каждый вход по ТШ и конденсаторы ? :wacko: Играйте с триггерами. Никто не против. Однако, вы же не возражаете поставить десяток конденсаторов по питанию? Так чем хуже еще несколько конденсаторов на входах? У вас же не все ноги заняты кнопками? Поверьте, ТШ-входы придуманы совсем не напрасно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Играйте с триггерами. Никто не против. Однако, вы же не возражаете поставить десяток конденсаторов по питанию? Так чем хуже еще несколько конденсаторов на входах? У вас же не все ноги заняты кнопками? Поверьте, ТШ-входы придуманы совсем не напрасно... Придуманы они может и не напрасно. Но в FPGA от них толку мало, как я считаю. А ставить что-то лишнее - впустую тратить деньги компании. И на крупно-серийном или средне-серийном производстве, где выпекать ASIC нецелесообразно - лишние элементы приведут к достаточно серьезным затратам. Да и зачем ставить лишний элемент, который может отказать ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sgs 0 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Придуманы они может и не напрасно. Но в FPGA от них толку мало, как я считаю. А ставить что-то лишнее - впустую тратить деньги компании. И на крупно-серийном или средне-серийном производстве, где выпекать ASIC нецелесообразно - лишние элементы приведут к достаточно серьезным затратам. Да и зачем ставить лишний элемент, который может отказать ? ТШ-входы совсем не напрасно ставятся практически во все микроконтроллеры и в большинство входов FPGA. Они предназначены для связи "виртуального" содержимого микросхемы с жестоким и непредсказуемым внешним миром, в котором могут быть помехи, дребезг, удар молнии, наконец... Вы серьезно считаете, что надежность микросхемы выше надежности резистора или конденсатора? А насчет лишних элементов: материнские платы компьютеров вы, надеюсь, не считаете мелкосерийным производством? Так на них уйма RC-цепочек, призванных снять звон и помехи в линиях связи между ВНУТРЕННИМИ компонентами плат. Что уж говорить за внешние кнопки... Понимаете, я совсем не против программных методов борьбы с дребезгом кнопок, но часто в не слишком сложных приложениях простейшая RC-цепочка снимает необходимость городить цифровой огород. Сам я давно использую простейший алгоритм опроса кнопок: опрос проводится каждые 20-30 мсек, что заведомо больше любого дребезга, но меньше длительности нажатия кнопки человеком. Следующий после обнаружения нажатия такт опроса дает либо подтверждение, либо освобождение кнопки, что позволяет сформировать однозначный флаг события. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Вы серьезно считаете, что надежность микросхемы выше надежности резистора или конденсатора? Вот только сравнивать надо вероятность отказа микросхемы с вероятностью отказа микросхемы + конденсатора + ТШ. Ответ думаю очевиден., Так на них уйма RC-цепочек, призванных снять звон и помехи в линиях связи между ВНУТРЕННИМИ компонентами плат. Вы все смешали в очень большую кучу ! Я не говорил, что согласование сигналов между компонентами не нужно. Согласование сигналов - это вообще из другой оперы, так-же как и молниезащита и пр. но часто в не слишком сложных приложениях простейшая RC-цепочка снимает необходимость городить цифровой огород. Что значит городить цифровой огород ? У меня 1 раз описан модуль антидребезга, и я пользуюсь им постоянно. Подключить его ко входу кнопки дело 20 секунд. На какой нибудь маленькой CPLD, где проект занимает под 90% кристалла - там безусловно проще решить проблему поставив внешнюю рассыпуху. Ставить эту рассыпуху на FPGA где проект никогда не будет занимать более 50% ресурсов - есть занятие дорогое и абсолютно бессмысленное... Каждое техническое решение должно быть обоснованно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sgs 0 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Вот только сравнивать надо вероятность отказа микросхемы с вероятностью отказа микросхемы + конденсатора + ТШ. Ответ думаю очевиден., Начнем с того, что ТШ - свойство самого входа, и значит его надежность и есть надежность чипа. А вот то, что любая достаточно мощная помеха или ЭМ наводка сожгут "голый" вход вернее, чем вход с конденсатором - это не обсуждаемо... Вы все смешали в очень большую кучу ! Я не говорил, что согласование сигналов между компонентами не нужно. Согласование сигналов - это вообще из другой оперы, так-же как и молниезащита и пр. Простите, но защита и согласование суть одна задача - обеспечить надежный безошибочный способ передачи данных, будь то линия или кнопка. Что значит городить цифровой огород ? У меня 1 раз описан модуль антидребезга, и я пользуюсь им постоянно. Подключить его ко входу кнопки дело 20 секунд. И так для каждой кнопки, подключенной к проекту?.. На какой нибудь маленькой CPLD, где проект занимает под 90% кристалла - там безусловно проще решить проблему поставив внешнюю рассыпуху. Ставить эту рассыпуху на FPGA где проект никогда не будет занимать более 50% ресурсов - есть занятие дорогое и абсолютно бессмысленное... А использовать 30-50% микросхемы - это дешевое занятие? Понимаю, что при избытке ресурсов можно смоделировать в FPGA почти любой аналоговый процесс (а внешнее управление, в том числе, кнопка - процесс аналоговый). Вот только стоит ли? Это мне напоминает один видимый мной проект, когда на управление пневмоклапаном поставили сначала STM32, а потом всерьез обсуждали вариант с FPGA... Каждое техническое решение должно быть обоснованно. Вот тут согласен на все 146%. Именно обоснованный и просчитанный баланс цифровых и аналоговых компонентов, программы и "железа" делает проект упешным... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lembrix 0 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Спасибо, а вот ещё в мануале MAX II Device Handbook написано про триггеры Шмитта, которые обеспечивают гистерезис на буфере входных сигналов, предотвращая дребезг контактов. Я в Pin Planer включил триггер Шмитта на входном пине, но дребезг остался. Наверное, надо внешний конденсатор повесить? Триггер Шмидта не помогает, потому что он от пологих фронтов, когда сигнал плавно меняет свое состояние от "0" до "1". А при дребезге проблема в другом, сигнал достигает полного уровня логической "1" вызывая переключение что обычного входа, что входа с триггером Шмидта, а затем возвращается к уровню логического "0", и так несколько раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба ТШ-входы совсем не напрасно ставятся практически во все микроконтроллеры и в большинство входов FPGA. Они предназначены для связи "виртуального" содержимого микросхемы с жестоким и непредсказуемым внешним миром, в котором могут быть помехи, дребезг, удар молнии, наконец...Ой! А расскажите нам как ТШ поможет от 'удара молнии'? :blink: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sgs 0 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба Ой! А расскажите нам как ТШ поможет от 'удара молнии'? :blink: B) Я же сказал "связь ... с жестоким и непредсказуемым внешним миром", а не защита от него... А от молнии, если она попадет, не спасет ничего :biggrin: Защитится можно, и то относительно, только от ЭМ импульса, генерируемого молнией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба B) Я же сказал "связь ... с жестоким и непредсказуемым внешним миром", а не защита от него... Про жестокость мира... Приехал как-то к нам на фирму парень из венского европейского офиса Аналога. И он рассказывал о микросхемах электросчетчиков... Ну а я решил с ним познакомиться поближе. Вот, значит подхожу и говорю, что мол в России толковые люди знают, что если в обычном механическом счетчике просверлить дырку и туда вставить гвоздь, то счетчик не крутится и денег платить не надо. А куда надо сверлить микросхему? Иоганнесу потребовалось минуты три, и они понял о чем я говорил.. Он все же часто в Россию к нам ездил.. Вот так и познакомились. А вообще в чем смысл такого бурного обсуждения антидребезга? У кого-то от кнопки идет 2 провода, у кого-то один. Кто-то работает с CPLD, где каждый вентиль на учете, а у кого-то FPGA с миллионом ячеек. У одних - настольные изделия, у других - цех или электровоз. И что тут друг-другу Вы доказываете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sgs 0 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба в России толковые люди знают, что если в обычном механическом счетчике просверлить дырку и туда вставить гвоздь А у нас на рынке магнитики продают для остановки электронных счетчиков... :rolleyes: А вообще в чем смысл такого бурного обсуждения антидребезга? ...И что тут друг-другу Вы доказываете? Да смысл в общем-то в плюрализме... Посмотрев первую страницу я увидел только одну сторону решения, вот и вставил свои пять копеек... :biggrin: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demsp 0 26 мая, 2018 Опубликовано 26 мая, 2018 (изменено) · Жалоба А вообще в чем смысл такого бурного обсуждения антидребезга? У кого-то от кнопки идет 2 провода, у кого-то один. Кто-то работает с CPLD, где каждый вентиль на учете, а у кого-то FPGA с миллионом ячеек Спасибо. Мне надо реализовать антидребезг для одной кнопки на CPLD Триггер Шмидта не помогает, потому что он от пологих фронтов, когда сигнал плавно меняет свое состояние от "0" до "1". А при дребезге проблема в другом, сигнал достигает полного уровня логической "1" вызывая переключение что обычного входа, что входа с триггером Шмидта, а затем возвращается к уровню логического "0", и так несколько раз. Тогда надо включить ТШ в настройках пина, а на пин повесить конденсатор. Так? Изменено 26 мая, 2018 пользователем demsp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 26 мая, 2018 Опубликовано 26 мая, 2018 · Жалоба Спасибо. Мне надо реализовать антидребезг для одной кнопки на CPLD Тогда надо включить ТШ в настройках пина, а на пин повесить конденсатор. Так? Хочу немого добавить. Применение ТШ не избавит от необходимости синхронизировать данные для подавления метастабильности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 168 26 мая, 2018 Опубликовано 26 мая, 2018 · Жалоба антидребезг для одной кнопки на CPLD RC на входе ТШ на это не способна, потому что будет работать лишь в случае, если среднее напряжение, создаваемое дребезгом, будет находиться заведомо далеко от обоих порогов ТШ, а это нереально, потому что они у него чисто символические (гистерезис никакой). Следовательно, требуется всё сделать честно. Если цифровым способом, то, как сказали выше, короткий медленно тактуемый сдвиговый регистр и цифровой аналог ТШ с большим гистерезисом с его выходов — функция "все нули / все единицы" разрешает запись в выходной однобитный регистр. Если аналоговым способом — например, вывести наружу промежуточный сигнал стробируемого RS-триггера и завести его через внешнюю RC обратно в схему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться