реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> ATmega88 максимальная частота на входе ?
pavel-pervomaysk
сообщение Mar 9 2009, 19:31
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716



Всем привет !
Возник вопрос по схемному и програмному решению для частотомера . Хочу применить мегу 88 и кварц по максимуму (20-24МГц) чтобы получить возможность захвата большего числа импульсов чем 1мгц на входе . Прескаллер U813 буду использовать с коэф. деления 256. То есть при частоте 1ГГц он будет выдавать 3 906 250 Гц , успеет ли мега их посчитать от ноги внешнего прерывания ?.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 9 2009, 19:44
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Павлик @ Mar 9 2009, 22:31) *
То есть при частоте 1ГГц он будет выдавать 3 906 250 Гц , успеет ли мега их посчитать от ноги внешнего прерывания ?.

Совершенно нереально, даже если использовать программный опрос (что быстрее, чем вход в прерывание). Это неправильное решение. А нужно использовать два таймера. Один - для захвата по фронту (TMR1, ICP1), другой для счета импульсов с прескалера (TMR0). Тогда и разрешение будет хорошее и частота обработки прерываний (переполнение TMR0) приемлемая (хотя тут можно и опросом обойтись).
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 9 2009, 19:44
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Через прерывание не успеет. А если подадите на вход таймера - то без проблем. При этом больше чем по даташиту катать проц совсем не стоит (при питании 5 вольт мега88 может работать с тактовой не более 20 МГц).


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
vvs157
сообщение Mar 9 2009, 19:47
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Павлик @ Mar 9 2009, 22:31) *
Всем привет !
Возник вопрос по схемному и програмному решению для частотомера . Хочу применить мегу 88 и кварц по максимуму (20-24МГц) чтобы получить возможность захвата большего числа импульсов чем 1мгц на входе . Прескаллер U813 буду использовать с коэф. деления 256. То есть при частоте 1ГГц он будет выдавать 3 906 250 Гц , успеет ли мега их посчитать от ноги внешнего прерывания ?.

Нет, конечно. Вход опрашивается один раз за такт, поэтому максимальная входная частота Fck/2. Прескалер - это уже потом. 1 ГГц - только с внешним делителем
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 9 2009, 19:54
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(vvs157 @ Mar 9 2009, 22:47) *
максимальная входная частота Fck/2. Прескалер - это уже потом. 1 ГГц - только с внешним делителем

Человек же русским языком написал "прескалер U813". Ясен ж пень, что это внешний прескалер...
Просто он захотел опрашивать его выход программно, а вот этот фокус уже не пройдет, естественно.
Go to the top of the page
 
+Quote Post
pavel-pervomaysk
сообщение Mar 9 2009, 20:08
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716



Цитата(Rst7 @ Mar 9 2009, 22:44) *
Через прерывание не успеет. А если подадите на вход таймера - то без проблем. При этом больше чем по даташиту катать проц совсем не стоит (при питании 5 вольт мега88 может работать с тактовой не более 20 МГц).


Извените , я минус случайно нажал на вашем посте ...
Насчет тактовой проца все ясно разъяснили .
Насчет захвата таймером интерестно , с этим еще не работал , если дадите пример на асме кусочек , буду очень рад , далее уже постараюсь сам справится .
Go to the top of the page
 
+Quote Post
vvs157
сообщение Mar 9 2009, 20:13
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(rx3apf @ Mar 9 2009, 22:54) *
Человек же русским языком написал "прескалер U813". Ясен ж пень, что это внешний прескалер...
Сразу не заметил, однако сдается мне, что этот U813 ЭСЛ и с мегой напрямую не стыкуется.
Go to the top of the page
 
+Quote Post
pavel-pervomaysk
сообщение Mar 9 2009, 20:16
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716



Цитата(vvs157 @ Mar 9 2009, 23:13) *
Сразу не заметил, однако сдается мне, что этот U813 ЭСЛ и с мегой напрямую не стыкуется.


О связи деталюшек в кучу вопрос не идет smile.gif . Это не вопрос , главное заранее начать работать не с "з@@ницы" как это часто бывает .
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 9 2009, 20:37
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Да какой там пример? Почитай работу таймера в режиме захвата да и всё. Входная частота при этом FCLK/2 То есть 10МГц. (При 20).

ATXMega допускает обработку частоты значительно превыхающую FCLK.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 9 2009, 20:55
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Павлик @ Mar 9 2009, 23:08) *
Насчет захвата таймером интерестно , с этим еще не работал , если дадите пример на асме кусочек , буду очень рад

Кусочком не поделюсь за неимением оного (я такую задачу решал для PIC16, и не захватом, а отдельным счетом опорника, но суть та же). Т.е. общая идея - измерительный интервал должен быть не ровно секунда (например), а целое число периодов входного сигнала, но больше этой самой секунды. Начинаем интервал - обнулили (или запомнили состояние счетчика), сделали засечку времени ICP по фронту импульса. Ждем завершение измерительного интервала, считая импульсы и контролируя переполнение таймеров. И вот по окончанию интервала надо остановить счет - аппаратных средств у AVR для этого нет, синхронно с последним захватом остановить счет на такой скорости не удастся, поэтому все ж нужен внешний D-триггер и буферочек. А просто счетом за интервал - ухудшается разрешение, особенно на низких частотах (для 1 GHz разницы 50 или 256 Hz, по большому счету, нет).
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 9 2009, 21:20
Сообщение #11


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Погодите, господа, какой захват? Только прямой счет.

Вообщем, для простоты делаете так - на вход любого таймера подаете частоту с вашего внешнего прескаллера. В прерывании по переполнению этого таймера увеличиваете переменную типа int
(если используете восьмибитный таймер). В общей сложности значение таймера плюс значение переменной будет 24 бита.

На другом таймере отмеряете одну секунду. По истечении секунды считываете в локальную копию значение служебной переменной и таймера. Разность между этой локальной переменной и ее предыдущим значением (которое нужно будет сохранить) и будет частотой в герцах.

Тонкости:
Необходимо обеспечить проверку на синхронность чтения значения таймера и служебной переменной. Типа таймер переполнился, а переменная еще не увеличена. Второе - небольшая погрешность будет из-за неточного отсчета секундного интервала (за счет различного времени входа в прерывание). Это можно скомпенсировать чисто программным путем, а можно и забить.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 9 2009, 21:29
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Rst7 @ Mar 10 2009, 00:20) *
На другом таймере отмеряете одну секунду. По истечении секунды считываете в локальную копию значение служебной переменной и таймера. Разность между этой локальной переменной и ее предыдущим значением (которое нужно будет сохранить) и будет частотой в герцах.

Вот только еще это значение надо умножить на коэффициент прескалера. И в результате дискретность измерения при односекундном интервале - 256 Hz. Ну, для гига это еще терпимо. А вот сотню MHz с таким разрешением мерять - как-то неприлично, все ж 21-й век на дворе и время любительских поделок с прямым счетом давно миновало. К сожалению, аппаратных средств самого процессора для полноценного решения задачи недостаточно, но пара корпусов простой логики снаружи - и уже результат на что-то похож...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 9 2009, 21:54
Сообщение #13


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
как-то неприлично, все ж 21-й век на дворе и время любительских поделок с прямым счетом давно миновало.


А Вы попробуйте в 21м веке получить точность опорного генератора выше чем 1е-6. И джиттер довести до соответствующего уровня, чтобы измерение периода с ума не сходило. Тогда будем говорить об улучшении разрешения.

Кстати, вопрос к топикстартеру - какие еще коэффициенты деления можно выбрать у этого прескаллера кроме 256? И насколько проблемно их на ходу переключать?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 9 2009, 22:09
Сообщение #14


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Rst7 @ Mar 10 2009, 00:54) *
А Вы попробуйте в 21м веке получить точность опорного генератора выше чем 1е-6. И джиттер довести до соответствующего уровня, чтобы измерение периода с ума не сходило. Тогда будем говорить об улучшении разрешения.

Ну, 256 Hz при сотне MHz - это уже 2.6E-6. Но ведь и при меньших частотах дискретность будет столь же большой. Что до "попробуйте" - так пробовал. Элементарное термостатирование дает 1E-7, кроме того, часто абсолютная точность и не нужна, а вот оценка изменения - актуальна.
Go to the top of the page
 
+Quote Post
dx40
сообщение Mar 10 2009, 06:13
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 4-05-06
Пользователь №: 16 779



Делал частотомер на 2313 тиньке. До 7 мегагерц нормально, дальше врет. Кварц - 20.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 23:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.0362 секунд с 7
ELECTRONIX ©2004-2016