desktop

No consigo grabar el pic

Queridos amigos:

Intento grabar en un 16f628a un programa hecho con picbasic pro. Utilizo un pickit2 original, un módulo zif para el pickit2 (comprado) y el software pic programmer de Microchip. La grabación parece realizarse bien (no hay errores ni problemas. No me atrevo a tocar las opciones del programa, porque no conozco bien su función). Tras grabarlo, lo monto en una proto, y no va (nada-de-nada).

Bueno, puede ser el programa, así que para probar hago el típico de hacer parpadear un led (en B.0), compilo, grabo... todo bien. Lo monto en una proto (en otra distinta)... y tampoco va: el led se queda encendido fijo, y eso es todo.

Os juro que me va a dar algo: compré el pickit2 original porque habia comprado un clon en ebay y me pasaba lo mismo (y pensé que era cosa del clon), tengo los ojos quemados de buscar, leer, leer y leer... y no conseguir nada. Ni siquiera entender por qué ocurre esto.

Os ruego que os compadezcáis de un absoluto novato y me deis algún consejo. Tengo que entregar un proyecto en unos días, y aunque los programas ya están listos, no consigo pasarlos a los pics (todos 16f628a). Es muy frustrante.

Perdón por el rollo,
Santiago
 
Probaste los programas en algún simulador antes de grabarlo en el PIC ?
si lo probaste puede que sea la conexión del PIC en el Proto, por que no pones el código y el circuito que armaste así seria mas fácil encontrar el error.
 
Os ruego que os compadezcáis de un absoluto novato y me deis algún consejo. Tengo que entregar un proyecto en unos días, y aunque los programas ya están listos, no consigo pasarlos a los pics (todos 16f628a). Es muy frustrante.

El error mas comun es que no configuran bien el oscilador... lo tienes que poner en externo o interno no se como lo pusiste...
 
Muchas gracias a ambos por responder.

El código del programa de prueba es éste:

TRISB=0

INICIO:
PORTB.0=1
PAUSE 500
PORTB.0=0
PAUSE 500
GOTO INICIO

END

Adjunto una imagen del montaje en proteus

En cuanto a lo del oscilador, pues bien podría ser, porque aunque no voy a utilizar cristales externos, no sé sí eso quiere decir que está en interno, o si es xt o hs. Para mí lo de los fuses de la cabecera es como sánscrito. Es decir, por ejemplo estos fuses los encontré rebuscando por la red:

@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT "Reloj interno solo
@ DEVICE pic16F628, WDT_OFF " Watchdog Timer desconectado
@ DEVICE pic16F628, PWRT_ON " Power-On Timer conectado
@ DEVICE pic16F628, BOD_ON " Brown-Out Detect conectado
@ DEVICE pic16F628, MCLR_OFF " Master Clear Externo desconectado
@ DEVICE pic16F628, LVP_OFF " Low-Voltage Programming desconectado
@ DEVICE pic16F628, CPD_OFF " Data Memory Code Protect desconectado
@ DEVICE pic16F628, PROTECT_ON " Program Code Protection conectado

Bueno, pues he de decir que no comprendo buena parte de los conceptos. No utilizo el watchdog, así que lo pondría en off. Pero, cómo sé si el grabador usa o no lvp? ¿cuándo hay que desactivar el mclr? ¿qué es el brown-out detect?

Gracias por vuestra paciencia
Santiago
 

Adjuntos

  • Prueba parpadeo pic.JPG
    Prueba parpadeo pic.JPG
    37.4 KB · Visitas: 63
Código:
@ Device   PIC16F628A ' pusiste el pic16f628 y estas utilizando el pic16f628A
@ Device   Intrc_Osc ' oscilador interno
@ Device   Protect_Off ' para proteger los datos
@ Device   WDT_Off ' si se pasma el micro se autoresetea
@ Device   Pwrt_Off ' no lo necesitas
@ Device   MCLR_On '  para resetearlo en tu diagrama deberia estar on porque tienes el pulsador
' si lo quitas es off
@ DEvice   BOD_Off ' tampoco lo necesitas
@ Device   LVP_Off ' este probablemte si lo necesitas LVP sirve para programar con 5v o con 12v
'si tu programador lo hace con 5 es ON si lo hace con 12 es off.. pero si lo lees y te pone los datos 
'cuando lo grabas en off pues lo esta haciendo bien...
@ Device   CPD_Off 'para proteger la eeprom
 
TRISB=0

INICIO:
PORTB.0=1
PAUSE 500
PORTB.0=0
PAUSE 500
GOTO INICIO

END

si asi lo grabas y no funciona lamento informarte que probablemnente es tu grabador ya sea el sofware o el hardware...
 
Muchísimas gracias. Voy a probarlo.

Un abrazo,
Santiago

Bueno, pues creo que empiezo mal, porque el compilador me da errores del tipo "undefined symbol" para los 6 fuses. Es la versión 2.47 de pbp, y simplemente he copiado y pegado tu código, y luego intentado compilarlo. :confused:

Pero eso no debería pasar. Habré instalado mal el compilador?

Santiago
 

Adjuntos

  • Error pbp prueba2.JPG
    Error pbp prueba2.JPG
    35.2 KB · Visitas: 35
Última edición:
Saludos amigo creo que el problema se debe
Código:
@ Device   PIC16F628A ' pusiste el pic16f628 y estas utilizando el pic16f628A

cambia los ' por punto y coma

Código:
@ Device   PIC16F628A ; pusiste el pic16f628 y estas utilizando el pic16f628A

Amigo yo también estoy nuevo en la programación de Pic y uso estos Software como editor MicroCode Studio y compilador PICBASIC PRO 2.60 no he tenido problema y funciona muy bien hay esta el enlace de descarga

Editado por no cumplir con las normas del foro

Saludos
 
Última edición:
Cjefferson

Uchale amigo... creo que eso es pirata!

Lee las normas del foro...

y si... perdon... yo tambien tengo el microcode studio y se le puede poner la " ' " en lugar de la " ; "
o
compilalo asi...
Código:
@ Device PIC16F628A 
@ Device Intrc_Osc 
@ Device Protect_Off 
@ Device WDT_Off 
@ Device Pwrt_Off 
@ Device MCLR_On 
@ DEvice BOD_Off 
@ Device LVP_Off 
@ Device CPD_Off 
 
TRISB=0
INICIO:
PORTB.0=1
PAUSE 500
PORTB.0=0
PAUSE 500
GOTO INICIO
END
igual lo compilo y te pongo el HEX
 

Adjuntos

  • PRUEBA.rar
    264 bytes · Visitas: 65
Última edición:
disculpa pero si les funciona el programa que ami no me funciona ,
lo grabo en el pic y cuando lo quiero probar no me funciona.........
me podrian ayudar tambien.........

gracias
 
disculpen pero a la de hora de compilar el programa que pucieron me aparece error de archivos me pordrian ayudar......
lo compilo en microcode y con pbp v2.47



me pueden ayudar con este porfavor



pongo esto

@ Device PIC16F628A
@ Device Intrc_Osc
@ Device Protect_Off
@ Device WDT_Off
@ Device Pwrt_Off
@ Device MCLR_On
@ DEvice BOD_Off
@ Device LVP_Off
@ Device CPD_Off

TRISB=0
INICIO:
PORTB.0=1
PAUSE 500
PORTB.0=0
PAUSE 500
GOTO INICIO
END

aver me dice esto:::

error(105) c;\pbp\16f628a.inc 21 : cannot open file (include file "p16f628a.inc"not found)
error(113) c;\pbp\16f628a.inc 22 : symbol not previously defined ( XT OSC)
error(113) c;\pbp\16f628a.inc 22 : symbol not previously defined (WDT ON)
error(113) c;\pbp\16f628a.inc 22 : symbol not previously defined (MCLRE ON)
error(113) c;\pbp\16f628a.inc 22 : symbol not previously defined (LVP OFF)
error(113) c;\pbp\16f628a.inc 22 : symbol not previously defined (CP OFF)
error(115) c:\users\tlaloc\docume~1\mcsx\led.asm 50 ;duplicate label ("PORTL" or redefiining sybol that cannot be rdefinded)
error(115) c:\users\tlaloc\docume~1\mcsx\led.asm 52 ;duplicate label ("PORTH" or redefiining sybol that cannot be rdefinded)
error(115) c:\users\tlaloc\docume~1\mcsx\led.asm 54 ;symbol not previosly defined (TRISB)
error(115) c:\users\tlaloc\docume~1\mcsx\led.asm 56 ;symbol not previosly defined (TRISA)
error (113) c:\pbp\pbppic14.lib 6141 : symbol not previously defined (STATUS)
error (113) c:\pbp\pbppic14.lib 6141 : symbol not previously defined (C)
error (113) c:\pbp\pbppic14.lib 6143 : symbol not previously defined (STATUS)
error (113) c:\pbp\pbppic14.lib 6143 : symbol not previously defined (C)
error (113) c:\pbp\pbppic14.lib 6199 : symbol not previously defined (STATUS)
error (113) c:\pbp\pbppic14.lib 6199 : symbol not previously defined (C)
error (113) c:\pbp\pbppic14.lib 6202 : symbol not previously defined (STATUS)
error (113) c:\pbp\pbppic14.lib 6202 : symbol not previously defined (C)
error (113) c:\pbp\pbppic14.lib 7402 : symbol not previously defined (STATUS)
error (113) c:\pbp\pbppic14.lib 7402 : symbol not previously defined (IRP)
too many errors
 

Adjuntos

  • Sin título.png
    Sin título.png
    32.3 KB · Visitas: 18
Última edición:
Los fuses con MPASM no se ponen de esa manera...

pon nada mas esto

Código:
TRISB=0
INICIO:
PORTB.0=1
PAUSE 500
PORTB.0=0
PAUSE 500
GOTO INICIO
END
y ve si te lo compila...
 
si me compila pero pues lo pruebo con el pic y no me funciona......
me podrias decir mi error..
pues gravo el hex en pic 16f628a con el pickit 2 en un programador de microchip
y me sigue pasando los mismo de qeu el pic no me genera nada
 
si me compila pero pues lo pruebo con el pic y no me funciona......
me podrias decir mi error..

el error esta en que estas compilando con MPASM y los fuses no se configuran de esa manera...

cuando utilizas mpasm se ponen mas o menos asi...

Código:
@ __CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L  
@ __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_ON_1H & _IESO_ON_1H
@ __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H

ojo que para el 16f628a no son esos, pero es para que veas cual es el formato...


por otro lado en la ventana de complie & program options ve a la pestaña de assambler y desmarca el Use MPASM y entonces si intenta con los fuses de esta manera...

Código:
@ Device PIC16F628A 
@ Device Intrc_Osc 
@ Device Protect_Off 
@ Device WDT_Off 
@ Device Pwrt_Off 
@ Device MCLR_On 
@ DEvice BOD_Off 
@ Device LVP_Off 
@ Device CPD_Off
 
La resistecia va a positivo verdad?

por otro lado, al ultimo con que estas compilando con PBP o con MPASM?, destildeaste el "use MPASM"?

eso es muy importante, configurar los fuses adecuadamente para que utilice el oscilador interno, sino nunca va a funcionar...

Pudes poner un esquema aqui de como lo estas conectando para ver posibles errores en las conexiones...
 
hi ce lo qeu me dijistes y compilo con pbp
pero pues no me funciona en mi entrenador qeu hice
copie y pegue el codigo q me dijistes los fuses ydespues como configure los puertos...
me lo compila y me genera el hexadecimal pero cuando lo quiero probar nada......



@ Device PIC16F628A
@ Device Intrc_Osc
@ Device Protect_Off
@ Device WDT_Off
@ Device Pwrt_Off
@ Device MCLR_On
@ DEvice BOD_Off
@ Device LVP_Off
@ Device CPD_Off


TRISB=0
INICIO:
TRISB=3
PAUSE 100
TRISB=0
PAUSE 50
GOTO INICIO
end
 
Última edición:
Atrás
Arriba