Un PIC se deja programar y la verificacion OK, puede estar defectuoso?

Pues eso, llevo peleandome una semana con un 16f876 y un display phico 16x2 para un proyecto (fin carrera) y no hay manera. Probe varios programas que vi, los retoqué, hice alguno yo y nada. Cambie el cristal oscilador de 4MHz y los dos condensadores de 33p. Utilice la lcd.lib y sin utilizarla, probe otro display igual etcetc

Lo estoy comunicando con 8 bits por el puerto C y E al PB6 , RS al PB7 y RW a masa.

Lo que me hace es: a) a veces se ilumina la pantalla con " cuadraditos" y otras "corriendo por la pantalla" b) tocando los agujeros donde van los tornillos de la lcd suele variar (la alimentacion tiene 4.8V con 5mV de rizado creo recordar) c) alguna vez llego a mostrar el mensaje preogramado pero al poco "los cuadraditos" d) no hace nada

me canse e hice que por PB5 encendiese un led cada 250ms. Pues hace lo que le sale de...lo enciende cuando quiere,lo apaga y ahi se queda,depende. Pero eso si ilumina mucho menos que si lo conecto a esos 4.8V directamente (no se supone que deberia de iluminar lo mismo?)

al programarlo lo hago en XT ( con icprog) y desabilito todos los flags como wrt....

el datasheet del lcd no lo doy encontrado pero uso otro con el controlador de hitachi 77xx

ahhh y lo ultimo (siento explayarme pero intento dar el mayor numero de datos posibles) el proyecto se basa en una centralita de alarma con dos sensores de presencia y uno de humos conectado a un telefono movil y con teclado matricial y lcd (eso espero ya que no doy pasado de la primera etapa supuestamente muy sencilla pero donde estoy bloqueado)

Sera error de montaje, de programacion, o del PIC que este defectuoso?

Gracias de antemano.

Reply to
<tp981214389
Loading thread data ...

Supongo que al principio del programa, antes de escribir nada en el display lo inicializas con los datos necesarios. Los LCD deben ser inicializados con unos comandos antes de poder escribir en ellos.

Un saludo.

escribió en el mensaje news:c1rkjq$4cs$ snipped-for-privacy@news.ya.com...

16x2
4MHz

RW

por

Pero

se

como

etapa

Reply to
P. Goñi

Yo me olvidaría del LCD hasta que consigas saber con seguridad que el PIC está andando correctamente. Si el programita simple del LED no te va, está claro que ese PIC no está corriendo como debe. Supongo que el LED lo tienes con una resistencia limitadora en serie ¿no? Si no es así, cuando actives ese puerto se te vendrá abajo la alimentación y posiblemente se reseteará el PIC. Y lo mismo para cualquier carga medio gorda que deba activar el PIC (optoacopladores, etc). Si el hardware está bien (no estaría de más que lo colgaras en alguna página para que le echemos un ojo), está claro que el problema es el firmware. Los micros en general son bastante puñeteros en cuanto a la inicialización, y un pequeño fallo en este punto puede hacer que se reseteen, aparentemente de forma aleatoria, por temas como el WDT, alguna interrupción descontrolada, o algún timer sin configurar. Un dato que deberías dar es en qué lenguaje estás escribiendo el programa. Si es en ASM, pudiera haber algún problema de paginación en un salto o algo así. En fin, sin ver el hard y el soft, es difícil ser más concreto.

--
Saludos de José Manuel García
jose.mgg@terra.es
 Click to see the full signature
Reply to
pepitof

Hmm... las salidas del puerto B de un pic, llevan unas resistencias pull-up internas que hay que activar mediante soft, ya que en el momento del arranque, quedan anuladas. Sin estas resistencias activas (ó si no las añades externamente) no tendrás voltaje en sus salidas, ya que se encuentran en "colector abierto". Comprueba que en esos pines tienes las señales que deseas.

Si tienes problemas con el led, verifica que las conexiones del oscilador sean lo más cortas posible y lo más cercanas a masa, para evitar interferencias. Ah, para uno de 4 Mhz, usa condensadores de 15 pf. Para 8 a

20 Mhz cualquiera entre 15-33pf (a más capacidad, más estabilidad pero más el tiempo de arranque). Añade condensadores de filtro entre las patillas de alimentación. ¿no la estarás haciendo en una breadboard de estas de enchufar los componentes? Yo tengo un circuito que he decidido meter en un cajón, después de llevar 4 días intentando averiguar porqué cuando acerco la mano funciona, o porqué a veces funciona y otras no, sólo con encenderlo y apagarlo.

Sobre la cantidad de luz del diodo, es normal, ya que aunque las salidas ofrecen 5 V, la intensidad máxima de cada pin está limitada a unos 20 mA.

escribió en el mensaje news:c1rkjq$4cs$ snipped-for-privacy@news.ya.com...

16x2
4MHz
[...]
Reply to
Teo

Sin ánimo de molestar, para no confundir a TP98..., un par de aclaraciones:

"Teo" escribió en el mensaje news:c1sd4g$4u6$ snipped-for-privacy@nsnmrro2-gest.nuria.telefonica-data.net...

pull-up

encuentran

No. Las resistencias de pull-up sólo pueden estar activas cuando un port está configurado como entrada, y se desactivan automáticamente en cuanto lo configuras como salida. Sirven para que la entrada quede por defecto a 1, por ejemplo para implementar un teclado o unos jumpers sin tener que añadir componentes externos, pero no tendrían utilidad cuando el port se configura como salida, porque en ese caso, la salida funciona con el típico circuito formado por dos transistores CMOS, uno que conmuta hacia positivo y otro que conmuta hacia 0V.

a

de

Es correcto, según el data-sheet, pero realmente el oscilador a cristal arranca sin problemas con condensadores entre 10pF y 100pF, tanto a 4MHz como a 20MHz. No creo que el problema venga de ahí, porque su comportamiento indica que el micro está ejecutando instrucciones, aunque no haga lo que el autor quiere que haga.

después

funciona,

Totalmente de acuerdo. Cuando hablamos de megahertzios, esas placas son una fuente de problemas constantes.

Las salidas dan bastante más que esos 20mA, es decir, no hay una resistencia limitadora ni nada parecido en el PIC. Tanto es así, que si la fuente no aguanta mucho, cuando pones a 1 una salida conectada directamente a masa, normalmente se viene abajo la fuente, y el circuito resetea. El problema es que si las obligas a dar más de 20mA, se pueden fundir.

De todas formas, con 20mA un LED normal rojo o verde se ilumina mucho mucho. Pienso que esa baja iluminación obedece a que la salida que la maneja no se mantiene constante, sino que oscila, probablemente porque el programa está mal, o porque el PIC en realidad está reseteándose constantemente.

--
Saludos de José Manuel García
jose.mgg@terra.es
 Click to see the full signature
Reply to
pepitof

escribió en el mensaje news:c1rkjq$4cs$ snipped-for-privacy@news.ya.com...

display phico 16x2

varios programas que

oscilador de 4MHz

utilizarla, probe

[...]

Sin tocar nada más del programa, enciende, justo después del reset un led durante una décima de segundo con una patilla libre, si lo ves lucir ya sabes algo. Vigila las interrupciones, a ver si tienes alguna accidentalmente activada y estás saltando a donde no toca. El Watchdog no parece ser porque no siempre responde igual y éste, en principio (no indicas que haya interacción con el exterior) saltaría siempre en el mismo punto, no cada vez donde le sale de los c0&0$?s. Pero asegúrate, por supuesto. Controla la alimentación, si no tienes oscilo, ingéniatelas, monta un chivato para cuando baje de 4.5V. Controla que no tengas una patilla sin usar puesta a masa o Vcc y la pongas en alto/bajo con otras por descuido. Ya te lo han dicho, pero por si tienes dudas: si usas protoboard, olvídate de ella y móntalo sobre cobre, puedes hacer 20 montajes de p.m. y el que hace 21 volverte loco, lógicamente sin pensar en la placa por los 20 éxitos anteriores. ¡Ah! Agénciate otro chip y prueba, nunca se sabe. Luego, claro, está el soft, pero eso ya habría que verlo... ¡y tener ganas! ;-)

Reply to
Franois

Ya me respondo yo mismo.Eran dos problemas:

- uno de retardos, que no eran suficientemente largos

- dos, que se me reseteaba al dejar en abierto Vpp/MCLR

Aun asi un PIC por dejarse programar y verificar correctamente os ha pasado que este mal (algun puerto,pin,...)

Gracias de todas formas

escribió en el mensaje news:c1rkjq$4cs$ snipped-for-privacy@news.ya.com...

16x2
4MHz

RW

por

Pero

se

como

etapa

Reply to
Pijus

Yo no lo he visto nunca. Sí he visto alguno que se ha jodido al meterle tensiones de programación en patillas que no las soportan, en dos ocasiones, pero en los dos casos (un 16F819 y un 18F1320), después de eso el PIC no se dejaba programar, es decir, daba errores de verificación que no aparecían con un PIC sano.

--
Saludos de José Manuel García
jose.mgg@terra.es
 Click to see the full signature
Reply to
pepitof

:-) ainsss esa resistencia de 10K a positivoooo jejeje

Lo de pics defectuosos, la verdad que salvo por meteduras de pata demostradas, nunca me topé con ninguno. Sí puede pasarte que de hacer pruebas y tal, te cargues algun pin (tensiones fuera de margen, tensiones de alimentacion invertidas...). Si los pines por los que se programa están bien, no tendrás fallo al programarlo, pero lógicamente sí que el programa puede fallarte porque otro de lospines esté jodidillo y por eso no obtengas el funcionamiento esperado.

"Pijus" escribió en el mensaje news:c24j81$ihk$ snipped-for-privacy@news.ya.com...

pasado

que

probe

(la

que

(no

controlador

Reply to
Teo

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.