Demoboard MP3 per il modulo riproduttore audio DFR0299

Testiamo le potenzialità del modulo riproduttore audio DFR0299, ideale per Arduino ma anche per tantissime applicazioni stand-alone.

Demoboard per riproduttore audio MP3 DFR0299 - in kit

Esistono molte applicazioni fisse e mobili in cui bisogna riprodurre avvisi acustici o messaggi vocali: ad esempio promobox con sensore di prossimità che richiamano l’attenzione dei clienti di un negozio, bilance che invitano a pesarsi, avvisatori che indicano il percorso a chi si approssima all’ingresso di un locale o che in auto invitano ad allacciare la cintura di sicurezza o a moderare la velocità perché si sta superando il limite in centro abitato.

In passato se si desideravano funzioni del genere era necessario utilizzare dischi miniatura o nastri magnetici, ma poi grazie alla nascita degli integrati per sintesi vocale (Speech Circuit) come i primi MSM6322 della OKI è possibile riprodurre l’audio da dispositivi allo stato solido; l’arrivo dei DAST e Chipcorder lanciati dalla ISD (ora Nuvoton…) ha sancito l’era dei registratori e riproduttori vocali solid-state, ma il settore si è ben presto evoluto coinvolgendo i supporti di memorizzazione di massa più utilizzati, capaci di superare i vincoli imposti dalla “poca” memoria di bordo dei dispositivi succitati.

Ecco quindi nascere i registratori e i riproduttori MP3, come ad esempio il modulo DFR0299 o il piccolo MP3PLAYERUSB.

Per mostrarvi tutte le potenzialità del primo modulo abbiamo deciso di progettare e proporre in questo post una demoboard, che sarà la piattaforma di sviluppo per varie applicazioni o semplicemente per programmare più dispositivi se occorre realizzare piccole produzioni.

Il circuito della demoboard MP3

Prima di passare all’analisi dello schema elettrico della demoboard riteniamo utile riepilogare le caratteristiche del modulo MP3, peraltro ben dettagliate nell’apposito riquadro in queste pagine.

Il modulo è in grado di riprodurre direttamente i file MP3 e WAV memorizzati su una SD-Card della capacità massima di 32 GB purché formattata con FAT16 o FAT32, inserita nell’apposito slot presente sul lato superiore del PCB; ma il modulo dispone anche di un’interfaccia USB di tipo Device, che abbiamo riportato su un connettore USB A e che gli permette di leggere i dati da una Pen Drive, sempre della capacità massima di 32 GB, sempre formattata come già detto per la SD-Card.

La particolarità di questo modulo è che è stato progettato e realizzato per il mondo Arduino e per la sua gestione è stata sviluppata una libreria specifica che permette di decidere quale file riprodurre, regolare il volume ecc.

Ma il dispositivo può anche funzionare autonomamente e nel nostro caso lo utilizziamo così, mediante pulsanti, grazie ai quali possiamo comandarne tutte le funzioni. Siccome il modulo è controllabile tramite interfaccia seriale a livello TTL, nel nostro circuito utilizziamo un converter seriale/USB per interfacciarlo a un Personal Computer. Nel circuito è comunque disponibile e accessibile la porta seriale.

Il modulo contiene un decoder in grado di decomprimere l’audio in formato MP3 e un microcontrollore capace di accedere via SPI ai dati contenuti nella SD-Card: man mano che lo stream di dati viene letto, il decoder lo trasforma in audio non compresso, che poi viene amplificato da un piccolo finale integrato, mono con uscita a ponte, da 3 watt, che sono una potenza più che sufficiente a pilotare un altoparlante in grado di “farsi sentire” nell’ambiente.

Se serve maggior potenza, utilizzate l’uscita audio (SPK1, SPK2) per pilotare un adeguato amplificatore BF cui applicare una cassa acustica; in alternativa potete prendere l’audio dai contatti 4 e 5, che sono le uscite audio a basso livello dei canali, rispettivamente, LEFT e RIGHT. In questo caso potete contare su un audio stereo.

Tutte le funzioni del modulo si governano da pulsanti posti sul circuito stampato, come mostra lo schema elettrico, che dopo queste premesse possiamo analizzare. Come vedete, trattandosi di una demoboard tutti i contatti sono stati prolungati verso l’esterno, compresi TX ed RX dell’UART interno al modulo, funzionante di base a 9.600 bps (ricordiamo che il modulo nasce per Arduino, quindi non serve grande velocità sulla seriale).

Per consentire la lettura di più pulsanti è stato adottato uno stratagemma che fa uso dell’A/D converter interno al microcontrollore assegnato alle linee ADKEY1 e ADKEY2.

Tale soluzione è stata voluta perché altrimenti la lettura dei 20 pulsanti previsti richiederebbe altrettanti piedini, che nel modulo non sono disponibili, dato che lo stesso è montato tutto su un PCB avente a lato 8+8 pin a passo 2,54 mm realizzati da due strip da 8 contatti ciascuna, nelle quali devono passare alimentazioni, uscita audio, connessione USB e porta seriale, oltre all’audio stereo e alla connessione dell’altoparlante.

La lettura dei pulsanti avviene rilevando la tensione che la pressione e conseguente chiusura di ognuno di essi determina all’ingresso cui è collegato; tale tensione dipende dalla resistenza in serie al pulsante.

Per l’esattezza, ciascuno degli ADKEY1 e ADKEY2 dispone internamente al modulo di un resistore di pull-up che farà partitore con il resistore posto in serie a ogni pulsante, determinando -quando il pulsante stesso viene premuto- una certa tensione; nel firmware si trova scritta una tabella di valori corrispondenti ognuno alla lettura dell’ADC per ciascuno dei pulsanti presenti, quindi, siccome i resistori dei 10 pulsanti di ciascun ingresso sono diversi tra loro, chiudendo Play Mode si determina su ADKEY1 un potenziale differente da quello che si verifica agendo su 01, premendo 02, Loop e via di seguito. Analogo è il discorso riguardante ADKEY2.

Naturalmente i tasti di ciascun lato vanno premuti uno solo per volta, altrimenti si trovano in parallelo due resistori e l’A/D converter legge un valore anomalo, determinando l’attivazione di una funzione estranea.
I pulsanti sono divisi in gruppi funzionali: quelli che attivano la riproduzione diretta dei brani (in questo caso nel comando a pulsanti è prevista la riproduzione di 14 file audio) e quelli che comandano la modalità di funzionamento; i primi sono 01÷14 e premendo uno di essi si esegue in automatico la riproduzione dei brani che si trovano nella rispettiva posizione nel supporto di memorizzazione di massa utilizzato o predefinito.

Demoboard per riproduttore audio MP3 DFR0299 - in kit

Quindi la pressione di 01 fa riprodurre direttamente il primo brano, quella di 02 il secondo e così via fino al brano 14.

Va notato che i quattordici tasti relativi ai segmenti di memoria in cui sono memorizzati gli altrettanti brani hanno due modalità di attivazione: la pressione breve avvia la riproduzione mentre una pressione prolungata determina la ripetizione del brano dal principio.

Play Mode decide la modalità di riproduzione, ovvero se riprodurre il brano in corso fino alla fine o passare subito a quello selezionato (interrupt/non interrupted mode); ad ogni pressione del pulsante si inverte la modalità.

Il tasto U/SD/SPI imposta manualmente la selezione della fonte da cui leggere i file da riprodurre (U/TF/SPI/Sleep): ogni pressione passa, nell’ordine, da USB a SD-Card a SPI, quindi la terza pressione porta in Sleep Mode e poi si ricomincia.

Il terzo tasto funzione, ossia Loop, consente di passare dalla modalità di riproduzione singola a quella ciclica: nel primo caso il brano scelto con i tasti 01÷14 viene riprodotto una sola volta per ciascuna pressione, mentre nel secondo (ciclico) alla fine ricomincia da capo all’infinito, ovvero fin quando non toglie alimentazione al circuito, si ripreme il pulsante Loop, ovvero si interviene sul pulsante Pause/Play.

Quest’ultimo serve, appunto, per mettere in pausa la riproduzione in corso, ovvero per riprenderla se la si è messa in pausa; questo vale sia se è stata selezionata la riproduzione singola (one-shot) sia quella ciclica e non altera le impostazioni effettuate con i pulsanti precedenti.

Il pulsante Next/Vol+ ha anche questo una duplice funzione: premuto brevemente fa saltare, durante la riproduzione di un brano, a quella del successivo; equivale, in questo caso, allo skip.

Se premuto a lungo, alza il volume di ascolto (cioè il livello del segnale audio fornito alle uscite e all’amplificatore integrato nel modulo) costantemente fin quando non viene rilasciato

Similmente, il pulsante Prev/Vol- (il quinto tasto funzione) se premuto brevemente fa saltare la riproduzione da quella del brano in corso (selezionato con 01/14) a quella del brano precedente (per esempio se il lettore sta riproducendo la traccia 5 inizia a riprodurre la 4) mentre quando viene pigiato a lungo abbassa il volume d’ascolto progressivamente finché non viene rilasciato.

A proposito del volume d’ascolto, notate che all’avvio parte automaticamente dal volume più alto, quindi andrà regolato tramite tasti (più precisamente, si dovrà intervenire su Prev/Vol-) per adattarlo alle proprie esigenze.

Bene, analizzati i pulsanti, che costituiscono l’interfaccia utente della scheda, passiamo alle porte di comunicazione, che sono essenzialmente la seriale (TX, piedino 3 ed RX, piedino 2) a livello 0/3,3V e l’USB, che fa capo al connettore USB-A e internamente all’interfaccia USB di tipo Device; notate che per l’interfacciamento al Personal Computer utilizziamo effettivamente una USB, ma non quella del modulo, dato che in fabbrica è configurata per essere utilizzata come interfaccia verso la Pen Drive da cui caricare i file da riprodurre, bensì la seriale connessa a un modulo USB/RS232, che poi è l’FT782M della Futura Elettronica.

Siccome tale modulo, basato sul popolare integrato FT232RL della FTDI, funziona con i 5 volt ricavati dalla connessione USB e quindi sul lato seriale lavora con livelli TTL, conformemente a quanto suggerito dal costruttore sono state inserite delle resistenze in serie ai canali TX ed RX del modulo MP3, che sono state progettate per lavorare con livelli 0/3,3V.

I piedini cui collegare l’altoparlante (6 e 8) sono stati portati a una presa jack da 3,5 mm i cui canali sinistro e destro sono uniti, mentre il lettore della SD è incorporato nel PCB del modulo e quindi nello schema della demoboard non appare.

L’intero circuito è alimentato a tensione continua di valore compreso tra 9 e 12 V e il regolatore integrato U1, preceduto dal diodo di protezione dall’inversione di polarità D1 (la sua caduta di tensione è trascurabile), ricava dall’alimentazione principale i 5 volt stabilizzati occorrenti al modulo MP3. I condensatori C5 e C6 filtrano l’alimentazione in ingresso (jack + e – PWR) mentre i 5 volt stabilizzati dal regolatore vengono filtrati da C1 e C3.

Lungo la linea d’alimentazione del modulo sono dislocati i condensatori C2 e C4, che filtrano localmente i 5 volt impedendo che i disturbi propagati sulla linea d’alimentazione influenzino l’attività del microcontrollore che governa il modulo MP3.

Demoboard per riproduttore audio MP3 DFR0299 - in kit

Realizzazione pratica

La demoboard viene fornita in scatola di montaggio o già montata. Qualora optiate per la versione in kit tenete d’occhio la disposizione componenti pubblicata in queste pagine, così da conoscere il giusto orientamento dei componenti polarizzati (diodo, elettrolitici, modulo, regolatore di tensione).

Una volta completato il montaggio e verificatane l’esattezza, potete subito provare la demoboard, alimentandola con una fonte di tensione continua di valore compreso tra 9 e 12 volt e capace di fornire 500 milliampere (se intendete collegare all’uscita un altoparlante, ovvero 200 se connettete una cuffia o l’ingresso di un amplificatore).

Alla presa jack potete collegare, con un apposito cavetto, l’ingresso di un amplificatore audio, di altro dispositivo audio (dotato di potenziometro per la regolazione del volume all’ingresso, onde evitare la saturazione degli stadi BF) di una cassa acustica amplificata o semplicemente un altoparlante da 8 ohm, 3 watt.

Se intendete riprodurre dei file da una microSD, inseritela nel lettore del modulo MP3 prima di innestare quest’ultimo nei relativi pin-strip, altrimenti lasciate stare e inserirete la Pen Drive per i file da riprodurre.

Siccome il lettore di microSD si trova sul lato superiore e quindi quello accessibile del modulo, con un po’ di delicatezza (ma a circuito spento). Se volete connettere il dispositivo al PC, collegatelo via USB, ma utilizzando la porta del modulo FT782M…non la presa sul PCB, ricordatelo, che è riservata alla Pen Drive e comunque alla ricerca dei brani.

Premete un tasto tra 01 e 14 e verificate che venga riprodotto il file corrispondente; aggiustate il volume con Prev/Vol- perché probabilmente sarà troppo alto, dato che il modulo all’avvio parte automaticamente dal volume più alto (inizialmente il volume sarà solo da abbassare).

Il modulo audio

Il componente che utilizziamo nella demoboard è un lettore MP3 basato su un integrato custom DFROBOT LISP3 della DFROBOT (www.dfrobot.com) che permette di riprodurre brani musicali MP3 e in formato WMV senza dover utilizzare hardware costoso e impegnativo: infatti il DFR0299 è un completo decoder che attinge a un supporto di memorizzazione di massa come l’SD-Card o una Pen Drive USB, decifra l’audio e poi lo amplifica on-board pronto per inviarlo a un altoparlante (da 8 ohm di impedenza) con quasi 3 watt di potenza.

È quindi l’ideale quando si desiderano riprodurre file audio standard come gli MP3 ma non si dispone delle risorse di calcolo (CODEC compreso) che la loro elaborazione diretta richiederebbe ad esempio a un microcontrollore per uso hobbistico.

Mini riproduttore MP3 - montatoMini riproduttore MP3 - montato

Il modulo nasce non a caso per essere gestito da Arduino, che ha risorse limitate, e al quale è semplicemente richiesto di inviare comandi seriali per gestire la riproduzione; tutto il resto lo fa il DFR0299.

Questo dispositivo può anche essere utilizzato in stand-alone, alimentandolo a 5 volt (la corrente richiesta per erogare 3 watt su 8 ohm, che si ottengono a 5 volt, è 0,45 ampere), collegandogli un altoparlante e dei pulsanti come vedete nella demoboard.

Oppure può essere usato in combinazione con qualsiasi microcontrollore o microprocessore dotato di porta seriale a livello TTL.

Dispone di controllo tramite pin di I/O, tramite seriale o tramite ingresso analogico. Supporta fino a 100 cartelle; ogni cartella può contenere fino a 1.000 brani MP3.

La regolazione del volume, sia essa ottenuta per via seriale o localmente tramite pulsanti, prevede 30 livelli (± dalla posizione centrale).

L’alimentazione prevista è da 3,2V a 5V in continua (la corrente assorbita in standby è pari a 20 mA).

Le principali caratteristiche del modulo sono:
• decodifica MP3 11172-3 e ISO13813-3 layer3;
• possibilità di equalizzazione Pop, Rock, Jazz, Classica ecc.;
• frequenze di campionamento in riproduzione: 8/11,025/12/16/22,05/24/32/44,1/48 kHz;
• DAC a 24 -bit che consente una gamma dinamica di 90 dB e un rapporto segnale/rumore di 85dB;
• supporto File System FAT16 e FAT32;
• massima capacità di memoria indirizzabile pari a 32 GB di Pen Drive o SD con blocchi di 64 MB Flash NOR;
• dimensioni: 20 x 20 x 13 mm.

Per quanto nel nostro progetto lo utilizziamo in mono, il modulo dispone di un decoder MP3 stereo le cui uscite sono disponibili a basso livello e alta impedenza sui pin 4 e 5 per pilotare amplificatori, ingressi di mixer, cuffie a 300 ohm ecc.

L’amplificatore di potenza incorporato è mono e amplifica la miscelazione dei canali destro e sinistro; è un finale capace di erogare 3 watt di potenza continua (con una distorsione inferiore al 10%) grazie a uno stadio finale a ponte.

La seriale è a livello 0/3,3V ma può essere interfacciata con logiche a 5V; in tal caso, tuttavia, il costruttore suggerisce di porre in serie alla linea RX un resistore da 1 kohm, così da limitare la corrente in ingresso a tale pin a valori sicuri.

Piano di montaggio

Elenco componenti

C1, C4, C5: 100 nF ceramico
C2, C3: 220 µF 16 VL elettrolitico
C6: 220 µF 16 VL elettrolitico
R1, R14: 9.1 kohm 1%
R2, R13: 6.2 kohm 1%
R3, R12: 3 kohm 1%
R4, R11: 0 ohm
R5, R15: 15 kohm 1%
R6, R16: 24 kohm 1%
R7, R17: 33 kohm 1%
R8, R18: 51 kohm 1%
R9, R19: 100 kohm 1%
R10, R20: 200 kohm 1%
R21, R22: 1 kohm
D1: 1N4007
U1: 7805
U2: DFR0299
USB: Connettore USB-A da CS
OUT: Presa Jack stereo 3,5mm da cs 
TTL: Modulo USB/TTL (FT782M)

Varie: 
- Plug alimentazione
- Microswitch (20 pz.)
- Strip femmina 8 vie (2 pz.)
- Strip femmina 4 vie 90°
- Circuito stampato S1280 (77 x 71 mm)

Utilizzo

Come accennato, la demoboard supporta i file MP3 e WAV ed esegue la lettura automatica da Pen Drive o microSD se si inserisce solo una di esse, mentre se sono inseriti entrambi tali dispositivi di memorizzazione di massa, andrà premuto il tasto U/SD/SPI per scegliere la sorgente di brani, altrimenti il modulo non riprodurrà alcunché.

Affinché il modulo MP3 possa riconoscere e riprodurre correttamente i file audio, correlandoli con i pulsanti, dovete salvarli nel supporto di memorizzazione di massa scelto in questo formato “0001_NomeTraccia.mp3” dove il nome del file deve iniziare con l’ID numerico composto da 4 caratteri, ovvero il numero del brano in formato a 4 cifre: 001, 002, 003 fino a 0014. Al posto di NomeTraccia potete pure dare il nome che volete, l’importante che sia preceduto dal numero che volete assegnargli e dal trattino basso (“underscore”).

In questo modo potete comandare la demoboard ad esempio dai pulsanti, chiudendoli in cortocircuito con switch CMOS o con le linee di un microcontrollore inizializzate come output open-drain, stabilendo la correlazione fra brano riprodotto e linea da attivare.

Ricordate che l’interfaccia seriale/USB per il controllo permette la gestione della demoboard (o meglio, del modulo MP3 su cui è basata) da computer, però non è previsto alcun software specifico; infatti la gestione si può effettuare da un software emulatore di terminale (Hyperterminal di Windows, per esempio, oppure Telnet ecc.) seguendo la sintassi e i comandi specificati dal produttore del modulo (DFRobot) nello User Manual.

Rammentate che i dati riguardanti i file audio vengono cercati dal microcontrollore che governa il modulo MP3 per cartelle, ovvero partendo dalla radice (root) della memoria di massa e procedendo in ordine alfabetico; a tale riguardo va detto che il modulo supporta un massimo di 100 cartelle e che in ogni cartella può essere memorizzato un massimo di 1.000 brani.

Resta inteso che i primi 14 possono essere indirizzati tramite i pulsanti, mentre la riproduzione degli altri si può ordinare solo tramite interfaccia seriale, con gli appositi comandi.

I formati file supportati sono quelli già elencati e più precisamente quelli rispondenti allo standard ISO 11172-3 e all’ISO13813-3 layer3 audio decoding. Sono supportati i sampling rate di 8/11,025/12/16/22,05/24/32/44,1/48 kHz.

Il controllo del volume prevede 30 passi (dal minimo al massimo) o step, che dir si voglia; questo vale sia per il comando manuale da pulsanti, sia per la gestione da porta seriale. Da seriale è possibile anche scegliere uno dei 10 livelli di equalizzazione del suono previsti (ad esempio Jazz, Classic, Pop, Rock ecc.).

Restando in tema di comunicazione sulla porta seriale, il protocollo prevede sul PC questa impostazione:
– Data bits: 1
– nessun Checksum
– Nessun controllo di flusso

Il formato previsto, ovvero la sintassi dei comandi da inviare tramite seriale è $S VER Len CMD Feedback para1 para2 checksum $O, secondo quanto esposto nella Tabella 1. Come vedete, $S è lo start bit e ogni stringa si chiude con l’end bit $O.

La Tabella 2 riporta invece i principali comandi da impartire al modulo, vale a dire quelli operativi che governano le funzioni di riproduzione dei brani; notate che i parametri sono presenti solo nei comandi che lo richiedono, come quelli che indicano la traccia da riprodurre, il livello del volume d’ascolto da impostare, ecc.

   Tabella 1 Sintassi dei comandi.

 

  Tabella 2 Comandi seriali riguardanti le funzioni di riproduzione.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Menu