Red de conocimiento informático - Problemas con los teléfonos móviles - Aplicaciones de TLV320AIC23

Aplicaciones de TLV320AIC23

Aplicación de TLV320AIC23:

Diseño del controlador del códec TLV320AIC23 basado en DDK

El kit de desarrollo del controlador DSP/BIOS (DDK) es el controlador simplificado de TI. El desarrollo del programa proporciona el controlador. kits de desarrollo para DSP de la serie TMS320 y su placa EVM, etc. Este kit proporciona un modelo de controlador estandarizado completo para varios dispositivos periféricos de la serie TMS320, lo que permite trasplantar fácilmente el controlador a otras aplicaciones, lo que mejora en gran medida la eficiencia del desarrollo de controladores. DDK es un complemento de la biblioteca de soporte de chip (CSL) proporcionada por cada DSP de la serie TMS320. CSL proporciona control de bajo nivel de la configuración e inicialización del registro de dispositivos periféricos. DDK controla los dispositivos periféricos completamente a través de CSL. En pocas palabras. DDK está construido sobre CSL. Por lo tanto, utilizar DDK para desarrollar controladores será más rápido y portátil.

DDK define un modelo estándar y una serie de API para el desarrollo de controladores. Simplificar el diseño del programa. El Modelo Estándar se divide en dos niveles. El nivel alto se llama Class driver y el nivel bajo se llama Mini-driver. La clase drivei es relativamente independiente del dispositivo. Funciones completas como gestión de buffer y sincronización de solicitudes. Al mismo tiempo, desempeña el papel de interfaz tanto con API como con Mini-driver. El minicontrolador completa funciones específicas de inicialización y control del dispositivo. Cumple con el estándar de interfaz de IOM (I/O Mini-driver). Esta estructura en capas de DDK permite que los desarrolladores de controladores solo necesiten comprender una única API de minicontrolador para completar el diseño del controlador de todo el dispositivo periférico, y este proceso es mucho más simple que diseñar el controlador completo porque el controlador de clase controla la zona de almacenamiento en búfer. gestión y sincronización, etc. DDK proporciona 3 tipos de controladores de clase. Son SIO/DIO, PIP/PIO y GIO respectivamente, y se pueden utilizar junto con cualquier minicontrolador.

2 Bases de diseño del controlador de TLV320AIC23

La estructura del modelo estándar de DDK se muestra en la Figura 1. Las aplicaciones de alto nivel y los controladores de bajo nivel no están directamente relacionados entre sí. Durante el desarrollo, solo necesita controlar el Mini-driver a través del controlador Class.

A continuación se toma como ejemplo la placa EVM DM642. Explique el método de diseño del controlador de TLV320AIC23 basado en DDK.

Primero, debe utilizar la herramienta de configuración para crear la entrada del controlador. En el archivo cdb en DSP/BIOS con_fig. Seleccione In-puffOutplut---Controladores de dispositivo→Usuario→Controladores definidos en secuencia. En estas rutinas generalmente se ha agregado udevCodec. Los usuarios pueden agregarse o editarse ellos mismos si es necesario. Haga clic derecho y seleccione la opción Propiedades para editar sus propiedades. Sus propiedades deben configurarse de la siguiente manera:

Comentario: puede agregar sus propios comentarios

Función lnit: escriba EVMDM642_EDMA_AIC23-init.

Ptr de tabla de funciones: Escriba EVMDM642_EDMA_A-IC23-Fxn8

Tipo de tabla de funciones: Seleccione IOM_Fxns

ID de dispositivo: este elemento se ignorará automáticamente. Porque solo hay un TLV320AIC23 en la placa EVM DM642

Ptr de parámetros del dispositivo: el puntero de entrada de la estructura de parámetros TLV320AIC23. Cuando utilice los parámetros predeterminados, configúrelo en 0x0

Ptr de datos globales del dispositivo: debe configurarse en OxO

Después de configurar correctamente la entrada del controlador. Es necesario establecer los parámetros relevantes según sea necesario. A continuación se analiza en detalle la configuración de los parámetros del TLV320AIC23.

El prototipo de estructura de parámetros de TLV320AIC23 es el siguiente:

estructura typedef

En aplicaciones generales. No es necesario cambiar la mayoría de los parámetros de la estructura anterior. Los principales que deben modificarse son aie23Config. Es el valor del registro de control TLV320AIC23. Es necesario para controlar el modo de trabajo, la selección de entrada/salida, la frecuencia de muestreo y otros parámetros importantes del TLV320AIC23.

Excepto el registro de reseteo. TLV320AIC23*** dispone de 9 registros de control. La longitud de la palabra de control de cada registro es de 9 bits. El bit de dirección es de 7 bits y el máximo es de 16 bits. Los bits de dirección son los 7 bits superiores y la palabra de control son los 9 bits inferiores. Los detalles son los siguientes:

Registro0: control de volumen de entrada del canal izquierdo, el valor predeterminado es 0x0017

Registro1: control de volumen de entrada del canal derecho, el valor predeterminado es 0x0017

Registro 2: Control de volumen de salida del canal izquierdo. El valor predeterminado es Ox01F9

Registro 3: Control de volumen de salida del canal derecho, el valor predeterminado es Ox01F9

Registro 4: Configuración del canal de audio analógico. El valor predeterminado es Ox0011

Registro 5: Configuración del canal de audio digital. El valor predeterminado es 0x0000

Registro 6: Control del modo de ahorro de energía. El valor predeterminado es 0x0000

Registro 7: control de formato de interfaz de audio digital, el valor predeterminado es 0x0043

Registro 8: control de frecuencia de muestreo, el valor predeterminado es 48 kHz, para la placa DM642EVM. El valor predeterminado es Ox0002

Registro 9: Interruptor de activación de interfaz de audio digital. El valor predeterminado es 0x0001

Por lo general, los registros que deben modificarse incluyen los registros 4 y 8. Es decir, elija si desea ingresar por micrófono o línea y seleccione la frecuencia de muestreo según sea necesario. La configuración detallada de estos dos registros es la siguiente:

La configuración del registro N°4 se muestra en la Tabla 1, entre los cuales, el bit D2. INSEL (selección de entrada para ADC) es la selección de entrada, "O" es la entrada de línea; "l" es el micrófono D1 bit MICM (silenciamiento del micrófono) es el interruptor de silencio del micrófono. "l" significa silencio. Si el bit DO MICB (refuerzo de micrófono) está configurado en "1", proporcionará una ganancia de 20 dB para la entrada de micrófono. La configuración del registro nº 8 se muestra en la Tabla 2, en la que los bits de control de la frecuencia de muestreo son SR[3:O] de D5~D2. Para la placa EVM DM642, consulte la Tabla 3 para conocer el método de configuración.

Visibles. La entrada debe seleccionarse a través de D2 del registro 4, teniendo en cuenta el control del micrófono por Dl y DO; el control de la frecuencia de muestreo se logra configurando SR[3:0] del registro 8.

3 Método de configuración del controlador TLV320AIC23

El problema más común que encuentran muchos principiantes al ejecutar el eco u otras rutinas de audio del DM642 EVM es que hay salida al ingresar a través de la entrada de línea. No hay salida al ingresar a través del micrófono, y mucho menos cambiar la frecuencia de muestreo. Incluso si los materiales de referencia están editados en aic23-h y emvdm642_edma_aic23. hModificar el parámetro Dcfauh aún no puede resolver el problema.

Cuando ocurre tal problema. Primero, debe comprender que la entrada de audio analógica del TLV320AIC23 es de micrófono o de línea. En segundo lugar, debe saber cómo configurar correctamente los parámetros del TLV320AIC23 para satisfacer las necesidades de aplicaciones específicas. Si analiza cuidadosamente la rutina de eco y otras rutinas de audio, puede encontrar que solo la rutina de eco contiene aie23.h y emvdm642_edma_aie23. h 2 archivos de encabezado. De hecho, en la rutina del eco. Los dos archivos de encabezado incluidos y la declaración de inicialización de TLV320AIC23 en realidad no se utilizan. Si bloquea la inclusión de estos dos archivos de encabezado y la declaración de inicialización de TLV320AIC23, encontrará que aún puede ejecutarse normalmente después de la compilación.

De hecho, la declaración de inicialización TLV320AIC23 en la rutina de eco solo proporciona un método para configurar II, V320AIC23 y no se usa directamente. Este método también se menciona en la parte emvdm642 del paquete DDK.

Porque los parámetros predeterminados se utilizan para inicializar la población del controlador en la rutina de eco como otras rutinas de audio, y los parámetros predeterminados se obtienen llamando a la biblioteca evmdm642_edma_aic23.164 en el paquete DDK. Si la biblioteca no cambia, la configuración no cambiará, por lo que ocurrirán los problemas anteriores.

Después de aclarar los principios anteriores. La práctica ha demostrado que los siguientes tres métodos de configuración proporcionados en este artículo se pueden adaptar a diversas aplicaciones.

Método 1

Dado que los parámetros predeterminados se obtienen llamando a la biblioteca evmdm642_edlna_a-ic23.164. Entonces es natural modificar los parámetros modificando la biblioteca. El paquete DDK proporcionado por TI contiene el código fuente de varias bibliotecas. Esto hace posible modificar los archivos de la biblioteca. El proyecto de generación de biblioteca utilizado en este artículo es evmdm642_edma_mc23_64 en el directorio tiddksrc\audio\evmdm642. pjt, simplemente abre el proyecto. Modifique aic23. Con los parámetros predeterminados en h, la recompilación puede generar un nuevo archivo de biblioteca. De esta forma, todas las rutinas de audio se ejecutarán con los parámetros modificados por defecto.

Este método es adecuado para aplicaciones donde la configuración de parámetros del TLV320AIC23 es relativamente fija. La configuración se realiza completamente llamando a la biblioteca evmdm642_ed_ma_aic23.164 durante la inicialización. No es necesario agregar ningún código adicional al archivo del proyecto de la aplicación. Hace que los documentos del proyecto sean más concisos. Más portátil.

Método 2

Personalizar la estructura estándar EVMDM642_EDMA_A. IC23-Estructura de DevParams, por ejemplo:

Luego use "_myParms" como ptr de parámetros de dispositivo para reemplazar el 0x0 predeterminado al especificar el puntero de población. Esto está en línea con el método recomendado por TI, y el código relevante en la rutina de eco también ilustra este método.

Este método se puede adaptar a casi cualquier situación de uso. Los parámetros de inicialización son muy claros y el código es muy legible. Sin embargo, no se recomienda incluir directamente el archivo de encabezado con parámetros predeterminados como en la rutina de eco. Es mejor consultar este archivo de encabezado para definir su propia estructura.

Método 3

Al analizar cuidadosamente el código fuente que genera la biblioteca evmdm642_edma_aic23.164, se puede encontrar que la configuración del registro TLV320AIC23 se completa a través de la función AIC23_setParams(). En la mayoría de los casos, solo necesita modificar el valor del registro sin modificar otras variables en la estructura estándar EVMDM642_EDMA_AIC23_DevParams. Por lo tanto, se puede llamar a la función AIC23_setParams() para completar la configuración de los parámetros del TLV320AIC23. De esta manera, sólo es necesario definir una matriz de registros que cumpla con el estándar. Esto se puede lograr llamando a la función AIC23_setParamsf() usando el nombre de la matriz como parámetro.

Este método es flexible de usar, la longitud del código es muy corta, el significado es muy claro y se puede llamar varias veces con diferentes parámetros. Es especialmente adecuado para ocasiones especiales donde los parámetros del TLV320AIC23 son variables.

Basado en trabajos reales, se proponen tres métodos para la configuración de parámetros del TLV320AIC23, cada uno con sus propias características y muy prácticos. Al diseñar el controlador TLV320AIC23 basado en DDK. Se puede seleccionar fácilmente según sus necesidades.