Fórmula LSB del convertidor analógico-digital

4

¿Cuál es la definición correcta del voltaje LSB para un convertidor analógico a digital?

He encontrado dos fórmulas:

LSB = FS / (2 N )

LSB = FS / (2 N - 1)

N ... resolución en bits del ADC.

FS ... Rango de entrada de escala completa

¿Tiene esto algo que ver con la ubicación de la primera transición de código?

¿Puede alguien aclararme este problema?

    
pregunta Don

3 respuestas

5

La definición para el LSB como $$ LSB = \ frac {FSR} {2 ^ N} $$ se puede encontrar en el estándar IEEE 1241-2010 ("Estándar IEEE para terminología y métodos de prueba para convertidores analógico a digital") y se usa comúnmente para dispositivos comerciales. Por lo tanto, puede considerarse la definición correcta.

Para el diseño de circuitos integrados, cuando se construye un ADC como parte de una cadena de procesamiento de señales o como un subbloque de un ADC más grande, a veces tiene sentido definir el LSB de manera diferente (\ $ LSB = FSR / (2 ^ N-1) \ $).

El motivo es que existen dos convenciones para ADC según los niveles de transición de código utilizados. Una es la llamada convención de la mitad de la banda de rodadura, donde FSR / 2 está justo en medio de un código y la primera transición se produce en LSB / 2. La otra es la convención de mediana altura donde FSR / 2 ocurre en la transición y la primera transición ocurre en LSB.

Las funciones de transferencia de ambos tipos se muestran a continuación, las líneas de puntos indican el rango para el tipo de banda de rodadura media y las líneas de puntos son para la columna ascendente media.

Como se muestra en el gráfico, la última transición para el tipo de banda de rodadura media ocurre 3/2 LSB por debajo de FSR, mientras que la primera transición es a 1/2 LSB. Para tener una función de transferencia simétrica, la última transición a veces se hace 1/2 LSB por debajo del voltaje máximo. Por lo tanto, se elimina un LSB del extremo superior.

En este caso, el LSB sería FSR / (2 ^ N-1).

    
respondido por el Mario
4

La ecuación \ $ \ mathrm {LSB} = \ frac {\ mathrm {FS}} {2 ^ N - 1} \ $ se repite comúnmente, pero en realidad no es correcta. Para un ADC con una resolución de \ $ N \ $ bit, cada bit debe representar un intervalo de \ $ \ frac {1} {2 ^ N} \ $ del rango de entrada. Como tal, la ecuación \ $ \ mathrm {LSB} = \ frac {\ mathrm {FS}} {2 ^ N} \ $ es correcta.

Entonces, la primera entrada se extenderá desde \ $ \ left [0 \ space \ frac {1} {2 ^ N} \ right) \ $, el segundo \ $ \ left [\ frac {1} {2 ^ N } \ space \ frac {2} {2 ^ N} \ right) \ $, y así el cuarto.

Lo que esto significa es que el voltaje que está midiendo podría estar en cualquier lugar dentro de ese rango, por lo que debe decidir cómo desea representarlo; por ejemplo, podría reducir el nivel del rango (1), ceil y pick en la parte superior del rango (2), o seleccione el valor medio (3). Eso daría cálculos de:

$$ \ begin {align} \\ V_ {in} & = \ frac {V_ {ref} \ times \ mathrm {Code}} {2 ^ N} \ tag1 \\\\ V_ {in} & = \ frac {V_ {ref} \ times (\ mathrm {Code} +1)} {2 ^ N} \ tag2 \\\\ V_ {in} & = \ frac {V_ {ref} \ times (\ mathrm {Code} +0.5)} {2 ^ N} \ tag3 \\ \ end {align} $$

Para agregar un ejemplo real a la mezcla, tome el ADC del ATMega1284. Si consulta la página 253 de la hoja de datos , se proporciona la ecuación que relaciona el voltaje con el código ADC. Reorganizando eso en tu formulario, es:

$$ V_ {in} = \ frac {V_ {ref} \ times \ mathrm {Code}} {2 ^ N} $$

    
respondido por el Tom Carpenter
2

Esto depende de la asignación exacta del voltaje de entrada para cada código digital, pero generalmente la resolución (tamaño de paso de voltaje de entrada para lecturas incrementales) es FS / 2 N .

Considere una A / D ideal de 2 bits con un rango de voltaje de entrada de 0-1:

 Input V  Output code
 -------  -----------

     1.0  -----
      |
     0.9
      |      11
     0.8
      |   -----
     0.7
      |
     0.6     10
      |
     0.5  -----
      |
     0.4
      |      01
     0.3
      |   -----
     0.2
      |
     0.1     00
      |
     0.0  -----

Cada código representa un rango de 0.25 V en la entrada.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas