Modérateurs: Modération Forum Home-Cinéma, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 42 invités

Toutes les solutions à base d'ordinateur (PC, Mac, Linux...)

Transport audio externe vers DAC

Message » 29 Oct 2010 18:33

Il n'est pas question de dire que ton DAC n'est pas parfaitement implémenté, il l'est correctement, comme tout DAC de ce type.
Et, petite parenthèse, loin de moi l'idée de dire qu'un DAC asynchrone est la panacée:
vaut il mieux un DAC synchrone, sensible au jitter mais pourvu d'un DAC de course et d'une sortie analogique aux petits oignons, ou un DAC asynchrone, insensible au jitter, mais pourvu d'un DAC moins performant ou d'un étage audio moins chiadé ?

Par contre, il est vrai que dans un environnement "source informatique", qui induit structurellement "jitter", "drift" et autres "drops", un DAC asynchrone semble à priori plus adapté . Mais à posteriori, seules des écoutes comparatives peuvent le prouver ou le nier, la seule interface PC / DAC n'étant pas un critère suffisant de qualité...

Comment fonctionne la PLL s'il n'y a pas de référence locale? Elle ne fonctionne pas, tout simplement, et reste "unlockée". Et l'horloge est le pur fruit de la reconstitution de l'horloge au travers de l'extraction faite par le CS8416 via sa partie "Clock & Data Recovery" que tu peux voir sur le schéma interne du circuit en page 1 de sa datasheet.

Cette circuiterie est toujours active et permet à partir du simple flux de données SPDIF, de sortir les données et reconstituer l'horloge qui a servi à les envoyer. Ensuite:
- si la PLL est inactive, l'horloge reconstituée devient la référence (donc c'est le cas au dessus de 48kHz).
- si la PLL est active, l'horloge reconstituée est envoyée, toute comme la référence (issue de l'oscillateur), à la PLL qui les compare et asservie la seconde à la première.

Pour s'affranchir totalement du jitter en SPDIF, il faut aussi un DAC "asynchrone". Il peut utiliser un circuit type CS8416 doté de sa PLL pour, tu l'as bien compris, garantir la synchro et limiter les risques de pertes de données, mais au lieu d'attaquer directement le DAC, il enverra ses données par exemple à un petit microcontroleur doté d'un buffer, qui pourra par exemple emmagasiner une seconde de flux audio avant de commencer à le renvoyer vers le DAC doté d'une horloge précise et stable...
gerardfma
 
Messages: 290
Inscription Forum: 23 Nov 2006 14:46
Localisation: Isere
  • offline

Message » 29 Oct 2010 19:34

Je suis parfaitement d'accord avec ton résumé, en particulier que la partie conversion du DAC plus etage analogique est certainement la plus importante.
Le sujet du fil étant le transport du flux vers le DAC, ce qui nous importe est surtout de savoir quel est le meilleur moyen d'y arriver. Il va de soit qu'un transfert asynchrone avec correction et renvoie des erreurs est le plus adapté.

gerardfma a écrit:- si la PLL est inactive, l'horloge reconstituée devient la référence (donc c'est le cas au dessus de 48kHz).
- si la PLL est active, l'horloge reconstituée est envoyée, toute comme la référence (issue de l'oscillateur), à la PLL qui les compare et asservie la seconde à la première.

Ce n'est toujours pas claire pour moi : je pensait que c'était justement la PLL qui permettait de reconstituer le signal d'horloge du SPDIF. de même si la PLL les compare pour asservir l'un à l'autre, la résultante (celle qui sort) est égale à laquelle, si elle est egale à l'une ou l'autre :o ? Au départ, j'avais compris que la PLL detectait les inversions de phase, ce qui lui permettait de recréer l'horloge et de travailler au même "rythmne" que l'arrivée des données. Je ne comprends pas l'interet d'utiliser une autre horloge : d'ailleur au dessus de 48khz, il ne l'utilise pas et en 192khz, l'oscillateur devient inutile. J'aimerais bien comprendre :wink: ...
robob
 
Messages: 5925
Inscription Forum: 21 Mar 2007 19:23
Localisation: 95 (coté campagne)
  • offline

Message » 30 Oct 2010 1:35

robob a écrit:
mulciber a écrit:C'est bien ce que je pensais, le discourt sur l'asservissement PPL qui permet s'affranchir du jitter de la source est une demie vérité, c'est surement nécessaire mais pas suffisant.


Ce n'est pas une demi vérité, c'est une bétise : j'ai du mal m'exprimer si tu as compris ça dans mes propos. La PLL permet de récupérer le signal d'horloge SPDIF de la source et ainsi de cadencer le recepteur sur ce signal pour ne pas louper de données en étant parfaitement synchrone (signal SPDIF synchrone).


Ma remarque faisait plutôt référence à certain constructeur de DAC qui explique que la synchro externe est inutile car il utilise l'asservissement PLL.
mulciber
 
Messages: 742
Inscription Forum: 24 Juin 2001 2:00
Localisation: Du coté de Versailles
  • offline

Message » 30 Oct 2010 9:07

Oui manifestement tout est là : comment recadencent-t'ils le DAC derriere la PLL ? La suite aux prochaines explications :wink: ...
robob
 
Messages: 5925
Inscription Forum: 21 Mar 2007 19:23
Localisation: 95 (coté campagne)
  • offline

Message » 30 Oct 2010 10:10

robob a écrit:Ce n'est toujours pas claire pour moi : je pensait que c'était justement la PLL qui permettait de reconstituer le signal d'horloge du SPDIF. de même si la PLL les compare pour asservir l'un à l'autre, la résultante (celle qui sort) est égale à laquelle, si elle est egale à l'une ou l'autre :o ? Au départ, j'avais compris que la PLL detectait les inversions de phase, ce qui lui permettait de recréer l'horloge et de travailler au même "rythmne" que l'arrivée des données. Je ne comprends pas l'interet d'utiliser une autre horloge : d'ailleur au dessus de 48khz, il ne l'utilise pas et en 192khz, l'oscillateur devient inutile. J'aimerais bien comprendre :wink: ...


La PLL n'est pas là pour "détecter les inversions de phase et recréer l'horloge", ça c'est le role comme je l'ai déjà mentionné de la circuiterie de "Data and Clock Recovery". Une fois cette horloge recréée à partir du flux SPDIF, 2 cas, soit on travaille avec une référence locale, soit pas.

Sans référence locale: l'horloge recréée cadence les échanges entre CS8416 et PCM1798. Toute perte de synchro SPDIF se traduit par une perte de synchro CS/PCM, et le PCM prendra une action du type "je maintiens la valeur du dernier échantillon reçu", donc maintien de la tension de sortie, donc distortion...

Avec référence locale: la PLL entre en oeuvre et via un VCO (voltage control oscillateur = oscillateur dont la fréquence dépend d'une tension appliquée) dont la tension est proportionelle à l'écart entre fréquence de référence et fréquence reçue, on controle l'horloge locale. La fréquence locale (fréquence de référence divisée par la bonne valeur pour avoir l'horloge requise, par exemple 44.1kHz) est donc "modulée" par ce VCO pour rester en parfaite synchro avec le flux SPDIF.
Mais tu me diras, si on perd la synchro SPDIF, on se retrouve bien dans le cas précédent? Non car dans ce cas, on a une fréquence locale issue de la fréquence de référence, qui prend le relais et permet de rendre invisibles certaines pertes d'horloge de durée limitée, ce qui ne peut être le cas sans référence locale puisque là l'horloge s'arrête... mais ça a bien sur ses limites, si la perte d'horloge dépasse la durée correspondant à la trame qui est dans le buffer...
gerardfma
 
Messages: 290
Inscription Forum: 23 Nov 2006 14:46
Localisation: Isere
  • offline

Message » 01 Nov 2010 10:34

gerardfma a écrit:
Pour s'affranchir totalement du jitter en SPDIF, il faut aussi un DAC "asynchrone". Il peut utiliser un circuit type CS8416 doté de sa PLL pour, tu l'as bien compris, garantir la synchro et limiter les risques de pertes de données, mais au lieu d'attaquer directement le DAC, il enverra ses données par exemple à un petit microcontroleur doté d'un buffer, qui pourra par exemple emmagasiner une seconde de flux audio avant de commencer à le renvoyer vers le DAC doté d'une horloge précise et stable...


Avec un buffer d'une seconde tu vas avoir des problèmes avec la video le son sera désynchronisé de l'image? Il ne doit pas y avoir des masses de DAC qui bufferisent et s"il le font cela doit être fait sur quelque milliseconde.
mulciber
 
Messages: 742
Inscription Forum: 24 Juin 2001 2:00
Localisation: Du coté de Versailles
  • offline

Message » 01 Nov 2010 12:23

mulciber a écrit:Avec un buffer d'une seconde tu vas avoir des problèmes avec la video le son sera désynchronisé de l'image? Il ne doit pas y avoir des masses de DAC qui bufferisent et s"il le font cela doit être fait sur quelque milliseconde.


Vu que le décallage eventuel d'horloge entre la source et le DAC doit se compter en nano-seconde, il doit suffir d'un buffer tres faible (c'est pourquoi je pensais qu'un buffer contenant 1 ou 2 samples, comme celui du recepteur devait suffir). De plus s'il s'agit de flux audio/video, les players et/ou leurs codec permettrons de rattraper se décallage. Mais en cas d'utilisation d'un DAC externe, à part quelques originaux comme moi qui sortent du multicanal sur deux DAC stéréo :mdr: , il s'agit surtout de stéréo sans vidéo, enfin de HIFI, bref sans grand soucis de latence.
robob
 
Messages: 5925
Inscription Forum: 21 Mar 2007 19:23
Localisation: 95 (coté campagne)
  • offline

Message » 01 Nov 2010 12:50

gerardfma a écrit:La PLL n'est pas là pour "détecter les inversions de phase et recréer l'horloge", ça c'est le role comme je l'ai déjà mentionné de la circuiterie de "Data and Clock Recovery". Une fois cette horloge recréée à partir du flux SPDIF, 2 cas, soit on travaille avec une référence locale, soit pas.

Sans référence locale: l'horloge recréée cadence les échanges entre CS8416 et PCM1798. Toute perte de synchro SPDIF se traduit par une perte de synchro CS/PCM, et le PCM prendra une action du type "je maintiens la valeur du dernier échantillon reçu", donc maintien de la tension de sortie, donc distortion...

S'il n'y a pas de référence locale (comme dans le cas de mon DAC au dessus de 48khz), cela veut dire que l'horloge du DAC est recrée par le "data and clock recovery" sur le signal SPDIF et donc son horloge (donc sur l'horloge de la source plus le jitter associé au cable). comment une perte de synchro peut-elle se produire dans ce cas ? je pensais justement que c'était dans ce cas que le signal était integre mais pouvait souffrir d"'irrégularité d'horloge", soit de la source soit du glissement de phase dus à la longueur du cable -jitter-.
Avec référence locale: la PLL entre en oeuvre et via un VCO (voltage control oscillateur = oscillateur dont la fréquence dépend d'une tension appliquée) dont la tension est proportionelle à l'écart entre fréquence de référence et fréquence reçue, on controle l'horloge locale. La fréquence locale (fréquence de référence divisée par la bonne valeur pour avoir l'horloge requise, par exemple 44.1kHz) est donc "modulée" par ce VCO pour rester en parfaite synchro avec le flux SPDIF.

Je ne comprends pas : pourquoi utiliser une horloge locale précise qui va être modulée pour coller à l'horloge SPDIF ? Pourquoi utiliser une horloge locale qui va se synchroniser avec le SPDIF alors que le "data clock recovery" fait la même chose sans avoir besoin d'horloge ?
Mais tu me diras, si on perd la synchro SPDIF, on se retrouve bien dans le cas précédent? Non car dans ce cas, on a une fréquence locale issue de la fréquence de référence, qui prend le relais et permet de rendre invisibles certaines pertes d'horloge de durée limitée, ce qui ne peut être le cas sans référence locale puisque là l'horloge s'arrête... mais ça a bien sur ses limites, si la perte d'horloge dépasse la durée correspondant à la trame qui est dans le buffer...
robob
 
Messages: 5925
Inscription Forum: 21 Mar 2007 19:23
Localisation: 95 (coté campagne)
  • offline

Message » 01 Nov 2010 16:35

robob a écrit:
mulciber a écrit:Avec un buffer d'une seconde tu vas avoir des problèmes avec la video le son sera désynchronisé de l'image? Il ne doit pas y avoir des masses de DAC qui bufferisent et s"il le font cela doit être fait sur quelque milliseconde.


Vu que le décallage eventuel d'horloge entre la source et le DAC doit se compter en nano-seconde, il doit suffir d'un buffer tres faible (c'est pourquoi je pensais qu'un buffer contenant 1 ou 2 samples, comme celui du recepteur devait suffir). De plus s'il s'agit de flux audio/video, les players et/ou leurs codec permettrons de rattraper se décallage. Mais en cas d'utilisation d'un DAC externe, à part quelques originaux comme moi qui sortent du multicanal sur deux DAC stéréo :mdr: , il s'agit surtout de stéréo sans vidéo, enfin de HIFI, bref sans grand soucis de latence.


Pas pour moi, je suis en stéréo et mon pc servant de lecteur multimédia hifi et video par le même DAC.
Dernière édition par mulciber le 02 Nov 2010 8:16, édité 1 fois.
mulciber
 
Messages: 742
Inscription Forum: 24 Juin 2001 2:00
Localisation: Du coté de Versailles
  • offline

Message » 01 Nov 2010 20:52

mulciber a écrit:
gerardfma a écrit:
Pour s'affranchir totalement du jitter en SPDIF, il faut aussi un DAC "asynchrone". Il peut utiliser un circuit type CS8416 doté de sa PLL pour, tu l'as bien compris, garantir la synchro et limiter les risques de pertes de données, mais au lieu d'attaquer directement le DAC, il enverra ses données par exemple à un petit microcontroleur doté d'un buffer, qui pourra par exemple emmagasiner une seconde de flux audio avant de commencer à le renvoyer vers le DAC doté d'une horloge précise et stable...


Avec un buffer d'une seconde tu vas avoir des problèmes avec la video le son sera désynchronisé de l'image? Il ne doit pas y avoir des masses de DAC qui bufferisent et s"il le font cela doit être fait sur quelque milliseconde.


Le sujet c'est la connexion d'un PC vers un DAC, et vu les débats sur le jitter, j'imagine qu'on parle là "audiophilie", donc point de problèmes de synchro son et image. J'ai écrit une seconde, comme j'aurais écrit deux ... mais pas une milliseconde, ce qui est bien trop peu pour une bufferisation sur du SPDIF vu le "protocole" utilisé et la notion de "trames". Cela étant peu importe la valeur, ce que je voulais souligner c'était une "méthode", un "principe", pour atteindre l'objectif de la question soulevée par robob.


robob a écrit:
gerardfma a écrit:La PLL n'est pas là pour "détecter les inversions de phase et recréer l'horloge", ça c'est le role comme je l'ai déjà mentionné de la circuiterie de "Data and Clock Recovery". Une fois cette horloge recréée à partir du flux SPDIF, 2 cas, soit on travaille avec une référence locale, soit pas.

Sans référence locale: l'horloge recréée cadence les échanges entre CS8416 et PCM1798. Toute perte de synchro SPDIF se traduit par une perte de synchro CS/PCM, et le PCM prendra une action du type "je maintiens la valeur du dernier échantillon reçu", donc maintien de la tension de sortie, donc distortion...


S'il n'y a pas de référence locale (comme dans le cas de mon DAC au dessus de 48khz), cela veut dire que l'horloge du DAC est recrée par le "data and clock recovery" sur le signal SPDIF et donc son horloge (donc sur l'horloge de la source plus le jitter associé au cable). comment une perte de synchro peut-elle se produire dans ce cas ? je pensais justement que c'était dans ce cas que le signal était integre mais pouvait souffrir d"'irrégularité d'horloge", soit de la source soit du glissement de phase dus à la longueur du cable -jitter-.


Autant pour moi, je suis allé un peu vite en besogne en écrivant cela, mais certes il ne peut y avoir de perte de synchro au sens "synchro data/horloge" permettant d'extraire les données correctement, mais il peut y avoir comme tu dis "irrégularité" d'horloge, et ce n'est pas parce qu'on reçoit potentiellement toutes les données qu'on est en capacité de les envoyer à la bonne vitesse au DAC, et donc la "distortion" que je mentionne est bien celle issue de ce problème de cadencement du DAC.


robob a écrit:
Avec référence locale: la PLL entre en oeuvre et via un VCO (voltage control oscillateur = oscillateur dont la fréquence dépend d'une tension appliquée) dont la tension est proportionelle à l'écart entre fréquence de référence et fréquence reçue, on controle l'horloge locale. La fréquence locale (fréquence de référence divisée par la bonne valeur pour avoir l'horloge requise, par exemple 44.1kHz) est donc "modulée" par ce VCO pour rester en parfaite synchro avec le flux SPDIF.


Je ne comprends pas : pourquoi utiliser une horloge locale précise qui va être modulée pour coller à l'horloge SPDIF ? Pourquoi utiliser une horloge locale qui va se synchroniser avec le SPDIF alors que le "data clock recovery" fait la même chose sans avoir besoin d'horloge ?


Vu coté extraction des données du flux SPDIF, c'est vrai. Vu coté envoi des données ver le DAC, sans horloge locale, on est tributaire à 100% de la précision de l'horloge SPDIF, alors qu'avec une horloge locale, on peut dans une certaine mesure, compenser les variation de celle-ci
gerardfma
 
Messages: 290
Inscription Forum: 23 Nov 2006 14:46
Localisation: Isere
  • offline

Message » 02 Nov 2010 10:47

Salut,
Désolé pour les lecteurs du forum si le débat semble interminable, mais j'ai tout de même l'impression qu'on met le doigt sur un point cruciale concernant la question du jitter et de la précision de l'horloge lors du transfert. Cela depend du mode de fonctionement du DAC, il faut donc bien comprendre comment fonctionne ce dernier.

gerardfma a écrit:Vu coté extraction des données du flux SPDIF, c'est vrai. Vu coté envoi des données ver le DAC, sans horloge locale, on est tributaire à 100% de la précision de l'horloge SPDIF, alors qu'avec une horloge locale, on peut dans une certaine mesure, compenser les variation de celle-ci


Cela veut-il dire que mon DAC fonctionne en 44.1 khz avec le recepteur CS8416 en mode esclave ? l'horloge locale est active et recadence les données en sortie du CS8416. Si les horloges ne sont pas en phase et que le buffer n'a pas été rempli, alors le recepteur repete la donnée précédente (comme je l'ai ecris au milieu de la page 6 en citant le datasheet).

Si c'est le cas, cela ammene une autre question : qu'est-ce qui crée la distorsion à l'écoute ? est-ce :

1- mode master du recepteur : Le recepteur se cale sur l'horloge SPDIF. L'irrégularité d'horloge du flux de données à l'entrée du convertisseur crée, en sortie d'étage d'amplification du DAC, la distortion. Les données, elles même, sont correctes (bit-perfect).
ou
2- mode esclave du recepteur : Le recepteur cale sa sortie sur l'horloge locale. A cause des différences d'horloge, il peut y avoir des données loupées. Le fait qu'il y a de temps en temps une donnée répétée (ou sautée) dans le flux parfaitement régulier entrant dans le convertisseur crée la distortion.

ou les deux :-? mais je crois bien que c'est le 1.
Dernière édition par robob le 02 Nov 2010 15:43, édité 1 fois.
robob
 
Messages: 5925
Inscription Forum: 21 Mar 2007 19:23
Localisation: 95 (coté campagne)
  • offline

Message » 02 Nov 2010 13:19

robob a écrit:Salut,
Désolé pour les lecteurs du forum si le débat semble interminable, mais j'ai tout de même l'impression qu'on met le doigt sur un point cruciale concernant la question du jitter et de la précision de l'horloge lors du transfert. Cela depend du mode de fonctionement du DAC, il faut donc bien comprendre comment fonctionne ce dernier.

gerardfma a écrit:Vu coté extraction des données du flux SPDIF, c'est vrai. Vu coté envoi des données ver le DAC, sans horloge locale, on est tributaire à 100% de la précision de l'horloge SPDIF, alors qu'avec une horloge locale, on peut dans une certaine mesure, compenser les variation de celle-ci


Cela veut-il dire que mon DAC fonctionne en 44.1 khz avec le recepteur CS8416 en mode esclave ? l'horloge locale est active et recadence les données en sortie du CS8416. Si les horloges ne sont pas en phase et que le buffer n'a pas été rempli, alors le recepteur repete la donnée précédente (comme je l'ai ecris au milieu de la page 6 en citant le datasheet).

Si c'est le cas, cela ammene une autre question : qu'est-ce qui crée la dirstorsion à l'écoute ? est-ce :

1- mode master du recepteur : Le recepteur se cale sur l'horloge SPDIF. L'irrégularité d'horloge du flux de données à l'entrée du convertisseur crée, en sortie d'étage d'amplification du DAC, la distortion. Les données, elles même, sont correctes (bit-perfect).
ou
2- mode esclave du recepteur : Le recepteur cale sa sortie sur l'horloge locale. A cause des différences d'horloge, il peut y avoir des données loupées. Le fait qu'il y a de temps en temps une donnée répétée (ou sautée) dans le flux parfaitement régulier entrant dans le convertisseur crée la distortion.

ou les deux :-? mais je crois bien que c'est le 1.


Les tests que j'ai fait montre que l'idéal serait le mode master du recepteur avec synchronisation de la source sur le recepteur.

Je peux pas le faire avec les dynaudio car elles non pas de sortie clock.
mulciber
 
Messages: 742
Inscription Forum: 24 Juin 2001 2:00
Localisation: Du coté de Versailles
  • offline

Message » 05 Nov 2010 19:07

@gerardfma
J'ai le schema de mon DAC, si ça peut aider. :wink:
robob
 
Messages: 5925
Inscription Forum: 21 Mar 2007 19:23
Localisation: 95 (coté campagne)
  • offline

Message » 15 Nov 2010 15:11

Une implémentation tout ce qu'il y a de plus classique :P

Tu peux voir que l'oscillateur U8 sort sur sa broche 5 le signal d'horloge "CLK". Il est routé vers U1, le CS8416, en broche 25 "OMCK", et sert donc d'horloge de référence à 11.2896MHz.

A partir de là, et du calage sur l'horloge extraite du flux SPDIF, le CS8416 cadence les échanges par sa sortie "RMCK", broche 24, envers U2, le PCM1798, sur sa broche 7, "SCK".
Les données sérielles, transmises via "SDOUT", broche 26 de U1, sont synchronisées par "LRCK" (horloge "word", une transition à chaque changement de valeur "canal droit", "canal gauche", "canal droit", etc...) et "BCK" (horloge "bits", un coup d'horloge à chaque bit transmis).

Comme tu pourras le voir, la broche "SDOUT" a une resistance de "pull down", R31, qui met le CS8416 en "mode hardware" (donc autonome, non pas programmé, avec par exemple un microcontroleur qui le pilote, ce qui serait le cas par exemple dans une implémentation "asynchrone"). Dans ce mode, l'horloge "OMCK" (donc celle issue de l'oscillateur) ne peut jamais sortir en direct sur "RMCK". L'horloge du DAC est donc toujours soit purement issue du flux SPDIF (si f > 48kHz), soit issue de la synchronisation par la PLL (si f = 44.1kHz).
gerardfma
 
Messages: 290
Inscription Forum: 23 Nov 2006 14:46
Localisation: Isere
  • offline

Message » 16 Nov 2010 18:10

Très intéressant, tout ça.
...L'horloge du DAC est donc toujours soit purement issue du flux SPDIF (si f > 48kHz), soit issue de la synchronisation par la PLL (si f = 44.1kHz).

Dans le deuxième cas, il me semblait avoir compris que l'horloge en sortie de la PLL (destinée au DAC) était en fait issue de l'oscillateur local asservi 'long terme' sur le signal entrant, de sorte que le jitter (du signal entrant) est éliminé tout en conservant la synchronisation.
Denis31
Pro-Fabricant
Pro-Fabricant
 
Messages: 4527
Inscription Forum: 16 Sep 2005 9:50
Localisation: Toulouse
  • offline


Retourner vers Matériel PC Home-cinéma

 
  • Articles en relation
    Dernier message