PIC 18F2550 ¿Quemado?

#1
Que tal este es mi primer post y espeor estar mucho tiempo en este foro.

hice un programador "casero" para programar el PIC mencionado

esta es la imagen del programador



y ya que lo programe con PICPgm Programmer

me dispuse a hacer esto



al momento de probarlo no funciono..entonces pense que no estaba bien programado me dispuse a ponerlo de nuevo al programador y la PC me reconoce el programador pero no el PIC me sale una ventana en el programa diciendo que no hay PIC

entonces queria saber si lo pude haber quemado o que puedo hacer para checar continuidad para saber si sigue vivo el PIC

Gracias de antemano
 
#2
Desafortunadamente la unica manera de probar si un microcontrolador esta vivo es cargarle un programa de prueba en algun programador que sepas que funciona...
 
#4
Desafortunadamente la serie PIC nunca me gusto.... los programadores que tengo son para micros ATMEL, Texas, Freescale o Altera

Lo que te podria recomendar es que intentes en AG Electronica, me parece que alli tienen servicio de programacion de micros, o normalmente en las universidades cuentan con programadores para PIC
 
#5
Es que para empezar, estas haciendo las cosas mal... o es USB o es Serial.

El unico programador que conozco que solo usa un transistor y diodos con resistencias es para AVR, y lo tengo funcionando.

En tu caso, revise el pic prog y no se parece en nada a lo que tu describes

este es el usb


y este es el serial


entonces... tu problema no es el pic quemado, tu problema es que ese circuito que describes... que es? no es nada!

Mejor sigue el diagrama que te mostre sacado de
http://members.aon.at/electronics/pic/picpgm/hardware.html

hay que leer todo antes de pegar piezas.
 
#6
Hola
yo estoy en una situacion similar con un 16f877a
tengo un programador que compre asi que no puede ser ese mi problema, le cargue un programa que simule en proteus para prender un led, segui este video
cargue el .hex sin problema y arme el circuito alimentado a 5 pero el led no me prende y el led si esta bueno pq si lo conecto solo a 5v se prende
aqui es http://img203.imageshack.us/i/probarpic.jpg/
sera que queme el pic?

Saludos
 
#7
mmmmm no se programar en basic... (que los demonios de silicio me libren).

No te puedo decir que ocurre con tu programa, por lo antes explicado, pero te van varias cosas a revisar.
Si puedes programarlo, entonces no esta quemado.

Estas configurando bien los fuses?
Esta oscilando el cristal?
Tiene depurador con forma de ver los perifericos el compilador?

Y corrijo... El proteus no sirve ni para simular un led!

Casi puedo apostar que tu problema es del cristal y los fuses.
 
#8
Hola
como qno sirve para simular un led? viste el video? yo lo hice segun el video y se supone q sips pero bueno tu debes saber mas que yo que soy mas bien novata en los pics
la verdad es q yo tb se basic se un poco de c pero no como para programar un pic
si tienes algun codigo que me sirva para encender un led lo intento con ese ;)
 
#9
Con lo del proteus, quise decir que el proteus es muy ... poco confiable. Trabaja aun a pesar que el codigo tiene errores. Yo recomiendo programar en C o ensamblador, (aunque me regañe ezavalla master) usando el mplab y usar el depurador del mismo para revisar que el software este correcto.

tengo un codigo pero esta en ensamblador, te lo paso si gustas, esta pensado para trabajar con su oscilador interno a 8MHZ.

Código:
 list P=18F2550
 include <P18f2550.inc>


 
 CONFIG     PLLDIV=1
 CONFIG     USBDIV=1
 CONFIG     FOSC=INTOSC_HS 
 CONFIG     WDT=OFF
 CONFIG     CPUDIV=OSC1_PLL2
 CONFIG     PBADEN=OFF

 ORG 0x0000
 BRA INICIO

 INICIO:
 MOVLW	B'00000000'	
 MOVWF	TRISB
				

BUCLE:	

 movlw	b'00000001'
 movwf	PORTB
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 movlw	b'00000000'
 movwf	PORTB
 CALL	Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 GOTO	BUCLE	

	


;///////////////////////Retardos//////////////////////////	


Retardo_var1:					; La llamada "call" aporta 2 ciclos máquina.
	movlw	d'150'				; Aqui pones la cantidad de milisegundos. valor/100 = mS 
	movwf	h'90'			; Aporta 1 ciclo máquina.
R1ms_BucleExterno:
	movlw	d'2'				; Aporta Mx1 ciclos máquina. Este es el valor de "K".
	movwf	h'91'				; Aporta Mx1 ciclos máquina.
R1ms_BucleInterno: 
	;nop							; Aporta KxMx1 ciclos máquina.
	decfsz	h'91',F			; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar).
	goto	R1ms_BucleInterno		; Aporta (K-1)xMx2 ciclos máquina.
	decfsz	h'90',F			; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar).
	goto	R1ms_BucleExterno 	; Aporta (M-1)x2 ciclos máquina.
	return						; El salto del retorno aporta 2 ciclos máquina.


Retardo_var2:
	movlw	d'200'				; Aqui pones la cantidad de milisegundos. valor/100 = mS 
	movwf	h'90'			; Aporta 1 ciclo máquina.
R1ms_BucleExterno2:
	movlw	d'200'				; Aporta Mx1 ciclos máquina. Este es el valor de "K".
	movwf	h'91'				; Aporta Mx1 ciclos máquina.
R1ms_BucleInterno2: 
	nop
	nop							; Aporta KxMx1 ciclos máquina.
	decfsz	h'91',F			; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar).
	goto	R1ms_BucleInterno2		; Aporta (K-1)xMx2 ciclos máquina.
	decfsz	h'90',F			; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar).
	goto	R1ms_BucleExterno2 	; Aporta (M-1)x2 ciclos máquina.
	return						; El salto del retorno aporta 2 ciclos máquina.

 END
Si gustas ahi esta, como te digo, en C casi no programo los pics pues estoy muy acostumbrado a ensamblador.
 
#10
Hola
tengo una duda porque segun me habian dicho el 16f877a no tiene oscilador por eso se le pone oscilador externo pero el que yo tengo es de 4MHz habra algun problema si esta para que trabaje a 8MHz? le puedo cambiar el valor sin problemas?

de ensamblador ni idea intentare haber si me funciona, uso el mplab como dices tu que cual compilador se elige?
 
#12
lo compile y me salio este error Message[302] C:\PRUEBAS\LED2\LED2.ASM 18 : Register in operand not in bank 0. Ensure that bank bits are correct.
segun lei decia que se puede poner una expresion para que no muestre ese error porque aun cuando le ponga el banco¿? correcto sigue saliendo
que dices tu?

Saludos
 
#14
en que parte se configuran los fuses, en el codigo o en el programador?
porque al menos en c yo los tenia puestos en el codigo asi #FUSES NOWDT,XT y no hacia nada mas que compilar y programar el pic
pero claro no me funcionaba asi que capaz que tenga eso malo
 
#15
Código:
CONFIG     PLLDIV=1
 CONFIG     USBDIV=1
 CONFIG     FOSC=INTOSC_HS 
 CONFIG     WDT=OFF
 CONFIG     CPUDIV=OSC1_PLL2
 CONFIG     PBADEN=OFF
Estos son los fuses del 2550, no se como sea para tu pic... debe ser algo asi como

Código:
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
y no olvides cambiar los include.
 
#17
lMessage[302] C:\PRUEBAS\LED2\LED2.ASM 18 : Register in operand not in bank 0. Ensure that bank bits are correct.
No es un error, es un mensaje de advertencia para el programador indicando que el registro que uno quiere utilizar se encuentra en otra pagina de memoria y se deben cambiar los bits en el registro status (si mal no recuerdo)

No se puede eliminar, a menos que uses el comando banksel antes de accesar el registro
 
#18
y el otro error que me dio?
asi quedo el codigo con los cambios que me dijo antiworldx
Código:
list P=16F877a
 include <P16f877a.inc>

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


 ORG 0x0000
 BRA INICIO

 INICIO:
 MOVLW	B'00000000'	
 MOVWF	TRISB
				

BUCLE:	

 movlw	b'00000001'
 movwf	PORTB
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 movlw	b'00000000'
 movwf	PORTB
 CALL	Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 CALL    Retardo_var2
 GOTO	BUCLE	


;///////////////////////Retardos//////////////////////////	


Retardo_var1:					; La llamada "call" aporta 2 ciclos máquina.
	movlw	d'150'				; Aqui pones la cantidad de milisegundos. valor/100 = mS 
	movwf	h'90'			; Aporta 1 ciclo máquina.
R1ms_BucleExterno:
	movlw	d'2'				; Aporta Mx1 ciclos máquina. Este es el valor de "K".
	movwf	h'91'				; Aporta Mx1 ciclos máquina.
R1ms_BucleInterno: 
	;nop							; Aporta KxMx1 ciclos máquina.
	decfsz	h'91',F			; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar).
	goto	R1ms_BucleInterno		; Aporta (K-1)xMx2 ciclos máquina.
	decfsz	h'90',F			; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar).
	goto	R1ms_BucleExterno 	; Aporta (M-1)x2 ciclos máquina.
	return						; El salto del retorno aporta 2 ciclos máquina.


Retardo_var2:
	movlw	d'200'				; Aqui pones la cantidad de milisegundos. valor/100 = mS 
	movwf	h'90'			; Aporta 1 ciclo máquina.
R1ms_BucleExterno2:
	movlw	d'200'				; Aporta Mx1 ciclos máquina. Este es el valor de "K".
	movwf	h'91'				; Aporta Mx1 ciclos máquina.
R1ms_BucleInterno2: 
	nop
	nop							; Aporta KxMx1 ciclos máquina.
	decfsz	h'91',F			; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar).
	goto	R1ms_BucleInterno2		; Aporta (K-1)xMx2 ciclos máquina.
	decfsz	h'90',F			; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar).
	goto	R1ms_BucleExterno2 	; Aporta (M-1)x2 ciclos máquina.
	return						; El salto del retorno aporta 2 ciclos máquina.

 END
 
#20
le puse goto, salieron warnings pero bueno :LOL:
se creo el hex lo cargue lo probe y no logro encender el led.
hare un resumen de los pines quizas hay algo que me falta :cry:
1-R10k-5V
11-5V
12-GND
13-33p
14-33p
y entre ellos el oscilador de 4MHz
31- GND
32-5V
33-R220-led amarillo-GND

Saludos
 

Temas similares

Arriba