Rutinas de control DDS AD9850/51 con PIC

Hola,

Subo unas rutinas para los que queráis experimentar con PIC y DDS compatibles con el AD9850 y AD9851.

También he adjuntado unas fotos de la placa que he echo para probar el DDS.

Se agradece comentarios y aportaciones sobre el código.

Un saludo
 

Adjuntos

  • rutinasDDS_PIC.rar
    81.9 KB · Visitas: 125
  • DDSejemplo.rar
    4.8 KB · Visitas: 127
  • 12112010063.jpg
    12112010063.jpg
    67.3 KB · Visitas: 68
  • 12112010064.jpg
    12112010064.jpg
    52.1 KB · Visitas: 57
Estimados amigos del Foro, buen día. Por casualidad alguien ya construyó este circuito?
Estoy construyendo este DDS y luego de terminar de armarlo y ponerlo en marcha, solo me aparecen una fila de cuadrados en el display. Ya he revisado mil veces la plaqueta y todo bien, grabé tres veces (con dos versiones diferentes del programa) dos pic´s diferentes (16F628A) con el ICprog (programa con el que ya he grabado varios pic´s con éxito y que funcionan) y me dio OK la verificación del grabado, el módulo AD9850 es Okm, los voltajes están en el rango requerido, pero el DDS no quiere arrancar.
Les molesto por si alguien lo armó y le funcionó. Tengo entendido que muchos colegas lo han armado con éxito, pero yo a la verdad no doy con el problema. Quizás el problema esté en el programa que le cargo al microcontrolador y tengo serias dudas de que el programa que le estoy cargando esté ok (he tenido algunos problemas al descargarlo de la página del colega). Por casualidad algún colega del Foro lo armó y le funcionó OK que tenga la gentileza de facilitarme el programa que grabó y así poder descartar este problema?
Mi verdadero miedo es que ese módulo chino haya llegado ya QRJ a mis manos (lo compré por Internet y se supone que es OKm), pero si no estoy seguro que el PIC está bien grabado, no puedo evaluar el funcionamiento del módulo.
Desde ya, muchas gracias y perdón por las molestias.
Abrazo.

C.B.
 

Adjuntos

  • Esquematico.png
    Esquematico.png
    134.1 KB · Visitas: 32
....
Mi verdadero miedo es que ese módulo chino haya llegado ya QRJ a mis manos (lo compré por Internet y se supone que es OKm), pero si no estoy seguro que el PIC está bien grabado, no puedo evaluar el funcionamiento del módulo.

Para este tipo de cosas es conveniente tener a mano un Arduino Uno (propio o prestado) , no para migrar a Arduino sino porque a la hora de ensayar un módulo es muchísimo mas probable encontrar ejemplos para Arduino Uno que para el micro que estés usando.

Verificado su funcionamiento, podés analizar las librerías y corregir las tuyas o adaptarlas a tu necesidad.
 
Hola Ricbevi, muchas gracias por tu rápida respuesta y por haberte molestado en simularlo. Sí, eso anda y anda muy bien porque sé que muchos colegas LU lo han armado sin drama!!! Estoy seguro que el tema de la PCB y el resto de los componentes está OK (tampoco es tan complicado el circuito, ¿no?), pero mi duda viene si es que descargué correctamente el archivo. hex . No tengo idea si esto tiene algo que ver, pero la PC donde descargo el archivo hex es mucho más moderna(tiene instalado el Windows 10) que en la que yo lo grabo (que tiene el XP y es viejita). No manejo el Winpic800 ya que estoy más familiarizado con el ICprog y el JDM que armé y que siempre me funcionó con el 16f628 sin drama. Por eso mi miedo es que no grabe bien porque está mal descargado el archivo, y si esto no es el problema, el drama estaría en el 9850 y ahí......a jorobarse y tomar quina!!!!
Veremos. Una vez más, muchas gracias y voy a revisar por e a la N vez el circuito por si se me pasó por alto algo.
Abrazo a todos los foreros.

C.B.
Hola Eduardo, muchas gracias por tu sugerencia. Sí es muy cierto lo que comentás y he visto muchos proyectitos con Arduino Uno y Nano, pero siendo fiel a la verdad, no he ingresado aún al mundo de Arduino porque no lo empleo (quizás por desconocimiento) en los humildes proyectitos que hago. Ya ves, algo tan aparentemente sencillito (porque el corazón del circuito ya viene armado de fábrica), se me complica y no tengo herramientas y/o conocimiento(me inclino más por esta última) para solucionarlo, pero en fin, esa es la tecnología que se viene y hay que de a poco ir poniéndose al día con ella.
Muchas gracias por todo.

C.B.
 
Última edición:
Hola Ricbevi, muchas gracias por tu rápida respuesta y por haberte molestado en simularlo. Sí, eso anda y anda muy bien porque sé que muchos colegas LU lo han armado sin drama!!! Estoy seguro que el tema de la PCB y el resto de los componentes está OK (tampoco es tan complicado el circuito, ¿no?), pero mi duda viene si es que descargué correctamente el archivo. hex . No tengo idea si esto tiene algo que ver, pero la PC donde descargo el archivo hex es mucho más moderna(tiene instalado el Windows 10) que en la que yo lo grabo (que tiene el XP y es viejita). No manejo el Winpic800 ya que estoy más familiarizado con el ICprog y el JDM que armé y que siempre me funcionó con el 16f628 sin drama. Por eso mi miedo es que no grabe bien porque está mal descargado el archivo, y si esto no es el problema, el drama estaría en el 9850 y ahí......a jorobarse y tomar quina!!!!
Veremos. Una vez más, muchas gracias y voy a revisar por e a la N vez el circuito por si se me pasó por alto algo.
Abrazo a todos los foreros.

C.B.
Hola Eduardo, muchas gracias por tu sugerencia. Sí es muy cierto lo que comentás y he visto muchos proyectitos con Arduino Uno y Nano, pero siendo fiel a la verdad, no he ingresado aún al mundo de Arduino porque no lo empleo (quizás por desconocimiento) en los humildes proyectitos que hago. Ya ves, algo tan aparentemente sencillito (porque el corazón del circuito ya viene armado de fábrica), se me complica y no tengo herramientas y/o conocimiento(me inclino más por esta última) para solucionarlo, pero en fin, esa es la tecnología que se viene y hay que de a poco ir poniéndose al día con ella.
Muchas gracias por todo.

C.B.
Olvídate del 9850...si tuviera que adivinar le estas errando en las conexiones del LCD.

Conecta solo la placa con el 628 y el LCD, el resto no es importante en este momento.

Si el PIC esta programado, debería arrancar con las leyendas que te mostré.

No debería haber problemas con el programador o el sistema operativo.

Yo uso desde hace años el PICKit2...un clon autoconstruido(off course :) )

Algo que vi y no es usual es colocarle una resistencia de valor fijo solamente al bias del LCD...hay muchos fabricantes y no todos "caen" en un valor estándar para una visión agradable(siempre use un preset)
 
Algo que vi y no es usual es colocarle una resistencia de valor fijo solamente al bias del LCD...hay muchos fabricantes y no todos "caen" en un valor estándar para una visión agradable(siempre use un preset)
Yo también usaba un preset hasta que encontré uno que ponía un diodo 1N4007 en serie con una resistencia y de ahí tomaba los 0.6 o 0.7V como control de contraste del LCD...y queda perfecto y sin ajustes!!
 
Me han tocado LCD bastante "perros" que el ajuste debe ser "fino" porque si te pasas o no ves casi nada o se saturan y ves el fondo....por eso opte por el preset en el mismo LCD soldado a "caballito".

Acabo de probar en físico en un proto-board (sin el DDS porque de ese modelo no tengo) y funciona.

dd1.jpg

DD2.jpg

Medí este y me da 0.83V el punto medio del preset.

Probé por arriba con una R de 10K y el 1N4007 desprendiendo el punto medio del preset y queda 0.62V y se ve bien!
DD3.jpg


Voy a implementarlo con componentes SMD para que quede mas prolijo y queda "provisorio para siempre" :)

Ya lo implemente pero con un 1N4148 y una R de 10K SMD 0805 que quedo bien entre los dos terminales de +B y bias del LCD.

DD4.jpg
 
Última edición:
Yo también usaba un preset hasta que encontré uno que ponía un diodo 1N4007 en serie con una resistencia y de ahí tomaba los 0.6 o 0.7V como control de contraste del LCD...y queda perfecto y sin ajustes!!
[OFFTOPIC=Modo sugerencias]

También vi y probé en modo "digital", usando el PWM del "Arduino UNO" y funcionó excelente, inclusive se puede configurar el nivel mediante software.

[/OFFTOPIC]
 
Eatimados colegas, buen día.
Muchísimas gracias a todos por sus consejos. Estuve estos días, concentrado tratando de revisar en modo "tranquilo" todo lo referente al circuito, PCB (que la diseñe yo, pero totalmente a "mano" porque no manejo programas de diseño), montaje, soldaduras, etc, etc y no encontré nada fuera de lo sugerido por el colega que desarrolló el circuito. Paso siguiente, me puse a revisar el conexionado del LCD y todo OK (yo también regulo con un trimpot de 10K).
Hoy voy a tratar de grabar el programa que Ricbevi posteó e intentaré grabarlo nuevamente (ya que fué el programa que simuló Ricbevi y funcionó), pero esta vez voy a cambiar el oscilador de grabado. Yo venía grabando con oscilador XT (deshabilitando los fuses de y nunca me dio problema, pero al ser diferente la "función" del PIC, quizás sea necesario grabarlo con el oscilador que me indique en el Icprog cuando cargo el archivo Hex.
No creo que el 9850 esté QRT, pero de los productos chinos que conseguimos en el mercado, podemos esperar cualquier cosa.
Los tendré al tanto de lo que pase.
Esta novela continuará!!!! Ja, ja.
Muchas gracias por el tiempo empleado por Uds y por la gentileza de compartir sus conocimientos.
Abrazo a todos los colegas del Foro.

C.B.
 
Hoy voy a tratar de grabar el programa que Ricbevi posteó e intentaré grabarlo nuevamente (ya que fué el programa que simuló Ricbevi y funcionó), pero esta vez voy a cambiar el oscilador de grabado.

Yo venía grabando con oscilador XT (deshabilitando los fuses de y nunca me dio problema, pero al ser diferente la "función" del PIC, quizás sea necesario grabarlo con el oscilador que me indique en el Icprog cuando cargo el archivo Hex.

Ahí tienes tu problema. Este microcontrolador usa el oscilador interno y los pines, que de otra forma irían al cristal, como I/O.

El archivo que subió Ricbevi ya viene con la configuración adecuada y no hay que tocar nada, solo "quemar" el microcontrolador (Chequee recién con el ICProg que los fuses sean los correctos). Aunque y por las dudas revisa que este seleccionado: IntRC I/O.
 
todo lo referente al circuito, PCB (que la diseñé yo, pero totalmente a "mano" porque no manejo programas de diseño)
Ya es tiempo de olvidar la tinta y pasar a los pixeles.
Es obvio que obtendrás resultados superiores.
yo también regulo con un trimpot de 10K
10K es un valor demasiado alto para regular el contraste de un LCD, a lo mucho 5K, con 2K7 o 3K anda bien y centradito.
No creo que el 9850 esté QRT
Seguramente no, aunque sea chino. ¿Actualmente qué no es chino? y andan bien.
Afortunadamente puedes comprar la calidad que tú quieras, para ellos eso no es problema.

Yo he hecho DDS con PIC usando módulo y también directamente, que es lo interesante de la siglas.
Busqué algunos y el que más me interesó fue el AD9833, pero mi necesidad no era tan alta, solo requería generar una onda sinusoidal en el rango de 50 a 200 Hz, eso sí, sumamente perfecta, y hacer eso con un microcontrolador no tiene dificultad.
Así que aunque el proyecto con el AD9833 quedó muy bonito, tan solo fue por querer dominarlo, ya que realmente no era tan alta la frecuencia que yo necesitaba para hacer un trazador de curvas.
Y finalmente quedó muy bien, con osciloscopio de doble trazo escrito por mí y obviamente entradas X, Y para lograr el propósito.
Actualmente sigue funcionando bien y se controla desde la misma aplicación vía USB o RS-232.
Me sirve bastante bien para comparar componentes y tarjetas defectuosas.
no hay que tocar nada, solo "quemar" el microcontrolador
Quemar el microcontrolador sería una pena. :facepalm:
:(
 
Eatimados colegas, buen día.
Muchísimas gracias a todos por sus consejos. Estuve estos días, concentrado tratando de revisar en modo "tranquilo" todo lo referente al circuito, PCB (que la diseñe yo, pero totalmente a "mano" porque no manejo programas de diseño), montaje, soldaduras, etc, etc y no encontré nada fuera de lo sugerido por el colega que desarrolló el circuito. Paso siguiente, me puse a revisar el conexionado del LCD y todo OK (yo también regulo con un trimpot de 10K).
Hoy voy a tratar de grabar el programa que Ricbevi posteó e intentaré grabarlo nuevamente (ya que fué el programa que simuló Ricbevi y funcionó), pero esta vez voy a cambiar el oscilador de grabado. Yo venía grabando con oscilador XT (deshabilitando los fuses de y nunca me dio problema, pero al ser diferente la "función" del PIC, quizás sea necesario grabarlo con el oscilador que me indique en el Icprog cuando cargo el archivo Hex.
No creo que el 9850 esté QRT, pero de los productos chinos que conseguimos en el mercado, podemos esperar cualquier cosa.
Los tendré al tanto de lo que pase.
Esta novela continuará!!!! Ja, ja.
Muchas gracias por el tiempo empleado por Uds y por la gentileza de compartir sus conocimientos.
Abrazo a todos los colegas del Foro.

C.B.
Programa el PIC con los valores que ya vienen en el archivo "hex" que funciona a la primera, como ya te adelantaron de forma acertada, ese es el problema que tienes y a "dejar de soñar con el problema del DDS" :) .

Espero que lo disfrutes ya que descarto que será incluido en algún equipo casero.

Saludos y buenos "contactos"( 73's y DX's ) .
 
Estimados amigos, buen día.
Siguiendo los consejos de los amigos que "SI SABEN" del tema, ayer grabé nuevamente el PIC de acuerdo al oscilador y fuses marcados en el ICprog cuando abro el archivo .HEx, y todo salió de primera!!! Ahora tengo toda la información en el LCD tal cual indica el colega que ideó este circuito. MUCHAS GRACIAS!!!.
Ahora tengo que sacarle señal!!! Ja, ja. Si bien el asunto del PIC aparentemente quedó OK, no tengo salida de RF ya que al DDS le agregué la etapita driver que adjunto, pero cargando una antena fantasma de 50 Ohms, no tengo señal en el receptor (haciendo un bucle con un cable cualquiera conectado a la antena alrededor de la carga) , incluso empleé la sonda de rf y no tengo voltaje ni en las patitas de salida del módulo DDS ni a la salida del driver. No contento con esto (porque a porfiado no me va a ganar), conecté el frecuencímetro a ambas salidas (DDS y driver) y nada, no me genera señal alguna.
El colega dice que genera una señal de 1Vpp por lo que me tendría que marcar 0,5 volts (aproximadamente ) en la sonda y no marca nada, incluso siendo de tan poca potencia, tendría que indicarme algo en el RX.
Bueno, ésto es otra historia y hoy voy a ver en que le estoy errando ya que estos aparatitos son bien distintos a los OFV analógicos que estoy acostumbrado a construír.
Ricbevi, sí, es para ver si armo un QRP para banda lateral ya que es una modalidad que nunca experimenté porque siempre transmití en AM que es lo que verdaderamente me gusta.
Una vez más MUCHISIMAS GRACIAS a todos por sus comentarios y por tener la grandeza de compartir sus conocimientos!!!
Abrazo fraterno.

C.B.
 

Adjuntos

  • 202208160618.pdf
    58.9 KB · Visitas: 13
Estimados amigos, buen día.
Siguiendo los consejos de los amigos que "SI SABEN" del tema, ayer grabé nuevamente el PIC de acuerdo al oscilador y fuses marcados en el ICprog cuando abro el archivo .HEx, y todo salió de primera!!! Ahora tengo toda la información en el LCD tal cual indica el colega que ideó este circuito. MUCHAS GRACIAS!!!.
Ahora tengo que sacarle señal!!! Ja, ja. Si bien el asunto del PIC aparentemente quedó OK, no tengo salida de RF ya que al DDS le agregué la etapita driver que adjunto, pero cargando una antena fantasma de 50 Ohms, no tengo señal en el receptor (haciendo un bucle con un cable cualquiera conectado a la antena alrededor de la carga) , incluso empleé la sonda de rf y no tengo voltaje ni en las patitas de salida del módulo DDS ni a la salida del driver. No contento con esto (porque a porfiado no me va a ganar), conecté el frecuencímetro a ambas salidas (DDS y driver) y nada, no me genera señal alguna.
El colega dice que genera una señal de 1Vpp por lo que me tendría que marcar 0,5 volts (aproximadamente ) en la sonda y no marca nada, incluso siendo de tan poca potencia, tendría que indicarme algo en el RX.
Bueno, ésto es otra historia y hoy voy a ver en que le estoy errando ya que estos aparatitos son bien distintos a los OFV analógicos que estoy acostumbrado a construír.
Ricbevi, sí, es para ver si armo un QRP para banda lateral ya que es una modalidad que nunca experimenté porque siempre transmití en AM que es lo que verdaderamente me gusta.
Una vez más MUCHISIMAS GRACIAS a todos por sus comentarios y por tener la grandeza de compartir sus conocimientos!!!
Abrazo fraterno.

C.B.
OJO no se que versión armaste, la simple o la que lleva dos 74HC595.

No solo cambia el PCB si no que no te va a funcionar el DDS porque si prestas atención los pines que se conectan con este son diferentes y por ende no le llegara información coherente al DDS.

No he leído todo lo que esta en la pagina del autor pero me parece que si armaste la versión simple, al PIC ,debes cargarle el archivo DDS_Control_V10_Eng.hex(o alguna similar) que subí en su momento. La otra versión (1.4 ) es para el que tiene los dos 595.

Presta atención a ese detalle.
DDS_Sim.jpg
DDS_com.JPG
 
Hola estimado Don Ricbevi, muy buen día.
Gracias por seguir preocupándote!!!.
Mirá yo armé el simple y el programa a cargar es la versión 1.4 que es la que tiene paso de 1Hz. La otra versión 10 es para el circuito que lleva los 595.
Yo del circuito de los que llevan los 595 le saqué solamente el circuito del driver porque me gustó la adaptación de impedancias del colector, pero lo único que modifiqué en el circuito del simple que armé, es que en lugar de sacar solamente la salida senoide y acoplarla a la etapa siguiente por un condensador de .1, , le agregué un relay para elegir salida cuadrada (para los PDM) o senoide, y que acoplara la salida del relay por un condensador de .1uF a la base del transistor driver y así tener la posibilidad de las dos salidas.
Estimo que en algo le erré, pero voy a ver y armar por las dudas un amplificadorcito de RF (para sacarle 2 o 3 Vpp) para acoplárselo a la salida del driver.
Veremos.
Cuando tenga este enjendro caminando, cuelgo algunas fotos del equipito y si le "doy en el clavo", el circuito.
Abrazos a todos.

C.B.
 
Atrás
Arriba