Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Ответ
Опции темы

Гистерезис компаратора в микроконтроллере. Прошу помощи.

Непрочитано 07.04.2009, 14:39   #1
Dreamer888
Частый гость
 
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Dreamer888 на пути к лучшему
По умолчанию Гистерезис компаратора в микроконтроллере. Прошу помощи.

Добрый день!
Ситуация такая, с помощью микроконтроллера 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);  // Показать число срабатываний 
  }
}
Буду благодарен за советы.
Реклама:
Dreamer888 вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 16:10   #2
ajborman
Частый гость
 
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ajborman на пути к лучшему
По умолчанию

А почему не использовать ССР модуль для захвата частоты, если конечно частота соотносимая!
А от дребезга, можно поставить фильтр который отрежет дребезг !
ajborman вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 16:27   #3
Dreamer888
Частый гость
 
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Dreamer888 на пути к лучшему
По умолчанию

Сообщение от ajborman
А почему не использовать ССР модуль для захвата частоты, если конечно частота соотносимая!
Теперь я тоже задаю себе вопрос зачем я решил частоту сигнала с уровнями в пределах питания мк мерить компаратором.

Сообщение от ajborman
А от дребезга, можно поставить фильтр который отрежет дребезг !
Я может не совсем понимаю, но дребезжит именно выход компаратора по которому и срабатывает прерывание и сигнал тут мало что вносит... Просто я сейчас тупо на калибраторе уровень меняю и вывожу число раз срабатывания компаратора. Без задержки в прерывании может доходить до тысяч... И компаратор внутри мк, тут уж фильтрами не побалуешься. Хочется программного решения.
Dreamer888 вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 17:34   #4
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от Dreamer888
Я может не совсем понимаю, но дребезжит именно выход компаратора по которому и срабатывает прерывание и сигнал тут мало что вносит... Просто я сейчас тупо на калибраторе уровень меняю и вывожу число раз срабатывания компаратора. Без задержки в прерывании может доходить до тысяч... И компаратор внутри мк, тут уж фильтрами не побалуешься. Хочется программного решения.
А в чём проблема? Введите в компаратор ГИСТЕРЕЗИС. На ещё через одну цифровую ногу выводите наружу стостояние компаратора и через резистор на вход компаратора организуйте гистерезис, как это обычно и делается.
picavr вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 17:48   #5
ajborman
Частый гость
 
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ajborman на пути к лучшему
По умолчанию

Я имел ввиду фильтр между выходом компаратора и входом на модуль захвата частоты !
ajborman вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 17:50   #6
Dreamer888
Частый гость
 
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Dreamer888 на пути к лучшему
По умолчанию

Сообщение от picavr
Сообщение от Dreamer888
Я может не совсем понимаю, но дребезжит именно выход компаратора по которому и срабатывает прерывание и сигнал тут мало что вносит... Просто я сейчас тупо на калибраторе уровень меняю и вывожу число раз срабатывания компаратора. Без задержки в прерывании может доходить до тысяч... И компаратор внутри мк, тут уж фильтрами не побалуешься. Хочется программного решения.
А в чём проблема? Введите в компаратор ГИСТЕРЕЗИС. На ещё через одну цифровую ногу выводите наружу стостояние компаратора и через резистор на вход компаратора организуйте гистерезис, как это обычно и делается.
К сожалению, не силен в этом. Надо просто соединить выход компаратора с ногой на которую подается сигнал через резистор? Не пожскажите, из каких соображений выбирается величина сопротивления?
Dreamer888 вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 18:01   #7
ajborman
Частый гость
 
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ajborman на пути к лучшему
По умолчанию

picavr прав, можно внешней сопротивление запаять, или сделать программный гистерезис(при срабатывание менять опору) !
ajborman вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 18:48   #8
Dreamer888
Частый гость
 
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Dreamer888 на пути к лучшему
По умолчанию

Сообщение от ajborman
picavr прав, можно внешней сопротивление запаять, или сделать программный гистерезис(при срабатывание менять опору) !
Именно последнее я сейчас и реализовал, все вроде работает хорошо - беру шинель, иду домой.
Dreamer888 вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 18:57   #9
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от Dreamer888
Именно последнее я сейчас и реализовал, все вроде работает хорошо
ГИСТЕРЕЗИС это собственно и есть изменение опорного уровня при изменеии состояния выхода.
picavr вне форума   Ответить с цитированием
Непрочитано 08.04.2009, 11:14   #10
Dreamer888
Частый гость
 
Регистрация: 07.04.2009
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Dreamer888 на пути к лучшему
По умолчанию

Сообщение от picavr
Сообщение от Dreamer888
Именно последнее я сейчас и реализовал, все вроде работает хорошо
ГИСТЕРЕЗИС это собственно и есть изменение опорного уровня при изменеии состояния выхода.
Я ж не спорю. Правда всё ещё интересно, как ввод резистора между выходом компаратора и входом дает этот самый гистерезис и из каких соображений выбирают величину резистора.
Dreamer888 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи по импульснику egorka20 Источники питания и свет 7 13.10.2009 20:48
Гистерезис компаратора Kern Электроника - это просто 16 11.11.2007 14:56
[Решено] Прошу помощи, RC цепь SydeX Отвлекитесь, эмбеддеры! 32 21.09.2007 11:45
Прошу помощи по STK 200+ Inola Микроконтроллеры, АЦП, память и т.д 35 04.07.2007 01:03
Прошу помощи по команде fgetc marabou Микроконтроллеры, АЦП, память и т.д 2 06.04.2007 12:26


Часовой пояс GMT +4, время: 08:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.