--- WARNING ---
While I have built and tested many features of this design it is after all a prototype in the true sense of the word. The SMP and digital 3V3 supplies are not enough, I messed up the Ethernet interface and several other issues exist in the linked documents below. Please do not use these as reference designs. You have been warned.
--- On with the show ---
Hi All,
I decided a year back to make my own AWG based on the AD9102. The main aim was to explore a few things that I had not had much exposure to in my professional career such as differential clocking and signaling.
So what is it? A 2 channel arbitrary wave form generator with 10Hz steps from DC to 50MHz. I really wanted to go down to DC for some digital rf immunity tests I want to do later (even though buying a commercial ARB would have taken less time and money). It has two inputs. The first is for an external 10MHz reference source that can be used to drive the DAC's or to calibrate the on board VCXO or optional (read more expensive) OCXO. The second input is dedicated to frequency counting. Positive and Negative rails of switching power supply are trim-able via digital pots as is the XO.
My original rant regarding assembly of the board is here.
https://www.eevblog.com/forum/projects/brain-mud/msg1213672/Now that I have gotten past a few hurdles in this design I thought I would share schematics and some thoughts on the project. I'll drip feed stuff on this thread as I make more progress, and am happy to answer questions or take feedback.
When starting out I thought "hey! why is so little information available on the web for this chip? Surely many other DIY'ers have beaten this thing to death already" The best I can make out it's 4 years old at least.
Well the best I can figure is the documentation is appalling with numerous errors and contradictions. I think it is best summed up with this poor engineers experience.
https://ez.analog.com/thread/35554Another reason may be the limited SRAM size of 4096 samples or the differential signaling?
The best I can tell the datasheet has still not been updated. So I might have been put off unless I was ignorant of that information before I had already committed to doing the design, and here I am and happy to say it's been worthwhile.
The AD9102 is the single channel version of the four channel AD9106. It has a 14bit resolution with a max clock of 180MHz giving the best case 90MHz square wave output. My design aims for the weird and hard to accurately achieve 167776160 Hz to give the 10Hz steps. However as the PLL on board can be reconfigured by the MCU you can set it up for anything you like. In fact when I first got it running the PLL was at 20MHz and generating a good looking sine wave with no problem.
The chip has a few interesting things going for it. First it has a dedicated sine waves generator, a dedicated triangle wave generator, sudo random noise generator (who cares), constant DC output set to the 14 bit resolution (again who cares), 4096x14bit SRAM for DDS. The cool stuff happens with the mux section where the sine wave can be amplitude modulated with SRAM patterns or Frequency modulated.
My design runs on the ATSAM4E16 Cortex M4 has RS232, Ethernet and USB (borrowed with thanks from the Atmel reference designs) and is running FreeRTOS.
The current status of the project is as follows.
1) Board powers up and does not catch on fire - check
2) PLL locks to desired frequency - check.
3) Clock distribution good - check
4) SPI can talk to all chips - check
5) AD9102 outputs sine wave up to 50MHz - check but it's suffering due to low number of samples at that frequency.
6) AD9102 outputs SRAM AWF - check.
Each output is amplified (x15) with a single THS3091 current feedback opamp converting the differential signal to single ended. Probably overkill but I was swooned by it's slew of 7300 V/us.
When I first powered the device I realized my switching supply, that provides the +- 15 rails for the opamps, was more like +-18 (well outside my digipots ability to fix) so I substituted some resistors giving me about +-10Volts for reference going forward.
Some basic tests with the DDS on the AD9102 give me <4ns full scale rise time. For this test the output is 50 Ohm an to a 50 Ohm load at the scope over 50 Ohm coax.. did I say 50 Ohm? The peek to peek voltage of all wave forms is 5.68V and remains flat from 100KHz up to 50MHz so I'm quite pleased with that (about 25dBm constant over the range. I'll improve on that once I nail down the SMP supply voltages.
What is notable from my design is the distinct lack of a user interface. Currently that it being performed by the serial port, I might look at touch screen this and that in the future but it's not the primary focus at this stage. I just want to get a good DAC.
As the only tool I have available is a 100MHz DSO I'm not able to provide any harmonics around the output signal quality and I already know they are not so hot because I have a noisy negative rail that I'm hoping to fix by replacing the suspected damaged components this weekend.. and if that does not fix it I'll be desperately posting for help here
Here is my list of things to do for the second spin of the board and things I'm not sure about.
The MASW-007107 RF Switch is a lot cheaper. I put it on the board
and then noticed insertion loss goes sky high below 2GHz. So I
got scared and just went back to the HMC544A that has a flat loss
to DC. Having said that we really do need exceptional performance at
10MHz???
Do we really need the MCU clock syncronised with the ADCs?
If not then perhaps remove the AD9514 in place of the two
outputs of the LMX2582. The LMX alone has a far better jitter
performance at 47fs RMS @ 1.8GHz. The AD9514 states 225fs jitter.
So I'm probably just making things worse by using it.
Use BGA parts for the CPDL and ATSAM4E to save HEAPS of PCB space.
Actually calculate and have a buffer for power budget. 3.3 Digital is
already exceeding it's 500mA limit and still working.. Amazing.
Put a low pass filter on the DAC outputs.. the wave form will have step noise without it.
Seeing as we have so much spare space and pins on the CPDL perhaps we could replace all the glue logic on the board with that as it's all currently
co-located in or around the same area anyway.
Should have put this first but just to torture those who can not read a full post
The schematics are not 100% tested and probably do contain lots of bugs that I have not yet tested. I've plastered a large and hard to ignore note to that effect on the first page of the schematic.
Thanks, that's all for now.