Interfaz de cámara Serial LVDS

1

Estoy interesado en utilizar la versión en escala de grises (VM-010-BW-LVDS) de este módulo de cámara:

VM-010: módulo de cámara phyCAM-S , WVGA monocromo

Quiero usar la cámara con disparador externo (en modo de instantánea) y usar una resolución muy baja. Necesito adquirir imágenes de la cámara en mi código de visión de computadora C ++ en Debian Linux. Necesito conectar la cámara a una placa principal ARM específica que tenga varios IO (I2C, UART, SPI) pero desafortunadamente no tenga un puerto LVDS dedicado, por lo que pienso en usar los pines GPIO de la placa. La placa base está disponible en dos revisiones: 1 y 4 CPU de núcleo que van desde 700 a 900 MHz. El GPIO se ha probado a velocidad para poder generar una onda cuadrada de 14 MHz (o 22 MHz con el indicador de optimización del compilador -O3) en C. El GPIO proporciona cero o 3.3V.

Hay una hoja de datos de la cámara disponible. Para LVDS, especifica el flujo de bits de datos (8 + 2 bits) y la frecuencia de datos que acepta la placa (13-27 MHz).

Cosas que no entiendo:

  • ¿Es la placa base ARM lo suficientemente rápida como para poder leer el flujo de bits de datos de la cámara en su GPIO además de generar la señal del reloj? Puedo dedicar toda la placa base solo a la tarea de la cámara y usar el kernel en tiempo real de Linux.
  • Probablemente necesito al menos un mínimo de circuito para convertir el voltaje GPIO 0 / 3.3V al diferencial LVDS 1.2V + -0.2V. ¿Alguna sugerencia aquí?
  • La hoja de datos habla sobre la deserialización de LVDS. ¿Puedo hacer todo en C ++ o necesito un circuito adicional para esto (deserializador LVDS, controlador, etc.)?
  • La hoja de datos también dice: "El reloj de píxeles se transfiere como una señal incorporada en el LVDS corriente. Es recuperado por el deserializador LVDS. "No entiendo esto también, pero probablemente está relacionado con el punto anterior.
  • La configuración de la cámara se realiza a través de I2C, pero parece que falta información detallada en la hoja de datos (modificación de los registros, etc.).

La compañía ofrece sus propias placas principales de Linux ARM con puertos LVDS dedicados para conectar la cámara. Puede ser útil obtener una de esas placas principales e intentar realizar ingeniería inversa en algunas cosas o incluso usar sus binarios si son compatibles. Gracias por cualquier ayuda por adelantado, ¡es muy apreciado!

    
pregunta Kozuch

1 respuesta

1

Esto requiere hardware dedicado. Sugeriría encontrar una parte diferente con el puerto correcto o usar un FPGA.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas