TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: MLO__ en 06 de Mayo de 2008, 14:26:59

Título: DDS AD9833
Publicado por: MLO__ en 06 de Mayo de 2008, 14:26:59
Hola amigos del foro.

Me encontre con un generador de senales digital y estoy algo enredado, asi que recurro a la ayuda de uds.

El generador en cuestion es el AD9833 de Analog Devices, dice que tiene una interfaz SPI, asi que me imagino que se puede configurar con un microcontrolador, lei ademas que necesita un master clock y que se usa unos cristales raros (GXO 50MHz?????).

Si de pronto alguno de los muchachos del foro ya ha trabajado con este bichito, que me ayude un poco con un ejemplo de programacion (son 28bits a enviar y el spi manda de a 8bits), y algunas consideraciones en hard a tener en cuenta. Se podra conectar el master clock al clkout del micro directamente?????

Anexo un pdf que encontre.

De antemano, muchas gracias.
Título: Re: DDS AD9833
Publicado por: Nocturno en 07 de Mayo de 2008, 05:56:01
Supongo que será parecido a otros DDS de Analog. En este hilo estuvimos hablando de ello:
http://www.todopic.com.ar/foros/index.php?topic=2328.0
Título: Re: DDS AD9833
Publicado por: PalitroqueZ en 07 de Mayo de 2008, 13:40:38
...lei ademas que necesita un master clock y que se usa unos cristales raros (GXO 50MHz?????).

...

Son modulos osciladores, son unas cajitas metalicas que llegan a tener 3 pines utiles (Vout, Vcc y gnd). Se usan porque son muuy estables y te sacan la onda muy limpia

aparte te sugiero que leas unas 20 veces la datasheet, el circuito recomendable es el que dan ellos.

Título: Re: DDS AD9833
Publicado por: MLO__ en 07 de Mayo de 2008, 18:53:15
Hola.

Ok!!!  :-/ ya di con los osciladores (ya envie por ellos). Respecto al U2 (74HCT244, buffer) lo puedo obviar cierto??

Ya me estoy "moliendo" el datasheet para ver si lo pongo a funcionar.

Saludos.
Título: Re: DDS AD9833
Publicado por: PalitroqueZ en 09 de Mayo de 2008, 15:24:41
El uso (por suposición) del buffer lo hacen para hacer aproximar la señal que sale del pic a una onda cuadrada.

como lo vas a montar, pruebalo sin el buffer a ver si te funciona.



Título: Re: DDS AD9833
Publicado por: MLO__ en 29 de Agosto de 2008, 11:43:22
Hola.

Pues habia estado en StandBy un tiempo este proyecto, pero ya llegaron las cosas y he comenzado a realizarlo. La primera parte es verificar el VCO el cual lo pedi a 25MHz y corre de lujo  :-/

(http://img364.imageshack.us/img364/2990/out25mhzgh0.png)

Como aca en la empresa no trabajan el SMD (y lo poco que trabajan es por obligacion  :x) hubo que hacer un "arreglo" para poder montar el oscilador, el AD9833 y los demas componentes.

(http://img364.imageshack.us/img364/659/ad9833adpzd2.png)

Como se puede ver, es una "mezcla" entre SMD y TH para dejar todo TH  :lol:

Las tarjetas llegan en la otra semana para comenzar a hacer las pruebas de programacion del AD9833. Estare posteando los avances.

Saludos
Título: Re: DDS AD9833
Publicado por: PalitroqueZ en 01 de Septiembre de 2008, 13:29:23
Hola MLO__

umm esa señal debería ser "mejor". El que yo usé era de 24MHz y la THD (http://es.wikipedia.org/wiki/Distorsi%C3%B3n_arm%C3%B3nica) no era tan notoría.

Te comento que yo he probado ese DDS, y funciona, con la salvedad de que al aproximarse a su limite, la señal se va deteriorando. Asi que si lo vas a usar con fines de aprendizaje, te caerá bien. Pero si lo que buscas es una buena onda en toda su banda, no te servirá.  :(


Título: Re: DDS AD9833
Publicado por: MLO__ en 01 de Septiembre de 2008, 17:49:17
Hola.

Esa es la senal del VCO .... y es de 25MHz y pasa que el osciloscopio que tengo tiene un maximo de 25MHz para el BW, me imagino que es eso, ademas .. lo estoy conectando directo con unos "cablecitos"  :lol: y sobre una protoboard, ya cuando lleguen las tarjetas de la adaptacion espero que la onda mejore. Tomo en cuenta tu experiencia amigo, muchas gracias.

Al DDS le voy a sacar maximo 12MHz, casi la mitad del MCLK, es lo que recomienda el datasheet, creo que responderia bien no?

Saludos
Título: Re: DDS AD9833
Publicado por: PalitroqueZ en 02 de Septiembre de 2008, 11:49:25
Hola.

Esa es la senal del VCO .... y es de 25MHz y pasa que el osciloscopio que tengo tiene un maximo de 25MHz para el BW, me imagino que es eso, ademas .. lo estoy conectando directo con unos "cablecitos"  :lol: y sobre una protoboard, ya cuando lleguen las tarjetas de la adaptacion espero que la onda mejore. Tomo en cuenta tu experiencia amigo, muchas gracias.
...

lo del protoboard, no te preocupes, obtuve los mismos resultados tanto en protoboard como en PCB, se me olvidaba decirte que usé un XCO como reloj maestro, y en protoboard tenía la estabilidad requerida.

Citar
...Al DDS le voy a sacar maximo 12MHz, casi la mitad del MCLK, es lo que recomienda el datasheet, creo que responderia bien no?...

bueno no me atrevo a sugerirte nada, en mi caso me fué mal, ya a los 10MHz la señal era mas que un ruido que otra cosa. Te toca montarlo y probarlo tu para verificar lo que afirman la gente de Analog en el datasheet.

pd: ojo no estoy siendo pesimista, me gustaría que hiciera los ensayos y nos comentes tus resultados, para aclarar dudas.




Título: Re: DDS AD9833
Publicado por: MLO__ en 15 de Septiembre de 2008, 19:33:05
Hola.

Pues ya he conseguido hacer funcionar el AD9833. El programita lo unico que hace es capturar por teclado la frecuencia y la programa en el DDS  :lol:. Lastimosamente no se comporta como yo esperaba, hay que elegir muy bien el DDS segun el rango de frecuencia a programar, ya que para altas frecuencias aparecen armonicos y ruidos (tenias mucha razon PalitroqueZ). No he montado la parte del filtro, lo conecte directamente al osciloscopio.

Otra cosa que no sabia era que si la senal de salida es cuadrada si saca TTL, pero si es senoidal o triangular, saca senales  de amplitud menor de 1voltio (o hice algo mal depronto?).

Lo que si esta de lujo es que es muy preciso. Aqui le programe una salida de 1239Hz
(http://img139.imageshack.us/img139/5813/1239hzcqz3.png)

Aqui una de 1232 triangularHz
(http://img139.imageshack.us/img139/7849/1232hztxi3.png)

Aqui una de 1kHz senoidal
(http://img139.imageshack.us/img139/5330/1000hzuv3.png)

Y aqui una de 1MHz senoidal (ya comienzan los dolores de cabeza  :D )
(http://img139.imageshack.us/img139/7067/1mhzej8.png)

Aqui esta una FTT de una senal a 1239Hz
(http://img139.imageshack.us/img139/9229/1239fttoh2.png)

Menos mal solo tenia que cubrir el rango de 1Hz a 1MHz. Creo que si se quiere abarcar un rango mas amplio hay que hacerse a uno de los otros DDS de muuucho mas BW.

Saludos amigos
Título: Re: DDS AD9833
Publicado por: Nocturno en 16 de Septiembre de 2008, 02:59:41
MLO, disculpa el OffTopic, pero ¿con qué osciloscopio has hecho esas capturas?
Título: Re: DDS AD9833
Publicado por: MLO__ en 16 de Septiembre de 2008, 11:06:18
Hola.

Las he hecho con un BK Precision 2530.

Saludos
Título: Re: DDS AD9833
Publicado por: PalitroqueZ en 16 de Septiembre de 2008, 13:38:12
Me alegra que lo hayas hecho funcionar  :-/ :-/ :-/

.... Lastimosamente no se comporta como yo esperaba, hay que elegir muy bien el DDS segun el rango de frecuencia a programar, ya que para altas frecuencias aparecen armonicos y ruidos (tenias mucha razon PalitroqueZ). No he montado la parte del filtro, lo conecte directamente al osciloscopio.
...

Entonces ya somos 3 a los que le ha pasado lo mismo. Me extraña de Analog porque tienen chips que parecen que hacen milagros. Habrá que preguntarles a ellos

Otra cosa que no sabia era que si la senal de salida es cuadrada si saca TTL, pero si es senoidal o triangular, saca senales  de amplitud menor de 1voltio (o hice algo mal depronto?).

si es cierto, ronda por los 600mV

Por cierto tienes hasta analizador de espectros, ¡¡que fino!!  :mrgreen:

pd: escribí rapidito antes que me salga el unavailabe el co...o ese  :x


Título: Re: DDS AD9833
Publicado por: MLO__ en 16 de Septiembre de 2008, 15:10:30
Hola.

 :-/ :-/ Gracias palitroqueZ.

Despejada la duda de la amplitud de la senal triangular y sinusoidal. Voy a revisar mas a fondo el esquematico, he encontrado otro en el cual le montan tambien unas bobinas y otras "cosillas", ademas de buscarme un VCO de mejor calidad y que tenga menor THD tal como me lo recomendaste.

El osciloscopio tiene esa utilidad de la FFT  8) la cual da mas animo ver que una onda llena de transcientes y ruido!!!  :D , pero fuera de todo, me sorprendio la presicion y exactitud del DDS.

Saludos
Título: Re: DDS AD9833
Publicado por: xocas en 16 de Septiembre de 2008, 15:33:39
hola

hace algún tiempo leí alguna que otra cosa sobre dds y tenía la intención de llevar a cabo unas pruebas como las que tu estás haciendo pero se quedó todo en una intención... te cuento algo de lo que recuerdo.

tal como te apunta Palitroquez y se indica en su datasheet, la salida es de 600mv que se verá aún más reducida tras el filtro de manera que necesitas un amplificador.

si no me engaño mucho -y creo que no- todos los dds necesitan un filtro a su salida para conformar la onda y tratar de eliminar en lo posible los harmonicos indeseados, al menos todos los circuitos que he visto usaban uno.

en la web de analog tienes una herramienta que te ayudará a entender esto un poco mejor: http://designtools.analog.com/dtDDSWeb/dtDDSMain.aspx seleccionas dds, clock y frecuencia de salida para ver su respuesta con la posibilidad de usar o no un filtro y una ventana de mensajes con alguna que otra indicación. de hecho creo que la señal de 1mhz que se ve en osciloscopio se debe a la carencia del filtro...

un saludo
Título: Re: DDS AD9833
Publicado por: xocas en 16 de Septiembre de 2008, 15:37:44
por cierto que también si mi memoria no me traiciona la frecuencia máxima de salida no es la mitad del clock si no que anda más bien por un 40-45% o lo que es lo mismo unos 10mhz para un clock de 25mhz.

saludos
Título: Re: DDS AD9833
Publicado por: PalitroqueZ en 17 de Septiembre de 2008, 12:25:36
por cierto que también si mi memoria no me traiciona la frecuencia máxima de salida no es la mitad del clock si no que anda más bien por un 40-45% o lo que es lo mismo unos 10mhz para un clock de 25mhz.

saludos

exacto, y ese porcentaje también debería aplicarse para otros semiconductores.


Título: Re: DDS AD9833
Publicado por: da17 en 17 de Septiembre de 2008, 13:11:55
hola!!!!!  :) :)

depues de haber utilizado el oscilador digital digital ltc6903, ya mande a traer el ad9833 y me surgen algunas dudas, las cuales comento a continuacion:
Título: Re: DDS AD9833
Publicado por: MLO__ en 17 de Septiembre de 2008, 13:53:22
Hola Daniel.

El parametro que hay que tener en cuenta para la transmicion es el IDLE del SCK. En el datasheet esta especificado todo el protocolo a seguir para llevar a cabo la transmicion.

(http://img92.imageshack.us/img92/756/ad9833iw5.png)

Creo que la primera parte esta bien Daniel, ya que en el proteus envia la trama correspondiente al reset y demas valores. Asi que me parece que no le estas asignando el IDLE adecuado y por eso el AD9833 no te reconoce la trama tal como tu la quieres. Mira en las opciones de configuracion del SPI monitor en el proteus que hay una opcion para configurar esa opcion.

(http://img92.imageshack.us/img92/6314/spidebuggeres0.png)

El IDLE del SCK debe ser HI mientras el FSYNC pasa a LOW. Debes configurar esa parte en el setup del SPI, recuerda tambien que la comunicacion se inicia cuando FSYNC es LOW y la lectura de los datos se hace con el FALL EDGE.

Con respecto a la configuracion de la forma de onda, la puedes hacer cuando tu quieras, la parte importante es resetear siempre al inicio del programa del pic al AD9833 (por recomendacion del fabricante), de ahi no hay problema en la asignacion de frecuencia o fase o forma de onda (mira los diagramas de flujo del datasheet).

En mi caso, lo que hago despues de resetear el AD (despues del RESET le coloco a 0 el bit correspondiente) es enviar el registro de fase, y apago el AD mientras recibo por teclado la frecuencia, luego de recibido el valor de la frecuencia calculo el valor del registro de fase, le asigno la direccion y lo envio (yo tambien trabajo a 28 bits), y despues de confirmada la frecuencia enciendo el AD y listo.

Ok? viejo Daniel? espero te sirva.

Saludos

Título: Re: DDS AD9833
Publicado por: MLO__ en 17 de Septiembre de 2008, 23:26:21
Hola.

Pues ya analizados los resultados, estoy ahora en la tarea de montar en una sola tarjeta todo el sistema, asi que voy a usar el 18F458 ( es el que venden por aca en encapsulado TQFP44 ). La idea es tener ese sistema generador de frecuencia y aprobechar que hay puertos disponibles para otras cosas.

Lo que en realidad buscan aca en la empresa es dejar el modulo generador de frecuencias, asi que lo de los conectores de los puertos lo puse para aprobechar los otros puertos del PIC para futuros usos.

Aqui la parte BOT de la board.
(http://img98.imageshack.us/img98/5163/adbotbo3.png)

y aqui la parte TOP de la misma.
(http://img98.imageshack.us/img98/1108/adtopxd1.png)

Como ven hay unas cosas en SMD y otras en TH, no he podido encontrar todas las cosas que necesito en SMD asi que si hay alguien por aqui en Colombia que distribuya componentes en SMD contacteme por favor.

Saludos



Título: Re: DDS AD9833
Publicado por: PalitroqueZ en 18 de Septiembre de 2008, 14:11:35
lo que te falta probar es con el software que ofrece Analog en su web.

ftp://ftp.analog.com/pub/www/techSupport/designTools/evaluationBoards/downloads/ad9833.zip


con él, puedes hacer un barrido en cualquier rango de frecuencia. Se ve espectacular.

Título: Re: DDS AD9833
Publicado por: da17 en 18 de Septiembre de 2008, 17:16:22
buen dia a todos!!!!!!

muchas gracias MLO por la explicacion!!!ahora todo es mas claro,  el programa ya lo cambie para que El IDLE del SCK este en alto mientras  FSYNC pasa al estado bajo, ahora solo queda probar!!!!

el software que ofrece anolog lo baje!!!  se ve muy interesante, solo que el puerto al que accede es el paralelo,!!!!y este pc no lo tiene,de todas maneras muchas gracias por toda la informacion brindada
_____________________________________
da17
Título: Re: DDS AD9833
Publicado por: MLO__ en 18 de Septiembre de 2008, 21:16:01
Hola.

Creo que es suficiente con quitar la parte SPI_XMIT_L_TO_H de la funcion setup_spi().

Saludos
Título: Re: DDS AD9833
Publicado por: Medusa en 23 de Junio de 2009, 11:21:54
Hola Mlo_,  :-/  :-/ esta muy interesante tu aplicacion del AD9833, dime seria posible que pudieras comparti tu codigo con el foro, o es una aplicacion comercial?.
Título: Re: DDS AD9833
Publicado por: MLO__ en 23 de Junio de 2009, 14:23:45
Hola.

Lastimosamente es una aplicacion comercial. Pero el protocolo es por SPI.

Saludos