salida de 12 bits a +/- 10v

0

Supongamos que tenemos una salida de 12 bits firmada que puede representar números positivos y negativos, ¿cómo se puede convertir esto a una señal de +/- 10v utilizando DAC, amplificadores operacionales, etc.

Por ejemplo, 1100 1011 0111 daría como resultado un voltaje negativo y 0111 1101 1000 daría como resultado un voltaje positivo .

¿Qué fórmula podría usarse para calcular el voltaje deseado (+/-)?

    
pregunta M-R

2 respuestas

2

Depende mucho del DAC (y también de la representación). Es posible que pueda encontrar un DAC bipolar que acepte una entrada de complemento de 2, por ejemplo. Un método común es usar un DAC de 12 bits unipolar y agregar un desplazamiento a la salida para que 0x000 sea aproximadamente -10 y 0xFFF sea +10.

Sin embargo, su ejemplo parece indicar el complemento o signo + número de 2. Asumiendo el anterior (complemento a 2) y suponiendo que tiene un DAC bipolar que emite algo de voltaje + Vmax a (aproximadamente) -Vmax para todo el rango, es posible que deba agregar un amplificador para cambiar Vmax a 10V.

Entonces, en el caso de un número de complemento de 12 bits 2, el número positivo máximo es 0x7FF y el número negativo más pequeño es 0x800 (posiblemente el signo extendido a 0xF800 si se usa una representación de 16 bits).

Entonces, si configuramos 0x800 = + 10V (para 2047) entonces el voltaje de salida es:

\ $ V_ {OUT} = R '\ cdot \ frac {10} {2047} \ $ donde R' es el equivalente decimal (entero) de la entrada DAC de complemento a 2 de los 2.

Entonces, para R '= 2047 (0x800) obtenemos 10.000V, para R' = 0 (0x000) obtenemos 0.000V y para R '= -2048 (0x800) obtenemos -10.005V. Tenga en cuenta que existe una ligera asimetría entre el voltaje positivo y negativo máximo debido a la forma en que funciona el complemento de 2.

    
respondido por el Spehro Pefhany
0

Tienes 12 bits para codificar un rango de 20V. Así que tu resolución será

20V / 2^12 = 0.0049V per LSB 

Entonces, para obtener X volts, simplemente divides X por 0.0049 y lo redondeas. Le dará el valor que convierte (firmado, complemento de 2 por ejemplo) binario para representarlo. Por supuesto, la matemática de punto flotante es impresise, por lo que debe verificar que siempre esté en el rango de 12 bits. Y, por supuesto, puedes invertir fácilmente el cálculo.

    
respondido por el Eugene Sh.

Lea otras preguntas en las etiquetas