Skyduino:~#
Articles
test

[Test] Breakout VS1053B (sparkfun)

Bonjour tout le monde !

Aujourd’hui je vous ai préparez un article sur la breakout VS1053B de sparkfun.
Ceux qui suivent mon compte twitter aurons déja eux un aperçu de ce que cette breakout peut faire, mais quoi qu’il en soit voici le test complet.

Ps: Le prochain article comportera un exemple d’utilisation, avec code, schéma, images, vidéo, et tout ce qui va bien 😉

Tout d’abord, le chipset VS1053B :

Avant parler de la breakout en elle même je voudrai vous parler un peu du chipset VS1053B (du fabricant VLSI pour ceux que ça intéresseraient).
Sous ce nom mystérieux ce cache en réalité un puissant chipset audio basé sur un processeur DSP propriétaire (et oui malheureusement), capable de lire de nombreux formats de fichier audio.

Voici une petite liste (non exhaustive) des formats audio accepté par le VS1053B :
Ogg Vorbis
MP3 (MPEG 1 & 2 audio layer)
WMA 4.0/4.1/7/8/9
General MIDI 1 / SP-MIDI 0
WAV

Remarque : Le VS1053B peut aussi enregistrer (depuis l’entrée « mic » ou « line ») du son au format Ogg vorbis !

En sortie le VS1053B génère un son de qualité CD, au volume modifiable en temps réels de manière fluide et peut même être relié à un haut parleur de 30ohms sans avoir besoin d’un amplificateur en sortie.

Le VS1053B comme tout les chipsets de la série VS10xx (rétro compatible entre eux) se controle via deux ports, un port SPI et un port série.
A cela s’ajoute une série de broches permettant de choisir le mode de fonctionnement, le type de données transmit (données ou commandes) et une broche de synchronisation permettant au microcontrôleurs maitre de savoir quand envoyer les données / commandes.

Il est donc possible de concevoir un systéme capable de lire des fichiers audio à moindre cout même avec un microcontrôleurs très basique, tant que celui ci comporte suffisamment de broches GPIO et un port SPI.

Pour avoir tout les détails du hardware il suffit de faire un petit tour du côté du datasheet 😉
http://www.vlsi.fi/fileadmin/datasheets/vlsi/vs1053.pdf

La breakout :

La breakout VS1053B en question est une carte conçu et commercialisé par sparkfun (je précise car il y en a énormément de version différentes, que ce soit des versions chinoise ou autre).

Cette carte est relativement simple, un étage de régulation 5v -> 3v3, un quartz et un chipset audio VS10xx, ni plus, ni moins.
Il existe aussi des versions shield arduino avec un slot pour carte µSD, une prise jack et tout le bouzin … mais je préfère de loin cette version breakout qui peut être intégré dans n’importe quel projet.

Contrairement à la version shield, sur cette breakout il n’y as pas de prise jack audio, ce qui est un peu dommage mais permet d’inclure la carte dans n’importe quel circuit.
Le gros avantage étant de pouvoir faire ce que l’on veut avec le VS1053B puisque IO0 et IO1 (choix du mode de fonctionnement) sont libres d’utilisation.

C’est une question de gouts: breakout = portabilité ou shield = simplicité, faites votre choix 😉

La breakout comporte un certain nombre de broches répartis sur trois connecteurs (non inclut d’origine, j’ai ici choisi de souder deux rangées vertical et une rangée horizontal de connecteurs).

Je ne vais pas toutes les détailler, voici les broches les plus importantes :
VCC & GND : broches d'alimentation +5v et masse
RST : broche RESET (active à LOW)
Rx & Tx : port série
SO & SI & SCLK : port SPI
IO0 & IO1 : choix du mode de fonctionnement
LEFT & RIGHT & GBUF : sortie audio gauche / droite / commun (masse analogique)
CS : Chip select du mode "commandes"
BSYNC : Chip select du mode "données"
DREQ : Cette broche passe à LOW quand le VS1053B à besoin de la suite des données / commandes à décoder / suivre

Petite remarque personnelle : bien que les deux rangées parallèle soit au pas 2.54mm il est difficile (voir impossible) d’utiliser cette breakout sur une breadboard « classique » de par sa taille.
Pas de probléme cependant avec une « plaque à trou » de prototypage qui ne comporte pas de rails d’alimentation contrairement aux breadboard.

Humm … Je n’est pas vraiment grand chose d’autre à rajouter sur le hardware.

Quoi que …
Je reste impressionné par le nombres de via présent sur la carte.
Elle a beau comporter un nombre très limité de composants je n’arrive toujours pas à croire qu’il y est 75 via …

Jugez par vous même :

Conclusion (oui déja) :
Le chipset VS1053B est vraiment puissant, j’ai pour le moment réussi à lire des fichiers MP3 de plusieurs Mo sans probléme avec une fluidité parfaite.
J’ai eu cependant un peu plus de mal avec les fichiers WAV, les fonctions digitalRead et digitalWrite étant un peu trop lente pour que la lecture soit fluide …
(Mais n’ayez crainte il existe de nombreuse solutions à ce probléme, comme digitalWriteFast par exemple ;))

Si vous êtes intéressé par la lecture de fichiers audio, cette breakout (ou sa version shield) est un « must have » !
Comme je le précisai en introduction je publierai sous peu mon code d’exemple pour la lecture de fichier MP3.
J’ai repris le code d’exemple de sparkfun à ma sauce en y intégrant la lecture depuis une carte SD.

Discussion

Les commentaires sont fermés.

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.