Как определить есть ли на ножке МК меандр?

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 57
Зарегистрирован: Сб фев 28, 2009 19:25:24
Откуда: MSK

Сообщение Vlad399 »

Всем привет!
Подскажите, плз, как проще всего ПРОГРАММНО определить наличие внешнего меандра с частотой в сотни Герц на ножке Мега8, например, PD2/INT0?
Спасибо!
Реклама
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

Vlad399 писал(а):как проще всего ПРОГРАММНО определить наличие внешнего меандра с частотой в сотни Герц на ножке Мега8, например, PD2/INT0?
Меандр в ТТЛ-уровнях?
Определить нужно однократно или постоянно контролировать наличие меандра?
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 57
Зарегистрирован: Сб фев 28, 2009 19:25:24
Откуда: MSK

Сообщение Vlad399 »

Да, TTL.
Контролировать надо периодически, что бы засечь момент пропадания меандра.
Спасибо за внимание к моей проблеме.
Прорезались зубы
Аватара пользователя
Сообщения: 211
Зарегистрирован: Пт июл 31, 2009 19:45:11
Откуда: Санкт-Петербург

Сообщение Deer »

На ножке периодически проверять уровень и запоминать длительность наличия там нуля и длительность наличия единицы. Запоминать в раздельных переменных. Если обе переменные находятся в заданных пределах (пределы определяются временными параметрами сигнала и частотой опроса пина), значит меандр есть, и он нужной частоты. Если хоть одна переменная из двух имеет значение вне заданных для неё пределов, значит меандр не подаётся
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 57
Зарегистрирован: Сб фев 28, 2009 19:25:24
Откуда: MSK

Сообщение Vlad399 »

Похоже, я сам нашел одно из возможных решений проблемы - если меандр подаётся на ножку INT0, то можно опрашивать флаг INTF0 в регистре GIFR. Если INTF0==1, то сбрасываем его, занося туда единицу т.к. "the flag can be cleared by writing a logical one to it" и, если при следующем опросе он опять ==1, то меандр есть, в противном случае меандр пропал.
Осталось проверить идею.
Реклама
c2n
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара

Сообщение c2n »

Относительно АВРок 8бит, так
Vlad399 писал(а):Похоже, я сам нашел одно из возможных решений проблемы
можно делать и не по INT0 а по любому INT и PCINT.
При этом на INT0 можно детектировать в разных вариантах:
нарастающий, спадающий, смена состояния сигнала...
у PCINT только смена состояния....
Соответственно инициировать прерывание, ну а далее - тело дехники
При этом надо иметь ввиду, что данная операция прерывания с опросами запоминаниями и прочим займет +/- 10 тактов машинного времени, и может случиться так, что частота меандра попадет в "резонанс" по нижнему или верхнему уровню например, и детектирование начнет врать с частотой...
Если знать точнее, что от схемы требуется, то было бы проще поDOOMать :kill:

ЕСЛИ НУЖЕН ПРОСТО ФАКТ НАЛИЧИЯ СИГНАЛА.
На практике же разумней было бы через транзистор повторять меандр, Эмиттерным повторителем например, далее сглаживать конденсатором, получая эквивалентное напряжение, и анализировать его через АЦП некоторых МК, например тини13, 26... у которых есть ADC.
т.к. меандр - частный случай Широтно-импульсной модуляции = 50%. тоесть в эквиваленте ТТЛ уровня = 2,5В.
Так будет надежней.

У товарища D-Halt'а - практически детское питание :) :hunger: //разжевано
http://easyelectronics.ru/avr-uchebnyj- ... -shim.html

Если совсем никак нельзя воспользоваться МК с АЦП, там же можно поискать про R2R АЦП/ЦАП, и собрать детектор на ОУ в режиме компаратора.

Ну а описание меандра в википедии: (до кучи)
http://ru.wikipedia.org/wiki/%D0%9C%D0% ... A%D0%B0%29
Контактная информация:
Реклама
Ответить

Вернуться в «AVR»