Autor Tema: pic 18f4540  (Leído 5967 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kidpic

  • PIC16
  • ***
  • Mensajes: 231
pic 18f4540
« en: 28 de Octubre de 2011, 20:19:32 »
He leido por ahí que puedo hacer funcionar el pic 18f4550 con un oscilador de 4Mhz pero configurarlo a 48Mhz. Alguien me puede dar un hilo para investigar sobre esto. como se pueden configurar los fuses del 18fxxxx. son los mismos que el 16f877a
Gracias. estoy iniciandome en el mnejo de estos pic.
Si quieres trascender..., enseña humildemente  lo que sabes.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: pic 18f4540
« Respuesta #1 en: 28 de Octubre de 2011, 20:40:45 »
la informacion la encuentras en la hoja de datos,por aqui tambien esta explicado
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: pic 18f4540
« Respuesta #2 en: 28 de Octubre de 2011, 20:47:33 »
Hola kidpic. Te paso un mini tutorial que fui armando. Con ayuda de un tutorial que encontré aquí en el foro del usuario Redpic. Y buscando en el datasheet. No es ninguna verdad absoluta. Sólo una auto ayuda que hice cuando estudié ese tema. Lo que hice está en c18. pero te va a ser útil si es que usás otro c. Cualquier cosa que se te complique avisame por este medio.  ;-)
  

Aquí podés encontrar más información:

http://picmania.garcia-cuervo.net/conceptos.php#USB4Mhz
http://usuarios.multimania.es/electronicapic/manual/primeros_pasos_con_el_18F4550.pdf

         Saludos.
                    Jukinch

El pic 18f4550 se puede usar únicamente con los cristales de los siguientes valores para sacar con el pll distintas frecuencias:

4 MHz
8 MHz
12 MHz
16 MHz
20 MHz
24 MHz
40 MHz
48 MHz

Con dichos cristales se pueden obtener los 48 mhz que se necesitan para trabajar con USB y hacer trabajar al programa del pic a una velocidad igual a los 48mhz o a frecuencias diferentes.
Por ejemplo: con un cristal de 4mhz logramos los 48mhz para el usb y podríamos hacer trabajar al programa del pic con una velocidad de 24mhz, o de 2 mhz o de 32mhz, etc.
Para ello se usa un prescaler con el que se pueden lograr los 48mhz que necesita el usb y configurar distintas velocidades de trabajo para el pic.
Por ejemplo: podemos usar un cristal de 4mhz para lograr los 48mhz para el usb y tener una frecuencia de trabajo desde 1 a 48mhz dependiendo de las configuración que elijamos.



Explicación:
Al pic se le conecta un cristal de una velocidad de 4mhz a 48mhz
Sea la velocidad que fuere que hayamos elegido, desde 4 a 48mhz, dicha velocidad deberá reducirse a 4 mhz para poder hacer funcionar el pll.

Para ello se utiliza un divisor

4 MHz por 1   =4
8 MHz  por 2  =4
12 MHz  por 3 =4
16 MHz por 4  =4
20 MHz  por 5 =4
24 MHz  por 6 =4
40 MHz por 10 =4
48 MHz por 12 =4


Una vez que se logran los 4 mhz el pic mediante un pll genera 96mhz
Esos 96 mhz se dividen por 2 y se obtienen los 48mhz que se necesitan para hacer funcionar al usb

Para ejecutar el programa se pueden elegir dos tipos de configuraciones

La frecuencia directa del cristal
La frecuencia obtenida del pll

Las cuales a su vez se pueden usar divididas:
   para el caso de la frecuencia directa del cristal se la puede usar dividida por 2, 3 o 4
   para el caso de la frecuencia obtenida del pll se la puede usar dividida por 2, 3, 4 o 6

ver las tablas de la página 29 y 30 del datasheet del pic18f4550 para ver todos los ejemplos


//~~~ EJEMPLO EN C18 CON CRISTAL DE 4MHZ TRABAJANDO A 48MHZ~~~//
  
#pragma config FOSC = XTPLL_XT,FCMEN = OFF,IESO = OFF,PLLDIV = 1, CPUDIV = OSC1_PLL2


ver pagina 29-30  del datasheet del 4550 para más ejemplos con otros cristales


//~~~ EJEMPLO EN C18 CON CRISTAL DE 4MHZ TRABAJANDO A 1MHZ~~~//


#pragma config PLLDIV = 1 // 4 MHz crystal on board
#pragma config FOSC = XT_XT // using an external, normal speed crystal, PLL module is disabled
#pragma config CPUDIV = OSC3_PLL4 // DIVIDE LA FRECUENCIA DE TRABAJO DEL MCU POR 4 = 1MHZ
#pragma config USBDIV = 2 // full speed USB gets its 48 MHz signal from PLL module (the PLL's 96 MHz output is divided by 2)


//~~~ EJEMPLO EN C18 CON CRISTAL DE 4MHZ TRABAJANDO A 4MHZ~~~//


#pragma config PLLDIV = 1 // 4 MHz crystal on board
#pragma config FOSC = XT_XT // using an external, normal speed crystal, PLL module is disabled
//no ponemos la línea #pragma config CPUDIV = OSC3_PLL4 para que no divida el postcaler y quede en 4 mhz




//~~~ EJEMPLO EN C18 CON CRISTAL DE 20MHZ TRABAJANDO A 20MHZ~~~//

#pragma config PLLDIV = 5 // 20 MHz crystal on board
#pragma config FOSC = HS // using an external, high speed crystal, PLL module is disabled
//no ponemos la línea #pragma config CPUDIV = OSC3_PLL4 para que no divida el postcaler y quede en 20mhz




//~~~ EJEMPLO EN C18 CON CRISTAL DE 20MHZ TRABAJANDO A 48MHZ~~~//

#pragma config FOSC = HSPLL,FCMEN = OFF,IESO = OFF,PLLDIV = 5, CPUDIV = OSC1_PLL2
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado kidpic

  • PIC16
  • ***
  • Mensajes: 231
Re: pic 18f4540
« Respuesta #3 en: 28 de Octubre de 2011, 21:14:24 »
gracias muchachos y jukinch.... quedó claro y tambien la info de que el usb trbaja con 48Mhz.
Si quieres trascender..., enseña humildemente  lo que sabes.


 

anything