Modérateurs: Modération Forum DIY, Modération Forum Installations, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Alex_twn et 20 invités

OdroDAC => UGSD

Message » 17 Fév 2018 14:33

Bon le WM8805 est implemente en master via FiFo lui aussi.
Ca fonctionne tres bien, tout comme avec la C2, j'ai entre temps encore ameliore le fonctionnement de la FiFo avec detection de la frequence d'echantillonage automatique pour immediatement caler la sortie par rapport a l'entree + un reset de l'ensemble a chaque blanc du coup ca repars parfaitement cale entre chaque coupure de morceau et c'est pour le moment beton.
Donc tres content de ma carte digitale avec entrees SPDIF / streamer reseau, FIFO asynchrone, isolation et reclock tres faible jitter.

Je passe a un nouvel etage I/V maintenant pour au final trancher sur la version finale du DAC qui finira en boite.
Elle sera a priori allegee sans le MRMOD car c'est au meme niveau que la C2 mais les fonctionnalites / convivialites apportees par Volumio sont un bon cran au dessus.
Peut etre le DAC changera aussi, cela dependra des resultats avec le nouvel I/V.
Les DAC AKM ou ESS pourraient etre evalues par la suite.
Alex_twn
 
Messages: 1093
Inscription Forum: 10 Nov 2008 6:02
Localisation: Taiwan
  • online

Message » 17 Fév 2018 17:18

Salut Alex_twn
ca prend vraiment forme alors, excellent;
lorsque tu dis que tu calcul automatiquement le bit rate spdif pour recaler la sortie de fifo c'est juste pour calculer le bon diviseur 2/4/8 et choisir le quartz 44/48 n'est ce pas ?
ce qui m'épate c'est que ça fonctionne sans avoir à ajuster le quartz de quelques ppm.
pourtant si tu utilises 1024x6 mots de 24bits, ca représente à peine 30ms de fux audio stéreo à 96khz et comme il faut travailler au centre de la fifo, tu disposes de seulement 15ms de marge pour une chanson de 5minutes ca donne sauf erreur la possibilité de rattraper une dérive de 50ppm sur le quartz. Selon la source ca sera un peux juste , je pense aux platine CD.
en tout cas c'est beaucoup de travail et une belle réalisation !
L'odroid C2 est aussi en master n'est ce pas ?
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 18 Fév 2018 4:54

Salut Maxidcx,
Oui c'est a peu pres cela, je detecte la fs d'entree en echantillonant lrclk et decode entre 44.1K et 384K. Je positionne du coup en effet l'oscillateur qui va bien. Le process prend un peu plus de 2ms donc j'ai largement le temps de la faire entre chaque morceau.

Toutes les entrees sont en master maintenant sauf le MRMOD (Odroid / WM8805 master via FiFo, MRMOD slave)

Concernant ma taille de RAM, il faut tout multiplier par 2 car je parlais en mots stereo donc 48 bits.
En fait la RAM de mon FPGA est utilisee au mieux sans gaspillage avec un bus de 288 bits soit 6 mots stereo et ce sur 1024 addresses.
Donc ca multiplie les ppm que tu donne environ par 2.
C'est vrai ce n'est pas enorme mais ca ne decroche absolument pas a l'ecoute.
Cote soft je vais peaufiner le truc en generant une IT vers mon MCU si a tout hasard il y avait une detection de full / empty qui se produisait.
Et puis le design est compatible pin to pin avec le FPGA plus gros qui pourrait stocker le double en RAM ou alors je pourrais toujours utiliser la SRAM sur ma carte aussi qui elle fait 2 ou 4MB je ne me souviens plus mais on est super large :).

Je n'ai pas utilise de platine CD mais entre nous j'ai ajoute le WM8805 au cas ou, si certains etaient interesse pour l'utiliser car de de mon cote je m'en fiche un peu.
La musique dematerialisee sur un NAS lue par la C2 / Volumio avec la convivialite que cela apporte, bibliotheque graphique sur iPad, pas de CD a sortir de la boite + les fichiers haute resolution que l'on peut lire, les plugins... y'a pas mieux, le vieux lecteur CD au placard :mdr:
J'avais dans une V1 de la carte FPGA ajoute l'amanero mais je pense qu'elle aussi perd enormement de son interet lorsque l'on peut lire de la musique directement a travers le reseau.

Au passage je me posais la question si je n'allais pas en faire un preamp analog / digital en combinant aussi un peu de ce que j'ai fait avec l'UGS Muse la dedans.
A ce sujet niveau controle de volume j'ai commence a reflechir a comment faire tout cela en digital dans mon FPGA avec une resolution au moins 32-bits.
As tu deja regarde le controle de volume digital?

PS : J'ai vu ton projet sur un autre fil de discussion, tres interessant aussi, bon courage ! :)
Alex_twn
 
Messages: 1093
Inscription Forum: 10 Nov 2008 6:02
Localisation: Taiwan
  • online

Message » 18 Fév 2018 13:02

Salut Alex_twn
c'est clair qu'avec la RAM externe tu es couvert. du coup l'idée m'intéresse plus :bravo:
cela dit mon projet est avant tout orienté DAC avec cross over intégré. du coup il faut que tous les filtres/biquad soient re-calculés en fonction des différentes fréquence d’échantillonnages 44/48 x1 x2 x4, et pour les FIRs ce n'est pas envisageable je pense. Résultat il me faut obligatoirement un ASRC donc la fifo perd son interret pour mon projet.

pour ce qui est du volume ca fait des années que j'y refléchi. ton expérience autour du Muse est interressante. Mon point de vue serait le suivant:
l'idéal c'est d'être en analogique à condition d'avoir un SNR (et thd) du circuit de volume > à celui du DAC. Je lisais récemment sur un forum japonais ( :ko: ) que le Muse n'est pas au niveau pour les DAC actuel, par contre un CS3318 dont on met 4 canaux en parallèle convient bien. donc 1 chip pour une config stéréo. (mais il est assez cher...).

Pour mon projet multivoies, je m'oriente actuellement vers un R2R 2 bits pour dégrossir les -6/-12/-18db directement dans l'étage de sortie du DAC (au niveau du soustracteur différentiel), accompagné en amont d'une approche digitale dans le DSP.

Et pour le volume digital, le problème avec l’approche d'une simple multiplication c'est que tu tronques les bits du bas tôt ou tard. De mon point de vue ce n'est pas acceptable SAUF si tu rajoutes du dithering et du noise shapping qui permet de récupérer à peux près 7 bits audibles aux fréquences critiques. Je te renvoie sur un topic que j'avais initié, avec des liens sur les papiers Méridian. Si tu peux implémenter leur polynôme alors GO :bravo:
diy-general/noise-shaping-96khz-meridian-518-t30057792.html

et comme les liens ne fonctionne plus, voici les 2 pdf principaux

et pour le polynôme, en relisant le fil j'avais déjà fait la conversion en 2 biquads et un fir 4 taps, donc ca devrait être un jeu d'enfant pour toi d'implementer ce truc :mdr:
Fichiers joints
Meridian PreEmphasisNoiseShaping96K.pdf
(89.8 Kio) Téléchargé 185 fois
Meridian coding2.pdf
(392.28 Kio) Téléchargé 152 fois
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 19 Fév 2018 6:30

Salut Maxidcx,

Merci pour tes commentaires.
Concernant le controle de volume analogique, les performances dans la datasheet des circuits c'est une chose mais avant de me lancer dans la conception de l'UGS Muse j'avais evalue les CS3308 et DS1882 et de memoire j'etais assez moyennement satisfait par le CS3308, en revanche le DS1882 etait vraiment excellent a l'ecoute (le muse etant par la suite similaire au DS1882).
Pourtant si on regarde la datasheet le DS1882 est le moins bon des 3.
Le CS3318 est un poil plus performant que le CS3308 mais il doit sonner pareil j'imagine.
Je n'avais pas realise qu'on pouvait paralleliser les CS3318, ca reviens a connecter les sorties des AOP via Rout ensemble. Bizarre... Quel est le gain supplementaire?

De mon cote j'etais parti en digital avec normalisation 32 bits et multiplication en effet en utilisant les multiplicateurs HW du FPGA, ca m'a pris 30min a peine a implementer, je vais simuler tout cela pour voir comment cela se comporte et ecouter aussi, en faisant mes experiences je progresse :).
Merci pour les documents Meridian, je vais regarder cela mais ne me surestime pas je suis un debutant qui progresse certes mais toujours bien newbie quand meme :mdr:
Alex_twn
 
Messages: 1093
Inscription Forum: 10 Nov 2008 6:02
Localisation: Taiwan
  • online

Message » 19 Fév 2018 9:22

Salut
ah oui j'ai quelques DS1882 en tiroir que j'avais comparé avec des LDR dans le passé :ane:
en mettant en // les blocs d'un CS3318 tu réduis les résistances d'entrées (10K -> 2k5) et donc le Johnson noise. idem tu réduits le bruit résiduel des AOP (2 sources de bruits non corrélé en // réduisent le bruit de 3db)

pour les documents meridian en substance leur approche c'est :
1)un fréquence d'échantillonnage de 58khz est suffisante donc 96khz c'est plus qu'il n'en faut
2)un flux 16 bits correctement ditherisé avec une courbe de Noise shaping qui tient compte de notre sensibilité acoustique et avec une préaccentuation permet de retranscrire toute les nuances audibles

du coup il propose une courbe de préaccentutation (facile avec un fir 4 taps) et un profil de noise shapping faisable avec 1 cellule de delay et 2 biquad. tu rajoutes le dithering sur 2 bits et c'est fini.

Ce graph fait avec sigma studio fonctionne il faut juste le convertir en vhdl :ane:
Image
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 03 Mar 2018 16:19

Salut Alex_twn
sur mon projet DAC, je réfléchis à mettre un "petit" fpga, et j'ai notamment repéré le ICE40UP5K de latice dispo en qfn48 ...
l'idée c'est pour faire la commutations des différents canaux I2S et pourquoi pas un receiver spdif avec fifo, et en même temps une interface usb CDC pour la programmation du DSP...
il y a une breadboard sympa ici
http://gnarlygrey.atspace.cc/developmen ... ml#upduino
et ca se programme en SPI, voir directement en USB avec l'implémentation tinyFPGA ici : http://tinyfpga.com
bref, as tu de l'expérience sur ce circuit pour ce type d'usage ?
a+
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 03 Mar 2018 20:12

Salut Maxidcx,

Non je ne connais pas ce circuit.
J'ai regarde la datasheet rapidement, cela semble parfait pour faire du multiplexage I2S. Par contre pour la FiFo tu vas etre trop juste en RAM interne et si il te faut ajouter de la RAM externe, 48pins c'est a mon avis pas assez.
Concernant le receiver SPDIF j'avais aussi pense a l'implementer dans le FPGA de facon a supprimer le WM8805.
J'ai une nouvelle version de board a priori dans le pipe et peut etre je ferai moi aussi cette optimisation si j'arrive a implementer ce bloc.

Sinon de mon cote j'ai fait quelques mesures de FFT afin d'evaluer la distorsion apportee par mon controle de volume digital est ca peut etre assez surprenant mais ca fonctionne plutot bien et ca n'a pas l'air de degrader le signal audio. Il n'y a au moins pas de compression du signal lors de l'attenuation, tout le signal descend vers le bruit de fond du DAC.
Au final ca sera quand meme un controle de volume analogique, j'ai juste fait cette implementation pour jouer et apprendre encore un peu.
J'ai recupere une Rpi3 pour essayer sur ma carte, ca fonctionne aussi mais pas aussi bien que la C2 (plop au changement de morceau, bruit de fond aigu, tout ca avec Volumio a nouveau). C'est parfait sur la C2, faut que je comprenne ce qu'il se passe.
Je bosse sur un nouvel etage I/V "pour voir" avant d'attaquer la version finale.

Bon courage pour la suite.
Alex_twn
 
Messages: 1093
Inscription Forum: 10 Nov 2008 6:02
Localisation: Taiwan
  • online

Message » 04 Mar 2018 12:23

Salut
merci pour tes conseils. ca me tente bien de gérer tout le flux entrant SPDIF avec ce chip, y compris du multichanel (max 7.1) sur 4 entrée SPDIF simultanée (pour récupérer les 4 sorties de la carte Vanity93 de mon oppo) et avec une solution ADAT (8 signaux 48k 24bits) pour transporter un flux venant d'un receiver homeciné. on trouve pas mal de bricolage spdif et adat pour fpga sur Internet. Je peux prévoir une ram externe en SPI de 2mbits pour me couvrir.

concernant la C2 peux tu me dire comment on organize pour que la C2 soit synchronisé sur une horloge de précision ?
pour le RPI3 j'ai pigé, il suffit de le configuré en Slave et de lui fournir un bclk et lrclk.
si tu as des exemples de schéma d'interface ou de carte fille/dac qui exploite ce mode, comme ca je peux prévoir une compatibilité

pour le volume numérique, quand tu dis que le signal descend vers le bruit de fond du dac, c'est finalement là qu'est le problème non ?
jette quand meme un oeil sur l'algo méridian que j'ai testé dans SigmaStudio, avec juste 2 biquad, 1 fir 4 tap et une boucle. mais il faut aussi un dithering.

merci pour tes encouragements
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 21 Mai 2018 18:34

Me voilà de retour après avoir passé pas mal de temps sur un nouvel étage I/V actif à base de SEN.
Après 2 protos et beaucoup de simu ça donne enfin quelque chose qui marche très bien, stable en température et qui compense bien le courant DC du DAC de façon à avoir un offset nul.
On est un cran au dessus de l’étage passif + transfo et en utilisant un seul PCM1794, alors que l’etage passif nécessitait au moins 4 PCM.
Ça fonctionne vraiment très bien confirmé aussi avec des mesures THD de très bon niveau. On doit même pouvoir mettre 2 PCM1794 en parallèle. À essayer peut être plus tard.

Image
Image

Je vais pouvoir me mettre à simplifier le DAC maintenant et finaliser ce network player.
Alex_twn
 
Messages: 1093
Inscription Forum: 10 Nov 2008 6:02
Localisation: Taiwan
  • online

Message » 22 Mai 2018 9:32

encore une belle réalisation et bien aboutie :bravo: on a envie d'en savoir plus sur ton choix des njfet , aussi comment tu gères l'alim double de l'ampli op (servo?) vs l'alim des njfet qui ne devrait pas avoir de point commun je crois ?
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 22 Mai 2018 18:53

J'utilise 8x 2SK2145 que j'avais en stock pour le moment qui sont tous mesures / tries et couples 2 a 2 de la bonne facon de maniere a avoir un offset nul + une derive en temperature controlee.
Le radiateur aide aussi dans tous les cas a coupler tout cela correctement et ca reste uniforme.
J'ai aussi un bon stock de BF862 a essayer, cascodes avec des J111 mais pas encore eu le temps et il me faudrait changer un poil le PCB.
Je suis parti directement avec les 2SK2145 pour faire simple et j'avoue que cela fonctionne vraiment tres bien donc pour le moment c'est parfait.
Les CCS sont des CPH6904 montes sous le radiateur aussi et avec un courant 0 tempco equivalent a celui d'un double PCM1794 (configuration mono) soit 12.4mA a 0dBFS.

Ensuite le servo qui fut la derniere fonction ajoutee (absent sur mon pcb v0.0) est primordial pour faire en sorte que tout ce petit monde reste stable dans le temps et notamment compense les infimes variations de courant 0dBFS du DAC et maintient un niveau de distorsion tres faible.
L'alim du SEN, completement flottante, est assuree par des batteries LiPo, l'alim du servo est via 2 rails +/- distincts via transfo / redressements separes.
Une alim flottante shunt type Salas est en cours de design (Eric s'occupe de cette partie) pour essayer ce que cela donne face au LiPo. Une fois ce test fini je passerai a la version finale du systeme.

Au final avec le DAC en mono et NOS + la FiFo dans le FPGA cela marche vraiment bien. Principalement encore un peu mieux sur la largeur de scene sonore, les timbres de voix et une dynamique impressionnante, assez flagrant sur les tres bons enregistrements.
Alex_twn
 
Messages: 1093
Inscription Forum: 10 Nov 2008 6:02
Localisation: Taiwan
  • online

Message » 26 Mai 2018 0:29

WOW Super projet! Je suis certainement partant si un groupe d'achat se forme :lol:
Merci encore Alex! :mdr:
algar_emi
 
Messages: 56
Inscription Forum: 09 Juil 2007 3:50
Localisation: Canada
  • offline

Message » 26 Mai 2018 22:53

Alex tu mentionne au début du 'thread', ton projet Increse-Current UP. As-tu la référence de ce projet sur ce forum?<
Oublie ça j'ai trouvé ;)
SB
algar_emi
 
Messages: 56
Inscription Forum: 09 Juil 2007 3:50
Localisation: Canada
  • offline

Message » 26 Mai 2018 23:56

Hi Alex :D
What a really nice project from you (again ) !
I'm all in, if there will be a GB !
Thanks
Johnny
Ine
 
Messages: 61
Inscription Forum: 02 Fév 2016 10:53
Localisation: Halden, Norvège
  • offline


Retourner vers Sources et DAC