desktop

Problema con ATtiny2313 al activar un rele

Que mas compañeros.

Mi nombre es Edwin, soy nuevo en "Foros de Electrónica", llevo prácticamente todo el día buscando una solución para un problema muy sencillo que tengo pero ninguna me ha funcionado por lo que decidi crear un nuevo tema, esperando me puedan colaborar.

El problema es especificamente con el Atmel Attiny2313. Hace un tiempo diseñe e implemente un temporizador digital muy sencillo con un Freescale JK3, su funcionamiento basicamente es: programarlo con una cuenta de 8:00 minutos el decrementa y faltando 5 segundos para terminar la cuenta se activa un rele que enciende un timbre. Este temporizador funciona perfectamente y lo tienen hace mas de dos años en una máquina aca en Colombia y no ha molestado para nada.

El problema se presento luego, cuando me exigieron que necesitaban que el temporizador fuera programable, tenía dos opciones, programarle una memoria externa al microcontrolador o migrar a otro microcontrolador, preferi la segunda y empece a trabajar con Atmel, especificamente el Attiny2313 que tiene memoria EEPROM, justo lo que necesitaba.

Al circuito no le hice ninguna modificación, lo unico es que con el Attiny2313 no estoy utilizando oscilador externo (utilizo el interno y no creo que esta sea la causa de mi problema), el resto del circuito lo deje exactamente igual que el del diseño original (JK3), pero tengo el problema que se activa el rele y prende el timbre pero cuando se apaga el rele se resetea el microcontrolador.

Con un profesor de la Universidad donde estudié le hicimos una modificación para solucionar este problema y lo único que funcionó fue quitar el rele con su transistor y diodo de protección y colocar un optotriac y un triac para activar el timbre. Aparentemente funcionó y vendí varios de estos temporizadores, pero cada momento me llaman porque el programa de los microcontroladores se pierde y despues de que la cuenta llega a 00:00 sigue mostrando basura. Lo curioso es que el microcontrolador no se daña, solo es reprogramarlo y listo. Pero dias despues vuelve a suceder lo mismo.

Para solucionar este problema decidi volver al diseño original (control por rele) e investigar en foros e internet a ver si encontraba una posible solucion a mi problema.

En este foro encuentro mucha información sobre este problema pero para un microcontrolador PIC y al implementar las soluciones que dan en mi circuito no funciona y se sigue reseteando el microcontrolador

Adjunto los diagramas del diseño para ver si me pueden colaborar.

Entre las modificaciones que le he echo al circuito estan:

* Colocar un varistor despues del fusible (Ref. 20D241K)
* El Condensador de la fuente que es de 2200uF/25V lo baje a uno de 1000uF/25V
* Coloque un condensador de 10uF/25V en paralelo a uno de 0.1uF a la salida de la fuente
(5V) para mejorar la fuente
* Coloque un condensador de 0.1uF entre VCC y GND del microcontrolador
* Coloque una red de Snubber en los contactos del rele (C=0.1uF y R=57 Ohmios)
* Esta misma red la probe en la bobina del rele.

Esta es algunas de las ayudas que he encontrado y que me han recomendado pero no me han funcionado.

Adjunto la hoja de datos del Rele, es muy pequeño, y una imagen del timbre.

Muchas gracias si me pueden ayudar.
 

Adjuntos

  • Esquematico Control.PDF
    94.6 KB · Visitas: 38
  • Esquematico Display.PDF
    51.9 KB · Visitas: 27
  • rele.pdf
    105.3 KB · Visitas: 20
  • timbre.jpg
    timbre.jpg
    7 KB · Visitas: 10
Así, a bote pronto, le veo un fallo muy gordo, aunque bien puede ser mi (mala) vista. No encuentro por ningún lado ningún codensador de filtrado en la línea de los +5V, ni condensadores de desacoplo.

Por otro lado, el circuito de Reset no veo que tenga ninguna resistencia de Pull Up a +5V, y el condensador del mismo es muy grande.

Otro error que veo es que el relé lo alimentas desde los mismos +5V, en lugar de a partir de la tensión de salida directa del transformador.

Vamos, que desde mi punto de vista, tu circuito de alimentación llama a los problemas como este por defecto, si es que la vista no me engaña.

¿Dices que te ha ayudado un profesor?
 
Hola

Primero agradecerte por la ayuda, te comento:

Ayer en la tarde le hice una modificación a la fuente, le coloque un condensador de 10uF / 16V en paralelo a la salida del 7805 y otro en paralelo de 0.1 uF, este es el que llaman condensador de desacoplo pero no te entiendo cual es el condensador de filtrado en la linea de los 5 Voltios, es uno de estos dos???

Lo del reset tienes razon aunque el condensador que tiene en este momento es de 0.1uF, no tiene resistencia de Pull Up, se la pondre hoy en la noche para probar.

En cuanto a la alimentancion del rele no se me habia ocurrido lo que dices y vaya si tienes razón, pero te pregunto, cambio entonces esa alimentacion de 5 voltios y tomo la salida del transformador (6V AC) y antes del puente de diodos??. cual sería el punto de referrencia para esa señal?? cambio la tierra (GND) por la otra salida del transformador (Como muetra la imagen que subi??)

Si me habia ayudado un profesor pero no me dio tantas sugerencias como las que me diste tu.

Gracias
 

Adjuntos

  • tempo.JPG
    tempo.JPG
    48.9 KB · Visitas: 38
El condendasor de 10uF/16V que me comentas es lo que he llamado condensador de filtrado en la línea de 5V, así que ya lo tienes puesto.

El condensador de 0.1uF en paralelo es efectivamente uno de los de desacoplo. Pero hay que añadir uno en cada entrada de +5V (Vcc) de cualquier microcontrolador, lo más cerca posible de los pines de Vcc y Masa (hay documentación extensa la respecto en Internet).

La resistencia de pull up de la línea de Reset es importantísima, si no, igual nunca sale del reset...

Aunque la alimentación del relé sea la línea de 6V, pero la masa vale la misma. No olvides a poner un generoso plano de masa en cualquier circunstancia.

Mantennos informados.
 
Hola

Les comento lo que he echo esta noche

1.. Coloque un condensador de 0,1 uF de tantalio antes del fusible.

2. Coloque un varistor de 20D241K Voltios despues del fusible.

3. Por supuesto el condensador de 10 uF/16V en paralelo al de 0,1uF en la salida de los 5V de la fuente, los cuales ya te habia comentado.

4. coloque un condensador 0.1uF en la alimentacion del microcontrolador (VCC-GND), lei que se necesitaba lo mas cerca de los pines del micro asi que lo solde debajo de la tarjeta para probar justo en los dos pines de alimentacion.

5. Puse una resistencia de Pull Up de 10K al reset del micro quedando entonces: la resistencia a VCC, en serie el pulsador a tierra, el pulso para el micro lo tomo entre estas dos y en Paralelo al pulsador esta el condensador de 0.1 uF a tierra.

6. Tengo un condesador de tantalio de 0,1 uF en paralelo a la bobina del rele.

7. Coloque una red de Snubber en paralelo a los contactos de la bobina un condensador de 0,1uF de tantalio y una resistencia de 56 Omhios.

8. Por ultimo cambie el voltaje que alimenta la bobina y tome una de las salidas del transformador y la referencia la otra salida del transformador (6V AC) como lo mostre en la imagen.

Hice un programita de prueba, el tiempo inicial es 20 segundos, decrementa hasta llegar a 10 segundos, en este momento se debe activar el rele y prender el timbre y pasados 5 segundos, se debe apagar el timbre, y seguir el conteo hasta llegar a 0 y listo (pues este debia ser el funcionamiento ideal)

RESULTADOS

El funcionamiento del temporizador es normal hasta el segundo 10, en este el rele se activa y prende el timbre pero resultan dos problemas mas: 1. El timbre suena muy pasito a comparación de antes y 2. Los displays empiezan a titilar como si hubiese mucho ruido. Lo que no cambia es que al llegar a los 5 segundos cuando se desactiva el rele nuevamente el micro se resetea.

CONCLUSION:

Nada que soluciono el problema.

Me surgen muchas preguntas:

* ¿Que mas le hago a este circuito?

* Que problema puede tener el Attiny2313 con respecto a otros micros, por ejemplo el JK3 de freescale que ocurre este problema?? les recuerdo que inicialmente implemente este temporizador con el JK3 y no tuve este problema y ese temporizador todavia funciona, aunque no quiero rendirme y dejarlo asi y cambiar de micro de nuevo.

Estoy atento a cualquier otra ayudita.

Gracias.
 
¿Tienes un osciloscopio? Parece que el transformador no es capaz de dar toda la corriente necesaria. ¿Has medido el consumo total del circuito con el relé activado?¿Has medido los 5V del micro en todas las circunstancias?

Además de los problemas de HW que parece ser que tienes, no se puede descartar ni el problema del SW, ni otro menos obvio: el watchdog. Asegurate que este último esté desactivado por software y que no hay fusibles que lo fuercen a estar activado, por ejemplo.

Postear el código (que parece sencillo) no sería tampoco mala idea.

El ATTiny debería ser más que capaz de hacer lo que cuentas sin mayor problema. Incluso podría activar directamente (con sus resistencias de 220ohms) los displays con la ayuda de los PNP's que ya tienes, y así ahorrarte el el 74XX que usas.

Por cierto, sólo el relé ya consume unos 50mA. Si añades el consumo de los displays igual necesitas ya 100mA en total. Asegúrate que el consumo no supera dichos 100mA y que el trafo es capaz de darte dicha corriente.
 
Última edición:
Hola

En teoría el transformador es de 300 mA y debería funcionar, aunque no lo he medido, como tampoco he medido el voltaje del micro en todas las circunstancias. (lo hare esta noche al llegar a mi casa)

Adjunto el programa:
1. extint.h es la libreria para manejar las interrupciones externas
2. extint.c Configura la interrupcion externa y su modo de trabajo
3. main.c Programa principal.

El watchdog no lo estoy utilizando, tendre que estudiar esto porque no se como activarlo. (si me puedes colaborar con esto te lo agradezco)

En la noche tomo medidas de corriente y voltaje del micro y les comento

Gracias.
 

Adjuntos

  • Programas.rar
    3.4 KB · Visitas: 18
Primero agradecerles por todas sus sugerencias, he aprendido bastante con este pequeño problemilla que se me presentó, por fin lo solucioné.

Despues de probar todas las soluciones hardware posibles, decidi hacer un programa de prueba nuevo cargando el timer con 30:00 minutos, cuando el ultimo digito esta en 0 se apaga el timbre, cuando esta en 5 se activa y asi sucesivamente y no tuve ningun problema (Por fin una solución)

Pero donde estaba el problema???

Con todas las modificaciones hechas al circuito decidi aplicar ingenieria inversa como llamamos aca en Colombia y empezar a quitar componentes para ver donde fallaba, empece por la red de snubber, funciono bien, luego el condensador que coloque en la bobina del rele y el resultado fue el mismo, quite tambien la resistencia de pull up y no vario el resultado, funciono bien. por ultimo decidi quitar el filtro que coloque en la fuente (salida de 5Voltios) el condensador de 10uF/16V en paralelo con el de 0.1 uF y aca empezo a fallar el circuito, se reinició el micro.

Conclusión, es increible como la ausencia de esos dos filtros en la fuente puede ocasionar un mal funcionamiento en un sistemita tan sencillo.

Ahora hare el impreso para el nuevo temporizador, eso si, con todas las modificaciones que había echo (red de snubber, filtros, resistencias, etc) creo que aunque la ausencia de estos no afecta mi circuito a excepción de los filtros de la fuente, pueden ayudar a proteger mas el circuito. o que Opinan??.

Les Agradezco mucho la ayuda, y espero este tema ayude a otros desarrolladores con problemas similares.
 
Atrás
Arriba