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

 
 
 
Reply to this topicStart new topic
> Нужно скорректировать частоту таймера, очень аккуратно
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
MrAlex
сообщение Feb 20 2013, 05:14
Сообщение #2


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

Группа: Свой
Сообщений: 197
Регистрация: 15-10-10
Из: г. Москва
Пользователь №: 60 179



А 12МГц поделить на 120?
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Feb 20 2013, 06:04
Сообщение #3


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

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



Цитата(MrAlex @ Feb 20 2013, 09:14) *
А 12МГц поделить на 120?

К сожалению MAIN CLOCK нельзя задать в качестве источника тактирования. Если только вывести его на ногу и снова завести как внешний сигнал таймера. Надо будет попробовать...
Go to the top of the page
 
+Quote Post
VCO
сообщение Feb 20 2013, 06:12
Сообщение #4


Voltage Control Output
******

Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436



Цитата(Alexashka @ Feb 20 2013, 09:04) *
Если только вывести его на ногу и снова завести как внешний сигнал таймера. Надо будет попробовать...

Или внешней логикой...


--------------------
Слово - не воробей, вылетит - не пощадит
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 20 2013, 07:17
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Alexashka @ Feb 20 2013, 07:58) *
Частота импульсов таймера = 100,1кГц получается делением половинной частоты системного клока (133,333МГц/2) на 666 rolleyes.gif

У кого какие соображения? Как можно скорректировать частоту не добавляя джиттер в тактовый сигнал?

Поделить на 667 - будет лучше. А что такое "ровно" 100МГц?
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Feb 20 2013, 10:15
Сообщение #6


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

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



Цитата(Tanya @ Feb 20 2013, 11:17) *
Поделить на 667 - будет лучше. А что такое "ровно" 100МГц?

Вообще-то кГц (килогерц).
Но помоему, Вы все прекрасно поняли sm.gif На 667 действительно лучше, в 2 раза. Но отличие в 50Гц это 5*10Е-4 - тоже много. С имеющимся кварцем я могу иметь точность 2*10Е-5

Цитата(VCO @ Feb 20 2013, 10:12) *
Или внешней логикой...

К сожалению, устройство уже собрано, поэтому думал скорректировать программно. В крайнем случае подпаять пару проводков.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Feb 20 2013, 17:16
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(Alexashka @ Feb 20 2013, 13:15) *
поэтому думал скорректировать программно.

Есть алгоритмы изменения частоты дискретизации. Используются например чтобы переделать звук оцифрованный с 48 кГц в оцифрованный с 44,1 кГц.
АЦП работает с частотой 100,1 кГц. И из каждых 1001 отсчётов с АЦП вычислениями получается 1000 выходных отсчётов.
Довольно сложно, но можно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 20 2013, 17:43
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Так системную частоту подстроить... если можно... или изменить... или сразу надо было думать. sm.gif
Go to the top of the page
 
+Quote Post
alexeyv
сообщение Feb 21 2013, 02:04
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940



Может проще заменить системную тактовую на 120МГц и делить на 600?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 21 2013, 05:28
Сообщение #10


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

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



Тоже над подобной задачей думаю, но у меня мега162 и кварц 7372800, а нужно получить 1 кГц тик.
Самое точное, что можно аппаратно получить - это использовать 16-ти битный CTC-таймер с делителем 1 и считать до 7372+1 получается частота 999.9728Гц.
Хочется точнее и и без джиттера...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Feb 21 2013, 07:49
Сообщение #11


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

Группа: Свой
Сообщений: 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
Сообщение #12


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

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



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


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Feb 21 2013, 09:21
Сообщение #13


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

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



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

Оговорился, емкость нужно уменьшать. Либо последовательно с кварцем включить небольшую емкость.
А еще есть кварцевые генераторы с окошком для подстройки частоты, правда в основном они регулируются на несколько десятков ppm.
Go to the top of the page
 
+Quote Post

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

 


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


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