TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: yukardo en 10 de Junio de 2008, 01:01:43

Título: PIC no funciona en fisico
Publicado por: yukardo en 10 de Junio de 2008, 01:01:43
Saludos.

Tengo el siguiente problema. Hice un programa de encender y apagar un led para probar  el PIC16F876A, lo programo y hago que el programador lea el pic y sale que copio todo bien, lo pruebo en proteus y funciona. Pero al montarlo en fisico no me funciona. Cual podria ser el error?

Gracias de antemano por su ayuda.
Título: Re: PIC no funciona en fisico
Publicado por: Chrisbaf en 10 de Junio de 2008, 01:03:48
podrias mostrar el codigo
Título: Re: PIC no funciona en fisico
Publicado por: migsantiago en 10 de Junio de 2008, 01:08:57
Hola

Posibles soluciones:

- Conecta el pin MCLR a 5V
- Conecta los capacitores de 27uF y el cristal correctamente
- Verifica la polaridad de tu led, puede estar conectado al revés (poco probable)
- Si estás usando la terminal A4, por favor lee este tema...

http://www.todopic.com.ar/foros/index.php?topic=8121.0

Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 10 de Junio de 2008, 16:10:17
aqui les dejo el programa.

main:
high portb.bit0
pause 1000
low portb.bit0
pause 1000
goto main

estoy usando un cristal de 20 Mhz con condensadores ceramicos de 27pf.
Título: Re: PIC no funciona en fisico
Publicado por: jfh900 en 10 de Junio de 2008, 16:19:19
Casi con toda seguridad es un problema del montaje físico. Mal conectado algún cable, falta de polarización en las patillas, mal contacto en las placas, etc. Repasa bien el circuito y veras como localizas lo que falla.

Un saludo
Título: Re: PIC no funciona en fisico
Publicado por: migsantiago en 10 de Junio de 2008, 16:28:15
Si ya revisaste lo que te mencionamos anteriormente, intenta con un cristal nuevo de 20MHz.
Título: Re: PIC no funciona en fisico
Publicado por: firepic en 10 de Junio de 2008, 17:10:43
main:
high portb.bit0
pause 1000
low portb.bit0
pause 1000
goto main
Este es todo el programa? Estás trabajando en pic basic no?
Entonces te faltaría añadir al principio:
Código: [Seleccionar]
define osc 20
Ya que el oscilador que supone por defecto el compilador es 4MHz.
Y también te faltaría esto al final:
Código: [Seleccionar]
END
Es la instrucción de fin de programa... si no la colocas, compilas y grabas el pic... este no va a hacer nada. Me pasó una vez  :D
Ok saludos, nos leemos!  :mrgreen:
Título: Re: PIC no funciona en fisico
Publicado por: RALF2 en 10 de Junio de 2008, 18:44:03
aqui les dejo el programa.

main:
high portb.bit0
pause 1000
low portb.bit0
pause 1000
goto main

estoy usando un cristal de 20 Mhz con condensadores ceramicos de 27pf.

Porque no lo haces asi:

define osc 20
main:
high portb.0
pause 1000
low portb.0
pause 1000
goto main

Yo lo he probado asi y me funciona al pelo!  :mrgreen:
a y no veo donde esta el define para la frecuencia del cristal que estas utilizando  :shock:
ahora sino funciona aun asi reviza todo el hardware porque de seguro es alli donde esta el problema!  :mrgreen:

Saludos

Título: Re: PIC no funciona en fisico
Publicado por: firepic en 10 de Junio de 2008, 18:52:46
Porque no lo haces asi:

main:
high portb.0
pause 1000
low portb.0
pause 1000
goto main

Buena idea Ralf... a mí también me pareció un tanto extraño eso de portb.bit0, pero no le dí mucha importancia.
Con tu comentario me entró la curiosidad y revisé el manual, y en efecto la sintaxis que se recomienda es portx.x
Saludos, nos leemos!  :mrgreen:
Título: Re: PIC no funciona en fisico
Publicado por: RALF2 en 10 de Junio de 2008, 19:03:18
Asi es firepic!
Busque en el manual y no consegui esa forma de declarar los pines del pic por eso lo acomode  :mrgreen:
A veces los errores son muy sutilies y dan muchos dolores de cabeza luego  :D

Saludos
Título: Re: PIC no funciona en fisico
Publicado por: jfh900 en 10 de Junio de 2008, 19:42:22
Si el programa estuviera mal no funcionaria en Proteus. Como no es el caso el programa está bien.

Un saludo
Título: Re: PIC no funciona en fisico
Publicado por: firepic en 10 de Junio de 2008, 19:46:58
Si el programa estuviera mal no funcionaria en Proteus. Como no es el caso el programa está bien.
Eso es totalmente cierto.
Pero lo del define osc 20 sí que va... porque aunque no lo coloque puede funcionar en proteus, pero no le funcionará bien en la realidad.
Ahora bien, como tú y migsantiago han dicho, algo del hardware debe estar echando broma por allí...
Saludos, nos leemos!  :mrgreen:
Título: Re: PIC no funciona en fisico
Publicado por: jfh900 en 10 de Junio de 2008, 19:49:50
Si el programa estuviera mal no funcionaria en Proteus. Como no es el caso el programa está bien.
Eso es totalmente cierto.
Pero lo del define osc 20 sí que va... porque aunque no lo coloque puede funcionar en proteus, pero no le funcionará bien en la realidad.
Ahora bien, como tú y migsantiago han dicho, algo del hardware debe estar echando broma por allí...
Saludos, nos leemos!  :mrgreen:

Totalmente de acuerdo

Un saludo
Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 10 de Junio de 2008, 23:19:37
Bueno hice las modificaciones que me dijeron y nada.

No funciona todavia.

Probe con otro cristal y nada.
Título: Re: PIC no funciona en fisico
Publicado por: KALLITOS en 11 de Junio de 2008, 00:56:38
El pic que estas utilizando tiene al final el " -20 ", prueba poniendo un cristal de 4 Mhz.
Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 11 de Junio de 2008, 09:41:13
esto es la q tiene marcado el pic

PIC16F877A-I/P
Título: Re: PIC no funciona en fisico
Publicado por: migsantiago en 11 de Junio de 2008, 11:31:34
El pic que estas utilizando tiene al final el " -20 ", prueba poniendo un cristal de 4 Mhz.

Buena recomendación.

Se me ocurre otra, en el código de basic, ¿hay forma de decirle al compilador que use el fuse HS para cristal? Puede que el pic esté siendo grabado en modo RC o XT, los cuales no usan el cristal a la velocidad apropiada.

Busca esa definición en basic para forzar el código hex a grabarse en modo HS.
Título: Re: PIC no funciona en fisico
Publicado por: xocas en 11 de Junio de 2008, 12:01:42
hola

te me has adelantado amigo migsantiago, si se le puede indicar mediante la palabra de configuración, por ejemplo:

@ DEVICE pic16F84A, 0x3ff1  ' oscilador XT y PWRT enable. este valor lo puedes ver en el programador cuando estableces las propiedades de grabación o en el datasheet de manera más concisa.

recuerda que para un crystal de 20Mhz se ha de seleccionar HS y no XT.

una duda que tengo yukardo es que en tu primer post haces referencia a un 876 y en el último a un 877. ¿haces coincidir el que compilas en pic basic con el que seleccionas en el programador? no descarto que tu problema sea del programador ya que el programa no tiene complicaciones.

la primera vez que usé un 16f628a también fue con un programa muy simple de envío de datos y no conseguí hacerlo funcionar ni revisando manuales ni circuito ni nada de nada, el pin por el que deberían estar saliendo los datos estaba siempre en alta impedancia. bastante tiempo después caí en la cuenta de que ese pic tiene comparadores analógicos y que bastaba una simple instrucción para resolver el tema: CMCON = 7. desde entonces establezco los parámetros del pic al inicio del programa para que si algo no funciona no me vuelva absolutamente loco.

un saludo

pd: tanto el 876 como el 877 exigen un buena lectura de su hoja de datos. si como me parece estás iniciándote quizá te vendría bien hacer funcionar las cosas con pics más simples antes. en mi modesta opinión, claro está
Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 11 de Junio de 2008, 16:13:37
Si bueno empece con el 16F876A pero un amigo se lo llevo para probarlo asi que probe con el 16F877A con el cual me sucede el mismo problema.

Cuando compilo yo selecciono el pic correspondiente eso no creo que sea el problema.

ahora no me dijeron como definir HS.

Yo he trabajado con pic pero mas que todo con el 12f675, pero este me tiene muy limitado. De alli que quise subir el nivel.
Título: Re: PIC no funciona en fisico
Publicado por: migsantiago en 11 de Junio de 2008, 17:29:16

ahora no me dijeron como definir HS.


Ah! es que no somos adivinos... en todo el tema no has mencionado qué compilador de basic estás usando.

Pero... según la recomendación de xocas y usando winpic800, puedo deducir el código que debes poner en tu archivo .bas...

@ DEVICE pic16F877A, 0x3F3A 'oscilador HS para 20MHz

(http://img141.imageshack.us/img141/1882/dibujofp8.jpg)
Título: Re: PIC no funciona en fisico
Publicado por: KALLITOS en 11 de Junio de 2008, 23:17:42
esto es la q tiene marcado el pic

PIC16F877A-I/P

Prueba usando un cristal del 4Mhz, estoy seguro que alli funcionara, y porsiacaso tambien declara cristal del mismo valor.
Yo programaba en Pic Basic Pro y solo era necesario declarar el cristal si era diferente a 4Mhz, ya que el compilador utiliza este valor por defecto, y en el winpic solo carga el hex y comprueba que el oscilador sea XT.

Saludos.
Título: Re: PIC no funciona en fisico
Publicado por: firepic en 11 de Junio de 2008, 23:48:58
Correcto kallitos. Si no colocas nada el Pic Basic Pro asume 4MHz.
No sé si el detalle también podría estar en el grabador y que el pic es de la nueva tecnología que tiene la "A" al final (PIC16F877A)...
Tal vez debe tener una configuración especial o algo... alguien ha programado ese tipo de micros con el grabador que tiene yukardo?
Lo digo porque yo tenía un picstart plus y no grababa los que tenían la A, porque no estaba actualizado para eso.
Ok saludos, nos leemos!  :mrgreen:
Título: Re: PIC no funciona en fisico
Publicado por: KALLITOS en 11 de Junio de 2008, 23:58:17
Justo tengo frente a mi los dos tipos de pics mencionados 16F877A-I/P y 16F877-20/P, los dos grabados con el PIPO (aun no me mudo a otro  :mrgreen: ), el primero corre sólo con cristal de 4Mhz si le meto 20 no hace nada, pero el segundo funciona con cualkiera de los dos, claro que la velocidad de ejecución varia.
Título: Re: PIC no funciona en fisico
Publicado por: xocas en 12 de Junio de 2008, 05:27:22
hola

por lo que yo se, los caracteres I/P hacen referencia a la temperatura y tipo de encapsulado (I=Industrial, -40º to 85º y P=PDIP). una diferencia amigo kallitos es que el 16f877 es más 'tolerante' con la frecuencia del reloj y se puede seleccionar el modo xt y hacerlo funcionar a 20mhz, pero no es así en el caso del 16f877a que debemos respetar este parámetro tanto en el programa como en el programador.

para evitar dar palos de ciego te diré que en mi caso también cambiaría momentáneamente el cristal, lo programaría en modo xt y forzosamente tiene que funcionar (incluso usando oscilador interno debe funcionar), pero si aún así no te funciona es que probablemente esté mal el quemador.

un saludo

pd: así es migsantiago, la palabra de configuración se puede tomar fácilmente desde winpic800 o icprog e insertarla al principio del programa

Título: Re: PIC no funciona en fisico
Publicado por: tavisho en 13 de Junio de 2008, 14:58:38
seguro que el problema está en la palabra de configuración, de hecho tal vez esté en el valor de boden, pero como activarlo desde basico no lo sé; claro que si te cambiaras a ensamblador pues te digo jis jis jis
Título: Re: PIC no funciona en fisico
Publicado por: xocas en 13 de Junio de 2008, 15:35:52
hola

la palabra de configuración la puedes establecer en el propio programa si deseas mediante la opción:

@ DEVICE nombredelpic, valor.
el valor puedes obtenerlo si usas winpic800 guiándote por lo que te muestra migsantiago. es decir, seleccionas los parámetros y en 0x2007 te mostrará el valor, y si usas icprog pues algo muy similar:
(http://img49.imageshack.us/img49/6383/icprogck5.th.gif) (http://img49.imageshack.us/my.php?image=icprogck5.gif)
y esto lo posicionas al inicio del programa.

claro que también se puede prescindir de hacerlo en el programa y hacerlo directamente en el software de grabación al final del proceso, aunque el resultado es el mismo personalmente prefiero hacerlo en el programa y así cuando se carga en winpic800 ya lleva consigo estos parámetros.

un saludo
Título: Re: PIC no funciona en fisico
Publicado por: liminix en 13 de Junio de 2008, 21:35:40
hola si me permiten meter mi cuchara como se dice por aqui ,tube un problema parecido con el mplab pero ami no me funcionaba ni en el proteus no error de programa(me refiero al que iba ir al pic)
solucion bueno formatear mi ordenador instalar todo de nuevo seguro que es un error del sistema operativo o una mala instalcion de sofware te lo recominedo porque fue lo que hice y medio buen resultado.Ya que todo lo que dicen companeros no parece solucionar tu problema
haslo y me cuestas  :-/ :-/
Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 16 de Junio de 2008, 15:10:05
saludos.

Ayer probe con el cristal de 4 MHz y si funciona. al fin.

Ahora tengo q ver como hacer para que funcione con un cristal de 20 MHz.

Gracias a todos por su ayuda.
Título: Re: PIC no funciona en fisico
Publicado por: navaismo en 16 de Junio de 2008, 16:08:11
Usas PBP cierto? Bueno en el codigo fuente tienes que añadir DEFINE OSC 20 para que compile a esa velocidad, y cuando programes marca la opcion de HS en el software que uses para programar.
Título: Re: PIC no funciona en fisico
Publicado por: Leon Pic en 16 de Junio de 2008, 17:21:43
¿Estará activado el LVP y/o el BODEN? Si la respuesta es afirmativa, ahí está el error.
Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 16 de Junio de 2008, 22:18:39
Eso ultimo LVP y BODEN nose que es me lo podrian explicar. Asi se si lo he activado o no. Gracias
Título: Re: PIC no funciona en fisico
Publicado por: firepic en 16 de Junio de 2008, 22:30:48
Es parte de las configuraciones cuando vas a grabar...
LVP es "Low Volt Programming" baja tensión de grabación... y el boden es para activar el "Brown Out Detect"... sirve para dar un reset al pic cuando la tensión baja de cierto valor especificado...
Saludos, nos leemos!  :mrgreen:
P.D. Si escribí algo mal en inglés me disculpan, no es mi fuerte  :D
Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 17 de Junio de 2008, 23:57:21
Bueno nose pero mi programador por mas q lo configuro a 20 MHZ programa a 4 MHz
Título: Re: PIC no funciona en fisico
Publicado por: Leon Pic en 18 de Junio de 2008, 01:15:15
No

El LVP y el BODEN se encuentran en la palabra de configuración. Si trabajas en assembler deberás agregar los siguiente:

    _LVP OFF & _BODEN OFF

O también lo puedes configurar en el momento de grabar. Por ejemplo, el ICPROG, en la parte derecha, está la configuración de la palabra config que deberás setear con los valores deseados, antes de proceder a grabar el PIC.
Título: Re: PIC no funciona en fisico
Publicado por: KALLITOS en 18 de Junio de 2008, 01:40:22
saludos.

Ayer probe con el cristal de 4 MHz y si funciona. al fin.

Ahora tengo q ver como hacer para que funcione con un cristal de 20 MHz.

Gracias a todos por su ayuda.

Que bueno que te haya funconado  :)
Título: Re: PIC no funciona en fisico
Publicado por: yukardo en 18 de Junio de 2008, 08:58:25
Si el software del programador me da la opcion del LVP y BODEN.

Pero al programar el software me bloquea la opcion de la velocidad y queda por defecto 4 MHz, queria saber si es posible configurar eso cuando se hace el programa.

Gracias a todos por su ayuda.
Título: Re: PIC no funciona en fisico
Publicado por: zaratustra_x en 27 de Octubre de 2010, 19:52:27
@ DEVICE pic16F84A, 0x3ff1  ' oscilador XT y PWRT enable. este valor lo puedes ver en el programador cuando estableces las propiedades de grabación o en el datasheet de manera más concisa.

recuerda que para un crystal de 20Mhz se ha de seleccionar HS y no XT.

Saludos esta es mi primer respuesta y espero le sirva a alguien

Hice un pequeño proyecto usando el PIC16F84A. Utilizando un cristal de 4 MHZ funcionaba tanto en físico como en Proteus.

Cabié a un cristal y el PIC (20 MHZ y PIC16F84A-20) y y andaba en Proteus pero no en físico.

Para que funcione bien en Ensamblador, necesitan modificar la declaracion de los FUSES para el oscilador.

Para 4 MHZ:

__CONFIG   _XT_OSC&...

Para 20 MHZ:
__CONFIG   _HS_OSC&....

Con esto le decimos al micro que el oscilador  es de alta frecuencia.

Gracias a Suky por esta información.

 :-/