quinta-feira, 11 de setembro de 2014

Adaptador permite a conexão direta de monitores VGA ao GPIO do Raspberry Pi


Como o Raspberry Pi não possui conexão VGA, as opções eram a utilização de um conversor HDMI para VGA ou placas de expansão que já incluem um conversor juntamente com adaptador.

Agora existe um jeito bem mais barato de se fazer isso e ainda com a vantagem de poder usar um monitor VGA independente da saída HDMI.

Gert van Loo, que desenvolveu a placa alpha do Raspberry Pi, a Gertboard e o Gertduino criou um adaptador VGA que é conectado aos GPIOs do Raspberry Pi B+. E você também pode criar um igual.


Adaptador VGA para Raspberry Pi
Adaptador VGA para Raspberry Pi

Segundo Gert( que é engenheiro na Broadcom ) o SoC BCM2835 que equipa o Raspberry Pi contem uma interface paralela para displays nos GPIOs. Ele cita que não informou isso no datasheet do SoC e que os pinos específicos para isso não estavam povoados no header GPIO do Raspberry Pi até a versão B+. Na nova versão todos os pinos de sinal necessários estão acessíveis, permitindo a utilização de uma porta VGA independente e com as mesmas resoluções permitidas na porta HDMI. O modo máximo de cores suportado é composto de 262144 cores.

A desvantagem é necessidade de utilizar a maior parte dos pinos GPIO, sobrando somente 6 GPIOs. É possível subverter isso diminuindo a quantidade de cores suportada( e consequentemente a qualidade da imagem ), onde o máximo de 262144 utiliza 6 bits por canal, ou seja, será necessário 6 GPIOs por canal. Para gerar os canais que são compostos pelo RGB( red, green, blue ), cada grupo de 6 GPIOs específicos por canal são ligados a uma resistor ladder que atua como um DAC arcaico, permitindo gerar as tensões necessárias para geração do nível de cores nos canais.

Outros 2 GPIOs são reservados para o sincronismo vertical e horizontal. Clique na imagem abaixo para ampliar.

esquematico vga Raspberry Pi
Esquemático da placa

Gert cita ainda para quem for construir que para uma fidelidade melhor das cores é necessário utlizar resistors com tolerância de 1%.

No faq do manual publicado, Gert tira algumas das seguintes dúvidas:

- Esse método não utilizará mais CPU do que o HDMI.
- Como eu expliquei antes só será possível a utilização no B+
- É possível utilizar no Raspberry Pi compute module desde que feitas a ligações certas.
- Será possível utilizar 2 monitores independentes( hdmi+vga ) mas cita que devido a grande quantidade de banda utilizada na memória RAM poderá não ser possível utilizar os dois na máxima resolução ao mesmo tempo. O software com esse suporte está sendo desenvolvido. Ele cita ainda que talvez seja possível utilizar até 3 monitores se contar com o LCD oficial que será conectado à interface DSI.

Segue o primeiro protótipo:

VGA no Raspberry Pi
VGA no Raspberry Pi

Os arquivos de desenvolvimento da placa, esquemático e manual foram disponibilizados no github: https://github.com/fenlogic/vga666

Segue o vídeo:



Infelizmente ainda não existe essa placa à venda e pelo que foi dito talvez somente a PCB esteja disponível primeiramente.

Aos que resolverem construir o hardware, a parte de configuração no software é fácil. É necessário realizar o seguintes passos:

- Rodar rpi-update
- Copiar o arquivo dt-blob-dpi.bin para o diretório /boot com nome de dt-blob.bin
- Adicionar as linhas "enable_dpi_lcd=1" e "display_default_lcd=1" ao arquivo config.txt
- Caso queira alterar a resolução é utilizado os parâmetros "dpi_group=" e "dpi_mode=" no config.txt, com valores iguais aos do HDMI.

Todas as informações sobre a construção e dicas podem ser vistas no manual disponibilizado.

Atualização: Posteriormente a placa foi parar no kickstarter e já há outros modelos a venda também.

Fontes:
http://www.raspberrypi.org/gert-vga-adapter/
https://github.com/fenlogic/vga666/blob/master/documents/vga_manual.pdf

Um comentário: