Transmisión de HDMI / DVI a través de un FPGA sin soporte para TMDS

7

Espero poder emitir HDMI / DVI-D para mi próximo proyecto FGPA pero mi FPGA no tiene soporte nativo para salidas TMDS. El FPGA es un Spartan 3E y creo que solo tiene soporte para la señalización diferencial LVDS.

Leí mucho en línea acerca de la señalización diferencial y tengo una idea general de cómo funciona, pero estoy confundido acerca de los diferentes estándares. También he pasado por las especificaciones de HDMI, pero es muy seco y parece presumir de antemano una cierta familiaridad con estos conceptos que no tengo.

Por ejemplo, ¿qué es exactamente TMDS vs LDVS? ¿Es TMDS solo un esquema de codificación ejecutado sobre LVDS? ¿Son TMDS y LVDS solo estándares para la señalización diferencial pero con diferentes características eléctricas? La ausencia de resultados de búsqueda de LVDS a chips convertidores TMDS sugiere que mi entendimiento está roto aquí.

En un sentido práctico, me pregunto si puedo conectar simplemente una placa de salida HDMI directamente a los pines de entrada de mi FPGA, configurar esos pines al estándar LVDS IO y esperar que funcione (dado que el lado del software está escrito correctamente). Algunos sitios web implican que puedo, pero parece que todos sus FPGA han incorporado controladores TMDS donde el mío no. Otros sitios dicen que necesito soporte de TMDS pero luego continúo diciendo que LVDS también funciona. Wikipedia parece sugerir que LVDS se está eliminando gradualmente como estándar para transmitir datos a través de DVI o HDMI.

¿Puede alguien ayudarme a aclarar cualquier malentendido sobre cómo funciona todo esto?

    
pregunta tangrs

2 respuestas

6

Buenas preguntas. Recientemente he estado investigando este tema y trataré de proporcionar algunas respuestas breves aquí.

  

¿Qué es exactamente TMDS vs LDVS?

LVDS (señalización diferencial de bajo voltaje) es simplemente una especificación eléctrica para una interfaz de señalización diferencial, mientras que TMDS (señalización diferencial minimizada en transición) es una especificación eléctrica Y un esquema de codificación 8b / 10b específico. Desafortunadamente, las especificaciones eléctricas no son directamente compatibles, aunque hay varias formas de "adaptarse" unas a otras en ciertas circunstancias.

Eléctricamente, LVDS usa controladores de tótem y terminación diferencial (100-120Ω), mientras que TMDS usa controladores de colector abierto CML (lógica de modo actual) y terminaciones individuales de 50Ω a + 3.3V. Los IOB de Spartan-3E no son compatibles directamente con CML.

Luego está la cuestión de la codificación TMDS. Los IOB de Spartan-3E tienen soporte para DDR, con velocidades de datos de hasta 628 Mb / s, pero sin lógica SERDES de alta velocidad dedicada. Tendría que hacer la codificación y decodificación TMDS en el tejido FPGA, utilizando el soporte DDR en las IOB para obtener los flujos de bits finales. Esto lo limitaría a tasas de píxeles de 62.8 Mp / s o menos.

  

En un sentido práctico, me pregunto si puedo conectar simplemente una placa de salida HDMI directamente a los pines de entrada de mi FPGA, configurar esos pines al estándar LVDS IO y esperar que funcione

No, no en el lado de la entrada, al menos no sin un poco de esfuerzo para terminar el TMDS correctamente y luego acoplarlo con la polarización adecuada a los receptores LVDS en el FPGA (todo esto mientras se mantiene una impedancia diferencial precisa de 100Ω) . Tenga en cuenta que los proyectos de muestra a los que se vincula son todos ejemplos de salida solamente. Conducir DVI / HDMI desde una salida LVDS parece ser mucho más tolerante; parece que no han agregado ningún sesgo o resistencias de terminación a sus PCB.

Lo mejor sería usar chips externos de entrada y salida DVI / HDMI y hacer la conexión al FPGA a través de sus buses paralelos. He utilizado Partes de dispositivos analógicos en el pasado.

    
respondido por el Dave Tweed
1

TMDS utiliza CML (lógica de modo actual) que se termina en Vcc en el extremo receptor. LVDS de la norma (IEEE644) es un controlador de modo de voltaje que se termina a través de los pares también en el extremo receptor. Pero no es tan simple como eso, ya que los controladores LVDS a menudo controlan la velocidad de giro en las transiciones para evitar el timbre y otros efectos desagradables, y durante este modo, el controlador actúa más como una fuente actual.

Sin embargo, en una lectura estricta, estos dos estándares son diferentes e incompatibles. El esquema de codificación en la parte superior de esta capa física (DDR 8b / 10b, etc.) son operaciones lógicas.

Hay chips de traducción (uno de TI es SN65CML100), así que puedes agregarlo al tablero. Es interesante que este chip también puede ser un puente de CML a CML, por lo que probablemente haya una buena lectura de esa hoja de datos que lo ayudará a comprender mejor.

Curiosamente, este hoja de datos (advertencia se abre como pdf) dice que el LVDS acoplado a un condensador puede controlar las entradas de CML. página 14 "Un controlador LVDS acoplado a CA suele ser útil como controlador CML".

Dado que está considerando recibir TDMS en una entrada DVI, es posible que funcione. Lo ideal sería terminar el par a Vcc pero el LVDS probablemente tendrá una fase cruzada de terminación integrada en el dispositivo que no se puede eliminar. Así que eso es una complicación ya que la terminación será el valor incorrecto y tendrás un divisor de resistencia en tu entrada.

Y, finalmente, aquí hay un enlace a una nota de aplicación de Ti (otra vez otro pdf) y significa la terminación arriba. pero hay una nota:

  

En general, se recomienda el acoplamiento de CA al conducir el receptor LVDS con   CML. Si el receptor LVDS tiene un amplio rango de modo común que puede aceptar   una entrada CML (el rango de modo común debe ir al riel VCC), luego un dc acoplado   la conexión es una conexión directa.

por lo que el rango de modo común del receptor LVDS es importante. Tampoco muestran una terminación interna, lo que puede ser un problema para un FPGA. Aquí está la imagen recortada de esa nota de la aplicación.

SilaentradaLVDStienecapacidadparamúltiplesrangosdeoscilacióndevoltaje,entoncesesposiblequetengasuerte.Algunos"LVDS" funcionan con solo 500 mV de giro, por ejemplo.

    
respondido por el placeholder

Lea otras preguntas en las etiquetas