¿La comprobación del voltaje de respaldo en un RTC agotará su batería de respaldo?

8

Estoy trabajando en un proyecto ATMega que mantendrá el tiempo y estoy tratando de hacerlo para que tenga una opción de RTC de tiempo de software (basado en milis ()), DS1307 o DS3231 (ChronoDot).

En lo más básico, lo que me gustaría hacer es tener encabezados para un ChronoDot disponible para soldar y luego de alguna manera en el software detectar si el ChronoDot está conectado y cambiar a usar eso. Por lo general, sería bastante fácil comprobar que el DS1307 o el DS3231 están presentes ya que utilizan el mismo registro I2C, pero después de esa comprobación inicial se desvían un poco entre sí y este último tiene más funciones. Así que todavía quiero determinar cuál está conectado. En general, planeo tener un lugar directamente a bordo para soldar en el DS1307 como la opción predeterminada y el soporte del DS3231 sería con un ChronoDot completo solo a través de cabezales dobles de 4 pines. El ChronoDot esencialmente cabría en el lugar donde el DS1307 normalmente iría (no se rellenaría en este caso). La razón principal por la que me estoy enfocando en el ChronoDot específicamente es que es popular, fácil de adquirir y no requiere soldadura SMD para el usuario final (esto es para un kit). Entonces, esto es lo que estoy pensando ...

Tanto el DS1307 como el DS3231 tienen una línea Vbat en el chip, pero no es realmente necesario para nada. Sin embargo, el ChronoDot tiene un pin VBat real en el tablero de ruptura. Tal vez podría conectar solo Vbat desde el encabezado ChronoDot y no el DS1307 y conectarlo a un pin de entrada digital en mi ATMega. Pero haga que el pin de entrada sea puesto a tierra por una resistencia (no estoy realmente seguro de qué valor ... ¿quizás 4.7k?). Si mi teoría de EE es correcta, entonces puedo leer ese pin y si obtengo una baja, no hay chronodot, pero si obtengo una alta, la hay.

Algo como esto:

simular este circuito : esquema creado usando CircuitLab

Mi pregunta principal aquí es si al hacer esto, ¿acabará de agotar la batería de respaldo del RTC? Normalmente, no se extraerá corriente de la batería de respaldo mientras se suministra la alimentación principal, 5V, pero si se conecta a una entrada digital, ¿se extraerá energía de la batería todo el tiempo? O, ¿hay un modo en el que necesitaría poner el pin después de leerlo para "desconectarlo", por así decirlo? Sé que podría cambiarlo a salida, pero creo que si está configurado como salida y bajo, básicamente estaría conectando a tierra la batería.

De todos modos, mis cursos de EE fueron hace mucho tiempo . Cualquier ayuda sobre la teoría aquí sería apreciada.

    
pregunta Adam Haile

3 respuestas

8

Ciertamente, drenarás la batería a través de la resistencia. La cantidad de corriente que consumirá se regirá por la ley de Ohm: I = V / R. Digamos que el voltaje de la batería es de 3 V (es decir, el Vbat de chronodot habitual). Con una resistencia de 4.7 kOhm, dibujará 3/4700 = 638 microamperios continuamente. Si lo convierte en una resistencia de 1 MOhm, en su lugar dibujará 3/1000000 = 3 microamperios. Y si creas una resistencia de 10 MOhm, dibujarás 3 / 1e7 = 300 nanoampas.

Cuanto mayor sea el valor del resistor que elija, menor será la corriente que dibujará de forma continua, pero más tardará la transición de su pin digital (piense en la constante de tiempo R * C gobernada por la resistencia y la capacitancia de los pins y trazas) . Mientras espere el tiempo suficiente (o vuelva a revisar periódicamente) después del inicio, debería estar bien con una resistencia de 10 MOhm. Teóricamente, también podría captar más ruido con un valor mayor (ya que se parece cada vez más a un circuito abierto), pero creo que estará bien. Incluso podría considerar subir a 100 MOhm.

Un CR1632 típico tiene 130 miliamperios-hora (mAh) de energía almacenada en él, y tal vez el 80% de eso sea vida útil, así que llamémoslo 100 mAh para facilitar el cálculo. Una estimación aproximada de la vida útil de la batería es un consumo de miliamperios / miliamperios.

  • Con su resistencia de 4.7 kOhm eso es 100 / .638 = 156 horas = 6.5 días
  • Con una resistencia de 1 MOhm que es 100 / 0.003 = 33333 horas = 3.8 años
  • Con una resistencia de 10 MOhm que es 100 / 0.0003 = 333333 horas = 38 años

Estos son números de límite superior que suponen que el resto de su sistema no consume energía. Representan la vida útil de su sistema cuando está apagado y la batería simplemente se agota a través de la resistencia. También hay muchos efectos de segundo orden que no se tienen en cuenta (caída de voltaje, química interna de fugas de la batería, etc.). Es poco probable que la resistencia sea su mayor problema dependiendo de la vida útil que espera lograr.

    
respondido por el vicatcu
1

Casi cualquiera de estos esquemas de medición con resistencias, si se dejan conectados permanentemente, causarán un consumo de corriente inaceptable y una reducción de la vida útil de la pequeña batería de litio que alimenta estos dispositivos.

Entonces, la solución es tener solo una corriente de consumo de circuito de medición durante breves intervalos de tiempo, cuando en realidad estás tomando una medida.

Para una prueba digital, esto podría ser tan fácil como usar un desplegable interno, configurable por software, y configurarlo solo como un desplegable por un breve período de tiempo alrededor de la prueba. Sin embargo, deberá tener en cuenta las posibles complicaciones de tener voltaje en el pin cuando la MCU que realiza la medición no está encendida / en modo de suspensión.

Una medición analógica sería más complicada, pero se podrían aplicar ideas similares. Por ejemplo, podría conectar el resistor inferior de un divisor de voltaje (alta impedancia en relación con las E / S) a un pin de salida, y mantenerlo bajo durante un tiempo alrededor de la medición. O incluso podría construir un circuito RC con un pequeño capacitor de baja fuga y un solo pin de E / S que podría conducir bajo como salida, luego configurarlo como una entrada analógica y medir el voltaje después de un período de tiempo. Si la tensión de umbral digital del dispositivo es consistente (¡tenga cuidado con la temperatura!), Incluso puede hacer una medición analógica con una entrada digital de esta manera, midiendo el tiempo que tarda el condensador en cargarse hasta la tensión de umbral.

    
respondido por el Chris Stratton
1

El DS3231 tiene una temperatura interna que puede leer. Podría emitir un comando sobre I2C para leer la temperatura, si recibió una respuesta tiene el DS3231, si no tiene el DS1307.

    
respondido por el Scott Goldthwaite

Lea otras preguntas en las etiquetas