1.Which seller did you purchase the product(s) from?
Amazon
2.The Model number of the product(s) you have purchased?
OV5642
3.Which Platform are you using the product(s) on?
Arduino\Teensy
4.Which instruction are you following?
Library
5.Has your product ever worked properly?
Yes
6.What problems are you experiencing?
I am attempting to send a constant stream of JPEGs to a PC. I have the data path working and am able to pipe JPEGs into MATLAB via ethernet.
I need to get high thoughput and low latency, so I begin reading the FIFO before the capture is complete. I can find the end of the JPG from the delimiter characters.
However, I am having trouble all of the ways I’m trying to do that:
-
If I set FRAMES_NUM to 0x00, I can read a frame over SPI. If I try to capture another one, only 0x00 is returned. If I wait ~3seconds before re-initiating the capture, it works. This is too slow though.
-
If I set FRAMES_NUM to 0xFF, I can see the frames arriving in series, but after some time the data stream goes to 0x00. Also, when I try to re-initiate capture, it fails. From the failing state, if I attempt to re-initiate the camera, it fails with the message that SPI is not working.
-
If I set FRAMES_NUM to 0x0N, I can see a stream of frames that also, goes to 0x00 after some time.
I am reading SPI using DMA in 500 byte chunks. I can see when I’m reading too fast when the data stream goes to 0xCC. Slowing down the read rate does not solve the issue.
Questions:
-
It seems that SPI is messing up. Is there a reset command I can send to reset it?
-
Why might reading multiple frams from the FIFO work and then not work within the same capture?
-
How I can I quickly re-init captures to avoid stutters in the JPEG stream?
-
Is it possible to get the unit to continuously capture without re-initializing as long as I keep up reading from SPI?
I am able execute a single capture. However, the second
7.What attempts at troubleshooting have you already made?
Many
8.How would you like us to help you?
Question answers.