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

ES9018S problème de lecture d'un certain registre

Message » 11 Mai 2015 15:58

Salut à tous !

Alors voila, je suis étudiant en électronique et pour faire simple j'avais comme projet perso de modifier un DAC équipé d'un puce ES9018S pour l'ameliorer un peu et le faire à ma sauce. Pour cela j'ai remplacer quelques composants de mauvaise qualité et virer d'autre qui etait inutile et maintenant j'aimerais améliorer un peu l'affichage de base qui ne fournissait pas trop d'information intéressante, et puis j'ai voulut aussi ajouté quelques options qu'il n'y avait pas avant. Notamment je voulais afficher la fréquence d'échantillonnage et le nombre de bits du signal audio entrant dans le DAC.

Seulement, voila mon problème, j'arrive à lire le contenu des registres de la puce ES9018S mais lorsque je lis le registre 48-71 "SPDIF channel status data", la valeur que je vois c'est 0 ! Et ce sur tous les registres de 48 à 71 ! Moi qui pensait que ce registre était géré automatiquement me voila bien embêté. J'ai lut, relut et encore relut la datasheet sans trouver la moindre information ( mais la plus récentes et la plus complete date de 2010 donc je me mefie ), alors je me suis dit qu'il y aurait forcement un autre gas comme moi qui serait tomber sur le même problème, j'ai donc cherché plusieurs heures sur internet grâce à mon ami google, mais en vain, aucun forum ne parle de ça ( et j'ai même essayé en anglais c'est vous dire ) c'est pourquoi je me tourne vers vous un petit peu desespéré...

Pour reformuler mon problème de façon clair et avec des question simple, Est- ce normale de voir des 0 dans ce registre ? Est-ce que ce registre doit etre actualisé par une manip quelconque avant d'etre lu ou le fait-il tout seul en temps normale ? Si il le fait tout seul, savez -vous d'ou peut venir mon problème ? Qu'est-ce qui définit le mode consumer et le mode professional ? Et dans le pire des cas comment faire pour obtenir ces informations ( fréquence d'échantillonnage et nombre de bits du signal) ?

De plus le DAC a trois entrées: une Coax et une Optique qui utilise le protocole SPDIF et une entrée USB qui utilise le protocole I2S. Je voulais savoir si le registre "SPDIF channel status" pouvait me fournir ces informations pour un protocole I2S ou sinon comment faire pour les obtenir.

En ce qui concerne le matos, j'utilise un microcontroleur ATMEGA 8 L que je programme en C avec Atmel Studio et il communique avec la puce ESS par le protocole I2C.

En espérant que vous aurez toutes les informations pour m'aider dans ma quête de l'expérience audio HIFI DIY, je vous salut peuple d'internet !
TouffeL
 
Messages: 3
Inscription Forum: 11 Mai 2015 15:07
  • offline

Message » 11 Mai 2015 16:30

Salut,

Prend la spec SPDIF et tu trouvera toutes les réponses à tes questions.
Le contenu de ces registre est dépendant de la source. C'est à la source spdif de fournir tout ça. Il y a deux type de trames embarquées dans le signal spdif suivant que l'on est en environnement pro ou "consumer".
Donc ta source ne renseigne rien.
Tu peux en déduire également qu'en I2S ces registres sont hors sujet. Ils ne concernent que le récepteur spdif.
Dans ta datasheet, tu as l'info pour dériver la clock effective mesurée du signal entrant en fonction de la master clock locale (reg28 à 31)
Pour le nbre de bits, en spdif c'est 16 ou 24 au max et en I2S, c'est configuré par défaut à 32 et rétro compatible 16/20 et 24, c'est l’intérêt du format. Visiblement rien n'est donc prévu pour le spdif pour récupérer le nbre de bits par sample.
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 12 Mai 2015 19:40

Hey !

merci pour ton aide, j'ai put résoudre mon problème grace à toi ! Mais du coup il n'y a aucune solution pour determiner la taille du mot ? parce que ca serait vraiment la classe de l'avoir :)
TouffeL
 
Messages: 3
Inscription Forum: 11 Mai 2015 15:07
  • offline

Message » 13 Mai 2015 0:33

Non, rien à ma connaissance :-? Si vraiment tu y tiens, faut "espionner" le bus I2S intelligemment avec le µC pour déterminer le nombre de bits significatifs entre deux LRclock. Avec un µC rapide et un timer avec input capture ça doit se faire assez facilement. En spdif, ça deviens vraiment très tordu sans se faire aider d'un récepteur dédié car faut tout décoder soit du 12Mhz mini pour du 192khz. Même avec un cortex M4 à 180mhz, on est trop juste a moins de faire un automate de malade avec les timer/capture, rien que le temps de bascule en contexte d'interruption prend 12 cycles soit plus de 100ns.
Donc je sais pas si ça en vaut la chandelle.
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 16 Mai 2015 17:30

Vu la galere que ca doit etre, je vais abandonner l'idée d'avoir cette info. Mais en tout cas merci beaucoup pour le reste tu m'as sorti de 3 jours d'imcomprehension totale :D
TouffeL
 
Messages: 3
Inscription Forum: 11 Mai 2015 15:07
  • offline


Retourner vers Sources et DAC