Oscilador interno del PIC16F690

embeddedArco

Bueno, ya metidos con el 16F690, voy a explicar como hacer para poder utilizar el oscilador interno del chip (ahorrando componentes, pines del micro y algo de consumo, aunque de ésto último no estoy del todo seguro) Eye-wink

Veamos, el 16F690 tiene varias fuentes de reloj, XT, LP, HS, etc.... y además tiene un par de osciladores internos que pueden ser utilizados como reloj del sistema. Uno de ellos, llamado HFINTOSC, es un oscilador calibrado a 8MHz, el otro, LFINTOSC, es por contra un oscilador de baja frecuencia (32KHz) y sin calibración.

Para poder determinar la velocidad del sistema cuando utilicemos el reloj interno, debemos modificar el registro OSSCON. Para ello, los bits IRCF<2:0> de éste mismo registro permiten seleccionar la velocidad. Las posibles combinaciones son:

  • 000 = 31KHz
  • 001 = 125KHz
  • 010 = 250KHz
  • 011 = 500KHz
  • 100 = 1MHz
  • 101 = 2MHz
  • 110 = 4MHz
  • 111 = 8MHz

El bit 0, SCS, si vale 1, forzará a que el reloj utilizado sea el interno, independientemente del valor de los bits FOSC<2:0> del registro de opciones especiales de la CPU. En cambio, si dicho bit vale 0, la opción seleccionada será la indicada por los anteriores bits.

¡¡¡Ahhh!!! Importante: La frecuencia de reloj seleccionada se divide siempre entre 4 para obtener la frecuencia real con la que se alimenta todo el sistema. Vamos, que si he configurado 8MHz, en realidad, el micro estará trabajando a 2MHz Sad

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Pic 16F690

hola, quisiera que alguien me dijiera que tengo que poner en la palabra de configuracion para que funcione el pic 16f690, es que es la primera vez que ocupo este pic, y no se que tengo que habilitar y que tengo que deshabilitar.
gracias
espero su respuesta

Pues esto es lo que yo tengo...

... y funciona la mar de bien:

	org 0x2007
	__CONFIG (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _CP_OFF &  _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
	;; Fuses del micro:
	;;	Oscilador Interno.
	;;	WatchDog disable.
	;;	Power up timer disable.
	;;	Code protection disable.
	;;	Brown-out Reset disable.
	;;	Fail safe clock monitor disable.

Si tienes alguna duda, ya sabes...

The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --

Imagen de brue

Dos cosas...

1. Soy muy malo en matemáticas pero creo que 8 entre 4 son 2.

2. No hay ninguno con el que se pueda poner a más velocidad con el reloj interno? No hay waffers de este tipo? Es que estaría muy bien tener una wafer con un relor que de al menos 4 millones de instrucciones por segundo.

Un saludo!


·brue
·vigilando

brue

Ejem...

.... tienes razón, se me habrá ido el dedo (No se lo cuentes a nadie Eye-wink). Si me cuentas qué es un wafer te contesto, aunque supongo que habrá micros que rulen a mas velocidad y tengan también oscilador interno. Lo que pasa es que yo de momento estoy trabajando con éste y no tengo mucho tiempo de mirar mas (aparte que estoy de PICs.....)

Un saludo.

The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --

Imagen de brue

Pues ...

una tarjeta como el carné de la escuela, pero con un pic dentro.

--
·brue
·vigilando

brue

Ahh, vale

Vale vale. Pues con pics no sé como ande la cosa. Sé que con el tema de AVR había tarjetas que tenían como mínimo un AT90S8515 aunque ya no sé si el oscilador era interno o necesitaba un reloj externo. No llegué a leer mucho del tema. Tambíen creo recordar que había algunas que llevaban incluso un ATMEGA128, que es un maquinon....

The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --