Wiki » Historique » Révision 4
Révision 3 (Thomas Trabattoni, 15/05/2014 17:01) → Révision 4/9 (Thomas Trabattoni, 29/09/2014 13:32)
Wiki
====
Pour avoir une sortie son de "qualité" sur un Raspberry Pi il existe deux grandes solutions
* un USB-DAC
* un I2S-DAC
Afin d'avoir une solution entierement intégré, je vais couplé DAC + Ampli afin de pouvoir brancher les hauts parleurs sur la carte.
Intégrer aussi les étages alim', comme le projet HiFi Berry
http://www.hifiberry.com/amp
Il existe un certain nombre de projet décrivant l'une ou l'autre des solutions mais c'est moins fun que de le faire soi-même.
Exemple :
http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html
http://www.tjaekel.com/T-DAC/raspi.html
Fonctionnalitées :
----------------
* alimentation unique : récup' de PC portable ~18V DC
* Sortie stéreo : 8 ohms
* Ampli Classe D 2x25W
* DAC : 32 bit
DAC (Digital Analogic Converter)
--------------------------------
J'en ai choisi un commandable chez Mouser, pas trop cher et facilement mis Je suis parti sur celui qui m'a semblé avoir le meilleur compromis prix/qualité/simplicité de mise en oeuvre. C'est le ES9023 de chez ESS Technology.
* DAC : PCM5100A
http://www.ti.com/lit/ds/symlink/pcm5100a.pdf
Il utilise le bus I2S (Integrated Interchip Sound) en entrée et permet de sortir directement sur un ampli.
Ampli
-----
* Ampli Classe D 2x25W : TPA3123D2
http://www.ti.com/lit/ds/symlink/tpa3123d2.pdf
Audio Synchrone ou Asynchrone
-----------------------------
D'après les audiophiles, il vaut mieux avoir de l'audio asynchrone car on maitrise la stabilité de l'horloge, alors que celle que pourrait générer (bitbanging) le Raspberry ne serait pas assez stable.
Il faut donc rajouter un quartz au DAC.
Pour la fréquence de l'horloge, il faut se reporter p4 de la datasheet paragraphe **MCLK**. La fréquence du quartz est proportionnelle à la fréquence d'échantillonage que l'on veut convertir. Qui peut le plus peut le moins donc on va partir sur un quartz à 50MHz (valeur max du tableau)
Quartz
------
J'ai trouvé un très bon document présentant l'ensemble des oscillateurs existant (fichier)
Pour notre projet on a besoin d'un CXO (clock crystal oscillator) ou dérivé :
*l’oscillateur à quartz thermostaté pour éviter les dérives en température ou OCXO( owen controlled crystal oscillator)
*l’oscillateur à quartz compensé en température par un capteur de température ou TCXO( thermaly compensedcrystal oscillator) assurant une meilleure stabilité que le CXO avec une consommation plus faible que le OCXO
*l’oscillateur à quartz commandé en tension ou VCXO( voltage commandedcrystal oscillator), la tension de commande permettant de corriger la fréquence par un dispositif extérieur ou d’utiliser l’oscillateur dans une boucle à verrouillage de phase
*l’oscillateur à quartz commandé en tension et compensé en température ou TCVCXO
Plus on descend dans la liste ci dessus plus plsu les oscillateurs sont cher. Compte tenu de l'ampli et des enceintes que je vais mettre à la sortie, je vais me contenter d'un OCXO
http://www.mouser.fr/ProductDetail/Vectron/OX-2022-EAE-1080-49M1520000/?qs=lSMJe13TEyCqNSbGz7Syhw%3d%3d
Bus I2S
-------
Dans sa revision 2.0 le Raspberry à le bon gout de fournir les pins necessaire pour communiquer sur ce Bus (header P5) et Raspbian dans sa derniere version fourni le module noyau pour que ça marche.
Circuit
-------
Rien de plus simple, on suit les la datasheet du constructeur.
Quelque remarque :
* R9 OPEN : ça veut dire "pas besoin de R9"
* R8 : see p.9 for more details : en fait il faut aller voir page 10 et ça donne R8=130k si VCC = 3.6V ou R8=220k si VCC= 3.3V
Comme on va prendre l'alimentation sur le header P5 et qu'on va garder le circuit le plus simple possible, on va prendre R8 à 220k car on a que du 3.3V.
J'ai remplacé le VCC36 qui arrive sur la pin MUTE_B (pin 15) par la GPIO30 du Raspberry (pin 5 du Header 5) afin de pouvoir controler la fonction Mute depuis le Raspberry.
Biblio
------
Bus I2S
http://fr.wikipedia.org/wiki/I2S
GPIO Raspberry
http://elinux.org/RPi_Low-level_peripherals#P5_header
Branchement I2S sur Header P5
![](http://www.tjaekel.com/T-DAC/pictures/Rpi_P5_I2S_small.png)
ES9023 Datasheet
http://myl8test.files.wordpress.com/2013/05/es9023-datasheet.pdf
====
Pour avoir une sortie son de "qualité" sur un Raspberry Pi il existe deux grandes solutions
* un USB-DAC
* un I2S-DAC
Afin d'avoir une solution entierement intégré, je vais couplé DAC + Ampli afin de pouvoir brancher les hauts parleurs sur la carte.
Intégrer aussi les étages alim', comme le projet HiFi Berry
http://www.hifiberry.com/amp
Il existe un certain nombre de projet décrivant l'une ou l'autre des solutions mais c'est moins fun que de le faire soi-même.
Exemple :
http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html
http://www.tjaekel.com/T-DAC/raspi.html
Fonctionnalitées :
----------------
* alimentation unique : récup' de PC portable ~18V DC
* Sortie stéreo : 8 ohms
* Ampli Classe D 2x25W
* DAC : 32 bit
DAC (Digital Analogic Converter)
--------------------------------
J'en ai choisi un commandable chez Mouser, pas trop cher et facilement mis Je suis parti sur celui qui m'a semblé avoir le meilleur compromis prix/qualité/simplicité de mise en oeuvre. C'est le ES9023 de chez ESS Technology.
* DAC : PCM5100A
http://www.ti.com/lit/ds/symlink/pcm5100a.pdf
Il utilise le bus I2S (Integrated Interchip Sound) en entrée et permet de sortir directement sur un ampli.
Ampli
-----
* Ampli Classe D 2x25W : TPA3123D2
http://www.ti.com/lit/ds/symlink/tpa3123d2.pdf
Audio Synchrone ou Asynchrone
-----------------------------
D'après les audiophiles, il vaut mieux avoir de l'audio asynchrone car on maitrise la stabilité de l'horloge, alors que celle que pourrait générer (bitbanging) le Raspberry ne serait pas assez stable.
Il faut donc rajouter un quartz au DAC.
Pour la fréquence de l'horloge, il faut se reporter p4 de la datasheet paragraphe **MCLK**. La fréquence du quartz est proportionnelle à la fréquence d'échantillonage que l'on veut convertir. Qui peut le plus peut le moins donc on va partir sur un quartz à 50MHz (valeur max du tableau)
Quartz
------
J'ai trouvé un très bon document présentant l'ensemble des oscillateurs existant (fichier)
Pour notre projet on a besoin d'un CXO (clock crystal oscillator) ou dérivé :
*l’oscillateur à quartz thermostaté pour éviter les dérives en température ou OCXO( owen controlled crystal oscillator)
*l’oscillateur à quartz compensé en température par un capteur de température ou TCXO( thermaly compensedcrystal oscillator) assurant une meilleure stabilité que le CXO avec une consommation plus faible que le OCXO
*l’oscillateur à quartz commandé en tension ou VCXO( voltage commandedcrystal oscillator), la tension de commande permettant de corriger la fréquence par un dispositif extérieur ou d’utiliser l’oscillateur dans une boucle à verrouillage de phase
*l’oscillateur à quartz commandé en tension et compensé en température ou TCVCXO
Plus on descend dans la liste ci dessus plus plsu les oscillateurs sont cher. Compte tenu de l'ampli et des enceintes que je vais mettre à la sortie, je vais me contenter d'un OCXO
http://www.mouser.fr/ProductDetail/Vectron/OX-2022-EAE-1080-49M1520000/?qs=lSMJe13TEyCqNSbGz7Syhw%3d%3d
Bus I2S
-------
Dans sa revision 2.0 le Raspberry à le bon gout de fournir les pins necessaire pour communiquer sur ce Bus (header P5) et Raspbian dans sa derniere version fourni le module noyau pour que ça marche.
Circuit
-------
Rien de plus simple, on suit les la datasheet du constructeur.
Quelque remarque :
* R9 OPEN : ça veut dire "pas besoin de R9"
* R8 : see p.9 for more details : en fait il faut aller voir page 10 et ça donne R8=130k si VCC = 3.6V ou R8=220k si VCC= 3.3V
Comme on va prendre l'alimentation sur le header P5 et qu'on va garder le circuit le plus simple possible, on va prendre R8 à 220k car on a que du 3.3V.
J'ai remplacé le VCC36 qui arrive sur la pin MUTE_B (pin 15) par la GPIO30 du Raspberry (pin 5 du Header 5) afin de pouvoir controler la fonction Mute depuis le Raspberry.
Biblio
------
Bus I2S
http://fr.wikipedia.org/wiki/I2S
GPIO Raspberry
http://elinux.org/RPi_Low-level_peripherals#P5_header
Branchement I2S sur Header P5
![](http://www.tjaekel.com/T-DAC/pictures/Rpi_P5_I2S_small.png)
ES9023 Datasheet
http://myl8test.files.wordpress.com/2013/05/es9023-datasheet.pdf