Частотомер на МЕГА8

Обсуждаем цифровые устройства...
Аватара пользователя
Gray64
Встал на лапы
Сообщения: 96
Зарегистрирован: Вт май 27, 2008 21:15:01
Откуда: Украина
Контактная информация:

Частотомер на МЕГА8

Сообщение Gray64 »

Живу в селе.Сами понимаете с радиодеталями...А тут чисто случайно в руки попала недоделанная плата какого-то устройства,на которой стоит ATMEGA8,двухстрочный ЖК индикатор и куча светодиодов.Подал 5 вольт,на ЖК выводится куча цифр,но как-то по очереди.У меня вопрос к профи:нельзя ли на базе этих"запчастей" сотворить частотомер?Пусть не очень крутой,до 1 мега устроило бы.Поиск в сети ничего не дал(именно с этими деталями).
Реклама
Barni
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср дек 06, 2006 02:34:58

Сообщение Barni »

На Мега8 с кварцем 18 МГц можно до 6 МГц измерять. Схемы в инете попадались, но где, уже не помню.
Реклама
Аватара пользователя
kamikadze
Потрогал лапой паяльник
Сообщения: 391
Зарегистрирован: Пт авг 31, 2007 19:58:52
Откуда: Украина, Сум обл., г. КоНоТоП

Сообщение kamikadze »

Сейчас как раз занимаюсь этим, только вход осталось сделать и прошивку дописать (что-то как-то затихло все у меня с нехваткой времени).
Тут были мои потуги получить вход :) Присоединяйтесь
Бригада дежурных телепатов ответит на ваши вопросы
Аватара пользователя
UkrRadist
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вс янв 13, 2008 00:40:29
Откуда: україна,Київ,Дубровиця
Контактная информация:

Сообщение UkrRadist »

Заинтересовала меня тоже эта схема,более того уже достал микросхему-делитель с делением на 64 и 256 с максимальной частотой деления до 1 ГГц - SAB6456.Уже даже схемку нарисовал и развел(схему делал по приведенной ниже).Но вот как только надумал ее собрать, в голову пришла одна мысль о том,что если попробовать измерить сигнал,скажем,с частотой 1000МГц, то длительность импульса на выходе получиться около 1нс.Меня интересует сможет ли счетчик T0(T1) микроконтроллера воспринять эти импульсы,и вообще,какая минимально допустимая длительность импульса нужна для нормального счета микроконтроллера(в моем случае Tiny2313)
Вложения
izmer10-1.gif
Схема частотомера
(9.47 КБ) 1514 скачиваний
Надо жить с надеждой!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Gray64
Встал на лапы
Сообщения: 96
Зарегистрирован: Вт май 27, 2008 21:15:01
Откуда: Украина
Контактная информация:

Сообщение Gray64 »

В програмировании контроллеров мягко говоря не очень... Вот если на делфях бы...На сколько я понимаю,алгоритм приблизительно такой - на некий вход подаём измеряемую частоту.Каждую секунду уходим в прерывание(или 0.1 сек.),выводим ,то,чего насчитали,и так по кругу?При тактовой МЕГИ 16мГц,по идее,замерять 1мег - запросто.А при использовании внешних делителей,просто корректировать (двигать запятую) выводимые данные. :roll:
Реклама
Аватара пользователя
UkrRadist
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вс янв 13, 2008 00:40:29
Откуда: україна,Київ,Дубровиця
Контактная информация:

Сообщение UkrRadist »

Мой вопрос как раз не в программе,а в том,сможет ли контроллер воспринять настольоко короткий импульс?
Надо жить с надеждой!
Реклама
igor727
Родился
Сообщения: 18
Зарегистрирован: Сб июл 05, 2008 13:21:59

Сообщение igor727 »

UkrRadist писал(а):Мой вопрос как раз не в программе,а в том,сможет ли контроллер воспринять настольоко короткий импульс?
Если использовать прерывания по фронту INTO и INТl то один такт,при частоте 16 Мгерц = 62,5 наносекунд, это и есть минимальная длительность сигнала (Это для ATМегa8)
Аватара пользователя
Gray64
Встал на лапы
Сообщения: 96
Зарегистрирован: Вт май 27, 2008 21:15:01
Откуда: Украина
Контактная информация:

Сообщение Gray64 »

Вот тут http://nest.roboterbastler.de/colibri/index.html наткнулся...Правда на ТИНИ.Но насколько я понимаю МЕГА8 помощней будет и если перекомпилировать под неё,должно работать?
Глаза боятся а руки делают!
Аватара пользователя
UkrRadist
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вс янв 13, 2008 00:40:29
Откуда: україна,Київ,Дубровиця
Контактная информация:

Сообщение UkrRadist »

тоя немного неправильно понял принцип работы,я уже вроде бы понял - указанный делитель на SAB6456 делит частоту,при этом длительность импульса увеличивается в указанное количество раз(спасибо за помощь т.Kentawrik),в следствии чего отпадает вопрос об минимальном периоде счета,так как при частоте 1000МГЦ длительность импульса будет равна около 120нс((1/1000000000)*256) чего вполне достоточно для переключения таймера Тини :))) :lol:
Надо жить с надеждой!
Barni
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср дек 06, 2006 02:34:58

Сообщение Barni »

igor727 писал(а):
UkrRadist писал(а):Мой вопрос как раз не в программе,а в том,сможет ли контроллер воспринять настольоко короткий импульс?
Если использовать прерывания по фронту INTO и INТl то один такт,при частоте 16 Мгерц = 62,5 наносекунд, это и есть минимальная длительность сигнала (Это для ATМегa8)
А зачем прерывания? Для подсчета импульсов проще использовать вход таймера. Только эти входа стробируемые и макс частота примерно в 2,5-3 раза меньше рабочей частоты АВРки. Мега8 с кварцем 18МГц без проблем меряет 6 МГц(меандр!). 6*256=1536МГц, а SAB6456 на выходе дает меандр. Вот как я сделал http://vrtp.ru/index.php?showtopic=8883&st=0
igor727
Родился
Сообщения: 18
Зарегистрирован: Сб июл 05, 2008 13:21:59

Сообщение igor727 »

Barni писал(а):А зачем прерывания? Для подсчета импульсов проще использовать вход таймера. Только эти входа стробируемые и макс частота примерно в 2,5-3 раза меньше рабочей частоты АВРки. Мега8 с кварцем 18МГц без проблем меряет 6 МГц(меандр!). 6*256=1536МГц, а SAB6456 на выходе дает меандр. Вот как я сделал http://vrtp.ru/index.php?showtopic=8883&st=0
Был поставлен вопрос о минимальной длительности импульса который может воспринять контроллер, так вот от прерываний он сможет принять импульс >62,5 nCek, а от счетчиков >125-155 nCek. Насчет подсчета импульсов есть разные схемы, все зависит от необходимой точности измерений, если удовлетворяет 6 знаков то можно и по данному принципу (по указанной ссылке). Ссылка ваша интересная, кое что от туда наверное возьму.
Barni
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср дек 06, 2006 02:34:58

Сообщение Barni »

igor727 писал(а):Был поставлен вопрос о минимальной длительности импульса который может воспринять контроллер, так вот от прерываний он сможет принять импульс >62,5 nCek, а от счетчиков >125-155 nCek. Насчет подсчета импульсов есть разные схемы, все зависит от необходимой точности измерений, если удовлетворяет 6 знаков то можно и по данному принципу (по указанной ссылке). Ссылка ваша интересная, кое что от туда наверное возьму.
А зачем мерять короткие импульсы с большой скважностью? Ведь на обработку прерывания надо несколько тактов, и измеряемая частота будет меньше. Разговор ведь шел о частотомере.
igor727
Родился
Сообщения: 18
Зарегистрирован: Сб июл 05, 2008 13:21:59

Сообщение igor727 »

Barni писал(а): А зачем мерять короткие импульсы с большой скважностью? Ведь на обработку прерывания надо несколько тактов, и измеряемая частота будет меньше. Разговор ведь шел о частотомере.
Еще раз провторюсь, что есть разные способы измерения частоты, обеспечивающие разную точность, и скорость измерения. Попробуйте измерить вашим прибором частоту генератора с часовым кварцем 32768 Гц или частоту 50 Гц, я думаю что точность измерения будет никудышная, и тут я думаю более приемлемый результат даст измерение периода сигнала и далее пересчет его в частоту, а здесь требуется как раз наиболее быстрая реакция на фронт сигнала, что обеспечивают прерывания. Задержки на обработку прерывания 4 такта, легко учитываются. Очень интересный принцип заложен в частотомере по ссылке http://www.cqham.ru/fpic01.htm , хорошая точность обеспечивается способом досчета. Так что кто как хочет так и делает, способов тьма.
Аватара пользователя
Gray64
Встал на лапы
Сообщения: 96
Зарегистрирован: Вт май 27, 2008 21:15:01
Откуда: Украина
Контактная информация:

Сообщение Gray64 »

Мужики,тема вроде бы моя,а я как-бы и не при делах...Или у вас так тут принято?Я там ссылку давал,гляньте,можно ли перекомпилировать это для мега8?Я так понимаю что указатель стека у мега8 - двухбайтный.Дайте пример как его инициализировать на АСМе.
Глаза боятся а руки делают!
igor727
Родился
Сообщения: 18
Зарегистрирован: Сб июл 05, 2008 13:21:59

Сообщение igor727 »

.def rgn = r17



ldi rgn,HIGH(RAMEND) ;начало стека
out SPH, rgn ;RAMEND, SPL, SPH для процессора Mega8
ldi rgn,LOW(RAMEND) ;определены в файле m8def.inc
out SPL,rgn ;
;я использую VMLAB
igor727
Родился
Сообщения: 18
Зарегистрирован: Сб июл 05, 2008 13:21:59

Сообщение igor727 »

Да еще надо подправить таблицу прерываний под Мегу, и отключить сторожевой таймер, а дальше по шагам в VMlabe

1 0x000(1) RESET External Pin, Power-on Reset, Brown-out
Reset, and Watchdog Reset
2 0x001 INT0 External Interrupt Request 0
3 0x002 INT1 External Interrupt Request 1
4 0x003 TIMER2 COMP Timer/Counter2 Compare Match
5 0x004 TIMER2 OVF Timer/Counter2 Overflow
6 0x005 TIMER1 CAPT Timer/Counter1 Capture Event
7 0x006 TIMER1 COMPA Timer/Counter1 Compare Match A
8 0x007 TIMER1 COMPB Timer/Counter1 Compare Match B
9 0x008 TIMER1 OVF Timer/Counter1 Overflow
10 0x009 TIMER0 OVF Timer/Counter0 Overflow
11 0x00A SPI, STC Serial Transfer Complete
12 0x00B USART, RXC USART, Rx Complete
13 0x00C USART, UDRE USART Data Register Empty
14 0x00D USART, TXC USART, Tx Complete
15 0x00E ADC ADC Conversion Complete
16 0x00F EE_RDY EEPROM Ready
17 0x010 ANA_COMP Analog Comparator
18 0x011 TWI Two-wire Serial Interface
19 0x012 SPM_RDY Store Program Memory Ready
Аватара пользователя
Gray64
Встал на лапы
Сообщения: 96
Зарегистрирован: Вт май 27, 2008 21:15:01
Откуда: Украина
Контактная информация:

Сообщение Gray64 »

Огромное спасибо!Ща я его..Или оно меня?
Глаза боятся а руки делают!
Аватара пользователя
UkrRadist
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вс янв 13, 2008 00:40:29
Откуда: україна,Київ,Дубровиця
Контактная информация:

Сообщение UkrRadist »

Только что доделал схему частотомера.На первый взглад работает,...но при отсутствии сигнала на входе на дисплее всивечиваются цифры,как не удивительно,в зависимости от длины подключенного отрезка, от 100 до 1000МГц.Но даже при замыкании входной линии на землю показания практически не меняются.Скажыте это нормально?
Надо жить с надеждой!
Barni
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср дек 06, 2006 02:34:58

Сообщение Barni »

UkrRadist писал(а):Только что доделал схему частотомера.На первый взглад работает,...но при отсутствии сигнала на входе на дисплее всивечиваются цифры,как не удивительно,в зависимости от длины подключенного отрезка, от 100 до 1000МГц.Но даже при замыкании входной линии на землю показания практически не меняются.Скажыте это нормально?
Если на входе стоит SAB6456 или что то похожее, то нормально.Прескалер без сигнала возбуждается.
Аватара пользователя
UkrRadist
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вс янв 13, 2008 00:40:29
Откуда: україна,Київ,Дубровиця
Контактная информация:

Сообщение UkrRadist »

а можно как то убрать это возбуждение,что бы показовало ноль при отсутствии сигнала?И ще:что покажет частотомер.если на вход подать частоту ниже 70МГц(по Даташиту - это минимальная вх.частота)?
Надо жить с надеждой!
Ответить

Вернуться в «Цифровая техника»