interfacing 2 ov7670 cmeras on same data lines

Hi all!

There are plenty of projects that connect an OmniVision camera, such as ov7670 , to an Arduino.
A good example would be:

Now, let's say I want to connect 2 of those.

The problem with these cameras is that they require 17 IOs, which is a lot.

They are are:

  • 1 power - cannot be shared
  • 1 external clock (XCLK)
  • 2 I2C lines (DATA, CLK)
  • 8 data lines (D0:D7)
  • 3 sync lines (PCLK, VSYNC, HREF)
  • 2 control lines (RESET , PWD)

So, assuming I'm only powering 1 camera at a time, by giving each camera its own power IO, can all other IOs of both cameras be shared? at least some of them? (even if some intermediary simple HW is required)

Thanks!

PS: image attached, showing all connections between Arduino and camera.

You probably don't want to turn the power off to one camera module since that could result in it being back powered through the I/O pins, generally not recommended.

I haven't tried it, but I see no reason why you can't share all the pins bar RESET and then just hold one module in reset to disable it. Remember to reinitialise the modules in your sketch when you switch.