TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: da17 en 29 de Junio de 2008, 17:18:01

Título: oscilador digital de alta frecuencia
Publicado por: da17 en 29 de Junio de 2008, 17:18:01
buen dia!!!!

ha llegado a mis manos  un actuador  pzt de 3 Mhz, que referencia de oscilador digital me recomiendan, para manejar esta frecuencia. por la atencion prestada quedo agradecido

Daniel



________________________________________________________
Título: Re: oscilador digital para ultrasonido
Publicado por: MLO__ en 29 de Junio de 2008, 20:00:11
Hola.

Pues en el mercado existen varios tipos, todo depende de la resolucion que se quiera tener. Por la sencillez en la programacion de frecuencia creo que seria bueno utilizar el LTC6903 (SPI) o el LTC6904(I2C).

Tienes que definir tambien en que lenguaje vas a programar (C, ASM, BASIC).

Saludos
Título: oscilador digital de alta frecuencia
Publicado por: da17 en 29 de Junio de 2008, 20:30:55
hola!!!!

Estuve observando el datasheet de este oscilador y  si que va bien con lo que  pienso hacer!!!!!
Para el manejo  y configuración utilizare un pic 18f452 y compilador ccs......
Una vez lo tenga empiezo a programar  que según el datasheet se le tienen que enviar dos valores de configuración.
en esta semana les escribo como me fue con este oscilador Muchas gracias por la atención prestada

Título: Re: oscilador digital de alta frecuencia
Publicado por: da17 en 05 de Julio de 2008, 01:34:02
hola !!!!!

les comento que ya llego el Ltc6903 el cual se comunica mediante protocolo SPI, como lo necesito a 3Mhz calculo los parametros  dac y oct para esta frecuencia y luego se acomodan de acuerdo a la siguiente posicion, que es como los recibe el oscilador:
OCT3 OCT2 OCT1 OCT0 DAC9 DAC8 DAC7 DAC6
DAC5 DAC4 DAC3 DAC2 DAC1 DAC0 CNF1 CNF0

De acuerdo a lo que he leido de los transductores PZT puede que esta sea o no sea la frecuencia central de oscilacion, como hago para saber a que frecuencia resuena este oscilador??

ademas necesito  controlar la potencia que me aconsejan, una fuente regulada analogamente o digitalmente!!!!!   gracias MLO por la referencia de este oscilador  esta bacano!!!!!
el programa y el archivo de simulacion esta en los adjuntos
Título: Re: oscilador digital de alta frecuencia
Publicado por: MLO__ en 05 de Julio de 2008, 12:17:34
Hola.

Genial que lo hallas configurado. Faltaria el bucle infinito y controlar el envio de la configuracion con algun evento externo (algun pulsador puede ser). Respecto a los transductores PZT, estos traen un rango de error determinado al rededor de una frecuencia central de oscilacion, en tu caso 3MHz (es el transductor el que resuena y no el oscilador :lol:).

La manera de saber a que frecuencia esta resonando es medir la potencia de salida del transductor, mientras se cambia la palabra de configuracion del generador de señal u observar la curva de respuesta sobre el transductor. Obviamente, la potencia entregada por el LTC no es la adecuada para realizar estas mediciones, asi que hay que realizar un acople de potencia para proteger el LTC.

Te recomiendo un control de potencia digital (mira Control de Fase con interrupciones (http://www.todopic.com.ar/foros/index.php?topic=21584.0)).

Saludos
Título: Re: oscilador digital de alta frecuencia
Publicado por: MLO__ en 12 de Julio de 2008, 00:15:07
Hola.

Estuve trabajando con el LTC y, aunque es un oscilador que tiene buena resolucion, hay que tener en cuenta que presenta un error de calibracion, asi que es mejor tomar frecuencias base para configurar las otras. En si, es como en todo proceso, si quieres presicion debes tener un patron, en este caso un frecuencimetro.

Saludos
Título: Re: oscilador digital de alta frecuencia
Publicado por: da17 en 13 de Julio de 2008, 18:22:14
hola  a todos!!!!

les comento que ya estoy modificando la frecuencia del oscilador, para lograr encontrar la frecuencia de resonancia, con respecto al bucle  infinito que me digiste MLO  ya lo coloque, ahora lo que me falta es como hacer que cada ves que prenda el circuito este vuelva a tomar el ultimo dato y no me toque volver a calibrarlo..  en la simulacion en proteus el numero 2 del teclado es Up y el numero 8 es DOWN esto se realizo para calibrar la frecuencia de oscilacion del PZT, ...gracias MLO por la ayuda prestada

Título: Re: oscilador digital de alta frecuencia
Publicado por: MLO__ en 13 de Julio de 2008, 22:14:58
Hola.

Esta muy bien :-/. Para evitar calibrar el LTC cada que enciendas el PIC, has uso de la EEPROM del PIC, guarda ahi el ultimo valor de la calibracion y luego, en el inicio del programa, carga el valor leido desde la EEPROM y lo envias al LTC.

Para el manejo de la EEPROM el CCS tiene unas funciones built-in que son read_eeprom y write_eeprom, hechale un vistazo a la ayuda del CCS.

Espero tus comentarios.

Saludos
Título: Re: oscilador digital de alta frecuencia
Publicado por: Nocturno en 14 de Julio de 2008, 05:31:53
No sé si te servirá de algo, pero en una ocasión trabajé con un oscilador parecido, el LTC6904
Oscilador Variable de 1KHz a 68MHz con LTC-6904 (http://www.micropic.es/index.php?option=com_content&task=view&id=2&Itemid=39)
Título: Re: oscilador digital de alta frecuencia
Publicado por: MLO__ en 14 de Julio de 2008, 23:38:58
Hola.

Pues si maestro Nocturno, es el mismo LTC solo que con interfaz I2C. De todas maneras, aunque la resolucion es muy buena (fx0.001 por banda) la calibracion es un problema y para el transductor que usa da17 el error en el BW deberia ser menor de 5kHz en 3MHz, asi que hay que calibrarlo. He probado mandar una misma palabra de configuracion a dos LTC diferentes y la frecuencia obtenida esta a unos 100kHz desviada una de la otra.

Oye da17, de pronto no has pensado en un AD9833?? Tengo pedidos algunos (aun no llegan), podriamos postear su uso aca en este hilo y quedarian dos posibilidades :-/ :-/

Saludos
Título: Re: oscilador digital de alta frecuencia
Publicado por: da17 en 22 de Julio de 2008, 23:22:24
hola a todos!!!

con respecto  a lo que comenta el maestro nocturno el programa esta muy  interesante,  solo que lo migre a un pic 18 le coloque teclado ,  una lcd y quedo bacano en la simulacion en proteus ...falta implementarlo en harware!!!

lo que dice el maestro MLO lo probe  y es verdad, la misma palabra de configuracion en dos LTC`s, da una frecuencia diferente asi que toca calibrar cada ltc, en estos dias coloco como escribo los datos en la eeprom del pic, para no tener que volver a calibrar el oscilador, estuve mirando el AD9833 y da mayores prestaciones que el LTC, asi que mandare a pedir por ellos para que luego posteemos su uso en el foro!!!!


gracias!!!!
Título: Re: oscilador digital de alta frecuencia
Publicado por: da17 en 08 de Agosto de 2008, 21:03:49
hola a todoss!!

en el archivo  adjunto esta la  configuracion del ltc, en la cual configuro la frecuencia de oscilacion y la guardo en la memoria interna del pic, para que una vez encendido el sistema no me toque que configurarlo de nuevo.

me podrian dar una idea de como habilitar la entrada  a la configuracion, de tal manera que esta quede activa solo un instante de tiempo al inicio del programa, y luego de pasar este tiempo, no se pueda acceder mas  a la configuracion.

espero sus sugerencias..
gracias
Título: Re: oscilador digital de alta frecuencia
Publicado por: Nocturno en 09 de Agosto de 2008, 01:48:29
Podrías hacer que, por ejemplo, se entrase en la configuración si el dispositivo se enciende con la tecla "*" pulsada en el teclado numérico.
Comprobarlo es sencillo: será lo primero que haga tu programa tras un reset.
Título: Re: oscilador digital de alta frecuencia
Publicado por: da17 en 11 de Agosto de 2008, 13:02:53
hola a Todos!!!!

no se si le entendi bien al maestro nocturno, pero si coloco la instruccion c=kbd_getc(); ,siempre el programa va a esperar que se pulse una tecla al inicio?
me corrigen si estoy equivocado :mrgreen:!!!
  aqui dejo como lo he pensado segun la recomendacion anterior, espero poder mejorar esta parte de la entrada a la configuracion, con sus consejos


 void main()
{     char c;
     lcd_init();
     kbd_init();
     port_b_pullups(TRUE);                   
   
      do{                                             //hacer hasta
            c=kbd_getc();   
          }while(c=='\0');                       //que no se pulse tecla
 
      if (c=='*')   
         {                                       
            configuracion();  // entra a la funcion configuracion
          }

while(TRUE)
{
leer_eeprom();     
configurar_oscilador();
}

}


muchasss gracias
Título: Re: oscilador digital de alta frecuencia
Publicado por: MLO__ en 11 de Agosto de 2008, 13:40:54
Hola.

La libreria del teclado del CCS solo retorna la tecla pulsada cuando se desoprime la tecla. Si usas la funcion del teclado para entrar al modo de configuracion, no te va a funcionar, ya que siempre te va a retornar '\0'. Lo mejor es usar dos pines (tu eliges cuales) del teclado y hacer la rutina aparte.

Seria algo asi:
Código: C
  1. output_low(row0);
  2. if(input_state(col0))
  3.  c='*';
  4. else
  5.  c='#'

Saludos
Título: Re: oscilador digital de alta frecuencia
Publicado por: chiqui_83 en 03 de Enero de 2012, 11:11:22
Hola a todos, quería preguntarles acerca del manejo del oscilador LTC6904, ya que no puedo transmitirle la frec deseada. Estoy programando con el CCS y utilizando un 18F4520. Simplemente lo que hice fue configurar al PIC como master, estableciendo los pines de reloj y datos, y luego utilizando un bucle con:
 i2c_start();
 i2c_write(0x2E);
 i2c_write(DATO1);
 i2c_write(DATO2);
 i2c_stop();
El problema es que queda clavado en 1KHz, agradezco cualquier ayuda!
Título: Re: oscilador digital de alta frecuencia
Publicado por: MLO__ en 03 de Enero de 2012, 17:12:05
Hola.

Falta la parte de poner a ceros el bit 0 de DATO2. Recuerda que debe haber una pausa para ello, creo que con 5mS es suficiente. Algo así:

Código: [Seleccionar]
        i2c_start();
i2c_write(0x2E);
i2c_write(DATO1);
i2c_write(DATO2);
i2c_stop();
delay_ms(5);
bit_clear(DATO2,0);
i2c_start();
i2c_write(0x2E);
i2c_write(DATO1);
i2c_write(DATO2);
i2c_stop();

Saludos
Título: Re: oscilador digital de alta frecuencia
Publicado por: chiqui_83 en 03 de Enero de 2012, 21:51:30
Hola!, gracias por responder.

DATO1=(OCT3,OCT2,OCT1,OCT0,DAC9,DAC8,DAC7,DAC6)
DATO2=(DAC5,DAC4,DAC3,DAC2,DAC1,DAC0,CNF1,CNF0)

estos son los datos según la hoja de datos y los puse de la siguiente manera:

DATO1=(OCT<<4) | (int)(DAC>>6);
DATO2=(((int)DAC)<<2);

así que los ceros en los b0 y b1 los tenía, lo que no tenía era un retardo en el búcle, voy a ponerlo y luego te cuento a ver como anduve. Gracias!!!

Saludos!
Título: Re: oscilador digital de alta frecuencia
Publicado por: chiqui_83 en 09 de Enero de 2012, 14:22:03
Lamentablemente no era eso, sigo buscandole la vuelta...  :(
Título: Re: oscilador digital de alta frecuencia
Publicado por: MLO__ en 09 de Enero de 2012, 17:35:50
Hola.

Yo lo hago así y me funcionaba  ;-)

Código: [Seleccionar]
TOTAL=((DAC<<2) | CNF | (OCT<<12));
DATO1=TOTAL>>8;
DATO2= TOTAL;

Saludos
Título: Re: oscilador digital de alta frecuencia
Publicado por: chiqui_83 en 12 de Enero de 2012, 18:28:38
no hay que poner algún FUSE en especial por casualidad?. Gracias
Título: Re: oscilador digital de alta frecuencia
Publicado por: chiqui_83 en 17 de Enero de 2012, 23:13:47
No me está generando la señal de clock... alguien sabe porque puede ser?
Título: Re: oscilador digital de alta frecuencia
Publicado por: Dieguishi en 06 de Diciembre de 2012, 21:23:59
Porfavor no se si alguien me puede ayudar en la comunicacion I2C para un LTC6904 no me funciona soy nuevo en esto.. estoy realizando en mikrobasic no se si alguien me puede ayudar con algun consejo: estoy programando con un pic 16f886 de antemano gracias por su ayuda, estoy queriendo sacar una frecuencia fija de 1mhz

program OsciladorDigital

main:
 OSCCON = %01100110              ' 4mhz, frecuencia
 TRISC = %11000111
 TRISB = %11101110
 PORTB = 0                       ' Inicializo con el puertob en cero
 ANSEL = %00000000               ' SIN ADC
 CCP1CON = %0000000              ' SIN MODULO CCP

  Delay_ms(1000)
       I2C_Init(100000)         ' Velocidad de transmision de 100kb/seg
       I2C_Start                 ' Issue I2C start signal
       I2C_Wr(%00101110)         ' reconocimiento del LTC Adress pin4 a cero
       I2C_Wr(%00110101)         ' Envia dato 1
       I2C_Wr(%01101010)         ' Envia dato 2
       I2C_Stop
       delay_ms(10)
repit:
      goto repit
       
End.
Título: Re: oscilador digital de alta frecuencia
Publicado por: Nocturno en 07 de Diciembre de 2012, 01:53:14
No manejo Basic, pero lo hice funcionar en lenguaje C. Lo puedes ver aquí:
http://www.micropic.es/mpblog/2004/08/oscilador-variable-de-1khz-a-68mhz-con-ltc-6904/