Ir al contenido
  1. Presentaciones/

Introducción al procesado de sonido con microcontroladores STM32 y dispositivos I2S

3 mins· loading · loading · ·
José M. Mariño
Stm32 I2s
jmmarino2.gitlab.io
Autor
jmmarino2.gitlab.io
Yo antes era muy indeciso. Ahora ya no estoy tan seguro.
Tabla de contenido
Hacer efectos de sonido es más fácil de lo que parece.

Todo esto comenzó por hablar de más. Tengo un amigo que se entusiasma rápidamente cada vez que alguien hace algo, y curiosamente ese entusiasmo casi siempre va encaminado a convencer a ese alguien para que transmita ese nuevo conocimiento adquirido. Cosa que no es mala de por sí, pero que no suele acabar bien para el “himbestigador” porque con frecuencia acaba impartiendo una charla en Bricolabs.

Ya hace tiempo que tenía ganas de aprender a programar los STM32, sobre todo después de ver las cosas interesantes que hacían gente como Phil’s Lab y lo fácil que parecía lo de hacer efectos de sonido con una calidad bastante buena (lo que te den tu ADC y tu DAC). Así que me puse a cacharrear con una BlackPill (una placa que lleva un micro STM32F411), un par de micrófonos INMP441, y un DAC PCM5102A.

Microcontroladores STM32
#

Aunque los STM32 está soportados por el IDE de Arduino gracias al proyecto STM32duino, la parte del I2S no estaba desarrollada todavía, por lo que tocaba utilizar el IDE de ST Microelectronics. De todos modos, estos micros son tan versátiles que necesitan una configuración inicial para preparar los recursos (periféricos) que quieres utilizar y asignar los pines correspondientes, por lo que pienso que el uso del IDE del fabricante se hace casi, casi, obligatorio.

El estándar I2S
#

El I2S es un estándar de comunicación para circuitos integrados destinado a transferir señales de audio digitalizado. Es parecido al bus I2C, o al bus SPI. Tenemos una línea de reloj que marca el ritmo de la comunicación, otra de datos por donde se envía la información y una tercera que indica el canal (izquierdo o derecho) que se está transmitiendo en ese momento. Admite muestras de 16, 24 o 32 bits y tramas de 16 o 32 bits.

Codecs (ADC, DAC), y micrófonos I2S
#

Para desarrollar aplicaciones de tratamiento de audio es muy sencillo utilizar módulos de conversión analógico/digital, o digital/analógico, que se comuniquen mediante este tipo de bus. Podemos adquirir, en esa web que todos conocemos, pequeñas placas con DACs y ADCs que nos dan una calidad muy alta, y que nos permiten olvidarnos de las fases de digitalización en la entrada y conversión a la salida. Solo tenemos que conectar los codecs a nuestro micro y podremos enviar y recibir audio digital con muy poco esfuerzo.

Encima, también existen micrófonos digitales que tienen una salida I2S directa. Sin preamplificadores, sin ruidos, sin interferencias. Dales alimentación y los micrófonos te darán sonido, sin más complicaciones. Os soprprenderá la calidad del sonido. En los micrófonos que escogí yo, los INMP441, el ancho de banda es un poco limitado, pero el sonido es mucho mejor de lo que podría conseguir con un micrófono analógico, que con seguridad acabaría recogiendo muchísimas interferencias de todo tipo.

Descarga
#

— Venga, venga, menos rollo y pásame el enlace.

— Llevas prisa? Aquí lo tienes.

Relacionados

El problema de los seis destellos
5 mins· loading · loading
José M. Mariño
Repair TV Sony
Reparación de la Samsung SPP-2020B
3 mins· loading · loading
José M. Mariño
Repair Samsung Printer Spp-2020b