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

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #30 en: 21 de Enero de 2010, 12:18:20 »
Sí, agrega el clock de 64M.

Usar clock interno es sólo útil para aplicaciones que no son sensibles a retrasos. Un oscilador RC interno cambia su frecuencia de oscilación debido a cambios de temperatura. Si lo usas para un RTC entonces después de algunos meses habrá retrasos o adelantos de segundos en el tiempo.

Pero los cristales son mucho más precisos, oscilan con mejores tolerancias y no cambia mucho su frecuencia con la temperatura.

Es cuestión de tolerancias el usar uno o el otro.

Incluso hay pic24 que también traen oscilador interno y es tan bueno que cumple con las tolerancias para usarlo para el módulo USB.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #31 en: 21 de Enero de 2010, 15:36:10 »
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]

Eso se arregla leyendo el datasheet!  :mrgreen: En el capitulo de características especiales se encuentra los detalles de los bits de configuración.


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 #32 en: 21 de Enero de 2010, 16:19:33 »
No siempre Suky. Hay etiquetas FUSE que no son idénticas a lo que aparece en los diagramas de la datasheet. Siempre hay que experimentar para conocer su objetivo final, compilar el programa y comparar los bits levantados con los que uno esperaba.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #33 en: 21 de Enero de 2010, 19:54:38 »
No siempre Suky. Hay etiquetas FUSE que no son idénticas a lo que aparece en los diagramas de la datasheet. Siempre hay que experimentar para conocer su objetivo final, compilar el programa y comparar los bits levantados con los que uno esperaba.

Te referís al nombre que le coloca CCS? Si es el caso, si, puede que no se sepa bien a cual se refiere. Pero no te compliques perdiendo tiempo en pruebas, usa el soft programador que es mucho mas transparente en es caso  ;-)


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

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 #34 en: 22 de Enero de 2010, 05:11:18 »
Hola compañeros:

Citar
Te referís al nombre que le coloca CCS? Si es el caso, si, puede que no se sepa bien a cual se refiere. Pero no te compliques perdiendo tiempo en pruebas, usa el soft programador que es mucho mas transparente en es caso  wink

Desgraciadamente no me fio mucho del SW y más cuando se trata de tiempos...pero aún así cuando no dispongo del micro físico siempre lo uso...ya que no queda otra.

Respecto al programa, he realizado lo siguiente y parece que funciona perfectamente, aunque tiene un cierto desfase, es decir si pongo este código en el micro sin cristal, a la salida del PIN_A0, el osciloscopio me da una señal cuadrada periódica de frecuancia 10.04Hz

Código: [Seleccionar]
#include<18F24K20.h>
#fuses INTRC_IO //Oscilador interno RC, no CLKOUT //CLKIN y CLKOUT como I/O //Poniendo INTRC de la misma frecuencia en PIN_A0
#fuses NOFCMEN //Quitándolo o no da la misma frecuencia en PIN_A0
#fuses PUT //Power Up Timer //El micro empieza ms más tarde para estibilzar la tensión //Quitándolo o no da la misma frecuencia en PIN_A0
#fuses NOWDT //Sin perro guardian
#fuses NOPROTECT //Sin protección de lectura
#fuses NOLVP //Sin programación Low Voltage
#FUSES BROWNOUT //Se resetea el micro cuando baja la tension a niveles no seguros //Quitándolo o no da la misma frecuencia en PIN_A0

#use delay(clock=64M)
#use rs232(baud=115200, xmit=PIN_C6, rcv=PIN_C7, stream=PC)

void main(void)
{
//setup_oscillator(OSC_64MHZ | OSC_INTRC);//No se pone pues ya queda definido con el fuse INTRC y use_delay, si se pone no funciona el micro

while (TRUE)
   {
output_high(PIN_A0);
delay_ms(50);
output_low(PIN_A0);
delay_ms(50);
}
}

Por otro lado si pongo el siguiente código, en el micro con cristal de 12MHz me da una frecuencia exacta de 10.00Hz

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

void main(void)
{
while (TRUE)
   {
output_high(PIN_A0);
delay_ms(50);
output_low(PIN_A0);
delay_ms(50);
}
}

¿Qué le puede estar pasando a esto?

Me gustaría probar el micro que tiene cristal, y hacer así una prueba más exacta entre los micros, con un clock de 64MHz con un cristal de 12MHz externo pero no puedo ponerle el fuse PLL4...¿¿¿Cómo puedo hacer para que corra a 64MHz????

Un saludete y gracias.

« Última modificación: 22 de Enero de 2010, 05:29:18 por c4_esp_VR »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #35 en: 22 de Enero de 2010, 10:48:32 »
Para que el oscilador del cpu opere a 64MHz a partir de un cristal externo debes usar uno de 16MHz y pasarlo por el 4xPLL. Debes activar el fusible H4 en CCS (HSPLL en el diagrama).

http://img191.imageshack.us/img191/8881/pice.png

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 #36 en: 22 de Enero de 2010, 11:31:43 »
Hola migsantiago:

Primero gracias por contestar, como siempre estas para todo y es de agradecer.

Por otro lado como no he encontrado para que servia el fusible H4, he optado por poner este código un poco buscando en el datasheet y hacerlo a "pelo". Creo que está bien, al menos los temporizadores funcionan y los delay también.

Código: [Seleccionar]
#include<18F24K20.h>
#fuses NOWDT,NOPROTECT,NOLVP //fuses para los demás micros
#rom int8 0x300001 = {0x06} //Es igual que poner 00000110, FOSC<3:0>=0110=HS PLL Enable, donde 0x300001 es el registro del CONFIG1H
#use delay(clock=64M)//Con un cristal externo de 16MHz
#use rs232(baud=115200, xmit=PIN_C6, rcv=PIN_C7)

Muchas gracias por la ayuda, por cierto he probado a poner el H4 y en el registro de configuración de bits aparece lo mismo que si ponemos lo del rom anterior  ;-), además lo he probado en un micro físico y funciona perfectamente, si es que eres un crack migsantiago.  :-/

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: ¿Es posible usar un solo cristal para dos o más micros?
« Respuesta #37 en: 22 de Enero de 2010, 12:15:05 »
No hay de qué. Ya sabes que todo está en la datasheet, el problema es hacerlo coincidir con las etiquetas del CCS.

Hay etiquetas que ni siquiera traen descripción:

http://img62.imageshack.us/img62/8629/ccs.png


En fin, es prueba y error, pero nada de cracks.


 

anything