Todo isto comezou por falar de máis. Teño un amigo que se entusiasma rápidamente cada vez que alguén fai algo, e curiosamente ese entusiasmo case sempre vai encamiñado a convencer a ese alguén para que transmita ese novo coñecemento adquirido. Cousa que non é mala de por si, pero que non adoita acabar ben para o “himbestigador” porque a miúdo remata impartindo unha charla en Bricolabs.
Xa fai tempo que tiña gañas de aprender a programar os STM32, sobre todo despois de ver as cousas interesantes que facían xente coma Phil’s Lab e o doado que semellaba o de facer efectos de son cunha calidade bastante boa (o que che dea o teu ADC e DAC). Así que me puxen a argallar cunha BlackPill (unha placa que leva un micro STM32F411), un par de micrófonos INMP441, e un DAC PCM5102A.
Microcontroladores STM32 #
Ainda que os STM32 están soportados polo IDE de Arduino grazas ó proxecto STM32duino, a parte do I2S non estaba desenvolvida todavía, polo que tocaba emprega-lo IDE de ST Microelectronics. De todos xeitos, estes micros son tan versátiles que necesitan unha configuración inicial para prepara-los recursos (periféricos) que queres empregar e asignar os pines correspondentes, polo que penso que o emprego do IDE do fabricante faise case, case, obrigatorio.
O estándar I2S #
O I2S é un estándar de comunicación para circuitos integrados destinado a transferir sinais de audio dixitalizado. É semellante ó bus I2C, ou ó bus SPI. Temos unha liña de reloxo que marca o ritmo da comunicación, outra de datos por onde se envía a información e unha terceira que indica a canle (esquerda ou dereita) que se está a transmitir nese momento. Admite mostras de 16, 24 ou 32 bits e tramas de 16 ou 32 bits.
Codecs (ADC, DAC), e micrófonos I2S #
Para desenvolver aplicacións de tratamento de audio é moi doado utilizar módulos de conversión analóxico/dixital, ou dixital/analóxico, que se comuniquen mediante este tipo de bus. Podemos adquirir, nesa web que todos coñecemos, pequenas placas con DACs e ADCs que nos dan unha calidade moi alta, e que nos permiten olvidarnos das fases de dixitalización na entrada e conversión na saída. Só temos que conectar os codecs ao noso micro e poderemos enviar e recibir audio dixital con moi pouco esforzo.
Por riba, tamén existen micrófonos dixitais que teñen unha saída I2S directa. Sen preamplificadores, sen ruidos, sen interferencias. Dalles alimentación e os micrófonos daranche son, sen máis complicacións. Sorprenderavos a calidade do son. Nos micrófonos que escollín eu, os INMP441, o ancho de banda é un pouco limitado, pero o son é moito mellor do que podería conseguir cun micrófono analóxico, que de seguro acabaría recollendo moitísimas interferencias de todo tipo.
Descarga #
— Veña, veña, menos leria e pásame o enlace.
— Levas présa? Aquí o tes.