TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micronet3 en 04 de Septiembre de 2009, 21:32:57
-
hola amigos una consulta:
quiero hacer trabajar el pic 18f4550 a 48Mhz, recien llego hasta aqui, asi que mis ideas son algo confusos.
poniendo un crystal de 20Mhz, poniendo en el fuse
#FUSES HSPLL
y en delay lo siguiente
#use delay(clock=48000000)
el pic va a trabajar a 48mhz?
gracias por su respuesta
-
no, falta colocar el divisor /5 para 20Mhz de entrada, para otros valores se tiene que cambiar el divisor
HSPLL,PLL1,CPUDIV5
creo q con eso iria, quizá falte USBDIV para el USB, pero para aplicación normal tendría que dar sin eso.
para más detalles te invito visitar este link (http://www.todopic.com.ar/foros/index.php?topic=15208.0), hay una imagen con un caminito rojo, por ahí va la cosa.
saludos.
-
Hola micronet3:
Si tienes un cristal de 20Mhz lo que tienes que hacer es poner un cristal de 12MHz y poner un PLL4 para que 4x12=48.
Como 48 es múltiplo de 48/2=24/2=12=2=6/2=3
48= 2^4*3 por tanto podrás usar para obtener un 48MHz
PLL2 -> cristal de 24 MHz no es posible el máximo que admite el pic es de 20MHz
PLL3 -> cristal de 16MHz
PLL4 -> cristal de 12MHz
....
y respecto al código tendrá que poner algo por el estilo a esto:
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,PLL4,VREGEN
#use delay(clock=48000000)
Vamos eso lo que creo, prueba y nos comentas.
Un saludete y suerte.
-
muchas gracias amigo, clarisimo tu explicacion, voy a probarlo, ahorita no tengo ese crystal, voy a conseguirlo y te comento
-
si no me equivoco con PLL1 y CPUDIV5 y 20MHz de cristal, se puede tener el micro trabajando a 48MHz
prueba también eso, recuerdo haber trabajado con esos fuses y todo marchaba bien.
saludos
-
Me he equivocado respecto al código, debería de ser:
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,PLL4,VREGEN
#use delay(clock=48000000)
Un saludete
-
Aquí tienes Consiguiendo 4 Mhz para los 48 Mhz necesarios en los PIC's con USB 2.0 (http://picmania.garcia-cuervo.net/conceptos.php#USB4Mhz)
Con un cristal de 20 Mhz tienes que dividir por 5 para conseguir los 4 Mhz que necesita como entrada el PLL.
#fuses HSPLL,USBDIV,PLL5,CPUDIV1,VREGEN
-
muchas gracias por su respuesta, yo no estoy usando el modulo usb, aunque es muy atractivo, por ahora estoy trabajando por el puerto serie de la pc.
bueno ayer llegue tarde a la tienda de componentes electronicos, no he conseguido el crystal de 12Mhz, voy a probar con el de 20 tal como me sugiere redpic y cryn.
-
pues como estaba trabajando con un crystal de 20Mhz, la correcta configuracion lo encontre en el enlace que me paso cryn, muchas gracias amigos. la aplicacion esta funcionando perfectamente a 48mhz con la ayuda del pll
/*
//configure a 20MHz crystal to operate at 48MHz
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
*/
-
la configuracion de redpic, todo un maestro esta tambien bien sino que me entro la duda porque utiliza el modulo USB.
-
Pues quítalo. Usa solo el PLL con su divisor correcto y en paz. El módulo USB no es obligatorio tenerlo activado.
#fuses HSPLL,PLL5,CPUDIV1
-
si ya lo probe, funciona correctamente. gracias
-
si ya lo probe, funciona correctamente. gracias
Asi me gusta que acaben estos asuntos. :mrgreen:
-
gracias amigo.