Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.04.2009, 14:39
|
|
Частый гость
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Гистерезис компаратора в микроконтроллере. Прошу помощи.
Добрый день!
Ситуация такая, с помощью микроконтроллера dspic33 надо измерять частоту. Сигнал заводится на встроенный в микроконтроллер компаратор. Все бы хорошо, но компаратор показывает много срабатываний при изменении уровня сигнала. Вопрос, как можно это победить программно? На ум приходит только задержка в прерывании при срабатывании компаратора , но сомневаюсь в грамотности такого решения. Вот код тестирования:
Код:
|
int cmp = 0; // Число срабатываний компаратора
void __attribute__ ((interrupt, auto_psv)) _CMPInterrupt(void) // Прерывание по срабатыванию таймера
{
delay(100000); // Задержка от дребезга, может есть что лучше?
if (CMCONbits.C1OUT == 1) cmp++; // Если по переднему фронту, то увеличиваем число срабатываний
_CMIF = 0; // Сброс флага прерывания компаратора
}
int main(void)
{
CMCON = 0x0550; // Настройка компаратора
CVRCON = 0x00CF; // Настройка внутренней опоры
_CMIF = 0; // Сброс флага прерывания компаратора
_CMIE = 1; // Разрешение прерывания
while(1)
{
Display_num(cmp); // Показать число срабатываний
}
} |
Буду благодарен за советы.
|
|
|
|
07.04.2009, 16:10
|
|
Частый гость
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
А почему не использовать ССР модуль для захвата частоты, если конечно частота соотносимая!
А от дребезга, можно поставить фильтр который отрежет дребезг !
|
|
|
|
07.04.2009, 16:27
|
|
Частый гость
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от ajborman
|
А почему не использовать ССР модуль для захвата частоты, если конечно частота соотносимая!
|
Теперь я тоже задаю себе вопрос зачем я решил частоту сигнала с уровнями в пределах питания мк мерить компаратором.
Сообщение от ajborman
|
А от дребезга, можно поставить фильтр который отрежет дребезг !
|
Я может не совсем понимаю, но дребезжит именно выход компаратора по которому и срабатывает прерывание и сигнал тут мало что вносит... Просто я сейчас тупо на калибраторе уровень меняю и вывожу число раз срабатывания компаратора. Без задержки в прерывании может доходить до тысяч... И компаратор внутри мк, тут уж фильтрами не побалуешься. Хочется программного решения.
|
|
|
|
07.04.2009, 17:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от Dreamer888
|
Я может не совсем понимаю, но дребезжит именно выход компаратора по которому и срабатывает прерывание и сигнал тут мало что вносит... Просто я сейчас тупо на калибраторе уровень меняю и вывожу число раз срабатывания компаратора. Без задержки в прерывании может доходить до тысяч... И компаратор внутри мк, тут уж фильтрами не побалуешься. Хочется программного решения.
|
А в чём проблема? Введите в компаратор ГИСТЕРЕЗИС. На ещё через одну цифровую ногу выводите наружу стостояние компаратора и через резистор на вход компаратора организуйте гистерезис, как это обычно и делается.
|
|
|
|
07.04.2009, 17:48
|
|
Частый гость
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Я имел ввиду фильтр между выходом компаратора и входом на модуль захвата частоты !
|
|
|
|
07.04.2009, 17:50
|
|
Частый гость
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от picavr
|
Сообщение от Dreamer888
|
Я может не совсем понимаю, но дребезжит именно выход компаратора по которому и срабатывает прерывание и сигнал тут мало что вносит... Просто я сейчас тупо на калибраторе уровень меняю и вывожу число раз срабатывания компаратора. Без задержки в прерывании может доходить до тысяч... И компаратор внутри мк, тут уж фильтрами не побалуешься. Хочется программного решения.
|
А в чём проблема? Введите в компаратор ГИСТЕРЕЗИС. На ещё через одну цифровую ногу выводите наружу стостояние компаратора и через резистор на вход компаратора организуйте гистерезис, как это обычно и делается.
|
К сожалению, не силен в этом. Надо просто соединить выход компаратора с ногой на которую подается сигнал через резистор? Не пожскажите, из каких соображений выбирается величина сопротивления?
|
|
|
|
07.04.2009, 18:01
|
|
Частый гость
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
picavr прав, можно внешней сопротивление запаять, или сделать программный гистерезис(при срабатывание менять опору) !
|
|
|
|
07.04.2009, 18:48
|
|
Частый гость
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от ajborman
|
picavr прав, можно внешней сопротивление запаять, или сделать программный гистерезис(при срабатывание менять опору) !
|
Именно последнее я сейчас и реализовал, все вроде работает хорошо - беру шинель, иду домой.
|
|
|
|
07.04.2009, 18:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от Dreamer888
|
Именно последнее я сейчас и реализовал, все вроде работает хорошо
|
ГИСТЕРЕЗИС это собственно и есть изменение опорного уровня при изменеии состояния выхода.
|
|
|
|
08.04.2009, 11:14
|
|
Частый гость
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от picavr
|
Сообщение от Dreamer888
|
Именно последнее я сейчас и реализовал, все вроде работает хорошо
|
ГИСТЕРЕЗИС это собственно и есть изменение опорного уровня при изменеии состояния выхода.
|
Я ж не спорю. Правда всё ещё интересно, как ввод резистора между выходом компаратора и входом дает этот самый гистерезис и из каких соображений выбирают величину резистора.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:07.
|
|