Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
14.01.2011, 00:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от omercury
|
проще собрать на любом PIC с двумя таймерами.
|
Лично делал на PIC16F84 с ОДНИМ! таймером, до 130 мгц/дискрентость 1гц. И кварц термостатировали на 40 градусах.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
Последний раз редактировалось picavr; 14.01.2011 в 00:07.
|
|
|
|
14.01.2011, 10:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от picavr
|
Лично делал на PIC16F84 с ОДНИМ! таймером, до 130 мгц/дискрентость 1гц. И кварц термостатировали на 40 градусах.
|
А кто у вас время 1 с отсчитывал? Бесконечный цикл - который при возникновении прерывания прерывается и время измерения слегка увеличивается? Вот это действительно показометр
|
|
|
|
14.01.2011, 11:38
|
|
Вид на жительство
Регистрация: 28.02.2009
Сообщений: 338
Сказал спасибо: 24
Сказали Спасибо 52 раз(а) в 48 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от niXto
|
А кто у вас время 1 с отсчитывал? Бесконечный цикл - который при возникновении прерывания прерывается и время измерения слегка увеличивается? Вот это действительно показометр
|
Вы считаете других людей глупыми ?
|
|
|
|
14.01.2011, 12:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от niXto
|
Товарищ, это вы плохо читали даташит на синтезаторы
|
Блин! Дочитал даташит... Надо ж так жидко об....
Но с точностью стопудово накололи.
Сообщение от picavr
|
Лично делал на PIC16F84 с ОДНИМ! таймером, до 130 мгц/дискрентость 1гц. И кварц термостатировали на 40 градусах.
|
И я на нём же делал. Только сейчас народ на ассемблере писать не умеет, поэтому нужен второй таймер...
Сообщение от niXto
|
А кто у вас время 1 с отсчитывал?
|
Сам отсчитывал. По тактам. На калькуляторе...
|
|
|
|
14.01.2011, 13:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от vsky
|
Вы считаете других людей глупыми ?
|
Сообщение от omercury
|
И я на нём же делал. Только сейчас народ на ассемблере писать не умеет, поэтому нужен второй таймер...
|
Померяйте частотомером частоту егоного кварца. Если младшая цифра никогда не прыгает (как на всех моих частотомерах, даже на этом) - снимаю шляпу. А иначе это показометр
Лично я хоть и пишу на АСМе, задержки никогда не делаю декрементом регистров... Религия не позволяет...
|
|
|
|
14.01.2011, 16:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от niXto
|
Померяйте частотомером частоту егоного кварца.
|
А кварцы мы брали совейскую военку в большом стеклянном корпусе.
Сообщение от niXto
|
А кто у вас время 1 с отсчитывал? Бесконечный цикл - который при возникновении прерывания прерывается и время измерения слегка увеличивается? Вот это действительно показометр
|
Нет, всё было написано без прерываний, одновременно!!!
1) шёл отсчёт счётчиков по переполнению таймера
2) отсчёт времени 1 секунды
3) генерировалась динамическая индикация на 7 сигментный 9 разрядный
))))) все веточки просчитывались до команды и проверялись в отладчике...... так что время 1 сек просчитывалось без "СЛЕГКА УВЕЛИЧЕНИЯ".
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
|
|
|
|
14.01.2011, 16:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от picavr
|
А кварцы мы брали совейскую военку в большом стеклянном корпусе.
|
Вы не поняли. Подайте на вход частотомера сигнал с его же кварца. Если допустим кварц на 10 МГц и времянки правильные - на дисплее ВСЕГДА будет ровно 10.000000 (как у меня на картинке по ссылке). Если же времянки скачут - цифры тоже будут прыгать...
|
|
|
|
14.01.2011, 17:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Частотомер до 450Мгц
Сообщение от niXto
|
Вы не поняли.
|
конечно как вкопаное стояло. Так и проверяли )))
Но кварцы, обычно генерят на частоте немного выше номинальной на десяток-другой килогерц. Играет роль паралельный или последовательный резонанс у кварца. Это подстраивалось до номинальной дросселем и подстроечными емкостями в цепи кварца. Так что если не калибровать (подстраивать аппаратно или програмно время измерения), то...
Сообщение от omercury
|
И я на нём же делал. Только сейчас народ на ассемблере писать не умеет, поэтому нужен второй таймер...
|
А вот с прерываниями... если измерительный интервал формиуется по прерываниям, то могут быть ньюансы..
МОМЕНТ входа в прерывание будет зависеть того, на какой команде срабатывет прерывание(и в какой стадии находится конвеер выполнения текущей команды),
на команде без перехода (1 цикл)
или на команде с переходом (BTFSS BTFSC =1/2 цикла, GOTO CALL RETURN RETLW итд = 2 цикла).
И если на команде с переходом, то в каком цикле исполнения этой команды (на 1-м или на 2-м цикле). Прерывание срабатывает ПОСЛЕ ОКОНЧАНИЯ ВЫПОЛНЕНИЯ ТЕКУЩЕЙ КОМАНДЫ, а не в момент возникновения прерывания. Таким образом, момент вызова прерывания может дрожать (джитер) на время до 1-2 циклов.
Так что на СИ,(и ассемблере с прерываниями) скорее всего стоять и не будет. И чем выше измеряемая частота тем больше прыгают цифры младшего(младших)разрядов.
напишите и попробуйте в отладчике вызвать прерывание на команде GOTO и на команде nop, померяйте в отладчике время от момента до какой либо команды в обработчике прерывания в обоих случаях.
Код:
|
code
GOTO BEGIN
codeint 0x04
nop
nop
nop
bcf INTCON,T0IF
RETFIE
BEGIN
;здесь написать настройку таймера и прерывания от таймера
nop
goto $+1
nop
goto $-3 |
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
Последний раз редактировалось picavr; 14.01.2011 в 18:23.
|
|
|
|
14.01.2011, 21:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Частотомер до 450Мгц
Конечно пробовал - и сделал, раз работает)) В предпоследнем цикле таймера времени отключаются все прерывания кроме прерывания от этого таймера и устанавливается флаг - в основной программе по этому флагу ядро падает в SLEEP. Поэтому по последнему прерыванию проц ВСЕГДА выходит из SLEEP, выполняет один NOP после SLEEP и переходит на подпрограмму. Там выполняет цикл декремента регистра для "выравнивания" задержки - чтоб было ровно 10000000 циклов, захватывает значение счетного таймера и анализирует его флаг прерывания, производит досчет из внешних делителей.
А вот как вы организовали работу счетного таймера? У ПИКа вроде 8-битный таймер, а для 8 знаков надо более 24 бит. То есть у вас были прерывания и инкремент регистров по вектору прерывания? Но на разных частотах (например 1 кГц и 1 МГц) будет разное количество переполнений счетного таймера за 1 измерение - как вы его учитывали? Чтобы при этом все равно получилась задержка Ровно N циклов? У меня таймеры работают параллельно - поэтому отсчет времени абсолютно не зависит от измеряемой частоты...
|
|
|
|
14.01.2011, 21:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Частотомер до 450Мгц
Когда у меня возникла задача делать точные временые интервалы на PIC, то в процедуре обработки прерывания, вместо непосредственной загрузки таймера, использовал суммирование текущего состояния таймера с константой, просчитанной для нужной задержки. При этом время возникновения прерывания, в случае отключения предделителя таймера, определяеся только точностью используемого кварца.
__________________
misterdi<@>i.ua
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:25.
|
|