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

Расчёт шага частоты AD9833

Стоит задача генерировать меандр с шагом 0,01 гц в диапазоне от 0 до 50 кГц. Как я понял AD9833 может генерировать меандр с частотой генерации делённой на 2. Соответственно мне нужно  бы шаг был 0,005 гц. Но вот как рассчитать шаг изменения частоты не понимаю. Честно говоря не понимаю я это потому, что не понимаю сам принцип работы синтезатора частоты.

Можно ли с помощь AD9833 менять частоту с таким шагом в заданном диапазоне? Может кто нибудь объяснит как рассчитывать этот шаг.

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


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

При максимальной тактовой (25 MHz) не сможет, но если снизить (благо что верхняя требуемая частота невелика) - получится. Разрешение по частоте определяется как опорная частота, деленная на 2^28 (разрядность аккумулятора фазы). Таким образом, при тактовой частоте не выше 1.3 MHz можно получить шаг не больше 0.005.

 

Насколько хороший меандр получится - тот еще вопрос. Правильнее, конечно, использовать аналоговый выход, отфильтровать, пропустить через компаратор и отдельный делитель. 

 

 

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


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

Правильно ли я понял, что если я возьму AD9850 у которого аккумулятор уже 32 разряда и дам ему задающий сигнал 1,25 мГц, то я уже получу шаг 0,000291038 гц?

53 minutes ago, rx3apf said:

Правильнее, конечно, использовать аналоговый выход, отфильтровать, пропустить через компаратор и отдельный делитель. 

Именно так сначала и хотел сделать, пока не вычитал про такую функцию у самой микросхемы. Подумал что она это делает таким же способом, значит по качеству он должен быть аналогичный.

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


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

Если вы поставите аналоговый компаратор как предлагал rx3apf, то вы получите "честный" меандр со скважностью ровно 2 для всех кодов частоты.

А если вы используете цифровой выход, то при некоторых кодах частоты, при выключенном делителе на 2 в микросхеме, длительность единицы и нуля будет разной (будут различаться на период тактовой).

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


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

2 minutes ago, Zig said:

при выключенном делителе на 2 в микросхеме

А при включенном? Если я правильно понял то  rx3apf  и предлагал поставить компаратор и внешний делитель на 2. И как я понимаю, если просто поставить компаратор без делителя, то как раз таки заполнение и не будет 50%.

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


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

26 minutes ago, IgorAVR2 said:

 то я уже получу шаг 0,000291038 гц?

Да.

Quote

 значит по качеству он должен быть аналогичный.

Увы, нет. Джиттер будет гораздо больше. Поэтому компаратор, делитель, но главное - ФНЧ до компаратора.

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

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


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

Или же для моих нужд лучше будет поставить самый дешёвый STM32F3 у которого DAC на 1мГц, встроенный компаратор есть, который можно подключить к DACу и тупо туда выдавать синус высчитанный налету, естественно через двойной буфер. Пока одну часть считаем, другую выдаём по DMA. Получается, что что для частоты 100 кГц (50кГц*2) у меня будет по 10 точек на полный период синуса. Достаточно ли этих 10 точек?

И как тогда минимальный шаг перестройки частоты посчитать?

Правда непонятно можно ли подключить ФНЧ между входом внутреннего компаратора и DACом. Ну на худой конец внешний компаратор поставить.

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


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

Теоретически достаточно больше двух точек на период. А шаг - все тот же самый принцип DDS, зная разрядность аккумулятора фазы и частоту приращения, все считается в одно действие. И не надо считать синус на лету - таблица синуса фиксированная, сделанная один раз, считается позиция в этой таблице согласно аккумулятору фазы.

 

Для лучшего понимания - http://www.kit-e.ru/assets/files/pdf/2001_07_50.pdf

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


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

Так вот в том то и дело что не понимаю принципа который в той статье. Я уже её читал до этого но мало что понял, но тогда особой надобности не было. Видимо теперь придётся вникать.

А чем плохо считать на лету? И если считать на лету что тогда считать аккумулятором фазы и его разрядностью?

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


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

А зачем многократно заниматься вычислением синуса, если проще взять из таблицы ? Но если считать, то опять же нужен какой-то накопитель фазы (по фазе считать синус), с какой-то определенной разрядностью (достаточно большой, чтобы получить мелкий шаг выходной частоты). Принцип-то все равно один и тот же, хоть из таблицы брать уже сделанный, хоть вычислять функцию.

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


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

Теперь понял что такое накопитель фазы - это координата по оси Х с нашим шагом, которое потом нам нужно взять из таблицы.

Получается если у нас аккумулятор на 32 бита, то таблица должна иметь 2^32/4 значения ?

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


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

Всё, нашёл ответ на свой вопрос: " Максимальное требуемое число разрядов адреса ROM - это число разрядов примененного DAC плюс два."

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


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

Остался последний вопрос - чем ограничена разрядность аккумулятора,  если делать на микроконтроллере?

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


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

Так на каждое значение аккумулятора нужно в памяти хранить своё значение синуса?

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


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

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

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

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

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

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

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

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

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

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