calibración ADC en ATTiny88

4

Estoy escribiendo una aplicación integrada para ATtiny88: una de sus tareas es medir los voltajes de dos baterías de automóvil de 12 V conectadas en serie.

El microcontrolador se alimenta desde aproximadamente 4,5-5 V (LM317), los voltajes medidos (~ 24 V y ~ 12 V) están conectados a dos canales ADC a través de los divisores de voltaje adecuados. En mi aplicación, tengo que usar una referencia de intervalo de banda interna teóricamente igual a 1.1 V.

Probablemente debería hacer algún tipo de procedimiento de calibración, así que ahora mismo me di cuenta de algo como esto:

  1. Aplique exactamente 24 V (12 V) desde una fuente de alimentación externa estabilizada al divisor de voltaje.
  2. Calcule el coeficiente de ganancia para cada canal utilizado (24 (12) / valor medio del canal ADC)
  3. Almacene estos coeficientes en EEPROM y utilícelos como un factor de escala para calcular los voltajes medidos.

Intenté medir la referencia de intervalo de banda interno, uno de los canales ADC está conectado internamente a él, pero siempre devuelve 1023, el valor máximo para un ADC de 10 bits.

Mi pregunta es, ¿cómo medir los voltajes con mayor precisión? El voltaje de referencia de intervalo de banda probablemente varía entre diferentes chips (la hoja de datos dice 1- 1.2 V). ¿Hay alguna forma mejor de hacer la calibración que la que estoy haciendo ahora? Por favor ayuda.

    
pregunta Sławek T.

2 respuestas

3

La referencia de intervalo de banda define el límite superior del rango ADC, por lo que siempre obtendrá una lectura de 1023. Incluso dividirlo no ayuda, ya que el ADC siempre medirá una fracción fija de su referencia.

  • Como ya está disponible en un pin, solo mide el voltaje de referencia interno con precisión.
  • Aplique un voltaje a una entrada libre de ADC. Si bien esto desacopla su voltaje del resto del circuito, asume que las entradas tienen características idénticas. Y necesitas un código adicional para leer ese ADC.
  • Aplique un voltaje a la entrada ADC usada.
  • Aplique un voltaje a la entrada de 24 V de su divisor de voltaje. Esta es la mejor solución de calibración, ya que también corrige errores debido a la precisión de sus resistencias divisoras de voltaje. (El error en el peor de los casos se puede estimar con el doble de precisión, por lo que un 2% si usa resistencias del 1%. Por lo tanto, es mejor usar un 0.1%)

Si bien el último punto permite calibrar el ADC para un cierto voltaje con la mayor precisión, también puede realizar la medición de varios voltajes. De esta manera, descubrirá si hay un desplazamiento (0V no es 0x0000 ), un efecto no lineal u otro. Aquí hay un resultado de mi trabajo:

Esta es una calibración de un ADC bipolar de 16 bits con algunos componentes electrónicos en sentido ascendente, que también tienen un impacto en el rendimiento de la medición. En general, la linealidad está bien, y puede usar una función lineal para convertir la lectura de ADC a voltaje y viceversa. Sin embargo, el residuo (diferencia entre lectura y valor de ADC esperado) muestra esta curva en forma de onda. El efecto no es grande, pero está ahí.

También tenga en cuenta que no utilicé el valor más alto y más bajo para calcular la función, ya que esto doblaría el lado izquierdo y doblaría el lado derecho del residuo y, por lo tanto, daría menos precisión. En cambio, la función se determina de modo que se ajuste bien a las lecturas en todo el rango. (Podría haber elegido algo no lineal para obtener mejores resultados)

Bien, supongo que eso es más de lo que necesitas saber. Un último punto:

Siempre piensa en qué precisión es factible y alcanzable. Su ADC tiene un rango dinámico de 0.1% (1/1023), por lo que debe tener en cuenta cuando usa resistencias del 1% para el divisor, pero las resistencias de 0.1% serían correctas. Y si su multímetro tiene una precisión del 3%, eso es lo mejor que puede obtener para su calibración. Finalmente, el 0.1% de 24V es 24mV, así que decida cuánta precisión necesita.

    
respondido por el sweber
3

La referencia interna de la banda prohibida no es muy precisa, simplemente es estable (es decir, no cambiará mucho con la temperatura y durante la vida útil del chip). Por lo tanto, deberá calibrar utilizando un voltaje conocido y almacenarlo en el dispositivo como lo describió.

Dado que el ADC tiene una buena linealidad por diseño, puedes usar prácticamente cualquier voltaje para calcular el factor de escala siempre que sepas cuál es.

Otra opción, aunque más costosa, es ajustar una referencia de banda prohibida externa al circuito y usarla como referencia para el ADC.

    
respondido por el Jon

Lea otras preguntas en las etiquetas