AD9959 signal generator - Page 1
Forum section: electronics / beginners

author: anvoice
author_rank: Frequent Contributor
timestamp: June 25, 2020, 02:08:16 am
content: Hello, I'm trying to get an AD9959 signal generator board from ebay working. There was a great post by another forum member (https://www.eevblog.com/forum/rf-microwave/all-you-need-to-know-about-the-chinese-ad9959-ebay-board/) about this Chinese board, and he suggested some modifications to it due to his version violating the recommended schematic for the AD9959 IC. However, the board I have has some differences in design and I was hoping to test it to see if it might work without alteration. I'm attaching a picture of my board.For anyone with experience running this board, I have a few questions:1) That forum member mentioned that to test the board, one could connect power, short the RST and PDC (power down) pins to ground, and probe the YCLK output with an oscilloscope, which should give a sine wave with 1/4 of the reference crystal frequency. For starters, my board has no YCLK pin. I tried probing the SCK pin and got no recognizable waveform. I also tried connecting to CLK (the fifth SMA connector) and got something that roughly resembled a sine wave with a frequency of 75MHz, and a peak to peak voltage of 14-15mV. Is there a way to test whether my particular board functions without programming it?2) I found an Arduino library for controlling the AD9959 board (https://github.com/cjheath/AD9959) using SPI, but the pin naming scheme they use differs from what I have. Specifically, they call for the Arduino clock to connect to SCK (easy enough), but then MISO connects to SDIO_2 and MOSI to SDIO_0, while SDIO_3 is pulled down. My board has SD0, SD2 and SD3. Can I assume a direct correspondence (i.e. SDIO_0 is SD0)?3) The library also calls for an update (I'm guessing the UP pin on my board) and four profile pins. I have F0, P1, P2, and P3. Are those the profile pins?I realize I can also contact the seller directly with these questions, but on ebay their English is often not their forte and I don't want to misinterpret anything. Thank you for reading

author: kripton2035
author_rank: Super Contributor
timestamp: June 25, 2020, 06:12:00 am
content: Quoteand sorry but most of the time they don't know anything about the product they are selling !

author: anvoice
author_rank: Frequent Contributor
timestamp: June 25, 2020, 09:59:14 pm
content: Quote from: kripton2035 on June 25, 2020, 06:12:00 amOften true, I agree.Answer to question 1) There is another header on the board which I didn't notice before that has CLK on it. That one is indeed 1/4 of the frequency of the reference crystal (reference is 25MHz, so CLK is 6.25MHz) at about 2.9V peak to peak. So apparently I have a working board. Still need to figure out answers to 2 and 3 to program it though.

author: buco
author_rank: Newbie
timestamp: November 13, 2020, 05:32:45 pm
content: Hi, could you please share the information about "header" that has CLK (i.e. that generates the clock).I purchased the same board and have been trying to power it following "https://github.com/mgrau/ad9959"but I have no luck for the moment.Is there a firmware to program AD9959 via CY7C68013A(Like ADF4351 adf4xxx_usb_fw_2_0.hex using python)Any kind of help would be appreciatedThanks!Ivan

author: HB9EVI
author_rank: Frequent Contributor
timestamp: November 13, 2020, 09:54:29 pm
content: the CLK header allows to feed an external MCLK reference to the DDS instead of the onboard 25MHz XO; it's a good idea to use an external 500MHz reference due to the otherwise poor phase noise performance when using the internal PLL

author: Bud
author_rank: Super Contributor
timestamp: November 13, 2020, 10:52:06 pm
content: I used Analog Devices's softwarehttps://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-ad9959.html

author: buco
author_rank: Newbie
timestamp: November 14, 2020, 06:36:43 pm
content: Hi,Assuming you were using cy7c68013a!?How did you manage to install the firmware in order to trick AD's software.I tried this ->https://www.analog.com/media/en/evaluation-boards-kits/evaluation-software/AD9958-AD9959-EVB-flash.txt,but unfortunately haven't manage to do it in Windows 10.Anyway, could you be so kind and share some tech info/background how did you do it.I am pretty desperate.Thank you for your time.Ivan

author: Bud
author_rank: Super Contributor
timestamp: November 14, 2020, 10:05:36 pm
content: Yes i used a CY7C68013A interface. You can read my experience in the first link provided in the first post in this thread.

author: buco
author_rank: Newbie
timestamp: November 15, 2020, 05:41:13 pm
content: Yes I am aware of your "excellent" post.Thank you for your answer and time.

author: GRA
author_rank: Newbie
timestamp: January 03, 2021, 04:56:35 am
content: On the AD9959 chip, there is a DDS9959 Shield (expansion board) for Arduino MEGAhttps://www.ebay.com/itm/164531485719. The board has a TCXO 40MHZ that works with a built-in PLL in DDS (in the datasheet a frequency multiplier) or external clocking, an OLED screen and an incremental encoder for fast and convenient control, all voltage LDO Low NOISE regulators on the board. You also need to pay attention to RF transformers for each DAC output, they suppress even harmonics, the Chinese like to save money and do not put them on many boards! Well, low-pass filters of the 7th order for each channel. There is also a 3.3 to 5V level converter on the board as the AD9959 uses 3.3V control logic and 5V Arduino.For Arduino Mega, there is a GitHub repository library:https://github.com/afch/DDS-AD9959-Arduino-ShieldThe software is of course rather weak, not all the potential is realized for the AD9959, but the main functionality is a level in dBm, unlike Chinese in which the level is set in unchangeable values , and also the phase is set in degrees, in Chinese boards it is also in unchangeable values. There is a clock and overclocking menu. The AD9959 can be overclocked to 600MHZ, while the output frequency can be obtained up to 225MHZ, if there are a lot of harmonics above it.There is also such a moment, regarding the output level, by default it is -7dBm, which is frankly not enough, You can increase it to -3dBm, but as it is written in the datasheet, the spectrum will be slightly worse.QuoteThis parameter is set on the DDS9959 board with resistors R11 1.91k for -7dBm (DAC = 10mA) and 1.26k for -3dBm (DAC = 15mA). instead of one percent, you can put 1.8k and 1.2k.

author: JohnnyMalaria
author_rank: Super Contributor
timestamp: January 03, 2021, 03:59:28 pm
content: Have you looked at the zip file that is available?http://files.banggood.com/2017/12/SKU810658-AD9959-V2.0.zipIt contains, among other things, a schematic of the board and C code for communicating with the chip.

author: JohnnyMalaria
author_rank: Super Contributor
timestamp: January 15, 2021, 01:39:57 am
content: I ordered one of the same boards as the OP did and it arrived today. Spot the unusual feature...I going to use it in place of another Chinese AD9959 that I have been using successfully for a few years. It's different in that it is programmed via a serial port. I "sniffed" the communications between the app running on Windows and the board to work out the protocol and wrote some Python code to control it.I'm going to work on my newer board this weekend.

author: JohnnyMalaria
author_rank: Super Contributor
timestamp: February 15, 2021, 11:08:38 pm
content: Yay!It took about 10 hours but I got it working with my Raspberry Pi 4Here's a photo of the 'scope showing two 50.0MHz signals in antiphase (top two) and two 25.0MHz (also in antiphase, bottom two).Here's my RPI 4 hooked up to the AD9959 board and DreamSourceLabs logic analyzer:And my pigsty for the day:Now I just need to write some nice code and eventually port it to a Zynq 7000 SoC.If anyone is interested in the details, I'll be happy to share once I have some reliable code running on my Pi.