USD

Cómo seleccionar y utilizar un códec de audio y un microcontrolador para los archivos de retroalimentación de audio integrados

Por Jacob Beningo

Colaboración de Editores de Digi-Key de América del Norte

Existe una creciente necesidad entre los sistemas incorporados de proporcionar audio de alta fidelidad en lugar de zumbadores para la retroalimentación de los usuarios, incluyendo alarmas y alertas. Si bien los pitidos y chirridos han sido efectivos en el pasado, los usuarios esperan sonidos avanzados que solo pueden ser producidos a través de la reproducción de audio de formatos de archivo como el MP3. El problema es que la reproducción de audio puede parecer intimidante y agregar costo adicional y complejidad a un sistema. El primer instinto es encontrar un microcontrolador que pueda reproducir MP3, pero esto a menudo añade varios dólares a la lista de materiales (BOM) y una considerable complejidad al software incorporado.

Una solución que es particularmente buena para equilibrar el costo adicional y la complejidad del software es utilizar un códec de audio. Los códecs de audio no solo aceptan un flujo de datos de audio de un microcontrolador, sino que a menudo también tienen múltiples características que permiten al desarrollador ajustar cuidadosamente el sistema de reproducción de audio para mejorar la calidad del sonido que reproduce el sistema.

En este artículo se analizará el papel de los códecs de audio, las principales características que los desarrolladores deben tener en cuenta al hacer una selección y cómo aplicarlos eficazmente. Las soluciones de AKM Semiconductor, Texas Instruments y Maxim Integrated serán presentadas y utilizadas como ejemplos aquí, aunque también hay otras disponibles. Concluirá con consejos y trucos sobre cómo acelerar el desarrollo de aplicaciones de reproducción de audio utilizando un códec, al tiempo que se reduce el costo del sistema.

¿Qué son los códecs de audio?

Un códec de audio es un componente de hardware capaz de codificar o descodificar un flujo de datos digitales que contiene información de audio1. Un códec de audio es útil porque permite que el procesamiento de audio se desvíe del microcontrolador. Esto puede disminuir significativamente la complejidad del software, y también permite utilizar un microcontrolador menos costoso y menos capaz para una aplicación.

Un códec de audio típico contendrá varios bloques funcionales:

  • Una interfaz I2S para transmitir o recibir datos de audio digital codificados
  • Una interfaz I2C para configurar y leer los registros de control del códec de audio
  • Una entrada de micrófono que se conecta a un convertidor analógico a digital (ADC)
  • Al menos un canal de salida de audio, como la salida de un altavoz, pero la mayoría también incluye una salida de línea y puede incluir múltiples salidas de altavoces para la reproducción en estéreo
  • Un bloque digital que contiene filtros de paso alto, paso bajo, muesca y ecualizador para afinar las reproducciones y grabaciones de audio

Un ejemplo de códec de audio que es bastante popular debido a su bajo costo y capacidades de audio es el códec de audio de 24 bits AK4637EN de AKM Semiconductor (Figura 1). El AK4637EN tiene todas estas características, además de una entrada de generador de bips que puede ser utilizada para generar un bip usando una señal de modulación de ancho de pulso (PWM) a una frecuencia deseada.

Diagrama del códec de audio AK4637EN de AKM Semiconductor con una salida de altavoz mono (hacer clic para ampliar)Figura 1: El AK4637EN es un códec de audio con una salida de altavoz mono que tiene capacidades de reproducción y grabación de audio. También contiene un bloque de audio interno que puede utilizarse para filtrar el audio entrante y saliente para mejorar la fidelidad de audio. (Fuente de la imagen: AKM Semiconductor)

Los desarrolladores encontrarán que el principal diferenciador de un códec de audio será si produce audio mono o estéreo, así como las capacidades de bloqueo digital. Por ejemplo, el AK4637EN ofrece un filtro de paso alto, un filtro de paso bajo, un ecualizador de cuatro bandas, una función de canal de nivelación automática y un ecualizador de una sola banda. Este último puede ser utilizado como un filtro de muesca. La forma en que un desarrollador configura estos filtros digitales puede afectar dramáticamente a la forma en que suena un sistema.

El códec de audio a veces puede intimidar a un desarrollador que es nuevo en la reproducción de audio. Por ejemplo, mientras que el AK4637EN es un simple códec de audio, un rápido examen de la hoja de datos muestra que tiene 64 registros configurables. Eso puede parecer mucho al principio, pero la mayoría de esos registros se utilizan para establecer los coeficientes de filtrado de los diversos filtros digitales disponibles. Solo hay un puñado de ellos que necesitan ser usados para que el sistema emita el audio correctamente, haciendo que el desarrollo del controlador para un códec de audio sea mucho más simple de lo que un novato podría imaginar.

Cómo seleccionar un códec de audio

Uno de los factores clave para seleccionar cualquier cosa en el desarrollo de un producto es el costo, y los códecs de audio no son diferentes. Aún así, es importante tener en cuenta que los desarrolladores obtienen lo que pagan, así que cuando se trata de audio, un equipo debe sopesar cuidadosamente los requisitos de diseño frente a los parámetros clave de la solución.

La primera consideración es la salida requerida del códec de audio. Hay varias opciones diferentes. Por ejemplo, el AK4637EN tiene una salida de línea y una salida de altavoz mono. Hay otros códecs como el códec de audio estéreo TLV320AIC3110IRHBR de Texas Instruments que puede manejar dos altavoces a 1.29 vatios (Figura 2).

El diagrama TLV320AIC3110IRHBR de TI es un códec de audio con salida estéreo y amplificación (hacer clic para ampliar)Figura 2: El TLV320AIC3110IRHBR de TI es un códec de audio con salida estéreo y amplificación además de una entrada de micrófono. El códec puede impulsar 1.29 vatios desde los amplificadores internos y tiene bloques de audio digital programables. (Fuente de la imagen: Texas Instruments)

Otros códecs de audio como el MAX9867 de Maxim Integrated están diseñados para manejar solo un par de auriculares (Figura 3). El MAX9867 tiene las típicas interfaces digitales I2S e I2C, pero también contiene entradas de micrófono estéreo y dos entradas de línea que pueden ser seleccionadas digitalmente.

Diagrama del códec de audio MAX9867 de Maxim IntegratedFigura 3: El códec de audio MAX9867 de Maxim Integrated puede manejar auriculares estéreo y seleccionar entre entradas digitales, de micrófono y de línea. (Fuente de la imagen: Maxim Integrated).

Decidir entre estas tres soluciones cuál será el tipo de salida (o incluso el de entrada) es una decisión temprana y crítica.

Los desarrolladores también deben considerar qué es lo que van a conducir. ¿El códec de audio conducirá directamente auriculares, un altavoz o un par de altavoces, y cuál será la clasificación de salida? Si el sistema va a manejar un altavoz de 5 vatios, no hay muchos códecs para sistemas empotrados que hagan eso. En su lugar, un desarrollador puede querer seleccionar la línea de salida y usar un amplificador de clase D separado para impulsar el altavoz directamente. Esto ahorra algunos costos y también proporciona flexibilidad de diseño.

Dos consideraciones finales son el enrutamiento interno y las capacidades de filtrado digital. Aquí es donde se determina la diferenciación real y las diferencias de costo para un códec de audio. Por ejemplo, el TLV320AIC311IRHBR tiene capacidades de de-pop y arranque suave para minimizar el popping de los altavoces y permitir una transición suave a la reproducción de audio. También tiene un mezclador interno para cada canal de salida y control de volumen digital.

Depende del desarrollador equilibrar cuidadosamente sus necesidades del códec de audio con la lista de materiales y la cantidad de espacio de la placa que será consumida por el circuito.

El sistema de reproducción de audio

Cuando se trabaja con un códec de audio, es importante darse cuenta de que hay varios bloques diferentes fuera del códec de audio que son necesarios para lograr una reproducción de audio exitosa. Los bloques exactos variarán ligeramente en función de la aplicación y el método que se decida para la reproducción, pero en la figura 4 se muestra un diagrama generalizado.

Diagrama de bloque de conexión generalizado para un sistema de reproducción de audioFigura 4: Un diagrama de bloques de conexión generalizado para un sistema de reproducción de audio en una típica aplicación integrada muestra que debe haber almacenamiento para los archivos de audio, que pueden estar en el microcontrolador o en la memoria externa. (Fuente de la imagen: Beningo Embedded Group)

Hay varios puntos en este diagrama que vale la pena discutir. En primer lugar, debe haber algún método que se utilice para almacenar los archivos de reproducción de audio. Hay dos opciones: almacenar los archivos internamente en la memoria flash del microcontrolador o almacenarlos externamente en la memoria flash. La elección dependerá del tamaño de los archivos de audio y del tamaño de la memoria flash interna del microcontrolador.

Los desarrolladores también deben considerar cuál será el formato de reproducción de audio. Lo más común es usar un MP3. En este caso, el microcontrolador seleccionado necesita tener una pila de software que soporte la decodificación de MP3. Esto permite abrir el archivo MP3 y luego empujarlo usando un controlador de acceso a la memoria dinámica (DMA) a través de la interfaz I2S. Incluso el puerto I2S puede ser configurado para maestro/secundario y varios otros modos, por lo que esto debe ser cuidadosamente examinado para asegurar que los datos se transfieren al códec a la velocidad correcta.

Como se ha mencionado anteriormente, un amplificador de audio externo puede o no ser necesario dependiendo de la aplicación. Un códec típico tiene una potencia de entre 1 y 1,5 vatios, lo que resulta útil para impulsar un pequeño altavoz. Para manejar un altavoz de 3 vatios o más, será necesario usar un amplificador externo. De nuevo, los más utilizados son los de clase D. El amplificador tampoco tiene por qué tener una ganancia variable. El códec de audio puede ajustar el control de volumen digitalmente para proporcionar una amplia gama de potencia de salida.

Un área que a menudo se pasa por alto es la de la capacitancia de volumen. Cuando el audio se está reproduciendo, puede tirar fuertemente de los rieles de energía. Si no hay suficiente capacitancia en la placa, la calidad de la salida puede verse dramáticamente afectada y puede tomar un sonido de tipo "twangy" junto con varios otros ruidos no deseados. Esto puede ser detectado monitoreando cuidadosamente los rieles de energía durante las pruebas. No es una mala idea durante el desarrollo de la placa de circuito impreso dejar huellas adicionales en la placa para permitir que se prueben diferentes valores de capacitancia con el fin de ajustar el circuito de salida.

Consejos y trucos para seleccionar y usar un códec de audio

Los códecs de audio pueden simplificar drásticamente el software incorporado y proporcionar una aplicación con una gran calidad de audio. Los códecs de audio pueden ser complicados si un desarrollador no ha trabajado con ellos antes. Para aprovechar con éxito un códec de audio, hay varios "consejos y trucos" que los equipos deben tener en cuenta, tales como:

  • Utiliza la función de controlador de acceso directo a la memoria (DMA) dentro de un microcontrolador para alimentar el códec de audio con una mínima intervención de la CPU. Esto ayudará a asegurar que el códec no se quede sin datos.
  • Cuando no se reproduce el audio, utilice la función de silenciamiento de los códecs para evitar que el ruido de salida de bajo nivel llegue al altavoz.
  • Al desactivar o activar la reproducción, utilice la función de silencio suave de un códec de audio para evitar el salto de los altavoces y otros ruidos no deseados.
  • Utilice una aplicación terminal para dar salida a los registros del códec después de que éste haya sido inicializado. Esto puede ser especialmente útil cuando se intentan depurar problemas o ajustar el circuito de salida del altavoz y la caja.
  • Aprovechar los mecanismos de filtro digital interno incluidos en un códec. Los filtros digitales permiten al desarrollador ecualizar la salida, filtrar las frecuencias altas y bajas no deseadas y maximizar la calidad del sistema de sonido.
  • No olvides que la sintonización del sonido sólo será útil cuando la placa de circuito y el altavoz estén instalados en el recinto, ya que el recinto y el montaje marcan una gran diferencia.

Para empezar, los desarrolladores pueden experimentar con el kit de evaluación MAX9867EVKIT+ para el MAX9867 de Maxim Integrated (Figura 5).

Imagen del kit de evaluación del MAX9867EVKIT+ para el MAX9867Figura 5: El kit de evaluación del MAX9867EVKIT+ para el MAX9867 se conecta a un PC a través de un cable USB y cuenta con entradas RCA, salidas de auriculares y módulos de transmisión y recepción de fibra óptica. (Fuente de la imagen: Maxim Integrated).

El kit comprende la placa y el software asociado y viene configurado para enviar y recibir datos de audio usando la interfaz digital Sony/Philips (S/PDIF), aunque también puede ser configurado para usar I2S. Tiene dos tomas de entrada RCA, dos tomas de auriculares de salida analógica de 3,5 milímetros (mm) y módulos de recepción y transmisión de fibra óptica. El software es compatible con Windows, y cuando se conecta a una PC a través de un cable USB se abre en una interfaz gráfica de usuario (GUI) a través de la cual el desarrollador puede experimentar con la configuración del MAX9867 (Figura 6).

Imagen de la interfaz gráfica de usuario de Windows (hacer clic para ampliar)Figura 6: Al usar la interfaz gráfica de usuario basada en Windows, los usuarios pueden experimentar con una amplia gama de ajustes del MAX9867, comenzando con el Reloj y el Audio Digital (pestaña seleccionada), hasta llegar a los Registros 1 y 2 (derecha). (Fuente de la imagen: Maxim Integrated)

Conclusión:

Los usuarios de los sistemas integrados se han acostumbrado al audio de calidad hasta el punto de que ahora se espera que en lugar de los zumbadores y pitidos de las alarmas, las alertas y otras retroalimentaciones de audio de los usuarios. Esto hace que los equipos de desarrollo tengan que implementar capacidades de reproducción de MP3 en sus sistemas. Esto puede parecer al principio un esfuerzo complejo. Sin embargo, al utilizar el códec de audio correcto junto con un microcontrolador, y al seguir algunas de las mejores prácticas de diseño, los desarrolladores pueden equilibrar el costo y la complejidad asociados con las aplicaciones de audio.

Referencias

  1. https://en.wikipedia.org/wiki/Audio_codec

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Acerca de este autor

Jacob Beningo

Jacob Beningo es un consultor de software integrado que actualmente trabaja con clientes en más de una docena de países para transformar drásticamente sus negocios mejorando la calidad del producto, el costo y el tiempo de comercialización. Ha publicado más de 200 artículos sobre técnicas de desarrollo de software embebido, es un conferenciante y entrenador técnico muy solicitado y tiene tres títulos que incluyen una Maestría en Ingeniería de la Universidad de Michigan. No dude en ponerse en contacto con él en jacob@beningo.com, en su sitio web www.beningo.com, y suscríbase a su boletín mensual Embedded Bytes Newsletter.

Acerca de este editor

Editores de Digi-Key de América del Norte