admin 发表于 2017-2-22 17:24:21

摄像头驱动OV7725学习笔记连载(二):0V7725 SCCB时序的实现之寄存器配置

   上一篇博客主要介绍了OV7725的电气特性以及SCCB接口的时序和输出一帧图像的时序图以及数据的拼接。输出一帧图像与输出时钟PCLK有关。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213109729-659034994.png

   上图是OV7725实现的整体框架,有点丑。FPGA描述SCCB时序,完成OV7725的配置,配置完成之后,OV7725 sensor输出PCLK和href,vsync以及cmos_data信号。经过格式的转换单元,将格式转换后的数据送给SDRAM单元,最终实现VGA/LCD/上位机显示。

    之前已经提及过,SCCB接口主要实现sensor内部各种寄存器的配置,如AGC,AWB,gama,color saturation等等,下面就讲解寄存器的配置。参考手册如下图所示,寄存器的配置还需要OV7725的手册中关于寄存器设定章节一起配合使用。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213110604-108279013.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230213114620-1550734726.png

在手册的最后一个章节,给出了参考设置,不过输出的格式是YCbCr格式,其他设置需要联系FAE。

http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213115510-847728877.png如下图所示,写入的寄存器前8位数据,如0x3d代表了寄存器的地址,后8位0x03代表了该寄存器设定的值。根据手册最后内容可以在0V7725数据手册(OV7725 datasheet)中找到相关寄存器的说明。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213125870-1598082520.png

比如0x3d,在数据手册(OV7725 datasheet)中代表的功能是DC偏置量的控制。如下图所示,其他寄存器以此类推,可以一一找到。注意在设置时设置寄存器地址或者寄存器的名称均可以,比如0x3d,0x03,也可以设置com12,0x03.

http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213127276-786223724.png

在OV7725配置手册中,讲述了关于YCbCr和RGB24格式之间的转换方法,如下图所示,由于FPGA不擅长处理浮点数,所以需转换成定点数处理。

http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213134823-910627992.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230213205604-777316417.png

在OV7725配置手册中,详细说明了对于OV7725格式输出的说明,分为有ISP和无ISP情况,这个模块可以在FPGA内部去建立格式输出单元,此方面内容会在之后讲解。


http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213207417-1826018096.png


对于寄存器的设置,根据OV7725应用手册中的参考设置,有几个重要部分必须要进行设置,如下所示:
1. ID的设置对于厂商来讲,每一款传感器有唯一的ID地址。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213217885-1569077127.jpg制造商唯一的ID地址。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213218760-1376292195.jpg
2.复位所有的寄存器上电之后,对OV内部所有的寄存器先复位。寄存器12不单有复位功能,还有控制OV视频输出格式,下面会提及到,参见第10项。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213225510-635504341.png http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213235948-2985491.png3.模拟处理中的DC偏置http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213245839-376434321.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230213436401-59847209.png
4. 对行和场的设置寄存器17位行起始控制,18为VGA模式下行像素大小。19为场起始控制,1A为VGA模式下场像素大小。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213507292-1734746870.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230213515339-643419773.png

5.对场同步信号进行取反操作为了和VGA时序保持一致,将VSYNC的时序进行取反,关于一帧的时序图参考上一篇博客。write_SCCB(Ox15,Ox02);此项设置,将pclk定义为上升沿有效,href定位为高电平有效,vsync进行取反向。
6.图像的起始位置和大小控制http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213828651-610639875.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230213902776-1669141795.png
7.行和场输出数据的大小控制http://images2015.cnblogs.com/blog/836224/201512/836224-20151230213906714-786189161.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230213916526-509612794.png
http://images2015.cnblogs.com/blog/836224/201512/836224-20151230214349682-211747215.png8.内部时钟控制寄存器0d是设置内部PLL的倍频,选择4倍频,AEC自动曝光控制选择二分之一窗。寄存器11是内部时钟的设置,通过PLL4倍频之后,计算得到的结果和XCLK的时钟应该是相等的。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230214350260-871512298.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230214354635-230924018.png http://images2015.cnblogs.com/blog/836224/201512/836224-20151230214355854-551967710.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230215822792-736075548.png

9.虚拟像素高位插入配置手册上面给出的是默认值,此功能实际上没用到。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215823667-1238210545.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230215833620-1710736533.png

10.OV视频格式输出配置寄存器12,功能复用,write_SCCB(Ox12,Ox06);输出格式是RGB565格式。所以此寄存器非常重要,决定了OV输出的格式。

11.RGB格式YUV格式的顺序以及测试彩条的控制write_SCCB(Ox0c,Ox10);其中寄存器0c控制RGB和YUV格式的顺序,还有控制OV内部自带的测试彩条的使能。这里采用默认值,不使能彩条。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215834839-1982051141.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230215835792-1885117942.png

12. DSP控制参数其中0x42寄存器控制的是背光补偿蓝控制量,如下图所示,选择手册参考值。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215836448-947045186.png其中0x4d是修补增益的控制,0x42对背光补偿颜色B分量进行设定。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215855448-1357965326.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230215856604-230056049.png
寄存器0x63是AWB自动白平衡控制字0的控制。选择手册中的默认值。0xf0;
http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215900901-185215850.png
寄存器0x64~67是DSP控制为1~4,0x64设定为配置寄存器中的默认值0xff;0x65选择手册默认值,配置手册上给出的是0x20,选择默认值0x00,不影响成像效果。0x66是UV的交替格式。选择0x00。0x67是输出格式的选择,这里设置0x00/0x01,为YUV or RGB输出。
http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215905214-2087909458.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230215930635-1331100635.png

13. AWB,AEC,AGC参数控制调节http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215934635-712378450.png http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215938620-1603782987.png

0x13控制AEC,AWB,AGC是否使能,设置为0xff;0x0f控制当输出格式转换时,窗口自动适应。0x14设定0x11.0x22设定为 0x98,作为50Hz带宽滤波。在OV7725寄存器配置手册中0x13,0x22,0x23是关于交流频率50Hz,帧频为25,情况下的带通滤波器的设置。
http://images2015.cnblogs.com/blog/836224/201512/836224-20151230215939839-1378754495.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230215940667-1364099734.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230215950667-2103073157.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220000714-667917905.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220001620-2126111317.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220005432-663136576.png
http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220010151-2091069892.png
14.边缘强化处理均选择配置指定值。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220011276-1089616573.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220015854-882690400.png

15.色彩还原矩阵设置http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220017120-1961618731.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220018464-1065523813.png


16.亮度,对比度,UV和SDE控制选择默认值。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220019385-109140048.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220023667-295062056.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220024401-993627129.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220025120-887395957.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220026214-1864343951.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220030151-1706514101.png



17. gama参数设置 其中寄存器0x7e~0x8c均是对gama曲线的设定,设定配置手册默认值。http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220031917-396101752.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220033120-157861497.pnghttp://images2015.cnblogs.com/blog/836224/201512/836224-20151230220034714-816532000.png


18. UV控制
write_sccb{0xa7, 0x65};
write_sccb{0xa8, 0x65};
write_sccb{0xa9, 0x80};
write_sccb {0xaa, 0x80};
                                 http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220035964-1414248510.png                                    http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220036870-2147068253.png


19.夜间自动调整帧频 http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220040604-1593510498.png
                                 http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220100651-1168255866.png
若是设置成 Fixed Frame Rate,则
http://images2015.cnblogs.com/blog/836224/201512/836224-20151230220110917-51036831.png   以上是对常用的寄存器的设置,大部分参考了手册中的设定值,接下来就要实现 SCCB时序,实现对OV7725实现配置。
摄像头模组论坛欢迎你的加入:微信交流群咨询:13713561691

damonnnn 发表于 2017-3-12 12:12:01

感谢分享,感谢分享。
页: [1]
查看完整版本: 摄像头驱动OV7725学习笔记连载(二):0V7725 SCCB时序的实现之寄存器配置