All you need to know about the Chinese AD9959 eBay board - Page 1
Forum section: electronics / rf-microwave

author: Bud
author_rank: Super Contributor
timestamp: February 16, 2019, 09:25:06 pm
content: Part 1 of 4This is my notes on the Chinese AD9959 board sold on eBay:https://www.ebay.ca/itm/AD9959-Radio-Frequency-RF-Signal-Source-Generator-4-Channel-DDS-Module-DC5V-Hot/183329859591?hash=item2aaf4fa807:g:rbYAAOSwdVBbTbik:rk:49:pf:0There was a post on EEVBlog forum where the user was unsuccessful trying to run the board:https://www.eevblog.com/forum/rf-microwave/ad9959-ebay-board-troubleshooting/msg1766849/#msg1766849Following that discussion I became curious as to if that was a user error or the board had a counterfeit AD9959 IC. So I went ahead an got one, as I was going to start a AD9959 project anyways.Clock inputDo not power on this board before making the changes described below. You may damage the DDS chip.The board has a 3.3V 25MHz 5x3.2mm clock oscillator (connected to REF_CLK via a DC blocking capacitor and with the complementary clock pin grounded via another DC blocking capacitor) which appears to be a 50ppm TXC part, the closest part number on TXC web site I was able to find was 7C-25.000MBE. However there are problems with using this oscillator as well as with the board configuration:AD9959 datasheet specifies 1V max amplitude on each clock input. This oscillator outputs 3.3V amplitude which may damage the clock input stagePin 24 CLK_MODE_SEL has to be connected to Ground when an external oscillator is used for clock. This board comes with pin 24 connected to 1.8V which is for using internal oscillator and an external crystal resonator connected to the clock pins directly with no blocking capacitors.The oscillator is not properly loaded; there is no loading capacitor at the oscillator output. The TXC datasheet specifies minimum 15pF load capacitance.The AD9959 datasheet shows the following clock input stage:Having CLK_MODE_SEL set for crystal resonator but using an external 3.3V oscillator driving the input stage REF_CLK pin means the internal amplifier is badly overdriven when it is not supposed to be used at all, and the amplifier output (the complementary /REF_CLK pin) is shunted to ground via a large value capacitor, effectively short circuiting the amplifier output to ground. This potentially may cause damage to the clock input stage.To fix this, perform the following modification:replace the oscillator X1 with 1.8V one in the range of 25-125MHz as per the Datasheet. Remember the PLL multiplier is in range 4x-20x, so for 500MHz PLL output the oscillator should be in the range 25…125MHz. I used a 26MHz 0.5ppm TCXO,Digikey P/N ‎1664-1320-1-ND‎ ‎TYKTACSANF-26.000000. This is a smaller oscillator with the size 2.5x2mm; however the X1 footprint on the PCB has small distance between the pads and allows to solder a smaller package. This oscillator will provide 0.8V signal amplitude to REF_CLK pin which is within 1V specification. Use the highest frequency oscillator with low phase noise you can find, that is to reduce the PLL multiplier to reduce DDS residual phase noise. Smaller multiplier values produce less phase noise introduced by the internal PLL.Add a 6pF capacitor from the oscillator output to ground. I used a 0603 size capacitor soldered to the existing oscillator output and ground pads. The replacement oscillator datasheet specifies 10pF load capacitance. If to subtract the DDS 3pF input capacitance and another 1pF of stray capacitance of the connecting track, a 6pF of additional capacitance is required.change the oscillator power supply from 3.3 to 1.8V:-> cut the trace from L14 to the 3.3V bus (to the left of L14)and solder a wire from bottom of L14 to positive terminal of C44. The following is a photo of the board area with the oscillator changed, loading capacitor added to the oscillator input and the oscillator power supply line rewired to +1.8V:disconnect pin 24 from 1.8V and connect it to ground. You will have to be creative here and may need a microscope. One way to do it is to cut the track from pin 24 to C42 and solder pin 24 to pin 25 with a blob of solder. The other way is on the bottom of the board use a small drill bit to break the via coming from top side pin 24 to separate it from 1.8V track. If the power track was damaged as a result of this, repair it with a piece of wire. Double check the pin 24 is now does not have conductivity to 1.8V and on the top side of the board solder a jumper over C42 to ground or remove C42 altogether and replace it with a jumper, as I did in the above photo. This will connect pin 24 to ground which will enable external oscillator/clock.Alternatively you can use a crystal resonator (20-30MHz) instead of external oscillator, in which case leave pin 24 connected to 1.8V, but you will have to rewire the clock inputs: remove decoupling capacitors from the clock inputs, connect the crystal directly and add load capacitors to each end of the crystal appropriate for the crystal resonator used. Refer to the selected crystal datasheet for the load capacitors value. Deduct 2pF (DDS input capacitance) from each load capacitor.One more alternative is to use an external 500MHz clock. If to use it, at a minimum remove the oscillator from the board. It is the best to supply external clock via a 1:1 balun as shown in the Datasheet, Fig.33. You can use the oscillator pads (remove all associated components such as the power supply net and decoupling capacitors) to install a balun, load resistor and decoupling capacitors.PLL Loop FilterThe datasheet says the PLL loop filter is typically a 680pF capacitor connected from pin 27 to ground. This board has a 680pF capacitor and a 680 Ohm resistor. Why a resistor was added is not known. I saw information on the ADI forum that AD9959 has an internal 820 Ohm series resistor inside the chip. If you use the multiplier, you may need to experiment with removal of the resistor.Edit: I later found the 680 Ohm resistor R2 is not needed for the PLL to lock properly, so I replaced it with a wire jumper.

author: Bud
author_rank: Super Contributor
timestamp: February 16, 2019, 09:26:14 pm
content: Part 2 of 4DAC output currentThe board has a 1.8K resistor R1 connected to pin 17. This is the Rset resistor which sets the DDS output current. The datasheet provides the following formula:The datasheet recommends 1.91K resistor which sets the current at 10mA which provides optimal spurious-free dynamic range (SFDR) performance. The resistor on the board sets the current at 10.5mA. While this is within the DDS max current (15mA is the max), you should keep that value in mind for calculating your termination resistors and output voltages to make sure to stay within the DAC output voltage compliance range. Or replace the resistor on the board with 1.91K to set the DAC current at 10mA.DAC termination and loadingThe board has 50 Ohm resistors from each DAC shoulder to +1.8V AVDD. The DDS has 4 channels/DACs and each of the DAC has an output 200MHz anti-aliasing low pass filter. The filter is single ended and is connected to one of the DAC shoulders. The second shoulder on each DAC is simply connected to AVDD through a 50 Ohm resistor. With 10mA DAC current that will produce 0.01*50=0.5V of voltage drop across each DAC output resistor. When the DDS will generate a signal, the RF signal will be 0.5V peak-to-peak from +1.3V to +1.8V with the DC bias at 1.55V. That is within the DDS output voltage compliance range of AVDD-0.5V…AVDD+0.5V. This is shown in the following LTSpice simulation plot.In the above simulation the DAC load was set to high impedance.However the problem with the board design is that the LPF filters are DC coupled to the DDS and there is no decoupling capacitor at the filter output either. That means that connecting a 50 Ohm DC coupled load to a filter output will make a DC voltage divider with the 50 Ohm DAC resistor, and that will drop the DC bias voltage on the DAC output to approximately +0.85V which is outside of the DAC output voltage compliance range. The output signal becomes severely distorted on both DAC outputs as the following simulation screenshot shows. The Blue line in the bottom plot is the DAC output to which the 50 Ohm external load (R3) is connected.With the external 50 Ohm DC coupled load the DC current through R2 is not at 5mA midpoint anymore but at about 20mA because it now has a sum of currents through the DAC output stage J2 and current through resistors R2+R3. This causes a larger voltage drop across R2 and as the result the low DC bias on J2 drain, taking it out of voltage compliance range.For this reason you should only use AC coupled loads with this board. But alternatively you can modify the board in the following way:- for each LPF cut the trace between the LPF and output SMA connector and insert a 1uF ceramic capacitor.Inserting a DC blocking capacitor will raise the lower frequency limit of the board. In case you expect to use the board with unknown or variable impedance loads, in addition to the DC decoupling capacitors it is better to build a set of external buffers with 50 Ohm Zin and Zout. Additionally you can add a 3-6dB attenuator at the buffer output to improve matching with the loads.From AC analysis perspective the 50 Ohm termination of the LPF will appear as a 50 Ohm in parallel with the 50 Ohm DAC output resistor. So the DAC output that is connected to LPF will see 25 Ohm combined load. With 10mA DAC current that will produce 0.01*25=0.25V p-p of RF voltage. From DC perspective the DAC will be still biased at 1.55V, so the output will fluctuate between 1.425V and 1.675V which is within DAC output compliance range. The RF voltage at the buffer input will be also 0.25V p-p less some loss in the filter. You can design the buffer to have some gain to satisfy your system output voltage requirements.Because the DAC output, to which the LPF and load are connected, will see 25 Ohm combined load, it make sense to have equal load on the complementary DAC output. Therefore the 50 Ohm resistor on each of the complementary DAC outputs should be replaced with a 25 Ohm resistor to keep the DAC output balanced.The anti-aliasing filterThe board has 4 low pass filters to filter DDS aliases on each of the 4 channels. A filter has 230MHz 3dB bandwidth; however the Return Loss (match) is low at this point, so it is better to limit the DDS output to 200MHz where Return Loss drops to 10dB.

author: Bud
author_rank: Super Contributor
timestamp: February 16, 2019, 09:27:09 pm
content: Part 3 of 4The SoftwareYou can build your own controller board using your favorite microcontroller and own software but a quick and cheap way to get the board running is to buy a CY7C68013A USB interface board on eBay or Aliexpress and make a cable connecting the two boards using the Analog Devices Evaluation Board schematic. Then use the ADI Eval software. Download the AD Eval board package and software from AD9959 page on ADI web site.The package has a readme file with instructions how to install the supplied 64-bit compatible USB driver for the Eval board. Also the driver package has an EEPROM configuration utility. There is an EEPROM chip on the Eval board and on the board you buy on eBay. The idea is you install the driver first, then run the config utility and write a few bytes into the EEPROM. Power cycle the USB board and the computer will recognize it as 9959 Eval board. However the instructions did not work for my Win7 64 computer, so I ran a WinXP VM and tried in there. It did not work from the first try either but somehow after a couple times all of a sudden it worked and found the board. I did not catch what exactly happened so can’t help with instructions here. You will need to try. Once I configured the USB board in WinXP, my Win7 also found it and installed the driver just fine. I could then run the Eval software and it worked fine on Win7 64.Once you have the software running I recommend checking the USB interface board first. The Eval software has a debug menu which you use to test the USB interface by setting and clearing specific lines and checking the pin state on the USB board with a meter. Check a few lines with a meter to make sure the software properly controls the USB chip. Now it is time to connect the two boards and see what you can get out of the 9959 board.Getting it togetherTo connect the USB board with the DDS board I made two ribbon cables out of an old computer IDE ribbon cable. Two pieces of the length needed were cut out of it and terminated with female connectors bought from Digikey. There are a lot of videos on Youtube how to crimp ribbon cable connectors. I used a hand vise which worked just fine. My USB board had a 40-pin connector. Here are the pics of the process and the end result.

author: Bud
author_rank: Super Contributor
timestamp: February 16, 2019, 09:29:13 pm
content: Part 4 of 4Testing and troubleshooting the boardIn order to check the board if it is operable, disconnect the USB adapter for now. On the AD9959 board on the 2 row connector connect pins RST (reset) and PDC (power down) to ground with wire jumpers. Connect the oscilloscope to pin Yclk. This pin is directly connected to pin SYNC_CLK of the 9959 IC which outputs the internal bus clock ref_clk/4 where ref_clk is the reference clock. A good chip after power on and before the IC is configured this pin will output the reference oscillator or xtal frequency divided by 4. If there is no output on Yclk, there is no point to proceed with programming of the IC because there is something is wrong with the board or the IC.Well, that was exactly what I observed in my case. There was no output on Yclk pin. Double checked the power supply voltages, turned the power off and checked continuity between the ground and power to the corresponding IC pins, measuring right on the IC pins – the microscope came handy for the task. Checked continuity on the clock, reset and power down pins, still no sausage. The DAC outputs were sitting at static levels, but the sum of currents through each of the DAC channel’s resistor pair did came to about 10mA each. So the DAC seemed to be normal.Moving to the clock inputs, I found no DC bias on the clock pins. According to the AD9959 datasheet the input circuitry has internal bias of about 1.15V when external oscillator is used. That is why DC blocking capacitors are required at the clock lines in this mode. But there was no DC bias on the clock pins. I re-arranged the input clock source to use an external crystal resonator which is DC coupled (also pulled CLK_MODE_SEL pin 24 to +1.8V) but there was still no any DC voltage on the clock pins.Pocking around for a bit more, I decided the chip is dead. That seemed to be the case with the other EEVBlog member who bought same board. I was about to give up when I noticed when I accidentally bent one of the board corners the Yclk signal appeared on the connected scope! Let the board go and the signal disappeared. Bent the board again, the signal appeared again. WTF ! Was it a cold solder joint on the IC? Was it a bad via? A cracked SMD component? But for now I was just curious if the IC is operational under that condition. So I fixated the board slightly bent using a couple washers under that corner and ran the ADI Evaluation software. The software recognized the IC and I was able to configure the PLL multiplier and confirmed with the frequency counter it outputs the correct frequency on the Yclk pin (fsys/4). With that I tried the DAC outputs in single tone mode and all 4 DACs were operational but 2 of them were substantially noisier than the other two.Next test was a frequency linear sweep which worked just fine, however I noticed some of the times as I hit the IC register load button, it got the PLL multiplier reset, so I had to reconfigure it again. At the time I was not sure if it was the IC or a glitch in the software.I changed the IC back from using the crystal resonator to using the external oscillator and that worked too and I observed a bit of DC bias on the clock pins just as it was supposed to be. Removing the washers and letting the board get straight had the DC bias disappear and the board stopped working. Therefore my conclusion was there was intermittent connection somewhere in the clock input circuitry, possibly inside the IC. I checked the PCB tracks and continuity to the clock pins again, then dropped some flux and reflowed the IC. Nope, same dead dodo. Fully removing the IC, cleaning the led-free shit and soldering the IC back using old school led SMT paste did not fix the problem, in fact it got worse and more force now was needed to bend the board to get it work.I was now 99% sure the problem was with the IC. Examining the package under the microscope did not reveal any cracks on the package. As I needed a 9959 generator for my project, decision was made to buy a replacement IC from Digikey. When it arrived and I replaced the Chinese IC with it, the board started working right away. Testing with the ADI Eval software I kept an eye on the PLL multiplier but with this good IC it never reset when I was sending programming commands to the IC.Visual inspectionThe 9959 IC on the Chinese board was bad, be it because it was a genuine but defective IC, or some sort of an engineering sample, or a poorly made clone. Comparing the two ICs did not reveal much (in the following picture the bad IC is on the left and the good one is on the right)The bad one has a thicker marking; the good one’s marking is crisp. The other thing the good one had tiny letters “DBK” in the pin1 recess.Looking at the date codes, the bad IC seemed to be from 2011 old stock. Was a contributing factor ? Has it gone bad from long or improper storage? Other than that, the text alignment was pretty much bang on as the following blended picture shows.It can be seen the first two and last lines are bang on, same font, same pitch, same distance.

author: Bud
author_rank: Super Contributor
timestamp: February 16, 2019, 09:46:27 pm
content: The verdictThe Chinese AD9959 board had a bad IC from the get go. Likely because it was an old stock and/or improperly soldered, meaning it may have sucked moisture and not have gone through baking before being soldered which caused internal damage, or was improperly handled or static damaged or else. Given the other EEVBlog member got the same dead dodo, chances are there are other bad boards been sold out by the same seller. In summary, the following were the findings:The board had an external clock oscillator but was wired for using a crystal resonatorDAC outputs are DC coupled to the board outputs through the anti-aliasing filtersNo bias on the clock inputs, likely because of damaged input connections inside the ICThe board had to be bent in a particular way to make it workWhen the board worked, the Internal PLL reset when sending mode change programming commandsTwo out of 4 DAC outputs were noisier than the other twoBad IC aside, its clock control pin was also wired incorrectly, adding to potential danger of damaging the IC unless reconfigured as said in this article.Therefore I do not recommend buying this board. You may get a lemon.Now when I have the IC replaced I will proceed with modding the DAC output and LPF to have them use 4:1 transformers to improve signal quality and provide DC isolation. I will also mod the LPF filters to elliptic ones to improve image and aliases rejection. The following photo shows the board disconnected from the USB adapter and driven with a 26MHz TCXO oscillator as was explained in Part 1 of this post. The scope connected to the Yclk pin shows 6.5MHz signal (26MHz/4). This is what you should be getting if the IC is good.PS: let me know if I missed anything or got wrong.

author: edavid
author_rank: Super Contributor
timestamp: February 18, 2019, 04:37:28 pm
content: The Taitien oscillators don't have a minimum load spec. That's just a condition for the output voltage spec.

author: Bud
author_rank: Super Contributor
timestamp: February 19, 2019, 02:01:06 am
content: This reply is to the post in the other thread, I just want to move the discussion here because the OP has closed his thread.QuoteThe second picture in post one (the clock input stage from the datasheet) has protection diode to the AVDD rail and ground. With a 4V p-p clock, AC coupling and 1.8V power rail the diodes will be hard clipping the clock, that is - injecting it into the power rail. I am not a silicon expert but I'd expect seeing clock and its harmonics feed-through in the DACs outputs, in addition to the degraded phase noise and spurious components in the DAC spectrum.QuoteTo my experience ADI specifies ref clock level as p-pQuoteStrictly speaking it was my assumption but typically this is what it typically is. Mind the low pass filter is also a 50 Ohm one. A mismatching load will cause ripple in the output. I do not think the chinese "designer" had any particular use in mind, the board was just a slap together product for sale.

author: xaxaxa
author_rank: Regular Contributor
timestamp: February 19, 2019, 02:37:57 am
content: Are you sure that crystal oscillator isn't a tcxo which would be outputting 0.8V p-p? if it isn't, I'd simply replace it with a tcxo which is easier to do than the 1.8V hack. Also last time I checked the surface mount tcxos are actually cheaper than the logic-level crystal oscillators.

author: edigi
author_rank: Regular Contributor
timestamp: February 19, 2019, 08:30:22 am
content: QuoteOK I understand that it's not nice to overdrive the clock input but I still don't see how much of an issue is it? I guess that after all clock is not sine but somewhere between a clipped sine and square anyway. Sure it's also bad to unnecessarily overdrive the power rail, but with my limited understanding clock input and DAC are using different power pins.Have you checked this (spurious content before and after mod) with a SA? (I'm too lazy for this, although I have one...)I'm still quite lost how this would degrade phase noise. Not to say that it could not impact but I'm not good enough in this to see even if it's obvious.QuoteAt which frequency? How have you calculated the impedance?xaxaxaQuoteI've also checked the output of the TCXO, it's indeed rather high, but in my view the road to the better signal quality is not about replacing the cheap/tiny built in TCXOs with another cheap/tiny ones but forgetting them altogether and using a decent clock source. But then it brings up the question does this worth all the trouble, what is the aim here after all?

author: OwO
author_rank: Super Contributor
timestamp: February 19, 2019, 08:46:31 am
content: There is a big difference between the surface mount TCXOs (which tend to be 0.8V p-p) and the uncompensated (and usually CMOS level) oscillators. Both are about the same price but the TCXOs can have stability of 0.5ppm over rated temperature range, for examplehttps://item.szlcsc.com/214311.html

author: Bud
author_rank: Super Contributor
timestamp: February 20, 2019, 02:43:33 am
content: Quote from: edigi on February 19, 2019, 08:30:22 amYou should make an effort to support the discussionI can't at the moment because I am in the middle of renovating the shack, most of my equipment is disconnected and is in storage, otherwise I would measure it.QuoteI provided the S11 chart in Part 2. I measured the filter components and placed in a simulator, the simulator produced the chart. I could not measure because don't have access to my equipment until shack renovation is complete. Do you know the meaning of S11?QuoteI am not sure I understand the last one. The oscillator used was a regular likely 50ppm oscillator. You will have harder time finding a 3.3V oscillator with 1V output than simply switch the power supply and use a 1.8V oscillator. At least that was easier for me to do.Quoteas I said the original oscillator was not a TCXO.QuoteI have a project for which frequency stability is critical, so I replaced the original oscillator with a TCXO. If your goal is to hook your board to arduino to "generate something" than you do not need a TCXO. It depends on your application, if you have one.

author: edigi
author_rank: Regular Contributor
timestamp: February 20, 2019, 09:46:32 am
content: QuoteSorry I don't have time for checking anything that is after the mod (for me does not worth the trouble since it requires getting rid of the 1.8V on pin 24 and it seems that it can become a pain; more on this later).Before the mod case I've already made a quick check (no screenshots though), but with rather wide bandwidth (so anything below the -70dBm noise floor was not visible to me).CH0/1 had a -40dBm 125 MHz signal (5th harmonic of the clock). Can't remember anymore which, but one of the CH2/3 channels was entirely clean and the other one had just above the noise floor 125MHz again.Note: For this exercise I've directly connected the board output to the input of my SA that has 50 Ohm impedance, so I've followed your route of loading the output of the board with 50 Ohm although I'm still not convinced that this is the only route to follow.In short: The designer could have done better...QuoteI think I more or less understand it, so since the filter (at least in simulation) does not have sink component (resistive that dissipate, radiating whatever) to be able to filter it has to reflect.Thus where reflected signal is the same as the input (0dB) it filters all the signal and where reflected power is less (- whatever dB) it's less because some of the signal passed the filter. The less reflected, the more passed.I still don't get though where the need for 50 Ohm impedance matching is coming, still don't know what you've used in the simulation what it would change if a high impedance load is used etc. (probably my fault).Couple of notes still (somewhat loosely related).1) Since the output of the DAC follows the sinc function (I guess you know, but for those readers who don't it's worth checking MT-085 from ADI; I remember also a longer variant but could not quickly find it) probably the filter is designed in a way it's designed to compensate somewhat the loss. So that's why the signal output bandwidth is not 200 MHz, as in sampling the rule of the thumb is that sampling should be at least 2.5 times the max. signal (exception is digital filters, next point).2) Since good quality (minimal parasitic) and precise components are expensive the escape route is DSP where precision comes almost free (at least nowadays) but with RLC components one should rather lower than raise the bar.So in short: Maybe the anti-aliasing filter -3dB point is around 200 MHz but signal probably drops around 3dB even below 200 MHz (due to DAC output drop) and in my view you should never try to go above 200 MHz of a 500 MHz sampling system (aim actually something like 30% of the sampling rate and that is also the case here; btw. so do you know why I assume based on your chart that this board is designed to be used till around 160-170 MHz?).QuoteQuick reading/quick writing/quick checking (sorry). If just a crystal oscillator is used (which is beyond me why anyone is still using crystal probably even the price advantage is negligible nowadays) it can explain a lot of things. In case of crystal used to have reasonable rise time the signal level must be rather high and clipping (done by the 9959) is normal. Since for things I build I use TCXO only, to me this kind of setup was not known.So it has power (probably the reason for DC separation), could do everything by its own but still somewhat relying on 9959 crystal input/mode.This can be a real pain point with this board. To fix it the 1.8V has to be removed from pin 24 (there is a leadless packaged chip...) but it seems that the designer has not really designed for this option.(?) Normally a minor re soldering is required (sometimes not even that), looking on the components I've assumed that to use external clock source only removal of the 0 Ohm resistor (close to the crystal oscillator) is required (some other boards have solder pads, even others jumper). If this is not the case it's really a bad design. I can't tell how much I miss a schematic here...This kind of chips are best clocked externally without any PLL usage (to keep phase noise reasonable), this is very well spelled out in the datasheet.

author: hli
author_rank: Frequent Contributor
timestamp: February 20, 2019, 12:33:35 pm
content: Are you sure that X1 is not a crystal after all? Its labelled as such, and the AD9959 is configured to use one...

author: edigi
author_rank: Regular Contributor
timestamp: February 20, 2019, 01:47:16 pm
content: Crystal oscillator not just a crystal where signal shaping/clipping is left to the 9959 (does not fit to any of the ADI described clocking modes).

author: Bud
author_rank: Super Contributor
timestamp: February 20, 2019, 04:03:27 pm
content: Quote from: hli on February 20, 2019, 12:33:35 pmNot sure what makes you think such about the marking. Did you miss my "Clock Input" subsection in Part 1? The marking is consistent with TXC part numbering for crystal oscillators, B means 3.3V, E means 50ppm. I am posting this from a mobile phone so cant give you a link but you can fond that on TXC's web site. They do not have the 6C series anymore, only 7C. Also if it was a crystal, the IC would not drive if with voltage level exceeding specification by 4 times. Also, even the stupidiest chinese designer would not connect a power rail to a crystal.

author: wedgetail
author_rank: Contributor
timestamp: February 26, 2019, 04:27:19 am
content: I have deleted my original post, I think I was way off in my thinking. I was looking at a number of GHz Evaluation boards and this made me assume the board here could be controlledf by SPI interface.@BUDMy apology, I made a poor post.

author: Bud
author_rank: Super Contributor
timestamp: February 26, 2019, 04:46:39 am
content: I do not understand your question....What you are trying to achieve?

author: cjheath
author_rank: Contributor
timestamp: April 12, 2019, 02:14:18 am
content: Many thanks to the OP for this super post. I haven't got around to firing up my AD9959 board, which is this onehttps://www.aliexpress.com/item/Four-way-orthogonal-signal-generator-DDS-AD9959-core-board-200MHZ-AD9854/32713419146.htmlI have however produced an Arduino driver (C++ template class) of which I am very proudIt uses an extremely fast algorithm to calculate clock delta words (can do 10k/second even on a 16MHz AVR Arduino). User beware: it's only been testedin vitroyet because I haven't fired up my board - but is compilable on Linux and OSX and passes all tests there. I'd be happy to hear from any happy users, see:https://github.com/cjheath/AD9959I will carefully check all the items the OP noted on my board before doing so (summarised here):IO3 and PDC both grounded?Clock amplitude < 1V (not 3v3)Check required load C for clock chipPin 24 CLK_MODE_SEL must be grounded to select the external clockCheck for DC blocking in the output path, not 1.55vDC1.91k DAC current setting R required for optimum 10mA -> best SFDRPLL loop filter in data sheet is just 680p with no resistor to add to the 820R internal R; might affect PLL locking

author: cjheath
author_rank: Contributor
timestamp: April 12, 2019, 08:00:15 am
content: One further thing: The original evaluation board uses four transformers (balun) to sink the balanced DAC outputs. Since this a current-steering DAC like all such DDSs, that means almost none of the signal gets into the ground or supply rails...The cheaper boards ground one side via a resistor, and the other side feeds the filter. Where the filter has an input impedance matching the resistor there is no problem. But this is not a diplexer that sinks the energy outside the pass band. So instead it modulates the (otherwise constant) shared DAC current, and the rejected RF appears on the supply inside the chip where you can't decouple it. This rejected RF intermodulates with theother channels, polluting their output.Some of these boards use a VHF op-amp to present a balanced load to the DAC before driving the filter, which stops the intermodulation inside the AD9959 chip. But you still have the issue that the filter is not sinking the rejected energy - but at least the problem is happening where you have a chance of decoupling it.Just some things to think about if you want to produce instrument-quality signals.

author: edavid
author_rank: Super Contributor
timestamp: April 12, 2019, 02:02:41 pm
content: Quote from: cjheath on April 12, 2019, 02:14:18 amHe was wrong about that one. The clock chip has no required load. It will work better with lower load.

author: AW
author_rank: Newbie
timestamp: April 15, 2019, 01:51:28 am
content: Great job documenting problems with this board, which I had already ordered and I'm waiting for. One question about the ref clock, there is an SMA on the board labelled MCLK. Do you know whether this connects to the ref clock input, or is it used for some other purpose.

author: rprr
author_rank: Newbie
timestamp: July 08, 2019, 04:00:22 am
content: Thanks for your OP. I too bought one of these boards but struggling to get it going with my Raspberry Pi.According to the datasheet (Page 20):QuoteSo that means that the connection to 1.8 V for CLK_MODE_SEL should be correct.But maybe I have already fried the chipHave ordered some fine clips to try and probe the on chip connections via a logic analyzer.

author: edigi
author_rank: Regular Contributor
timestamp: July 08, 2019, 10:10:49 am
content: Quote from: rprr on July 08, 2019, 04:00:22 amChecking my note related to power down controls in the other related thread may help:https://www.eevblog.com/forum/rf-microwave/ad9959-ebay-board-troubleshooting/25/

author: rprr
author_rank: Newbie
timestamp: July 09, 2019, 03:24:57 am
content: @edigi -- many thanks. I am looking through that thread.

author: SouthPark
author_rank: Contributor
timestamp: August 12, 2019, 07:57:11 am
content: Quote from: Bud on February 16, 2019, 09:46:27 pmGreat post Bud. I'm a little late. I made the possible mistake of getting the AD9954 module (ebay board) and the AD9959 ebay board.Details about using/working the AD9954 ebay board - appears to be absolute zero (out there on the net).At least there's some light in the tunnel thanks to your post on this AD9959 ebay board. It's still actually in transit right now. The AD9954 on the other hand, which I've had for a while is currently a light paper weight.Bud ...... you showed a photo of your AD9959 board with the ribbon connector. Have you got pics or details that can help me see where your ribbon wires are connected (on the AD9959 side of things)?Also, I plan to eventually follow down the same path that you took ...... but this is seriously following your steps, as if you didn't create this thread, I would have no path to follow at all.Could you also show what those few wires (hooked up to the yellow header) are connected to? I assume 1 wire is serial clock? Just 'assuming'I've never encountered one of these devices before, so just being able to learn where those wires are connected to (along the yellow header), and where your ribbon wires are connected (on the module side) would be a great start for me. I won't be bombing you or anybody with questions about this module though. You provided a bunch of followable information already.The effort you put into getting this 9959 board to go was more than phenomenal. Amazing work.Thanks Bud!

author: SouthPark
author_rank: Contributor
timestamp: October 04, 2019, 09:29:41 pm
content: Hi Bud. Once again, as previously mentioned - fantastic post and article.Based on your experience with this one --- is there a chance that any of those boards (purchased straight from say 'ebay') will actually work without modifications?

author: rprr
author_rank: Newbie
timestamp: October 06, 2019, 02:16:55 am
content: Quote from: SouthPark on October 04, 2019, 09:29:41 pmBased on instructions from @edigi in another thread (https://www.eevblog.com/forum/rf-microwave/ad9959-ebay-board-troubleshooting/25/), I was able to get one of my boards from aliexpress to work. No hardware mods needed.

author: ironcurtain
author_rank: Regular Contributor
timestamp: October 07, 2019, 12:55:17 pm
content: This is awesome :-)

author: Bud
author_rank: Super Contributor
timestamp: October 08, 2019, 01:00:22 am
content: Quote from: SouthPark on October 04, 2019, 09:29:41 pmThink about calling ADI or going to their support forum and saying "I want to purchase a board with your chip wired in a bizarre way. Will it work?"What do you think what kind of answer ADI will give you? I can't give you a better answer.And i do not know what the folks meant who said their boards "worked". Did they mean it "generated something"? They did not bother verifying the device performance against the specification.

author: SouthPark
author_rank: Contributor
timestamp: October 11, 2019, 03:40:14 am
content: Quote from: Bud on October 08, 2019, 01:00:22 amThanks Bud! I think that the meaning of 'worked' (for some of them, or some of us) could be considered as workable - as in at least functions - generates some dds waveforms - controllable --- rather than immediately a DOA or totally lost cause.I was certainly interested to know whether or not at least some, or the bulk of these modules were workable ..... eg. if order 5 of them, then 3 or 4 of them might have a chance of functioning - right off the bat, without modifications. Not necessarily elite grade performance.The work you did with it is excellent. Definitely very useful.At the moment, I'm still in the process of figuring out the programming/SPI communications and commands side of things from the AD9959 pdf document ---- and hopefully get all that understood -- just to see if any one of my three boards are alive. I figured that hopefully 3 boards improves chances to see 1 functioning.One thing that would be (or would have been) nice is knowing whether these modules have a default setting --- so that at least 1 channel (eg. channel 0, or 1 or 2 or 3) can just be generating a sinewave straight from start-up ..... by default. Then at least us newbies would be able to tell if it's alive or not.Right now, my understanding (even if it might be wrong) is that the four channels are enabled by default ----- but the frequency tuning words (for controlling the frequency) are all zero. So I'm assuming that we're not going to be seeing any sinewave by default because the frequency is 'zero' for start-up, right?Quote from: Bud on October 08, 2019, 01:00:22 amI don't think I would want to burden them with that particular question, as any issues with poor design in the ebay module is really end-user fault. I was initially having thoughts about purchasing their evaluation board module, which looks quite large, but has a nice chance of working properly right off the bat.

author: SouthPark
author_rank: Contributor
timestamp: October 11, 2019, 03:56:25 am
content: Quote from: rprr on October 06, 2019, 02:16:55 amThanks for that link rprr! There's some promise and hope yet (for my boards). That link was greatly appreciated!

author: Bud
author_rank: Super Contributor
timestamp: October 11, 2019, 05:00:04 pm
content: I got a lemon, the other person who posted before me got a dead dodo. Some other folks got theirs that "worked". So seems to be hit and miss.To test for signs of life without prior programming, check SYNC_CLK pin for fclk/4 as i said on Part 4. It has to output a signal upon power up and proper handling of the Reset line.

author: SouthPark
author_rank: Contributor
timestamp: October 12, 2019, 09:40:56 am
content: Quote from: Bud on October 11, 2019, 05:00:04 pmThe excellent and outstanding thing in your case is that you have the ability to fix that lemon. It's nasty too - about getting a lemon - as those modules can be around 50 dollars.Thanks for that nice recommendation Bud! I'll test that pin from your Part 4.Yesterday, before reading your recent post ---- I noticed some signs of life ...... I have the AD9599 ebay module hooked up to my micro-controller (just got it connected to the Arduino MEGA 2560). When both the MEGA 2560 and AD9959 are powered up ..... and when I temporarily remove 5V (DC jack) power to the AD9959 module (the green power LED on the AD9959 module switches off), and then re-apply the 5V (DC jack) power to the AD9599 module -------- I then get a 237 Hz sinewave appearing on Channel 0 port (sma connector port). This happens consistently. It doesn't happen on any of the other channels (eg. ch1, ch2, ch3 ..... nothing). At first, I thought I was getting somewhere - thinking I might have sent the module the correct SPI commands. But soon realised that no progress was really made.Because my MEGA 2560 is based on 0 and 5V levels, and because I was using only a 4-channel level shifter (bi-directional 5V to 3.3V logic level module), I was 1 channel short ----- so did something that's likely wrong ----- namely tied the 'CSB' to ground (which is permanently enabling chip select/slave select).I have now grabbed an extra 4-channe level shifting module ..... so I'll be able to control the 'CSB' pin in the proper way. And hopefully see some real life in the module. I'll remember to check out that sync_clk pin too! Thanks again Bud.

author: SouthPark
author_rank: Contributor
timestamp: October 14, 2019, 01:53:12 am
content: Hi Bud! The ebay AD9959 module that I was originally working with ----- turns out to be alive and 'working'. I was using an arduino MEGA 2560 to try to send bare minimum commands to it, like just get a sinewave up at some frequency --- any controllable frequency.I had used the wrong serial clocking scheme for transmitting the SPI data to the AD9959. On one page of the AD9959 document, it says data is read on the falling edge of the serial clock. While in another section, it says data is read on the rising edge. The 'rising edge' details is the correct one.So now, my original ebay AD9959 dds module is working. That's the same module as yours, with the yellow-coloured plastic header base. For testing this module, I sent an instruction to enable all four outputs in basic single-tone mode. Then sending FTW (frequency turning words) words associated with decimal values 1000000 and 500000 and 100000 resulted in sinewaves having their own frequency - nicely repeatable.But unfortunately, the second ebay AD9959 module I have here for testing ---- appears to be a lemon. It's not getting any output, even though the MCLK output and the Yclk pin are getting the same signal output as my first (working) board.Looks like I'm in the same situation as the other person in eevblog. They also mentioned they had 1 working one (out of two) and my assumption is that their second one isn't working.I still have another 2 of these ebay AD9959 modules in transit. It definitely appears to be a chance thing, which isn't fantastic. I believe one of mine is a lemon as well.

author: Bud
author_rank: Super Contributor
timestamp: October 14, 2019, 02:35:38 am
content: Consider modifying the working boards to match the device datasheet as i explained. It is not difficult.

author: SouthPark
author_rank: Contributor
timestamp: October 14, 2019, 06:02:49 am
content: Quote from: Bud on October 14, 2019, 02:35:38 amDefinitely will Bud. That's where I (and we, who purchased these ebay modules) must thank you in advance for teaching us ways to fix the issues with this particular ebay module.I'm definitely going to use that information you showed to try fix my second ebay board - the suspected lemon - as it has no output at all on channels 0 to 3, despite having an Mclk output, and also despite having a 6.25 MHz Yclk output too.And for the other 2 boards that are expected to arrive soon, I'll use the methods you showed to modify them - to get those to the right specs! Really appreciated.

author: Bud
author_rank: Super Contributor
timestamp: October 14, 2019, 01:33:55 pm
content: I'd say modify the last two boards right away before turning them on. This way you will have an assurance they will not get damaged because of the dodgy wiring.

author: SouthPark
author_rank: Contributor
timestamp: October 15, 2019, 05:20:50 am
content: Quote from: Bud on October 14, 2019, 01:33:55 pmI'll follow that recommendation Bud. The stats don't stack up in the favour of these boards --- given that you, me, and the other eevblog member got 1 lemon each.

author: ronbot
author_rank: Newbie
timestamp: June 21, 2020, 07:06:54 pm
content: Has anyone seen this version of the PC bd? It appears to have an 8-pin SOIC amplifier at each Output... possibly a balanced-to-unbalanced (differential to single-ended) converter stage.On the US eBay site:https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=261659420294&_sacat=0

author: Bud
author_rank: Super Contributor
timestamp: June 23, 2020, 02:19:26 pm
content: Link broken.

author: ronbot
author_rank: Newbie
timestamp: June 27, 2020, 06:03:57 pm
content: Link works in the USA eBay site. Search eBay for "AD9959 4 Channel 200MHz DDS Signal Generator 500MSPS" (from China) and find one with that image... with the 8-pin SOIC near each output connector.

author: mb.raghavendra@gmail.com
author_rank: Newbie
timestamp: January 05, 2022, 02:29:17 pm
content: There is different version of board and schematics been provided. hope this board is good ?https://files.banggood.com/2017/12/SKU810658-AD9959-V2.0.zip

author: Bud
author_rank: Super Contributor
timestamp: January 05, 2022, 03:21:49 pm
content: You can use information from this thread to check if the IC was connected correctly, if you buy this board. It is hard to tell from the photo. The Chinese often use copied designs having no clue how they are supposed to work.

author: Ultramarine
author_rank: Newbie
timestamp: June 03, 2023, 10:10:20 am
content: A great post.Really helps me a lot.I made a AD9959 board for electronics design contest and I met a problem that totally same with you.It works when I bent it.Then I used high temperture to solder it again(about 400℃),it worked.This chip was bought from taobao and it was only $17.I think it might be stored too long or it is a batch of defective chip so it was sold to China users. :'(