Riproduzione audio su microcontrollori HCS12 con capacità di modulazione di larghezza di impulso (PWM)

La serie HCS12 di microcontrollori non supporta un hardware interno dedicato alla conversione analogico-digitale e per tanto per eseguire le manipolazioni necessarie risulta essenziale un hardware esterno, magari sottoforma di una conversione analogico-digitale IC.

Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Lo scopo fondamentale del software è utilizzare o i campioni dei dati memorizzati o un algoritmo al fine di riprodurre i campioni in tempo reale per modificare direttamente il duty cicle di un segnale .wav. I file .wav hanno un formato standard che contiene i dati del campione e un’intestazione che descrive il formato e i contenuti del file. È importante verificare il formato del file da scaricare per l’MCU HCS12, in quanto la lettura di un file dal formato inaspettato potrebbe dare come esito dei dati sul campione corrotti. La lettura dei valori di un certo numero di parametri memorizzati nell’intestazione e il confronto di questi con i valori attesi autentica il formato del file. Questo è il metodo utilizzato per verificare la validità del file .wav nel codice sorgente che lo accompagna. I parametri critici che devono sempre essere controllati sono:

    • il magico numero utilizzato per definire il file come tipo .wav (Hex 52494646),
    • il numero di canali,
    • la frequenza di campionamento e
    • il numero di byte per campione.

La frequenza di campionamento dipende interamente dall’applicazione. La scelta finale è un compromesso tra l'intelligibilità e la capacità (tempo) di memorizzare il campione. In genere le frequenze di campionamento disponibili sono:

    • la qualità telefonica di 8kHz
    • la qualità radio AM di 11.025 kHz
    • la qualità radio TV/FM di 22.05 kHz
    • la qualità CD di 44.1 kHz.

Riprodurre l’audio

Come è stato descritto in precedenza, la riproduzione dell'audio avviene scaricando il registro del ciclo della PWM con i valori indicati dal puntatore del tipo di dati. La sincronizzazione dei campioni viene controllata dal contatore down del modulo, che interrompe e attiva un ISR (In-Service Register) per eseguire il registro necessario della PMW e la manutenzione del puntatore. Il contatore down del modulo opera contando alla rovescia da un valore prescritto e generando un interrupt quando raggiunge lo zero, poi ricarica il valore di partenza e incomincia di nuovo. Questo dà una buona flessibilità all’applicazione dal momento che qualsiasi frequenza pratica di campionamento può essere riprodotta impostando l’appropriato valore iniziale del contatore. Questo può essere calcolato attraverso l'identificazione della frequenza del calcolo del contatore down (impostando il clock del bus nel codice sorgente dell’esempio) e individualizzando il numero dei cicli del clock del bus che dovrebbero passare tra le operazioni di scrittura del campione e il registro del ciclo della PWM. Ad esempio, il contatore down del modulo su una MCU HCS12, che opera da un cristallo di 32MHz con un clock del bus di 16MHz, effettuerà il conteggio una volta ogni 62.5nS (supponendo che il clock del bus sia usato come clock del contatore). Per riprodurre un campione ad una frequenza di campionamento di 11.025kHz il contatore dovrà contare da 1451 (hex0x05AB). Questo assicura che i campioni siano impostati alla frequenza corretta.

Riprodurre campioni da 16-bit

Il modulo della PWM su microcontrollori della serie HCS12 supporta operazioni della PWM a 16-bit. Ciò offre una risoluzione del duty cicle a 16-bit, e quindi è tecnicamente possibile caricare dati di campioni di 16-bit alla PWM. La concatenazione di due canali della PWM causa come effetto l’aumento del periodo della PWM a causa di un fattore pari a 256 e pertanto, tale fattore di 256 riduce la capacità di frequenza della riproduzione del campione. Inoltre, l'uso di campioni a 16-bit dimezza la capacità del tempo di riproduzione della MCU e non si avrà un grande aumento in termini di qualità audio, specialmente se si applica il filtro passa-basso passivo RC. Le conseguenze pratiche della riproduzione di un campione a 16-bit non sono state pienamente analizzate, tuttavia questo è assolutamente possibile.

Filtri

Per filtrare l’output della PWM è necessario un filtro passa-basso. Il tipo di filtro e le relative caratteristiche sono determinate dai dati dell’audio che deve essere riprodotto, e dal prezzo. L’implementazione più semplice è un filtro RC che fornisce un roll-off di primo ordine molto elementare, ma che ha come vantaggio due componenti esterni alla MCU. L'altra implementazione è un filtro attivo. Questa soluzione è più flessibile in quanto il filtro, così come la complessità e il numero di componenti, può essere scelto sulla base dell’applicazione.

Suggerimenti sul layout del circuito con filtri attivi
Suggerimenti sul layout del circuito con filtri attivi

Le tecniche qui descritte offrono soluzioni semplici e flessibili per la riproduzione dell’audio e sono compatibili con la gamma di microprocessori HCS12. Questi ultimi dovrebbero trovare impiego in un numero di applicazioni in cui sono richiesti bassa-fedeltà e una riproduzione a basso rendimento.

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Scarica subito una copia gratis
Tags:

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend