|
Антидребезг контакта., Как сделать? |
|
|
|
Jul 22 2011, 17:59
|
Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Aug 1 2011, 06:57
|
Группа: Новичок
Сообщений: 3
Регистрация: 30-07-11
Пользователь №: 66 498

|
если речь идет о дребезге контакта кнопочки, то не проще просто опрашивать ее редко? Если надежный контакт устанавливается, скажем, 1мс, то тогда опрашивать можно, например, с периодом 10мс.
|
|
|
|
|
Aug 1 2011, 09:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(privet @ Aug 1 2011, 10:57)  если речь идет о дребезге контакта кнопочки, то не проще просто опрашивать ее редко? Если надежный контакт устанавливается, скажем, 1мс, то тогда опрашивать можно, например, с периодом 10мс. Я его не опрашиваю, он же у меня срабатывает по posedge в always. Это не кнопка, а выход компаратора.
|
|
|
|
|
Aug 1 2011, 13:57
|
Профессионал
    
Группа: Свой
Сообщений: 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, наверное все же шумы тоже есть. Блок антидребезга поставил, работает идеально.
|
|
|
|
Сообщений в этой теме
Iptash Антидребезг контакта. Jul 22 2011, 17:59 sazh Цитата(Iptash @ Jul 22 2011, 20:59) Напис... Jul 23 2011, 06:04 Iptash Цитата(sazh @ Jul 23 2011, 10:04) Если за... Jul 23 2011, 07:02 Serhiy_UA Цитата(Iptash @ Jul 22 2011, 20:59) Подск... Jul 23 2011, 18:34 Timmy Цитата(Iptash @ Jul 22 2011, 21:59) Есть ... Jul 25 2011, 21:11 Ethereal Цитата(Iptash @ Jul 22 2011, 21:59) Здрав... Jul 29 2011, 14:05 Iptash Цитата(Ethereal @ Jul 29 2011, 18:05) Вне... Jul 29 2011, 17:13 Victor® Цитата(privet @ Aug 1 2011, 09:57) если р... Aug 1 2011, 07:40  privet Цитата(Victor® @ Aug 1 2011, 11:40) имея ... Aug 1 2011, 09:16    Victor® Цитата(Iptash @ Aug 1 2011, 16:57) Осцилл... Aug 1 2011, 14:22     Iptash Цитата(Victor® @ Aug 1 2011, 18:22) Так н... Aug 1 2011, 16:02
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|