OV5640 Expert Required

Hi,

I am using an OV5640 and trying to read a JPG Mode 1 or Mode 2 output and it seems that when I try to read the data from the 8 parallel bits I just get a random repeated Byte for the entire time HREF is active…

Now, this is the interesting part…

If I read the the data when HREF is in the state not set as active in 0x4740 then I can read out the data but only what seems to be the previous image and only the space left not taken up by the current image.

It’s almost like (and this is my assumption) that a frame is getting loaded in to the FIFO and I am reading the first part of the from while HREF is not active…

Here is a table of what I have 0x4740 set to, what I am looking for when reading the data and what I am getting… The repeated bytes remember are random and different every time.


I am hoping someone on here will know right away what is going on and be able to help me… Here are my register settings and this is everything… I am sending everything in one go so what you see here is all I am sending before going to read the image.


load_array(0x3103,0x11);
msg_count++;//increment after every message
load_array(0x3008,0x82);
msg_count++;//increment after every message
load_array(0x3008,0x42);
msg_count++;//increment after every message
load_array(0x3103,0x03);
msg_count++;//increment after every message
load_array(0x3017,0xff);
msg_count++;//increment after every message
load_array(0x3018,0xff);
msg_count++;//increment after every message
load_array(0x3034,0x1a);
msg_count++;//increment after every message
//load_array(0x3035,0x11);//ORIGINAL
load_array(0x3035,0b00011111);//SLOW PCLK
msg_count++;//increment after every message
load_array(0x3036,0x69);
msg_count++;//increment after every message
load_array(0x3037,0x13);
msg_count++;//increment after every message
load_array(0x3108,0x01);
msg_count++;//increment after every message
load_array(0x3630,0x36);
msg_count++;//increment after every message
load_array(0x3631,0x0e);
msg_count++;//increment after every message
load_array(0x3632,0xe2);
msg_count++;//increment after every message
load_array(0x3633,0x12);
msg_count++;//increment after every message
load_array(0x3621,0xe0);
msg_count++;//increment after every message
load_array(0x3704,0xa0);
msg_count++;//increment after every message
load_array(0x3703,0x5a);
msg_count++;//increment after every message
load_array(0x3715,0x78);
msg_count++;//increment after every message
load_array(0x3717,0x01);
msg_count++;//increment after every message
load_array(0x370b,0x60);
msg_count++;//increment after every message
load_array(0x3705,0x1a);
msg_count++;//increment after every message
load_array(0x3905,0x02);
msg_count++;//increment after every message
load_array(0x3906,0x10);
msg_count++;//increment after every message
load_array(0x3901,0x0a);
msg_count++;//increment after every message
load_array(0x3731,0x12);
msg_count++;//increment after every message
load_array(0x3600,0x08);
msg_count++;//increment after every message
load_array(0x3601,0x33);
msg_count++;//increment after every message
load_array(0x302d,0x60);
msg_count++;//increment after every message
load_array(0x3620,0x52);
msg_count++;//increment after every message
load_array(0x371b,0x20);
msg_count++;//increment after every message
load_array(0x471c,0x50);
msg_count++;//increment after every message
load_array(0x3a13,0x43);
msg_count++;//increment after every message
load_array(0x3a18,0x00);
msg_count++;//increment after every message
load_array(0x3a19,0xf8);
msg_count++;//increment after every message
load_array(0x3635,0x13);
msg_count++;//increment after every message
load_array(0x3636,0x03);
msg_count++;//increment after every message
load_array(0x3634,0x40);
msg_count++;//increment after every message
load_array(0x3622,0x01);
msg_count++;//increment after every message
load_array(0x3c01,0x34);
msg_count++;//increment after every message
load_array(0x3c04,0x28);
msg_count++;//increment after every message
load_array(0x3c05,0x98);
msg_count++;//increment after every message
load_array(0x3c06,0x00);
msg_count++;//increment after every message
load_array(0x3c07,0x07);
msg_count++;//increment after every message
load_array(0x3c08,0x00);
msg_count++;//increment after every message
load_array(0x3c09,0x1c);
msg_count++;//increment after every message
load_array(0x3c0a,0x9c);
msg_count++;//increment after every message
load_array(0x3c0b,0x40);
msg_count++;//increment after every message
load_array(0x3820,0x41);
msg_count++;//increment after every message
load_array(0x3821,0x27);
msg_count++;//increment after every message
load_array(0x3814,0x31);
msg_count++;//increment after every message
load_array(0x3815,0x31);
msg_count++;//increment after every message
load_array(0x3800,0x00);
msg_count++;//increment after every message
load_array(0x3801,0x00);
msg_count++;//increment after every message
load_array(0x3802,0x00);
msg_count++;//increment after every message
load_array(0x3803,0xfa);
msg_count++;//increment after every message
load_array(0x3804,0x0a);
msg_count++;//increment after every message
load_array(0x3805,0x3f);
msg_count++;//increment after every message
load_array(0x3806,0x06);
msg_count++;//increment after every message
load_array(0x3807,0xa9);
msg_count++;//increment after every message
load_array(0x3808,0x05);
msg_count++;//increment after every message
load_array(0x3809,0x00);
msg_count++;//increment after every message
load_array(0x380a,0x02);
msg_count++;//increment after every message
load_array(0x380b,0xd0);
msg_count++;//increment after every message
load_array(0x380c,0x07);
msg_count++;//increment after every message
load_array(0x380d,0x64);
msg_count++;//increment after every message
load_array(0x380e,0x02);
msg_count++;//increment after every message
load_array(0x380f,0xe4);
msg_count++;//increment after every message
load_array(0x3810,0x00);
msg_count++;//increment after every message
load_array(0x3811,0x10);
msg_count++;//increment after every message
load_array(0x3812,0x00);
msg_count++;//increment after every message
load_array(0x3813,0x04);
msg_count++;//increment after every message
load_array(0x3618,0x00);
msg_count++;//increment after every message
load_array(0x3612,0x29);
msg_count++;//increment after every message
load_array(0x3708,0x64);
msg_count++;//increment after every message
load_array(0x3709,0x52);
msg_count++;//increment after every message
load_array(0x370c,0x03);
msg_count++;//increment after every message
load_array(0x3a02,0x02);
msg_count++;//increment after every message
load_array(0x3a03,0xe4);
msg_count++;//increment after every message
load_array(0x3a08,0x01);
msg_count++;//increment after every message
load_array(0x3a09,0xbc);
msg_count++;//increment after every message
load_array(0x3a0a,0x01);
msg_count++;//increment after every message
load_array(0x3a0b,0x72);
msg_count++;//increment after every message
load_array(0x3a0e,0x01);
msg_count++;//increment after every message
load_array(0x3a0d,0x02);
msg_count++;//increment after every message
load_array(0x3a14,0x02);
msg_count++;//increment after every message
load_array(0x3a15,0xe4);
msg_count++;//increment after every message
load_array(0x4001,0x02);
msg_count++;//increment after every message
load_array(0x4004,0x02);
msg_count++;//increment after every message
load_array(0x3000,0x00);
msg_count++;//increment after every message
load_array(0x3002,0x00);
msg_count++;//increment after every message
load_array(0x3004,0xff);
msg_count++;//increment after every message
load_array(0x3006,0xff);
msg_count++;//increment after every message
load_array(0x300e,0x58);
msg_count++;//increment after every message
load_array(0x302e,0x00);
msg_count++;//increment after every message
load_array(0x4300,0x30);
msg_count++;//increment after every message


load_array(0x4401,0b00000001);
msg_count++;//increment after every message

load_array(0x4740,0b00100011);
msg_count++;//increment after every message

load_array(0x501f,0x00);
msg_count++;//increment after every message
load_array(0x4713,0x02);//ORIGINAL VALUE
//load_array(0x4713,0x01);//JPG mode 1
msg_count++;//increment after every message
load_array(0x4407,0x04);
msg_count++;//increment after every message
load_array(0x440e,0x00);
msg_count++;//increment after every message

load_array(0x4600,0b10000000);
msg_count++;//increment after every message


load_array(0x460b,0x35);
msg_count++;//increment after every message
load_array(0x460c,0x22);
msg_count++;//increment after every message
load_array(0x4827,0x16);
msg_count++;//increment after every message
load_array(0x3824,0x04);
msg_count++;//increment after every message
load_array(0x5000,0xa7);
msg_count++;//increment after every message
load_array(0x5001,0x83);
msg_count++;//increment after every message
load_array(0x5180,0xff);
msg_count++;//increment after every message
load_array(0x5181,0xf2);
msg_count++;//increment after every message
load_array(0x5182,0x00);
msg_count++;//increment after every message
load_array(0x5183,0x14);
msg_count++;//increment after every message
load_array(0x5184,0x25);
msg_count++;//increment after every message
load_array(0x5185,0x24);
msg_count++;//increment after every message
load_array(0x5186,0x09);
msg_count++;//increment after every message
load_array(0x5187,0x09);
msg_count++;//increment after every message
load_array(0x5188,0x09);
msg_count++;//increment after every message
load_array(0x5189,0x75);
msg_count++;//increment after every message
load_array(0x518a,0x54);
msg_count++;//increment after every message
load_array(0x518b,0xe0);
msg_count++;//increment after every message
load_array(0x518c,0xb2);
msg_count++;//increment after every message
load_array(0x518d,0x42);
msg_count++;//increment after every message
load_array(0x518e,0x3d);
msg_count++;//increment after every message
load_array(0x518f,0x56);
msg_count++;//increment after every message
load_array(0x5190,0x46);
msg_count++;//increment after every message
load_array(0x5191,0xf8);
msg_count++;//increment after every message
load_array(0x5192,0x04);
msg_count++;//increment after every message
load_array(0x5193,0x70);
msg_count++;//increment after every message
load_array(0x5194,0xf0);
msg_count++;//increment after every message
load_array(0x5195,0xf0);
msg_count++;//increment after every message
load_array(0x5196,0x03);
msg_count++;//increment after every message
load_array(0x5197,0x01);
msg_count++;//increment after every message
load_array(0x5198,0x04);
msg_count++;//increment after every message
load_array(0x5199,0x12);
msg_count++;//increment after every message
load_array(0x519a,0x04);
msg_count++;//increment after every message
load_array(0x519b,0x00);
msg_count++;//increment after every message
load_array(0x519c,0x06);
msg_count++;//increment after every message
load_array(0x519d,0x82);
msg_count++;//increment after every message
load_array(0x519e,0x38);
msg_count++;//increment after every message
load_array(0x5381,0x1e);
msg_count++;//increment after every message
load_array(0x5382,0x5b);
msg_count++;//increment after every message
load_array(0x5383,0x08);
msg_count++;//increment after every message
load_array(0x5384,0x0a);
msg_count++;//increment after every message
load_array(0x5385,0x7e);
msg_count++;//increment after every message
load_array(0x5386,0x88);
msg_count++;//increment after every message
load_array(0x5387,0x7c);
msg_count++;//increment after every message
load_array(0x5388,0x6c);
msg_count++;//increment after every message
load_array(0x5389,0x10);
msg_count++;//increment after every message
load_array(0x538a,0x01);
msg_count++;//increment after every message
load_array(0x538b,0x98);
msg_count++;//increment after every message
load_array(0x5300,0x08);
msg_count++;//increment after every message
load_array(0x5301,0x30);
msg_count++;//increment after every message
load_array(0x5302,0x10);
msg_count++;//increment after every message
load_array(0x5303,0x00);
msg_count++;//increment after every message
load_array(0x5304,0x08);
msg_count++;//increment after every message
load_array(0x5305,0x30);
msg_count++;//increment after every message
load_array(0x5306,0x08);
msg_count++;//increment after every message
load_array(0x5307,0x16);
msg_count++;//increment after every message
load_array(0x5309,0x08);
msg_count++;//increment after every message
load_array(0x530a,0x30);
msg_count++;//increment after every message
load_array(0x530b,0x04);
msg_count++;//increment after every message
load_array(0x530c,0x06);
msg_count++;//increment after every message
load_array(0x5480,0x01);
msg_count++;//increment after every message
load_array(0x5481,0x08);
msg_count++;//increment after every message
load_array(0x5482,0x14);
msg_count++;//increment after every message
load_array(0x5483,0x28);
msg_count++;//increment after every message
load_array(0x5484,0x51);
msg_count++;//increment after every message
load_array(0x5485,0x65);
msg_count++;//increment after every message
load_array(0x5486,0x71);
msg_count++;//increment after every message
load_array(0x5487,0x7d);
msg_count++;//increment after every message
load_array(0x5488,0x87);
msg_count++;//increment after every message
load_array(0x5489,0x91);
msg_count++;//increment after every message
load_array(0x548a,0x9a);
msg_count++;//increment after every message
load_array(0x548b,0xaa);
msg_count++;//increment after every message
load_array(0x548c,0xb8);
msg_count++;//increment after every message
load_array(0x548d,0xcd);
msg_count++;//increment after every message
load_array(0x548e,0xdd);
msg_count++;//increment after every message
load_array(0x548f,0xea);
msg_count++;//increment after every message
load_array(0x5490,0x1d);
msg_count++;//increment after every message
load_array(0x5580,0x02);
msg_count++;//increment after every message
load_array(0x5583,0x40);
msg_count++;//increment after every message
load_array(0x5584,0x10);
msg_count++;//increment after every message
load_array(0x5589,0x10);
msg_count++;//increment after every message
load_array(0x558a,0x00);
msg_count++;//increment after every message
load_array(0x558b,0xf8);
msg_count++;//increment after every message
load_array(0x5800,0x23);
msg_count++;//increment after every message
load_array(0x5801,0x14);
msg_count++;//increment after every message
load_array(0x5802,0x0f);
msg_count++;//increment after every message
load_array(0x5803,0x0f);
msg_count++;//increment after every message
load_array(0x5804,0x12);
msg_count++;//increment after every message
load_array(0x5805,0x26);
msg_count++;//increment after every message
load_array(0x5806,0x0c);
msg_count++;//increment after every message
load_array(0x5807,0x08);
msg_count++;//increment after every message
load_array(0x5808,0x05);
msg_count++;//increment after every message
load_array(0x5809,0x05);
msg_count++;//increment after every message
load_array(0x580a,0x08);
msg_count++;//increment after every message
load_array(0x580b,0x0d);
msg_count++;//increment after every message
load_array(0x580c,0x08);
msg_count++;//increment after every message
load_array(0x580d,0x03);
msg_count++;//increment after every message
load_array(0x580e,0x00);
msg_count++;//increment after every message
load_array(0x580f,0x00);
msg_count++;//increment after every message
load_array(0x5810,0x03);
msg_count++;//increment after every message
load_array(0x5811,0x09);
msg_count++;//increment after every message
load_array(0x5812,0x07);
msg_count++;//increment after every message
load_array(0x5813,0x03);
msg_count++;//increment after every message
load_array(0x5814,0x00);
msg_count++;//increment after every message
load_array(0x5815,0x01);
msg_count++;//increment after every message
load_array(0x5816,0x03);
msg_count++;//increment after every message
load_array(0x5817,0x08);
msg_count++;//increment after every message
load_array(0x5818,0x0d);
msg_count++;//increment after every message
load_array(0x5819,0x08);
msg_count++;//increment after every message
load_array(0x581a,0x05);
msg_count++;//increment after every message
load_array(0x581b,0x06);
msg_count++;//increment after every message
load_array(0x581c,0x08);
msg_count++;//increment after every message
load_array(0x581d,0x0e);
msg_count++;//increment after every message
load_array(0x581e,0x29);
msg_count++;//increment after every message
load_array(0x581f,0x17);
msg_count++;//increment after every message
load_array(0x5820,0x11);
msg_count++;//increment after every message
load_array(0x5821,0x11);
msg_count++;//increment after every message
load_array(0x5822,0x15);
msg_count++;//increment after every message
load_array(0x5823,0x28);
msg_count++;//increment after every message
load_array(0x5824,0x46);
msg_count++;//increment after every message
load_array(0x5825,0x26);
msg_count++;//increment after every message
load_array(0x5826,0x08);
msg_count++;//increment after every message
load_array(0x5827,0x26);
msg_count++;//increment after every message
load_array(0x5828,0x64);
msg_count++;//increment after every message
load_array(0x5829,0x26);
msg_count++;//increment after every message
load_array(0x582a,0x24);
msg_count++;//increment after every message
load_array(0x582b,0x22);
msg_count++;//increment after every message
load_array(0x582c,0x24);
msg_count++;//increment after every message
load_array(0x582d,0x24);
msg_count++;//increment after every message
load_array(0x582e,0x06);
msg_count++;//increment after every message
load_array(0x582f,0x22);
msg_count++;//increment after every message
load_array(0x5830,0x40);
msg_count++;//increment after every message
load_array(0x5831,0x42);
msg_count++;//increment after every message
load_array(0x5832,0x24);
msg_count++;//increment after every message
load_array(0x5833,0x26);
msg_count++;//increment after every message
load_array(0x5834,0x24);
msg_count++;//increment after every message
load_array(0x5835,0x22);
msg_count++;//increment after every message
load_array(0x5836,0x22);
msg_count++;//increment after every message
load_array(0x5837,0x26);
msg_count++;//increment after every message
load_array(0x5838,0x44);
msg_count++;//increment after every message
load_array(0x5839,0x24);
msg_count++;//increment after every message
load_array(0x583a,0x26);
msg_count++;//increment after every message
load_array(0x583b,0x28);
msg_count++;//increment after every message
load_array(0x583c,0x42);
msg_count++;//increment after every message
load_array(0x583d,0xce);
msg_count++;//increment after every message
load_array(0x5025,0x00);
msg_count++;//increment after every message
load_array(0x3a0f,0x30);
msg_count++;//increment after every message
load_array(0x3a10,0x28);
msg_count++;//increment after every message
load_array(0x3a1b,0x30);
msg_count++;//increment after every message
load_array(0x3a1e,0x26);
msg_count++;//increment after every message
load_array(0x3a11,0x60);
msg_count++;//increment after every message
load_array(0x3a1f,0x14);
msg_count++;//increment after every message
load_array(0x3008,0x02);
msg_count++;//increment after every message


Any help here would be greatly appreciated.

Hi, I’m on Thanksgiving break right now. Ibrahim might have some thoughts on this… However, we dont support the camera module you are talking about.

Hi,

We’re really busy supporting OpenMV, we can’t help you with your project right now, especially that there could be a lot of things wrong with your project (code, fw, sw etc…).

It was actually a timing issue and the FIFO was being read out before it had a chance to be filled.

Thanks anyway

Quick question. What’s the OV5640 camera for? ArduCam?