Étape 4:.. .adding un I2S convertisseur...
En regardant les fiches techniques encore une fois j’ai remarqué que l’I2S sortie (en fait j’ai regarder la documentation de la puce utilisée dans le projet HifiBerry dont je me sers le conducteur, la puce est un pcm5102) de l’IPD est légèrement différente de ce qu’attend la puce oversampler. En général le signal I2S « standard » retarde l’horloge données derrière le signal de LR. Comment compenser cela ?
Il y a deux façons d’aborder ce :
1. programmer un pilote de noyau qui ne retarde pas les données. Le pilote de pcm5102 définit explicitement le retard de données à 1 dans le registre de la TXC_A du moteur SGBT PCM (documentation ici page 119 +). Changer cela à 0 devrait le faire. Mais je n’aime pas à compiler un noyau de RPI maintenant...
2. construire une logique vintage pour le faire, c’est la façon dont je l’aime:) YEAH
Voici une représentation schématique...
L’idée est de retarder les données par 1 et la LR signal par 2, cela déplace les données vers l’avant dans le temps (par rapport au signal LR) afin qu’ils s’alignent comme voulu. Pour ce faire, il faut 3 x D-tongs et un onduleur pour l’horloge. J’ai trouvé 2 x 4035 et 4001 dans ma collection de puce vintage, ces (pourrait aussi sera construit avec 7474 / 74174 et quelques autres ICs).
Le 4035 est un registre à décalage polyvalent 4 bits (ce qui a 4 tongs en ligne) 4001 est un 4 x, ni qui agit comme l’onduleur, puis les entrées sont serrées ensemble.
J’utilise un 4035 de transférer les données et l’autre à décaler le LR. Les sorties Q1-Q4 montrera l’entrée retardée par des horloges de 1-4 (l’entrée est déplacée à travers le registre, c’est que font de registres à décalage). Alors l’oversampler obtient ses nouvelles données du 1er trimestre de la manette de données et LR de Q2 de la manette de LR. Simple n’est-il pas ? L’oversampler obtient l’horloge inversée (sorte de retardé par cycle d’horloge 1/2) Ceci est nécessaire parce que le levier de vitesses a besoin de temps d’horloge dans les données et de fournir un rendement stable.
Les Images montrent le signal LR original et différé, signal d’horloge, analogique, de sortie avec fissuration.
Résultat...
Oui, cela ressemble à la musique.
Encore un peu cracky (~ 50Hz tock tock) - pourrait être une dérive de l’horloge, étudier plus tard...
Comment ça sonne ?
Un peu bruyant dans les médiums et les hauteurs - pourrait être le casque, la build dans l’ampli casque est un peu bruyante à mon goût et mon casque. Enquête sur...
Réduit le volume des HP, ai-je mentionné que le PCB a un espace pour un potentiomètre de volume. J’ai inséré 4 résistances qui baissez le volume un peu.
Accent ?
Qui en soi est une entaille de la vieille école, mis en place pour surmonter les limites de la vieille 14 bit DACs. Il fonctionne un peu comme le Dolby, suppression du bruit, lors de l’enregistrement, vous ajoutez le bruit, lors de la lecture vous retirer et le bruit de transmission disparaît avec elle - quelque chose comme ça.
Coupe de pin 36 de la TA9200 et connecté le maintenant ouvrir trace à un commutateur à GND/5V donc je peux basculer manuellement. Le paramètre par défaut est mieux quand l’entaillé, donc il devrait aller à 5V pour désactiver l’accent. Ce commutateur active/désactive un transistor comme dans la section mise en sourdine, mais celui-ci modifie la réponse du filtre sortie en tournant marche/parties du filtre réseau - conception de circuits analogiques délicat.
Crépitement???
Je pense que les fissures proviennent d’une dérive de l’horloge. L’IPD pousse les données avec son horloge de 44,1 kHz * 32 bits, l’oversampler qui traite avec sa propre horloge (également 44,1 kHz * 32 (* 12 donne la 16,9 MHz)) fois d’horloge dérive loin jusqu'à ce qu’un bit de données sauts à son voisin peu amplifier efficacement par 2 qui produit le pic dans un seul échantillon.
Solution 1 : extraire des données de l’IPD avec le plus d’horloge échantillonneurs. Cela rendrait la DAC et les OS l’horloge maître. Cela impliquerait de modifier le pilote module (ou en utilisant un autre)
Solution 2 - être fou matériel hacker et construire un multiplicateur d’horloge. Cela pourrait multi l’horloge de données (44100 * 2 * 16 par seconde) par 6 ou 12 pour produire l’horloge pour le circuit de suréchantillonnage. Cette volonté d’éliminer l’horloge deuxième et leur volonté que rien ne s’éloignent car toutes les horloges sont issus d’une horloge commune.
Une façon d’atteindre cet objectif pourrait être l’utilisation d’une ligne à retard. Une autre consiste à PLL - nouveau pour moi aussi. Pensée...