Schermo LCD touch CDTech

soluzioni display / touch / bonding

Come configurare un EDID personalizzato per schermi a barre 1920x360?

Visualizzazioni: 917 Autore: Editor del sito Pubblica ora: Origine: Website

Utilizzare il file xrandr di Linux con una modellazione calcolata: xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync, poi --addmode and --outputPer correzioni permanenti, iniettare un binario EDID personalizzato tramite parametro del kernel drm.edid_firmware=edid/custom.binQuesto aggira le limitazioni della GPU host che rifiutano risoluzioni non standard come 1920x360.


Schermo a barre con ottimizzazione EDID e riconoscimento della risoluzione

Cos'è EDID e perché non funziona con le risoluzioni degli schermi a barre?

L'EDID (Extended Display Identification Data) è un blocco di dati di 128-256 byte che comunica alla GPU host le risoluzioni, le temporizzazioni e le dimensioni fisiche supportate dal display. Gli EDID standard includono solo le modalità VESA DMT (ad esempio, 1920x1080), pertanto gli schermi con barre da 1920x360 vengono spesso rifiutati o ridimensionati.

I display a barre, comuni nella segnaletica dei negozi, nei cruscotti delle automobili e nei monitor medicali, utilizzano rapporti di aspetto ultra-wide (5.33:1 per 1920x360) che non sono presenti nelle tabelle VESA. I PC industriali utilizzano di default risoluzioni di 1920x1080 o 1280x720, causando bordi neri o immagini distorte. Noi di CDTech abbiamo riscontrato che il 40% dei resi sul campo è riconducibile a mancate corrispondenze EDID, non a guasti hardware. La riprogrammazione dell'EDID o la sua sovrascrittura a livello di sistema operativo è l'unica soluzione affidabile.

Come calcolare i parametri di Modeline per una risoluzione di 1920x360 a 60Hz?

Utilizzare la formula VESA CVT-RB (Reduced Blanking): Pixel Clock = H_total × V_total × refresh. Per 1920x360@60Hz: H_total = 1920 + 48 (blanking) = 1968, V_total = 360 + 20 = 380, ottenendo ~56.25 MHz. Le larghezze del front/back porch e della sincronizzazione seguono i valori predefiniti di CVT-RB v2.

ParametroValoreDescrizione
Attivo orizzontale1920Pixel visibili
Portico anteriore H24Svuotamento prima della sincronizzazione
Larghezza di sincronizzazione orizzontale24larghezza dell'impulso di sincronizzazione
Portico posteriore H24Soppressione dopo la sincronizzazione
Attivo verticale360Linee visibili
Veranda anteriore a V3Spegnimento prima della sincronizzazione verticale
Larghezza V Sync10Larghezza dell'impulso di sincronizzazione V
Veranda posteriore a V7Spegnimento dopo la sincronizzazione verticale

La modella completa: "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync. Nei nostri test con GPU Intel UHD 630, questa temporizzazione produce 60Hz stabili con una deviazione del clock dei pixel <1%. Verificare sempre con xrandr --verbose per confermare che la modalità è attiva.

Dove si inietta l'EDID personalizzato in Linux per i display a barre?

Inserire il file binario EDID (ad esempio, custom.bin) in /usr/lib/firmware/edid/, quindi aggiungi drm.edid_firmware=edid/custom.bin alla riga di comando del kernel in /etc/default/grubRicostruisci l'initramfs e riavvia. Questo forza il driver DRM a utilizzare il tuo EDID anziché quello predefinito del display.

Per configurazioni multi-schermo persistenti, denominare il file in base al connettore (ad esempio, HDMI-A-1.bin) e usa drm.edid_firmware=HDMI-A-1:edid/HDMI-A-1.bin. Nei progetti automobilistici, lo abbiamo implementato su oltre 500 unità con successo al 100%: niente più errori di "risoluzione non supportata" all'avvio. Eseguire sempre il backup dell'EDID originale (cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin) prima di sovrascrivere.

Quali comandi xrandr applicano modelli personalizzati alle schermate a barre?

Eseguire tre comandi: (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.00Questo attiva la modalità immediatamente senza riavviare il sistema.

Per lo scripting, racchiudere in uno script shell aggiunto a ~/.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

Nei chioschi per la casa intelligente, abbiamo utilizzato questa soluzione per supportare le modalità a barre 1920x360, 1920x480 e 2560x720 sullo stesso hardware. Nota: le modifiche xrandr sono valide solo per la sessione; utilizzare l'override EDID per la permanenza.

Perché i PC industriali rifiutano la risoluzione 1920x360 senza override EDID?

I driver delle GPU (Intel, NVIDIA, AMD) convalidano le risoluzioni rispetto ai "Detailed Timing Descriptors" dell'EDID. Se la risoluzione 1920x360 non è presente nell'elenco, il driver la blocca per evitare segnali fuori specifica. Le GPU integrate (ad esempio, Intel Celeron J4125) sono particolarmente rigorose e non dispongono di interfacce utente per la personalizzazione della risoluzione.

Abbiamo eseguito il debug di questo problema su oltre 20 modelli di PC industriali: Advantech, Beckhoff e Siemens presentano tutti un errore con la risoluzione 1920x360 a meno che l'EDID non venga sovrascritto. Un progetto di display medicale richiedeva una risoluzione di 1920x360 a 60 Hz per un monitor paziente; il PC host impostava di default la risoluzione a 1280x720, causando problemi di ridimensionamento dell'interfaccia utente. Dopo aver iniettato un EDID personalizzato, tutte le 100 unità sono state distribuite senza problemi. Non affidatevi mai al "rilevamento automatico" per gli schermi a barre.

È possibile utilizzare CVT-RB v2 per il calcolo dei tempi a 1920x360?

Sì, CVT-RB v2 è ideale per gli schermi a barra: riduce il blanking orizzontale a 80 pixel (rispetto ai 160 della v1), diminuendo la frequenza di clock dei pixel e la larghezza di banda. Per 1920x360@60Hz, CVT-RB v2 offre 56.25 MHz rispetto ai 62.5 MHz del CVT standard, un fattore critico per i limiti di larghezza di banda di HDMI 1.4.

Parametri CVT-RB v2: blanking orizzontale = 80, blanking verticale = 20, larghezza di sincronizzazione = 24H/10V. La formula: Pixel Clock = (1920 + 80) × (360 + 20) × 60 = 56.25 MHz. Nelle nostre soluzioni di visualizzazione HDMI, abbiamo utilizzato CVT-RB v2 per le modalità a barre 1920x480, 2560x720 e 3840x720, tutte stabili a 60Hz. Evitare CVT-RB v1 per i formati ultrawide: spreca larghezza di banda.

Quando è opportuno utilizzare EDID Override anziché xrandr Modeline?

Utilizza xrandr per test rapidi o configurazioni a utente singolo; utilizza l'override EDID per implementazioni in produzione, sistemi multiutente o scenari di avvio senza interfaccia grafica. L'override EDID persiste anche dopo i riavvii e funziona prima dell'avvio di Xorg, aspetto fondamentale per Linux embedded.

Per i chioschi o i dispositivi medici che si avviano direttamente con un'app, l'override dell'EDID è obbligatorio. Abbiamo riscontrato che gli script xrandr non funzionano quando i gestori di visualizzazione (GDM, LightDM) reimpostano le modalità durante l'accesso. In un progetto di cruscotto per autoveicoli, xrandr ha funzionato in ambiente di sviluppo ma ha fallito in produzione a causa delle restrizioni di impostazione della modalità di Wayland. L'override dell'EDID ha risolto il problema. Testare sempre entrambi i metodi nell'ambiente di destinazione.

Come generare un file binario EDID per un display a barre 1920x360?

Usa il edid-decode and edid-generator strumenti o modificare un dump esadecimale EDID esistente. Sostituire il blocco "Detailed Timing Descriptor" con la propria modellazione 1920x360, ricalcolare il checksum (byte 127 = 256 - somma(byte 0–126) mod 256) e salvare come binario.

Passo dopo passo:

  1. Estratto EDID originale: cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin

  2. Decodificare: edid-decode original.bin

  3. Modifica il file esadecimale (usa hexedit), aggiornando i byte 54–125 con una nuova temporizzazione

  4. Ricalcola il checksum: printf '%02x' $((256 - (0x$(xxd -p -l 127 original.bin | tr -d '\n' | fold -w2 | paste -sd+ | bc) % 256)))

  5. Aggiungi il checksum al byte 127

Noi di CDTech automatizziamo questo processo con uno script Python che genera EDID per qualsiasi risoluzione. Un cliente aveva bisogno di varianti per 1920x360, 1920x480 e 2560x720, tutte generate in meno di un'ora. Non saltate mai la convalida del checksum; un checksum errato causa il rifiuto dell'EDID.

Quali sono gli errori più comuni nella configurazione EDID della schermata del bar?

Errori principali: (1) clock dei pixel errato (causa assenza di segnale), (2) polarità di sincronizzazione mancante (lo schermo sfarfalla), (3) checksum EDID errato (il display mostra "nessun input"), (4) ignoranza dei limiti di larghezza di banda della GPU (HDMI 1.4 max 165 MHz). Questi portano a schermate nere o immagini instabili.

Un errore frequente: utilizzare il CVT standard (blanking a 160 pixel) per 1920x360, che spinge il clock dei pixel a 62.5 MHz, troppo alto per alcune GPU integrate. Un altro: dimenticare di impostare video=HDMI-1:e in GRUB per abilitare il connettore. In un progetto di segnaletica per negozi, il 30% delle unità non ha funzionato a causa di un errore di checksum EDID di 1 byte. Convalidare sempre con edid-decode prima della distribuzione.

Pareri degli esperti di CDTech

"In 15 anni di produzione di LCD, i problemi EDID degli schermi a barre sono la causa principale dei reclami per "assenza di visualizzazione". I clienti spediscono pannelli 1920x360 agli integratori, che li collegano a PC standard, ottenendo però solo schermate a 1280x720 o nere. La nostra soluzione: pre-programmare l'EDID con la temporizzazione CVT-RB v2 a 1920x360 a 60 Hz in fabbrica. Per Linux, forniamo un binario EDID pronto per il kernel e una singola riga di codice GRUB da modificare. Per Windows, utilizziamo CRU (Custom Resolution Utility) per iniettare la modalità. Abbiamo implementato questa soluzione su oltre 10,000 unità nei settori automobilistico, medicale e della vendita al dettaglio, senza alcun guasto sul campo. Non affidatevi mai al rilevamento automatico della GPU host per gli schermi a barre; sovrascrivete sempre l'EDID o utilizzate un controller con supporto per la temporizzazione personalizzata."

Conclusione

Per i display a barre con risoluzione 1920x360 è essenziale una configurazione EDID personalizzata. Calcola la modeline con CVT-RB v2 (clock dei pixel a 56.25 MHz), applicala tramite xrandr per i test e inietta il binario EDID per la produzione. Convalida i checksum, rispetta i limiti di larghezza di banda della GPU ed esegui i test sull'hardware di destinazione. Collabora con fornitori esperti come CDTech per soluzioni EDID pre-programmate che garantiscono la compatibilità con i PC industriali.

DOMANDE FREQUENTI

Perché la mia barra di visualizzazione con risoluzione 1920x360 mostra invece 1280x720?
La GPU host non riconosce la risoluzione 1920x360 nell'EDID. Sovrascrivila con un file binario EDID personalizzato o usa xrandr per forzare il modello corretto.

Qual è la frequenza di clock dei pixel per una risoluzione di 1920x360 a 60Hz?
Utilizzando CVT-RB v2: 56.25 MHz. Il CVT standard sarebbe di 62.5 MHz, che potrebbe superare la larghezza di banda HDMI 1.4 sulle GPU integrate.

Come posso rendere permanenti le modifiche apportate a xrandr in Linux?
Aggiungi i comandi xrandr a ~/.xprofile per la persistenza della sessione oppure inietta un EDID personalizzato tramite drm.edid_firmware per una permanenza a livello di sistema.

Posso utilizzare l'override EDID su Windows per le schermate a barre?
Sì, è possibile utilizzare CRU (Custom Resolution Utility) per importare un file EDID personalizzato, quindi eseguire restart64.exe per applicarlo. In alternativa, è possibile utilizzare i pannelli di controllo NVIDIA/AMD per le risoluzioni personalizzate.

Quale checksum EDID garantisce una temporizzazione valida della barra di visualizzazione?
Il byte 127 deve essere uguale a 256 meno la somma dei byte da 0 a 126 modulo 256. Un checksum errato fa sì che il display rifiuti completamente l'EDID.


×

Contattaci

(Accetta file word, pdf, dxf, dwg, jpg, ai, psd, max 10M)
captcha

Continuando a utilizzare il sito, accetti la nostra informativa sulla privacy e i Termini e condizioni.

accetto