I was using the Toradex Pinout Designer and found that there is a conflict between MCLK on the camera parallel input ports. I can put them on separate pins, but it seems they map to the same iMX6 function: CCM_CLK02.
I don’t want to read from both ports at the same time, I just have two different input sources and I was hoping to bring each one into the 20-bit parallel inputs. Sometimes I’ll read from IPU.CSI0, other times I’ll read from IPU.CSI1. Is this possible?
Pin Mux Configuration
While in theory this should be possible I don’t think we ever tried this exact use case as of yet.
Since it is a clock output of the module, maybe it is feasible even to route the MCLK for both cameras from one single module pin. If the two cameras require the same MCLK frequency, you could then even run both cameras the same time. If they use different clocks, you just need to adjust the frequency accordingly. This would only work if the clock input is not pulled down by the disabled camera.
If you route one MCLK to multiple cameras, you should add series resistors close to the forking point for each branch. This damps reflections that can be caused by forks. A good practice is using 22R resistors.
Another solution could be using a separate oscillator as MCLK for one of the cameras. Instead of using the MCLK output of the SoC (CCM_CLKO2), a small oscillator IC with the required frequency could be used.
Please also note that the frequency you can output on MCLK has to be chosen from a limited set of possible ones on i.MX 6. Unless you are in a high volume application using external oscillators for your cameras MCLK is likely the easier solution.
Thanks for the suggestions! We’ll take a look at that…