Autor Tema: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM  (Leído 5353 veces)

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

Desconectado fernando_realico

  • PIC10
  • *
  • Mensajes: 44
Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« en: 05 de Marzo de 2010, 12:53:12 »
Estimados/as:
Soy nuevo en el foro y necesito su ayuda, estoy en un problema que me está quemando la cabeza.
Hace unos 4 meses estuve programando el Pic16f84a sin ningún problema. Pero como estoy haciendo un proyecto en el cual necesito más puertos, decidí en recurrir al pic16f873a el cual dispone de el puerto c y una entrada/salida más en el puerto a. En cierto modo tenia ganas de multiplexar las puertos del 16f84a pero desistí, ya que pensaba que se me iba a facilitar la cosa con el 16f873a.

El problema que tengo es que cuando quemo el 16f873a el programa se graba. Progamos en el MPLAB, compilo con el MPASM y grabo con el WINPIC800, ya que en el icprog no figura el 16f873a, si el 16f873, pero sin la "a".

Revisé la plaqueta, que es un entrenador que hice, como lo había hecho para el 16f84a, y las conexiones están bien.
El tema que el programa aparentemente se graba porque una vez que lo grabo con el winpic800, puedo leer el dispositivo y el programa se grabó.
Uso un cristal de cuarzo de 20 MHz como oscilador y después probé con uno de 4 MHz, y no obtuve ningún resultado. No se que puede ser, tengo 6 pic 16f873a y no puedo hacer funcionar ninguno.

En el winpic800 configuré bien el Oscilador (XT), activo el PWRT, BODEN, pero nada.

Si alguien sabe como solucionar el problema, se lo agradezco.

Desde ya muchas gracias.

Gutierrez, Jorge Fernando
Realicó - La Pampa - Argentina.

PD: si necesitan el programa que realicé en el mplab se los adjunto luego porque no lo tengo en esta computadora. Gracias.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #1 en: 05 de Marzo de 2010, 13:38:06 »
¿Como está el pin de MasterClear y la tensión de VCC? ¿Si simulás el programa en Proteus, funciona?
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado fernando_realico

  • PIC10
  • *
  • Mensajes: 44
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #2 en: 06 de Marzo de 2010, 09:03:10 »
Las conexiones las revisé, cuando cree la plaqueta en el programa eagle, después, no quedándome conforme, realicé un programa simple el cual encendía un led sin ninguna condición, es decir cuando se alimente, encienda un led, y nada, el pin de MCLR le aporto 5 vol con una resistensia de 10k y un pulsador a masa para cuando lo pulse se resetee. el pin 8 y el 19 VSS y el pin 20 5 vol VDD. La verdad que me desorienta este problema. Digo, elprograma se graba, tendrá algo que ver a la frecuencia que se graba desde el programa? Ud. programó alguna vez este Pic, porque me parecía que iba a ser como el 16f84a, pero me encuentro con que no funciona nada. Mido con el teste la salida del puerto, probé varios del puerto b y c, y no obtengo los 5 vol de salida. No se que hacer, que me aconsejaría, cambiar el programador JDM por otro?
Es decir, no se si cambiarlo, porque el programa se graba en el Pic.

Dede ya gracias por constestar tan rápido, y disculpe las molestias.
PD: No puedo conseguir el proteus. Debe estar muy bueno

Saludos
Gutierrez, Jorge Fernando.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #3 en: 06 de Marzo de 2010, 09:31:01 »
Yo pude programar dicho PIC usando el WinPic800 pero con el ProPic2 como Hard. No uso el JDM porque me trajo problemas cuando quería grabar micros configurados con oscilador interno.

¿Colocaste los capacitores cerámicos que indica el datasheet sobre el cristal oscilador? Probá quitando PWRT y BODEN

El proteus lo podés buscar en taringa
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #4 en: 06 de Marzo de 2010, 10:02:32 »
Si usas un cristal de 20 Mhz debes usar el fuse HS y no el XT.

Si es posible coloca el código, para verificar si no está por ahí el problema.
Si tienes pines configurados como entradas sin usar no los dejes al aire, conéctalos a masa o en su defecto configuralos como salida.
Yo he utilizado un programador tipo JDm y nunca me ha traido problemas, pero se que pueden tenerlo, pero si lo graba y lo verifica correctamente debería funcionar. El proteus es una herramienta muy buena para verificar que al menos en la simulación el programa hace lo que tiene que hacer.

Desconectado fernando_realico

  • PIC10
  • *
  • Mensajes: 44
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #5 en: 06 de Marzo de 2010, 14:08:40 »
Estimados. hice todo lo que me propusieron y nada, configuré todos los puertos como salidas y obtengo en cada salida 0.58 vol. Un pic no anda porque no me lo reconoce winpic800 pero me quedan 5 màs que funcionan, es decir el programa se graba en el dispositivo.
Puse el oscilador HS, y nada. Les envìo el pequeño programa que es para probar en el protoboard, habilité todos los puertos como salida y puse un 1 en cada uno de ellos. pero en ninguno obtengo 5 vol.

Bueno compañero gracias por aportar, pero estoy perdiendo la fe en que los voy hacer funcionar.

En otro tema vi que a un colega le paso algo parecido, el pic16f873a no le anduvo y compró el 16f873 sin la "a" y le anduvo perfecto.... Pero me pregunto ¿Cuál es el secreto del 16f87a? que misterio tiene. me estoy desesperando jajaja.

Bueno si se les ocurre otra cosa, les agradezco que la compartan.
Les envìo el programa, bueno hay unos registros que están para otro programa.
         
                                                 list P=PIC16F873a
         #INCLUDE "P16F873a.INC"
         
; MAPA DE MEMORIA

estado      equ      0X03
intcon      equ      H'000B'
tmr0      equ      H'0001'
portb      equ      0X06
porta      equ      0X05
portc      equ      0x07
trisa      equ      0x05
trisb      equ      0X06
trisc      equ      0x07


reg1      equ      0x0c                  
reg2      equ      0x0d
reg3      equ      0x0e
reg4      equ      0x0f
reg5      equ      0x1c
reg6      equ      0x1d
rotar      equ      0x1e            
prog      equ      0x1f

;CONFIGURACION DE PUERTOS
   

reset      org      0X00
      
      goto      inicio
      org      0X05

inicio                   bsf       estado,5                                               
      movlw      b'000000'
      movwf      trisa
      movlw      b'00000000'
      movwf      trisb
      movlw      b'00000000'
      movlw      trisc
      bcf      estado,5

;PRINCIPAL
principal   
      bsf      porta,0
      bsf      porta,1
      bsf      porta,2
      bsf      porta,3
      bsf      porta,4
      bsf      porta,5
      bsf      portb,0
      bsf      portb,1
      bsf      portb,2
      bsf      portb,3
      bsf      portb,4
      bsf      portb,5
      bsf      portb,6
      bsf      portb,7
      bsf      portc,0
      bsf      portc,1
      bsf      portc,2
      bsf      portc,3
      bsf      portc,4
      bsf      portc,5
      bsf      portc,6
      bsf      portc,7
      end

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #6 en: 06 de Marzo de 2010, 15:41:51 »
Bueno mirando el código: No estás configurando el puerto a correctamente. Como es un puerto que tiene entradas analogicas, por defecto están configuradas de esa manera. Para poder usarlas como digitales tienes que configurar correctamente el registro ADCON1
por ejemplo:
MOVLW 0x06 ;
MOVWF ADCON1

hay un error en la configuración del puertoc como salida, donde debería decir movwf trisc, dice movlw trisc


Te aconsejaría que los fuses los escribas en el programa, así sabes cuando estás programando que es lo que tienes activado y que no. por ejemplo yo usaría:

__CONFIG _HS_OSC&_WDT_OFF&_CP_OFF&_PWRTE_ON&_LVP_OFF

Y cuando lo grabas en wl winpic800, verifiques que esa es la configuración de los fuses


Espero que el LVP(low voltaje programming) no lo tengas activado. Como así tampoco el WDT

Espero que con esto salga andando.


Si conectas leds a las salidas no te olvides de colocarles las resistencias limitadoras (entre 220 y 1kohm)

Desconectado fernando_realico

  • PIC10
  • *
  • Mensajes: 44
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #7 en: 06 de Marzo de 2010, 20:04:40 »
Gracias Pablo por tus acotaciones, corregì el código, quedó asì, y al compilar no ay ningún  error ni al grabar:
Pero no funciona, comprobé el voltage de alimentación todo y nada. creo que tendría que copnseguir un 16f873 sin la a... pero ya no le tengo desconfianza.
list P=PIC16F873a
         #INCLUDE "P16F873a.INC"
         __CONFIG _HS_OSC&_WDT_OFF&_CP_OFF&_PWRTE_ON&_LVP_OFF
; MAPA DE MEMORIA

estado      equ      0X03
adcon1      equ      0x1f
intcon      equ      H'000B'
tmr0      equ      H'0001'
portb      equ      0X06
porta      equ      0X05
portc      equ      0x07
trisa      equ      0x05
trisb      equ      0X06
trisc      equ      0x07


reg1      equ      0x0c                  
reg2      equ      0x0d
reg3      equ      0x0e
reg4      equ      0x0f
reg5      equ      0x1c
reg6      equ      0x1d
rotar      equ      0x1e            
prog      equ      0x1f

;CONFIGURACION DE PUERTOS
   

reset      org      0X00
      
      goto      inicio
      org      0X05

inicio   bsf       estado,5                                               
      movlw      0x06
      movwf      adcon1
      movlw      b'000000'
      movwf      trisa
      movlw      b'00000000'
      movwf      trisb
      movlw      b'00000000'
      movwf      trisc
      bcf      estado,5

;PRINCIPAL
principal   
      bsf      porta,0
      bsf      porta,1
      bsf      porta,2
      bsf      porta,3
      bsf      porta,4
      bsf      porta,5
      bsf      portb,0
      bsf      portb,1
      bsf      portb,2
      bsf      portb,3
      bsf      portb,4
      bsf      portb,5
      bsf      portb,6
      bsf      portb,7
      bsf      portc,0
      bsf      portc,1
      bsf      portc,2
      bsf      portc,3
      bsf      portc,4
      bsf      portc,5
      bsf      portc,6
      bsf      portc,7
      end

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #8 en: 06 de Marzo de 2010, 20:17:53 »
Hago una pregunta básica pero que no recuerdo ¿Se puede terminar el programa con end? ¿Eso no puede hacer que el ProgramCounter siga corriendo y el PIC empieze a hacer cualquier cosa?

En todo caso yo probaría de terminar el programa con un loop infinito.

Código: [Seleccionar]
nop
goto $-1
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado fernando_realico

  • PIC10
  • *
  • Mensajes: 44
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #9 en: 09 de Marzo de 2010, 02:17:28 »
He programado el 16f84a y siempre lo termino así y no con un rulo infinito. Pero creo que encontré el problema. Resulta que donde programa, el MPLAB, no dispone del archivo P16f873A.inc ; solo el P16f873.inc.
Es decir, cuando inicio le programa donde incluyo el archivo P16f873a.inc, este no existe.
Si me estoy equivocando por favor díganme.

Desde ya gracias.

Y si es por ese motivo que no funciona el pic, donde puedo conseguir el archivo P16f873A.INC. LÑos demás programa. el MPASMWIN que uso para compilar si identifica al 16f873a y el winpic800 también. Solo no tengo el archivo en mplab.

Un  abrazo y gracias por responder.

Fernando Gutierrez

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problemas al hacer funcionar PIC16f873A grabado con prog_JDM
« Respuesta #10 en: 09 de Marzo de 2010, 08:30:09 »
Yo no creo que sea por el tema del archivo .INC.

Vos estás definiendo los registros en la parte de "Mapa de memoria" y hacés uso de ellos y no llamas a registros que estén definidos en el .INC.

En cuanto a las diferencias entre el 873 y el 873A sólo cambian los bits de configuración (los cuales podés "acomodar" desde el WinPic800) y otra diferencia es que el 873A tiene comparadores internos, mientras que el 873 no los tiene.

Sobre el pin de MasterClear, conectá una resistencia (podés probar con 10K para empezar) a VCC y un capacitor de 10uF a GND. Eso va a ser que esté mas tiempo en estado de reset al momento de conectar la alimentación. En muchas ocasiones esta es la solución para que trabajen bien los PICs
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas


 

anything