Extender HDMI optique. 300 mètres

Bonjour, Habr!



Développement d'un câble d'extension fibre optique HDMI sur 300 mètres. Refus du canal de retour (transmission de données sur un câble à fibre optique). Clonage EDID à partir du moniteur.

La norme HDMI est largement utilisée dans de nombreux domaines où vous souhaitez afficher l'image à l'écran. Personnellement, j'ai pu transmettre le signal via un câble HDMI à une distance de 10 mètres (ce n'était tout simplement plus nécessaire). Je pense que sans perte de qualité, vous pouvez transférer l'image à une distance de 30-40m. Les principaux inconvénients dans le cas du brochage d'un tel câble sont son diamètre et sa taille, directement, des connecteurs. La façon la plus simple d'exclure le câble est d'utiliser une rallonge sans fil, je pense qu'il sera possible d'atteindre 100-150 mètres, mais je ne le dirai pas avec certitude. Malheureusement, tous les objets, pour une raison ou une autre, ne permettent pas l'utilisation de réseaux sans fil. Et si vous en avez encore besoin?


Fig.1. Câble HDMI et optique (LC)

Bien sûr, l'optique n'est probablement pas la meilleure option pour transmettre de la vidéo, mais lorsque vous utilisez des PC et des moniteurs fixes, ce n'est même rien. La première thèse est le diamètre du câble optique (dans mon cas, c'est 2-3 mm) et le diamètre du connecteur du câble à fibre optique. Le deuxième est, bien sûr, la distance. Pour l'avenir, je dirai que les tests ont été effectués sur un câble de 300 m, diamètre (externe) - 3 mm.

Base élémentaire


Lors du développement de la base des éléments, le choix s'est opéré de manière inattendue sur la société chinoise SiFotonics, spécialisée dans ce type d'équipement. Pour commencer, nous avons étudié leurs produits et obtenu deux débogages que nous avons connectés avec un câble optique de trois cents mètres et nous nous sommes assurés que tout fonctionnait parfaitement. Ils ont également des récepteurs / émetteurs optiques SFP (ROSA / TOSA), des sérialiseurs / désérialiseurs, des pilotes, etc.

Principe de fonctionnement


Pour connecter et faire fonctionner les appareils, vous devez connecter deux câbles optiques et mettre sous tension (câble microUSB). Si nous donnons une analogie avec un câble HDMI conventionnel, dans lequel il y a I2C pour échanger une table EDID, alors tout est le même - un canal pour le transfert de données, le second - pour transférer l'EDID du moniteur à la carte vidéo. Les données sont transmises à une vitesse de 10 Gbps. Déchirant le câble du canal de retour, l'image disparaît invariablement. À ce moment, certains doutes se sont glissés, et si des données de service ou des marques de synchronisation dans le canal de retour sont transmises, ou peut-être que les appareils surveillent les connexions entre eux ...


Fig.2. La composition des modules

La première itération de la carte, c'est aussi une disposition, qui s'est avérée être de taille 20X45mm. Avec un connecteur d'alimentation «latéral», pour faciliter la distribution des bus d'alimentation dans les décharges. Au total, 4 couches se sont révélées. Pourquoi cette configuration PCB est mauvaise, j'écrirai plus tard. Les développeurs de débogage délicats ont utilisé le 0201 passif, ce que je ne voulais absolument pas faire, j'ai donc utilisé le 0402 et une bouillie de condensateur sous la puce.


Fig.3. Modèle 3D de la disposition de la carte du module source

Comme je l'ai écrit ci-dessus, ma tâche n'était pas seulement de faire un couple avec une distance de travail de 300 mètres, mais aussi de supprimer le canal de retour de l'optique. Même au stade du développement, nous avons décidé de ne pas nous impliquer dans la finalisation du logiciel chinois (bien que nous ayons été gentiment fournis avec toutes les sources), car, premièrement, il s'agit d'un tas de lignes de code incompréhensibles dans un compilateur incompréhensible, et deuxièmement, SiFotonics peut fournir des puces flashées, qui C'est très pratique, car il est très difficile de flasher des appareils dans le cadre de la production. Pour que le lecteur ne pense pas que j'exagère en parlant des difficultés, je vais donner une photo du stand de programmation.


Fig.4. Support de programmation et de diagnostic

Oui, oui, comme vous l'avez probablement déjà deviné, les contacts JTAG pour la programmation sont transmis aux contacts microUSB et à certains contacts HDMI qui étaient autrefois GND. Je dois dire tout de suite que cela n'a pas affecté la qualité du travail. Alors, lève-toi. Pour programmer la puce, vous devez d'abord assembler un circuit du support et mettre la puce en mode programmation à l'aide d'un logiciel spécialisé. Ensuite, vous devez assembler un autre circuit et utiliser l'autre logiciel pour flasher la carte. Après cela, il passe automatiquement en mode de travail.
En général, il me semble que ce n'est pas pratique même pour 1000 pièces.

Revenons au canal inverse. Pour stocker les tables EDID, nous avons besoin d'une EEPROM et nous devrons changer son adresse à la volée. Il a pris le N24C02UDTG dans un boîtier miniature US-8. Pour sa programmation, j'utilise le microcontrôleur STM32F031G4U6, également dans le plus petit boîtier du domaine public - UFQFPN-28. J'ai également pris l'interrupteur d'alimentation TPS27081ADDCR. Et voici ce que j'ai obtenu:


Fig.5. Schéma de mise en œuvre du clonage EDID

L'idée est la suivante. Ce circuit est implémenté sur le module émetteur (celui qui se connecte au PC). Pour cloner un moniteur EDID, l'appareil se connecte au moniteur. Par défaut, l'adresse EEPROM sur notre module ne doit pas coïncider avec l'adresse EEPROM dans le moniteur (pendant la lecture), c'est-à-dire qu'elle peut être toute autre, par exemple, j'ai rendu la jambe A0 gérable. Au moment de la connexion au moniteur, l'alimentation est fournie à l'EEPROM et la branche A0 est tirée vers le haut jusqu'à la résistance logique "0". Deux EEPROM avec les mêmes adresses sont suspendues au bus i2c, mais ce n'est pas critique, car nous ne travaillons pas encore avec elles. Dans mon circuit, il y a aussi un bouton et une LED pour indiquer l'alimentation / le micrologiciel EDID / les erreurs. Une courte pression sur le bouton modifie l'adresse et permet au microcontrôleur de commencer la lecture / écriture EDID. Nous réinitialisons l'EEPROM avec de l'énergie (juste au cas où) lorsque nous recevons le signal du bouton, lisons l'EDID du moniteur et l'écrivons immédiatement sur notre puce. Nous clignotons 3 fois avec la LED et coupons l'alimentation de l'EEPROM. La lecture / écriture se produit instantanément, donc un délai forcé est fait pour le clignotement, afin que l'utilisateur comprenne que quelque chose se passe. Autrement dit, nous commençons à clignoter quand il est déjà possible de lâcher prise. Si quelque chose ne va pas, n'allumez pas la LED.

Ensuite, connectez le module au PC et voyez immédiatement le nouveau moniteur dans les paramètres. Le problème est résolu.

Pour la programmation, le microcontrôleur a apporté le bus SWD.


Fig.6. Verso de la carte du module

CARACTÉRISTIQUES


Après tout le travail effectué avec le clonage EDID, j'ai supprimé le canal optique inverse et tout a fonctionné parfaitement. Dans ces expériences, l'alimentation provenait d'un PC USB. Pendant le démarrage, l'ordinateur (en tout cas le mien) coupe l'alimentation USB pendant un moment et l'image du BIOS clignote sur le moniteur - ce n'est pas critique. Ensuite, j'ai abandonné les modules de canal inverse des appareils et après cela, l'image a cessé de récupérer. Et cela était précisément dû à l'absence d'un module TOSA sur le moniteur. J'ai essayé d'imiter la présence d'un laser, mais en vain. Je suis presque sûr que ce problème peut être résolu par le firmware, mais nous avons décidé de ne pas y entrer. Un miracle s'est produit lorsque j'ai connecté les deux appareils (récepteur et émetteur) à des alimentations (comme, en passant, cela était indiqué dans l'énoncé des travaux). L'image a cessé de clignoter et disparaît en conséquence. Si vous déformez l'alimentation des appareils pendant le fonctionnement, l'image est restaurée sans problème.


Fig.7. Circuit de commutation du module émetteur (laser)

Revenons maintenant à la configuration PCB et au connecteur d'alimentation latéral. Cette mise en œuvre était initialement peu pratique et ne convenait qu'à la mise en page. Dans le dispositif de libération, j'ai réduit la largeur de la carte à 16,3 mm et mis le connecteur d'alimentation à la place du module optique du canal inverse - cela vous permettra d'inclure plusieurs appareils dans une carte vidéo. Sinon, le connecteur d'alimentation m'a interféré et la carte était très large.


Fig.8. Cartes de récepteur et d'émetteur étroites

Ici, bien sûr, il y a eu de nombreux recâblages et réarrangements de composants. Les gammes d'alimentation ont été entièrement refaites pour optimiser ces tailles et transférer le connecteur microUSB. Comme vous pouvez le deviner, les boîtiers des deux appareils sont identiques, la configuration de la carte, les connecteurs et le module optique sont donc identiques. Le corps est fraisé en aluminium et est un dissipateur thermique pour le processeur et le pilote. Les saillies de ces composants sont fraisées à l'intérieur, elles sont donc également situées de la même manière.

Conclusion


À l'heure actuelle, quatre paires d'appareils sont soudées, des tests sont effectués sur un long câble sur différents moniteurs et téléviseurs. Il n'y a rien à redire sur le travail. Nous vérifions uniquement sur fullHD et ci-dessous.

Merci et à bientôt!

Source: https://habr.com/ru/post/fr473796/


All Articles