[Aprendizaje de STC MCU] Lección 16: Conversión de AD y DA

[Resumen del curso de la Sra. Zhu, invasión y eliminación] La

primera parte, lista de capítulos

1.16.1. Conversión de DA y conocimientos previos relacionados

1.16.2. Esquema y hoja de datos

1.16.3. Analizar el tiempo con rutinas

1.16.4. Código de práctica

1.16.5. El puerto serie muestra directamente el valor de voltaje

1.16.6.DA conversión


La segunda parte, introducción del capítulo

1.16.1. Conversión AD y conocimientos previos relacionados 1
    Esta sección presenta todo el curso, y principalmente habla sobre los dos conceptos de cantidad analógica y cantidad digital y los conceptos relacionados de conversión AD,
    principalmente el rango, precisión, resolución, bit Cuente, velocidad de conversión, etc., e ilustre la conexión de estos cursos.
1.16.2 Diagrama esquemático y manual de datos En
    esta sección, observe el diagrama esquemático, determine el cableado y verifique los puntos clave en el manual de datos.
1.16.3 Analizar la secuencia de tiempos combinada con las rutinas
    Esta sección se enfoca en analizar los diagramas de tiempo en el manual de datos y compara el aprendizaje comparándolo con las rutinas oficiales.
1.16.4 Código de práctica
    Esta sección se refiere a las rutinas oficiales para construir proyectos, escribir códigos de tiempo, recolectar valores de voltaje del potenciómetro a través del circuito de conversión ADC y mostrar los valores AD recolectados y convertidos a través del puerto serial.
1.16.5. El puerto serial muestra directamente el valor de voltaje.
    Esta sección ajusta la salida del puerto serial para que muestre directamente el valor de voltaje. Este método puede hacer que la depuración y la salida sean más intuitivas
1.16.6.
    Conversión DA Esta sección explica el concepto de conversión DA y Principio de demostración y código de ejemplo de conversión DA en el diagrama esquemático de la placa de desarrollo.

Tercera parte, Registro del aula

1.16.1. Conversión de DA y conocimientos previos relacionados

1.16.1.1 Conceptos básicos
(1) ¿Qué es la conversión AD? A (A, analógico, analógico, D, digital, digital <binario>)

  • Cantidad analógica: el mundo real es analógico, se distribuye continuamente y no se puede dividir en partes limitadas; por ejemplo, sonido, voltaje, temperatura, corriente, etc.
  • Cantidad digital: la cantidad física que puede manejar una computadora El mundo de la computadora es digital, distribuido discretamente y puede dividirse en partes limitadas;
  • La conversión AD es la conversión de analógico a digital. Por ejemplo: el voltaje es una cantidad continua en realidad y una cantidad digital en una computadora, ¡pero la precisión es diferente!
  • La siguiente imagen presenta la conversión AD y DA
  • El circuito que implementa la conversión AD se llama convertidor analógico-digital , que también es ADC ( convertidor analógico-digital )

(3) ¿En qué circunstancias necesita la conversión de AD?
Es decir, cuando nuestros datos de investigación son analógicos, por ejemplo: gravedad, temperatura, sonido, etc.

1.16.1.2, los conceptos principales en la conversión de AD

(1) Dígitos digitales: cuántos dígitos binarios se utilizan para representar el valor digital convertido de la cantidad analógica. Cuantos más dígitos, mayor será la precisión y cuanto más pequeños sean los dígitos, menor será la precisión.
(2) Rango: rango de entrada analógica El rango analógico es un parámetro del propio chip AD. La señal de voltaje a AD no puede exceder este rango de voltaje durante el trabajo real.
(3) Resolución. Cuantos más dígitos, menor será el valor de voltaje representado por cada red, más preciso será el valor de voltaje analógico calculado en el futuro y mayor será la resolución.

  • Resolución = rango / (2 ^ dígitos)

(3) Precisión. Una comprensión simple es qué tan precisa es la conversión. Esto está relacionado con el número de dígitos. Cuanto mayor sea la precisión, más cerca estará la cantidad digital convertida de la cantidad analógica.

(5) Tasa de conversión, tiempo de conversión AD
Tome un ejemplo: el
rango de voltaje de entrada es 0-5 V, asumiendo que el número de dígitos de salida de conversión AD es 10 (divida el rango completo en 1024 cuadrículas), la precisión es 0.1 V y el rango es 0 -5V , la resolución es: (5-0) / 1024 = 0.00488V.
Por ejemplo, la cantidad digital obtenida después de una conversión AD es 1010101010 (682), luego el valor de voltaje correspondiente es: 0.00488 * 682 = 3.32816V, que es después de considerar la precisión 3,3 V

1.16.1.3, el principio de conversión AD

  • En el convertidor A / D, debido a que la señal analógica de entrada es continua en el tiempo y el código de la señal digital de salida es discreto, el convertidor A / D debe realizar la conversión en una serie de momentos seleccionados ( Algunos puntos especificados en el eje del tiempo) muestrean la señal analógica de entrada y luego convierten estos valores muestreados en cantidades digitales.
  • Por lo tanto, la conversión A / D tiene que pasar por los tres pasos de "muestrear y mantener-cuantizar-codificar".

(1) Teorema de
muestreo La frecuencia del pulso de muestreo es fs y la frecuencia de la señal analógica de entrada x (t) es fmax, que debe cumplirse

para garantizar que la señal digital de salida y (t) no se distorsione.

Por lo general, fs = (2.5-3) fmax, porque cada vez que el voltaje de muestreo se convierte en la cantidad digital correspondiente, toma un cierto tiempo, por lo que después de cada muestreo, el voltaje de muestreo debe mantenerse durante un período de tiempo.

(2) Cuantificación
El tamaño de cualquier cantidad digital se expresa como un múltiplo integral de una cierta unidad de cantidad mínima. Por lo tanto, cuando se utiliza una cantidad digital para representar una cantidad analógica, también se debe convertir en un múltiplo integral de esta unidad de cantidad mínima. Este proceso de conversión se llama cuantificación.

  • La unidad de cantidad más pequeña se llama unidad de cuantificación y está representada por △
  •  Dado que la tensión analógica es continua, puede que no sea necesariamente divisible por △, lo que inevitablemente introducirá errores. A esto lo llamamos error de cuantificación de errores . Al dividir la señal analógica en diferentes niveles de cuantificación, se pueden obtener diferentes errores de cuantificación con diferentes métodos de división.


Una unidad de cuantificación es 1/8, y el error de cuantificación es △, y la otra
unidad de cuantificación es 2/15, y el error de cuantificación es △ / 2.

(3) Codifique
n números binarios, que pueden representar 2 ^ n niveles de cuantificación. En los dos métodos de cuantificación anteriores, el nivel de cuantificación es 8, por lo que ambos están codificados con números binarios de tres bits.

1.16.1.4, la forma en que existe la conversión AD en el sistema
(1) Chip AD dedicado de expansión externa de CPU
(2) Módulo AD integrado interno de CPU (periféricos internos)

  • ¡Algunas microcomputadoras de un solo chip tienen pines analógicos directamente, que llevan a cabo la conversión AD en su interior!

El microcontrolador STC51 es un chip AD dedicado extendido externamente XPT2046 

1.16.2. Esquema y hoja de datos

1.16.2.1 Diagrama esquemático y diagrama esquemático del cableado del
módulo ADC:

Consulte la hoja de datos para obtener una introducción detallada del chip. xpt2046 Manual de datos chino

(1) Módulo ADC y cableado MCU
Para facilitar el cableado, el cableado es el siguiente:

  • CLK conectado a P1.3 : entrada de señal de reloj
  • CS conectado a P1.2   : nivel bajo activo
  • DI conectado a P1.1   : utilizado para ingresar comandos de control
  • CONECTE a P1.0  : emite la señal digital convertida

Esto es equivalente a cambiar el IO de tres cables en DI y DO, y CE en selección de chip CS

(2) Tres principios de cambio de voltaje analógico

  • AINx es una interfaz de entrada analógica. Puede seleccionar los tres modos de entrada de señal de VBAT, Temp y AUX eligiendo qué entrada e ingresar al ADC después de la selección del registro de control en el chip.
    De acuerdo con el diagrama esquemático anterior, no es difícil ver:
  • AIN0 (X +) controla el cambio de voltaje deslizando el reóstato
  • AIN1 (Y +) depende del termistor NTC
  • AIN2 (VBAT) depende del fotorresistor

1.16.2.2 Hoja de datos

MCU envía byte de control al módulo ADC a través de DI para iniciar la conversión, direccionamiento, configuración de resolución ADC, configuración y control de apagado de XPT2046, después de la conversión, salida a MCU a través del puerto DO

Formato de datos de bytes de control:

  • bit7: bit de inicio S-debe ser 1
  • bit6-4: Dirección- (A2, A1 y A0) seleccione el canal actual del multiplexor (AIN0, AIN1, AIN2, AIN3)
Alfiler

A2 A1 A0

Modo de correspondencia
AIN0 001/011 X + Voltaje de control del reóstato deslizante
AIN1 101 Y + Termistor NTC
AIN2 010 VBAT depende de la fotorresistencia
AIN3 110 AUXIN 

                  

  • bit3: bit de selección de modo: establece el número de bits de muestreo. 0 significa 12 bits, 1 significa 8 bits, generalmente 12 bits
  • bit2: modo de fuente de referencia de control-1 significa modo de terminación única, 0 significa modo diferencial. Modo de un solo extremo
  • bit1-0: habilitación del modo de apagado, 00 significa habilitación. Cuando PD0 = 0, A2A1A0 = 011, el voltaje de control del reóstato deslizante ya no se puede seleccionar
Valor inicial del comando de bit de control
7 6 5 4 3 2 1 0
1 X X X 0 1 0 0


Por lo que no es difícil para nosotros concluir que podemos enviar los siguientes comandos de control a través de DI:

  • Leer AIN0: 0b10010100 = 0x94    
  • Leer AIN1: 0b11010100 = 0xD4    
  • Leer AIN2: 0b10100100 = 0xA4
  • Leer AIN3: 0b11100100 = 0xE4

1.16.3. Analizar el tiempo con rutinas

1.16.3.1 Diagrama de temporización



(1) Esta temporización es la misma que la comunicación SPI-DS1302: Enlace
(2) Lectura y escritura (igual que DS1302)

  • MCU escribe XPT2406 en el borde ascendente, coloca los datos primero y luego da el borde ascendente
  • MCU lee desde XPT2406 en el borde descendente, y los datos se pueden leer después del borde descendente

(3) La lectura y la escritura son de orden superior primero
(4) Preste atención al período de tiempo OCUPADO del punto de unión de la escritura y la lectura

  • Se utiliza para codificación de cuantificación de muestra y retención
  • ¡Solo da un retraso!

1.16.3.2, análisis de rutina oficial
\ rutina 51 \ 22, AD y DA \ visualización de tubo digital Valor AD \ potenciómetro Valor AD

(1) comando de escritura SPI_Write
(2) lectura valor digital de 12 bits SPI_Read
(3) escritura + lectura Forme un ciclo completo de conversión de AD: Read_AD_Data, read es digital

1.16.4. Código de práctica

Utilice tres modos de entrada de señal respectivamente, imprima a través del puerto serie y observe el valor AD obtenido

1.16.4.1, escriba el código de
acuerdo con la rutina 1.16.4.2, agregue la depuración de salida del puerto serie
1.16.4.3, practique
(1) potenciómetro como fuente de entrada analógica
(2) termistor como fuente de entrada analógica
(3) fotorresistor como fuente de entrada analógica Fuente de entrada

1.16.5. El puerto serie muestra directamente el valor de voltaje

1.16.5.1 、 Puntos clave
(1) Mostrar directamente el valor de voltaje en lugar de muestrear el valor AD

  • Valor de voltaje = (AD_Val / 4096) * 5000mV = 1.22 * val mV
  • El valor de voltaje anterior es esencialmente un valor AD, debe convertirse al código ASCII correspondiente antes de enviar
    void uart_send_vol(u16 val)
    {
    	float index = 1.22;
    	float voltage = index * (float)val;
    	u16 vol_display = (u16)voltage;
    	
    	u8 str[4];
    	u8 i = 0;
    	
    	//取出个十百千位
    	for(i = 0;i<4;i++)
    	{
    		str[i] = vol_display%10;
    		vol_display = vol_display/10;
    	}
    	
    	for(i = 0;i<4;i++)
    	{
    		uart_send_byte(str[3-i]+48);
    		if(i==0)
    		uart_send_byte('.');
    		_nop_();
    	}
    	uart_send_byte('V');
    }
    

     

(2) Visualización en modo texto, no en modo hexadecimal

Programa completo: impresión en serie AD 

1.16.6.DA conversión

1.16.6.1 Conceptos relacionados de la conversión DA
(1) ¿Qué es la conversión DA?
Cantidad digital -> cantidad analógica
(2) El significado y uso de la conversión DA (generador de señales de función)
(3) Principio de conversión DA

La cantidad digital es una combinación de dígitos de código binario, y cada uno tiene un peso determinado. En la conversión D / A, cómo expresar estos pesos de una manera adecuada es la clave para la conversión. Para convertir cantidades digitales en cantidades analógicas, Cada bit de código debe convertirse en la cantidad analógica correspondiente de acuerdo con su peso, y luego se agregan estas cantidades analógicas. El diagrama esquemático de la conversión D / A es el siguiente:
Inserte la descripción de la imagen aquí

 

Es decir, ingrese el número binario correspondiente para obtener una salida analógica, y como una conversión de tres dígitos, la relación correspondiente entre analógico y digital se puede representar en la siguiente figura. En el panel derecho D, respectivamente, correspondiente V0
Inserte la descripción de la imagen aquí

1.16.6.2, esquemas y Carcasa

(1) del amplificador operacional (amplificación + aislamiento)
(2) la señal digital PWM
(3) no es de hecho tomar LM358, directamente conectada con el puerto IO El fenómeno del experimento de LED también es el mismo
(4) El DA real es generalmente un chip dedicado o un módulo de CPU incorporado, que genera un valor analógico suave al valor digital.

Enlace de descarga del programa para esta lección: conversión de AD

¡Esta lección ha terminado!

Supongo que te gusta

Origin blog.csdn.net/qq_27148893/article/details/110450835
Recomendado
Clasificación