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

UGS HC

Message » 22 Mai 2012 13:58

Merci pour ton topic ! j’étais passé à coté.
Concernant le repiquage des flux LPCM, je te suis.
Par contre, exit le DSD. Le DSD est un format de flux natif comme le PCM. Donc soit ton chip HDMI sait sortir en DSD natif ( on commence a taper dans du lourd) soit fini le DSD sauf si le lecteur le converti en PCM avant mais ça perd tout intérêt (a mes yeux).
Après, utiliser du HDMI comme mode de transport alternatif, c'est carrément overkill : les chips sont complexes, dans des formats pénible à souder et nécessitent un µC et pas mal de code pour les piloter.
Une solution ultra simple et efficace est d'utiliser une bête liaison LVDS. Sur mon dac, outre assez de liaison classiques spdif/AES pour driver toutes les voies dans le cas de solutions comme celle de ton Oppo, j'ai prévu 16 paires M-LVDS pour transporter tout et n'importe quoi ( assignable) LPCM/I2S/DSD/AES/Spdif bitstream .... Plusieurs format de cartes déporté sont envisageables : minimale à intégrer dans un appareil, boitier complet avec format classique AES/SPDIFF etc.. Ces cartes/boitiers sont au besoin chainables (M-LVDS) et une ou deux paire peu être utilisé pour les piloter par le dac (enable/disable de chaque ligne quand elles sont partagées en I2C + alim pour isolation galvanique des alims )
Le plus dur a été de trouver un format de prise et de câble accessible au niveau dispo et prix pour faire ça. J'ai mes deux format possible donc c'est enfin bouclé. (le HDMI n'est pas intéressant par exemple car très peu de paires ldvs au regard du nombre de pinoches).
Je vais suivre avec intérêt ton travail sur le CS. J'ai peu être un plan pour un truc a base de TI C6x + ARM qui permettrait de faire tout et n'importe quoi, mais rien n'est sur pour l'instant.
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 22 Mai 2012 19:30

maxidcx a écrit:tgrauss: concernant le hdmi, je suis partagé. l'idée de recuperer le flux LPCM (jusqua 8 ch) sur l'hdmi est satisfaisante. Dans ce cas on laisse le lecteur (bluray/ps3...) decoder le DTS-HD voire meme le DSD des sacd. il suffirait de prendre un chip hdmi receiver simple (ADV7611) pour recuperer les flux I2S. mais il y a un problem de licence avec les cle HDCP. peut etre que la DI35H resoud ce probleme, mais il faut repiquer les lignes I2S quelque part.

J'ai posé la question pour l'HDCP au constructeur de la carte. J'attends la réponse. Si elle ne gère pas l'HDCP, elle ne m'intéresse pas trop car je peux décoder le DTS et l'AC3 via le STA310. Par contre si elle gère l'HDCP, elle me permettra de la connecter au lecteur DVD et je pourrais lire des SACD et DVD-Audio :) et envoyer le tout au DAC.

maxidcx a écrit:une autre solution consisterait a prevoir la possibilité d'entrer directement en multichanel SPDIF (genre meridian g68) voire I2S...
je m'explique. je viens d'acheter un Oppo93 et j'ai remplacé la carte audio par une carte multichanel SPDIF avec fifo (ici). le resultat est assez incroyable.

Si la carte gère l'HDCP, je préfère la modifier pour repiquer l'I2S au vu de son prix (par rapport à mon lecteur DVD). De plus mon lecteur DVD n'a pas de carte séparée.
Par contre, dans le design qui est prévu, il n'y a rien qui empêche d'avoir 3 SPDIF ou 3 I2S.

maxidcx a écrit:au fait tu as choisi quoi pour tes cartes DAC ?

J'ai des PCM63, donc je vais faire une version custom du DAC de spencer basé sur le PCM63. Ça c'est pour la hifi de la chambre, donc que stéréo. Et je vais faire une version custom de la dernière version du DAC de spencer pour le DAC du salon (home-cinema et hifi). Je parle de custom dans le sens que je vais ajouter le reclocking et la connexion à mon bus en TDM.

Au niveau du reclock, j'ai prévu d'utiliser l'horloge SI570. On peut ajuster la fréquence via I2C. Je vais aussi utiliser un cpld ou fpga pour le fifo et la logique de gestion. Tout d'abord déterminer la fréquence du signal qui arrive et ajuster le si570 à cette fréquence. Puis comparer les 2 horloges (comptage des impulsions et moyenner) et ajustement fin du si570. A ce stade, il ne devrait plus y avoir besoin d'ajuster l'horloge. S'il y a quand même besoin (détection via flags du fifo), la fréquence d'ajustement sera tellement faible que ce sera inaudible.
En sortie du fpga/cpld, utilisation de buffers pour filtrer le jitter résiduel sur les lignes bclk et lrclk provenant du cpld/fpga.
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline

Message » 22 Mai 2012 19:34

C'est du charabia pour moi mais ça a l'air bougrement intéressant, cette plateforme...

Y a t'il une date même nébuleuse ?

OO7livier.
Avatar de l’utilisateur
OO7livier
Modération Home-Cinema & Rencontres
Modération Home-Cinema & Rencontres
 
Messages: 18387
Inscription Forum: 21 Nov 2002 14:32
Localisation: Sept-Huit ! !
  • offline

Message » 22 Mai 2012 19:49

ok pour le lvds / m-lvds, mais j'ai lu quelque part que pour de l'i2s, le single-ended pouvait etre mieux que le lvds du fait que les vitesses maxi en lvds ne sont pas tres importantes...
Apres pour distribuer une master clock vers les cartes DAC par example, faut peut etre preferer le coax sur conecteur ufl, donc non differentiel, avec une terminaison de ligne sur chaque carte et un reclocking local des signaux avec un 374...

Le cable hdmi offre 4 lignes differentielles ca me parait pas mal pour relier une source (type CD/oppo) a un preamp numerique (type ugs hc).
je pense au Mod squeeze box ( ICI ) et au shéma proposé par PS audio ( ICI ).
Ca serait pas mal de prevoir une prise HDMI et une RJ45 pour entrer directemetn en I2S.
Par contre, pour le carte a carte ou bus interne, daccord avec toi il faut une autre connectique.

pour ce qui est du dsd, jusqu'à maintenant j'etais aussi septique que toi sur la conversion LPCM, mais le boulot que fait la carte fifo Vanity de ce coté là est assez impressionant. Ils ont devlopé un filtre "zero alias" codé en vhdl qui est vraiment cool. j'essaierai de comparer un SACD et sa version WAV 192 recodé par audiogate prochainement.

il faudrait partager un synoptique des blocs fonctionel du futur ugc hc ! y a til deja queque chose ? de mon coté j'etais plutot parti sur une nouvelle version du DCX ( ICI ), mais la convergence me semble possible! 8)
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3097
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 22 Mai 2012 19:54

Pour répondre à 007livier, Ça va dépendre si j'arrive à implémenter rapidement l'interface vers mon bus de communication. Mais je ne pense pas que ce sera trop complexe.
Pour le moment, j'ai codé la partie d'interfaçage I2S (esclave et maitre) en VHDL et je l'ai simulée.
Je viens de finir de spécifier l'interface de communication entre les cartes. Elle va peut-être encore bouger si je me rend compte que j'ai oublié quelque chose. Elle ne bougera plus une fois que j'aurais les prototypes.
Ci-dessous définition du bus dans le cas d'une carte esclave.
Code: Tout sélectionner
entity AUDIO_BUS_SLAVE_1 is
port(
   -- Parallel input/output ports
   PARALLEL_DATA_L_IN : in std_logic_vector(31 DOWNTO 0);
   PARALLEL_DATA_R_IN : in std_logic_vector(31 DOWNTO 0);
   PARALLEL_DATA_L_OUT : out std_logic_vector(31 DOWNTO 0);
   PARALLEL_DATA_R_OUT : out std_logic_vector(31 DOWNTO 0);
   
   -- output control ports
   WRITE_DATA_TO_FIFO_L, WRITE_DATA_TO_FIFO_R    : out std_logic;  --write data from audio bus to fifo
   READ_DATA_FROM_FIFO_L, READ_DATA_FROM_FIFO_R    : out std_logic;  --read data from fifo bus to audio bus
   
   -- Control ports
   N_RESET : in std_logic;  --Asynchronous Reset (Active Low)
   
   --audio bus
   AUDIO_BUS_AUDIO_DATA : inout std_logic_vector(31 DOWNTO 0);  --audio data to send/receive
   AUDIO_BUS_CLK : in std_logic; --audio bus clock
   AUDIO_BUS_VALID : inout std_logic; --audio bus data are valid -- 0 = valid, 1 = not valid data on the bus
   
   AUDIO_BUS_SERIAL_DIN : in std_logic;   -- bus parametrage serie data
   AUDIO_BUS_SERIAL_DOUT : out std_logic;   -- bus parametrage serie data, Z si pas selectionne ou si rien a envoyer
   AUDIO_BUS_SERIAL_CLK : in std_logic;   -- bus parametrage serie horloge communication
   AUDIO_BUS_SERIAL_SELECT_DATA : in std_logic;  -- bus parametrage serie. 0 = on propage le chip select. 1 = on communique avec le chip selectionne. Falling edge, on efface les registres a decalage de propagation du chip select, rising edge, on selectionne le chip qui a le bit cs positionne
   AUDIO_BUS_SERIAL_SS : out std_logic;   -- bus parametrage serie selection esclave. 0 = communication en cours, 1 = communication pas en cours  (active low)
   AUDIO_BUS_SERIAL_CS : in std_logic;      -- bus parametrage serie chip select. L'entree CS alimente un shift reg de 2 bits. 1er bit = selection du chip. 2nd bit = alimente la sortie SS. On met en serie CS et SS des differentes cartes
   AUDIO_BUS_INT : out std_logic;         -- bus parametrage serie interruption, Z si pas de d'interruption, sinon = 0 (active low)
   );
end AUDIO_BUS_SLAVE_1;


J'ai pas mal de schémas en parti réalisés (DAC, ADC, préampli micro, carte contrôleur réseau, carte horloge...). Donc je ne part pas de zéro. La raison pour laquelle j'ai tellement de schéma est que je travaille dessus depuis 4-5 ans. J'ai souvent changé d'orientation sur l'architecture générale car il y avait toujours quelque chose qui ne me plaisait pas. Finalement je ne vois plus rien qui me chiffonne donc je ne devrait plus changer d'orientation.
Premier objectif, réaliser une carte master de bus, une carte radio FM/AM (sortie I2S natif du chip radio), une carte DAC PCM63 (avec si570 et reclocking intégré), 2 cartes de terminaison de bus et cartes alimentation. Cela me permettra de tester et de vérifier que tout fonctionne au poil. Je commence par ces cartes car ce sont les cartes sur lesquelles je suis le plus avancé dans les schémas actuellement.

J'espère finir cette année au plus tard pour la partie prototypage.
Ensuite je passe aux autres cartes (carte afficheur, boutons et I/O IR, carte réseau/USB (avec possibilité de brancher un lecteur CD USB et de décoder le flac, ogg...), décodage DTS/HDCD/AC3 + gestion charaoke, carte ADC, carte préamp micro, carte préamp phono Xono... ).
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline

Message » 22 Mai 2012 20:14

maxidcx a écrit:Par contre, pour le carte a carte ou bus interne, daccord avec toi il faut une autre connectique.

J'ai prévu d'utiliser le même principe qu'ici : http://opencores.org/project,gecko3 et utiliser les même connecteurs, mais le bus en lui même est évidemment différent. Les connecteurs : http://fr.farnell.com/jsp/search/browse.jsp?N=203754+210178579+210139624+210189477&No=0&getResults=true&appliedparametrics=true&locale=fr_FR&divisionLocale=fr_FR&catalogId=&skipManufacturer=false&skipParametricAttributeId=&prevNValues=203754+210178579+210139624&mm=1001792||,1002885||,1002541||,&filtersHidden=false&appliedHidden=false&autoApply=false&originalQueryURL=%2Fjsp%2Fsearch%2Fbrowse.jsp%3FN%3D203754%26No%3D0%26getResults%3Dtrue%26appliedparametrics%3Dtrue%26locale%3Dfr_FR%26divisionLocale%3Dfr_FR%26catalogId%3D%26skipManufacturer%3Dfalse%26skipParametricAttributeId%3D%26prevNValues%3D203754

maxidcx a écrit:il faudrait partager un synoptique des blocs fonctionel du futur ugc hc ! y a til deja queque chose ?

Pas vraiment, mais il faut voir le système comme un ensemble de cartes indépendantes (cf projet gecko3) avec des ADC, DAC, cartes de traitement... La carte maitre est prévue pour paramétrer les cartes au démarrage et pour gérer le bus (horloge de bus). Chaque carte a un compteur interne et compte les impulsions. Si c'est à elle d'émettre des données, elle les dépose sur le bus, et les cartes réceptrices qui sont configurer pour écouter à cette valeur de compteur, réceptionnent les données. On peut voir ce compteur de bus implicite comme une adresse. Le bus suit donc le principe TDM (time division multiplexing).
On peut mettre donc n'importe quelle carte pourvu qu'elle respecte le protocole du bus de communication. Si on a des cartes ethernet, on peut en plus séparer le dac des autres cartes et utiliser le réseau pour transmettre les commandes (volume...) et les données audio.

Au niveau des horloges, chaque carte a son si570 et reclock les données qu'elle reçoit. Je pensais au début transmettre la master clock sur le bus, mais cela posait un problème dans le cas où l'on écoute un CD (on envoie à 44.1khz de fréquence d'échantillonnage, et le son est envoyé via ethernet sur une autre chaine hifi) et on veut en même temps regarder un dvd (échantillonnage à 48khz). Donc pour faire simple, chaque carte à son horloge et on reclock systématiquement.
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline

Message » 22 Mai 2012 20:20

Prévoyez-vous le décodage audio HD ?

OO7livier.
Avatar de l’utilisateur
OO7livier
Modération Home-Cinema & Rencontres
Modération Home-Cinema & Rencontres
 
Messages: 18387
Inscription Forum: 21 Nov 2002 14:32
Localisation: Sept-Huit ! !
  • offline

Message » 22 Mai 2012 21:01

maxidcx a écrit:ok pour le lvds / m-lvds, mais j'ai lu quelque part que pour de l'i2s, le single-ended pouvait etre mieux que le lvds du fait que les vitesses maxi en lvds ne sont pas tres importantes...

125Mhz pour les chips que j'utilise. Ca devrai le faire. :mdr:
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 22 Mai 2012 21:05

OO7livier a écrit:Prévoyez-vous le décodage audio HD ?

Pas pour le moment, d'où l'intérêt pour la carte HDMI DI35H si elle gère le HDCP et que le lecteur dvd/bluray puisse effectuer le décodage. J'ai les infos pour communiquer avec la carte en I2C et c'est apparemment très simple.
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline

Message » 22 Mai 2012 22:58

pas mal le site web tgrauss !
ca manque d'un synoptique d'ensemble, mais en prenant le temps de passer en revue toutes les pages on finit par comprendre le concept :)
beaucoup de travail et de bonnes idées, chapeau !

ps: pour info, sur la carte Vanity 93, il adapte la frequence de lecture de la fifo en fonction de l'evolution du buffer RAM, pas de comparaison/comptage avec l'horloge dorigine.
le vcxo est controlé par un simple registe I2C MPC23S17 avec un reseau de resistance monté en R2R, le tout filtré par un gyrateur avec une capa 100uF et 2 transistors.
comparé au prix du SI570 ca doit etre moins cher, mais le jitter doit etre plus important.

coté boitier, si on pouvais se raprocher d'un rotel 1098... :)
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3097
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 23 Mai 2012 0:24

maxidcx a écrit:pas mal le site web tgrauss !
ca manque d'un synoptique d'ensemble, mais en prenant le temps de passer en revue toutes les pages on finit par comprendre le concept :)
beaucoup de travail et de bonnes idées, chapeau !

Merci. Il faudrait que je le mette à jour car il y a 2 ou 3 petits changements depuis lors pour le rendre plus modulaire que ce qui est expliqué sur le site, mais le concept global reste le même.

maxidcx a écrit:ps: pour info, sur la carte Vanity 93, il adapte la frequence de lecture de la fifo en fonction de l'evolution du buffer RAM, pas de comparaison/comptage avec l'horloge dorigine.
le vcxo est controlé par un simple registe I2C MPC23S17 avec un reseau de resistance monté en R2R, le tout filtré par un gyrateur avec une capa 100uF et 2 transistors.
comparé au prix du SI570 ca doit etre moins cher, mais le jitter doit etre plus important.

Je pense monitorer aussi les flag du fifo, mais je pense qu'en faisant d'abord quelques mesures au préalable, on peut se caler au plus prêt de la fréquence d'origine et donc on va dévier très très lentement voir pas du tout vu que l'on peut ajuster finement la fréquence du si570 :) Mais c'est modulaire, rien n'empêche d'essayer de construire des cartes DAC avec d'autres circuits de reclockage si on le souhaite.
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline

Message » 23 Mai 2012 7:47

Bonne nouvelle,

Je viens d'avoir la réponse du fabriquant du module HDMI et les clefs HDCP sont incluses sur la carte, il n'y a pas besoin de s'en occuper. Il suffit donc de repiquer l'I2S.
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline

Message » 23 Mai 2012 11:56

hummm, je le sens bien tout ca !
il faudrait clarifier si les 4 lignes LPCM I2S provenant de l'HDMI sont totalement independantes des 3 lignes de sorties du decodeur DD/DTS CS493X, et si le premier canal LPCM est routable vers le decodeur DD ...
tout ca en chinois :thks:
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3097
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 23 Mai 2012 12:13

maxidcx a écrit:hummm, je le sens bien tout ca !
il faudrait clarifier si les 4 lignes LPCM I2S provenant de l'HDMI sont totalement independantes des 3 lignes de sorties du decodeur DD/DTS CS493X, et si le premier canal LPCM est routable vers le decodeur DD ...
tout ca en chinois :thks:

D'après la doc et vu comment c'est contrôlé, ce n'est pas indépendant du décodeur DD/DTS.
En fait, on sélectionne l'entrée (1 des 2 HDMI ou 1 des 3 SPDIF ou le canal analogique). On peut sélectionner un mode automatique pour la sélection de décodeur (DD/DTS ou PCM) ou alors le commander manuellement via I2C.
Il peut à priori fonctionner en full automatique sans avoir besoin de communiquer via I2C pour ceux que ça intéresse. Pour ma part je vais utiliser le mode avec communication I2C pour les fonctions avancées (délais pour les canaux arrière...).

Ils me proposent un kit de développement un peu plus cher (incluant un SDK, documentation, écran VFD et alimentation, carte I/O audio supplémentaire). Je pense que je vais le prendre, je peux toujours réutiliser le VFD et la différence de prix est à peu prêt de la valeur de l'écran supplémentaire.

Par contre le paiement se fait via western union. Mais bon, il s'agit d'un constructeur donc le risque est limité.
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline

Message » 23 Mai 2012 12:24

maxidcx a écrit:tout ca en chinois :thks:

Le chinois ne posera aucun problème, ma femme est chinoise :)
tgrauss
 
Messages: 317
Inscription Forum: 10 Aoû 2008 19:00
Localisation: Oltingue, Alsace
  • offline


Retourner vers Amplis et Préamplis

 
  • Articles en relation
    Dernier message