banner
Casa / Notizia / DisplayPort: sotto il cofano
Notizia

DisplayPort: sotto il cofano

Jun 15, 2023Jun 15, 2023

L'ultima volta abbiamo esaminato tutti gli aspetti che rendono DisplayPort unico per i suoi utenti. Che dire delle cose che lo rendono unico per gli hacker? Entriamo in tutti i modi in cui DisplayPort può esserti utile nelle tue avventure tecnologiche moderne.

Con DisplayPort, il bus I2C che abbiamo sempre visto fornito in bundle con VGA, DVI e HDMI, non esiste più: è stato sostituito dal bus AUX. AUX è una coppia differenziale bidirezionale da 1 MHz – semplicemente un po' troppo complessa per un analizzatore logico economico, anche se, forse, qualcosa con cui potresti litigare con i PIO dell'RP2040. A parte i pensieri di hacking, è un sostituto trasparente per I2C, quindi il software non deve essere riscritto: ad esempio, di solito esegue il passthrough del dispositivo I2C su AUX, in modo che i dati EDID possano ancora essere archiviati in un chip EEPROM separato sul monitor o pannello LCD eDP.

AUX non è solo un bus differenziale, è più pseudodifferenziale, come USB2 – ad esempio, AUX_P e AUX_N sono usati separatamente, con una combinazione di pullup e pulldown da 1 MΩ e 100 kΩ che segnalano diversi stati della connessione fisica – ad esempio, un un pullup su AUX+ e un pulldown su AUX- indicano che è stato collegato un dispositivo esterno. Se desideri sapere quale combinazione di resistori significa cosa, puoi trovarla nelle specifiche DisplayPort, che non sono distribuite apertamente ma non sono nemmeno difficili da trovare.

Inoltre, l'addestramento del collegamento DisplayPort avviene su AUX e, per facilitare ciò, una parte della memoria esterna del controller DisplayPort viene solitamente esposta sul canale AUX, attraverso un meccanismo chiamato DPCD. Se scavi un po', usando "DPCD" come parola chiave, puoi facilmente raggiungere i dettagli di livello inferiore della tua connessione DisplayPort. Parte della mappa della memoria DPCD è statica e alcune parti sono FIFO in cui è possibile incanalare o estrarre i dati. Puoi trovare un'ampia varietà di documenti online che descrivono la struttura DPCD: per ora, ecco un pezzo di Bash che funziona su driver grafici Linux per AMD e Intel e ti mostrerà i primi 16 byte di DPCD:

# sudo dd if=/dev/drm_dp_aux0 bs=1 skip=256 count=16 |xxd00000000: 0084 0000 0000 0000 0108 0000 0000 0000 ................[...]

In particolare, il quarto nibble (cifra) qui descrive il numero di corsie stabilite per il collegamento DisplayPort: come puoi vedere, il mio laptop utilizza un collegamento a quattro corsie. Inoltre, potrebbe essere necessario modificare il percorso /dev/drm_dp_aux0 per il tuo dispositivo. Nel caso in cui desideri eseguire il debug del tuo collegamento DP, avere un accesso diretto allo spazio di memoria DPCD in questo modo potrebbe aiutarti parecchio! Per ora passiamo ad altri aspetti pratici.

Cosa succede se hai un display eDP a portata di mano e desideri riutilizzarlo in un progetto? Innanzitutto, ti consigliamo di conoscere la piedinatura. Per i display dei laptop, la piedinatura del pannello eDP è ragionevolmente standardizzata: ci sono tre piedinature, una da 30 pin a 2 corsie, una da 40 pin a 2 corsie con pin USB e I2C aggiuntivi per il cablaggio di un touchscreen e una da 40- connettore pin con 4 corsie e senza supporto touchscreen; puoi vedere maggiori dettagli su questi pinout qui. Esistono altre piedinature, ma sono rare: finora il mio amico ha trovato un display all'interno di una tavoletta Wacom, che utilizza la piedinatura a 30 pin ma inverte i pin, in modo che il pin 1 sia mappato sul pin 30 del connettore e così via ; questo, purtroppo, ha prodotto un fumo magico. Detto questo, questo è raro e una rapida osservazione della traccia della scheda o anche un controllo del multimetro ti risparmieranno tali problemi se non sei sicuro. Inoltre, la scheda tecnica del pannello risponderà a tutte le tue domande, se non a tutte.

Se la tua piedinatura è quella a 30 pin, sei fortunato: c'è un'ampia varietà di schede driver con lo stesso hardware e firmware personalizzato per il pannello; esistono anche schede generiche che tendono a funzionare bene con pannelli 1920 x 1080, la risoluzione più popolare per gli schermi dei laptop negli ultimi cinque anni. Tuttavia, sembra che queste schede possano creare determinati tipi di scorciatoie quando si tratta di gestione dei collegamenti DisplayPort, sia che presuppongano parametri di addestramento del collegamento del pannello per cui sono programmate, o forse sia il formato pixel, ma la mia esperienza ha dimostrato - se riesci a prendere una scheda etichettata per essere programmata per il tuo pannello specifico, considera di farlo; in caso contrario, potrebbe non avviarsi oppure potrebbero verificarsi interfacce visive o strani sfarfallii. D'altra parte, mentre mi dedicavo al riutilizzo dei display dei laptop, ho trovato alcune schede in cui la risoluzione del pannello DP può essere impostata con i jumper e queste hanno dimostrato di essere più che sufficientemente universali, quindi se puoi prendine uno insieme al tuo ordine di scheda pre-programmato, potresti essere ricompensato con una maggiore compatibilità di quanto ti aspetteresti per qualsiasi tua ulteriore avventura di armeggiare con eDP.