We 'd like to realize real time souround view camera system by using 4 camera.
But i.MX6Q don't have 4 parallel video capture ports. Max 2 only. (=paralle1 and parallel2)
So Can we capture 4 camera signals simultaneously via MIPI-CSI2(4lane) ?
According to the reference manual, it seem to accept interleaved 4 streaming video data.
i.MX6Q SABRE-AI have MIPI connector. We want to make 4 camera extension board use this port.
Solved! Go to Solution.
yes, that should be possible. The MIPI-CSI-2 port knows up to 4 virtual channels. Those can be routed to the two IPU blocks (2 each). You need to make sure that each stream uses a different virtual channel. The IPU has to be set to accept two virtual channels each.
Attached a diagram I drew during a discussion with FIL about this topic. Hope this clarifies the isue. Note that the IPU will take care of converting the incoming format to either RGB8888 or YUV4:4.4 before writing the data into memory.
Hope this may help some level !
You can look at the deserializer chip avaialble with TI. it converts the 4 cameras in to single MIPI CSI2 packets with configurable virtual channel ID . but is requires companion serilizer chip at each camera end to convert parallel data to LVDS ( FPD link III ) conversion.
For MIPI CSI2 cameras you need to convert MIPI CSI2 to Parallel ( toshiba TC358746AXBG) and then Parallel to FPD link III using TI serilizer chip (DS90UB913A-Q1).
So, if I was using two separate data streams, would the configuration of chips be set up in this way: 2 x TC358 -> 2 x DS90UB913AQ -> 1 x DS90UB964-Q1 ? And, the FPD-LINK III interface between the DS90uB913AQ and DS90UB964-Q1, is this accomplished ONLY with coax or STP cables? Say if I wanted this all to be PCB-mounted, can I not just connect these two chips together with traces?
Is this the solution we've all been waiting for ?
Does anyone know of a Processor SoC that easily connects to 2 MIPI CSI2 cameras, without this kind of glue logic ?
(i.e. a SoC with two independent CSI2 ports - surely there must be plenty of ADAS applications ?)
Hi Andreas and others,
we also have same application, we need to connect two cameras which all MIPI interface. Please help to check whether below application is correct?
You know there are two IPU in IMX6Q, so if the each camera only include two differential line,we can connect as below:
Please help to double check whether this design is correct for IMX6Q? Does we can use this way to connect two cameras?
you need an interface FPGA with 4 MIPI CSI Inputs and one output. The FPGA would then use each of the input streams
assign them to a specific virtual channel (in the packet headers) and combine then all of the 4 streams into one output
stream. See the MIPI communication like an IP stream of packets - only that instead of IP addresses, virtual channel
numbers are being used.
In our application we would like to acquire video streams from 4 analog cameras (a 4 channel video server).
I can understand how to handle the 4 stream from the mipi interface. But my question is:
How to have those 4 channels in the same mipi flux?
I mean i cannot find any video decoder with mipi output, ok i can solve it using a converter from parallel to mipi (several available on the market), but still i need something to multiplex the 4 single mipi stream to a single multiplexed mipi.
Do anybody know a chip to do that?
you will need soem kind of FPGA in between the cameras and the MIPI CSI-2 port, as it will be also required to put the 4 cameras into 4 separate logical streams. I am not aware of any ready built solution for this. All my customers do this themselves.
I have an application where I will need to process input from 4 CSI-2 cameras (encoding to H.264 later). I am looking at i.MX processors and found this discussion. I am unclear on the following:
I looked at the PDF diagram, but it isn't easy to understand for someone without a lot of experience in the field.
Since there is clearly a lot of interest in this solution, perhaps an application note could be prepared?
all i.MX6 variants should be able to do this. They differ however regarding the maximum bitrate that can be supported
as the Solo/DualLite variants only support two hw lanes.
The MIPI CSI-2 protocol is a packet based protocol (somehow similar to IP). In the headers of the packets is the virtual
channel number (1-4). This has to be inserted by hardware – for example in a FPGA.
The IPU setup certainly is not easy to understand. I attach a slide that might increase the understanding of the basic
Mit freundlichen Grüßen / With best regards
Senior Field Application Engineer
Freescale Halbleiter Deutschland GmbH
81829 Muenchen / GERMANY
Tel: +49 (0) 89 92103 - 544
Fax: +49 (0) 89 92103 - 101
Mobile: +49 (0) 171 4665886
All types of technical support (Schematic review, layout review, software review, hardware board and software) provided by Freescale Field application team are subject to Freescale's general Terms and Conditions unless superseded by a direct contract.
Steuernummer/Tax No. 143/138/30552
Sitz der Gesellschaft/Registered Office: München
Registergericht/Registered Court: Amtsgericht München HR B 151590
Geschäftsführer/General Manager: Jürgen Weyer, Daryl Raiford, Marie-Pascale Diez, John Holmes
This e-mail, and any associated attachments have been classified as:
Freescale Semiconductor Internal Use Only
Freescale Semiconductor Confidential Proprietary
Hi Andreas and others,
The information in this thread has been a valuable starting point for me-- thanks for sharing your knowledge and ideas.
The OV5647 sensor from OmniVision provides the ability to control the virtual channel number for the sensor when using the MIPI interface. Do you think that it would be possible to capture from two of these sensors using the following configuration:
If all the FPGA would be doing is inserting the virtual channel ID in the MIPI packet header, does it make sense that this would work?
I do not believe this would work. The number of lanes is used solely as a bandwidth multiplier and will not allow
to split it into two ”groups” for a specific MIPI virtual channel. The received or transmitted data stream will be just
(de-)multiplexed using the number of lines available. Just layer 1 processing.
It's still unclear how to connect 4 cameras to the csi-2 interface. For example if I want 4 CSI-2 one lane cameras connected to the i.mx6 csi interface do they all share lane 1? If I want two 4 lane cameras connected to they all share the entire bus?
This would create stubs in routing if mulitple cameras had they're own connectors. I agree that an app note is in order for this.
Toshiba make a Parallel (24-Bit Bus, RGB565/666/888, RAW8/10/12/14, YUV422, YUV444) up to 154MHz to 1Gbps CSI-2 Bridge (bi-directional) IC, part number TC358746. This could partially solve the issue of getting the parallel Video data into the serial port. Therefore an FPGA is not needed.
From what I understand, this Toshiba chip can bridge a parallel interface to CSI-2 (either way), but I can't see how it can be useful in reassigning virtual channels in a CSI-2 serial stream.
Also, having re-read the entire thread, I am still unclear on what is the actual limit on the number of cameras. From what I understood, four is the upper limit that the IPU units can handle. It would be great to get a confirmation on that, as there are applications where more cameras might be needed.
There are devices that can format the video from multiple sources, however they would need to connect to the iMX6 over it's PCIe x 1 port. This presents more issues with getting the data into the IPU.
Companies such as Conexant, & Pericom, etc make multichannel analogue/Digital Video encoders to PCIe/BT.656 bridges.
There is also IP for FPGAs (which maybe in the design anyhow) that can take in Composite video (external decoder) and then Mosaic this into a 1080p format so that the four images are lined up in the top left, right, bottom left and right of the single frame. This could be sent to the iMX6 which then performs a single 1080p/30 encode.
A UK company called Bitec developed such IP for Altera some years ago.