Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

06/12/2011 #1

Avatar de nietzche

Configurar frecuencia de PIC para trabajar a 64 Mhz
Hola, estoy trabajando sobre una muestra que me llego de microchip, y resulta que era un encapsulado DIP, asi que me dedique a sacarle provecho a sus 64 Mhz y por consecuente a sus 12 MIPS, el tema es que haciendo un programa en CCS para el pic, recibo un mensaje diciendo:
"Option Invalid Internal Osc Freq Wrong"
Se supone que si selecciono la velocidad de reloj a 16 Mhz, con el FUSE H4 deberia de multiplicarla a 64 Mhz no?, entonces porque me saldra este error, alguna luz ?????

#include <18F46K20.h>
#device adc=8
#fuses H4,INTRC_IO, NOWDT, PUT ,BROWNOUT, NOLVP, NOMCLR
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#use delay(clock=16000000)
16/04/2013 #2


como vas?
nietzche dijo: Ver Mensaje
Hola, estoy trabajando sobre una muestra que me llego de microchip, y resulta que era un encapsulado DIP, asi que me dedique a sacarle provecho a sus 64 Mhz y por consecuente a sus 12 MIPS, el tema es que haciendo un programa en CCS para el pic, recibo un mensaje diciendo:
"Option Invalid Internal Osc Freq Wrong"
Se supone que si selecciono la velocidad de reloj a 16 Mhz, con el FUSE H4 deberia de multiplicarla a 64 Mhz no?, entonces porque me saldra este error, alguna luz ?????

#include <18F46K20.h>
#device adc=8
#fuses H4,INTRC_IO, NOWDT, PUT ,BROWNOUT, NOLVP, NOMCLR
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#use delay(clock=16000000)
Amigo solucionaste tu problema , segun mi pic puede llegar a 48 Mhz ( pic18f4550) , se supone que si uso la directiva pll4 en los fuses la multipilca y ya alcanza los 48 mhz , pero no se como comprobar si logro eso , siempre si pudiste llevarlo a 64mhz?
16/04/2013 #3

Avatar de cosmefulanito04

turkomac dijo: Ver Mensaje
Amigo solucionaste tu problema , segun mi pic puede llegar a 48 Mhz ( pic18f4550) , se supone que si uso la directiva pll4 en los fuses la multipilca y ya alcanza los 48 mhz , pero no se como comprobar si logro eso , siempre si pudiste llevarlo a 64mhz?
Viendo las hojas de datos muy por arriba, me parece que a más de 48MHz no lo podés llevar.

Fijate en el diagrama en bloque del oscilador:



En algún punto a la salida del PLL llegás a 96MHz, para alimentar el reloj del uC y de los periféricos internos tenés que pasar si o si por un preescaler de 2 como mínimo, con lo cual tu máximo clock posible será de 48MHz y no tenés forma de llevarlo a 64MHz.
16/04/2013 #4


ahhh sii ya vi ese preescaler ! pero entoncs mi duda es como saber si lo estoy llevando a 48Mhz , segun yo configuro asi mi PIC para llevarlo a 48Mhz. usando un cristal externo de 12 Mhz!

#include <18f4550.h>
#fuses hspll,mclr,nowdt,noprotect,nolvp,nodebug,pll4,novr egen,nopbaden
#use delay (clock=48000000)
16/04/2013 #5

Avatar de cosmefulanito04

Como el clock de los periféricos es el mismo que el del núcleo del uC, usá un timer y llevalo a un tiempo que te sea fácil comprobar, ej. 10 seg y encendé un led o algo.
16/04/2013 #6
Moderador

Avatar de D@rkbytes

turkomac dijo: Ver Mensaje
ahhh sii ya vi ese preescaler ! pero entoncs mi duda es como saber si lo estoy llevando a 48Mhz , segun yo configuro asi mi PIC para llevarlo a 48Mhz. usando un cristal externo de 12 Mhz!

#include <18f4550.h>
#fuses hspll,mclr,nowdt,noprotect,nolvp,nodebug,pll4,novr egen,nopbaden
#use delay (clock=48000000)
Viendo la hoja de datos, en la sección 2.3 (Oscillator Settings for USB) Tabla 2-3
Para una frecuencia de reloj de 12MHz, así serían los fuses...
Código:
#include <18f4550.h>
#fuses   noieso,nofcmen,nopbaden,nobrownout,cpudiv3,pll12
#use     delay(clock = 12MHz)
Se supone se debería seleccionar CPUDIV4, pero al compilar, no me queda establecido así.
Y tuve que seleccionar CPUDIV3 para obener la división entre 4.
Ésto es leyendo la configuración con WinPic800. (Sería cuestión de ver con otro software)

Leyendo el PIC


Viendo la configuración de fuses (Después de grabar el PIC)


Prueba con esos fuses usando el método que te menciona cosmefulanito04
Si puedes realizar una prueba de conexión USB rápida y sin problemas, ya está.
Como quiera mira la sección y la tabla que menciono.

Saludos.
Imágenes Adjuntas
Tipo de Archivo: jpg 18F4550_Reading.jpg (43,3 KB (Kilobytes), 54 visitas)
Tipo de Archivo: jpg 18F4550_Fuses.jpg (94,4 KB (Kilobytes), 56 visitas)
16/04/2013 #7


oooo probare , asi , pero quiero llegar a 48 mhz no a 12 Mhz , los 12 mhz son para multiplicarlos por 4 con el pll del micro ... otra cuestion :

#use delay (clock=48000000) , no tenia entendido que aqui iba la frecuencia a la que yo quiero que vaya el pic , para que el pic tenga entendido como hacer los calculos etc. o es para poner el valor de oscilacion de mi oscilador externo?
16/04/2013 #8
Moderador

Avatar de D@rkbytes

#use delay (frecuencia del cristal) // o frecuencia de trabajo del oscilador interno.
También aplica en fuentes de reloj externas (RC/Etc.)

Sip, es para que el compilador haga las instrucciones de retardo basadas en esa frecuencia de reloj.
16/04/2013 #9


entonces si quiero 48 Mhz en cpu , lo mas apropiado seria poner #use delay (48M) ?

hago alusion a esto por que acabo de leer esto y me confundi mas jeje :
NOTA:

Debo decir que no se vayan a confundir cuando declara en el CCS esto:

#use delay(clock=48000000)

Ya que mucho pueden pensar que deberia ir 20Mhz ( por el cristal real que estamos usando) pero no es asi, aca estamos declarando el clock de trabajo del pic, yaque con esto el CCS hara los calculos para poder manejar correctamente los tiempos y retardos y poder asi usar bien los delay y como nuestro clock resultante gracias al PLL es 48Mhz estamos poniendo eso .

http://www.icabots.com/foro/index.php?topic=120.0;wap2
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.