Ayuda mis PIC no viven

Hola a todos

hace unos meses me inicie en este mundo de los pic, he leido, programado y simulado muchos bobadas con pics pero ahora voy a la practica y no dan señales de vida. Intente con 16f877a encender un LCD y nada entonces baje las espectativas y llegue a encender un led con el 16F628A, programo en picbasic y simulo con proteus y todo bien pero al conectar en mi protoboard nada de nada.

Probe alimentacion y proto, led y res en perfecto estado.
Programo el pic con el IC-prog, el cual me carga el .HEX en el pic con mi programador, hace la verificacion y me da OK, leo desde el pic y en forma hexadecimal es lo mismo q pase al pic, entonces aparentemente el pic y el programador estan bien.
ponga o no el reset (pin4) a +5v

pero el led no enciende

me pasa lo mismo con el 16F877A tampoco reacciona

pongo el programa y una foto del coneccionado fisico

por favor, esto es de recontra principiante pero no puedo arrancar siquiera =(

...............................
'ENCENDER UN LED

TRISB = 0

inicio:
low PORTB.7
pause 500
high PORTB.7
pause 500
goto inicio
end
...............................

gracias
 

Adjuntos

  • pic.jpg
    pic.jpg
    74.6 KB · Visitas: 25
Hola:
Ese es todo el código que usas? por cierto, has usado los fuses alguna vez? ya que en tu ejemplo no veo eso... recuerda que lo más importante es la configuración... en caso del 16F628A, este tiene varios tipos de configuración para el oscilador, dos modos para la pata MCLR, etc. cosas que son muy importantes.

Pasa por este hilo, desde las primeras paginas hay ejemplos incluidos la configuración de los fuses para el PIC respectivo.
Curso programacion de pic en bsic pro

saludos
 
Vaya a saber que puede ser, BASIC no conozco pero veamos algunos puntos a revisar:

1)- El led... estara al reves?
2)- No veo cristal ahi, configuraste los FUSES del pic para usar oscilador interno? (depende del pic)
3)- El reset, usualmente, si configuras para usarlo, va con una resistencia de 1k, no directamente.
4)- VSS y VDD, son 0v y 5v respectivamente. Estan correctos?
 
El led funciona, en vez de conectar a la pata 13 lo pongo a +5v y enciende

el 16f628a tiene el oscilador interno de 4mhz no puse ningun fuse porq los ejemplos de todos los tuturiales mensionan solo el osc interno y nada de fuse para encender un led

en el programa no esta configurado el reset, no deberia conectarlo pero en otros tutoriales lo mandan a +5v directos otros ponen una res de 10k otros no lo conectan, he probado de todas las maneras, entre la pata 14 (+5v) y la 5 (0v) tengo 5v medidos con el multimetro, ninguna pata me da voltaje referido a masa

los pic son nuevos, nunca antes los use mas q ahora y comprados en tiempos y lugares diferentes =/

auxilio

Hola:
Ese es todo el código que usas? por cierto, has usado los fuses alguna vez? ya que en tu ejemplo no veo eso... recuerda que lo más importante es la configuración... en caso del 16F628A, este tiene varios tipos de configuración para el oscilador, dos modos para la pata MCLR, etc. cosas que son muy importantes.

Pasa por este hilo, desde las primeras paginas hay ejemplos incluidos la configuración de los fuses para el PIC respectivo.
Curso programacion de pic en bsic pro

saludos

ByAxel, este es el codigo q uso, en el caso del 628A tiene oscilador interno, cuando veo configuracion de oscilador es para los externos, corrigeme si me equivoco, pero no he visto ningun ejemplo con este pic q use fuse

gracias por contestar
 
Última edición:
Tienes que definir en la configuracion del pic (FUSES) que usaras el oscilador interno.
Antes de programar el pic y una vez cargado el .hex en el software programador busca la configuraciony cambia el oscilador a INTOSC o algo similar( depende de cada software).
Otra opcion es definir los fuses antes de compilar el programa. Mira un manual de pic Basic para aprender a hacer esto

Un saludo
 
Fuses disponibles en el pbp para el PIC16F628A y familia:

Código:
RC_OSC_CLKOUT
ER_OSC_CLKOUT  
RC_OSC_NOCLKOUT
ER_OSC_NOCLKOUT
RC_OSC          
INTRC_OSC_CLKOUT
INTOSC_OSC_CLKOUT
INTRC_OSC_NOCLKOUT 
INTOSC_OSC_NOCLKOUT
INTRC_OSC	  
EXTCLK_OSC  
EC_OSC         
HS_OSC        
XT_OSC         
LP_OSC        
WDT_ON         
WDT_OFF        
PWRT_ON       
PWRT_OFF     
MCLR_ON      
MCLR_OFF     
BOD_ON        
BOD_OFF       
LVP_ON        
LVP_OFF       
CPD_ON        
CPD_OFF         
PROTECT_ON     
PROTECT_OFF

El pbp tiene esto por defecto para el 16F628A:
Código:
device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
Los fuses los puedes configurar desde el programador o el compilador... para el caso del pbp con oscilador interno usarías "INTOSC_OSC_NOCLKOUT, WDT_OFF, MCLR_OFF, LVP_OFF". Con eso te evitas la resistencia al MCLR y el cristal... claro que la frecuencia por defecto del interno es a 4Mhz. Si continua el problema ya es algo de hardware.

saludos.
 
Fuses disponibles en el pbp para el PIC16F628A y familia:

Código:
RC_OSC_CLKOUT
ER_OSC_CLKOUT  
RC_OSC_NOCLKOUT
ER_OSC_NOCLKOUT
RC_OSC          
INTRC_OSC_CLKOUT
INTOSC_OSC_CLKOUT
INTRC_OSC_NOCLKOUT 
INTOSC_OSC_NOCLKOUT
INTRC_OSC	  
EXTCLK_OSC  
EC_OSC         
HS_OSC        
XT_OSC         
LP_OSC        
WDT_ON         
WDT_OFF        
PWRT_ON       
PWRT_OFF     
MCLR_ON      
MCLR_OFF     
BOD_ON        
BOD_OFF       
LVP_ON        
LVP_OFF       
CPD_ON        
CPD_OFF         
PROTECT_ON     
PROTECT_OFF

El pbp tiene esto por defecto para el 16F628A:
Código:
device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
Los fuses los puedes configurar desde el programador o el compilador... para el caso del pbp con oscilador interno usarías "INTOSC_OSC_NOCLKOUT, WDT_OFF, MCLR_OFF, LVP_OFF". Con eso te evitas la resistencia al MCLR y el cristal... claro que la frecuencia por defecto del interno es a 4Mhz. Si continua el problema ya es algo de hardware.

saludos.

Gracias ByAxel no habia visto esto en los ejèmplos, lo voy a probar pero me quedaron 2 dudas, estoy usando el IcProg y me da como opcion de oscilador "INTRC CLKOUT, INTRC I/O, XT" entre otros, cual uso? y por ultimo, conecto el MCLR a +5v?

gracias
 
Muchas Gracias Lubeck

lo voy a probar y les digo. no obstante te comento que ByAxel aporto esto

"... para el caso del pbp con oscilador interno usarías "INTOSC_OSC_NOCLKOUT, WDT_OFF, MCLR_OFF, LVP_OFF". Con eso te evitas la resistencia al MCLR y el cristal... "

que ya no necesita la resistencia, en un tuto de este pic hace referencia a 10K otro 1K y otro directo jajaja pero voy a probar lo que me dices.

gracias
 
Quieres apostar que si?

Primero en la pag. 3 dice...

Special Microcontroller Features:
• Internal and external oscillator options:
- Precision internal 4 MHz oscillator factory
calibrated to ±1%

Entonces si tiene un oscilador interno. Ahora.

Pag. 29, dice que tiene dos velocidades el oscilador interno

Código:
bit 3 OSCF: INTOSC Oscillator Frequency bit
1 = 4 MHz typical
0 = 48 kHz typical
bit 2 Unimplemented: Read as ‘0’
bit 1 POR: Power-on Reset Status bit
1 = No Power-on Reset occurred
0 = A Power-on Reset occurred (must be set in software after a Power-on Reset occurs)
bit 0 BOR: Brown-out Reset Status bit
1 = No Brown-out Reset occurred
0 = A Brown-out Reset occurred (must be set in software after a Brown-out Reset occurs)

Y por ultimo, pagina 98

Código:
bit 4, 1-0: FOSC<2:0>: Oscillator Selection bits(4)
111 = RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, Resistor and Capacitor on RA7/OSC1/CLKIN
110 = RC oscillator: I/O function on RA6/OSC2/CLKOUT pin, Resistor and Capacitor on RA7/OSC1/CLKIN
101 = INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
100 = INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
011 = EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN
010 = HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN
001 = XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN
000 = LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN
Note 1: Enabling Brown-out Reset does not automatically enable the Power-up Timer (PWRT) the way it does on the
PIC16F627/628 devices.
2: The code protection scheme has changed from the code protection scheme used on the PIC16F627/628 devices. The
entire Flash program memory needs to be bulk erased to set the CP bit, turning the code protection off. See
“PIC16F627A/628A/648A EEPROM Memory Programming Specification” (DS41196) for details.
3: The entire data EEPROM needs to be bulk erased to set the CPD bit, turning the code protection off. See “PIC16F627A/
628A/648A EEPROM Memory Programming Specification” (DS41196) for details.
4: When MCLR is asserted in INTOSC mode, the internal clock oscillator is disabled.

No me digas que no se lo que existe en un datasheet, por que mi intencion era ayudarte. Pero de aqui en delante por mi parte sigues solo.
 
Última edición:
Gracias Antiworlx, vi esa informacion y muuuucha mas, pero con respecto a la resistencia en el MCLR y la configuracion del ICprog nada, creo q no sigues el hilo, pues es lo q necesito saber, ya me habian sacado otras dudas, no era mi intension ofenderte. mis disculpas si asi lo hice

gracias igual, ya me han orientado bastante
 
pero con respecto a la resistencia en el MCLR y la configuracion del ICprog

no se en el icprog pero debe ser igual que en el winpic800...
cuando en tu programa defines los fuses ya no es necesario moverle a nada en el software del grabador, si no los defines en el codigo los tienes que definir ahi...
 
Gracias a todos, mi pic por fin vive. si bien me han orientado sobre el tema voy a comentar como lo solucione finalmente.

No es necesario agregar los fuses en el programa, el MPlab en el menu comfiguracion esta la configuracion de bit entrando alli se setean los fuses que se cargaran al compilar el programa.

Luego el ICprog tambien tiene su seccion de fuses o configuracion de bit, se dice que si ya esta incluido los fuses en el .hex el icprog no carga su configuracion de bit, pero he comprobado que si la carga.

entonces como el mplab y el icprog cargan los fuses a ambos programas les configuro igual y se termino el problema.

muchas gracias a todos =)

PD: muchas veces se da por sabido todo esto y en los ejemplos para iniciados, como yo, no se lo comenta y nada funciona
 
Si es muy desesperante cuando agarras por primera vez un micro y no sabes ni que conectar... Mucho menos que programar con tanto registro.

Asi es Antiworlx, tambien es estresante, para ustedes que saben, tratar de explicarle a los nuevitos desde que es una resistencia :LOL:

paciencia para los q iniciamos pls :rolleyes:

gracias

saludos
 
Atrás
Arriba