Autor Tema: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard  (Leído 7275 veces)

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

Desconectado Pocopelo

  • PIC10
  • *
  • Mensajes: 13
Hola amigos,

He hecho un programa en PBP y al simularlo en proteus funciona a la perfección, pero al pasarlo al protoboard no consigo que el PIC de salida alguna. Como funciona en proteus, pienso que el problema esta en la programación del PIC. La he hecho con el programado GTP-USB plus y el winpic800. He repasado mil veces el montaje en el protoboard y no encuentro nada raro. Os estaria muy agradecido si me pudierais ayudar.

Si necesitais algun dato, el codigo, etc. lo adjunto.

Gracias.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #1 en: 01 de Abril de 2012, 19:52:59 »
Hola Pocopelo, deberías de colgar el esquemático de cómo lo tienes montado y el código para que podamos ver en que parte puede estar el fallo.
De todas formas comprueba que le llegue al PIC tensión a la patilla de MCLR y que el cristal este bien conectado con sus condensadores. Hay que estar seguro a la hora de hacer pruebas en protoboard que no haya falsos contactos que casi siempre ocurren. Yo te aconsejaría que conectaras un Led a la patilla RB0 y hicieras un programa sencillo para encender y apagar de manera infinita y así compruebas que el PIC está bien conectado, y si funciona bien será una mala conexión del circuito y falso contacto o un fallo en el firmware.
Es todo lo que te puedo decir sin tener nada delante.  ;-)

Desconectado Pocopelo

  • PIC10
  • *
  • Mensajes: 13
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #2 en: 02 de Abril de 2012, 05:23:14 »
Hola samshiel_pic,

Comentas la tensión a la patilla de MCLR. Yo la tengo desconectada porque al grabar el pic la desactive en las opciones del winpic800 y estoy utilizando el osc interno del PIC. Las opciones de grabación que puse fueron:

Activados: OSC -> IntRC I/O - Bit de configuración -> WDT, PWRT, BODEN. El resto desactivados.
 
Como tengo que conectar el MCLR, directamente o a traves de alguna resistencia?.

Ahora estoy en el trabajo pero cuando llegue a casa, intentare subir el esquematico y el codigo.

Gracias.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #3 en: 02 de Abril de 2012, 06:21:49 »
Hola pocopelo,
Pues lo tienes que conectar simplemente con una resistencia de 10k a +5v y además te dejo como conectar el botón de RESET y al lado como conectar el VPP del GTP USB + para que no tengas que desconectar para programar.


Desconectado Pocopelo

  • PIC10
  • *
  • Mensajes: 13
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #4 en: 02 de Abril de 2012, 13:28:03 »
Hola samshiel_pic, gracias por la información. El tema del MCLR lo tengo claro, lo que no tengo tan claro es lo del programador. Podrias explicarlo mas?.

Gracias.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #5 en: 02 de Abril de 2012, 15:07:53 »
Vamos a intentar explicarlo, aunque en el foro y en la web hay mucha información sobre ICSP.

1º.- Esta sería la forma de conectar el conector ICSP del GTP USB+ al PIC.


  • VPP va conectado al MCLR del pic y a su vez el MCLR lleva un diodo 1N4148, de protección cuando se programa, y una resistencia a VDD (+5v ó +3.3v).
  • El pin CLOCK y DATA del GTPUSB+ van directos a los pines PGC y PGD del PIC respectivamente. Si en esos pines tienes conectado algo ( un led o sensor) tendras que poner en serie una resistencia de 1K en cada pin para que no interfieran mientras se está programando.
  • VDD y GND del programador tiene que ir conectado a los mismos de la board en la que tienes el PIC

Si además quieres conectar un pulsador de RESET en el MCLR puedes añadir el pulsador como se muestra en la siguiente imagen:


PD: uffff!! que ratito me he pegao con el PAINT.  :-/   ;-)

Desconectado Pocopelo

  • PIC10
  • *
  • Mensajes: 13
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #6 en: 03 de Abril de 2012, 04:35:17 »
Ok, ahora si que te he entendido. No sabia que se podia hacer esto con el programador. Por mis respuestas, intuiras que llevo poco tiempo en esto. Muchas gracias y me pondre manos a la obra con todo lo que me has dicho, haber si puedo hacer andar el pic.

Ire comentando por aqui los avances o retrocesos que vaya haciendo.

Saludos.

Desconectado Pocopelo

  • PIC10
  • *
  • Mensajes: 13
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #7 en: 08 de Abril de 2012, 19:31:06 »
Hola, pues sigue sin funcionar. He reducido el codigo quitando de enmedio el LCD para ir paso a paso. Insisto en que en Proteus funciona a la perfección y el PIC lo he probado conectando un led a la patilla RB0 y parpadea. El fuse del MCLR lo he puesto a OFF al grabar pero aun asi he probado a colocar una resistencia entre la patilla 4 y +5V y tampoco hace nada. Como no se que mas hacer, aqui os muestro el codigo y el esquema por si me podeis ayudar.

Saludos.

Desconectado kamisama

  • PIC16
  • ***
  • Mensajes: 151
Re: Pic 16F628A y LCD PC1602F. Funciona OK en proteus pero no en protoboard
« Respuesta #8 en: 08 de Mayo de 2012, 08:22:57 »
Probalo en un protoboard.

Proba hacer una rutina de 1seg prende 1seg apaga.
Tenes que deshabilitar el perro guardian y ver el tema de MCLR dejalo por default(OFF) y metele un cable a + no una Resistencia, empeza usando un XTAL de 4mhz

En otro ambito de cosas, no entiendo porque lees el puerto completo.

Si no te queda otra cosa que hacerlo, almacena el puerto en una variable

Luego usa la variable para comparar o lo que sea. No leas el puerto tantas veces ni una vez tras otra.


Para evitar estados locos en lo que no me interesa hago lo siguiente

Código: Visual Basic
  1. Checkstatus:
  2.     Varaux3=PORTX
  3.     Varaux2=VarMaskOfZorro | Varau3                          'Operacion Or Puertab Y Mascara
  4.    If Varau2=VarMaskOfZorro Then Varau2=0
  5.     delayms 100
  6.     Return
  7.  
  8. VarMaskOfZorro seria el estado de 0 de la puerta que me interesa los 1 no me interesan

Y luego trabajo sobre la variable no sobre el puerto. Lee el datasheet y el documento de los midrange.
En proteus simula bien porque hace caso omiso a esas pequeñeces porque es una pequeñez.

Saludos y postea los resultados o siguientes preguntas.