Autor Tema: No consigo que funcione el cristal !! || SOLUCIONADO ||  (Leído 5805 veces)

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

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
No consigo que funcione el cristal !! || SOLUCIONADO ||
« en: 12 de Septiembre de 2012, 08:37:20 »
Hace un largo tiempo que no me pasaba esto... :shock: :shock:

Hice un programa (varios en realidad) usando el oscilador interno de un PIC18F26K80, que a decir verdad es excelente...
Este PIC permite usar el oscilador interno a 16 mhz y con el PLL activado, hacer que el micro trabaje a 64 mhz !!

Fiel a mi costumbre de llevar al maximo de exigencias cada PIC que toco,  :mrgreen: :mrgreen: hice varios programas que usaron este tipo de oscilador.

Ahora quiero poner un cristal externo, cumpliendo las mismas premisas de velocidad, es decir un cristal de 16 mhz y habilitar el PLL para que funcione igual que en los programas anteriores.

Vaya mi sorpresa al saber que el cristal NO Arranca a oscilar !!

Probe al menos 10 configuraciones diferentes, sin obtener resultados !!!   :shock: :shock: :shock:

Tengo experiencia en usar el PLL y las maximas velocidades en la linea PIC18F, por lo tanto no esperaba tal rotundo fracaso en este caso.

Hace mas de una semana que estoy lidiando con este problema...

Como lo arme en protoboard, saque el cristal y lo probe en otro circuito (tambien en protoboard) que tengo armado y el osciloscopio lee bien esa frecuencia en 15,8 mhz.
Pero si lo coloco en el circuito en cuestion, deja de oscilar, incluso hice la inversa, traer el cristal de 10 mhz a esta placa y tampoco arranca a oscilar.

Es posible que el circuito interno del PIC no permita arrancar el oscilador si esta mal configurado ??

A alguien le paso algo asi??
Tienen experiencia que puedan compartir conmigo, en esta linea de PICs ?? :shock: :shock:
« Última modificación: 13 de Septiembre de 2012, 23:34:02 por MGLSOFT »
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: No consigo que funcione el cristal !!
« Respuesta #1 en: 12 de Septiembre de 2012, 11:27:03 »
No tendrás algún drama en la placa, algún capacitor a gnd o alguna unión que no logres ver? Por lo que se ve, la retroalimentación esta al principio, sin opciones de configuración (control solo por Sleep) y despues un buffer, por lo tanto una mala configuración no debería afectar a la etapa de entrada  :undecided: Además en el errata no veo nada respecto al oscilador.

No se si se puede en estos micros, pero no probaste de arrancar sin PLL y encenderlo al iniciar el microcontrolador?

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

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: No consigo que funcione el cristal !!
« Respuesta #2 en: 12 de Septiembre de 2012, 11:38:14 »
Por lo que veo ya estuviste viendo la hoja de datos, asi que habras visto que tiene tres fuentes de oscilacion diferentes, con una importante cantidad de opciones de combinacion. :D :D

Estuve leyendo en foros donde algunos arrancan el PIC con una fuente y despues cambian de oscilador estando en marcha.

Pero es importante el dato que me das, o sea el cristal deberia oscilar aunque la opcion de configuracion este mal elegida, es asi o interpreto mal??

Voy a cambiar de Proto o veo de armarlo en un pcb a ver que pasa... ;-) ;-)
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: No consigo que funcione el cristal !!
« Respuesta #3 en: 12 de Septiembre de 2012, 12:13:40 »
Hace un tiempo renegue mucho con unos 18FxxJxx por un tema similar, también creí que no oscilaban.

En dichos micros no alcanza con activar la PLL en los FUSES, sino que también hay que activarla en el código.
Así que si estás en CCS podrías declarar:

#bit PLLEN = 0xF9B.6

y en el main hacer:
PLLEN = 1;

En mi caso eso bastó para solucionar el problema, aunque en tu datasheet figura que se activa el PLL seteando el FUSE correspondiente o el bit OSCTUNE,PLLEN y la verdad que ese micro tiene más opciones de config de oscilador que los que te menciono.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: No consigo que funcione el cristal !!
« Respuesta #4 en: 12 de Septiembre de 2012, 12:21:58 »
Pero es importante el dato que me das, o sea el cristal deberia oscilar aunque la opcion de configuracion este mal elegida, es asi o interpreto mal??
Si, lo determino de lo que se ve en el datasheet.

Es cierto lo que dice Bruno, para un PIC18F67J50 hago:

Código: C
  1. unsigned int pll_startup_counter = 1000;
  2.         OSCTUNEbits.PLLEN = 1;  //Enable the PLL
  3.         while(pll_startup_counter--);

Pero no encontré referencia de esto para un 18F26K80, puede que sea igual. Pero como dices que con el interno funciona  :undecided:
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: No consigo que funcione el cristal !!
« Respuesta #5 en: 12 de Septiembre de 2012, 12:25:43 »
Prueba con esto en tu main():

setup_oscillator(OSC_NORMAL|OSC_PLL_ON);

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: No consigo que funcione el cristal !!
« Respuesta #6 en: 12 de Septiembre de 2012, 16:04:02 »
Manolo:
Lamento decirte que ya probe esa opcion... :? :? :?

Suky:
Entiendo que tu rutina espera 1000 tikcs de programa para que se active el PLLEN ??

Bruno:
Yo compilo y despues veo el assembler generado y PLLEN esta habilitado, por eso no entiendo bien que pasa.


Voy a armar todo el circuito en un pcb en vez de protoboard a ver si eso me esta molestando o no...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: No consigo que funcione el cristal !!
« Respuesta #7 en: 12 de Septiembre de 2012, 16:41:22 »
Eso, vine así en los ejemplos de Microchip, colocan la variable a 600, 1000 o 2000 generalmente... Un tiempo como para que enganche y se estabilice.
No contesto mensajes privados, las consultas en el foro

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: No consigo que funcione el cristal !!
« Respuesta #8 en: 12 de Septiembre de 2012, 18:14:32 »
Ajah!!
Y esos ticks deberian ser multiplos del tiempo de oscilacion primario, es decir antes de multiplicarlo en el PLL.
Por ejemplo, si son 10 Mhz y con PLL activado hacen 40 Mhz, el tiempo de cada ticks corresponde a los 10 Mhz... :P :P
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: No consigo que funcione el cristal !!
« Respuesta #9 en: 12 de Septiembre de 2012, 19:37:30 »
El datasheet dice que se el PLL puede demorar hasta 1000 ciclos en estabilizarse luego de activado y recomienda que hagas perder el tiempo al uC durante dicho período mínimamente, para garantizar la estabilidad. Con cumplir los ciclos mínimos, es suficiente. Podés excederte en todo los ciclos que desees.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
Re: No consigo que funcione el cristal !!
« Respuesta #10 en: 12 de Septiembre de 2012, 20:05:48 »
Por ahí digo una boludes pero podría ser el tipo de corte de cristal lo q esta jodiendo ? digo por xt o at  o hs ....
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: No consigo que funcione el cristal !!
« Respuesta #11 en: 12 de Septiembre de 2012, 21:42:27 »
No hay caso!!
 :oops: :oops: :oops:

Sigue haciendo lo que se le viene en gana!!   :5] :5] :5]
Y lo arme en PCB y sigue sin darme bolilla al intento de hacerlo funcionar...

Vere de escribir los registros de prepo...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: No consigo que funcione el cristal !!
« Respuesta #12 en: 12 de Septiembre de 2012, 22:14:59 »
A mi me paso hace mucho tiempo con el 18F2550 que cambiando los fuses HS, HSPLL, etc. Habia un fusible (no recuerdo cual) que no hacia cambio en la configuracion real (ocea en el hex). Esto lo comprobe viendo en el MPLAB porque yo siempre creo, edito y compilo en la IDE de CCS pero para grabar el pic, importo el hex al MPLAB y ahi veo el config bits. Bueno, ahi me di cuenta que no combiaba el fuse en cuestion. El problema, si mal no recuerdo, era del CCS, actualizando la version se arreglo eso.

Aun que dudo que te pase esto, porque seria bien tonto, mas que nada lo pongo para dejar una experiencia que pueda servir a otros menos experimentados =)

Mas bien, has probado con otros de esos pics?

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: No consigo que funcione el cristal !!
« Respuesta #13 en: 13 de Septiembre de 2012, 00:09:05 »
A mi me paso hace mucho tiempo con el 18F2550 que cambiando los fuses HS, HSPLL, etc. Habia un fusible (no recuerdo cual) que no hacia cambio en la configuracion real (ocea en el hex). Esto lo comprobe viendo en el MPLAB porque yo siempre creo, edito y compilo en la IDE de CCS pero para grabar el pic, importo el hex al MPLAB y ahi veo el config bits. Bueno, ahi me di cuenta que no combiaba el fuse en cuestion. El problema, si mal no recuerdo, era del CCS, actualizando la version se arreglo eso.

Aun que dudo que te pase esto, porque seria bien tonto, mas que nada lo pongo para dejar una experiencia que pueda servir a otros menos experimentados =)

Mas bien, has probado con otros de esos pics?

No es tonto, estuve viendo desde MPLAb y veo que el archivo generado en assembler desde CCS coincide con el que veo en MPLAB, en ambos NO se cambia de tipo de oscilador aunque le ponga lo que le ponga.

Eso no lo entiendo.
Mañana (porque hoy ya es tarde) voy a ponerlos a mano esos bits, a ver que pasa, porque sino voy a volverme loco... :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: No consigo que funcione el cristal !!
« Respuesta #14 en: 13 de Septiembre de 2012, 05:52:48 »
Yo tengo esto de un 18f46k80

fuses:
#pragma config RETEN = OFF, INTOSCSEL = HIGH, SOSCSEL = DIG, XINST = OFF
#pragma config FOSC = INTIO1, PLLCFG = ON, FCMEN = OFF, IESO = OFF, PWRTEN = OFF
#pragma config BOREN = OFF, WDTEN = OFF, CANMX = PORTC, MCLRE = OFF, STVREN = OFF
#pragma config BORPWR = LOW

#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF, CPB = OFF, CPD = OFF
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF, WRTC = OFF, WRTB = OFF
#pragma config WRTD = OFF, EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF
#pragma config EBTRB = OFF

y esto en el inicio del main:
OSCCONbits.IRCF=7;
OSCTUNEbits.PLLEN=1;

Lo unico que creo es que utilizaba el cristal interno a 16mhz y luego el pll hasta 64mhz, hace tiempo que lo hice asi que no me acuerdo bien, sin embargo funcionaba a la perfeccion.


 

anything