Dual AD9850 in Quadrature and finer phase adjustment

Project: Adjustable frequency dual AD9850 DDS units with output adjustable phase from 0 to 180 degrees in 11.25 phase increments.

-Arduino Uno R3
-2x 9850 DDS units
-Arduino software written in Arduino IDE version    1.6.8
-Computer running serial terminal client software to send commands over serial port

The AD9850 has five bits that control the phase allowing for 11.25 (360/32) degree phase adjustment resolution.

The original code provides a way to adjust frequency while keeping a constant phase difference of 90 degrees.

The modified code gives finer phase adjustment in 11.25 degree increments from 0 to 180 degrees.

The menu of commands is sent to the serial terminal software when the Arduino is powered on:
as      DDS A sine o/p
ac      DDS A cos o/p
bs      DDS B sine o/p
bc      DDS B cos o/p
To adjust phase type b0000, b1125, b…, b16875, b18000
To set DDSB 90 behind DDSA: set as and bc
To set DDSB 90 ahead of DDSA: set as and b18000
To set DDSB 45 ahead of DDSA: set as and b4500
To setup DDSB 45 behind DDSA: setup as and b13500
To setup DDSB 11.25 behind DDSA: setup as and b7875
To setup DDSB 11.25 ahead of DDSA: setup as and b10125
phase is adjustable by 11.25 degrees from 0 to 180 degrees
Set ac and bc for 180 degrees out of phase. as and bs for in phase
100Hz   example
100kHz  example
1MHz    example
pins    list pins
When unit powers on DDSB lags DDSA by 90 degrees

One thought on “Dual AD9850 in Quadrature and finer phase adjustment”

Leave a Reply

Your email address will not be published. Required fields are marked *