Autor Tema: 16F84A con PICKit 2 y MPLAB  (Leído 7098 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado metmathos

  • PIC10
  • *
  • Mensajes: 6
16F84A con PICKit 2 y MPLAB
« en: 15 de Diciembre de 2015, 00:46:40 »
Buenas gente, como va? Soy nuevo en el foro, desde ya agradezco por anticipado cualquier ayuda que puedan dar al respecto.

Tengo un problema con mi primer miniproyecto de hacer un codigo en ASM para un PIC 16F84A... El codigo esta bien hecho (Lo probe en Proteus y funciona ok). los fuses estan bien seteados... Pero no funciona en la vida real en el 16F84.

Estuve viendo por todos lados, incluso discuti con el soporte tecnico del programador (Es de la marca ADOM y utiliza el PICKIt2 para programar) porque para mi el problema se encuentra en que no puedo usar el MPLAB para hacer el codigo y compilarlo y luego usarlo en el PICKIt 2 (cosa que no sucede por ejemplo con el PICKit 3 segun tengo entendido, donde se puede programar sin problemas). El tema es que al momento de programar el PICKit 2 no me da ningun mensaje de error, da todo ok, pero ningun programa que he probado funciona (Y lo hice en 3 microcontroladores 16F84A diferentes, para descartar que fuera problema del micro) cosa que no me sucede al usar un 16F88 con MPLAB y PICKit 2 (En el 16F88 cualquier programa anda perfectamente)... La verdad hace dias que estoy con esto y me siento un poco frustrado  :( :( ... A alguien mas le paso algo parecido?

Habia leido por ahi que la solucion no era usar MPLAB y usar otro IDE, pero la verdad no conozco... Desde ya agradezco cualquier info, muchas gracias!
« Última modificación: 15 de Diciembre de 2015, 00:49:29 por metmathos »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #1 en: 15 de Diciembre de 2015, 05:17:17 »
El Pickit2 tiene su propio programa. Que es lo que todo el mundo se quejo que sacaron cuando salio el Pickit3 ( el cual se programa unicamente desde MPLAB )

Creo que se llama Pickit 2 Standalone, aunque en la pagina figura como "PICkit 2 V2.61 Install"

http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=pg164120



Podrias probar ese, pero igual me parece raro realmente que solo un PIC no funcione. "Normalmente" esos clones utilizan el firmware del mismo Pickit2 ya que fue liberado por Microchip. Recalco el "normalmente" por que tal ves lo modificaron...

Desconectado metmathos

  • PIC10
  • *
  • Mensajes: 6
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #2 en: 15 de Diciembre de 2015, 10:49:29 »
El Pickit2 tiene su propio programa. Que es lo que todo el mundo se quejo que sacaron cuando salio el Pickit3 ( el cual se programa unicamente desde MPLAB )

Creo que se llama Pickit 2 Standalone, aunque en la pagina figura como "PICkit 2 V2.61 Install"

http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=pg164120



Podrias probar ese, pero igual me parece raro realmente que solo un PIC no funcione. "Normalmente" esos clones utilizan el firmware del mismo Pickit2 ya que fue liberado por Microchip. Recalco el "normalmente" por que tal ves lo modificaron...

Claro es exactamente el mismo programa que uso para programar, el PICKit 2 v2.61... Pero el problema es que yo uso el MPLAB para hacer el codigo y generar el .hex y cuando lo importo y escribo en el 16F84A por el PICKit 2 no funciona...

Capaz yo estoy haciendo algo mal o no estoy poniendo alguna funcion en el PICKit 2, pero por lo que he visto hasta ahora estoy haciendo todo ok porque hago exactamente lo mismo con un 16F88 y funciona de mil maravillas...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #3 en: 15 de Diciembre de 2015, 10:53:39 »
Entonces habia entendido mal tu pregunta original.

Podes leer el PIC? o solo no podes grabarlo ?
Podes hacer una grabacion - verificacion ?


el .hex no tiene la culpa, funciona bien. y mas usando el soft del mismo propietario que es Microchip.
Si podes intentar hacer una grabacion y luego una verificacion. Si es funciona y tu PIC sigue sin funcionar puedo probar hacer un codigo en mi MPLAB en ASM y pasartelo el .hex para que lo pruebes. Es la unica que se me ocurre para ir eliminando problemas

Desconectado uZYNQ

  • PIC16
  • ***
  • Mensajes: 123
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #4 en: 15 de Diciembre de 2015, 11:15:12 »
Saludos,

 El MPLAB indica que el pickit2 no soporta ese micro, podrias utilizar el software pickit2 programmer a ver si lo soporta ya que yo nunca he programado un 16F84A . Y para ello exporta tu programa desde el MPLAB con los bits de configuracion.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #5 en: 15 de Diciembre de 2015, 11:31:16 »
Raro por que :

http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit%202%20Readme%20v2-61-00%20(a).txt

Citar
Release Notes for PICkit(R) 2 Microcontroller Programmer
PICkit 2    V2.61.00
Device File V1.61.00

1. Device Support List

Midrange/Standard Devices
----------------
>> All 'LF' versions of devices are supported
PIC12F609       PIC12HV609    
PIC12F615       PIC12HV615     
PIC12F629       PIC12F635#      PIC12F675       PIC12F683#
PIC16F610       PIC16HV610      PIC16F616       PIC16HV616
PIC16F627       PIC16F628       PIC16F639
PIC16F627A      PIC16F628A      PIC16F648A
PIC16F630       PIC16F631       PIC16F636#      PIC16F676
PIC16F677       PIC16F684#      PIC16F685#      PIC16F687#
PIC16F688#      PIC16F689#      PIC16F690#     
PIC16F72+
PIC16F73+       PIC16F74+       PIC16F76+       PIC16F77+
PIC16F716
PIC16F737+      PIC16F747+      PIC16F767+      PIC16F777+
PIC16F785       PIC16HV785     
PIC16F84A       PIC16F87#       PIC16F88#
PIC16F818#      PIC16F819#
.....


EDIT:
Ahhh ahora veo el problema, crei que era un PIC16F84A, pero es un PIC16F84 solo. Este no es soportado. Pero se puede arreglar

http://www.microchip.com/forums/m380459.aspx

Ahi alguien ofrece ya el device file editado para el PIC16F84
http://pic.cw.fi/files/PK2DeviceFile.dat

Solo seria reemplazarlo, por las dudas haria un backup del anterior.
Algunas "restricciones"

Desabilitar la programacion de la EEPROM
Desabilitar el "Fast Programing"

Sino buscar otro programador xD
ese PIC ya no deberia existir xD
« Última modificación: 15 de Diciembre de 2015, 11:38:18 por KILLERJC »

Desconectado uZYNQ

  • PIC16
  • ***
  • Mensajes: 123
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #6 en: 15 de Diciembre de 2015, 13:03:32 »
Saludos,
 Ya veo que el PIC16F84A si es soportado desde el software Pickit 2 Standalone (PICkit 2 V2.61) pero no es soportado desde el MPLAB por eso no funciona cuando metmathos intenta grabar desde el mplab. Y sobre el micro que esta usando en realidad es confuso porque menciona al 16F84 y al 16F84A. Bueno si tiene el 16F84A podria usar el (PICKIT 2 v2.61) sin modificaciones y si tiene el 16F84 con las modificaciones que menciona KILLERJC deberia funcionar.

Desconectado metmathos

  • PIC10
  • *
  • Mensajes: 6
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #7 en: 16 de Diciembre de 2015, 00:09:17 »
Entonces habia entendido mal tu pregunta original.

Podes leer el PIC? o solo no podes grabarlo ?
Podes hacer una grabacion - verificacion ?


el .hex no tiene la culpa, funciona bien. y mas usando el soft del mismo propietario que es Microchip.
Si podes intentar hacer una grabacion y luego una verificacion. Si es funciona y tu PIC sigue sin funcionar puedo probar hacer un codigo en mi MPLAB en ASM y pasartelo el .hex para que lo pruebes. Es la unica que se me ocurre para ir eliminando problemas

Si, hace todo ok (lo lee, lo graba y lo verifica) pero no cuando lo pruebo el PIC no hace nada (Y probe 3 micros diferentes)... Aca te paso el codigo, es un codigo simple, tendria que andar (En Proteus anda lo mas bien) pero creo que el problema esta entre el MPLAB y el PICKit 2 para justamente este micro... Desde ya muchas gracias por la buena onda  :)

Código: ASM
  1. list p=16f84
  2. include <p16f84A.inc>
  3.  
  4. __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON
  5.  
  6. tiempo equ 0x0c
  7.                 org 0
  8.                 bsf STATUS,RP0
  9.                 clrf PORTB
  10.                 bcf STATUS,RP0
  11.  
  12. ;XXXX ZONA DE CODIGO XXXX
  13. inicio  bcf PORTB,0
  14.                 call retardo
  15.                 bsf PORTB,0
  16.                 call retardo
  17.                 goto inicio
  18. retardo
  19.                 movlw d'255'
  20.                 movfw tiempo
  21. dec             decfsz tiempo
  22.                 goto dec
  23.                 return
  24.  
  25. END

Saludos,

 El MPLAB indica que el pickit2 no soporta ese micro, podrias utilizar el software pickit2 programmer a ver si lo soporta ya que yo nunca he programado un 16F84A . Y para ello exporta tu programa desde el MPLAB con los bits de configuracion.


Claaaaro, exactamente esto es lo que me habia fijado lo que se ve en la imagen que para el 16F84A que estoy usando el MPLAB no es soportado desde el PICKit 2... Me interesa eso del PICKit 2 Programmer, podria ser la ansiada solucion a mi problema, exportar el codigo a este soft... alguien sabe como se usa?
« Última modificación: 16 de Diciembre de 2015, 00:19:40 por metmathos »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #8 en: 16 de Diciembre de 2015, 07:38:27 »
Intenta grabar el .hex que adjunto con el programa del PIckit2, es decir no con el MPLAB. Solo abri ese programita, importa el archivo grabalo y vemos.

Deberias tener conectado a tu PIC como minimo lo siguiente:

Resistencia a VDD de 10K al MCLR
Cristal de 4Mhz + capacitores para el cristal en los pines OSC1 y OSC2
un led + resistencia de 330ohms en PORTB,0
La alimentacion al PIC

Y nada mas

Desconectado metmathos

  • PIC10
  • *
  • Mensajes: 6
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #9 en: 16 de Diciembre de 2015, 11:37:36 »
Intenta grabar el .hex que adjunto con el programa del PIckit2, es decir no con el MPLAB. Solo abri ese programita, importa el archivo grabalo y vemos.

Deberias tener conectado a tu PIC como minimo lo siguiente:

Resistencia a VDD de 10K al MCLR
Cristal de 4Mhz + capacitores para el cristal en los pines OSC1 y OSC2
un led + resistencia de 330ohms en PORTB,0
La alimentacion al PIC

Y nada mas

Perdon por la ignorancia, no sabia que el MCLR iba conectado pensaba que era como un reset para el micro... Ahi dio señales de vida!!  Prendio el led! :lol: :lol:  Aunque no hace exactamente la funcion para que lo programe (titilar el led), estara mal el codigo? Porque en Proteus si me funciona titilando...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #10 en: 16 de Diciembre de 2015, 12:05:12 »
xD, el MCLR es un reset para el PIC, ese pin esta negado, es decir tenes que ponerlo a VDD para que arranque el micro, sino se queda siempre reseteado. en el datasheet tenes mas circuitos para implementar soft start entre otros.

Tu programa hace exactamente lo que debe, nomas que lo hace TAN rapido que vos no lo ves a simple vista, la simulacion es lenta y por eso podes observarlo.
Si usas mi programa el que te pase, le puse un delay de 1s. ahi te paso el codigo

Código: ASM
  1. ; PIC16F84A Configuration Bit Settings
  2.  
  3. ; ASM source line config statements
  4.  
  5. #include "p16F84A.inc"
  6.  
  7. ; CONFIG
  8. ; __config 0xFFF1
  9.  __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_ON & _CP_OFF
  10.  
  11.  
  12.         cblock
  13.         d1
  14.         d2
  15.         d3
  16.         endc
  17.  
  18.     ORG     0x00
  19.     GOTO    Start
  20.     ORG     0x04
  21.     RETURN
  22.  
  23. Start
  24.     BANKSEL TRISB
  25.     CLRF    TRISB
  26.     BANKSEL PORTB
  27.  
  28. Loop
  29.     BCF     PORTB,0
  30.     CALL    Retardo
  31.     BSF     PORTB,0
  32.     CALL    Retardo
  33.     GOTO    Loop
  34.  
  35. Retardo
  36.                         ;999990 cycles
  37.         movlw   0x07
  38.         movwf   d1
  39.         movlw   0x2F
  40.         movwf   d2
  41.         movlw   0x03
  42.         movwf   d3
  43. Retardo_0
  44.         decfsz  d1, f
  45.         goto    $+2
  46.         decfsz  d2, f
  47.         goto    $+2
  48.         decfsz  d3, f
  49.         goto    Retardo_0
  50.  
  51.                         ;6 cycles
  52.         goto    $+1
  53.         goto    $+1
  54.         goto    $+1
  55.  
  56.                         ;4 cycles (including call)
  57.         return
  58.  
  59.     end

Desconectado metmathos

  • PIC10
  • *
  • Mensajes: 6
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #11 en: 16 de Diciembre de 2015, 21:09:53 »
xD, el MCLR es un reset para el PIC, ese pin esta negado, es decir tenes que ponerlo a VDD para que arranque el micro, sino se queda siempre reseteado. en el datasheet tenes mas circuitos para implementar soft start entre otros.

Tu programa hace exactamente lo que debe, nomas que lo hace TAN rapido que vos no lo ves a simple vista, la simulacion es lenta y por eso podes observarlo.
Si usas mi programa el que te pase, le puse un delay de 1s. ahi te paso el codigo

Código: ASM
  1. ; PIC16F84A Configuration Bit Settings
  2.  
  3. ; ASM source line config statements
  4.  
  5. #include "p16F84A.inc"
  6.  
  7. ; CONFIG
  8. ; __config 0xFFF1
  9.  __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_ON & _CP_OFF
  10.  
  11.  
  12.         cblock
  13.         d1
  14.         d2
  15.         d3
  16.         endc
  17.  
  18.     ORG     0x00
  19.     GOTO    Start
  20.     ORG     0x04
  21.     RETURN
  22.  
  23. Start
  24.     BANKSEL TRISB
  25.     CLRF    TRISB
  26.     BANKSEL PORTB
  27.  
  28. Loop
  29.     BCF     PORTB,0
  30.     CALL    Retardo
  31.     BSF     PORTB,0
  32.     CALL    Retardo
  33.     GOTO    Loop
  34.  
  35. Retardo
  36.                         ;999990 cycles
  37.         movlw   0x07
  38.         movwf   d1
  39.         movlw   0x2F
  40.         movwf   d2
  41.         movlw   0x03
  42.         movwf   d3
  43. Retardo_0
  44.         decfsz  d1, f
  45.         goto    $+2
  46.         decfsz  d2, f
  47.         goto    $+2
  48.         decfsz  d3, f
  49.         goto    Retardo_0
  50.  
  51.                         ;6 cycles
  52.         goto    $+1
  53.         goto    $+1
  54.         goto    $+1
  55.  
  56.                         ;4 cycles (including call)
  57.         return
  58.  
  59.     end

Vos sabes que tampoco me titila con este codigo... Ahi use uno que si titila: En vez de usar bcf o bsf para activar o desactivar los  bits, uso movlw y el binario con el bit que quiero que prenda o no y despues le doy movwf PORTB... No se, es raro... pero bue, lo principal es que anda y que me fue de muchisima ayuda lo que me dijiste.

Se me rompio el pin del bit 4 del puerto B  :x, se podra soldar o si lo hago daño el micro?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #12 en: 16 de Diciembre de 2015, 21:18:28 »
Depende de donde se rompio. pero si se corto al raz vas a tener problemas para soldarlo. para "probar" puede ser. el tema es que si lo vas a estar sacando y poniendo en otros lados, el arraeglo seguro que va a molestar o se va a romper de nuevo.

Desconectado metmathos

  • PIC10
  • *
  • Mensajes: 6
Re:16F84A con PICKit 2 y MPLAB
« Respuesta #13 en: 16 de Diciembre de 2015, 21:34:53 »
Depende de donde se rompio. pero si se corto al raz vas a tener problemas para soldarlo. para "probar" puede ser. el tema es que si lo vas a estar sacando y poniendo en otros lados, el arraeglo seguro que va a molestar o se va a romper de nuevo.

Tengo un margen para soldar, pero mas que nada lo decia por la temperatura, porque no se si los circuitos internos del PIC seran muy sensibles a las temperaturas muy altas.


 

anything