Bom dia, Habr!

Desenvolvimento de cabo de extensão de fibra óptica HDMI para 300 metros. Recusa do canal de retorno (transmissão de dados em um cabo de fibra óptica). Clonando EDID no monitor.
O padrão HDMI é amplamente utilizado em muitas áreas em que você deseja exibir a imagem na tela. Pessoalmente, consegui transmitir o sinal através de um cabo HDMI a uma distância de 10 metros (simplesmente não era mais necessário). Eu acho que sem perda de qualidade, você pode transferir a imagem para uma distância de 30-40m. As principais desvantagens no caso de prender esse cabo são o seu diâmetro e tamanho, diretamente, dos conectores. A maneira mais fácil de excluir o cabo é usar um cabo de extensão sem fio, acho que será possível atingir 100-150 metros, mas não vou dizer com certeza. Infelizmente, nem todos os objetos, por um motivo ou outro, permitem o uso de redes sem fio. E se você precisar ainda mais?
Fig. 1. Cabo HDMI e óptica (LC)Obviamente, a óptica provavelmente não é a melhor opção para a transmissão de vídeo, mas ao usar PCs e monitores fixos, nem é nada. A primeira tese é o diâmetro do cabo óptico (no meu caso, é de 2-3 mm) e o diâmetro do conector do cabo de fibra óptica. O segundo é, obviamente, a distância. Olhando para o futuro, direi que os testes foram realizados em um cabo de 300m de diâmetro externo (3mm).
Base elementar
Ao desenvolver a base de elementos, a escolha recaiu inesperadamente na empresa chinesa SiFotonics, especializada nesse tipo de equipamento. Para começar, estudamos seus produtos e obtivemos duas depurações que conectamos com um cabo óptico de trezentos metros e garantimos que tudo funcionasse perfeitamente. Eles também possuem receptores / transmissores ópticos SFP (ROSA / TOSA), serializadores / desserializadores, drivers, etc.
Princípio de funcionamento
Para conectar e operar os dispositivos, é necessário conectar dois cabos ópticos e aplicar energia (cabo microUSB). Se fizermos uma analogia com um cabo HDMI convencional, no qual há I2C para trocar uma tabela EDID, tudo será o mesmo - um canal para transferência de dados, o segundo - para transferir EDID do monitor para a placa de vídeo. Os dados são transmitidos a uma velocidade de 10 Gbps. Rasgando o cabo do canal de retorno, a imagem desaparece invariavelmente. Nesse momento, surgiram algumas dúvidas e se estão sendo transmitidos dados de serviço ou marcas de sincronização no canal de retorno, ou talvez os dispositivos estejam monitorando conexões entre si ...
Fig. 2. A composição dos módulosA primeira iteração da placa, também é um layout, ficou com tamanho 20X45mm. Com um conector de energia “lateral”, para facilitar a distribuição de barramentos de energia em aterros sanitários. Total de 4 camadas acabou. Por que essa configuração de PCB é ruim, escreverei mais tarde. Os desenvolvedores de depuração complicados usaram 0201 passivo, o que eu absolutamente não queria fazer, então usei 0402 e um mingau de capacitor sob o chip.
Fig. 3. Modelo 3D do layout da placa do módulo de origemComo escrevi acima, minha tarefa não era apenas formar um casal com uma distância de trabalho de 300 metros, mas também remover o canal de retorno da óptica. Mesmo no estágio de desenvolvimento, decidimos não nos envolver na finalização do software chinês (embora tenhamos sido gentilmente fornecidos com todas as fontes), porque, primeiro, esse é um monte de linhas de código estranhas em um compilador incompreensível e, em segundo lugar, a SiFotonics pode fornecer chips flash, que É muito conveniente, pois é muito difícil usar dispositivos flash como parte da produção. Para que o leitor não pense que estou exagerando ao falar sobre as dificuldades, darei uma foto do estande de programação.
Fig. 4. Suporte para programação e diagnósticoSim, sim, como você provavelmente já adivinhou, os contatos JTAG para programação são enviados para contatos microUSB e para alguns contatos HDMI que costumavam ser GND. Devo dizer imediatamente que isso não afetou a qualidade do trabalho. Então fique de pé. Para programar o chip, você deve primeiro montar um circuito do suporte e colocar o chip no modo de programação usando software especializado. Em seguida, você precisa montar outro circuito e usar o outro software para exibir a placa. Depois disso, ele entra automaticamente no modo de trabalho.
Em geral, parece-me que isso é impraticável, mesmo para 1000 peças.
Vamos voltar ao canal reverso. Para armazenar tabelas EDID, precisamos de uma EEPROM e precisaremos alterar seu endereço rapidamente. Ele levou o N24C02UDTG em um pacote miniatura de US-8. Para sua programação, utilizo o microcontrolador STM32F031G4U6, também no menor pacote que pode ser encontrado em domínio público - UFQFPN-28. Também peguei o interruptor TPS27081ADDCR. E aqui está o que eu tenho:
Fig. 5. Esquema de implementação da clonagem EDIDA ideia é a seguinte. Este circuito é implementado no módulo de transmissão (aquele que se conecta ao PC). Para clonar um monitor EDID, o dispositivo se conecta ao monitor. Por padrão, o endereço EEPROM em nosso módulo não deve coincidir com o endereço EEPROM no monitor (durante a leitura), ou seja, pode ser qualquer outro, por exemplo, tornei a perna A0 gerenciável. No momento da conexão ao monitor, a energia é fornecida à EEPROM e a perna A0 é puxada para o resistor lógico "0". Duas EEPROMs com os mesmos endereços estão penduradas no barramento i2c, mas isso não é crítico, pois ainda não estamos trabalhando com elas. No meu circuito, há também um botão e LED para indicar erros / energia EDID / firmware. Um breve toque no botão altera o endereço e permite que o microcontrolador comece a ler / gravar EDID. Redefinimos a EEPROM com energia (apenas no caso) quando recebemos o sinal do botão, lemos o EDID do monitor e imediatamente o gravamos em nosso chip. Piscamos 3 vezes com o LED e desligamos a energia da EEPROM. A leitura / gravação ocorre instantaneamente, portanto é feito um atraso forçado para piscar, para que o usuário entenda que algo está acontecendo. Ou seja, começamos a piscar quando já é possível deixar ir. Se algo estiver errado, não acenda o LED.
Em seguida, conecte o módulo ao PC e veja imediatamente o novo monitor nas configurações. O problema está resolvido.
Para programar o microcontrolador trouxe o barramento SWD.
Fig. 6. Verso da placa do móduloFuncionalidades
Depois de todo o trabalho realizado com a clonagem EDID, removi o canal óptico reverso e tudo funcionou perfeitamente. Nessas experiências, a energia veio de um PC USB. Durante a inicialização, o computador (em qualquer caso o meu) desliga a alimentação USB por um momento e a imagem do BIOS pisca no monitor - isso não é crítico. Depois, retirei os módulos de canal reverso dos dispositivos e, depois disso, a imagem parou de se recuperar. E isso foi precisamente devido à falta de um módulo TOSA no dispositivo de monitor. Tentei imitar a presença de um laser, mas sem sucesso. Estou quase certo de que esse problema pode ser resolvido pelo firmware, mas decidimos não entrar nele. Um milagre aconteceu quando eu conectei os dois dispositivos (receptor e transmissor) às fontes de alimentação (como, aliás, foi indicado na declaração de trabalho). A imagem parou de piscar e desapareceu. Se você distorcer a energia dos dispositivos durante a operação, a imagem será restaurada sem problemas.
Fig. 7. Circuito de comutação do módulo transmissor (laser)Agora, de volta à configuração da placa de circuito impresso e ao conector de alimentação lateral. Essa implementação foi inicialmente inconveniente e adequada apenas para o layout. No dispositivo de liberação, reduzi a largura da placa para 16,3 mm e coloquei o conector de energia no lugar do módulo óptico do canal reverso - isso permitirá incluir vários dispositivos em uma placa de vídeo. Caso contrário, o conector de alimentação interferiu comigo e a placa era muito larga.
Fig. 8. Placas estreitas de receptor e transmissorAqui, é claro, houve muitas re-ligações e rearranjos de componentes. As faixas de suprimentos foram completamente refeitas para otimizar esses tamanhos e transferir o conector microUSB. Como você pode imaginar, os casos para os dois dispositivos são idênticos; portanto, a configuração da placa, os conectores e o módulo óptico estão localizados da mesma forma. O corpo é fresado em alumínio e é um dissipador de calor para o processador e o driver. As saliências para esses componentes são fresadas por dentro e também localizadas da mesma maneira.
Conclusão
No momento, quatro pares de dispositivos são soldados, os testes são realizados em um cabo longo em diferentes monitores e TV. Não há queixas sobre o trabalho. Verificamos apenas em fullHD e abaixo.
Obrigado e até breve!