Formulario de salida de DAC0832
Como se muestra en la Figura 9-58, la conversión de corriente → voltaje la realiza el amplificador operacional, utilizando la resistencia de retroalimentación interna. La relación entre el valor de voltaje de salida VOUT y la cantidad digital de entrada D:
VOUT = - VREF ×D/256
D = 0~255, VOUT = 0 ~ - VREF × 255/256
VREF = -5V, VOUT =0~5×(255/256)V
VREF = 5V, VOUT = 0 ~ -5×(255/256) V Si el sistema de aplicación real requiere que el voltaje analógico de salida sea bipolar, debe implementarse con un circuito de conversión. Como se muestra en la Figura 9-59.
Donde R2=R3=2R1
VOUT= 2×VREF×D/256-VREF= (2D/256-1)VREF
D = 0 , VOUT= -VREF;
D = 128, VOUT= 0;
D = 255, VOUT= (2×255/256-1)×VREF= (254/255 )VREF
Es decir: cuando el número de entrada es 0~255, el voltaje de salida cambia entre - VREF ~ VREF.
1. Amplificador operacional
El amplificador operacional tiene tres características:
⑴ El factor de amplificación de bucle abierto es muy alto, generalmente varios miles, o incluso tan alto. como 100.000. En circunstancias normales, el voltaje de entrada requerido por el amplificador operacional es muy pequeño.
⑵La impedancia de entrada es muy grande. Cuando el amplificador operacional está funcionando, el terminal de entrada equivale a un pequeño voltaje agregado a una gran impedancia de entrada, y la corriente de entrada requerida también es muy pequeña.
⑶La impedancia de salida es muy pequeña, por lo que su capacidad de conducción es muy grande.
2. Un convertidor D/A compuesto por una red de resistencias y un amplificador operacional.
Usando el principio de sumar corrientes de entrada del amplificador operacional, se crea un convertidor D/A como se muestra en la Figura. 10.7. El convertidor D/A de 4 bits más simple está compuesto por una red de resistencias y un amplificador operacional. En la figura, V0 es una fuente de alimentación estándar con suficiente precisión. Cada rama del extremo de entrada del amplificador operacional corresponde a los bits D0, D1,..., Dn-1 de los datos a convertir. El interruptor en cada rama de entrada está controlado por el valor del elemento digital correspondiente. Si el elemento digital es 1, el interruptor correspondiente está cerrado; si el elemento digital es 0, el interruptor correspondiente está abierto. Las resistencias en cada rama de entrada son R, 2R, 4R, etc. Estas resistencias se denominan resistencias de peso.
Supongamos que hay 4 ramas en el extremo de entrada. Desde todos los interruptores abiertos hasta todos cerrados de las cuatro ramas, el amplificador operacional puede obtener 16 entradas de corriente diferentes. Es decir, a través de la red de resistencias, 0000B ~ 1111B se pueden convertir en corrientes de diferentes tamaños, de modo que se puedan obtener voltajes correspondientemente diferentes en el extremo de salida del amplificador operacional. Si el número 0000B aumenta en 1 cada vez hasta que cambia a 1111B, entonces se puede obtener una forma de onda en escalera con una amplitud de voltaje de 0~V0 en el extremo de salida.
3. Convertidor D/A que utiliza una red de resistencias en forma de T
Como se puede ver en la Figura 10.7, se utiliza una red de resistencias ponderadas independientes en la conversión D/A. Un convertidor D/A con números binarios requiere ocho resistencias que van desde R, 2R, 4R,..., 128R. El valor máximo de la resistencia es 128 veces el valor mínimo de la resistencia, y la precisión de estas resistencias es relativamente alta. Si este es el caso, será muy difícil de implementar tecnológicamente. Por lo tanto, la solución de n ramas de entrada independientes no es práctica.
En la estructura del circuito DAC, la más simple y práctica es utilizar una red de resistencias en forma de T en lugar de una red de resistencias ponderada única. Toda la red de resistencias solo requiere dos resistencias, R y 2R. En los circuitos integrados, dado que todos los componentes están fabricados en el mismo chip, las características de las resistencias pueden ser muy similares y también pueden resolverse los problemas de precisión y error.
La figura 10.8 es un convertidor D/A de 4 bits que utiliza una red de resistencias en forma de T. Los datos de 4 bits que se van a convertir controlan la dirección inversa de los interruptores en las 4 ramas respectivamente. En cada rama, si (los datos son 0) el interruptor se gira hacia la izquierda, la resistencia en la rama está conectada a tierra; si (los datos son 1) el interruptor se gira hacia la derecha, la resistencia está conectada a; el terreno virtual. Por lo tanto, no importa de qué lado esté inclinado el interruptor, se puede considerar que está conectado a "tierra". Sin embargo, se puede suministrar corriente a la entrada del amplificador operacional solo cuando el interruptor se gira hacia la derecha.
En la red de resistencias tipo T, dos resistencias 2R están conectadas en paralelo a la izquierda del nodo A, y su resistencia equivalente es R. Dos resistencias 2R también están conectadas en paralelo a la izquierda del nodo B , y su resistencia equivalente es R. También es R,..., y así sucesivamente. Finalmente, en el punto D, equivale a una resistencia con un valor de R conectada al voltaje de referencia VREF. De esta forma, es fácil calcular que los potenciales del punto C, del punto B y del punto A son -VREF/2, -VREF/4 y -VREF/8 respectivamente.
Después de comprender las características de la red de resistencias y el voltaje de cada nodo, analicemos el valor actual de cada rama. Los conmutadores S3, S2, S1 y S0 representan respectivamente números binarios de 1 bit correspondientes. Si algún bit de datos Di = 1, significa que el interruptor Si está girado hacia la derecha; Di = 0, significa que el interruptor Si está girado hacia la izquierda, conectado a tierra virtual y no hay corriente. Cuando el interruptor S3 de la primera rama de la derecha se gira hacia la derecha, la corriente de entrada obtenida por el amplificador operacional es -VREF/(2R). De manera similar, cuando los interruptores S2, S1 y S0 se giran hacia la derecha, las corrientes de entrada son -VREF/ respectivamente (4R), -VREF/(8R), -VREF/(16R).
Si un dato binario es 1111, la corriente de entrada del amplificador operacional
I=-VREF/(2R)-VREF/(4R)-VREF/(8R)-VREF /( 16R)
=-VREF/(2R)(20 2-1 2-2 2-3)
=-VREF/(24R)(23 22 21 20)
p>Voltaje de salida correspondiente
V0=IR0=-VREFR0 (24R) (23 22 21 20)
Extiende los datos a n bits, y el la cantidad analógica de salida es la misma que la de entrada La expresión general de la relación entre cantidades digitales es:
V0=-VREFR0/(2nR) (Dn-12n-1 Dn-2 2n-2 … D121 D020 ) (Di=1 o 0)
La fórmula anterior muestra que además de ser proporcional al número binario a convertir, el voltaje de salida V0 también está relacionado con la resistencia de red R, la retroalimentación del amplificador operacional. resistencia R0 y el voltaje de referencia estándar VREF.
2. Parámetros de rendimiento del convertidor D/A
Al implementar la conversión D/A, intervienen principalmente los siguientes parámetros de rendimiento.
⑴Resolución. La resolución se refiere a la relación entre el voltaje de salida mínimo (correspondiente al incremento de voltaje de salida causado por el aumento en 1 del bit más bajo de la cantidad digital de entrada) y el voltaje de salida máximo (correspondiente al voltaje de salida cuando todos los bits válidos de la cantidad digital de entrada las cantidades son todas 1),
Por ejemplo, la resolución de un DAC de 4 bits es 1/(16-1)=1/15=6,67 (la resolución también suele expresarse como porcentaje). La resolución del DAC de 8 bits es 1/255=0,39. Evidentemente, cuantos más bits, mayor será la resolución.
⑵Precisión de conversión. Si no se considera el error de conversión D/A, la precisión de la conversión DAC es el tamaño de la resolución. Por lo tanto, para obtener resultados de conversión D/A de alta precisión, primero debe seleccionar un DAC con una resolución suficientemente alta.
La precisión de la conversión D/A se divide en precisión de conversión absoluta y relativa, que generalmente se expresa por el tamaño del error. El error de conversión del DAC incluye errores integrales como error de punto cero, error de deriva, error de ganancia, error de ruido y linealidad, error de linealidad diferencial, etc.
La precisión de conversión absoluta se refiere al grado en que la salida analógica está cerca del valor teórico cuando se ingresa la entrada digital de escala completa. Está relacionado con la precisión de la fuente de alimentación estándar y la precisión de la resistencia de peso. La precisión de conversión relativa se refiere a la diferencia entre la salida correspondiente a cualquier cantidad analógica y su valor teórico dentro de todo el rango de escala bajo la premisa de que se ha calibrado la escala completa.
Refleja la linealidad del DAC. Generalmente, la precisión de conversión relativa es más práctica que la precisión de conversión absoluta.
La precisión de conversión relativa generalmente se expresa como un porcentaje de la precisión de conversión absoluta en relación con la salida a escala completa y, a veces, como una fracción del bit más bajo (LSB). Por ejemplo, suponiendo que VFS es el voltaje de salida de escala completa de 5 V y la precisión de conversión relativa del DAC de n bits es ±0,1, el error máximo es ±0,1 VFS = ±5 mV si la precisión de conversión relativa es ±1/; 2LSB y LSB=1/2n, entonces el error relativo máximo es ±1/2n 1VFS.
⑶Error no lineal. El error no lineal de un convertidor D/A se define como la desviación máxima entre la curva característica de conversión real y la curva característica ideal, y se mide como un porcentaje de la desviación relativa al fondo de escala. El diseño del circuito convertidor generalmente requiere que el error no lineal no sea mayor que ±1/2LSB.
⑷Tasa de conversión/tiempo de configuración. La velocidad de respuesta en realidad se refleja en el tiempo de asentamiento. El tiempo de establecimiento se refiere al tiempo requerido para que el voltaje de salida analógico del DAC alcance un cierto valor especificado (por ejemplo, 90 de escala completa o ±1/2LSB de escala completa) cuando el valor digital está en la escala completa (todos los bits están 1).
El tiempo de configuración es un parámetro importante para la tasa de conversión D/A. Obviamente, cuanto mayor sea el tiempo de asentamiento, menor será la velocidad de respuesta. El tiempo de estabilización de los diferentes modelos de DAC generalmente oscila entre unos pocos nanosegundos y unos pocos microsegundos. Si la forma de salida es corriente, el tiempo de estabilización del DAC es muy corto; si la forma de salida es voltaje, el tiempo de estabilización del DAC es principalmente el tiempo de respuesta requerido por el amplificador operacional de salida.
10.3.3 DAC0832 y circuito de interfaz
DAC0832 es un convertidor D/A de doble búfer de 8 bits desarrollado por American Data Corporation. El chip tiene un pestillo de datos y se puede conectar directamente al bus de datos. El circuito tiene un excelente rendimiento de seguimiento de temperatura y utiliza interruptores de corriente COMS y lógica de control para obtener un bajo consumo de energía y un bajo error de corriente de fuga de salida. El chip utiliza una red de resistencias tipo R-2RT para derivar la corriente de referencia para completar la conversión D/A. El resultado de la conversión se emite como un conjunto de corrientes diferenciales IOUT1 e IOUT2.
1. Estructura interna de DAC0832
Hay dos niveles de pestillos en DAC0832. El pestillo de primer nivel se llama registro de entrada y su señal de pestillo es ILE. Se llama registro de entrada. El pestillo de etapa se llama registro DAC y su señal de pestillo es la señal de control de transmisión. Debido a que hay dos niveles de pestillos, DAC0832 puede funcionar en modo de doble búfer, es decir, mientras emite una señal analógica, recopila la siguiente cantidad digital, lo que puede aumentar efectivamente la velocidad de conversión. Además, el pestillo de dos niveles también puede utilizar la señal de pestillo de segundo nivel para lograr una salida síncrona de múltiples convertidores cuando varios convertidores D/A están funcionando simultáneamente.
Cuando ILE es de nivel alto, WR1 y CS son de nivel bajo, LE1 es de nivel alto y la salida del registro de entrada cambia con la entrada a partir de entonces, cuando WR1 cambia de bajo a alto, LE1 es bajo; nivel En este momento, los datos se retienen en el registro de entrada. En este momento, el terminal de salida del registro de entrada ya no cambia con el cambio de los datos de entrada. Para el pestillo de segundo nivel, cuando WR2 y XFER están bajos al mismo tiempo, LE2 está alto y la salida del registro DAC cambia con su entrada a partir de entonces, cuando WR2 cambia de bajo a alto, LE2 se vuelve bajo. Ping, se bloquea; los datos del registro de entrada en el registro DAC.
2. Características de los pines del DAC0832
DAC0832 es un chip dual en línea de 20 pines. Las características de cada pin son las siguientes:
CS: señal de selección de chip, combinada con la señal de activación del pestillo ILE para determinar si funciona, activo bajo.
ILE——Permitir señal de bloqueo, activa alta.
WR1——La señal de escritura 1, como señal de bloqueo de primer nivel, bloquea los datos de entrada en el registro de entrada (en este momento, debe ser válido al mismo tiempo que ILE), de baja efectividad.
WR2——Escribe la señal 2, envía los datos bloqueados en el registro de entrada al registro DAC para su bloqueo (en este momento, la señal de control de transmisión debe ser válida) y está activo bajo.
XFER——Señal de control de transmisión, baja activa.
DI7~DI0——Terminal de entrada de datos de 8 bits.
IOUT1——Terminal 1 de salida de corriente analógica. Cuando el registro DAC es todo 1, la corriente de salida es máxima. Cuando el registro DAC es todo 0, la corriente de salida es 0.
IOUT2——Terminal 2 de salida de corriente analógica. ISALIDA1 ISALIDA2=constante.
Rfb——Terminal de resistencia de retroalimentación. DAC0832 ya tiene una resistencia de retroalimentación en su interior, por lo que el terminal RFB se puede conectar directamente al terminal de salida del amplificador operacional externo. Es equivalente a conectar la resistencia de retroalimentación entre los terminales de entrada y salida del amplificador operacional.
VREF——terminal de entrada de voltaje de referencia. El rango de voltaje aceptable es ±10V. El voltaje estándar externo está conectado a la red de resistencia en forma de T a través de VREF.
VCC——El terminal de voltaje de suministro del chip. El rango es de 5 V ~ 15 V y las mejores condiciones de funcionamiento son 15 V.
AGND——Tierra analógica, es decir, el terminal de tierra del circuito analógico.
DGND——Tierra digital, el terminal de tierra del circuito digital.
3. Cómo funciona DAC0832
DAC0832 realiza conversión D/A y puede utilizar dos métodos para bloquear datos.
El primer método es hacer que el registro de entrada funcione en el estado de bloqueo y el registro DAC funcione en el estado de paso. Específicamente, se trata de hacer que tanto el nivel como el nivel bajo, de modo que el extremo estroboscópico de bloqueo del registro DAC no pueda obtener un nivel efectivo y pase a través de él, además, se hace que la señal de control ILE del registro de entrada esté en un nivel bajo; nivel alto y nivel bajo, de modo que, cuando llegue un pulso negativo desde el final, se pueda completar una conversión.
El segundo método consiste en hacer que el registro de entrada funcione en el estado de paso, mientras que el registro DAC funciona en el estado de bloqueo. Es decir, la suma es de nivel bajo e ILE es de nivel alto. De esta manera, la señal estroboscópica de bloqueo del registro de entrada está en un estado no válido y pasa cuando se ingresa un pulso negativo a los terminales WR2 y XFER; , el registro DAC funciona en estado de bloqueo, proporcionando datos bloqueados para la conversión.
De acuerdo con los diferentes métodos de control mencionados anteriormente para el registro de entrada y el registro DAC de DAC0832, DAC0832 tiene los siguientes 3 modos de funcionamiento:
⑴ Modo de búfer único. El modo de búfer único controla el registro de entrada y el registro DAC para recibir datos al mismo tiempo, o solo usa el registro de entrada y conecta el registro DAC a un modo de paso. Este método es adecuado para situaciones en las que solo hay una salida analógica o varias salidas analógicas asíncronas.
⑵Método de doble almacenamiento en búfer. El método de doble almacenamiento en búfer consiste en hacer que el registro de entrada reciba primero datos y luego controlar los datos de salida del registro de entrada al registro DAC, es decir, bloquear los datos de entrada dos veces. Este método es adecuado para escenarios en los que se generan múltiples conversiones D/A simultáneamente.
⑶ Modo directo. En el modo de paso, los datos no están bloqueados por los pestillos de dos niveles, es decir, CS*, XFER*, WR1* y WR2* están todos conectados a tierra y ILE está conectado a un nivel alto. Este método es adecuado para circuitos de control de retroalimentación continua y sistemas de control sin microcomputadoras. Sin embargo, cuando se usa, debe conectarse a la CPU a través de una interfaz de E/S adicional para que coincida con la conversión de CPU y D/A.
4. Ejemplos de aplicación de DAC0832
⑴ Para implementar una conversión D/A con DAC0832, se puede utilizar el siguiente segmento de programa. Configure los datos que se convertirán en la unidad 1000H.
MOV BX, 100H
MOV AL, [BX]; obtener datos de conversión
OUT DX, AL
⑵ En aplicaciones prácticas En el proceso de detección, a menudo es necesario utilizar un voltaje que aumenta linealmente para controlar un determinado proceso de detección, o como voltaje de escaneo para controlar el movimiento de un haz de electrones. Ejecute el siguiente segmento del programa para utilizar el convertidor D/A para generar un voltaje de onda de diente de sierra para lograr este tipo de función de control.
MOV DX, PORTA; PORTA es la dirección del puerto del convertidor D/A
MOV AL, OFFH; valor de inicialización
ROTAT: INC AL
OUT DX, AL; datos de salida al convertidor D/A
CALL DELP; subrutina de retardo de llamada
JMP ROTAT
DELY: MOV CX, DATA ; Establecer retardo constante DATA
DELY1: LOOP DELY1
RET
Si necesita una onda de diente de sierra negativa, simplemente cambie la instrucción INC AL a DEC AL. .
⑶ Genere un lote de datos X-Y de dos archivos no relacionados, conduzca el registrador X-Y o controle el avance de la herramienta (eje X) y el avance (eje Y) para procesar piezas complejas. Son útiles para controlar procesos. El siguiente programa controla la salida de 100 puntos del registrador X-Y y utiliza software para controlar los controles de elevación y descenso de la pluma del registrador.
MOV SI, XDATA; puntero de datos del eje X → SI
MOV DI, YDATA; puntero de datos del eje Y → DI
MOV CX, 100
WE0: MOV AL, [SI]
OUT PORTX, AL; datos de salida al convertidor D/A del eje X
MOV AL, [DI]
p>OUT PORTY, AL; Envía datos al convertidor D/A del eje Y
CALL DELY1; Llama a la subrutina de retardo 1 y espera a que el lápiz se mueva
MOV AL, 01H
PUERTO DE SALIDA, AL; pulso ascendente de salida, baje el lápiz de control
CALL DELY2; subrutina de retardo de llamada 2, espere a que finalice
MOV AL, 00H
OUT PORTM, AL; pulso de salida cayendo, levante el lápiz de control
CALL DELY2; subrutina de retardo de llamada 2, espere a que finalice
INC SI
INC DI
BUCLE WE0
HLT
DELY1:┇
RET p>
DELY2:┇
RET
XDATA DB…
YDATA DB…
Programación usando C. idioma:
#pragma db oe sb
#i ncludelt;reg51.hgt;
#i ncludelt;absacc.hgt;
#define DAC0832 XBYTE[0x7fff] /* Definir dirección de puerto DAC0832*/
#define uchar unsigned char
void delay(uchar t) { /* Función de retardo*/ p>
while( t--);
}
void saw(void) { /* función de generación de onda de diente de sierra*/
uchar i ;
para (i=0; ilt; 255; i ) {
DAC0832=i
}
} p>
void square (void) { /* Función de generación de onda cuadrada*/
DAC0832=0x00;
delay(0x10);
DAC0832 =0xff;
retraso(0x10);
}
void main(void) {
uchar i, j; p>
i= j=0xff;
while(i--) {
saw() /* Genera una onda de diente de sierra*/
}
while(j--) {
cuadrado(); /* Genera una onda cuadrada*/
}
}