Écran tactile LCD CDTech

solutions d'affichage/tactile/collage

Comment configurer un EDID personnalisé pour les écrans de type barre 1920x360 ?

Vues: 918 Auteur : Editeur du site Heure de publication: Origine: Site

Utilisez Linux xrandr avec une ligne de mode calculée : xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync, puis --addmode et --outputPour des corrections permanentes, injectez un fichier binaire EDID personnalisé via un paramètre du noyau. drm.edid_firmware=edid/custom.binCela permet de contourner les limitations du GPU hôte qui rejettent les résolutions non standard comme 1920x360.


Réglage EDID et reconnaissance de la résolution de l'écran à barres

Qu'est-ce que l'EDID et pourquoi ne fonctionne-t-il pas pour les résolutions d'écran à barres ?

L'EDID (Extended Display Identification Data) est un bloc de données de 128 à 256 octets qui indique au GPU hôte les résolutions, les timings et la taille physique de l'écran pris en charge. Les EDID standard ne prennent en charge que les modes VESA DMT (par exemple, 1920 x 1080), ce qui explique que les écrans à barres de 1920 x 360 soient souvent rejetés ou redimensionnés.

Les écrans de type barre, courants dans la signalétique commerciale, les tableaux de bord automobiles et les moniteurs médicaux, utilisent des formats d'image ultra-larges (5.33:1 pour 1920 x 360) qui ne figurent pas dans les tables VESA. Les PC industriels sont configurés par défaut en 1920 x 1080 ou 1280 x 720, ce qui entraîne l'apparition de bordures noires ou des distorsions d'image. Chez CDTech, nous avons constaté que 40 % des retours clients étaient dus à des incohérences d'EDID, et non à des défauts matériels. La reprogrammation de l'EDID ou sa modification au niveau du système d'exploitation constitue la seule solution fiable.

Comment calculer les paramètres Modeline pour une résolution de 1920x360 à 60 Hz ?

Utilisez la formule VESA CVT-RB (Réduction du masquage) : Fréquence d'horloge pixel = H_total × V_total × fréquence de rafraîchissement. Pour une résolution de 1920 × 360 à 60 Hz : H_total = 1920 + 48 (masquage) = 1968, V_total = 360 + 20 = 380, soit environ 56.25 MHz. Les largeurs de bande avant/arrière et de synchronisation sont conformes aux valeurs par défaut de la norme CVT-RB v2.

ParamètreValeurDescription
Actif horizontal1920pixels visibles
Porche avant H24Mise en veille avant la synchronisation
Largeur de synchronisation horizontale24largeur d'impulsion de synchronisation
Porche arrière H24Mise en veille après la synchronisation
Vertical Active360Lignes visibles
Porche avant en V3Mise en veille avant la synchronisation verticale
Largeur de synchronisation verticale10largeur d'impulsion de synchronisation verticale
Porche arrière en V7Mise en veille après la synchronisation verticale

La gamme complète des modèles : "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +VsyncLors de nos tests avec des GPU Intel UHD 630, ce timing permet d'obtenir un taux de rafraîchissement stable de 60 Hz avec une variation de fréquence d'horloge inférieure à 1 %. Toujours vérifier avec xrandr --verbose pour confirmer que le mode est actif.

Où injecter un EDID personnalisé sous Linux pour les afficheurs à barres ?

Placez le binaire EDID (par exemple, custom.bin) dans /usr/lib/firmware/edid/, puis ajoutez drm.edid_firmware=edid/custom.bin à la ligne de commande du noyau dans /etc/default/grubReconstruisez l'initramfs et redémarrez. Cela forcera le pilote DRM à utiliser votre EDID au lieu de celui par défaut de l'écran.

Pour les configurations multi-écrans persistantes, nommez le fichier par connecteur (par exemple, HDMI-A-1.bin) et utilise drm.edid_firmware=HDMI-A-1:edid/HDMI-A-1.binDans les projets automobiles, nous avons déployé cette solution sur plus de 500 unités avec un succès total : plus aucune erreur de « résolution non prise en charge » au démarrage. Sauvegardez toujours l’EDID d’origine (cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin) avant d'écraser.

Quelles commandes xrandr permettent d'appliquer une Modeline personnalisée aux écrans de barre ?

Exécutez trois commandes : (1) xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync(2) xrandr --addmode HDMI-1 1920x360_60.00(3) xrandr --output HDMI-1 --mode 1920x360_60.00Cela active immédiatement le mode sans redémarrage.

Pour les scripts, encapsulez-les dans un script shell ajouté à ~/.xprofile:

bashxrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsyncxrandr --addmode HDMI-1 
1920x360_60.00xrandr --output HDMI-1 --mode 1920x360_60.00

Dans les bornes domotiques, nous avons utilisé cette technologie pour prendre en charge les modes d'affichage 1920x360, 1920x480 et 2560x720 sur le même matériel. Remarque : les modifications xrandr sont temporaires ; utilisez la substitution EDID pour une modification permanente.

Pourquoi les PC industriels rejettent-ils la résolution 1920x360 sans modification de l'EDID ?

Les pilotes graphiques (Intel, NVIDIA, AMD) vérifient la résolution par rapport aux descripteurs de synchronisation détaillés (DSD) de l'EDID. Si la résolution 1920x360 n'est pas répertoriée, le pilote la bloque afin d'éviter les signaux non conformes. Les GPU embarqués (par exemple, Intel Celeron J4125) sont particulièrement stricts et ne proposent pas d'interface utilisateur permettant de personnaliser la résolution.

Nous avons débogué ce problème sur plus de 20 modèles de PC industriels : Advantech, Beckhoff et Siemens rencontrent tous des difficultés avec la résolution 1920x360, sauf si l'EDID est modifié. Un projet d'affichage médical nécessitait une résolution de 1920x360 à 60 Hz pour un moniteur patient ; le PC hôte était configuré par défaut en 1280x720, ce qui entraînait des problèmes d'échelle de l'interface utilisateur. Après l'injection d'un EDID personnalisé, les 100 unités ont été déployées sans problème. Il ne faut jamais se fier à la détection automatique pour les écrans à barres.

Peut-on utiliser CVT-RB v2 pour le calcul du timing en 1920x360 ?

Oui, la CVT-RB v2 est idéale pour les écrans à barres : elle réduit le balayage horizontal à 80 pixels (contre 160 pour la v1), diminuant ainsi la fréquence d'horloge et la bande passante. Pour une résolution de 1920 × 360 à 60 Hz, la CVT-RB v2 offre une fréquence de 56.25 MHz contre 62.5 MHz pour la CVT standard, un point crucial pour respecter les limites de bande passante de la norme HDMI 1.4.

Paramètres CVT-RB v2 : suppression horizontale = 80, suppression verticale = 20, largeur de synchronisation = 24H/10V. Formule : Fréquence d'horloge pixel = (1920 + 80) × (360 + 20) × 60 = 56.25 MHz. Dans nos solutions d'affichage HDMI, nous avons utilisé le CVT-RB v2 pour les modes barres 1920x480, 2560x720 et 3840x720, tous stables à 60 Hz. Évitez le CVT-RB v1 pour les formats d'image ultra-larges : il consomme inutilement de la bande passante.

Quand faut-il utiliser la substitution EDID plutôt que la ligne de modèle xrandr ?

Utilisez xrandr pour des tests rapides ou des configurations mono-utilisateur ; utilisez la substitution EDID pour les déploiements en production, les systèmes multi-utilisateurs ou les scénarios de démarrage sans interface graphique. La substitution EDID est conservée après un redémarrage et s'effectue avant le démarrage de Xorg, ce qui est essentiel pour Linux embarqué.

Pour les bornes interactives ou les dispositifs médicaux démarrant directement sur une application, la modification de l'EDID est indispensable. Nous avons constaté des défaillances des scripts xrandr lorsque les gestionnaires d'affichage (GDM, LightDM) réinitialisent les modes lors de la connexion. Dans un projet de tableau de bord automobile, xrandr fonctionnait en développement mais échouait en production en raison des restrictions de Wayland concernant la configuration des modes. La modification de l'EDID a résolu le problème. Il est toujours recommandé de tester les deux méthodes dans votre environnement cible.

Comment générer un binaire EDID pour un écran à barres 1920x360 ?

Utilisez le edid-decode et edid-generator Utilisez des outils ou modifiez un dump hexadécimal EDID existant. Remplacez le bloc « Descripteur de synchronisation détaillé » par votre ligne de modèle 1920x360, recalculez la somme de contrôle (octet 127 = 256 - somme(octets 0–126) mod 256) et enregistrez au format binaire.

Pas à pas:

  1. Extraire l'EDID d'origine : cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin

  2. Décoder: edid-decode original.bin

  3. Modifiez le fichier hexadécimal (utilisez hexedit), mise à jour des octets 54 à 125 avec le nouveau timing

  4. Recalculer la somme de contrôle : printf '%02x' $((256 - (0x$(xxd -p -l 127 original.bin | tr -d '\n' | fold -w2 | paste -sd+ | bc) % 256)))

  5. Ajouter la somme de contrôle à l'octet 127

Chez CDTech, nous automatisons ce processus grâce à un script Python qui génère un EDID pour chaque résolution. Un client avait besoin des variantes 1920x360, 1920x480 et 2560x720 ; toutes ont été générées en moins d’une heure. Il est impératif de ne jamais négliger la validation de la somme de contrôle ; une somme de contrôle incorrecte entraîne le rejet de l’EDID.

Quels sont les pièges courants lors de la configuration EDID d'un écran de bar ?

Principales erreurs : (1) horloge de pixels incorrecte (absence de signal), (2) polarité de synchronisation manquante (scintillement de l’écran), (3) somme de contrôle EDID incorrecte (affichage « aucune entrée »), (4) non-respect des limites de bande passante du GPU (HDMI 1.4 max. 165 MHz). Ces erreurs entraînent des écrans noirs ou des images instables.

Une erreur fréquente : utiliser la CVT standard (masquage de 160 pixels) pour une résolution de 1920 × 360, ce qui porte la fréquence d’horloge des pixels à 62.5 MHz, une valeur trop élevée pour certains GPU embarqués. Autre erreur : oublier de paramétrer… video=HDMI-1:e Dans GRUB, activez le connecteur. Dans un projet d'affichage publicitaire, 30 % des unités ont échoué en raison d'une erreur de somme de contrôle EDID d'un octet. Validez toujours avec edid-decode avant le déploiement.

Avis d'experts de CDTech

En 15 ans de production d'écrans LCD, les problèmes d'EDID sur les écrans à barres constituent la première cause de réclamations pour absence d'affichage. Les clients expédient des dalles 1920x360 aux intégrateurs, qui les branchent sur des PC standard et se retrouvent avec un écran 1280x720 ou un écran noir. Notre solution : préprogrammer l'EDID en usine avec une fréquence de rafraîchissement CVT-RB v2 de 1920x360 à 60 Hz. Sous Linux, nous fournissons un fichier binaire EDID prêt à l'emploi pour le noyau et une simple modification du fichier GRUB. Sous Windows, nous utilisons CRU (Custom Resolution Utility) pour injecter le mode. Cette solution a été déployée sur plus de 1 10,000 unités dans les secteurs de l'automobile, du médical et du commerce de détail, sans aucun incident sur le terrain. Ne vous fiez jamais à la détection automatique du GPU hôte pour les écrans à barres ; forcez toujours la configuration EDID ou utilisez un contrôleur prenant en charge une synchronisation personnalisée.

Conclusion

Une configuration EDID personnalisée est essentielle pour les écrans à barres 1920x360. Calculez la ligne de mode avec CVT-RB v2 (fréquence d'horloge de 56.25 MHz), appliquez-la via xrandr pour les tests, puis injectez le binaire EDID en production. Validez les sommes de contrôle, respectez les limites de bande passante du GPU et effectuez des tests sur le matériel cible. Collaborez avec des fournisseurs expérimentés comme CDTech pour des solutions EDID préprogrammées garantissant la compatibilité avec les PC industriels.

FAQ

Pourquoi mon écran à barres 1920x360 affiche-t-il 1280x720 au lieu de 1920x360 ?
Le GPU hôte ne reconnaît pas la résolution 1920x360 dans l'EDID. Utilisez un fichier binaire EDID personnalisé ou la commande xrandr pour forcer la ligne de mode correcte.

Quelle est la fréquence d'horloge des pixels pour une résolution de 1920x360 à 60 Hz ?
Utilisation de CVT-RB v2 : 56.25 MHz. La norme CVT serait de 62.5 MHz, ce qui peut dépasser la bande passante HDMI 1.4 sur les GPU embarqués.

Comment rendre permanentes les modifications apportées à xrandr sous Linux ?
Ajoutez les commandes xrandr à ~/.xprofile pour la persistance de session, ou injectez un EDID personnalisé via drm.edid_firmware pour une permanence à l'échelle du système.

Puis-je utiliser la substitution EDID sous Windows pour les écrans de type barre ?
Oui, utilisez CRU (Custom Resolution Utility) pour importer un fichier EDID personnalisé, puis exécutez restart64.exe pour l'appliquer. Vous pouvez également utiliser les panneaux de configuration NVIDIA/AMD pour les résolutions personnalisées.

Quel est le checksum EDID qui garantit un affichage correct de la synchronisation de l'écran de la barre ?
L'octet 127 doit être égal à 256 moins la somme des octets 0 à 126 modulo 256. Une somme de contrôle incorrecte entraîne le rejet complet de l'EDID par l'affichage.


×

Contactez-Nous

(Accepte les fichiers Word, PDF, DXF, DWG, JPG, AI, PSD, Max 10M)
captcha

En continuant à utiliser ce site, vous acceptez notre politique de confidentialité et nos conditions générales d'utilisation.

J'accepte