Pagina 1 di 1

CODEC/DAC audio

MessaggioInviato: 2 ott 2012, 23:20
da TardoFreak
Un saluto a tutti i partecipanti,
Scrivo questa cosa per avere informazioni sui codec audio, in particolare sulla riproduzione audio mediante microcontrollori, nella speranza di avere informazioni da chi ha sviluppato questo tipo di applicazioni.
Per quanto mi riguarda ho implementato parecchie applicazioni per riprodurre musica mediante microcontrollore ma sempre utilizzando DAC tradizionali ed utilizzando filtri all' uscita per poi amplificare il segnale e tutto il resto.
Ho qui davanti a me una scheda che ho cablato e che monta un STM32F103 con la quale posso riprodurre i files audio memorizzati in un file system su flash seriale o scheda MMC indipendentemente dalla frequenza di campionamento.
Il problema è il filtro in uscita. Se la frequenza è fissa il problema non esiste, si realizza un filtro analogico e la storia finisce lì, se la frequenza è variabile allora bisogna trovare un' altra soluzione.
Foto UtenteIsidoroKZ ha saggiamente suggerito di realizzare un filtro a capacità commutata, e quindi sono andato alla ricerca di integrati per tale soluzione.
Cercando ho trovato dei DAC che hanno il filtro integrato. Sono DAC con interfaccia SPI dal cui clock prelevano il segnale che pilota il filtro in modo che questi sia adattato alla frequenza di campionamento. Chiaramente il segnale di clock della SPI deve essere un segnale continuo e, diciamo così, "ben fatto", altrimenti tutto l' ambaradan non funzionerebbe a dovere. Sono DAC che interpolano (o fanno diavolerie del genere) i dati in ingresso, dati che arrivano di continuo e in uscita ho il mio bel segnale ben ripulito solo da amplificare.
Io ho dimestichezza con gli STM32 ed ho visto, con gran dispiacere che, a differenza dell' USART, l' interfaccia SPI non ha un baud rate generator tale da generarmi la frequenza esatta per far funzionare questi DAC nel modo corretto. Ha semplicemente un prescaler con soli 8 fattori di divisione e quindi non si può adattare.
Adesso però sono curioso.
I DAC come questo, ad esempio, con quale micro vengono utilizzati?
Sono utilizzati con dei micro o dei circuiti custom/semicustom?
Esistono micro dedicati per la riproduzione audio?

Re: CODEC/DAC audio

MessaggioInviato: 6 ott 2012, 19:41
da guidonetto
Ciao, sono appasonato al elettronica e alla musica, conosci dei chip che hanno integrato le note musicali degli strumenti campionati, tipo i suoni degli strumenti di una tastiera?
Grazie

Re: CODEC/DAC audio

MessaggioInviato: 6 ott 2012, 22:35
da TardoFreak
Quello che cerchi tu e le risposte che cerco io hanno, purtroppo, un solo denominatore comune: sono udibili. :-|
Tu cerchi un circuito per sintetizzare la musica, io cerco di capire come fare per utilizzare un tipo di periferiche per riprodurre la musica. :?

Re: CODEC/DAC audio

MessaggioInviato: 7 ott 2012, 15:28
da GuidoB
TardoFreak ha scritto:Il problema è il filtro in uscita. Se la frequenza è fissa il problema non esiste, si realizza un filtro analogico e la storia finisce lì, se la frequenza è variabile allora bisogna trovare un' altra soluzione.

A me viene in mente di utilizzare un filtro analogico adatto alla tua massima frequenza di campionamento.
Se hai campioni a una frequenza più bassa, potresti interpolarli per ottenere una frequenza doppia-tripla-quadrupla ecc. a seconda del bisogno, in modo che la frequenza di campionamento risultante sia maggiore o uguale alla tua massima frequenza di campionamento "vera" (se viene più alta è anche meglio).
L'interpolazione potrebbe essere lineare, oppure se non dà buoni risultati potrebbe essere di questo tipo:

Cioè, fai passare due parabole rispettivamente per i campioni a, b, c e b, c, d.
Tra i campioni b e c puoi calcolare il valore dei campioni "interpolanti" come una media pesata (sulla distanza da b e c) delle due parabole. La funzione interpolante è la linea azzurra.
L'istinto mi dice (ma potrei sbagliare, bisogna fare i conti) che ti viene una combinazione lineare dei campioni a, b, c e d (niente elevamenti al quadrato).
A questo punto basta tabellare i coefficienti per una frequenza doppia, tripla ecc, e dovresti poter calcolare facilmente i campioni interpolanti (somme e moltiplicazioni per coefficienti fissi).

Se ti sembra che possa andare possiamo ragionarci sopra un po' di più.

O_/

Re: CODEC/DAC audio

MessaggioInviato: 7 ott 2012, 16:01
da Lelettrico
Servono maggiori dettagli, ad ogni modo mi viene alla mente LTC1569 un filtro LP del 10 ordine a fase lineare che puo' essere agevolmente programmato nella roll-off con il clock in ingresso, il rapporto fra la f di clock e f roll-off e' di 32 a 1.
Alternativamente, si puo' settare una opportuna R esterna e tener fisso il clock al valore piu opportuno.