Serial Camera Adapter

Hi,

Are there any plans for a Serial Camera Adapter board for the Apalis TK1?

Kind regards,
Kevin

Yes, there exist actually several options when it comes to CSI-2 support:

  1. The Apalis T30 and TK1 are somewhat compatible when it comes to their type specific CSI-2 pins and existing hardware should be backward compatible (e.g. 2x dual lane CSI-2). Our camera partner Antmicro designed various carrier boards and camera adaptors in the past.
  2. A customer could use either the existing Apalis T30 Mezzanine (e.g. featuring 2x dual lane CSI-2) or even with some limitations the Apalis iMX6 Mezzanine (e.g. featuring 1x quad lane CSI-2) mating the Apalis evaluation board. Of course one still needs a camera sensor that connects to one of their sockets like e.g. the ON Semiconductor (formerly Aptina) AS0260 demo heads connecting to the later.
  3. The upcoming Ixora V1.1A carrier board features a Raspberry Pi camera compatible CSI-2 flex ribbon cable socket (e.g. 1x quad lane CSI-2 backward compatible to dual lane if properly aligned).
  4. Internally we are currently also testing a prototype type specific Apalis TK1 Mezzanine daughter card which plugs into the Apalis evaluation board featuring 3 such Raspberry Pi camera compatible CSI-2 flex ribbon cable sockets (e.g. 2x quad lane and 1x single lane CSI-2).

I now have a carrier board which has an on-board ADV7280BCPZ-M (serial) camera decoder.

Is there anything I need to change in the standard Toradex linux kernel in order to allow me to enable this chip and use it with gst-launch? At the moment, there is random pixel output on the display.

Regards,
Kevin

Please install NVIDIA’s JetPack as explained in the following article on our developer website and test your camera using a gstreamer pipeline as indicated in Antmicro’s blog linked to in the following commit message.

I’ve just been looking in the board-apalis_t30.c file at where the adv7280_platform_data is defined and the “.port” field is assigned as TEGRA_CAMERA_PORT_VIP - which I’m assuming means that the parallel camera port is used for the ADV7280 device.

If I was to change this “.port” field to be TEGRA_CAMERA_PORT_CSI_A (our camera signals are mapped to CSI1 clock and 1 data lane) as well as setting “.lanes” to be 1 the would I stand a chance of this working?

There appears to be little documentation for this.

Thanks in advance.

@marcel.tx Apologies, I’m still using the Apalis T30 not the TK1.

Kind regards,
Kevin

I don’t think the ADV7280 driver in the Apalis T30 Linux kernel sources is meant to be used for anything other than the parallel camera interface.

You may have better luck updating the ADV7280 driver to the version as in the Apalis TK1 Linux kernel sources and then adjusting the Apalis T30 platform data according to the Apalis TK1’s.

@marcel.tx Thanks for the links.

I’ve successfully taken across the adv7280 changes as well as making changes to several other files to allow the new adv7280 driver to compile.

Unfortunately now though, even though the adv7280 device is detected on the i2c bus, it is no longer available as /dev/video0 and I can not longer access it via gstreamer. Is there any way of knowing why the device is detected but not installed?

Could it be that the MIPI CSI pins need configuring?

I really don’t think so resp. Apalis T30 is known to work just fine with an OV5640 based camera also using the same MIPI CSI-2 pins.

Still struggling with getting this to work.

The ADV7280 is definitely detected during the boot sequence with:

adv7280 2-0021: chip found @ 0x42 (Tegra I2C adapter)
adv7280 2-0021: ident reg is 0x42

Yet the /dev/video0 device is still not present.

Would it make a difference if the ADV7280 RESET# signal is held low (in reset) during boot?

All relevant modules are loaded:

lsmod

Module                                  Size   Used by
tegra_v4l2_camera                      17224   0
adv7280                                 4829   0
videobuf2_dma_nvmap                     3347   1  tegra_v4l2_camera
videobuf2_memops                        2570   1  videobuf2_dma_nvmap