DDS генератор на Arduino + AD9850

Kirr
Offline
Зарегистрирован: 16.04.2021

В общем, проблема была решена с платой Node Mcu V2, если кто-то вдруг решит управлять с помощью нее. Все дело было в том, что обозначение ног не совпадало даже с тем, что было указано в даташите. Методом тыка оно все-таки запустилось и корректно работет.

Вопрос в следующем: каким-то образом возможно изменять скважность синуса и его фазу? 

man_200
Offline
Зарегистрирован: 29.04.2016

В аналоговом сигнале, чем является синусоида, нет понятия скважности. Скважность - это из импульсной техники.

К синусоиде применимы понятия частоты и амплитуды

Kirr
Offline
Зарегистрирован: 16.04.2021

man_200 пишет:

В аналоговом сигнале, чем является синусоида, нет понятия скважности. Скважность - это из импульсной техники.

К синусоиде применимы понятия частоты и амплитуды

Здравствуйте. Тогда другой вопрос! Каким-то образом возможно в последовательном режиме управлять фазой от 0 до 2пи? И как управлять амплитудой сигнала на данном генераторе?

man_200
Offline
Зарегистрирован: 29.04.2016

Для изменения амплитуды на выход генератора устанавливается переменный резистор. Один конец к выходу генератора, второй - на землю. Сигнал снимается между землей и средним выводом переменного резистора.

В данном случае фаза не сдвигается. Существуют фазосдвигающие цепи, которые устанавливаются уже на выходе синусоидального генератора. 

Kirr
Offline
Зарегистрирован: 16.04.2021

man_200 пишет:

Для изменения амплитуды на выход генератора устанавливается переменный резистор. Один конец к выходу генератора, второй - на землю. Сигнал снимается между землей и средним выводом переменного резистора.

В данном случае фаза не сдвигается. Существуют фазосдвигающие цепи, которые устанавливаются уже на выходе синусоидального генератора. 

Я правильно понимаю, без сторонних устройств реализовать управление амплитудой и фазой - невозможно?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
The AD9850 is a highly integrated device that uses advanced DDS technology
coupled with an internal high speed, high performance, D/A converter and comparator,
to form a com-plete digitally programmable frequency synthesizer and clock generator function.
When referenced to an accurate clocksource, the AD9850 generates a spectrally pure, frequency/ phase-programmable,
analog output sine wave.
man_200
Offline
Зарегистрирован: 29.04.2016

Про изменение амплитуды я тебе уже отписал

Зачем тебе фазу менять? Если на осцилле ее посмотреть хочешь то сдвинь ее частотой развертки 

Kirr
Offline
Зарегистрирован: 16.04.2021

man_200 пишет:

Зачем тебе фазу менять? Если на осцилле ее посмотреть хочешь то сдвинь ее частотой развертки 

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

Joiner
Offline
Зарегистрирован: 04.09.2014

Я не очень разбираюсь... И не понял, относительно чего нужно менять фазу? Если есть простой синусоидальный сигнал, как определить что у него сдвинута фаза?

Kirr
Offline
Зарегистрирован: 16.04.2021

Joiner пишет:

Я не очень разбираюсь... И не понял, относительно чего нужно менять фазу? Если есть простой синусоидальный сигнал, как определить что у него сдвинута фаза?

Да я тоже особо не разбираюсь, но в документации к синтезатору сказано, есть возможность управлять фазой сигнала. Выше так же писали, что 1 байт отвечает за фазу. Вот и интересуюсь, как это реализовать в коде. Нужно управлять фазой от 0 до 2п

Joiner
Offline
Зарегистрирован: 04.09.2014

"Сдвиг фаз — разность между начальными фазами двух переменных величин, изменяющихся во времени периодически с одинаковой частотой."

Имеем на выходе генератора синусоидальный сигнал, а где вторая величина?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Joiner пишет:

"Сдвиг фаз — разность между начальными фазами двух переменных величин, изменяющихся во времени периодически с одинаковой частотой."

Имеем на выходе генератора синусоидальный сигнал, а где вторая величина?

от опоры видимо

Kirr
Offline
Зарегистрирован: 16.04.2021

От нее. Да.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Фаза пригождается, когда 2 AD-шки (или более) синхронизируют, там даже appnot есть на эту тему. С одним источником сигнала регулировать фазу бессмысленно ;)   Амплитуда регулируется  через ногу Rset, но эту ногу используют для амп. модуляции или ару. Правильная регулировка -после ОУ на резисторных аттенюаторах. 

Kirr
Offline
Зарегистрирован: 16.04.2021

dimax пишет:

Фаза пригождается, когда 2 AD-шки (или более) синхронизируют, там даже appnot есть на эту тему. С одним источником сигнала регулировать фазу бессмысленно ;). 

Я понимаю, но это делается для лабораторной установки)
Лабораторную работу выполнять студентам.

Joiner
Offline
Зарегистрирован: 04.09.2014

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

Kirr
Offline
Зарегистрирован: 16.04.2021

Joiner пишет:

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

Мне кажется, там просто так подписано, один из пинов sine и square это земля. У меня ад9850 вообще от analog devices и там всего 2 пина выходных, а форма сигнала регулируется перемычкой, но меандра я так и не увидел, почему то..

Joiner
Offline
Зарегистрирован: 04.09.2014

А вот еще видео про этот модуль. Там в скетче мельком упоминается фаза и скважность. https://www.youtube.com/watch?v=zuVoaLkjckk&t=18s

Kirr
Offline
Зарегистрирован: 16.04.2021

Joiner пишет:

А вот еще видео про этот модуль. Там в скетче мельком упоминается фаза и скважность. https://www.youtube.com/watch?v=zuVoaLkjckk&t=18s

Большое спасибо за видео! Это многое объясняет. Единственное не могу понять, что за команды используются в скетче, а именно DDS.***

Joiner
Offline
Зарегистрирован: 04.09.2014

Kirr пишет:
Большое спасибо за видео! Это многое объясняет. Единственное не могу понять, что за команды используются в скетче, а именно DDS.***

Как понимаю DDS.*** это команды из библиотеки управления генератором. Надо читать описание библиотеки.

Команда DDS.setfreq(freq,phase);, как я понимаю, задает частоту и фазу.

Kirr
Offline
Зарегистрирован: 16.04.2021

Joiner пишет:

Kirr пишет:
Большое спасибо за видео! Это многое объясняет. Единственное не могу понять, что за команды используются в скетче, а именно DDS.***

Как понимаю DDS.*** это команды из библиотеки управления генератором. Надо читать описание библиотеки.

Команда DDS.setfreq(freq,phase);, как я понимаю, задает частоту и фазу.

Да, только что разобрался, оно работает, но не полностью. Задаю частоту, фазу, но фаза, по-моему не задается. Да и как проверить, если выход один (на генераторе 2 пина, и под синус и под меандр одновременно, выбор осуществляется с помощью удаления перемычки).

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Kirr пишет:

...но фаза, по-моему не задается.

Почему Вы решили, что не задается?

И чем вообще Вы измеряете фазу?

Kirr
Offline
Зарегистрирован: 16.04.2021

andriano пишет:

Kirr пишет:

...но фаза, по-моему не задается.

Почему Вы решили, что не задается?

И чем вообще Вы измеряете фазу?


Это только догадки. Есть двух канальный осциллограф. Подскажите, пожалуйста, как понять, что она изменяется?
Вывод синуса с генератора только один.

Joiner
Offline
Зарегистрирован: 04.09.2014

Kirr пишет:
andriano пишет:

Kirr пишет:

...но фаза, по-моему не задается.

Почему Вы решили, что не задается?

И чем вообще Вы измеряете фазу?

Это только догадки. Есть двух канальный осциллограф. Подскажите, пожалуйста, как понять, что она изменяется? Вывод синуса с генератора только один.

А на картинке выше (сообщение #217) обозначено 2 выхода синуса и два выхода  прямоугольных - sine1, sine2, square1, square2. 

Kirr
Offline
Зарегистрирован: 16.04.2021

Joiner пишет:

Kirr пишет:
andriano пишет:

Kirr пишет:

...но фаза, по-моему не задается.

Почему Вы решили, что не задается?

И чем вообще Вы измеряете фазу?

Это только догадки. Есть двух канальный осциллограф. Подскажите, пожалуйста, как понять, что она изменяется? Вывод синуса с генератора только один.

А на картинке выше (сообщение #217) обозначено 2 выхода синуса и два выхода  прямоугольных - sine1, sine2, square1, square2. 


Да я же говорю, у меня от фирмы analog devices, он немного не такой

Joiner
Offline
Зарегистрирован: 04.09.2014

Машинный перевод описания команд библиотеки:

setfreq(double frequency, int phase)
описание
Устанавливает частоту вывода AD9850 и фазу сигнала.
 
синтаксис
DDS.setfreq(frequency, phase);
 
Параметры
частота выхода (frequency) в Гц. (двойной)
фаза (phase): Устанавливает фазу выходного сигнала, закодированного на 5 битов позволяет 32 фазовые шаги по 11,25 "каждый. (int) each. (int)
 
Возвращает
Ничего.
 
пример
двойная частота (frequency) 10000000;
int фаза (phase) No 0;
DDS.setfreq(frequency, phase);
man_200
Offline
Зарегистрирован: 29.04.2016

На один канал ослика подай прямой сигнал с генератора, а на второй канал подай сигнал с этой-же точки но через конденсатор. Если не ошибаюсь, то сдвиг фаз составит 90 град.

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

Выше-же было сказано, что сдвиг фаз величина относительная, т.е. относительно чего либо

Kirr
Offline
Зарегистрирован: 16.04.2021

man_200 пишет:

На один канал ослика подай прямой сигнал с генератора, а на второй канал подай сигнал с этой-же точки но через конденсатор. Если не ошибаюсь, то сдвиг фаз составит 90 град.

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

Выше-же было сказано, что сдвиг фаз величина относительная, т.е. относительно чего либо

Дак не с чего подавать, у генератора 1 выход всего.
Посмотрите ad9850 Analog Devices.
Вот такой: https://arduino-kit.ru/product/modul-ri042-generator-na-mikrosheme-ad985...

man_200
Offline
Зарегистрирован: 29.04.2016

man_200
Offline
Зарегистрирован: 29.04.2016

man_200
Offline
Зарегистрирован: 29.04.2016

Видишь сдвиг по фазе? И я не вижу, а он есть. Вот ты его синхронизацией второго канала и выставишь!

man_200
Offline
Зарегистрирован: 29.04.2016

И все это из одного источника сигнала!

Joiner
Offline
Зарегистрирован: 04.09.2014

Решил поучастовать в икскрименте. Собрал такую схему

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

Kirr
Offline
Зарегистрирован: 16.04.2021

Joiner пишет:

Решил поучастовать в икскрименте. Собрал такую схему

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

Покажите, пожалуйста, как у вас подключены щупы к плате!

Joiner
Offline
Зарегистрирован: 04.09.2014

Я сигнал брал с китайского генератора с одного из  двух каналов, т.е. один сигнал. А с модуля, думаю, надо взять выход синусоиды. Только не перегрузить выход. Я не помню какое ограничение по току на модуле (если склероз не изменяет - 10 ма). Опыт надо начать с резистора номиналом пару килоОм. Я так думаю...

P.S. Понял почему у меня искажалось изображение  входного сигнала. Входы осциллографа были закрытыми (AC).

Теперь это выглядит так:

man_200
Offline
Зарегистрирован: 29.04.2016

man_200
Offline
Зарегистрирован: 29.04.2016

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

Joiner более корректно и точно подошел к вопросу.

Прошу прощения

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Joiner пишет:

Желтый луч это исходный сигнал (почему-то на меандре, треугольнике и пиле искажается). 

Видимо потому, что Вы пользуетесь закрытым входом осциллографа (вид искажений характерен для ФВЧ).

 

PS. Ну да, отвечал сразу, не дочитав тему до конца. Но, с другой стороны, если вид искажений не наводит автора сразу на причины, то, видимо, все равно надо объяснять.

b707
Offline
Зарегистрирован: 26.05.2017

Kirr, вы понимаете, что сама постановка вопроса "управлять сдвигом фазы" для одного синусоидального сигнала не имеет смысла? - а если понимаете, зачем спрашиваете?

Если вам нужно показать студентам "сдвиг фазы" на экране - делайте это сдвигом разверстки, как вам уже посоветовали выше

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

делайте это сдвигом разверстки развёртки, как вам уже посоветовали выше