TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Churi en 16 de Octubre de 2006, 12:49:08
-
Hola,
Pues eso, que:
He montado el pipo2 para programar un 16F628A, y lo consigo programar, al menos envia el programa y luego lo puedo leer.
He introducido el programa de Ejemplitos en C para hacer parpadear un Led. (Tambien he cambiado para que coja la librería 16F628a.h)
He montado en una protoboard lo necesario para que se encienda el led.
No funciona, pero lo curioso es que si dejo el circuito un par de minutos, cuando desenchufo la fuente se pone a parpadear 2 o 3 veces.
El circuito que he montado:
Las R de 10K y 180 la del led.
los condensadores a 22pF
El cristal a 4 Mhz.
¿Sugerencias?
-
Hola Churi :
Es probable que estés teniendo problemas con la alimentación al PIC.
Debes tener los 5V de alimentación bien regulados. Seguramente tu problema viene por ahí.
Que estás usando de regulación en fuente ? un 7805 ?
Te funciona al desenchufarlo, ya que deja de haber zumbido de alterna fuerte y ahí el PIC "digamos", comienza a funcionar el tiempo que duran cargados los electrolíticos, pero evidentemente, o estás teniendo una tensión muy alta de alimentación ó la misma está muy mal filtrada y regulada.
Por si te interesa aquí (http://www.todopic.com.ar/foros/index.php?topic=13389.msg78160#msg78160) te dejo un enlace a un circuito, donde hay una para construir.
La R del led subila a 330 ohm. El resto del circuito está OK.
Saludos
Mario
-
Gracias Marioguillote,
Respecto a la fuente, lo alimento de un transformador de estos regulables, y entre los valores dispone de uno que es 4,5v y me entrega 4,8 v, lo conecto directamente.
Si puedo, probaré a montar ese circuito con el 7805 y le pasaré 9v del transformador al 7805 a ver que pasa.
Gracias.
-
Hola Churi
Claro.
Esas fuentes son muy pobres en lo que respecta a calidad de regulación, por eso te sucede ese problema.
Antes de seguir avanzando con el PIC, pon énfasis en ese tema de la alimentación al circuito.
Si entre los puntos de variación, tu trafo posee 7,5V será mejor, ya que no necesitarás de disipador de calor para el 7805.
Te va a funcionar muy bien igual con 9V, pero prueba tambien con 7,5V (si lo tienes disponible) y compara la temperatura del 7805 con una tensión y otra.
No omitas nada del circuito que te apunté y tendrás el problema solucionado seguramente.
Saludos.
Estamos en contacto.
Mario
-
¿Regulará bien un 7805 con 7.5V de entrada?
¿El rango no es entre aproximadamente 9V y 33V para el 7805?
Saludos.
-
Si que tengo 7,5 V, lo probaré.
Respecto al circuito, como la señal que llega ya es continua, no necesito los diodos, ¿No?
Luego pasaré por la tienda a comprar los condensadores, ya que se supone que debo de tener pero en los cerámicos no me aclaro de cual es cual y al final es como si no los tuviera.
He visto algún circuito alternativo por la red con el 7805, imagino que también valdran ¿No?, son bastante mas simples con un par de condensadores de 0.1u
Un saludo
-
quita todos los transformadores que estan cerca del circuito, a mi me paso asi no corria el programa o el PIC hacia lo que le daba la gana :x, te recomiendo que pongas el transformador a una distancia mayor a 20cm y cuidado con los transformadores que estan desconectados que se autoinducen y eso es un desastre con el micro. Saludos (el prototipo con un PIC 16F876a lo monte en una placa y funciona al pelo :-/ :-/)
-
Hola gente!
Las hojas de datos que siempre conocí, me daban entre 7V y 35V los valores para entrarle al 7805.
Además siempre que he hecho fuentes específicas de ese tipo, he usado trafos de 7,5 y nunca tuve problemas.
Al menos esa es mi experiencia Bruno.
Saludos
Mario
-
Ya encontre que le pasaba.
Antes de nada, lo primero que hice fue montar el circuito para estabilizar a 5v, le paso 7,5 del transformador y me da los 5,03v. Con esto no consegui nada, asi que ...
Cambie el codigo del programa para que simplemente encendiera el led y OK!!, lo curioso es que al desconectar el transformador el led parpadeaba .... El parpadeo no era porque desenchufara sino por lo que habeis comentado, quedan cargados varios condensadores y provoca un parpadeo.
Puse 2 leds y un programa que solo encendiera los 2 leds, como todavía no se que otras ordenes tenia que darle en el programa, copie el programa de intermitencia de 3 leds (un poco mas abajo en Ejemplitos C), lo vario para que funcione con 2 y .... tachan!!!! funciona !!!! :-/
Conclusion final (despues de mas pruebas)
la línea
#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
no la hacía funcionar, sin embargo con la linea:
#fuses XT,NOCPD,NOWDT,NOPUT,NOLVP,NOBROWNOUT //ordenes
Funciona perfectamente.
Ya solo me queda averiguar que es cada una de esas ordenes.
Un saludo y gracias por todas las aportaciones
-
Bueno, me alegro que lo hayas solucionado.
XT es la seleccion del tipo de cristal.Dependiendo de la velocidad del cristal, se selecciona RC,XT,HS...
NOWDT indica Watch Dog Timer deshabilitado. El perro guardian genera un reset si se desborda.
NOCPD seria NO Code Protection Data. Significa que no estas protegiendo el programa contra lectura.
NOPUT seria NO Power Up Timer. Si lo activas, el microcontrolador espera un pequeño tiempo(52ms@4mhz) para estabilizarse internamente antes de comenzar a ejecutar el codigo de programa.
NOLVP significa NO Low Voltage Programming. Esto se usa solamente si programas el PIC en el programador con voltajes menores a los de grabacion tipica.
NOBROWNOUT significa NO Brown Out Reset. Si lo activas, lo que hace es impedir la grabacion en EEPROM, FLASH,etc si los niveles de tension de la alimentacion del PIC salen de los parametros seguros y produce un reset.
Saludos.
-
Entonces ....
La diferencia de ordenes es:
NOCPD >> Antes de estar podía leer y entiendo que no interfiere en la ejecución
NOPROTECT >> Ahora no esta, creo que no afecta a la ejecución (Entiendo que es que no lo voy a proteger)
NOLVP >> Puesto que podía programarlo, entiendo que da igual que este o no.
NOBROWNOUT >> No creo que afecte a la ejecución
NOPUT - PUT >> Es lo único que entiendo que puede afectar a la ejecución, ya que antes tenía PUT y ahora tengo NOPUT.
Si no es eso, lo único que entiendo que podría ser es que alguno de los anteriores parámetros provocaran un falso programado del PIC y por eso, en el programador puedo leerlo y escribirlo pero en la placa (¿tensiones diferentes?) no es así.
Gracias por la explicación BrunoF
-
Entonces ....
La diferencia de ordenes es:
NOCPD >> Antes de estar podía leer y entiendo que no interfiere en la ejecución
El NO indica negacion. Ahora deshabilitaste la proteccion contra lectura.Si no queres que clonen tu programa en memoria flash, activala.No interfiere en el funcionamiento
NOPROTECT >> Ahora no esta, creo que no afecta a la ejecución (Entiendo que es que no lo voy a proteger)
Creo que esta es la proteccion total.La deshabilitaste. Si la activas protejes contra lectura tanto memoria flash como EEPROM.No interfiere en el funcionamiento.
NOLVP >> Puesto que podía programarlo, entiendo que da igual que este o no.
Que hayas podido programarlo no quiere decir que se haya programado correctamente. Puede que este haya hecho la diferencia.
NOBROWNOUT >> No creo que afecte a la ejecución
Si esta activada(ahora la tienes deshabilitada) afecta el funcionamiento si tu fuente de alimentacion era/es inestable.
NOPUT - PUT >> Es lo único que entiendo que puede afectar a la ejecución, ya que antes tenía PUT y ahora tengo NOPUT.
No deberia hacer diferencia en un programa asi de simple.
Saludos.
-
Yo apuesto 100:1 por el LVP. A mi me ha dado verdaderos dolores de cabeza hasta que le puse al 16F628 el NOLVP. A partir de ahí todo como la seda. :mrgreen:
-
Hola, sé que el mensaje es antígüo... pero llevo tooodo el día bloqueado por algo tan elemental como hacer parpadear un puerto no funcionaba (de hecho no respondía nada) :5]
Y después de leer montones de post, este es el que ha dado la solución: Efectívamente RedPic!!! hasta que no he puesto el flag LVP a disable, el 16F628A se quedaba "muerto".
GRACIAS!!!!! :D ;-)