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) ;) 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 :(


blog comments powered by Disqus