Autor Tema: ¿Es posible usar un solo cristal para dos o más micros?  (Leído 13471 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado controlpic

  • PIC10
  • *
  • Mensajes: 24
    • servicio de grabacion de microcontroladores
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #15 en: 01 de Mayo de 2009, 13:59:05 »
Hola
No me habia confundido, me referia a 32Mhz, aunque ahora veo que estaba equivocado en hacerlo trabajar a tan alta frecuencia.

Tengo que obtener varias frecuencias lo mas exactas posibles y utilizando esa base de tiempos obtenia muy poco error. Viendo el problema seguramente utilice un cristal de 4Mhz con objeto de aumentar la longevidad del pic, ya que aunque a 20Mhz me puede funcionar bien, no me quiero ariesgar a quemar alguno de los pic.

un saludo.

Desconectado controlpic

  • PIC10
  • *
  • Mensajes: 24
    • servicio de grabacion de microcontroladores
configurar los fuses para utilizar un oscilador exterior
« Respuesta #16 en: 04 de Mayo de 2009, 18:33:43 »
Para poder utilizar el 12f629 con un oscilador exterior, sabeis que fuses son los que hay que seleccionar?

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #17 en: 04 de Mayo de 2009, 22:00:24 »
Pues XT, HS, LP,EC_IO
El papel lo aguanta todo

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #18 en: 04 de Agosto de 2009, 03:50:17 »
Hola compañeros:

Resulta que tengo un circuitillo con dos pic 18F13k50, los cuales funcionan a la perfección con un cristal de 12Mhz cada uno, pero intento hacer esto que mencionais de tirar un cable del pin3 (clock out) del pic que tiene el cristal, al pin2 (clock in) del otro pic que no tiene cristal...y el que no tiene cristal no me funciona...

¿Alguien sabe porque puede ser?, ¿ hay que poner algún fuse especial en el código del CCS de alguno de los dos pic ?.

Como siempre muchas gracias por todo compañeros.

Un saludete.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #19 en: 04 de Agosto de 2009, 09:30:46 »
Tienes que poner el fuse EC, aunque no sé si funcionará el USB.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #20 en: 04 de Agosto de 2009, 09:49:06 »
Hola:

La verdad es que no voy a usar el usb, sólo lo compré porque es el más barato de los que tiene más memoria (por el tema del usb).

Imagino que tengo que poner #fuses EC en el pic que no tiene cristal  :mrgreen:

Mañana lo pruebo y os comento que tal.

Un saludete y muchas gracias.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #21 en: 21 de Enero de 2010, 07:48:18 »
Hola comapeñeros:

He vuelto a sacar 5 min libres después de muchos meses...madre del amor hermoso...más de 6 meses...pero al menos no me olvido jejejeje, al realizarlo me he encontrado que no funciona...Os comento que he realizado por si hay algún error...

Primero he probado los dos PIC con el mismo programa y con un cristal cada uno y ha funcionado perfectamente (como era de esperar), el código usado para ambos en esta prueba es el sigiuente.

Código: [Seleccionar]
#include<18F24K20.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP //fuses para los demás micros //CON CLOCK
#use delay(clock=12000000)
#use rs232(baud=115200, xmit=PIN_C6, rcv=PIN_C7, stream=PC)

void main(void)
{
while (TRUE)
   {
printf("PRUEBA\r\n");//\r=CR=13; \n=LF=10
output_high(PIN_A0);
delay_ms(1000);
printf("PRUEBA\r\n");//\r=CR=13; \n=LF=10
output_low(PIN_A0);
delay_ms(1000);
}
}

Una vez probado el correcto funcionamiento de ambos (ver como se enciende y apagan los led en cada pic a un ritmo de 1 segundo) he quitado el cristal a uno de ellos y he tirado un cable de la patilla CLKOUT del micro que tiene el cristal a la patilla CLKIN del micro que NO tiene cristal, una vez realizado esa modificación en el HW, también he realizado una modificación en el SW del micro que NO tiene cristal y he puesto el siguiente código.

Código: [Seleccionar]
#include<18F24K20.h>
#fuses EC, NOWDT,NOPROTECT,NOLVP //fuses para los demás micros //SIN CLOCK
#use delay(clock=12000000)
#use rs232(baud=115200, xmit=PIN_C6, rcv=PIN_C7, stream=PC)

void main(void)
{
while (TRUE)
   {
printf("PRUEBA\r\n");//\r=CR=13; \n=LF=10
output_high(PIN_A0);
delay_ms(1000);
printf("PRUEBA\r\n");//\r=CR=13; \n=LF=10
output_low(PIN_A0);
delay_ms(1000);
}
}

Es decir he sustituido el fuse HS por el fuse EC y como resultado me encuetro que los led se apagan y se encienden pero a un ritmo de entre 10 y 12 segundos en ambos micros...

Alguien sabe que puede estar pasando.

Un saludete y como siempre mil gracias compañeros.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #22 en: 21 de Enero de 2010, 07:57:28 »
Qué raro, ¿no tienes osciloscopio o frecuencímetro para mirar qué está pasando en los pines de clock?

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #23 en: 21 de Enero de 2010, 08:21:52 »
Citar
Qué raro, ¿no tienes osciloscopio o frecuencímetro para mirar qué está pasando en los pines de clock?

Acabo de mirar el clock y aparece una precio onda sinusoidal de una frecuencia de 12MHz tanto en el CLKOUT del micro que tiene el cristal como en el CLKIN del micro que NO tiene el cristal.

Acabo de hacer una prueba, poniendo el mismo código en los dos, con el fuse HS incluso en el micro que NO tiene cristal y funciona perfectamente

Citar
#include<18F24K20.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP //fuses para los demás micros //CON CLOCK
#use delay(clock=12000000)
#use rs232(baud=115200, xmit=PIN_C6, rcv=PIN_C7, stream=PC)

void main(void)
{
   while (TRUE)
      {
      printf("PRUEBA\r\n");//\r=CR=13; \n=LF=10
      output_high(PIN_A0);
      delay_ms(1000);
      printf("PRUEBA\r\n");//\r=CR=13; \n=LF=10
      output_low(PIN_A0);
      delay_ms(1000);
   }
}

En cambio le vuelvo a poner el fuse EC al micro que no tiene el cristal, reseteo el sistema y el micro que tiene cristal funciona perfectamente y el micro que no tiene cristal funciona muy lento (como antes), he vuelto a mirar las patas del CLK en ambos pines y estan correctamente...

¿Qué hace exactamente el fuse EC?,¿a qué se debe que funciona con el fuse de High Speed (HS) si no tiene un cristal puesto?.

Gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #24 en: 21 de Enero de 2010, 08:36:50 »
Pues quizás sea que pasa eso con los 18F.
Yo hice la prueba con un par de micros (no me acuerdo de qué familia) y en CLKOUT no se veía la senoidal, sino una cuadrada que ingresada al otro micro lo hacía oscilar.
Se supone que el fuse EC lo configura para que con una señal de clock externa funcione (no un cristal, sino una señal cuadrada).

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #25 en: 21 de Enero de 2010, 10:53:21 »
Hola, veo que el PIC18F que usas trae oscilador interno escalable hasta 64MHz (16MIPS), pero talvez haya una mejor razón para usar uno externo.

Yo habilitaría el Power Up Timer ya que si usas EC es probable que el PIC asuma que desde los primeros ciclos el reloj ya está estable, cosa que no es cierta porque al usar cristal éste arranca lentamente. Con el power up timer el pic espera varios ms hasta que elreloj esté estable y es entonces cuando comienza a ejecutar programas.

Por cierto, quise bajar la datasheet de microchip pero me sale un error de que el archivo no existe :(

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #26 en: 21 de Enero de 2010, 11:29:58 »
Citar
Hola, veo que el PIC18F que usas trae oscilador interno escalable hasta 64MHz (16MIPS), pero talvez haya una mejor razón para usar uno externo.
En este caso no hay mayor razón que la ignorancia y las ganas de aprender gracias a gente como vosotros  ;-). Por cierto,¿¿¿cómo podría hacer para que el PIC fuese a 16MIPS con el clock interno, que directivas del CCS me permiten realizarlo???.

Citar
Yo habilitaría el Power Up Timer ya que si usas EC es probable que el PIC asuma que desde los primeros ciclos el reloj ya está estable, cosa que no es cierta porque al usar cristal éste arranca lentamente. Con el power up timer el pic espera varios ms hasta que elreloj esté estable y es entonces cuando comienza a ejecutar programas.
Ya no dispongo del material, pero mañana en cuanto pueda le hago esto que comentas a ver que ocurre, aunque antes tendría que saber como se hace...creo que con el fuse PUT.

Citar
Por cierto, quise bajar la datasheet de microchip pero me sale un error de que el archivo no existe Sad
Aquí le tienes  :D
Datasheet 18F2XK20

Muchas gracias.
« Última modificación: 21 de Enero de 2010, 11:52:39 por c4_esp_VR »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #27 en: 21 de Enero de 2010, 11:47:01 »
Para configurar el oscilador interno lo realizas mediante los fuses correspondientes (ver *.h del dispositivo) y setup_oscillator.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #28 en: 21 de Enero de 2010, 11:59:59 »
Leyendo la datasheet creo que puedes hacerlo con esto:

Código: [Seleccionar]
#fuses INTRC_IO //reloj interno sin salida en pin
#fuses NOFCMEN //sin chequeo de cambio de relojes
#fuses PUT


y luego en el programa debes poner

Código: [Seleccionar]
setup_oscillator(OSC_64MHZ | OSC_INTRC);
Pruébalo con un led y delay de 1s para ver si corre a la velocidad programada.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #29 en: 21 de Enero de 2010, 12:08:57 »
Citar
Para configurar el oscilador interno lo realizas mediante los fuses correspondientes (ver *.h del dispositivo) y setup_oscillator.

Hay tantos fuses en este PIC que no sé ni para que sirven muchos de ellos. :5]

Citar
Leyendo la datasheet creo que puedes hacerlo con esto:

Código:

#fuses INTRC_IO //reloj interno sin salida en pin
#fuses NOFCMEN //sin chequeo de cambio de relojes
#fuses PUT

y luego en el programa debes poner

Código:

setup_oscillator(OSC_64MHZ | OSC_INTRC);


Pruébalo con un led y delay de 1s para ver si corre a la velocidad programada.

Imagino también que habrá que poner

Código: [Seleccionar]
#use delay(clock=64000000)
Mañana lo intento y comento el resultado. Por cierto que significan estos dos fuses más exactamente.

Código: [Seleccionar]
#fuses INTRC_IO //reloj interno sin salida en pin
#fuses NOFCMEN //sin chequeo de cambio de relojes

Otra pregunta tonta es...si ya tiene internamente un clock a 16MHz que con un PLLx4 hace 64MHz...entonces, ¿¿¿para que sirve poner un cristal???, es decir, ¿¿¿qué ventajas tendría en este caso???...

Gracias.
« Última modificación: 21 de Enero de 2010, 12:12:37 por c4_esp_VR »


 

anything