
Visualizzazione di contenuti grafici e riproduzione del suono sono divenute ormai caratteristiche irrinunciabili nei moderni sistemi embedded. Nel settore audio, in particolare, se da un lato esistono codec più o meno complessi che implementano le principali funzionalità per applicazioni ad elevata qualità, dall’altro i moderni microcontrollori integrano già periferiche che consentono facilmente la generazione di suoni in sistemi low-cost. Il presente articolo presenta in particolare alcuni esempi basati sui dispositivi della famiglia MB91460 di Fujitsu.
Il suono non è altro che una oscillazione dell’area percepita dall’udito come conseguenza della vibrazione di una sorgente di onde acustiche. Come al solito, si può rappresentare come sovrapposizioni di vibrazioni elementari che assumono forma di onde sinusoidali di ampiezza variabile a diverse frequenze; ogni armonica rappresenta un tono del segnale acustico. Acquisizione e riproduzione del suono si riducono quindi, al solito, al campionamento ed alla sintesi di segnali analogici.
Generazione del suono con modulazione PCM
PCM (Pulse-Code Modulation) è una tecnica piuttosto diffusa per la rappresentazione di un segnale analogico, il quale viene campionato ad intervalli regolari, quantizzato e tradotto in un codice numerico (tipicamente binario); la frequenza minima di campionamento per evitare fenomeni di aliasing (comparsa di frequenze spurie nello spetto del segnale campionato) è dettata dal teorema di Nyquist e dipende dal contenuto in frequenza del segnale. Nel caso delle applicazioni audio, in particolare, considerata la risposta dell’orecchio umano, la frequenza di campionamento per ricostruire un suono di qualità accettabile è tipicamente compresa tra 16 KHz e 44.1 kHz. Utilizzata fin dai primi sistemi telefonici, la modulazione PCM ha trovato ampia applicazione soprattutto negli anni ’80 - nelle prime tastiere musicali, ad esempio - ed è stata successivamente adottata nei CompactDisk ‘Reed Book’, uno di primi standard per CD audio introdotto da Philips e Sony. Per sintetizzare un segnale audio mediante tecniche PCM è sufficiente quindi disporre, in linea di principio, della sequenza di campioni e di un circuito per riconvertire in analogico il segnale digitale. I microcontrollori della serie MB91460 di Fujitsu presentano, ad esempio, fino a 72 porte di GPIO che possono essere utilizzate per pilotare un classico convertitore A/D. Integrano inoltre un controller DMA che permette di trasferire direttamente i campioni dalla memoria alla porta di uscita alla frequenza di sintesi e senza intervento della CPU. Un metodo alternativo, utilizzato nelle applicazioni low-cost, si basa sulla modulazione PWM (PulseWidth Modulation). Nelle tecniche PWM, i simboli dell’informazione originaria (in questo caso i campioni del segnale audio) vengono impiegati per modulare proporzionalmente il duty-cycle di un’onda quadra in uscita; il segnale modulato viene quindi utilizzato per controllare uno switch di corrente la cui uscita è filtrata mediante filtro passa-basso prima di finire in ingresso allo speaker. Gli amplificatori di classe D, ad esempio, si basano proprio su questo principio. In realtà, nelle applicazioni più semplici e qualora non sia richiesta elevata qualità dell’audio sintetizzato, il segnale PWM può essere portato in ingresso direttamente allo speaker sfruttandone le intrinseche proprietà fisiche (limitata risposta in frequenza, auto-induttanza, capacità parassita); la qualità dipende fortemente dalla particolare implementazione ma, come detto, la soluzione non richiede componenti aggiuntivi ed è piuttosto a basso costo. I microcontrollori Fujitsu della serie MB91460, in particolare, integrano fino a 16 controller PPG (Programmable Pulse Generator) che possono essere utilizzati per modulare un segnale PWM. La figura 1 mostra uno schema di principio delle risorse impiegate per la generazione del suono in base a tale schema; due controller possono essere utilizzati in parallelo nel caso di riproduzioni stereo.
![Figura 1: generazione di suoni mediante modulazione PWM nei micro Fujitsu serie MB91460 (da [1]).](https://it.emcelettronica.com/wp-content/uploads/2017/08/generazione-di-suoni-mediante-modulazione-PWM-nei-micro-Fujitsu-serie-MB9146.jpg)
Figura 1: generazione di suoni mediante modulazione PWM nei micro Fujitsu serie MB91460 (da [1]).
Generazione del suono con modulazione di tono e ampiezza
Come abbiamo visto, uno degli svantaggi principali delle tecniche PCM descritte è legato alla elevata capacità di memoria richiesta per memorizzare i campioni del segnale, il che rende difficile nelle applicazioni embedded a basso costo eseguire lunghe sequenze audio; d’altro canto l’utilizzo di formati compressi per la memorizzazione dei dati richiederebbe un carico computazionale per la CPU non sempre sostenibile. Una soluzione più semplice, sebbene non in grado di garantire la stessa qualità del suono riprodotto, è basata su una modulazione di tono e ampiezza. In questo caso vengono mixati due segnali PWM. Il primo ha una frequenza variabile ma un duty-cycle costante del 50% e definisce il particolare tono del segnale (ovvero la frequenza dell’armonica corrispondente) che sarà riprodotto. Il secondo, invece, ha frequenza costante ma duty-cycle dettato dall’ampiezza del tono associato. I microcontrollori Fujitsu della famiglia MB91460 integrano un Sound Generator che supporta appunto tale funzionalità. La figura 2 mostra lo schema di principio delle risorse utilizzate per la generazione di suono in tale modalità.
![Figura 2: generazione di suoni mediante modulazione tono e ampiezza nei micro Fujitsu serie MB91460 (da [1]).](https://it.emcelettronica.com/wp-content/uploads/2017/08/generazione-di-suoni-mediante-modulazione-tono-e-ampiezza-nei-micro-Fujitsu-serie-MB9146.jpg)
Figura 2: generazione di suoni mediante modulazione tono e ampiezza nei micro Fujitsu serie MB91460 (da [1]).
![Figura 3: architettura dei micro MB91460 (da [1]).](https://it.emcelettronica.com/wp-content/uploads/2017/08/architettura-dei-micro-MB91460.jpg)
Figura 3: architettura dei micro MB91460 (da [1]).
