Перейти к содержанию
    

Подскажите пожалуйста алгоритм измерения частоты микроконтроллером(AT90S2313).

А именно как принять частоту до нескольких МГц, с точностью до 1Гц ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык просто - посчитать количество импульсов за определенный период

времени. Чем выше точность, длиннее преобразование.

Для счета и интервала преобразования использовать таймеры -

один ведомый от внешнего источника, другой от кварца.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Изменено пользователем defunct

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

T1-двухбайтный, т.е. max счёт будет 65535Гц за 1с.

считайте еще количество прерываний по переполнению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

только вчера тахометр писал :)

--

запускаю прерывание по переполнению дабы получить управление каждые 100 Гц.

--

запускаю pragma на внешнее прерывание int0, в котором просто тупо i++

--

когда приходит прерывание от таймера, просто вывожу i на дисплей

после этого i=0

--

всё по кругу :)

главное! прескалер и коефициент (слово-то какое) для кварца посчитать и настроить таймер

--

см аттач (протеус, иар)

taho.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этому господину уже предлогалось использовать предделитель как еще дополнительные мл. разряды, и досчитывать его программно.

Думаю, 24 р-р хватит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения.

Хочу задать этот же вопрос в несколько другом ракурсе.

Задача таже - измерение частоты.

Контроллер тот же - ат90s2313.

Пожелания те же:

1. Точность измерений.

2.F верх. еденицы МГц.

А теперь вопросы:

1.Зависит ли от F кварца F верх (для прямого метода отсчета).?

2.Возможно ли для решения данной задачи использовать прямой метод отсчета частоты и какие при этом могут быть ограничения?

3.С точки зрения точности что предпочтительней прямой или косвенный отсчет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

считайте еще количество прерываний по переполнению.

Наверное так и сделаю :cheers:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Genri

все возможно - просто надо найти компромисс между точностью

и скоростью преобразования на заданном железе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

До 20Мгц меряет?

Разберусь с at90, и думаю перейти на ATMega.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До 20Мгц меряет?

Разберусь с at90, и думаю перейти на ATMega.

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

Изменено пользователем defunct

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

AVR имеют синхронные счетчики, измерять можно максимально Fmax = Fbq/2.5. Ставить внешний делитель "на много" - решение корявое, т. к. на выходе такого делителя будет уже сигнал с утраченной точностью. Например, для делителя на 250, погрешность будет такая же. Не для всех применений это приемлемо. Лучше использовать метод досчета. Суть метода в неоходимости уметь точно прочитать содержимое счетчика-предделителя в данный момент, чтобы корректно вычислить измеряемую частоту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ставить внешний делитель "на много" - решение корявое, т. к. на выходе такого делителя будет уже сигнал с утраченной точностью.

Ой! а куда точность-то денется? цифровой делитель на паре счетчиков потеряет? :)

отмерять длительность нескольких N = 10..20 импульсов, усреднить - 1/T будет частота.

Изменено пользователем defunct

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...