IgorAVR2 1 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Стоит задача генерировать меандр с шагом 0,01 гц в диапазоне от 0 до 50 кГц. Как я понял AD9833 может генерировать меандр с частотой генерации делённой на 2. Соответственно мне нужно бы шаг был 0,005 гц. Но вот как рассчитать шаг изменения частоты не понимаю. Честно говоря не понимаю я это потому, что не понимаю сам принцип работы синтезатора частоты. Можно ли с помощь AD9833 менять частоту с таким шагом в заданном диапазоне? Может кто нибудь объяснит как рассчитывать этот шаг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба При максимальной тактовой (25 MHz) не сможет, но если снизить (благо что верхняя требуемая частота невелика) - получится. Разрешение по частоте определяется как опорная частота, деленная на 2^28 (разрядность аккумулятора фазы). Таким образом, при тактовой частоте не выше 1.3 MHz можно получить шаг не больше 0.005. Насколько хороший меандр получится - тот еще вопрос. Правильнее, конечно, использовать аналоговый выход, отфильтровать, пропустить через компаратор и отдельный делитель. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Правильно ли я понял, что если я возьму AD9850 у которого аккумулятор уже 32 разряда и дам ему задающий сигнал 1,25 мГц, то я уже получу шаг 0,000291038 гц? 53 minutes ago, rx3apf said: Правильнее, конечно, использовать аналоговый выход, отфильтровать, пропустить через компаратор и отдельный делитель. Именно так сначала и хотел сделать, пока не вычитал про такую функцию у самой микросхемы. Подумал что она это делает таким же способом, значит по качеству он должен быть аналогичный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 28 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Если вы поставите аналоговый компаратор как предлагал rx3apf, то вы получите "честный" меандр со скважностью ровно 2 для всех кодов частоты. А если вы используете цифровой выход, то при некоторых кодах частоты, при выключенном делителе на 2 в микросхеме, длительность единицы и нуля будет разной (будут различаться на период тактовой). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба 2 minutes ago, Zig said: при выключенном делителе на 2 в микросхеме А при включенном? Если я правильно понял то rx3apf и предлагал поставить компаратор и внешний делитель на 2. И как я понимаю, если просто поставить компаратор без делителя, то как раз таки заполнение и не будет 50%. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 16 октября, 2018 Опубликовано 16 октября, 2018 (изменено) · Жалоба 26 minutes ago, IgorAVR2 said: то я уже получу шаг 0,000291038 гц? Да. Quote значит по качеству он должен быть аналогичный. Увы, нет. Джиттер будет гораздо больше. Поэтому компаратор, делитель, но главное - ФНЧ до компаратора. Изменено 16 октября, 2018 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Или же для моих нужд лучше будет поставить самый дешёвый STM32F3 у которого DAC на 1мГц, встроенный компаратор есть, который можно подключить к DACу и тупо туда выдавать синус высчитанный налету, естественно через двойной буфер. Пока одну часть считаем, другую выдаём по DMA. Получается, что что для частоты 100 кГц (50кГц*2) у меня будет по 10 точек на полный период синуса. Достаточно ли этих 10 точек? И как тогда минимальный шаг перестройки частоты посчитать? Правда непонятно можно ли подключить ФНЧ между входом внутреннего компаратора и DACом. Ну на худой конец внешний компаратор поставить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Теоретически достаточно больше двух точек на период. А шаг - все тот же самый принцип DDS, зная разрядность аккумулятора фазы и частоту приращения, все считается в одно действие. И не надо считать синус на лету - таблица синуса фиксированная, сделанная один раз, считается позиция в этой таблице согласно аккумулятору фазы. Для лучшего понимания - http://www.kit-e.ru/assets/files/pdf/2001_07_50.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Так вот в том то и дело что не понимаю принципа который в той статье. Я уже её читал до этого но мало что понял, но тогда особой надобности не было. Видимо теперь придётся вникать. А чем плохо считать на лету? И если считать на лету что тогда считать аккумулятором фазы и его разрядностью? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба А зачем многократно заниматься вычислением синуса, если проще взять из таблицы ? Но если считать, то опять же нужен какой-то накопитель фазы (по фазе считать синус), с какой-то определенной разрядностью (достаточно большой, чтобы получить мелкий шаг выходной частоты). Принцип-то все равно один и тот же, хоть из таблицы брать уже сделанный, хоть вычислять функцию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Теперь понял что такое накопитель фазы - это координата по оси Х с нашим шагом, которое потом нам нужно взять из таблицы. Получается если у нас аккумулятор на 32 бита, то таблица должна иметь 2^32/4 значения ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Всё, нашёл ответ на свой вопрос: " Максимальное требуемое число разрядов адреса ROM - это число разрядов примененного DAC плюс два." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 17 октября, 2018 Опубликовано 17 октября, 2018 · Жалоба Остался последний вопрос - чем ограничена разрядность аккумулятора, если делать на микроконтроллере? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 17 октября, 2018 Опубликовано 17 октября, 2018 · Жалоба Памятью микроконтроллера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 17 октября, 2018 Опубликовано 17 октября, 2018 · Жалоба Так на каждое значение аккумулятора нужно в памяти хранить своё значение синуса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться