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

 
 
> Новичковое: дребезг кнопок
ReedCat
сообщение Jan 25 2008, 09:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 14-01-08
Из: Москва
Пользователь №: 34 069



Приветствую!

Начал пробовать свои силы в работе с FPGA.
Схемотехникой немного занимался, но очень давно (ещё когда PLM были "будущим электроники", а не её настоящим), поэтому сразу стали возникать "вопросы новичка". Буду признателен за разъяснения.

Итак, дано: макетная плата с Spartan-3E, ISE Webpack.
Прогоняю технологическую цепочку, чтобы понять, как "оно" работает, на примитивном тесте: светодиодиками на макетной плате помигать. Мигает. Дальше хочу задействовать имеющуюся кнопку для управления процессом (выключения светодиодика).

Придумывается что-то типа:


reg ONOFF;

...
always @(posegde clk) if ( ~ butt) ONOFF = ~ ONOFF;
...

assign LED = ONOFF & .... ;

И "меня терзают смутные сомнения", придуманная конструкция явно неустойчива к "дребезгу" контактов кнопки.
Какой стандартный ход применяют те, кто уже имеет опыт? Делят такт и опрашивают реже? А что если единственный опрос придётся как раз на время дребезга?


Посоветуйте, пожалуйста.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iosifk
сообщение Jan 25 2008, 10:02
Сообщение #2


Гуру
******

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



Цитата(ReedCat @ Jan 25 2008, 12:48) *
Приветствую!

Итак, дано: макетная плата с Spartan-3E, ISE Webpack.
Прогоняю технологическую цепочку, чтобы понять, как "оно" работает, на примитивном тесте: светодиодиками на макетной плате помигать. Мигает. Дальше хочу задействовать имеющуюся кнопку для управления процессом (выключения светодиодика).

И "меня терзают смутные сомнения", придуманная конструкция явно неустойчива к "дребезгу" контактов кнопки.
Какой стандартный ход применяют те, кто уже имеет опыт? Делят такт и опрашивают реже? А что если единственный опрос придётся как раз на время дребезга?
Посоветуйте, пожалуйста.


1. сдвиговый регистр. сдвигаете сигнал, когда все выходы 1, значит 1. Или реверсивный счетчик. два уровня ниже или равно нижней планке - 0, выше или равно верхней - 1.
2. Таймер. запускается сигналом и блокирует поступление сигнала на время.
3. Микропроцессор...

Про RC-цепочки - забудьте!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
sazh
сообщение Jan 25 2008, 10:24
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(iosifk @ Jan 25 2008, 13:02) *
1. сдвиговый регистр. сдвигаете сигнал, когда все выходы 1, значит 1. Или реверсивный счетчик. два уровня ниже или равно нижней планке - 0, выше или равно верхней - 1.
2. Таймер. запускается сигналом и блокирует поступление сигнала на время.
3. Микропроцессор...

Про RC-цепочки - забудьте!


А если таких кнопок - за 100 будет?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jan 25 2008, 10:39
Сообщение #4


Гуру
******

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



Цитата(sazh @ Jan 25 2008, 13:24) *
А если таких кнопок - за 100 будет?

А если кнопок будет много, то их собирают в матрицу и матрицу сканируют. Память, счетчик и сумматор-вычитатель (аккумулятор)...
Делают 100 ячеек памяти для промежуточного результата. На нужном такте читают память и делают инкремент или декремент и результат пишут обратно в память.
Ресурсы:
100 ячеек памяти, счетчик адресов, сумматор-вычитатель, регистр, автомат на несколько состояний...

Как видите, абсолютно ничего сложного....

А простейший фильтр - это сдвиговый регистр, с него все выходы и вход подаются на И, оттуда на S-вход триггера. Также все сигеалы подаются на ИЛИ-НЕ, оттуда на вход К триггера. При всех "1" в сдвиговом регистре, триггер переключится в 1, при всех нулях - в "0"...
Реверсивный счетчик с двумя уровнями - это понятно.

Ну а микроконтроллер - это если он уже есть в проекте. Обработка кнопки программная, как обычно. Просто я всегда представлял, что проект делается не только для обработки одной кнопки...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 14th August 2025 - 01:35
Рейтинг@Mail.ru


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