¿Determinar qué fuente de alimentación está conectada a nuestro circuito?

1

Estoy diseñando un dongle pequeño que tendrá características habilitadas o deshabilitadas en función de la tensión de alimentación. Quiero que el dispositivo sea de baja potencia y funcione, en su mayor parte, con una batería de 3V. Sin embargo, estoy aprovisionando el diseño de modo que el bus pueda ser alimentado por una de tres fuentes: la celda de moneda de 3V, el paquete de baterías externas de 4.5V o VUSB.

La motivación para requerir que sepamos qué fuente está alimentando el bus es que, para aumentar la vida útil, ciertas características (como la indicación de siete segmentos) deben desactivarse si no estamos usando una de las dos opciones de mayor potencia ( VUSB, o externo 4.5V). Por lo tanto, el problema real a resolver es cómo determinar si se selecciona la celda de moneda de 3V; de lo contrario, podemos asumir que las funciones de suplemento pueden habilitarse.

Mi primer pensamiento fue incluir un amplificador de diferencia en el diseño. La implementación tendría una entrada de amplificador operacional en el bus y la otra en el riel de celda de moneda de 3V. Aunque este debería funcionar, agregaría unos pocos dólares adicionales al costo de diseño general que, por supuesto, me gustaría evitar si es posible.

Otra opción podría ser algo con un ADC a bordo utilizando 3V como Referencia analógica (AREF). Pero las cosas comienzan a complicarse demasiado en este punto y comenzamos a crear restricciones innecesarias en los casos de uso del dispositivo (como siempre requiere que la celda de 3V esté presente).

¿Alguna sugerencia?

    
pregunta sherrellbc

2 respuestas

1

Es probable que no haya necesidad de usar un divisor de voltaje; muchas MCU son capaces de usar la referencia interna como entrada y el suministro como referencia. Por ejemplo, en el ATmega328P:

ADMUX &= ~(_BV(REFS1) | _BV(MUX0));
ADMUX |= _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);

Luego puede invertir la ecuación para el recuento de ADC y resolver el voltaje:

\ $ ADC = {{1.1 \ text {V} \ cdot 1024} \ over V} \ $

\ $ V = {{1.1 \ text {V} \ cdot 1024} \ over ADC} \ $

O si no necesita un valor exacto, puede establecer umbrales y comparar directamente:

\ $ ADC_ {th} = {{1.1 \ text {V} \ cdot 1024} \ sobre 3.4 \ text {V}} \ approx 331 \ $

    
respondido por el Ignacio Vazquez-Abrams
2

Puedes usar el ADC de un microcontrolador. Deje el pin AREF externo fuera de la imagen y use el voltaje de referencia interno (como 1.1V para chips AVR), y alimente el voltaje de la fuente al canal ADC por medio de un divisor de voltaje.

Como lo señala Brian Drummond , sería una buena idea sacar el divisor de voltaje de una Pin de E / S (si tiene alguno disponible). Seguirá siendo la tensión de la fuente completa (o al menos un + 95% de la misma). Luego puede conducir el pin HI, medir el voltaje y apagar el pin. Esto evitará un flujo de corriente constante, reduciendo el consumo de energía.

El circuito mostrado producirá los siguientes niveles de voltaje:

  • 5V - > 1V
  • 3V - > 0.6V
  • 1V - > 0.2V

simular este circuito : esquema creado usando CircuitLab

Vout = Vin * R2 / (R1 + R2)

    
respondido por el Kurt E. Clothier

Lea otras preguntas en las etiquetas