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

 
 
> Нужно скорректировать частоту таймера, очень аккуратно
Alexashka
сообщение Feb 20 2013, 04:58
Сообщение #1


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Добрый день.
Задача такая: есть у меня платка оцифровщика, основные узлы -процессор ARM9 (at91sam9g45) и внешний АЦП. Процессор с помощью своего таймера генерирует тактовый сигнал, которым запускаются преобразования в АЦП. Частота импульсов таймера = 100,1кГц получается делением половинной частоты системного клока (133,333МГц/2) на 666 rolleyes.gif
Однако заказчику хотелось бы иметь частоту дискретизации ровно 100кГц.
Алгоритм работы с АЦП такой, таймер молотит положительные импульсы на выходной пин, который запускает АЦП, одновременно с этим генерируется прерывание, по которому я вычитываю АЦП. Что тут можно придумать, чтобы уменьшить частоту на 0,1%?
Пробовал добавить в прерывании задержку - переключал тактирование таймера на источник (133,333МГц/8), затем пару nop'ов и обратно на (133,333МГц/2) -в результате получил 100,00кГц частоту, по частотомеру - вполне устойчивую. Но потом при рассмотрении спектра синуса, записанного с АЦП увидел жуткий подъем вблизи палки синуса и отношение сигнал/(шум+гармоники) был около 40дб. Для сравнения - в спектре этого же синуса, записанного с частотой АЦП 100,1 (без коррекции частоты таймера) палка синуса четкая на фоне шума, без подъема, и отношение сигнал/(шум+гармоники) около 80дБ.
Выходит, что задержка, которую я реализовал вносит значительный джиттер?
У кого какие соображения? Как можно скорректировать частоту не добавляя джиттер в тактовый сигнал?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alexashka
сообщение Feb 21 2013, 07:49
Сообщение #2


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Всем спасибо за идеи sm.gif
Вообщем доработка получилась несложная -кинул один провод с выхода PCK (programmable clock output, частота 12/8=1,5МГц) на тактовый вход таймера с делителем на 15. (Гыыы..пока писал сообщение понял что у меня ошибка в программе). Теперь по частотомеру стабильные 100кГц, колеблется только цифра в 8 знаке. Эту же частоту хочу завести на вход синхронизации DC/DC, чтобы избавиться от нескольких спуров, которые наблюдаются в спектре записанного сигнала. Таким образом убиваем двух зайцев.

Цитата(demiurg_spb @ Feb 21 2013, 09:28) *
Тоже над подобной задачей думаю, но у меня мега162 и кварц 7372800, а нужно получить 1 кГц тик.
Самое точное, что можно аппаратно получить - это использовать 16-ти битный CTC-таймер с делителем 1 и считать до 7372+1 получается частота 999.9728Гц.
Хочется точнее и и без джиттера...

В Вашем случае возможно удастся подстроить частоту кварца увеличив нагрузочную емкость. Нужно всего на 200Гц сдвинуть.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 21 2013, 08:48
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Alexashka @ Feb 21 2013, 11:49) *
В Вашем случае возможно удастся подстроить частоту кварца увеличив нагрузочную емкость. Нужно всего на 200Гц сдвинуть.
Спасибо! Попробую...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 19:51
Рейтинг@Mail.ru


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