I started trying to build an arbitrary generator but quickly found that the frequencies that I could generate was very limited by the update rate I could achieve for the DAC. 100KHz in your case . My range is limited to 1Hz to 1Mhz because I only used a 32MHz clock for the AD9834. A DAC with a SPI interface would be even more limiting.
You cannot generate an arbitrary function with AD9834 at 32Msps as that would require 32MHz*8bit = 256Mbaud SPI! This chip can go that fast only by using internal memory (sine, square and triangle IIRC, + kind of sweep) so no arbitrary.
Arbitrary function generator has to be able to generate absolutely any programmable shape one can imagine. With that AD you are limited to the SPI speed (<3 MB/s for a PIC18F2550 at ~100% cpu load) so in theory you could reach 3Msps and 8-bit resolution max (IMHO).
Any chance you can share your design mate? Did you use external RAM to buffer the waveform or just generate it real-time? I might do something similar with an arduino although with that I'd need an external DAC.
Sure. I'll try to include whole Eclipse project into a zip and attach here later (end of the week).
I am not sure how you are going to port that to arduino as it relies solely on the hardware available. I just fill registers (DAC, two TIMs, DMA and GPIO) with config data and press "start", CPU load is exactly 0%. This uC has similar peripherals to popular STM32F103R
C if you necessarily need to port that to something else.
I did not have to use any external memory because STM32L152RB has 128kiB of internal flash. Even sampling 2Msps there is enough storage for 128k points (1 x 8bit) or 32k points (2 x 12bit) if you need that much. And there is still 16kiB room in SRAM for an application, if one ever needed such.