banner
Lar / Notícias / DisplayPort: sob o capô
Notícias

DisplayPort: sob o capô

Jun 15, 2023Jun 15, 2023

Da última vez, analisamos tudo o que torna o DisplayPort único para seus usuários. E as coisas que o tornam único para hackers? Vamos examinar todas as maneiras pelas quais o DisplayPort pode atendê-lo em suas aventuras de disputas tecnológicas modernas.

Com o DisplayPort, o barramento I2C que sempre vimos junto com VGA, DVI e HDMI não existe mais – foi substituído pelo barramento AUX. AUX é um par de diferenças bidirecional de 1 MHz – um pouco complexo demais para um analisador lógico barato, embora, possivelmente, seja algo que você possa discutir com os PIOs do RP2040. Deixando de lado os pensamentos sobre hackers, é um substituto transparente para I2C, para que o software não precise ser reescrito - por exemplo, ele geralmente faz passagem de dispositivo I2C por AUX, para que os dados EDID ainda possam ser armazenados em um chip EEPROM separado no monitor ou painel LCD eDP.

AUX não é apenas um barramento diferencial, é mais pseudodiferencial, como USB2 - por exemplo, AUX_P e AUX_N são usados ​​separadamente, com uma combinação de pullups e pulldowns de 1 MΩ e 100 kΩ sinalizando diferentes estados da conexão física - por exemplo, um pullup em AUX+ e um pulldown em AUX- significa que um dispositivo externo foi conectado. Se você quiser saber qual combinação de resistores significa o quê, você pode encontrar na especificação DisplayPort, que não é distribuída abertamente, mas também não é difícil de encontrar.

Além disso, o treinamento do link DisplayPort acontece em AUX e, para facilitar isso, um pedaço da memória externa do controlador DisplayPort geralmente é exposto no canal AUX, por meio de um mecanismo chamado DPCD. Se você pesquisar um pouco, usando “DPCD” como palavra-chave, poderá facilmente acessar os detalhes de nível inferior de sua conexão DisplayPort. Parte do mapa de memória DPCD é estática e algumas partes são FIFOs para os quais você pode canalizar dados para dentro ou para fora. Você pode encontrar uma grande variedade de documentos online que descrevem a estrutura do DPCD - por enquanto, aqui está um pedaço do Bash que funciona em drivers gráficos Linux para AMD e Intel e mostrará os primeiros 16 bytes do DPCD:

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

Em particular, o quarto nibble (dígito) aqui descreve a quantidade de pistas para o link DisplayPort estabelecido – como você pode ver, meu laptop usa um link de quatro pistas. Além disso, o caminho /dev/drm_dp_aux0 pode precisar ser ajustado para o seu dispositivo. Caso você queira depurar seu link DP, ter acesso direto ao espaço de memória DPCD como este pode ajudá-lo bastante! Por enquanto, vamos passar para outros aspectos práticos.

E se você tiver um display eDP em mãos e quiser reutilizá-lo em um projeto? Primeiro, você vai querer saber a pinagem. Para monitores de laptop, as pinagens do painel eDP são razoavelmente padronizadas - há três pinagens, uma delas de 30 pinos de 2 pistas, uma de 40 pinos de 2 pistas com pinos extras USB e I2C para conectar uma tela sensível ao toque e uma de 40 pinos. conector de pinos com 4 pistas e sem suporte para touchscreen; você pode ver mais detalhes sobre essas pinagens aqui. Existem outras pinagens, mas são raras - meu amigo encontrou até agora uma tela em um tablet Wacom, que usa a pinagem de 30 pinos, mas inverte os pinos, de modo que o pino 1 seja mapeado para o pino 30 do conector e assim por diante ; isso, infelizmente, resultou em fumaça mágica. Dito isto, isso é raro, e uma rápida observação do traçado da placa ou mesmo uma verificação do multímetro irá poupá-lo de tais problemas se você não tiver certeza. Além disso, a ficha técnica do painel responderá a todas as suas perguntas, senão todas.

Se a sua pinagem for de 30 pinos, você está com sorte – há uma grande variedade de placas de driver com o mesmo hardware e firmware personalizado para o painel; também existem placas genéricas que tendem a funcionar bem com painéis 1920 x 1080, a resolução mais popular para telas de laptop nos últimos cinco anos. No entanto, parece que essas placas podem criar certos tipos de atalhos quando se trata de gerenciamento de link DisplayPort - quer elas assumam parâmetros de treinamento de link do painel para o qual estão programadas, ou talvez seja o formato de pixel, mas minha experiência mostrou - se você puder pegar uma placa rotulada para ser programada para seu painel específico, considere fazer exatamente isso; caso contrário, ele poderá não iniciar ou você poderá obter interfaces visuais ou oscilações estranhas. Por outro lado, à medida que comecei a reutilizar telas de laptops, descobri algumas placas onde a resolução do painel DP pode ser definida com jumpers, e elas provaram ser mais do que universais o suficiente, então se você puder pegue um junto com seu pedido de placa pré-programado, você poderá ser recompensado com maior compatibilidade do que esperaria em qualquer outra aventura de ajustes no eDP.