ov9650摄像头曝光控制问题
目的:禁用AEC(auto-exposure control,自动曝光控制),自己设定曝光时间
问题:从DataSheet上发现AEC控制寄存器有两个,分别如下
Address RegisterName DefaultValue R/W Description
13COM8 8F RW Common control 8
其中
Bit[7]: Enable fast AGC/AEC algorithm
Bit[6]: AEC-Step size limit(used only in fast condition and COM5[0] is low0: Fast condition change maximum step is VSYNC1: Unilimted step size
Bit[5]: Band filtering ON/OFF
Bit[4]: Reserved
Bit[3]: Enable AEC time can be less than 1 line option
Bit[2]:AGC enable
Bit[1]: AWB enable
Bit[0]: AEC enable
14COM94ARWCommon Control 9
其中
Bit[7]: reserved
Bit[6:4]: Automatic gain Ceiling-Maximum AGC value
Bit[3]: Exposure timing can be less than limit of banding filter when light is too strong
Bit[2]: Data format - VSYNC drop option
0: VSYNC always exists
1: VSYNC will drop when frame data drops
Bit[1]: Enable drop frame when AEC step is larger than VSYNC
Bit[0]: Freeze AGC/AEC
控制AEC值的寄存器如下,
04COM100RWCommon Control 1
其中
Bit[1:0]: AEC low 2 LSB(See Register AECHM for AEC[15:10],and AECH for AEC[9:2])
10AECH40RWExposure value
其中
Bit[7:0]: AEC[9:2](see register AECHM for AEC[15:10] COM1 for AEC[1:0]
A1AECHM40RWExposure value
其中
Bit[7:6]: reserved
Bit[5:0]: AEC[15:10]
通过设置COM8中的Bit[0]为1和0可以分别启用和禁用AEC功能,但无论是否启用AEC读出的AEC值都为0x100,最初初始化时AEC的值为0x00,
并且拍摄过程中无论向AEC值寄存器中写入什么值读出的总是0x100。请问当我禁用AEC功能时应该控制哪些寄存器来设定曝光时间。
网上的资料说ov的曝光时间是通过控制行频(HSYNC)来控制曝光时间,是否要找到此类寄存器,DataSheet上好像没有说明。哪位有经验的朋友请指教,不胜感激!谢谢!
[解决办法]
以前做过ov7648的。
启用AEC功能后,曝光值随光线强弱的不同,读数也不同(对于你的应该就相当于COM8中的Bit[0]置为1)。
应该是光线越强,曝光值越小。如果你启用了AEC功能,向AEC值寄存器写入是没有用的,它会按自己的“感觉”自动调节的。
禁用AEC功能后,设值后应该是有变化的啊……
[解决办法]
看了DataSheet
是不是Com9中的
bit[3]要设置1
bit[0]要设置0
另外AECHM 寄存器bit[5-0]要设值,AECH寄存器要设值
[解决办法]
没看明白你写的:P
你变换下光的强弱(最好在亮的地方和很暗的地方对比下),读下这个 Bit[1:0]: AEC low 2 LSB 看有变化没。
光线强时,也许你觉得光线已经变了,但曝光时间几乎没有变化。