I bought a kit with AD8950 earlier that I consider using to create a programmable function/audio generator. AD8950 can generate waves to very decent frequencies and cost ca 10.- USD. AD8951 cost a bit more and it is straight forward to create a DDS/DAC based on these. But, I also need a driver stage where I can select output voltages in positive and negative values. The later is more important than high frequencies, but I could have 2 output’s – one 3.3V signal and one +/- with a programmable voltage selection.
The base concept is similar to creating a DC/DC PSU, but with the exception that I use AD8950/AD8951 to create the “PWM” signal. Also, since the signal is an actual waveform we need to use linear transistors like a high frequency audio amplifier. It would be nice with 1A out, but 100mA is also ok.
The more difficult stage is to be able to program the +/- output levels. One way of doing this would be to use 2 DC/DC converters in series. The first to set +/- DC levels for a Waveform amplifier. But, I will need to do some research here.
This would however be an awesome Hat and I also wonder if I could put the 2 x I2S and/or DAC channels on STM32F405 to use to generate waveforms rather than using AD8950/AD8951. I would not be able to reach the same frequencies, but I am pretty sure I still can reach decent output frequencies and we could play audio files/channels as well.
Using DAC/I2S I can probably generate waveforms up to 200Khz. Using AD8950/AD8951 I can reach 20Mhz at least.
At this stage I want to let the ideas mature a bit while I do research and talk to friends more skilled in analogue electronics than I am.