Quão difícil é programar um codec de áudio?
Em resumo, não é fácil. Eu escrevi drivers para vários codecs diferentes, incluindo o Cirrus Logic WM8904 e o AKM AK4954, como parte da estrutura Harmony 3 para os microcontroladores PIC32 e SAM 32-bit do Microchip.Internalmente, estes são bestas bastante complicadas. A folha de dados para o codec WM8904, por exemplo, tem 184 páginas. Tem quase 100 registos internos. Então você tem que entender como configurá-los e usá-los, além de como usar I2S e I2C, este último usado para acessar esses registros. Outros codecs podem usar, SPI, UART, ou uma interface paralela em seu lugar.
Aqui está o diagrama de blocos do WM8904:
Durante a inicialização, deve-se configurar os vários caminhos de sinal e ganho associado, viés de microfone, parâmetros de temporização (incluindo a configuração do FLL, ou Frequency Locked Loop), configuração do I2S, etc.
Durante o tempo de execução, pode haver a necessidade de ajustar parâmetros como a taxa de amostragem, volume e ganho do microfone, e silenciar o microfone e/ou as saídas.
A fonte C do meu driver WM8904 tem quase 3000 linhas. Provavelmente levei algumas semanas para escrever e depurar.
Artigos semelhantes
- Que codec de áudio Bluetooth Boat Rockers 550 suporta, além do SBC?
- Quão difícil é programar software de processamento de texto?
- Como corrigir um problema de áudio no Ubuntu 18 no qual todo o áudio, exceto aqueles conectados à tomada de áudio, funciona
- O que é mais difícil de criar/programar: aspiradores de pó robotizados ou cortadores de relva robotizados?