Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: yuhe en 27 de Febrero de 2012, 00:50:01
Título: Ayuda porfavor fuses 18f
Publicado por: yuhe en 27 de Febrero de 2012, 00:50:01
Hola amigos , mi pregunta creo que sera fácil para los mas expertos, mi problema es el siguiente, he creado un programa que de un principio iba en una pic 16f877a y sin problemas todo de lujo, ese mismo programa lo tuve que ampliar y lo tuve que migrar a otro pic con mas memo , me decidí por el 18f8525 (un señor pic), migre el código correctamente ,(pines ,entradas ,salidas etc) lo emule en proteus y bien ,perfecto, el problema esta que al pasarlo al pic en la realidad pues este trabaja muy lentamente , como a cámara lenta , pero hace todo lo programado , otras veces se reinicia y otras se queda bloqueado , me estado informando por aquí por el foro y es problemas de los fuses , por favor ayuda a configurar esos fuses amigos ya que no tengo ni idea aun de eso, atentamente y muchas gracias amigos. Se me olvidaba le tengo puesto un cristal de 4 mhz , y me gustaría saber como ponerlo a funcionar con su reloj interno como el 16f628 gracias de nuevo :)
Título: Re: Ayuda porfavor fuses 18f
Publicado por: heyheybabyhey en 27 de Febrero de 2012, 01:57:35
Es muy posible que ese pic tenga PLL interno, tendrías que fijarte en el datasheet, pero apuesto a que hace todo más lento de lo que tendría que hacerlo porque configuraste mal los registros del PLL y en vez de tener un reloj de 4MHz estás teniendo un clock interno efectivo menor.
Te dejo el header de un programa mio para un PIC18F2550 que también tiene PLL interno como ejemplo: El cristal externo que uso es de 20MHz, el clock efectivo luego del PLL y el prescaler es 48MHz.
//---------------------------------------------------------------------------- // // INCLISIÓN DE LIBRERIAS Y CONF de FUSES //
Título: Re: Ayuda porfavor fuses 18f
Publicado por: yuhe en 27 de Febrero de 2012, 10:51:25
Muchas gracias por tu pronta respuesta heyheybabyhey , lo voy a probar haora mismo y te cuento que tal me fue, muchas gracias de nuevo :)
Título: Re: Ayuda porfavor fuses 18f
Publicado por: KALLITOS en 27 de Febrero de 2012, 11:45:05
Hola, segun la hoja de datos ese micro no tiene oscilador interno, si quieres ver los fuses que soporta, en CCS hay una opcion VIEW>>VALID FUSES, alli encontraras los que soporta.
Lo que haría es colocar un cristal de 10Mhz, usar el H4 y tendras el micro corriendo a 40 Mhz o 10 MIPS.
Saludos
Título: Re: Ayuda porfavor fuses 18f
Publicado por: yuhe en 27 de Febrero de 2012, 17:03:21
Amigo KALLITOS como seria la configuración , es decir el encabezado del programa ? :oops:
Título: Re: Ayuda porfavor fuses 18f
Publicado por: KALLITOS en 27 de Febrero de 2012, 17:12:57
Código: C
#include <18f4620.h>
#device ADC=10
#fuses H4
#fuses NOWDT
#fuses NOPROTECT
#fuses NOPUT
#fuses NOBROWNOUT
#fuses NOLVP
#fuses NOSTVREN
#fuses NODEBUG
#fuses NOCPB
#fuses NOCPD
#fuses NOWRT
#fuses NOWRTC
#fuses NOWRTB
#fuses NOWRTD
#fuses NOEBTR
#fuses NOEBTRB
#use delay(clock = 40000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
Asi tengo un micro corriendo a la velocidad que mencioné.
Saludos
Título: Re: Ayuda porfavor fuses 18f
Publicado por: elreypic2 en 27 de Febrero de 2012, 20:28:06
En que lenguaje quieres configurar los fuses? En Basic? cual compilador? PBP, MikroBasic.. etc?
Porque ve que las respuestas dadas son para C.
Saludos.
Elreypic.
Título: Re: Ayuda porfavor fuses 18f
Publicado por: KALLITOS en 27 de Febrero de 2012, 20:34:22
Cierto :lol:, no me di cuenta que estabamos en el foro de basic, elreypic2 tiene razon las configuraciones estan dadas para lenguaje C.
Disculpas. Saludos.
Título: Re: Ayuda porfavor fuses 18f
Publicado por: yuhe en 27 de Febrero de 2012, 21:10:17
En PBP amigos :oops: como seria entonces?
Título: Re: Ayuda porfavor fuses 18f
Publicado por: yuhe en 01 de Marzo de 2012, 12:00:30
PORFAVOR AMIGOS AYUDA :oops:
Título: Re: Ayuda porfavor fuses 18f
Publicado por: heyheybabyhey en 13 de Marzo de 2012, 10:41:35
Fijate acá: http://www.forosdeelectronica.com/f24/bits-configuracion-pic-18f4550-picbasic-pro-61954/ Usa comandos de assembler para la configuración de los fuses..por eso les pone "@". Fijate que abajo explica los posibles fuses.
;========================================================================== ; ; IMPORTANT: For the PIC18 devices, the __CONFIG directive has been ; superseded by the CONFIG directive. The following settings ; are available for this device. ; ; PLL Prescaler Selection bits: ; PLLDIV = 1 No prescale (4 MHz oscillator input drives PLL directly) ; PLLDIV = 2 Divide by 2 (8 MHz oscillator input) ; PLLDIV = 3 Divide by 3 (12 MHz oscillator input) ; PLLDIV = 4 Divide by 4 (16 MHz oscillator input) ; PLLDIV = 5 Divide by 5 (20 MHz oscillator input) ; PLLDIV = 6 Divide by 6 (24 MHz oscillator input) ; PLLDIV = 10 Divide by 10 (40 MHz oscillator input) ; PLLDIV = 12 Divide by 12 (48 MHz oscillator input) ; ; CPU System Clock Postscaler: ; CPUDIV = OSC1_PLL2 [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2] ; CPUDIV = OSC2_PLL3 [OSC1/OSC2 Src: /2][96 MHz PLL Src: /3] ; CPUDIV = OSC3_PLL4 [OSC1/OSC2 Src: /3][96 MHz PLL Src: /4] ; CPUDIV = OSC4_PLL6 [OSC1/OSC2 Src: /4][96 MHz PLL Src: /6] ; ; USB Clock Selection bit (used in Full Speed USB mode only; UCFG:FSEN = 1): ; USBDIV = 1 USB clock source comes directly from the primary oscillator block with no postscale ; USBDIV = 2 USB clock source comes from the 96 MHz PLL divided by 2 ; ; Oscillator Selection bits: ; FOSC = XT_XT XT oscillator, XT used by USB ; FOSC = XTPLL_XT XT oscillator, PLL enabled, XT used by USB ; FOSC = ECIO_EC External clock, port function on RA6, EC used by USB ; FOSC = EC_EC External clock, CLKOUT on RA6, EC used by USB ; FOSC = ECPLLIO_EC External clock, PLL enabled, port function on RA6, EC used by USB ; FOSC = ECPLL_EC External clock, PLL enabled, CLKOUT on RA6, EC used by USB ; FOSC = INTOSCIO_EC Internal oscillator, port function on RA6, EC used by USB ; FOSC = INTOSC_EC Internal oscillator, CLKOUT on RA6, EC used by USB ; FOSC = INTOSC_XT Internal oscillator, XT used by USB ; FOSC = INTOSC_HS Internal oscillator, HS used by USB ; FOSC = HS HS oscillator, HS used by USB ; FOSC = HSPLL_HS HS oscillator, PLL enabled, HS used by USB ; ; Fail-Safe Clock Monitor Enable bit: ; FCMEN = OFF Fail-Safe Clock Monitor disabled ; FCMEN = ON Fail-Safe Clock Monitor enabled ; ; Internal/External Oscillator Switchover bit: ; IESO = OFF Oscillator Switchover mode disabled ; IESO = ON Oscillator Switchover mode enabled ; ; Power-up Timer Enable bit: ; PWRT = ON PWRT enabled ; PWRT = OFF PWRT disabled ; ; Brown-out Reset Enable bits: ; BOR = OFF Brown-out Reset disabled in hardware and software ; BOR = SOFT Brown-out Reset enabled and controlled by software (SBOREN is enabled) ; BOR = ON_ACTIVE Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled) ; BOR = ON Brown-out Reset enabled in hardware only (SBOREN is disabled) ; ; Brown-out Voltage bits: ; BORV = 0 Maximum setting ; BORV = 1 ; BORV = 2 ; BORV = 3 Minimum setting ; ; USB Voltage Regulator Enable bit: ; VREGEN = OFF USB voltage regulator disabled ; VREGEN = ON USB voltage regulator enabled ; ; Watchdog Timer Enable bit: ; WDT = OFF HW Disabled - SW Controlled ; WDT = ON HW Enabled - SW Disabled ; ; Watchdog Timer Postscale Select bits: ; WDTPS = 1 1:1 ; WDTPS = 2 1:2 ; WDTPS = 4 1:4 ; WDTPS = 8 1:8 ; WDTPS = 16 1:16 ; WDTPS = 32 1:32 ; WDTPS = 64 1:64 ; WDTPS = 128 1:128 ; WDTPS = 256 1:256 ; WDTPS = 512 1:512 ; WDTPS = 1024 1:1024 ; WDTPS = 2048 1:2048 ; WDTPS = 4096 1:4096 ; WDTPS = 8192 1:8192 ; WDTPS = 16384 1:16384 ; WDTPS = 32768 1:32768 ; ; MCLR Pin Enable bit: ; MCLRE = OFF RE3 input pin enabled; MCLR disabled ; MCLRE = ON MCLR pin enabled; RE3 input pin disabled ; ; Low-Power Timer 1 Oscillator Enable bit: ; LPT1OSC = OFF Timer1 configured for higher power operation ; LPT1OSC = ON Timer1 configured for low-power operation ; ; PORTB A/D Enable bit: ; PBADEN = OFF PORTB<4:0> pins are configured as digital I/O on Reset ; PBADEN = ON PORTB<4:0> pins are configured as analog input channels on Reset ; ; CCP2 MUX bit: ; CCP2MX = OFF CCP2 input/output is multiplexed with RB3 ; CCP2MX = ON CCP2 input/output is multiplexed with RC1 ; ; Stack Full/Underflow Reset Enable bit: ; STVREN = OFF Stack full/underflow will not cause Reset ; STVREN = ON Stack full/underflow will cause Reset ; ; Single-Supply ICSP Enable bit: ; LVP = OFF Single-Supply ICSP disabled ; LVP = ON Single-Supply ICSP enabled ; ; Dedicated In-Circuit Debug/Programming Port (ICPORT) Enable bit: ; ICPRT = OFF ICPORT disabled ; ICPRT = ON ICPORT enabled ; ; Extended Instruction Set Enable bit: ; XINST = OFF Instruction set extension and Indexed Addressing mode disabled (Legacy mode) ; XINST = ON Instruction set extension and Indexed Addressing mode enabled ; ; Background Debugger Enable bit: ; DEBUG = ON Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug ; DEBUG = OFF Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins ; ; Code Protection bit Block 0: ; CP0 = ON Block 0 (000800-001FFFh) code-protected ; CP0 = OFF Block 0 (000800-001FFFh) not code-protected ; ; Code Protection bit Block 1: ; CP1 = ON Block 1 (002000-003FFFh) code-protected ; CP1 = OFF Block 1 (002000-003FFFh) not code-protected ; ; Code Protection bit Block 2: ; CP2 = ON Block 2 (004000-005FFFh) code-protected ; CP2 = OFF Block 2 (004000-005FFFh) not code-protected ; ; Code Protection bit Block 3: ; CP3 = ON Block 3 (006000-007FFFh) code-protected ; CP3 = OFF Block 3 (006000-007FFFh) not code-protected ; ; Boot Block Code Protection bit: ; CPB = ON Boot block (000000-0007FFh) code-protected ; CPB = OFF Boot block (000000-0007FFh) not code-protected ; ; Data EEPROM Code Protection bit: ; CPD = ON Data EEPROM code-protected ; CPD = OFF Data EEPROM not code-protected ; ; Write Protection bit Block 0: ; WRT0 = ON Block 0 (000800-001FFFh) write-protected ; WRT0 = OFF Block 0 (000800-001FFFh) not write-protected ; ; Write Protection bit Block 1: ; WRT1 = ON Block 1 (002000-003FFFh) write-protected ; WRT1 = OFF Block 1 (002000-003FFFh) not write-protected ; ; Write Protection bit Block 2: ; WRT2 = ON Block 2 (004000-005FFFh) write-protected ; WRT2 = OFF Block 2 (004000-005FFFh) not write-protected ; ; Write Protection bit Block 3: ; WRT3 = ON Block 3 (006000-007FFFh) write-protected ; WRT3 = OFF Block 3 (006000-007FFFh) not write-protected ; ; Boot Block Write Protection bit: ; WRTB = ON Boot block (000000-0007FFh) write-protected ; WRTB = OFF Boot block (000000-0007FFh) not write-protected ; ; Configuration Register Write Protection bit: ; WRTC = ON Configuration registers (300000-3000FFh) write-protected ; WRTC = OFF Configuration registers (300000-3000FFh) not write-protected ; ; Data EEPROM Write Protection bit: ; WRTD = ON Data EEPROM write-protected ; WRTD = OFF Data EEPROM not write-protected ; ; Table Read Protection bit Block 0: ; EBTR0 = ON Block 0 (000800-001FFFh) protected from table reads executed in other blocks ; EBTR0 = OFF Block 0 (000800-001FFFh) not protected from table reads executed in other blocks ; ; Table Read Protection bit Block 1: ; EBTR1 = ON Block 1 (002000-003FFFh) protected from table reads executed in other blocks ; EBTR1 = OFF Block 1 (002000-003FFFh) not protected from table reads executed in other blocks ; ; Table Read Protection bit Block 2: ; EBTR2 = ON Block 2 (004000-005FFFh) protected from table reads executed in other blocks ; EBTR2 = OFF Block 2 (004000-005FFFh) not protected from table reads executed in other blocks ; ; Table Read Protection bit Block 3: ; EBTR3 = ON Block 3 (006000-007FFFh) protected from table reads executed in other blocks ; EBTR3 = OFF Block 3 (006000-007FFFh) not protected from table reads executed in other blocks ; ; Boot Block Table Read Protection: ; EBTRB = ON Boot block (000000-0007FFh) protected from table reads executed in other blocks ; EBTRB = OFF Boot block (000000-0007FFh) not protected from table reads executed in other blocks ; ;========================================================================== ;==========================================================================
Título: Re: Ayuda porfavor fuses 18f
Publicado por: yuhe en 20 de Mayo de 2012, 16:51:11
!!!!!SOLUCIONADO¡¡¡¡¡¡ ERA EL PRESCALADOR ole ole :-/ :-/ :-/ :-/ :-/ :-/ :-/ ((:-)) ((:-)) ((:-)) lo configure para que dividiera por 1 y listo rulando a toda mecha
Título: Re: Ayuda porfavor fuses 18f
Publicado por: sejotre en 31 de Agosto de 2012, 00:15:15
fotosde mi problma
Título: Re: Ayuda porfavor fuses 18f
Publicado por: sejotre en 31 de Agosto de 2012, 00:16:44
no salio el mensaje acava
es un post viejo pero espero que alguien le preste atencion... no se como configurar los fuses del 18f4550 copie talcual lo que puso heyheybabyhey sin entender muy bien que significa cada linea...me pueden explicar ?.el microcode me marca errores (foto) con lo 16f solia configurarlos fuses desde el pickit2 al grabar y no habia problema pero con este (foto2) nose ni por donde empezar los deje como vienen configurados por defoult y pasa esto:(foto 3) quise probar el lcd 20x4 con un programita para probar servos ( supongo que ya lo conocen el del gran LordLafebre )y aprovechando que tengo un 18f4550 pense en reconfigurar los pines y listo y de paso me quedaba para aprender sobre USB . me pueden explicar que estoy haciendo mal?
muchas gracias
Título: Re: Ayuda porfavor fuses 18f
Publicado por: sejotre en 31 de Agosto de 2012, 00:18:41
siento tener que mandar los mensaje asi pero parece que las fotos son mas pesada de lo que crei..
Título: Re: Ayuda porfavor fuses 18f
Publicado por: elreypic2 en 31 de Agosto de 2012, 00:28:18
Que tal sejotre,
Creo saber cual es tu problema. Lo que tienes que hacer es modificar el archivo INC que esta dentro de tu carpeta de instalacion del PBP. Supongo que estas usando la version 2.6 del PBP. Te explico brevemente.
En la carpeta de instalacion del PBP, debes buscar un archivo que se llame 18F4550.INC. Una vez que lo encuentres abrelo con un editor de texto (NOTEPAD). Nunca lo abras con WORD de microsoft.
Una vez que tengas el archivo abierto con NOTEPAD, lo vas a editar. El archivo original se ve asi:
;**************************************************************** ;* 18F4450.INC * ;* * ;* By : Leonard Zerman, Jeff Schmoyer * ;* Notice : Copyright (c) 2010 microEngineering Labs, Inc. * ;* All Rights Reserved * ;* Date : 05/11/10 * ;* Version : 2.60a * ;* Notes : * ;**************************************************************** NOLIST ifdef PM_USED LIST "Error: PM does not support this device. Use MPASM." NOLIST else LIST LIST p = 18F4450, r = dec, w = -311, w = -230, f = inhx32 INCLUDE "P18F4450.INC" ; MPASM Header __CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H __CONFIG _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _VREGEN_ON_2L __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H __CONFIG _CONFIG3H,_PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_ON_3H __CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _BBSIZ_BB1K_4L & _ICPRT_OFF_4L & _XINST_OFF_4L NOLIST endif LIST EEPROM_START EQU 0F00000h BLOCK_SIZE EQU 16
Ves ahi las lineas que tienen __CONFIG, pues simplemente hazlas un comentario añadiendo un ";" se veraia algo asi:
Salva el archivo y vuelve a recompilar. Ahora tu HEX contendra los fuses que tu has definido en tu codigo principal.
Saludos.
Elreypic.
Título: Re: Ayuda porfavor fuses 18f
Publicado por: sejotre en 02 de Septiembre de 2012, 00:42:07
muchas gracias reypic era eso nomas al parecer compilo bien de todos modos no entiendo bien los fuses de este micro tendre que estudiar mas acerca de eso . ahora no se porque ya que en el 16f876a estaba andando bien en el 18f4550 no llega nada a los motores es decir : el pic lee los potenciometro ,el lcd los muestra pero los motores no se mueven sabes porque?