I just received my 23LCV1024 memory module, which I am planning to use as a temporary memory buffer in a camera project. I have it working with the following setup on an Arduino UNO:
Using the SpiRAM library updated for 1024, I am able to successfully read from and write data to the module. Great!
Here is my problem: I am out of pins. I need to use almost all the pins on the UNO for the camera module, including pin 10. This leaves me with just 11, 12 and 13 to communicate with the memory module.
Since I will only be using a single memory module, do I really need Chip Select? Is there any way of using SPI with this module on 3 pins?
SIOC / SIOD for I2C (A4, A5)
SYNC (to know when the camera starts sending data)
D0-D7 (to extract image info)
RCK
WR
WRST
RRST
The last 4 are the FIFO pins. I can get away with not using OE because apparently it's not connected to the FIFO module. This is actually the whole reason I am trying to use the 23LCV1024 because I can't get the data out fast enough from FIFO without dropping below 1mhz.
With these connected, I have A0-A5 and 2-10 occuppied on the UNO. I need 1 & 2 free for serial comm. Here is a simplified version of the implementation that attempts to read the data into FIFO, then extract it byte by byte to serial: OVR7670 FIFO Read to Serial ยท GitHub
I guess I can switch to using the non-FIFO version of the camera module. That will be a simpler setup, and I can write straight from the camera to memory. But if there is a way of making this work without swapping the camera, I would like to know.
What do you need WRST for? This should be connector the the VSYNC signal of the OLV7670. Do you have a link to the datasheet of your module? I currently guess it's a version of this board:
pylon:
What do you need WRST for? This should be connector the the VSYNC signal of the OLV7670. Do you have a link to the datasheet of your module? I currently guess it's a version of this board:
I am not sure if I need it. My understanding was that I had to manually ping the WRST myself so the camera could deliver its data to the FIFO. It doesn't make much sense since they are supposed to be integrated, but not a lot makes sense about the OV7670 module.
This is the closest data sheet I could find for the version of this camera module I have:
Mine has 22 pins, unlike most other versions on the market, and this one shows the same specs. I also found this implementation guide:
As far as I understood the page linked above you can simply connect VSYNC to WRST and configure VSYNC to be inverted. This way you save two pins on the Arduino.
Just out of curiosity: do you think it makes sense to read a camera sensor with the Arduino? What do you need it for? The Arduino won't be able to do anything with the data except delivering over serial (in best case).
pylon:
As far as I understood the page linked above you can simply connect VSYNC to WRST and configure VSYNC to be inverted. This way you save two pins on the Arduino.
Just out of curiosity: do you think it makes sense to read a camera sensor with the Arduino? What do you need it for? The Arduino won't be able to do anything with the data except delivering over serial (in best case).
Interesting, I will look into doing that. If so, that would be a huge pin saver for me. Thanks for the suggestion!
All I wanted to do was to send this data over serial. First to a Mac app, then I would like to experiment with sending the data over Xbee to an iPhone.
All I wanted to do was to send this data over serial. First to a Mac app, then I would like to experiment with sending the data over Xbee to an iPhone.
So this isn't for anything useful, just for the fun of it? I'm asking because you can get much easier and cheaper solutions with better features to connect a camera to a Mac or an iPhone.
pylon:
So this isn't for anything useful, just for the fun of it? I'm asking because you can get much easier and cheaper solutions with better features to connect a camera to a Mac or an iPhone.
Ah yes, of course. This is for the fun of it and mainly as a challenge. I finally caved in and got a MEGA. Now I have the camera module transferring data properly. Here is the first image: http://cl.ly/image/0k021a3G3B3J