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

 
 
> Антидребезг контакта., Как сделать?
Iptash
сообщение Jul 22 2011, 17:59
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Здравствуйте все.
Есть входной сигнал с плохим фронтом, поэтому происходит дребезг. Написал антидребезговый блок, так в принципе работает не плохо,
но иногда при включении стопорится, потому что видимо dreb и ndreb не обнуляются и соответственно сигнал zap
который я дальше использую не работает. Алгоритм такой. Приходит внешний сигнал IN, включается счетчик dreb и
пока не досчитает до 1000 zap будет вкл. тем самым исключая ложное срабатывание zap .
Но код какой то кривой и задний фронт вроде не коректно отрабатывает. Подскажите пожалуйста как это лучше сделать или может подправите?
Код
always @ (posedge clock1) begin
  if(IN) begin // внешний сигнал
    if(dreb == 0) begin
     zap <= 1'b1; // сигнал после фильтрации, используется дальше
     ndreb <= 0;
    end
    
  end
  
   if(zap)
    dreb <= dreb + 1'b1;
  
   if(dreb > 1000) begin
    zap <= 1'b0;  
   end
  
   if(!IN) begin
    if(ndreb == 0) begin
     nzap <= 1'b1;
     dreb <= 0;
    end
    
    end
   if(nzap)
    ndreb <= ndreb + 1'b1;
   if(ndreb > 1000) begin
    nzap <= 1'b0;      
   end
end
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
privet
сообщение Aug 1 2011, 06:57
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 30-07-11
Пользователь №: 66 498



если речь идет о дребезге контакта кнопочки, то не проще просто опрашивать ее редко?
Если надежный контакт устанавливается, скажем, 1мс, то тогда опрашивать можно, например, с периодом 10мс.
Go to the top of the page
 
+Quote Post
Iptash
сообщение Aug 1 2011, 09:27
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(privet @ Aug 1 2011, 10:57) *
если речь идет о дребезге контакта кнопочки, то не проще просто опрашивать ее редко?
Если надежный контакт устанавливается, скажем, 1мс, то тогда опрашивать можно, например, с периодом 10мс.

Я его не опрашиваю, он же у меня срабатывает по posedge в always. Это не кнопка, а выход компаратора.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Aug 1 2011, 09:50
Сообщение #4


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(Iptash @ Aug 1 2011, 12:27) *
Я его не опрашиваю, он же у меня срабатывает по posedge в always. Это не кнопка, а выход компаратора.


кстати, а чего это компаратор дребезжит-то?


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
Iptash
сообщение Aug 1 2011, 13:57
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(Victor® @ Aug 1 2011, 13:50) *
кстати, а чего это компаратор дребезжит-то?

Осциллографом смотрел, передний фронт на вых. компаратора где то 200нс от 0 -> 3,3в.. А быстродействие MAX II 200мгц, я фронт смотрел, задержка
распространения ~5нс.. Видимо несколько раз MAX II воспринимает вых. компаратора как 1 и 0, наверное все же шумы тоже есть. Блок антидребезга
поставил, работает идеально.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 10:57
Рейтинг@Mail.ru


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