Autor Tema: mi pic se graba pero no anda  (Leído 3889 veces)

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

Desconectado Diego_C

  • PIC12
  • **
  • Mensajes: 54
mi pic se graba pero no anda
« en: 16 de Noviembre de 2004, 16:23:00 »
Buenas.

Se que esta es un pregunta de lo mas estúpida, pero hasta ahora venía probando los programas con el ISIS y cuando quiero hacerlo en la práctica, ni siquiera el programa mas estúpido me funciona.

Estoy probando el programa del LED en protoboard con un 16F84A y no enciende nada.
El oscilador es un cristal de 4 Mhz con dos capacitores de 100 nF (se que hay que poner de pF pero debería funcionar igual, no?).
La alimentación es de 5.5 V.
Al MCLR le van 5.2 V, tengo entendido que debe estar en un 1 para que no se resetee, y 0 para que se resetee.
Le soldé cables al Cristal para asegurarme que hacen contacto.
No tengo osciloscopio.
Al grabar el PIC con el GTP-04 lo hace bien, he incluso lee el mismo programa.

¿A caso serán los capacitores del oscilador? ¿Que valores deben tener los componentes del oscilador RC?

gracias.

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: mi pic se graba pero no anda
« Respuesta #1 en: 16 de Noviembre de 2004, 16:35:00 »
Ok, asegurate de definir en propiedades del PIC el archivo HEX, si no t corre, ISIS ejecuta los programas de los pic con un pequeño retardo. pero despues d eso corren bien.

Desconectado wqtrp

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 170
RE: mi pic se graba pero no anda
« Respuesta #2 en: 16 de Noviembre de 2004, 16:55:00 »
diria q te falta configurar las "configuration word" q creo q en el f84 vienen para LP o RC, as iq deberas forzarla a XT o incluso HS
Suerte...

Desconectado Diego_C

  • PIC12
  • **
  • Mensajes: 54
RE: mi pic se graba pero no anda
« Respuesta #3 en: 16 de Noviembre de 2004, 19:44:00 »
Escrito originalmente por fenix_jn
Ok, asegurate de definir en propiedades del PIC el archivo HEX, si no t corre, ISIS ejecuta los programas de los pic con un pequeño retardo. pero despues d eso corren bien.


no, es al reves.

Anda en el Simulador usando el mismo hex pero no anda en la práctica.

Puse el oscilador como XT por defecto solo el WatchDog (que aún no lo sé usar) estaba activado.

grax

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: mi pic se graba pero no anda
« Respuesta #4 en: 16 de Noviembre de 2004, 21:22:00 »
Ok, lo ideal seria q publicaras el programa y asi podriamos ver cual es el problema, si estas usando el watchdog asegurate de usarlo bien y de colocar CLRWDT en las zonas dond no desees q se reinicie el micro, si no lo usas entonces es el watchdog el q t causa problemas...

Desconectado Micom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 782
RE: mi pic se graba pero no anda
« Respuesta #5 en: 17 de Noviembre de 2004, 00:06:00 »
Pues el perro te esta molestando tienes que desactivarlo y eso lo puedes hacer en el mismo programa con el que estas grabando el pic
El programador GTP USB PLUS es un super programador
GRACIAS dobles amigo SISPIC

Tan solo queda seguir sobreviviendo

Desconectado peddrorolo

  • PIC12
  • **
  • Mensajes: 56
RE: mi pic se graba pero no anda
« Respuesta #6 en: 17 de Noviembre de 2004, 01:44:00 »
Hola Diego_C
Veo varios problemas en lo que cuentas. Primero, si no pones unos condensadores de entre 15pF y 60pF, yo te recomiendo de 33pF, no te va a funcionar. En el simulador funciona porque el reloj también es simulado.
En cuanto al reset está bien, hay que ponerlo a 1, pero te aconsejo que le pongas una resistencia en serie de alrededor de 1K o menos, para limitar la corriente.
En cuanto al perro guardian, si no lo reseteas adecuadamente, el programa no funcionará como quieres, pues cuan alcance el TMR0 su cuenta y se desborde, el programa se reseteará.

Espero haberte ayudado.

Desconectado Flugplatz

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 279
    • Mi canal de YouTube
RE: mi pic se graba pero no anda
« Respuesta #7 en: 17 de Noviembre de 2004, 03:35:00 »
primero una preguntilla ...

¿en que lenguaje has hecho el programa?

Si te funciona en el proteus y  en la protoboard no, seguro que es un problema del circuito, o de la configuración del reloj.

Y un consejo cuando uses protoboard ...

Parece una chorrada, pero yo, cuando monto por primera vez un circuito en una protoboard, antes de empezar a hacer pruebas, lo primero que cargo en el pic es un programa que  llamo "simple" que consiste en un sencillo bucle que va aumentando el valor del PortB con el retardo conveniente, de tal forma que con un simple LED y una resistencia puedes ir comprobando que el micro tiene actividad. Obviamente, en el pin 0 la intermitencia será por un tiempo X,  el pin 1, tiempo 2x, el pin2, tiempo 4x, y así sucesivamente ...

Otra cosa que debes comprobar es si el chip que has comprado admite la velocidad que le estás poniendo. Del 16F84 hay varias versiones; 4Mhz y 10 Mhz. Si puedes, para rizar el rizo de la prueba que he puesto arriba, compra un cristal de 1Mhz y prueba con él ...

Respecto a los condensadores, aunque MICROCHIP te hace una recomendación, que ahora mismo no recuerdo cual es, en realidad, sin ellos también funciona.  Yo siempre uso de 27 pF,  pero creo que es un valor aproximado ya que solo valen para estabilizar al cristal de cuarzo.
Mi canal de YouTube

Un saludo desde Madrid

Desconectado Diego_C

  • PIC12
  • **
  • Mensajes: 54
RE: mi pic se graba pero no anda
« Respuesta #8 en: 17 de Noviembre de 2004, 07:51:00 »
Lo volvi a grabar desactivando el WatchDog y pasa lo mismo.

El programa es el tipico encender y apagar un led del puerto B solo que este encience y apaga todo el puerto B.

Probé con fuente en vez de con batería, y pasa lo mismo.

Tengo que pegarme un viaje al centro para comprar 2 miserables capacitores. ¿En serio estos capacitores pueden hacer que no funcione nada? ¿Que valores podría ponerle a un oscilador RC?

Tan solo quiero ver que el led se encienda, tengo 0.00 V a la salida del puerto B.

gracias.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: mi pic se graba pero no anda
« Respuesta #9 en: 17 de Noviembre de 2004, 08:42:00 »
Personalmente, me parece una burrada poner capacitores de 100nF.

El valor recomendado oscila entre 20 y 50pf... pero tu le estas dando unas 1000 veces su valor...

Si no da muestras de vida el PIC, los primeros culpables, son los capacitores. Te imaginas un MAX232 con capacitores de 1000uF en vez de los de 0,1uF que pide? Tu crees que funcionaria?

No descarto que sea alguna otra la causa, pero bueno, lo mas evidente por ahora es eso.

salu2

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: mi pic se graba pero no anda
« Respuesta #10 en: 17 de Noviembre de 2004, 09:04:00 »
Es cierto, los capacitores deberian estar en el orden de los pF, esto es porq esos valores le dan estabilidad al oscilador admas d evitar que la señal se deforme, sin embargo, insisto: PUBLICA EL PROGRAMA!!!!

Desconectado JacoPastorius2004

  • PIC10
  • *
  • Mensajes: 42
RE: mi pic se graba pero no anda
« Respuesta #11 en: 17 de Noviembre de 2004, 19:14:00 »
Hola!

Te apuesto que el problema no esta en los capacitores, sin los capacitores cualquier ruido puede provocar el comienzo de la oscilacion del cristal por lo que el programa andaria si estubiera bien, en realidad lo que hacen es comenzar la oscilacion del cristal.
Pero es recomendable usarlos, ponele un par de 22pf, si usas el XT de 4Mhz.

El problema esta en otro lado, pega el programa y vemos.


Desconectado Diego_C

  • PIC12
  • **
  • Mensajes: 54
RE: mi pic se graba pero no anda
« Respuesta #12 en: 17 de Noviembre de 2004, 19:49:00 »
Desde ya les digo que como lo hice hace mucho, cuando recien empezaba, lo recontra comenté, pero yo no creo que el problema este en el código ya que en el ISIS funciona muy bien.

Codigo:

list         p=16f84A      ;identificar el micro usado.
include      "p16F84A.inc"   ;archivo con los registros definidos.

org          00h      ;posición de memoria de comienzo del reset ( 0000h ).
reset            ;etiqueta = posición de memoria.      
goto         inicio      ;salto a posición de memoria donde comienza el programa.
org          10h      ;posición de memoria donde comienza el programa ( 0010h ).
inicio            ;etiqueta = dirección  0010h.
;-------------------------------------------
;Configurar el puerto B como salida
;--------------------------------------------
;Registro TRISB=00000000B para salidas.

bsf          STATUS,RP0      ;pongo a uno el bit 5 del registro STATUS para entrar en el banco 1.   ¿para poder configurar?
movlw        00000000B      ;cargo w con el dato 00h = 00000000B = todos salidas.
movwf        TRISB      ;cargo el registro TRISB con el w para hacer el puerto B como salida.
bcf          STATUS,RP0      ;pongo a cero el bit 5 del registro STATUS para entrar en el banco 0. ¿para terminar de configurar?

;----------------------------------
;PROGRAMA PRINCIPAL
;-----------------------------------

programa         ;etiqueta de programa principal.        

movlw        00000000B      ;cargo w con el dato 00000000B
movwf        PORTB      ;cargo el registro PORTB con w apagando los leds.

call         sg1      ;subrutina de retardo de 1 seg.

movlw        11111111B      ;cargo w con el dato ffh = 11111111B.
movwf        PORTB      ;cargo el registro PORTB con w encendiendo los leds.

call         sg1      ;subrutina del retardo de 1 seg.

goto         programa      ;salta al comienzo del programa.  

;------------------------------------------------
;RETARDOS
;------------------------------------------------

sg1            ;etiqueta = subrutina del retardo de 1 seg.        
  movlw        0ffh      ;cargo w con el dato ffh = 11111111B.
  movwf        0ch      ;cargo el registro 0ch con el w.
  movwf        0dh      ;cargo el registro 0dh con el w.
  movlw        01h      ;cargo w con el dato 01h = 00000001B.
  movwf        0eh      ;cargo el registro 0eh con w.
salto1            ;etiqueta del bucle de repetición.                                                                  
  decfsz       0ch,1      ;decremento el registro 0ch y salto si es cero depositando el resultado en 0ch.
  goto         salto1      ;salto a la etiqueta salto1.
  decfsz       0dh,1      ;decremento el registro 0dh y salto si es cero depositando el resultado en 0dh.
  goto         salto1      ;salto a salto1.
  decfsz       0eh,1      ;decremento el registro 0eh y salto si es cero depositando el resultado en 0eh.
  goto         salto1      ;salto a salto1.
return            ;regreso de subrutina.                                    

end            ;fin del programa PORTB.




Desconectado Diego_C

  • PIC12
  • **
  • Mensajes: 54
RE: mi pic se graba pero no anda
« Respuesta #13 en: 18 de Noviembre de 2004, 10:44:00 »
Bueno, el problema eran los capacitores. Al poner los de 22 pF funcionó.
Lamentablemente me salieron casi $2 por el viaje. loco

pero ya funciona Rebotado

gracias a todos.