Lattice MachXO3L: puente MIPI CSI2

0

Me gustaría diseñar un puente MIPI CSI2 con un MachXO3L.

Aprovecho la entrada / salida LVDS25 de esta familia de FPGA con las resistencias adecuadas para el tráfico HS. (Creo) No me importa el LP, ya que la cámara funciona con un reloj de marcha libre y no es compatible con LP.

Este documento de Lattice explica lo que he estado siguiendo: enlace

Noquierodeserializar/volveraserializardatos,yaquelavelocidaddeltráficoCSI2podríasermásrápidadeloqueMachXO3Lpuedemanejardigitalmente.Quierolograrunpuente"analógico". Tal vez analógico no sea el término correcto, es más una oposición a lo digital con deserialización / re-serialización.

Mi código se parece a lo siguiente:

BLOCK RESETPATHS ;
BLOCK ASYNCPATHS ;

LOCATE COMP "clk_x1" SITE "C8" ;
FREQUENCY PORT "clk_x1" 12.000000 MHz ;
IOBUF PORT "clk_x1" PULLMODE=NONE IO_TYPE=LVCMOS25 ;


LOCATE COMP "I_CLK" SITE "R11" ;    # PB35A
#LOCATE COMP "I_CLK_N" SITE "T12" ; # PB35B

LOCATE COMP "I_DAT0" SITE "R13" ;   # PB34A
#LOCATE COMP "I_DAT0_N" SITE "T14" ;    # PB34B

IOBUF PORT "I_CLK"  PULLMODE=NONE IO_TYPE=LVDS25 DIFFRESISTOR=100 ;
IOBUF PORT "I_DAT0" PULLMODE=NONE IO_TYPE=LVDS25 DIFFRESISTOR=100 ;


LOCATE COMP "O_CLK" SITE "D10" ;    # PT27A
#LOCATE COMP "O_CLK_N" SITE "E10" ; # PT27B

LOCATE COMP "O_DAT0" SITE "F9" ;    # PT26A
#LOCATE COMP "O_DAT0_N" SITE "E11" ;    # PT26B

IOBUF PORT "O_CLK"  PULLMODE=NONE IO_TYPE=LVDS25 ;
IOBUF PORT "O_DAT0" PULLMODE=NONE IO_TYPE=LVDS25 ;

y también:

module csi_bridge(
    input clk_x1,

    input I_CLK,
    input I_DAT0,

    output O_CLK,
    output O_DAT0,
);

assign O_CLK =  I_CLK;
assign O_DAT0 = I_DAT0;

endmodule

He intentado varias cosas, pero el procesador no logra descifrar el tráfico. Obviamente, sin el FPGA intermedio, el procesador puede decodificar datos.

En el ámbito, veo cosas moviéndose en el lado de salida, intentando imitar la entrada. Mi alcance no es de ancho de banda súper alto, por lo que debo admitir que tengo algunos problemas para decir lo que realmente está mal.

¿Alguna idea de lo que debería hacer y de lo que podría faltar? ¿Son configuraciones específicas de Lattice Diamond que debería analizar?

** EDIT 1 **

Para dar más detalles, mi objetivo al final es replicar una lógica similar a Fairchild FSA642: enlace . He probado a fondo este chip y estoy 100% seguro de que no deserializan / reserializan datos porque he cambiado el reloj y los datos, y aún funciona. Me pregunto si no debería eliminar todos los resistores y considerar todos los pines independientemente con una lógica de asignación. Sin ningún pull-up, la tensión de salida no será más alta que la tensión de entrada.

    
pregunta gregoiregentil

1 respuesta

0

Por diseño un FPGA es digital. Por lo tanto, la cámara de entrada debe ser deserializada antes de ser re-serializada. He proporcionado más información aquí. He proporcionado más información aquí .

    
respondido por el gregoiregentil

Lea otras preguntas en las etiquetas