TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: huakalero en 31 de Agosto de 2010, 18:03:14

Título: No logro hacer funcionar mi pic16f877a
Publicado por: huakalero en 31 de Agosto de 2010, 18:03:14
Hola que tal?

Resulta ser que por primera vez adquirí mi programador (un master prog) y un pic16f877a. Logre conectar el programador a la PC e incluso grabe un programa en el pic.

El programa ya lo simule en proteus, lo unico que tiene que hacer es encender todos los leds conectados al puerto B. Pero cuando paso el pic a un protoboard, simplemente no hace nada.
No se si el problema sea mi conexión o el programa, adjunto una imagen de como lo estoy conectando, ojala me puedan ayudar.

Estoy usando un viejo cargador de celular que entrega 5V a 0,7A. El cristal es de 20MHz, ya probé también poniendo un capacitor de 22 entre la masa (-5) y una pata del cristal, en ambas patas del cristal. ¿Que estoy haciendo mal?
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jhozate en 31 de Agosto de 2010, 21:54:05
seria bueno q mejoraras la presentacion del circuito, asi como esta te faltarian los capacitores del cristal.
asi
(http://img152.imageshack.us/img152/9707/circuito7sv.jpg)

Citar
ya probé también poniendo un capacitor de 22 entre la masa (-5)
a q te refieres con -5 ?
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: huakalero en 31 de Agosto de 2010, 22:29:22
Con el -5 me refiero a la linea negativa GND. Asi como la imagen que pusiste, asi es como tengo mi cristal pero el mio es de 20mhz y mis capacitores de 22. No use una imagen de proteus por que no muestra todos los pines. Entonces el dibujo que puse, ¿están correctas mis conexiones?, por que aun no logro que muestre señal de funcionar, he leido por ahi que se puede conectar el Vdd directo al MCLR y asi se estabilizan las tensiones y comienza a funcionar despues de estabilizarlas.
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jhozate en 31 de Agosto de 2010, 22:33:51
el esquema que te puse es como lo minimo que requerier el pic para funcionar, claro cambiando el cristal por el que necesitas, si ya revisaste todo en cuanto hardware, no queda otra que mirar tu codigo

Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: huakalero en 31 de Agosto de 2010, 22:38:31
Este es el codigo, he utilizado piklab como editor y sdcc para compilar y obtener el .hex, no le atribuyo el problema al codigo por que ya lo he corrido en el proteus y ahi si se ve que todo el puerto b esta como salida y los leds conectados a el estan encendidos.
Código: C
  1. /* ----------------------------------------------------------------------- */
  2. /* Plantilla generada por Piklab */
  3. #include <pic16f877a.h>
  4.  
  5. /* ----------------------------------------------------------------------- */
  6. /* Bits de configuración: adapte los parámetros a su necesidad */
  7. typedef unsigned int word;
  8. word at 0x2007 CONFIG = _RC_OSC & _WDT_ON & _PWRTE_OFF & _BODEN_ON & _LVP_ON & _CPD_OFF & _WRT_OFF & _DEBUG_OFF & _CP_OFF;
  9.  
  10. void main(void)
  11. {
  12.   //-- Configurar todos los bits del puerto B como salida
  13.   TRISB=0x00;
  14.  
  15.   //-- Configurar puerto A como puerto Digital
  16.   ADCON1=0x06;
  17.  
  18.   //-- Poner todos los pines a 1
  19.   PORTB = 0xFF;
  20.  
  21.   //-- Bucle infinito
  22.   while(1);
  23. }
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jhozate en 31 de Agosto de 2010, 22:44:02
 :? no se basic ups!!, pero segun los fuses tienes habilitado el Fuse RC que es incorrecto en este caso porque estas utilizando un cristal, cambia el fuse. Deshabilita el watchdog . tambien deshabilita el fuse LVP ese es para bajo voltaje de programacion y tampoco aplica en este caso, mmm creo que no se me pasa nada mas

PD. ahora mismo me sale una duda, los cargadores de celular no entregan una señal pulsante?
Título: Captura de proteus
Publicado por: huakalero en 31 de Agosto de 2010, 22:51:01
Esta es la captura del proteus simulando el código .hex, aquí se ve que todos los pines del puerto b sacan un 1 lógico. Algo que observe cuando arme el circuito fue que si colocaba un led al final, conectado directo a tierra a travez de una resistencia y a vdd este no encendia a menos que retirara algunas conexiones de mas arriba.

El cargador lo he probado con otros circuitos en los que no usaba pics y me ha funcionado bien, aunque en el cargador no dice nada de si entre DC. Tengo un adaptador de corriente que si me entrega corriente directa pero no me atrevo a usarlo por que me entrega (me permite seleccionar cual) 4.5V o 6V pero estos a 500mA, ¿sera correcto utilizarlo?

Por cierto, no esta en basic es C. Intentare desactivando las opciones que me dices.
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jhozate en 31 de Agosto de 2010, 23:15:26
pero entonces ya te funcionó en el real? En el real no deberias omitir la resistencia limitadora para el led. Ojo con los fuses.
Por que el clock de la simulacion aparece como 800hz?
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: huakalero en 31 de Agosto de 2010, 23:34:23
Ya configure los fuses para que se use un cristal y todo lo demas que me mencionaste quedando asi:
Código: C
  1. typedef unsigned int word;
  2. word at 0x2007 CONFIG = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _BODEN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _DEBUG_OFF & _CP_OFF;

Pero aun asi no logro que funcione, en la simulacion ya lo he cambiado a 1, 5, 10 y 20MHz el resultado es el mismo: todo el port B activado, ya he pasado el nuevo .hex al pic y conectado en la protoboard y sigo sin resultados, no enciende ningun led, el led lo tengo conectado a una resistencia de 560.

En el protoboard tengo el diagrama que puse primero el del dibujo feo :) no se si tenga que ver con el proto...
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jhozate en 01 de Septiembre de 2010, 00:10:02
si el cristal es de 20Mhz el fuse debe ser deberia ser _HS_OSC
quita el fuse BODEN
Citar
BODEN: Bit de Permiso para el Reseteo por Caída de Tensión.

la resistencia q no sea de mas de 330 ohm

Citar
todo el port B activado
segun tu codigo eso es lo q debe hacer el programa
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: huakalero en 01 de Septiembre de 2010, 00:20:40
A lo mejor el problema este en mi conexión, esta es una imagen de como la he puesto. Espero y puedas ayudarme.

¿Te refieres a la resistencia que va de Vdd al MCLR? La tengo de 10K ¿debería cambiarla por una no mayor a 330ohm?
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jhozate en 01 de Septiembre de 2010, 00:22:44
me referia a la resistencia del led, mmm no se me ocurre que mas pueda pasar :?
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: f-traxx en 01 de Septiembre de 2010, 04:00:34
Primero el Led yo lo pondria diferente...

Pon una resistencia de 330H entre la res. y la pata larga del Led, luego pon la pata corta(negativo).

El oscilador colocalo entre las patas 13 y 14 del PIC y los 2 condensadores colocalos desde la pata 13 a Vss y de la pata 14 a Vss.

Asi te tendria que ir, quando lo hayas hecho pon las fotos
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: AngelGris en 01 de Septiembre de 2010, 10:36:52
¿Controlaste que llegue la tensión adecuada a los pines del PIC?

En ocasiones me ha ocurrido que fallaban los contactos internos del ProtoBoard.

¿Probaste con otra fuente de alimentación?

Tal vez es como comenta jhozate y del cargador sale una alimentación pulsante (muchos cargadores funcionan así, y otros funcionan con corriente constante por lo cual la tensión obtenida dependerá de cuan cargada esté la batería)
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jim_17 en 01 de Septiembre de 2010, 11:48:55
A ver hay una cosa que a mi no me cuadra, en la foto veo que la marca que indica el número uno del pin está según la foto, arriba y a la derecha sin embargo el cristal del pic está en la parte opuesta a la marca, y eso no es correcto ya que son los pines 13 y 14 así que revisa que lo tengas todo bien conectado y no te confundas con los pines de los números.


Un Saludo.
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: huakalero en 01 de Septiembre de 2010, 16:52:45
Presiento que si a de tener algo que ver con la tension, cuando conecto el led directamente, este si enciende. Pero cuando agrego el pic al circuito, el led se apaga. ¿Como puedo aumentar la tension? ¿Esto tiene relacion con el amperaje que marca el cargador que es 0,5A?

Cuando probe usando un convertidor que tengo de AC a DC, note que el pic se calentaba y eso que solo me entrega 3V pero a 500mA.

En esta foto muestro como tengo conectados los cables, aunque la posicion de los leds esta mal, se puede ver como si alimento al pin 11 con +5 y al pin 12 con gnd, ademas de que el cristal lo tengo en las patas 13 y 14 con sus respectivos capacitores.

(http://img685.imageshack.us/img685/1499/primercirc.jpg)

Aqui ya conecte el led en su correcta posicion pero al agregar el pic al circuito este deja de encender, a pesar de que lo estoy alimentando directamente.

(http://img337.imageshack.us/img337/5025/bajatension.jpg)

Aqui ya lo estoy alimentando con la supuesta salida que el pic deberia darme, pero simplemente no enciende.
(http://img839.imageshack.us/img839/443/salidaesperada.jpg)

Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: pablomanieri en 01 de Septiembre de 2010, 17:17:38
En las fotos, el pic está colocado al revés. El pin 1 es el que tiene el circulito. Otra cosa, donde tienes conectados los leds están directamente conectados a las salidas, que pongas la resistencia no influye porque están en la misma línea conductora del protoboard. Con esto haces que ese pin del pic de más corriente de la que puede dar y lo más probable es que se haya quemado. Y si alimentaste el pic colocándolo al revés se ha quemado.
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: huakalero en 01 de Septiembre de 2010, 17:55:16
No puede ser, y yo que me habia estado fijando por la direccion del codigo que tiene escrito, no habia visto ese circulo, pero ahora que lo veo con mas atencion, veo que ademas tienen una seña como especie de media circulo que solo esta en uno de los lados, eso tambien me hubiera servido como guia...

¿Es posible que pueda rescatar el pic? Lo he conectado de nuevo con el programador a mi PC y en el software del programador me ha aparecido un error al leer la memoria flash, pero luego le di en borrar y despues grabe de nuevo el .hex y ahora al darle en verificar ya no me aparece ningun error.

Solo espero no tener que comprar otro pic  :(

Pero si este es el fin, pues muchas gracias a todos por su ayuda y espero pronto poder tener un pic Junior  :) que disfrutara de la experiencia que esto me ha dejado...
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jhozate en 01 de Septiembre de 2010, 18:39:32
 :D :D que en paz descance, hemos perdido un 16F877A
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: AngelGris en 01 de Septiembre de 2010, 20:41:02
En la primer foto me pareció que estaba mal el PIC, pero pensé que era un error de visión mio... en fin todos cometemos errores.
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: jim_17 en 02 de Septiembre de 2010, 06:50:57
hukalero, la finalidad de todo esto es que hayas aprendido donde está el error. Por si todavía estas un poco confundido te explico: -Todos los integrados tienen, un puntito, una pequeña marca que nos indica dónde se sitúa la pata número 1 del pic, seguidamente los demás pines se van numerando según el sentido contrario a las agujas del reloj.

(http://upload.wikimedia.org/wikipedia/commons/e/e9/Dil_16.gif)


Un Saludo y sigue intentándolo !
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: Veguepic en 02 de Septiembre de 2010, 11:42:36
Pues si el programador aun lo reconoce, puede que aun este util, seria cuestion de probar pin por pin haciendo algun programa sencillo, el que si creo que no se salva es el pin 15, pues al estar al reves se aguanto todo el voltaje de programacion. Ya nos cuentas.

Saludos
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: d4n13l4 en 09 de Octubre de 2010, 13:25:43
Hola
tengo un problema similar con mi 16f877a,
tengo una r de 10k al pin1 y Vss, el oscilador en 13 y 14 junto a 2 condensadores de 33p, esta alimentado a 5v y una resistencia de 220 en RBO/INT y un led amarillo a tierra.
lo programe con este programa asm siguiendo este video
Código: [Seleccionar]
led var portb.0
trisb=0
inicio:
high led
pause 500
low led
pause 500
goto inicio
cree el hex y progame el pic sin problema
el led esta bueno pq si lo alimento directo con 5v se enciende

pero al conectar el pic si se alimenta a 5v pq si mido en los pines de Vcc y llegan 5v pero en la salida no
cual puede ser el problema? queme el pic simplemente?

Saludos
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: d4y-all m2 en 27 de Mayo de 2011, 13:49:58
Saludos,,
yo hice lo mismo del video, paso por paso, pero para un pic 16f877a, lo compile, lo programe pero no hacia nada, al revisar note que no se grabo, tenia un codigo que anteriormente le habia grabado, lo borre (segun lo borro el ic-prog) pero al checar en blanco daba error, y asi prove con varios soft para borrarlo pero no se pueden borrrar, la circuiteria esta bien
Nota: uso programador jdm y el pickit2 clone y soft ic-prog, winpic y el soft de pickit2
Título: Re: No logro hacer funcionar mi pic16f877a
Publicado por: AngelGris en 27 de Mayo de 2011, 13:53:35
  Yo pensaría que en algún lugar hay un error puesto que he borrado y regrabado varias un mismo 16F877A