Surveyor Robotics Journal |
|||||
|
Surveyor Corporation home page
Subscribe to a syndicated RSS feed. Archives |
Sun, 13 Apr 2008 exposure control for the OV9655 camera module After deriving a stable set of register settings for the OV9655 camera module last fall, there hasn't been much done with the settings except for addition of a command to invert the image orientation. It has seemed that the "shutter speed" as well as gain control are a bit slow, so I started to tweak some registers today and got some encouraging results. The formula provided by Omnivision for exposure time calculation is as follows: Exposure time = 1/PCLK x 2 x 1520 x (Exposure line + Dummy line) Where PCLK => Pixel output clock Exposure line = (0xA1[5:0] x 1024) + (0x10[7:0] x 4) + 0x04[1:0] Dummy line = (0x2E[7:0] x 256) + Value of 0x2D[7:0] The default settings are reg 0xA1 = 0x40, reg 0x10 = 0x40, reg 0x04 = 0x03. I experimented with reducing the value in the high order bits (reg 0xA1) from 0x40 to 0x20 to 0x10 and finally to 0x00. My guess is that there is a bounds checking in the firmware which sets a lower limit, as changing from 0x10 to 0x00 seemed to make no difference, but the change from 0x40 to 0x10 was noticeable, with reduced motion blurring and somewhat faster gain control response. The register settings are found in ov9655.h in the data structure: static unsigned char ov9655_setup[] {}; As noted, the current default setting for register 0xA1 is 0x40. I would be interested in hearing from others who want to experiment with these settings. The next step is to look at the gain control registers - it appears that registers 0x13 and 0x14 provide significant control of that function. By the way, the register definitions for the OV9655 are found here - http://www.surveyor.com/blackfin/OV9655-datasheet.pdf Posted Sun, 13 Apr 2008 14:33 | HTML Link | see additional stories ... |
||||