05-02-2019, 12:00 AM
Hello everyone,
Here is the project I mentioned in another thread that utilizes a small AD9833 board from China and an Arduino Mini Pro to configure the DDS chip. The DDS and Arduino modules are situated on a PCB that I designed for this project using KiCAD
The project data is in the attached zip file. This PCB has a low pass filter with a cut off frequency of about 2MHz and a simple output buffer. It also features a special active low pass filter for a 25Hz sine wave that I generate using the Arduino by means of Pulse Width Modulation (PWM). This is only needed for AM Stereo encoders and can be omitted to save components. The 25Hz sine wave on the other hand is a nice indicator that the Arduino is functioning properly.
On the PCB there is a Hex or BCD encoder switch that allows you to select one out of 15 or 9 pre-programmed frequencies. These can be anything from 100kHz to 2MHz. Small alterations of the design e.g. larger coupling capacitors would even allow this circuit to be used for audio frequencies.
In the attached Arduino file I have programmed the following frequencies:
720kHz, 810kHz, 900kHz, 990kHz, 1080kHz, 1170kHz, 1260kHz, 1350kHz and 1440kHz
If you wish to change them just edit the following line in the code and reprogram the Arduino:
long frequencies [] = {720000, 810000, 900000, 990000, 1080000, 1170000, 1260000, 1350000, 1440000, 1530000, 1610000};
Values are in Hz. Please observe that the individual frequencies have to be separated by commas.
The code I included in the file "AD9833_9_Fixed_Freqencies_05" is very basic. It could be used as a basis to add new functions like increment/decrement buttons or support for a rotary encoder to change the frequency.
Please take note that you need to install the AD9833 library created by Bill Williams that I included as a zip file in your Arduino IDE, otherwise the code will not compile. You may want to check Github for a newer version...
The spectrum at the output is quite clean with the 2nd harmonic about 60-70dB below the main frequency level. The level of the harmonics in the output depends slightly on the chosen frequency. In the images below you can see that performance at 1350kHz is not as good as that when 1260 or 1440 kHz are being output.
1350kHz 1260kHz 1440kHz
Finally here is an image of the 1440kHz output on a scope and frequency counter in my very tidy workshop
Let me know if you have questions
Semir
Here is the project I mentioned in another thread that utilizes a small AD9833 board from China and an Arduino Mini Pro to configure the DDS chip. The DDS and Arduino modules are situated on a PCB that I designed for this project using KiCAD
The project data is in the attached zip file. This PCB has a low pass filter with a cut off frequency of about 2MHz and a simple output buffer. It also features a special active low pass filter for a 25Hz sine wave that I generate using the Arduino by means of Pulse Width Modulation (PWM). This is only needed for AM Stereo encoders and can be omitted to save components. The 25Hz sine wave on the other hand is a nice indicator that the Arduino is functioning properly.
On the PCB there is a Hex or BCD encoder switch that allows you to select one out of 15 or 9 pre-programmed frequencies. These can be anything from 100kHz to 2MHz. Small alterations of the design e.g. larger coupling capacitors would even allow this circuit to be used for audio frequencies.
In the attached Arduino file I have programmed the following frequencies:
720kHz, 810kHz, 900kHz, 990kHz, 1080kHz, 1170kHz, 1260kHz, 1350kHz and 1440kHz
If you wish to change them just edit the following line in the code and reprogram the Arduino:
long frequencies [] = {720000, 810000, 900000, 990000, 1080000, 1170000, 1260000, 1350000, 1440000, 1530000, 1610000};
Values are in Hz. Please observe that the individual frequencies have to be separated by commas.
The code I included in the file "AD9833_9_Fixed_Freqencies_05" is very basic. It could be used as a basis to add new functions like increment/decrement buttons or support for a rotary encoder to change the frequency.
Please take note that you need to install the AD9833 library created by Bill Williams that I included as a zip file in your Arduino IDE, otherwise the code will not compile. You may want to check Github for a newer version...
The spectrum at the output is quite clean with the 2nd harmonic about 60-70dB below the main frequency level. The level of the harmonics in the output depends slightly on the chosen frequency. In the images below you can see that performance at 1350kHz is not as good as that when 1260 or 1440 kHz are being output.
1350kHz 1260kHz 1440kHz
Finally here is an image of the 1440kHz output on a scope and frequency counter in my very tidy workshop
Let me know if you have questions
Semir