TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: NANO1985 en 24 de Noviembre de 2010, 19:14:21

Título: Es posible modificar la frecuencia de trabajo?
Publicado por: NANO1985 en 24 de Noviembre de 2010, 19:14:21
hola amigos.... es posible que el micro (18LF4550) arranque funcionando configurado de la siguiente forma:
HS oscilador,...
PLL enabled,...
CPU system clock (96Mhz PLL div 3)
Oscilador Seleccion (Divided by 5, 20Mhz input)

y luego mediante alguna instruccion mistras el programa se ejecuta, pasemos a la siguiente configuracion??

HS oscilador,...
PLL enabled, ...
CPU system clock (96Mhz PLL div 2)
Oscilador Seleccion (Divided by 5 20Mhz input)

Gracias de antemano!
SAludos!
german  8)
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: jeremylf en 25 de Noviembre de 2010, 00:17:24
Para ese pic, que yo sepa, no se puede.. mientras que los fusibles de un dspic si aceptan eso... si me equivoco corrijanme que no estoy muy enterado de esa habilidad de los dspic.
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: XAVICOROSS en 25 de Noviembre de 2010, 00:33:22
En ese micro que yo sepa no se pueden reconfigurar los fusibles dentro del programa... Pero tengo serias dudas, ya que los fusibles hacen referencia a cierta dirección dentro de la memoria del microcontrolador... ¿será que se puede acceder a esas direcciones desde el programa?

Alguien que lo haya hecho y por lo menos intentado, por favor responda...

Saludos!!!
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: Suky en 25 de Noviembre de 2010, 00:49:22
Entiendo que podes cambiar entre el oscilador primario y oscilador secundario, habilitandolo en el fuse correspondiente (IESO), pero no cambiar la configuración del PLL.


Saludos!
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: AKENAFAB en 25 de Noviembre de 2010, 05:44:27
IESO es para minimizar el tiempo en que se pone a trabajar el micro.

Lo que hace es usar el oscilador interno cuando sale de un sleep o es energizado y cuando detecta que el oscilador externo es estable hace el cambio por ese.

IESO , Internal-External SwitchOver.

Por otra parte , siempre puedes cambiar de oscilador primario a secundario (el que esta pegado al timer1),que en general se pone uno LP a 32.78KHz .

Saludos!
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: Suky en 25 de Noviembre de 2010, 11:13:24
IESO es para minimizar el tiempo en que se pone a trabajar el micro.

Lo que hace es usar el oscilador interno cuando sale de un sleep o es energizado y cuando detecta que el oscilador externo es estable hace el cambio por ese.

IESO , Internal-External SwitchOver.

Por otra parte , siempre puedes cambiar de oscilador primario a secundario (el que esta pegado al timer1),que en general se pone uno LP a 32.78KHz .

Saludos!

Error!  :mrgreen:

IESO habilita el cambio de clock, permitiendo cambiar de clock entre primario, secundario o interno. (Pagina 33) Esto lo controlas mediante el registro OSCON


Saludos!  ;-)
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: AKENAFAB en 25 de Noviembre de 2010, 17:10:10
No veo el error , Two-Speed Start-up

Página 301   :mrgreen:
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: Suky en 25 de Noviembre de 2010, 18:01:11
Sera otra utilidad, pero conozco quien utiliza cristal externo y 48 MHz para comunicarse por USB, y cuando no es necesario pasa a oscilador interno menor frecuencia, menor consumo, o por lo menos eso comentó  :D (No encuentro que en hilo fue) Yo no he experimentado con eso  ;-)
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: NANO1985 en 25 de Noviembre de 2010, 19:20:33
muy buena data amigos! ya voy a experimentar! un abrazo!
saludos! y gracias!  8)
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: manutek en 26 de Noviembre de 2010, 00:35:03
en el pic 16f88 tiene tambien el reguistro OSCON para este fin y arranca en 32khz como por defecto en osci interno
saludetes
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: PalitroqueZ en 28 de Noviembre de 2010, 19:47:02
yo una vez logré cambiar la frecuencia de operación "en caliente"

a partir de un cristal externo (Fcpu=48Mhz), cambiaba al bloque oscilador interno

Código: C
  1. ...
  2. //----------------------------------------------------
  3.   setup_oscillator(OSC_INTRC |OSC_8MHZ);
  4.   // cambio de oscilador primario = oscilador interno a 8 MHz
  5.   // IESO bit ignorado      
  6.   delay_cycles(10); // transición de 7 ciclos + adicionales
  7.   while(!IOFS){}  //espera estabilización del Fosc
  8. ...

y luego para volver a la velocidad que da el cristal externo hacía:

Código: C
  1. ...
  2.   setup_oscillator(OSC_NORMAL);
  3.   // oscilador primario activo. IESO bit ignorado
  4.   delay_cycles(10); // transición de 7 ciclos + adicionalesç
  5. ...

Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: NANO1985 en 28 de Noviembre de 2010, 19:49:17
yo una vez logré cambiar la frecuencia de operación "en caliente"

a partir de un cristal externo (Fcpu=48Mhz), cambiaba al bloque oscilador interno

Código: C
  1. ...
  2. //----------------------------------------------------
  3.   setup_oscillator(OSC_INTRC |OSC_8MHZ);
  4.   // cambio de oscilador primario = oscilador interno a 8 MHz
  5.   // IESO bit ignorado      
  6.   delay_cycles(10); // transición de 7 ciclos + adicionales
  7.   while(!IOFS){}  //espera estabilización del Fosc
  8. ...

y luego para volver a la velocidad que da el cristal externo hacía:

Código: C
  1. ...
  2.   setup_oscillator(OSC_NORMAL);
  3.   // oscilador primario activo. IESO bit ignorado
  4.   delay_cycles(10); // transición de 7 ciclos + adicionalesç
  5. ...


esto era lo que queria ver hermanooo  ;-) .... pero creo que en mikroC no se puede hgacer çesto .... o si?
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: PalitroqueZ en 28 de Noviembre de 2010, 20:00:42
yo me atrevo a decirte que en mikroC SI es posible, si no posee las funciones para manejar el modulo oscilador, podrías hacerlo cambiando los registros involucrados bit a bit (o por bytes).

No me imaginaría que mikroC no permita el manejo de SFR  :shock:


Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: Suky en 28 de Noviembre de 2010, 20:15:22
En todo caso si las sentencias de MikroC no te lo permite, podes usar ASM embebido. Y sino, a pensar de cambiar de compilador!  :D
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: NANO1985 en 29 de Noviembre de 2010, 02:22:02
En todo caso si las sentencias de MikroC no te lo permite, podes usar ASM embebido. Y sino, a pensar de cambiar de compilador!  :D

me parece un buen plan jajajajaja... pero la idea de PalitroqueZ tambien es muy buena.... ya voy a intentarlo...
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: PalitroqueZ en 29 de Noviembre de 2010, 11:40:00
ya nos comentarás NANO

 :P
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: XAVICOROSS en 29 de Noviembre de 2010, 19:55:16
Excelente Palitroquez, probaré las sentencias que posteaste, eso mismo buscaba, nunca lo había intentado, gracias...
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: NANO1985 en 30 de Noviembre de 2010, 17:33:50
se puede!!!!!!!!!!!!!!!!!!!!!!!!!!!  :-/  :-/ era una tonteraaaaaaa....   :oops: logico que actuando sobre los siguiente bits se puede... sobre el PLL no.... pero conforme!!!  ;-)

OSCCON.IRCF2=1; 
OSCCON.IRCF1=1;
OSCCON.IRCF0=1; 
OSCCON.SCS1=1;
OSCCON.SCS0=1;


saludos!!! y muchas gracias!
Título: Re: Es posible modificar la frecuencia de trabajo?
Publicado por: PalitroqueZ en 30 de Noviembre de 2010, 19:58:39
pues me alegro también NANO  :-/