Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
¿Que inconvenientes tiene el utilizar el oscilador interno del PIC? Porque no se suele utilizar mucho y digo yo que sera por algo!!!
Y otra duda que tengo, ¿que diferencias hay en los PIC's que son con tecnologia CMOS?
Pues el otro día me hice la misma pregunta así que me puse a mirarlo (ya que muchas veces he oido que esta frecuencia no era exacta) tenía el circuito y he cogido unas imagenes de un pin del pic con cristal y sin cristal.
El programa es este:
org 0
goto Start
org 5
Start
bsf STATUS,RP0 ; select Register Page 1
bcf TRISC,0 ; make IO Pin C.0 an output
bcf STATUS,RP0 ; back to Register Page 0
MainLoop
bcf PORTC,0 ; turn on LED C0
bsf PORTC,0 ; Turn off LED C0
goto MainLoop ; Do it again...
end
Va sobre un 16f690, hay 4 instrucciones, empieza poniendo el bit de salida a 0 (instrucción de un ciclo), lo pone a 1 (instrucción de un ciclo), y vuelve al principio repitiendo ese bucle (instrucción de 2 ciclos), es decir tenemos 3 instrucciones que requieren 4 ciclos máquina, y como cada ciclo máquina son 4 ciclos de reloj, pues en total 16 ciclos de reloj, por lo que deberíamos tener una señal de (4Mhz/16) unos 250 KHz.
Y la salida con el cristal interno configurado de fábrica las clava.
Te agrego las 3 salidas que me da el osci, la primera con un cristal de 4Mhz y los dos condensadores, la segunda con un cristal de 16 Mhz para ver que realmente está funcionando el cristal externo (salida de 1 Mhz) y la tercera en azul la del pic con el oscilador interno como viene de fábrica, lo he probado con dos pics y en los dos han salido salidas iguales.
Cristal 4 Mhz
Cristal de 16 Mhz
Sin cristal, oscilador interno
Como ves un pic calibrado de fábrica pues clava la salida que tiene que dar, lo he probado en 2 16f690 de samples.
El problema debe ser cuando quieres usar una frecuencia que no es con la que viene de fábrica, para establecer la frecuencia tienes que modificar un registro, y el valor de la frecuencia no debe ser exacta a la dada en el valor del registro. No estoy seguro de esto ya que no me he puesto a modificarla, a ver si alguien que se haya puesto con esto nos puede decir, si no otro día hago la prueba y vemos que sale.
Mi conclusión (si lo he hecho bien) es que los 4Mhz con que vienen de fábrica son exactos, lo difícil debe ser poner exactas otras frecuencias. Además de que te limitas a una frecuencia interna de 8Mhz máxima, en lugar de los 20 o 40 Mhz que puede alcanzar con el cristal.
Madre mía vaya demostración!!! Muchas gracias JM.
Nada, es que me surgio a mi tb la duda el otro día, de todas formas si no responde nadie pues hay que hacerlo con las otras frecuencias, a ver porque se queja tanto la gente, pero es que en muchas placas ves que le ponen un reloj externo de 4 Mhz para un solo pic y aquí el oscilador interno va perfecto, almenos en esos dos que he cogido.
JM, fantástica respuesta.
Actualmente estoy usando el oscilador interno de un 16F688, concretamente en el modo de "alta frecuencia" (8 MHz) y la verdad es que como era de esperar los tiempos los clava. Pero en el caso en que uno quiera ajustar aun más la velocidad el micro cuentas con el registro OSCTUNE (90h) con 5 bits (16 niveles en positivo y 16 niveles en negativo) que te permite variar esta velocidad un +/-12%, es decir desde algo más de 7 a algo menos de 9 MHz.
Además de esta flexibilidad, el poder utilizar los dos pines de reloj como entradas y salidas es un desahogo importante en un micro que tiene solo 14 pines.