Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
; Palabra de configuración
Config_Start
FOSC=XTPLL_XT,USBDIV=2,PLLDIV=1,VREGEN=On,PBADEN=OFF
FCMEN=OFF,IESO=OFF,PWRT=On,WDT=OFF,LVP=OFF
Config_End
;*******************************************************************************
Xtal 48MHz ; Definir una frecuencia de 48MHz. (CPU Core)
; Palabra de configuración
Config_Start
FOSC=HSPLL_HS,USBDIV=2,PLLDIV=2,VREGEN=On,PBADEN=OFF
FCMEN=OFF,IESO=OFF,PWRT=On,WDT=OFF,LVP=OFF
Config_End
;*******************************************************************************
Xtal 48MHz ; Definir una frecuencia de 48MHz. (CPU Core)
Porfavor como puedo configurar el reloj interno del pic 18f2550 a 48 MHz utilizando el Proton Basic, es para conexion USB 2.0
#include <18F2550.h>
#fuses HS,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,CPUDIV1,NOVREGEN
#use delay(clock=20000000)
#use fast_io(A)
#use fast_io(B)
#define LCD_DATA_PORT getenv("SFR:PORTB")
#include <lcd.c>
unsigned int8 value_IR;
unsigned int8 value_red;
unsigned int8 value_blue;
void main()
{
lcd_init();
set_tris_A(0b1110011);
set_tris_B(0);
setup_adc_ports(AN0_TO_AN1|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
delay_us(10);
while(true)
{
value_IR = read_adc();
}
Utiliza esta palabra de configuración para usar el oscilador interno a 8MHz:Hola, ¿Alguien me puede decir que le modifico a mi código para que trabaje con el oscilador interno?
#fuses NOFCMEN,NOIESO,NOBROWNOUT,PLL2,CPUDIV1,NOUSBDIV,NOVREGEN
#use delay(internal = 8Mhz)
Utiliza esta palabra de configuración para usar el oscilador interno a 8MHz....
#include <18F2550.h>
#fuses INTRC,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,CPUDIV1,NOVREGEN
#use delay(clock=4000000)
Como lo hice es tan solo otra forma, si te fijas, en #use delay(options) selecciono "internal"Ok aunque yo lo hice solo asi..
Solo cambie el fuse HS por el fuse INTRC y con eso ya especificas que usaras el oscilador interno y solo basta con poner una velocidad valida en el clock y no use el set_up ni otra cosa.Código:#include <18F2550.h> #fuses INTRC,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,CPUDIV1,NOVREGEN #use delay(clock=4000000)
Aunque me gustaría saber si con la forma que usted lo hizo puedo configurar mas cosas
o es mejor o que
pero de todos modos gracias
Éstas son las configuraciones que se usan para obtener los 48MHz para el módulo USB.
Con un cristal de 4MHz.
Con un cristal de 8MHz.Código:; Palabra de configuración Config_Start FOSC=XTPLL_XT,USBDIV=2,PLLDIV=1,VREGEN=On,PBADEN=OFF FCMEN=OFF,IESO=OFF,PWRT=On,WDT=OFF,LVP=OFF Config_End ;******************************************************************************* Xtal 48MHz ; Definir una frecuencia de 48MHz. (CPU Core)
A partir de aquí ya solo vas cambiando el factor de división del PLL.Código:; Palabra de configuración Config_Start FOSC=HSPLL_HS,USBDIV=2,PLLDIV=2,VREGEN=On,PBADEN=OFF FCMEN=OFF,IESO=OFF,PWRT=On,WDT=OFF,LVP=OFF Config_End ;******************************************************************************* Xtal 48MHz ; Definir una frecuencia de 48MHz. (CPU Core)
Cristal de 12MHz. = PLLDIV=3
Cristal de 16MHz. = PLLDIV=4
Cristal de 20MHz. = PLLDIV=5
Cristal de 24MHz. = PLLDIV=6
Cristal de 40MHz. = PLLDIV=10
Suerte.
Sí, aunque también existe la posibilidad de no usar el módulo USB.¿Esta configuración es sólo para la configuración de los modos del oscilador y el funcionamiento del USB verdad?
Eso depende del modo y frecuencia que requieras.¿Cómo sería la configuración si quiero modificar el control del oscilador solamente?
Porque tengo deshabilitado el modo USB.
Eso se debe a una mala selección de bits en la palabra de configuración.Tengo un 18F4550 conectado a un cristal de 4 MHz, pero el funcionamiento del micro es muy lento.
Según leí en la hoja de datos del micro, los comentarios del foro y de D@rkbytes.
Para configurar el oscilador tengo que acceder al los registros de configuración OSCCON y OSCTUNE, pero no estoy entendiendo cómo hacerlo, como me lo explica la hoja de datos.![]()
Sí, pero eso depende de la configuración de los bits FOSC3:FOSC0Otra consulta. ¿En un 18F, cuando se utiliza un oscilador externo.
Se debe conectar solo una pata del oscilador al micro (OSC1) y la otra del micro queda libre (OSC2)?
Cuando usas el oscilador con un cristal, el pin RA6 (CLKO) siempre será la salida del oscilador.Perdón. :estudiando: Creo que la pata del micro (OSC2) queda libre cuando estoy en modo HS.
Y en mi caso al utilizar un cristal de 4 MHz, estoy en XT.hno:
Device 18F4550
Declare Onboard_USB No
; Palabra de configuración
Config_Start
FOSC=XT_XT,USBDIV=2,PLLDIV=1,VREGEN=On,PBADEN=OFF
FCMEN=OFF,IESO=OFF,PWRT=On,WDT=OFF,LVP=OFF
Config_End
;*******************************************************************************
Xtal 4MHz ; Definir una frecuencia de 48MHz. (CPU Core)
OSCCON = %11100000
Pues si, el interno LFOSC, (31 KHz/31.25 KHz) sirve para el modo de reposo, es decir, cuando el microcontrolador es puesto en bajo consumo (Sleep) y queda en espera de una interrupción para despertar.Los relojes a los que se refiere todo el tiempo en la hoja de datos (primario, secundario e interno) son los que están dentro del micro.
Y también se puede agregar uno periférico, que en mi caso es un cristal de 4MHz.
No. El registro OSCCON sirve para seleccionar la frecuencia del oscilador interno, entre otros parámetros.Entonces, al configurar el OSCCON lo que estoy configurando son los 3 relojes que trae el micro y que el cliente debe configurar de acuerdo a sus prestaciones.
NOTA: Es por eso que en mi caso, al no configurar nada, por más que tenga conectado de forma periférica un oscilador de 4MHz el micro se está ejecutando a 1 MHz hasta el punto que a veces se reinicia solo.
Entonces no realices la configuración del registro OSCCON y desactiva el fuse FCMENBien. Como quiero utilizar solo el oscilador periférico y apagar los relojes internos (del CPU).
Lo que voy hacer es utilizar el modo “PRI_IDLE MODE” configurando el OSCCON de esta forma OSCCON = %1110100
1 – Ejecuto el modo IDLEN y la instrucción SLEEP al poner un 1 en el bit 7,
2 – Al bit 1 y bit 0, les doy los valores 00 para utilizar el modo PRI_IDLE.
Me parece que tienes que leer más la hoja de datos, ya que algunos bits son de sólo lectura.No se como asignarle el valor 0 a los FOSC3:FOSC0. :cabezon:
No sé qué les parece si hago eso.
Con esa frecuencia sí es posible.¿Es posible llegar a esa frecuencia con el oscilador externo de 4MHz?
Seguramente no estás usando la palabra de configuración correcta.Probé configurando el OSCON para utilizar solo el reloj interno y no me funcionó, el micro no me prende.
Luego probé apagar el CFMEN para utilizar el oscilador primario y tampoco me funciona.
En el post #2 de éste mismo tema se encuentra, y con la sintaxis para Proton.¿Alguien tiene el código que se necesita para configurarlo?
Creo que el problema es que no sé cómo configurar los registros en proton.
Si no necesitas precisión y tampoco requieres una frecuencia de operación mayor a 8 MHz, sí puedes usar el oscilador interno.O si les parece mejor a ustedes que tienen mas experiencia, le saco el cristal y utilizo solo el oscilador interno.
A realizar operaciones con los ciclos de reloj del microcontrolador.¿A qué le llamas "necesitar precisión"?
Sólo se verían afectados si la frecuencia de operación del bus está por debajo de los parámetros establecidos de comunicación.Tengo conectado al micro un reloj DS1307 y una micro SD.
¿La frecuencia del reloj interno afectaría su funcionamiento, es decir, la comunicación I2C, SPI, etc.?