El circuito integrado AD9850 es un generador de onda DDS el cual provee una señal senoidal de 1Vpp de frecuencia y fase programable mediante protocolo serie o paralelo y una cuadrada derivada de la comparacion de la senoidal y una señal de referencia, que en el caso del modulo que se va a tratar es una señal continua que proviene de un divisor de tension.
Se puede comprar o pedir como sample, pero dada la necesidad de un cristal de precision y que su encapsulado es ssop resulta mas rentable y eficiente comprarlo en un modulo en ebay por unos 5€.

http://www.ebay.com/itm/New-AD9850-DDS-Signal-Generator-Module-0-40MHz-Test-Equipment-/170783661135?pt=BI_Signal_Sources&hash=item27c37fdc4f ).


El modulo consta de un cristal activo, el chip AD9850, los componentes pasivos (smd) necesarios y un potenciometro que ajusta el duty cicle de la señal cuadrada (PWM).
Los pines de conexion del modulo son:
-Alimentacion: Vcc, GND (alimentacion simple, por tanto la señal de salida tiene offset).
-Comunicacion: Clk, FQ, RST, data [serie], y data (D0, D1, D2, D3, D4, D5, D6, D7) [paralelo] .
-Salida de señal: sinA, sinB(sinB=1/sinA), QP, QN(QN=1/QP).

Para la utilizacion de este componente existen algunas opciones en arduino, pero yo prefiero PIC, y su compilador CCS, y para estos no existian librerias.
Para usarlo he modificado la libreria arduino, y he añadido una funcion de sweep y apagado (no son eficientes puesto que en un uso final la tarea de sweep tiene que ser programada con interrupciones o RTOS, no mediante un bucle, porque en este caso el microcontrolador no puede realizar otras tareas.

La libreria c, compatible con CCS es la siguiente:
Libreria
Adjunto también todos los archivos del programa de prueba , el cual usa un PIC 16f877A

Proximamente realizare algunos proyectos con este integrado, entre ellos un completo generador de funciones, y entre sus caracteristicas podria estar tener dos canales de fase independiente (como en este proyecto http://seti.harvard.edu/synth/index.html ). Esto se podria lograr con otros integrados, como el AD9854, que tiene 2 canales, o el AD9959, que tiene 4, pero su relacion calidad-precio no es equiparable, superando ampliamente los 10€ la unidad y en el caso del AD9959 los 50€.
Es preferible por tanto la utilizacion de mas modulos en paralelo, siendo además independientes y el fallo de un modulo no altera a los demas.

Informacion de national semiconductor: http://www.analog.com/en/rfif-components/direct-digital-synthesis-dds/ad9850/products/product.html
datasheet: http://www.analog.com/static/imported-files/data_sheets/AD9850.pdf

Albun web:

AD9850



ad9850 info:
http://elecfreaks.com/store/download/datasheet/breakout/DDS/DDS-ADI.pdf
http://www.elecfreaks.com/wiki/index.php?title=DDS_Module_-_AD9850#Programming
http://www.ccsinfo.com/forum/viewtopic.php?t=47110
http://designtools.analog.com/dt/dds/ad9850.html
http://designtools.analog.com/dtDDSWeb/dtDDSMain.aspx
http://www.analog.com/en/rfif-components/direct-digital-synthesis-dds/ad9850/products/tools-software-simulation-models/index.html
http://www.qsl.net/pa3ckr/signalgenerator/
http://www.electronics-lab.com/blog/?tag=ad9850

http://www.ccsinfo.com/forum/viewtopic.php?p=163195#163195

DDS info:
http://www.msp430launchpad.com/2011/06/simple-launchpad-dac.html
http://www.eeweb.com/design-articles/create-a-function-generator-using-a-dac
http://en.wikipedia.org/wiki/Direct_digital_synthesizer
http://www.cygnal.org/ubb/Forum2/HTML/000654.html
http://www.analog.com/en/rfif-components/direct-digital-synthesis-dds/products/index.html
http://www.analog.com/en/rfif-components/direct-digital-synthesis-dds/ad9850/products/dt-design-calculators/DDS_Configuration_Assistant/resources/fca.html

arduino AD9850 project:
http://arduino.cc/forum/index.php?topic=77483.0
http://alhin.de/arduino/index.php?n=7
http://www.hereticalbuilders.com/showthread.php?t=615</