# Problema con oscilador de 20Mhz



## ilpancho (Jul 29, 2006)

Saludos, estoy montando un programa en un pic 16F877A que debe funcionar a 20Mhz el programa simulado en proteus funciona a la perfección ,  pero en la práctica  no funciona al tiempo que debe ser,  el pic no responde como debería,  he notado que si cortocircuito momentaneamente los capacitores del oscilador el programa corre por unos segundos,  igual si coloco mis dedos sobre la union de los dos capacitores.  Estoy usando el circuito oscilador básico:  un cristal de 20Mhz entre las entradas de osciladores  y unos cap de 22pF desde cada uno de esos pines a tierra.  Cambie el cristal y los capacitores  y el resultado es el mismo. ¿Alguien sabe que puede funcionar mal? Gracias.


----------



## shungokugatsu (Jul 29, 2006)

pues a lo mejor existe algun falso con tu protoboard o algo x el estilo, pero xk no pruebas con un oscilador RC, xk anteriormente tenia un problema con el oscilador de cristal y lo cambie x el RC y perfecto!!!!   , el PIC ya funciona a la perfeccion. Pruebale y me dices si si te funciono.


----------



## ilpancho (Jul 30, 2006)

Gracias por tu respuesta, no creo que sea un falso contacto por que ya lo cambié de proto dos veces y tampoco resultó y no puedo usar RC por que no llega a 20 Mhz


----------



## kepelotas (Jul 31, 2006)

Yo probaría a jugar con otros valores de condensador, entre 12 y 33pF, además compruba que tienes muy muy cerca de los pines de alimentacion otro de unos cuantos nanos, a mi me ha pasado con varios pics y se ha solucionado con ello


----------



## Jodorowsky (Ago 2, 2006)

A mi me pasaba algo parecido pero era que no tenia la resistencia en la pata 1 del 877A a 5V, me habia olvidado pero cuando lo tocaba funcionaba, .....puse la resistencia y todo ok, .... use un cristal de 20Mhz y capacitores de 33pF..


----------



## ilpancho (Ago 2, 2006)

Sigue sin funcionar, estoy apunto de usar agua bendita. tengo los mismos capacitores y el mismo cristal, con una resistencia de 10k en el pin 1.  Ahora estoy tratando de hacer que paradee un led nomas, sucede que cuando alimento (5.19v)  el led enciende sin parpadear, en cuanto toco los capacitores este comienza a parpadear.  Sigo sin entender por que no funciona como deberia


----------



## Chipcon (Ago 3, 2006)

oye y tu configuracion bits si esta el modo HS si lo tienes en otra seleccion de oscilador no va a funcionar


----------



## Chispas (Ago 5, 2006)

asegurate que los condensadores estan a masa, porlo que dices tiene ìnta de que funcionan cuando le pones una masa ((TU)) puede que tengas los condensadores con las paras al aire


----------



## ItaloM (Ago 5, 2006)

Hola a todos soy nuevo en este foro.
Prueba que en los pines del oscilador haya un voltaje medio de 1.6 a 2.2 V, pero nunca son iguales, si hay un voltaje menor a 1, la configuración de bits del cristal esta mal seleccionada, como dijo un compañero cambiala a alta velocidad HS.
Tambien puedes probar conectando con un cable la carcaza del cristal de cuarzo a tierra, ya que puede haber mucho ruido en la red de tu domicilio, no esta demas conecta un capacitor de 100uF a la entrada de la fuente y capacitores de bypass de 0.1uf cerámicos lo mas cerca a las alimentaciones del pic.
Revisa la conexión de reset y en tu programa al inicio genera un retardo >= a 200ms
Sea como resuelvas el problema comenta, para aprender.


----------



## ItaloM (Ago 5, 2006)

Hola a todos soy nuevo en este foro.
Prueba que en los pines del oscilador haya un voltaje medio de 1.6 a 2.2 V, pero nunca son iguales, si hay un voltaje menor a 1, la configuración de bits del cristal esta mal seleccionada, como dijo un compañero cambiala a alta velocidad HS.
Tambien puedes probar conectando con un cable la carcaza del cristal de cuarzo a tierra, ya que puede haber mucho ruido en la red de tu domicilio, no esta demas conecta un capacitor de 100uF a la entrada de la fuente y capacitores de bypass de 0.1uf cerámicos lo mas cerca a las alimentaciones del pic.
Revisa la conexión de reset y en tu programa al inicio genera un retardo >= a 200ms
Sea como resuelvas el problema comenta, para aprender.


----------



## ilpancho (Ago 10, 2006)

El voltaje en el pin 13 es de .97  y el del pin 14 es de 2.26 voltios.  he revisado la conexion del reset y los fuses de programacion,  todavia no tengo ide de que puede estar causando el problema, a veces arranca de una pero el led parpadea a una velocidad mucho mas rapida de lo que deberia.  Para que decis de poner el retardo?


----------



## icho (May 1, 2007)

hola estimados colegas, les comento que estuve queriendo arrancar un LCD exactamente el LM016L, que obviamente necesita entre tiempos para poder arrancar el LCD. A esto me tuve qeu bajar una libreria que hay en internet, para los retardos, es llamada RETARDOS.INC... pero no entiendo lo que pasa, primero lo ejecuto en el MPLAB y me funciona de maravilla, luego lo paso al proteus y ahi empieza mi pesadilla... inicialmente no correo con los 4Mhz que dice la libreria que deberia correr, entonces comence hacer prueba y error hasta encontrar la frecuencia exacta para que corra el programa.. que es hacer parpadear un led por un determinado tiempo... Despues de que funciona bien en el proteus, aumento unas cuantas instrucciones mas en el MPLAB, lo paso al proteus y toda la configuración del cristal de 4Mhz que hice, se va al tacho.. ya no sirve.. alguein tiene alguna idea???????


----------



## pic-man (May 1, 2007)

icho, esto no tiene mucho que ver con el tema principal pero no te fies mucho del proteus, yo cuando simulo un lcd jamás he podido ponerle otra velocidad qeu no sea 1MHz, pero al momento de armar el circuito uso 4MHz y funciona, el proteus no siempre dice la verdad


----------



## radose (Abr 6, 2008)

Buenas,

A mi también me pasó lo mismo. Para solucionarlo conecte los condensadores de 22p directamente en las patas, tanto la de masa como la de OSC1 y 2, al igual que el oscilador. Tambien los condensadores de desacoplo de 100n directamente en las patas. En mi caso, al alimentar desde USB, el ruido de la masa del ordenador pasa al circuito; es recomendable hacer las masas lo más cortas posibles (o redundantes) y conectar la carcasa del oscilador a masa. También no te olvides de la RC del pin MCLR del PIC: el condensador=100n a masa y a MCLR y la R=10k a alimentacion y a MCLR. Con esto deberia funcionar.

Ya se que el hilo está más que muerto, pero a alguien le puede interesar.


----------



## joluap (Mar 14, 2009)

Por favor, como pongo en proteus un oscilador de 40 MHz, disculpen pero no he usado mucho esta herramienta... ayudenme por favor...


----------



## Manonline (Mar 14, 2009)

cuando tocas con el dedo el cristal decis que funciona? proba poniendo el chasis del cristal a masa (soldale un cablecito). Tambien trabajar en la proto con 20MHz es algo medio choto. Si sos rapido haciendo placas proba de hacerle una placa.

salu2,
mano.


----------



## cristian_elect (Mar 15, 2009)

Yo uso proteus y siempre me funciona en la relidad. Claro como electronico uno debe saber que las compuertas cmos cuando esta como entrada siempre deben poner una resistencia sea tierra o Vcc segun el programa.


----------



## jfcohh (Oct 10, 2014)

Hola, me pasó algo parecido, con un 16F877A a 20 MHz y un LCD LMB162AFC. El programa debía poner "angel of death" devil en el LCD pero aparecía sólo la línea superior con cuadros blancos, el LCD es de fondo azul. Al tocar con la punta del multimetro un borne del PIC, especifícamente en uno de los dos bornes designados para el oscilador, el LCD empezaba a funcionar pero solo si dejaba la punta del multimetro, incluso el LCD mostraba caracteres incongruentes y variantes pero todo se detenia cuando separaba la punta del multimetro. 

La solución fue cambiar la configuración a cristal de alta velocidad, es decir que estaba configurado con el #fuses XT y se resolvió cuando sustituí con #fuses HS.

Listo, de ahí ya jala a la primera y soy feliz


----------

