Projet

Général

Profil

Wiki » Historique » Version 6

Thomas Trabattoni, 29/09/2014 13:59

1 1 Thomas Trabattoni
Wiki
2
====
3 2 Thomas Trabattoni
Pour avoir une sortie son de "qualité" sur un Raspberry Pi il existe deux grandes solutions
4
* un USB-DAC
5
* un I2S-DAC
6
7 4 Thomas Trabattoni
Afin d'avoir une solution entierement intégré, je vais couplé DAC + Ampli afin de pouvoir brancher les hauts parleurs sur la carte.
8
Intégrer aussi les étages alim', comme le projet HiFi Berry
9
http://www.hifiberry.com/amp
10
11 2 Thomas Trabattoni
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.
12
Exemple :
13
http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html
14
http://www.tjaekel.com/T-DAC/raspi.html
15 3 Thomas Trabattoni
16 4 Thomas Trabattoni
Fonctionnalitées :
17
----------------
18
19
* alimentation unique : récup' de PC portable ~18V DC
20
* Sortie stéreo : 8 ohms
21
* Ampli Classe D 2x25W
22
* DAC : 32 bit
23
24 5 Thomas Trabattoni
Voltage Regulator
25
-----------------
26
NCP1117 : Régulateur de Tension 20V to 3.3V et 5V 1A
27 6 Thomas Trabattoni
http://www.mouser.com/ds/2/308/NCP1117-D-81326.pdf
28 5 Thomas Trabattoni
29
30 3 Thomas Trabattoni
DAC (Digital Analogic Converter)
31
--------------------------------
32 1 Thomas Trabattoni
33 4 Thomas Trabattoni
J'en ai choisi un commandable chez Mouser, pas trop cher et facilement mis en oeuvre.
34
* DAC : PCM5100A
35
http://www.ti.com/lit/ds/symlink/pcm5100a.pdf
36
37 3 Thomas Trabattoni
Il utilise le bus I2S (Integrated Interchip Sound) en entrée et permet de sortir directement sur un ampli.
38 1 Thomas Trabattoni
39 4 Thomas Trabattoni
Ampli
40
-----
41
42
* Ampli Classe D 2x25W : TPA3123D2
43
http://www.ti.com/lit/ds/symlink/tpa3123d2.pdf
44
45 2 Thomas Trabattoni
Audio Synchrone ou Asynchrone
46
-----------------------------
47
48 1 Thomas Trabattoni
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.
49
Il faut donc rajouter un quartz au DAC.
50 3 Thomas Trabattoni
51
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)
52
53
Quartz
54
------
55
56
J'ai trouvé un très bon document présentant l'ensemble des oscillateurs existant (fichier)
57
Pour notre projet on a besoin d'un CXO (clock crystal oscillator) ou dérivé :
58
*l’oscillateur à quartz thermostaté pour éviter les dérives en température ou OCXO( owen controlled crystal oscillator)
59
*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
60
*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
61 1 Thomas Trabattoni
*l’oscillateur à quartz commandé en tension et compensé en température ou TCVCXO
62 3 Thomas Trabattoni
63 4 Thomas Trabattoni
Plus on descend dans la liste ci dessus plus 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
64 3 Thomas Trabattoni
http://www.mouser.fr/ProductDetail/Vectron/OX-2022-EAE-1080-49M1520000/?qs=lSMJe13TEyCqNSbGz7Syhw%3d%3d
65 1 Thomas Trabattoni
66 3 Thomas Trabattoni
Bus I2S
67
-------
68
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.
69
70
Circuit
71
-------
72 4 Thomas Trabattoni
Rien de plus simple, on suit les datasheet du constructeur.
73 3 Thomas Trabattoni
74
75
Biblio
76
------
77
Bus I2S
78
http://fr.wikipedia.org/wiki/I2S
79
80
GPIO Raspberry
81
http://elinux.org/RPi_Low-level_peripherals#P5_header
82
83
Branchement I2S sur Header P5
84
![](http://www.tjaekel.com/T-DAC/pictures/Rpi_P5_I2S_small.png)