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

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

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

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

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

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

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

 
Опции темы
Непрочитано 07.04.2009, 14:39  
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  
ajborman
Частый гость
 
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ajborman на пути к лучшему
По умолчанию

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

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

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

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

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

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

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

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

Сообщение от Dreamer888
Именно последнее я сейчас и реализовал, все вроде работает хорошо
ГИСТЕРЕЗИС это собственно и есть изменение опорного уровня при изменеии состояния выхода.
picavr вне форума  
Непрочитано 08.04.2009, 11:14  
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, время: 07:07.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot