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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Измерение частоты, алгоритм
Kotjara
сообщение Mar 1 2006, 18:48
Сообщение #1





Группа: Новичок
Сообщений: 13
Регистрация: 2-07-05
Из: Киев
Пользователь №: 6 471



Подскажите пожалуйста алгоритм измерения частоты микроконтроллером(AT90S2313).
А именно как принять частоту до нескольких МГц, с точностью до 1Гц ??
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 1 2006, 19:11
Сообщение #2


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Дык просто - посчитать количество импульсов за определенный период
времени. Чем выше точность, длиннее преобразование.
Для счета и интервала преобразования использовать таймеры -
один ведомый от внешнего источника, другой от кварца.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 1 2006, 21:05
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Хм требования сильно высокие.. попробуйте подсчет импульсов делать средствами таймера T1, в режиме Input Capture.. Возможно 1-2Mhz и вытянет с заданной точностью (если кварц будет 10Mhz и выше)...

Зы, а может на входе схемы поставить пределитель на 10 или 16, погрешность компенсировать более длительной выборкой.

Сообщение отредактировал defunct - Mar 1 2006, 21:17
Go to the top of the page
 
+Quote Post
Kotjara
сообщение Mar 2 2006, 00:29
Сообщение #4





Группа: Новичок
Сообщений: 13
Регистрация: 2-07-05
Из: Киев
Пользователь №: 6 471



T1-двухбайтный, т.е. max счёт будет 65535Гц за 1с.
Go to the top of the page
 
+Quote Post
_pv
сообщение Mar 2 2006, 04:31
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Kotjara @ Mar 2 2006, 06:29) *
T1-двухбайтный, т.е. max счёт будет 65535Гц за 1с.

считайте еще количество прерываний по переполнению.
Go to the top of the page
 
+Quote Post
d71
сообщение Mar 2 2006, 05:18
Сообщение #6


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

Группа: Новичок
Сообщений: 91
Регистрация: 24-12-05
Из: г. Благовещенск
Пользователь №: 12 614



только вчера тахометр писал smile.gif
--
запускаю прерывание по переполнению дабы получить управление каждые 100 Гц.
--
запускаю pragma на внешнее прерывание int0, в котором просто тупо i++
--
когда приходит прерывание от таймера, просто вывожу i на дисплей
после этого i=0
--
всё по кругу smile.gif
главное! прескалер и коефициент (слово-то какое) для кварца посчитать и настроить таймер
--
см аттач (протеус, иар)
Прикрепленные файлы
Прикрепленный файл  taho.rar ( 47.42 килобайт ) Кол-во скачиваний: 306
 


--------------------
нет ничего невозможного, есть трудные пути... других не ищем
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 2 2006, 07:40
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Этому господину уже предлогалось использовать предделитель как еще дополнительные мл. разряды, и досчитывать его программно.
Думаю, 24 р-р хватит.
Go to the top of the page
 
+Quote Post
Genri
сообщение Mar 2 2006, 13:05
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 28-04-05
Пользователь №: 4 598



Прошу прощения.
Хочу задать этот же вопрос в несколько другом ракурсе.
Задача таже - измерение частоты.
Контроллер тот же - ат90s2313.
Пожелания те же:
1. Точность измерений.
2.F верх. еденицы МГц.
А теперь вопросы:
1.Зависит ли от F кварца F верх (для прямого метода отсчета).?
2.Возможно ли для решения данной задачи использовать прямой метод отсчета частоты и какие при этом могут быть ограничения?
3.С точки зрения точности что предпочтительней прямой или косвенный отсчет?
Go to the top of the page
 
+Quote Post
Kotjara
сообщение Mar 2 2006, 15:21
Сообщение #9





Группа: Новичок
Сообщений: 13
Регистрация: 2-07-05
Из: Киев
Пользователь №: 6 471



[/quote]
считайте еще количество прерываний по переполнению.
[/quote]
Наверное так и сделаю cheers.gif
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 2 2006, 17:17
Сообщение #10


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



2 Genri
все возможно - просто надо найти компромисс между точностью
и скоростью преобразования на заданном железе.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Mar 2 2006, 19:54
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



а почему at90?их вроде и не выпускают.Делай на tiny2313,она до 20мгц.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Kotjara
сообщение Mar 2 2006, 20:01
Сообщение #12





Группа: Новичок
Сообщений: 13
Регистрация: 2-07-05
Из: Киев
Пользователь №: 6 471



Цитата(WHALE @ Mar 2 2006, 23:54) *
а почему at90?их вроде и не выпускают.Делай на tiny2313,она до 20мгц.


До 20Мгц меряет?
Разберусь с at90, и думаю перейти на ATMega.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 3 2006, 03:12
Сообщение #13


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Kotjara @ Mar 2 2006, 22:01) *
До 20Мгц меряет?
Разберусь с at90, и думаю перейти на ATMega.

Поставьте внешний делитель "на много", захватывайте импульсы аналоговым компаратором по Timer Capture и меряйте их длительность, будет вам 1Ghz с точностью до 0.01 Гц smile.gif если найдете такие быстродействующие элементы.. К примеру у серии К1533 кажется быстродействие до 100Mhz, можно сделать делитель на ней будет у вас частотомер до ~70Mhz.

Сообщение отредактировал defunct - Mar 3 2006, 03:18
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Mar 3 2006, 03:42
Сообщение #14


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(defunct @ Mar 3 2006, 06:12) *
Поставьте внешний делитель "на много", захватывайте импульсы аналоговым компаратором по Timer Capture и меряйте их длительность, будет вам 1Ghz с точностью до 0.01 Гц smile.gif если найдете такие быстродействующие элементы.. К примеру у серии К1533 кажется быстродействие до 100Mhz, можно сделать делитель на ней будет у вас частотомер до ~70Mhz.


AVR имеют синхронные счетчики, измерять можно максимально Fmax = Fbq/2.5. Ставить внешний делитель "на много" - решение корявое, т. к. на выходе такого делителя будет уже сигнал с утраченной точностью. Например, для делителя на 250, погрешность будет такая же. Не для всех применений это приемлемо. Лучше использовать метод досчета. Суть метода в неоходимости уметь точно прочитать содержимое счетчика-предделителя в данный момент, чтобы корректно вычислить измеряемую частоту.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 3 2006, 09:20
Сообщение #15


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(ivainc1789 @ Mar 3 2006, 05:42) *
Ставить внешний делитель "на много" - решение корявое, т. к. на выходе такого делителя будет уже сигнал с утраченной точностью.

Ой! а куда точность-то денется? цифровой делитель на паре счетчиков потеряет? smile.gif
отмерять длительность нескольких N = 10..20 импульсов, усреднить - 1/T будет частота.

Сообщение отредактировал defunct - Mar 3 2006, 09:23
Go to the top of the page
 
+Quote Post

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

 


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


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