Для проверки работы модуля на ad9851 подключил его к ардуино, а сигнал принимаю лежащим рядом сдр-донглом.
Код тривиальный:Скрытый текст
И в самой библиотеке был выставлен 33 бит, для включения умножения на 6Код:#include <AD9850.h> const int W_CLK_PIN = 8; const int FQ_UD_PIN = 9; const int DATA_PIN = 10; const int RESET_PIN = 11; double freq = 24800000; double trimFreq = 180000000; int phase = 0; void setup(){ DDS.begin(W_CLK_PIN, FQ_UD_PIN, DATA_PIN, RESET_PIN); DDS.calibrate(trimFreq); } void loop(){ DDS.setfreq(freq, phase); freq += 100; delay(10); }
Код:shiftOut(DATA, W_CLK, LSBFIRST, (phase | 0x01) & 0xFF);
Оказалось что при изменении частоты, примерно каждые 300кГц сигнал сильно портится. Вот скрин свипа с 10-герцевым шагом:
Вместо диагональной прямой, каждые 30кГц из 300 имеем что-то непонятное (в частотах: ставим 24.922 - получаем 24.887, ставим 24.923 - 24.903)
А в центре этого проблемного участка, в данном случае на 24.929 вылезают какие-то гармоники:
Это нормальное поведения такого модуля или он бракованный?
И ради интереса - что там может быть неисправно? Пзу с синусом вероятно давало бы только верхние гармоники... Цап?
Здесь довольно много тем про подобные модули, но вот про качество сигнала при небольших изменениях частоты, я не нашёл.