Цифровые сигнальные процессоры Вопросы, связанные с применением цифровых сигнальных процессоров: программирование, отладочные средства, алгоритмы... |
14.07.2008, 07:50
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Сообщение от konstsm
|
опишу методы выставления частоты приведенные в этой теме.
1. мой
задаю число в компараторе которое равно как раз (Fосн/делитель)/(iFreq),где iFreq - желаемая частота.
(16*10^6/8 )/(15000)=133,(3)
реальная чатоста выходит:
(16*10^6/8 )/133 = 15037,59 != 15000
...
|
Ну вот из 16 Мег и получишь 15037,59 - то есть погрешность 37 герца ,а надо только не боле 2 Гц , и никуда от этого не уйдешь , поскольку 16 Мег неровно В ПРИНЦИПЕ до 15 кГц делится , а точность при этом способе и так максимальная - до одного ФИЗИЧЕСКОГО такта 1/16Мгц , а мельче невозможно - МК ну не может уже сам такт дробить для подгонки точнее под требуемые 15000 , поэтому самый простой выход это поставить ПРАВИЛЬНЫЙ кварц изначально и не мучиться ни программно , ни как еще либо совсем с 16 МГЦ - ми .
|
|
|
|
14.07.2008, 12:24
|
|
Частый гость
Регистрация: 30.09.2004
Сообщений: 39
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: программная точная частота с МК
Сообщение от dealex77
|
1) Не правда! Практика показывает следующее: 100000+-0,1Гц
2) С чего это ему гулять??? Аргументируйте?
|
1.Согласен. Частота действительно получается неплохая.
Для кварца 16МГц и получения 15 кГц расчеты показывают, что для 24-разрядного регистра суммирования (максимальное значение равно 16777216-1 или 2^24-1) в формуле DELTA = (2^24 * 8 *Fout )/Fsys = 125829.12, а после округления до ближайшего 125829 получим частоту 14999.98569 ! Отлично.
2. Но период то все-таки "гуляет". И как раз на величину одного суммирования числа 125829. Смена значений 24-го старшего разряда регистра суммирования будет происходить неравномерно. Период выходного сигнала равен 16777216:125829=133.333460 суммирований, что не является целым числом. А смена состояния 24-го старшего разряда регистра суммирования должна происходить через 16777216:125829:2=66.666730 суммирований.
Например, начнем с 0. 24-й разряд станет равным "1" после 67-го суммирования и регистр будет равен значению 8430543. Далее 24-й разряд станет равным "0" после 134-го суммирования и регистр будет равен значению 16861086-16777216=83870. 3-я смена состояния
24-го разряда станет равной "1" после 201-го суммирования и регистр будет равен значению 8514413. Как видим, пока что смена состояний 24-го разряда регистра меняется каждые 67 суммирований. Но вот 4-я смена состояний 24-го разряда (станет равным "0") произойдет после 267-го суммирования и регистр будет иметь значение 16819127-16777216=41911. Это происходит после 66-го суммирования! Вот почему я говорю, что период (фаза) "гуляет". Максимальное отклонение может составить 8 периодов выполнения команд микроконтроллера. Если такие отклонения не критичны при конкрентном использовании, то этот метод получения требуемой частоты, должен признать, неплохой. И самое главное, прост.
|
|
|
|
14.07.2008, 12:42
|
|
Частый гость
Регистрация: 30.09.2004
Сообщений: 39
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
И все-таки не вижу ничего лучшего из варианта, что раньше писал: "Кварц для МК берем 14.7456 МГц, их везде полно. Настраиваем таймер на 983. Получается 14745600/983=15000.6104".
И частота не далеко ушла от 16 Мгц. И для других разных решений очень даже хорошая частота.
|
|
|
|
14.07.2008, 12:42
|
|
Прохожий
Регистрация: 21.06.2006
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: программная точная частота с МК
Сообщение от kmw
|
....
Если такие отклонения не критичны при конкрентном использовании, то этот метод получения требуемой частоты, должен признать, неплохой. И самое главное, прост.
|
Спасибо за проведенное исследование и аргументрированный ответ! Согласен с Вами на все 100%
|
|
|
|
14.07.2008, 15:02
|
|
Временная регистрация
Регистрация: 09.11.2007
Сообщений: 56
Сказал спасибо: 12
Сказали Спасибо 10 раз(а) в 6 сообщении(ях)
|
А человеку кроме 15000 Гц какие частоты еще нужны?
|
|
|
|
14.07.2008, 17:40
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от andruha-d
|
А человеку кроме 15000 Гц какие частоты еще нужны?
|
Вот если человеку нужны и другие частоты, а точнее более низкие, то задача имеет простое решение, а точнее решать ничего вообще не надо.
Я взял за условие, что нужно плюс минус 2 герца, что скорей всего по сути наверно и не коректно, но тем не менее так было озвученно.
Так вот сел и составил уравнение, решил, конечно получил фигню, еще раз составил, в общем через пол дня насилования мозга что то получилось ![Улыбка](images/smilies/icon_smile.gif)
Итого, для 16 мегагерцового кварца, на частоте выхода до 2,82Кгц тупым делением базисной частоты можно получить точность до +/- 2 Гц. Хотя я почти уверен что ошибся в два раза в меньшую сторону. Если есть еще герои математики повторите мое решение и найдите ошибку ![Улыбка](images/smilies/icon_smile.gif)
Кто первый?
|
|
|
|
15.07.2008, 10:23
|
|
Частый гость
Регистрация: 30.09.2004
Сообщений: 39
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от arkbox
|
Сообщение от andruha-d
|
А человеку кроме 15000 Гц какие частоты еще нужны?
|
Вот если человеку нужны и другие частоты, а точнее более низкие, то задача имеет простое решение, а точнее решать ничего вообще не надо.
Я взял за условие, что нужно плюс минус 2 герца, что скорей всего по сути наверно и не коректно, но тем не менее так было озвученно.
Так вот сел и составил уравнение, решил, конечно получил фигню, еще раз составил, в общем через пол дня насилования мозга что то получилось ![Улыбка](images/smilies/icon_smile.gif)
Итого, для 16 мегагерцового кварца, на частоте выхода до 2,82Кгц тупым делением базисной частоты можно получить точность до +/- 2 Гц. Хотя я почти уверен что ошибся в два раза в меньшую сторону. Если есть еще герои математики повторите мое решение и найдите ошибку ![Улыбка](images/smilies/icon_smile.gif)
Кто первый?
|
Точнее, от 2 до 5696 Гц с точностью не хуже +/-1 Гц. Далее на некоторых частотах больше 1 Гц с постепенным нарастанием погрешности (за исключением некоторых частот по известным причинам целого деления).
|
|
|
|
15.07.2008, 16:34
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от kmw
|
Сообщение от arkbox
|
Сообщение от andruha-d
|
А человеку кроме 15000 Гц какие частоты еще нужны?
|
Вот если человеку нужны и другие частоты, а точнее более низкие, то задача имеет простое решение, а точнее решать ничего вообще не надо.
Я взял за условие, что нужно плюс минус 2 герца, что скорей всего по сути наверно и не коректно, но тем не менее так было озвученно.
Так вот сел и составил уравнение, решил, конечно получил фигню, еще раз составил, в общем через пол дня насилования мозга что то получилось ![Улыбка](images/smilies/icon_smile.gif)
Итого, для 16 мегагерцового кварца, на частоте выхода до 2,82Кгц тупым делением базисной частоты можно получить точность до +/- 2 Гц. Хотя я почти уверен что ошибся в два раза в меньшую сторону. Если есть еще герои математики повторите мое решение и найдите ошибку ![Улыбка](images/smilies/icon_smile.gif)
Кто первый?
|
Точнее, от 2 до 5696 Гц с точностью не хуже +/-1 Гц. Далее на некоторых частотах больше 1 Гц с постепенным нарастанием погрешности (за исключением некоторых частот по известным причинам целого деления).
|
Не согласен, моё слово от 0 и до 5696 но +/-2 Гц!
|
|
|
|
15.07.2008, 17:58
|
|
Прописка
Регистрация: 13.06.2004
Адрес: Москва
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 32 раз(а) в 18 сообщении(ях)
|
Коллеги!
Хочу из высоких теоретических рассуждений о возможности точной установки частоты с точностью от +/- 0,1 Гц до +/- 2 Гц спустить вас на грешную землю.
Вспомните о том, что кварцевый генератор, встроенный в МК, не разрабатывался как прецизионный и не согласовывался с кварцами всех срезов! Поэтому собственная нестабильность и разброс опорной частоты кварца легко превышает требуемую точность установки выходной частоты.
Автор топика хочет получить частоту с допуском +/-(2/15000)=+/- 1,3*10^-4
Приведу конкретный пример: для синтеза частоты я использовал МК с кварцем 4 800 000 Гц. Во время работы была измерена точная частота работы процессора с этим кварцем и она оказалась 4 801 843 Гц, что на 3,8*10^-4 отличается от номинала. А это в 3 раза превышает допуск, заданный автором темы!
Неоднократно в других работах я проводил подобные измерения и всегда получал аналогичные результаты. Самое неприятное, то что для кварцев одинакового номинала, но от разных производителей отклонения частот были разными!
Так что, если у автора есть желание получить точную частоту, то начинать нужно с запитки процессора от внешнего прецизионного кварцевого генератора. И только после этого рассуждать о программных методах реализации делителей.
Кстати, если есть желание получить точную частоту любого номинала с чистым спектром и со скважностью 2, то рекомендую обратить внимание на процессор Parallax P8X32A (Propeller). Там очень оригинально построен счетчик-делитель. А для "очистки" спектра на его выходе программно может быть подключена внутренняя PLL, которая делает скважность сигнала равной 2, при любом коэффициенте деления. Выходная частота от 0,1 Гц до 128 МГц.
|
|
|
|
16.07.2008, 01:46
|
|
Прохожий
Регистрация: 03.07.2006
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Есть простой способ
-типа синтезатора-
выливается в 4 счетчика ИЕ6, 1 триггер и 1-2 корпуса логики. Счетчики с параллельной загрузкой, куда грузим коэффициент К. Триггер формирует меандр с периодом Т=Твх х К. Тактируется это хоть 16 мГц,
с 4 десятичными счетчиками получаем частоту от
16 мГц до ~2 кГц (К будет от 1 до 10000) и контроллер свободен или с его помощью управляем параллельной
загрузкой К в счетчики (подстройка частоты) в зависимости от решаемых задач.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:18.
|
|