7 votos

Problema de fallo de alimentación del DS1307

El DS1307 tiene dos fuentes de alimentación: la fuente principal VCC y la batería de reserva. Esta última alimentará el DS1307 cuando la alimentación principal se caiga para que el reloj pueda seguir funcionando.

Estoy enfrentando un problema con el RTC DS1307 cuando la alimentación principal se corta repentinamente y luego vuelve la hora en la pantalla LCD sólo se congela. A veces, cuando eso sucede (apagado) el RTC sigue funcionando (parece que el DS se queda atascado cuando la alimentación principal se apaga).

Este es el circuito exacto que usé y la batería da 3,0V:

Schematics

El código que he utilizado está exactamente en la entrada del blog: DS1307 Reloj en Tiempo Real Funcionando .

¿Cuál puede ser el problema?

3voto

privatehuff Puntos 404

El esquema es bueno. Haz esta lista de comprobación:

  • Comprueba que tu fuente de alimentación es de onda limpia, especialmente en los tiempos de conexión y desconexión. Si pica más de 1V añada un condensador de 4,7uF. Si no se soluciona el problema, cambie la fuente de alimentación y renueve el DS1307.

  • Comprueba la capacidad de corriente de la batería de 3V, no solo el voltaje, el DS1307 necesita 200uA como mínimo.

  • Comprueba si el bate de 3V tiene una ruta no deseada que lo descargue. Especialmente si usted está usando protoboard.

  • Compruebe los comandos/software I2C.

2voto

Por lo general, este tipo de problema surge debido a:

  1. La fuente de alimentación no se ocupa de los transitorios en el corte de energía y cuando se restablece.
  2. Célula mala
  3. A veces se debe a un error de software...

1voto

christiaan_ Puntos 51

¿Se ha asegurado de hacer lo que se recomienda en la ficha técnica?

RELOJ Y CALENDARIO


El bit 7 del registro 0 es el bit de detención del reloj (CH). Cuando este bit se pone a 1, el oscilador se desactiva. Cuando se borra a un 0, el oscilador está habilitado. Tenga en cuenta que el estado inicial de encendido de todos los registros no está definido. Por lo tanto, es importante habilitar el oscilador (bit CH = 0) durante la configuración inicial.


En otras palabras, si se olvidó en la inicialización del software de restablecer el bit CH, el oscilador no funcionaría (y el valor del bit es aleatorio en el encendido)

1voto

Kieron Puntos 5096

Comprueba que estás reseteando el bus I2C correctamente al arrancar. Si no lo estás haciendo verás que cuando tu programa está bloqueado la línea de datos estará baja todo el tiempo. Puedes resolver este problema enviando pulsos de reloj desde el maestro hasta que todos los dispositivos hayan liberado la línea de datos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X