Quanto è difficile programmare un codec audio?
In breve, non è facile. Ho scritto driver per diversi codec, tra cui il Cirrus Logic WM8904 e l'AKM AK4954, come parte del framework Harmony 3 per i microcontrollori PIC32 e SAM a 32 bit di Microchip. Il datasheet del codec WM8904, per esempio, è lungo 184 pagine. Ha quasi 100 registri interni. Quindi bisogna capire come configurarli e usarli, più come usare I2S e I2C, quest'ultimo usato per accedere a quei registri. Altri codec possono invece usare SPI, UART o un'interfaccia parallela.
Qui c'è lo schema a blocchi del WM8904:
Durante l'inizializzazione, si devono impostare i vari percorsi del segnale e il guadagno associato, i bias microfonici, i parametri di temporizzazione (inclusa l'impostazione dell'FLL, o Frequency Locked Loop), la configurazione I2S, ecc.
Durante il runtime, ci può essere la necessità di regolare parametri come la frequenza di campionamento, il volume e il guadagno del microfono, e silenziare il microfono e/o le uscite.
Il sorgente C per il mio driver WM8904 è lungo quasi 3000 linee. Probabilmente mi ci sono volute un paio di settimane per scrivere e fare il debug.
Articoli simili
- Come ingegnere di mastering, qual è l'uso di MP3 e altri codec lossy? I codec lossless non sarebbero sempre più desiderabili per i clienti?
- Quali codec audio usano i telefoni cellulari?
- Imparare a programmare: Posso ancora imparare a programmare se non sono bravo in matematica?
- Quanto è difficile programmare un software di elaborazione testi?