OV7670中文版数据手册
- 格式:pdf
- 大小:1.07 MB
- 文档页数:31
2012-03-24 20:42OV7670调试的问题拿出来请大家共同解决硬件:STM32+OV7670+AL422B (电路参照zidong404的)软件思路也是参考zidong404的,现在图像显示基本出来了,但是效果很不好,最关键的是不知道从哪修改。
液晶ssd1289显示的图片如下:输出格式:QVGA RGB565 320*240出现的问题:1、图像分块,而且三块显示的是同一幅图片,不知道是缓存指针读写复位不正常的是不,程序和zidong404的一样的?2、图像重叠,一次显示不是全屏,只是半屏?好像写入的数据不够?我现在很模糊的几个问题是:1、配置QVGA RGB565格式写入缓存AL422的数据是不是320*240*2个字节?如果是,那为何一次显示只有半屏呢?2、还有窗口设置我不是太懂OV7660_config_window(272,16,320,240);// set 240*320 ,谁能帮忙解释一下,272和16这几个数据是怎么得到的?3、还有__nop();这条指令的运用,是直接用吗?需要包含什么文件吗? 51里面用它不是包含一个文件才能使用它吗?弄了半天终于弄出来了!在这里要感谢zidong404的指点。
现在分享一下我的调试结果:1、上面第一和第二个问题出现的原因很简单,摄像头配置出来的图片数据是横屏格式240行,每行320个点,每个像素2个字节,而我的液晶屏配置是竖屏显示的,所以图像分块。
这一点虽然没问题了,但我感觉这样的话图像分块应该是不规则的,而结果是三块一样的图像。
2、还有读写指针复位,如果写指针复位延时不够也会图像分块。
3、还有XCLK时钟我的是8M,这个我试了36M的影响不大,但是不能超过50M,STM32系统时钟72M直接加上也能显示图像,但是有一层绿色的背景色。
4、还有PLL倍频选择旁路PLL图像也会分块,图像发生畸变,大于输入时钟*4就OK了。
5、显示的时候有时液晶背景颜色会是淡黄的不知为何?图像显示正常。
OV7670带FIFO的CMOS摄像头使用说明OV7670是一款带有FIFO的CMOS摄像头芯片,广泛应用于各种嵌入式系统中。
它具有低功耗、高灵敏度和高图像质量等特点,适合于图像采集和处理应用。
以下是OV7670带FIFO的CMOS摄像头的使用说明。
一、硬件连接1.连接供电:将模块的VCC引脚连接到3.3V的电源,GND引脚连接到地。
2.数据传输:-使用I2C协议进行配置:将模块的SDA引脚连接到主控芯片的SDA 引脚,SCL引脚连接到主控芯片的SCL引脚。
-使用FIFO模式进行数据传输:将模块的FIFO_WR引脚连接到主控芯片的写使能引脚,FIFO_RD引脚连接到主控芯片的读使能引脚,FIFO_WE 引脚连接到主控芯片的写时钟引脚,FIFO_OE引脚连接到主控芯片的读时钟引脚,FIFO_RST引脚连接到主控芯片的复位引脚,DATA引脚连接到主控芯片的数据引脚。
二、软件配置1.I2C配置:通过I2C协议对OV7670进行配置。
首先初始化I2C总线,然后发送配置指令给OV7670的I2C地址,通过写入特定的寄存器来配置图像参数,如分辨率、亮度、对比度等。
2.FIFO配置:通过FIFO模式进行数据传输。
首先对OV7670进行FIFO模式的配置,设置FIFO的像素格式、帧率等参数。
然后初始化主控芯片的访问FIFO的接口,设置读写使能信号并根据需要配置写时钟和读时钟。
最后,在读取FIFO数据之前,先进行FIFO的复位以确保数据的正确读取。
三、数据采集和处理1.数据采集:通过FIFO模式进行数据采集,将摄像头拍摄到的图像数据存储到FIFO缓存中。
2. 数据处理:从FIFO缓存中读取图像数据,并进行相关的图像处理操作,如图像解码、颜色空间转换、图像滤波等。
可以使用各种图像处理算法和库来实现不同的功能,如OpenCV等。
四、常见问题和解决方案1.图像质量问题:如果发现图像质量差,可以尝试调整摄像头的参数,如增加亮度、对比度等,或者使用图像后处理算法进行图像增强。
废话后面说,先直接上OV7670寄存器的配置部分const uint8_t OV7670_Reg[][2]={//Frame Rate Adjustment for 24Mhz input clock//30fps PCLK=24MHz{0x11, 0x80},//软件应用手册上设置的是0x80,例程设置的是0x00{0x6b, 0x0a},//PLL控制,软件应用手册上设置的是0x0a,例程设置的是0x40,将PLL调高的话就会产生花屏{0x2a, 0x00},{0x2b, 0x00},{0x92, 0x00},{0x93, 0x00},{0x3b, 0x0a},//Output format{0x12, 0x14},//QVGA(320*240)、RGB//RGB555/565 option(must set COM7[2] = 1 and COM7[0] = 0){0x40, 0x10},//RGB565,effective only when RGB444[1] is low{0x8c, 0x00},//Special effects - 特效//normal{0x3a, 0x04},{0x67, 0xc0},{0x68, 0x80},//Mirror/VFlip Enable - 水平镜像/竖直翻转使能{0x1e, 0x37},//修改配置值将产生图像显示上下或左右颠倒//Banding Filter Setting for 24Mhz Input Clock - 条纹滤波器//30fps for 60Hz light frequency//{0x13, 0xe7},//banding filer enable//{0x9d, 0x98},//50Hz banding filer//{0x9e, 0x7f},//60Hz banding filer//{0xa5, 0x02},//3 step for 50Hz//{0xab, 0x03},//4 step for 60Hz//{0x3b, 0x02},//select 60Hz banding filer//Simple White Balance - 白平衡//{0x13, 0xe7},//AWB、AGC、AGC Enable and ...//{0x6f, 0x9f},//simple AWB//AWBC - 自动白平衡控制(Automatic white balance control)//{0x43, 0x14},//用户手册里这些寄存器的值都是保留(Reserved),不用设置的呀?//{0x44, 0xf0},//{0x45, 0x34},//{0x46, 0x58},//{0x47, 0x28},//{0x48, 0x3a},//AWB Control//{0x59, 0x88},//用户手册连寄存器都是保留,初始值都没提供//{0x5a, 0x88},//{0x5b, 0x44},//{0x5c, 0x67},//{0x5d, 0x49},//{0x5e, 0x0e},//AWB Control//{0x6c, 0x0a},//{0x6d, 0x55},//{0x6e, 0x11},//{0x6f, 0x9f},//AGC/AEC - Automatic Gain Control自动增益补偿/Automatic exposure Control自动曝光控制//{0x00, 0x00},//{0x14, 0x20},//{0x24, 0x75},//{0x25, 0x63},//{0x26, 0xA5},//AEC algorithm selection - AEC公式选择//{0xaa, 0x94},//基于平均值的AEC算法Average-based AEC algorithm/基于直方图的AEC算法Histogram-based AEC algorithm//基于直方图的AGC/AEC的控制//{0x9f, 0x78},//{0xa0, 0x68},//{0xa6, 0xdf},//{0xa7, 0xdf},//{0xa8, 0xf0},//{0xa9, 0x90},//Fix Gain Control - 固定增益控制//{0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel//Color saturation 颜色饱和度+ 0//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//{0x58, 0x9e},//Brightness - 亮度+ 0//{0x55, 0x00},//Contrast - 对比度+ 0//{0x56, 0x40},//Gamma Curve - 伽马曲线//{0x7a, 0x20},//{0x7b, 0x1c},//{0x7c, 0x28},//{0x7d, 0x3c},//{0x7e, 0x55},//{0x7f, 0x68},//{0x80, 0x76},//{0x81, 0x80},//{0x82, 0x88},//{0x83, 0x8f},//{0x84, 0x96},//{0x85, 0xa3},//{0x86, 0xaf},//{0x87, 0xc4},//{0x88, 0xd7},//{0x89, 0xe8},//Matrix Coefficient - 色彩矩阵系数//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//Lens Correction Option - 镜头补偿选项 //{0x62, 0x00},//{0x63, 0x00},//{0x64, 0x04},//{0x65, 0x20},//{0x66, 0x05},//{0x94, 0x04},//effective only when LCC5[2] is high//{0x95, 0x08},//effective only when LCC5[2] is high//注释这些配置的话,就倾斜显示,并显示多块,这到底是控制什么的?跟时序图有关?{0x17, 0x16},//行频Horizontal Frame开始高八位(低三位在HREF[2:0]){0x18, 0x04},//行频Horizontal Frame结束高八位(低三位在HREF[5:3]){0x19, 0x02},//场频Vertical Frame开始高八位(低二位在VREF[1:0]){0x1a, 0x7b},//场频Vertical Frame结束高八位(低二位在VREF[3:2]){0x32, 0x80},//HREF{0x03, 0x06},//VREF//注释这个配置的话,就显示花屏了{0x15, 0x02},//配置PCLK、HREF、VSYNC相关//Automatic black Level Compensation - 自动黑电平校正{0xb0, 0x84},//调试时注释这项配置时,颜色显示不正常了,红色练绿色,绿色变红色,但用户手册对这寄存器是保留RSVD//{0xb1, 0x0c},//{0xb2, 0x0e},//{0xb3, 0x82},//{0xb8, 0x0a},//SCALING_xx寄存器//{0x70, 0x00},//{0x71, 0x00},//{0x72, 0x11},//{0x73, 0x08},//{0x3e, 0x00},//ADC//{0x37, 0x1d},//ADC控制ADC Control//{0x38, 0x71},//ADC和模拟共模控制ADC and Analog Common Mode Control//{0x39, 0x2a},//ADC偏移控制ADC Offset Control//零杂的寄存器//{0x92, 0x00},//空行低八位Dummy Line low 8 bits//{0xa2, 0x02},//像素时钟延时//{0x0c, 0x0c},//{0x10, 0x00},//{0x0d, 0x01},//{0x0f, 0x4b},//{0x3c, 0x78},//{0x74, 0x19},//用户手册里这几个寄存器都是保留RSVD//{0x0e, 0x61},//{0x16, 0x02},//{0x21, 0x02},//{0x22, 0x91},//{0x29, 0x07},//{0x33, 0x0b},//{0x35, 0x0b},//{0x4d, 0x40},//{0x4e, 0x20},//{0x8d, 0x4f},//{0x8e, 0x00},//{0x8f, 0x00},//{0x90, 0x00},//{0x91, 0x00},//{0x96, 0x00},//{0x9a, 0x80},};刚开始学OV7670摄像头,我想大家跟我一样心里很毛躁吧,一个模块需要你配置100多个寄存器,但用户手册对寄存器的介绍却草草的一笔带过,自己无从下手啊,只能看开发板给的例程和上网找一些大虾的帖子了。
OV7670的SCCB波形记录OV7670是一种具有SCCB(Serial Camera Control Bus)接口的图像传感器。
SCCB是一种串行的、双向的、主从模式下的总线协议,用于控制和配置摄像头的相关参数。
本文将记录OV7670的SCCB波形,分析不同控制命令的传输过程。
OV7670的SCCB总线使用两条线进行传输,即SDA(Serial Data Line)和SCL(Serial Clock Line)。
SDA负责数据的传输,而SCL则提供时钟信号。
SCCB的通信过程包括起始条件、地址传输、数据传输和停止条件。
首先,我们记录起始条件的波形。
起始条件是指在传输数据之前首先发送一个低电平到高电平的跳变来表示传输开始。
在波形上可以看到SCL在高电平状态,而SDA发生从高电平到低电平的跳变。
这个跳变表示起始条件的建立。
接下来是地址传输的波形。
地址传输用于确定要访问的寄存器或摄像头的内存地址。
先发送设备地址,然后发送寄存器地址。
设备地址是通过SDA线传输的,而时钟信号由SCL提供。
通过观察SCL和SDA信号的变化,我们可以找到传输过程中的起始、终止和数据位。
然后是数据传输的波形。
数据传输用于读取或写入寄存器的内容。
在读取时,先发送设备地址和寄存器地址,然后摄像头返回数据。
在写入时,先发送设备地址和寄存器地址,然后发送要写入的数据。
我们可以通过观察SCL和SDA信号的变化来确定传输过程中的数据位。
最后是停止条件的波形。
停止条件是指在传输数据之后发送一个高电平到低电平的跳变来表示传输结束。
在波形上可以看到SCL在高电平状态,而SDA发生从低电平到高电平的跳变。
这个跳变表示停止条件的建立。
通过对OV7670的SCCB波形的记录和分析,我们可以了解SCCB协议的传输过程。
这对于理解OV7670的工作原理和调试可能的问题很有帮助。
而具体的SCCB波形记录由于篇幅限制无法在此详述,请参考相关的技术文档和资料。
OV7670 Camera Board (B)使 用 说 明 V1.2微雪电子w ww.w a v e s目录1.OV7670一般摄像头模块1.1简介1.2管脚定义1.3控制方式说明 1.4采集图像的基本方法2.OV7670带FIFO 摄像头模块2.1简介 2.2管脚定义2.3控制方式说明 2.4图像采集的基本方法3.问题解答3.1图像采集难吗3.2学习图像方面的知识需要哪些基础 3.3初学者遇到问题该怎么解决 3.4模块提供那些资料3.5单片机能够真正的采集图像吗3.6带FIFO 和不带FIFO 的模块到底哪个好,有什么区别 3.7模块上有晶振好,还是没晶振好 3.8摄像头寄存器该怎么设置3.9 微雪电子模块提供的Demo 输出的数据是什么格式的w ww.w a ve s3.10如果想真正实现图像的采集并且能够处理图像数据该如何做 3.11 微雪电子的那个模块能够适合飞思卡尔小车的比赛 3.12 微雪电子的模块输出到底是模拟的还是数字的3.13 微雪电子模块的质量如何3.14 微雪电子几种驱动板的功能,区别是什么 3.15如何检测微雪电子摄像头模块是否损坏 3.16 微雪电子摄像头模块和模组的区别是什么w ww.w a ve s1.OV7670一般摄像头模块1.简介:OV7670一般模块指微雪电子推出的低成本数字输出CMOS 摄像头,其摄像头包含30w 像素的CMOS 图像感光芯片,3.6mm 焦距的镜头和镜头座,板载CMOS 芯片所需要的各种不同电源(电源要求详见芯片的数据文件),板子同时引出控制管脚和数据管脚,方便操作和使用。
图1.OV7670一般模块2.管脚定义:如图,控制传感器所需的管脚定义如下:3V3-----输入电源电压(推荐使用3.3,5V 也可,但不推荐使用) GDN-----接地点SIO_C---SCCB 接口的控制时钟(注意:部分低级单片机需要上拉控制,和I2C 接口类似)w ww.w a ve sSIO_D---SCCB 接口的串行数据输入(出)端(注意:部分低级单片机需要上拉控制,和I2C 接口类似)VSYNC---帧同步信号(输出信号) HREF----行同步信号(输出信号)PCLK----像素时钟(输出信号) XCLCK---时钟信号(输入信号) D0-D7---数据端口(输出信号) RESTE---复位端口(正常使用拉高)PWDN----功耗选择模式(正常使用拉低)图2.微雪摄像头接口定义3.控制方式说明采集图像数据需要严格按照OV 公司的芯片时序进行,这些时序包括:(1) S CCB 通讯时序,其作用是设置芯片内部寄存器,以控制图像的各种所w ww.w a ve s需功能。
OV7670的SCCB波形记录OV7670是一款基于SCCB(串行摄像头控制总线)协议的摄像头模块,它可以通过SCCB协议与主控设备进行通信和控制。
在本文中,我将为你记录OV7670的SCCB波形,以便更好地理解其通信原理和工作机制。
SCCB协议是一种针对摄像头模块的串行通信协议,类似于I2C协议。
它通过两根信号线(SIOC和SIOD)实现主控设备与摄像头模块之间的数据传输和控制。
下面是一份OV7670的SCCB波形记录:1.启动信号:在开始进行SCCB通信之前,主控设备需要发送一个启动信号,以表明接下来要进行SCCB通信。
启动信号由SIOC引脚拉低,SIOD引脚先拉高再拉低构成。
2.设备地址:主控设备需要发送一个设备地址,以指定要控制的摄像头模块。
设备地址由SIOC引脚拉高,SIOD引脚先拉高再拉低构成。
3.寄存器地址:主控设备需要发送一个寄存器地址,以指定要写入或读取的寄存器。
寄存器地址由SIOC引脚拉高,SIOD引脚先拉高再拉低构成。
4.写入数据:主控设备将要写入的数据发送给摄像头模块。
写入数据由SIOC引脚拉高,SIOD引脚的高低电平表示二进制数据的1和0。
5.等待应答:主控设备在发送完写入数据后,需要等待摄像头模块发送应答信号。
应答信号由摄像头模块通过SIOD引脚拉低来表示。
6.读取数据:主控设备需要读取摄像头模块的数据时,向摄像头模块发送一个读取命令。
读取命令由SIOC引脚拉高,SIOD引脚先拉低再拉高构成。
7.读取数据应答:摄像头模块在收到读取命令后,会发送要读取的数据给主控设备。
读取的数据由SIOC引脚拉高,SIOD引脚的高低电平表示二进制数据的1和0。
以上是OV7670的SCCB通信过程中的一些重要波形记录。
通过这些波形,我们可以清楚地了解到每个步骤的具体控制信号和数据传输情况。
这有助于我们更好地理解OV7670和SCCB协议的工作原理,并可以根据需要进行相关的控制和操作。
总结起来,OV7670的SCCB波形记录包括启动信号、设备地址、寄存器地址、写入数据、等待应答、读取数据和读取数据应答等几个重要步骤的信号和数据情况。
废话后面说,先直接上OV7670寄存器的配置部分const uint8_t OV7670_Reg[][2]={//Frame Rate Adjustment for 24Mhz input clock//30fps PCLK=24MHz{0x11, 0x80},//软件应用手册上设置的是0x80,例程设置的是0x00{0x6b, 0x0a},//PLL控制,软件应用手册上设置的是0x0a,例程设置的是0x40,将PLL调高的话就会产生花屏{0x2a, 0x00},{0x2b, 0x00},{0x92, 0x00},{0x93, 0x00},{0x3b, 0x0a},//Output format{0x12, 0x14},//QVGA(320*240)、RGB//RGB555/565 option(must set COM7[2] = 1 and COM7[0] = 0){0x40, 0x10},//RGB565,effective only when RGB444[1] is low{0x8c, 0x00},//Special effects - 特效//normal{0x3a, 0x04},{0x67, 0xc0},{0x68, 0x80},//Mirror/VFlip Enable - 水平镜像/竖直翻转使能{0x1e, 0x37},//修改配置值将产生图像显示上下或左右颠倒//Banding Filter Setting for 24Mhz Input Clock - 条纹滤波器//30fps for 60Hz light frequency//{0x13, 0xe7},//banding filer enable//{0x9d, 0x98},//50Hz banding filer//{0x9e, 0x7f},//60Hz banding filer//{0xa5, 0x02},//3 step for 50Hz//{0xab, 0x03},//4 step for 60Hz//{0x3b, 0x02},//select 60Hz banding filer//Simple White Balance - 白平衡//{0x13, 0xe7},//AWB、AGC、AGC Enable and ...//{0x6f, 0x9f},//simple AWB//AWBC - 自动白平衡控制(Automatic white balance control)//{0x43, 0x14},//用户手册里这些寄存器的值都是保留(Reserved),不用设置的呀?//{0x44, 0xf0},//{0x45, 0x34},//{0x46, 0x58},//{0x47, 0x28},//{0x48, 0x3a},//AWB Control//{0x59, 0x88},//用户手册连寄存器都是保留,初始值都没提供//{0x5a, 0x88},//{0x5b, 0x44},//{0x5c, 0x67},//{0x5d, 0x49},//{0x5e, 0x0e},//AWB Control//{0x6c, 0x0a},//{0x6d, 0x55},//{0x6e, 0x11},//{0x6f, 0x9f},//AGC/AEC - Automatic Gain Control自动增益补偿/Automatic exposure Control自动曝光控制//{0x00, 0x00},//{0x14, 0x20},//{0x24, 0x75},//{0x25, 0x63},//{0x26, 0xA5},//AEC algorithm selection - AEC公式选择//{0xaa, 0x94},//基于平均值的AEC算法Average-based AEC algorithm/基于直方图的AEC算法Histogram-based AEC algorithm//基于直方图的AGC/AEC的控制//{0x9f, 0x78},//{0xa0, 0x68},//{0xa6, 0xdf},//{0xa7, 0xdf},//{0xa8, 0xf0},//{0xa9, 0x90},//Fix Gain Control - 固定增益控制//{0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel//Color saturation 颜色饱和度+ 0//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//{0x58, 0x9e},//Brightness - 亮度+ 0//{0x55, 0x00},//Contrast - 对比度+ 0//{0x56, 0x40},//Gamma Curve - 伽马曲线//{0x7a, 0x20},//{0x7b, 0x1c},//{0x7c, 0x28},//{0x7d, 0x3c},//{0x7e, 0x55},//{0x7f, 0x68},//{0x80, 0x76},//{0x81, 0x80},//{0x82, 0x88},//{0x83, 0x8f},//{0x84, 0x96},//{0x85, 0xa3},//{0x86, 0xaf},//{0x87, 0xc4},//{0x88, 0xd7},//{0x89, 0xe8},//Matrix Coefficient - 色彩矩阵系数//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//Lens Correction Option - 镜头补偿选项 //{0x62, 0x00},//{0x63, 0x00},//{0x64, 0x04},//{0x65, 0x20},//{0x66, 0x05},//{0x94, 0x04},//effective only when LCC5[2] is high//{0x95, 0x08},//effective only when LCC5[2] is high//注释这些配置的话,就倾斜显示,并显示多块,这到底是控制什么的?跟时序图有关?{0x17, 0x16},//行频Horizontal Frame开始高八位(低三位在HREF[2:0]){0x18, 0x04},//行频Horizontal Frame结束高八位(低三位在HREF[5:3]){0x19, 0x02},//场频Vertical Frame开始高八位(低二位在VREF[1:0]){0x1a, 0x7b},//场频Vertical Frame结束高八位(低二位在VREF[3:2]){0x32, 0x80},//HREF{0x03, 0x06},//VREF//注释这个配置的话,就显示花屏了{0x15, 0x02},//配置PCLK、HREF、VSYNC相关//Automatic black Level Compensation - 自动黑电平校正{0xb0, 0x84},//调试时注释这项配置时,颜色显示不正常了,红色练绿色,绿色变红色,但用户手册对这寄存器是保留RSVD//{0xb1, 0x0c},//{0xb2, 0x0e},//{0xb3, 0x82},//{0xb8, 0x0a},//SCALING_xx寄存器//{0x70, 0x00},//{0x71, 0x00},//{0x72, 0x11},//{0x73, 0x08},//{0x3e, 0x00},//ADC//{0x37, 0x1d},//ADC控制ADC Control//{0x38, 0x71},//ADC和模拟共模控制ADC and Analog Common Mode Control//{0x39, 0x2a},//ADC偏移控制ADC Offset Control//零杂的寄存器//{0x92, 0x00},//空行低八位Dummy Line low 8 bits//{0xa2, 0x02},//像素时钟延时//{0x0c, 0x0c},//{0x10, 0x00},//{0x0d, 0x01},//{0x0f, 0x4b},//{0x3c, 0x78},//{0x74, 0x19},//用户手册里这几个寄存器都是保留RSVD//{0x0e, 0x61},//{0x16, 0x02},//{0x21, 0x02},//{0x22, 0x91},//{0x29, 0x07},//{0x33, 0x0b},//{0x35, 0x0b},//{0x4d, 0x40},//{0x4e, 0x20},//{0x8d, 0x4f},//{0x8e, 0x00},//{0x8f, 0x00},//{0x90, 0x00},//{0x91, 0x00},//{0x96, 0x00},//{0x9a, 0x80},};刚开始学OV7670摄像头,我想大家跟我一样心里很毛躁吧,一个模块需要你配置100多个寄存器,但用户手册对寄存器的介绍却草草的一笔带过,自己无从下手啊,只能看开发板给的例程和上网找一些大虾的帖子了。
2012-03-24 20:42OV7670调试的问题拿出来请大家共同解决硬件:STM32+OV7670+AL422B (电路参照zidong404的)软件思路也是参考zidong404的,现在图像显示基本出来了,但是效果很不好,最关键的是不知道从哪修改。
液晶ssd1289显示的图片如下:输出格式:QVGA RGB565 320*240出现的问题:1、图像分块,而且三块显示的是同一幅图片,不知道是缓存指针读写复位不正常的是不,程序和zidong404的一样的?2、图像重叠,一次显示不是全屏,只是半屏?好像写入的数据不够?我现在很模糊的几个问题是:1、配置QVGA RGB565格式写入缓存AL422的数据是不是320*240*2个字节?如果是,那为何一次显示只有半屏呢?2、还有窗口设置我不是太懂OV7660_config_window(272,16,320,240);// set 240*320 ,谁能帮忙解释一下,272和16这几个数据是怎么得到的?3、还有__nop();这条指令的运用,是直接用吗?需要包含什么文件吗? 51里面用它不是包含一个文件才能使用它吗?弄了半天终于弄出来了!在这里要感谢zidong404的指点。
现在分享一下我的调试结果:1、上面第一和第二个问题出现的原因很简单,摄像头配置出来的图片数据是横屏格式240行,每行320个点,每个像素2个字节,而我的液晶屏配置是竖屏显示的,所以图像分块。
这一点虽然没问题了,但我感觉这样的话图像分块应该是不规则的,而结果是三块一样的图像。
2、还有读写指针复位,如果写指针复位延时不够也会图像分块。
3、还有XCLK时钟我的是8M,这个我试了36M的影响不大,但是不能超过50M,STM32系统时钟72M直接加上也能显示图像,但是有一层绿色的背景色。
4、还有PLL倍频选择旁路PLL图像也会分块,图像发生畸变,大于输入时钟*4就OK了。
5、显示的时候有时液晶背景颜色会是淡黄的不知为何?图像显示正常。
颜色空间指不同波长的电磁波谱与不同物质相互作用所构成的色谱空间。
颜色空间也称色彩模型(又称彩色空间或彩色系统),它的用途是在某些标准下用通常可接受的方式对彩色加以说明。
色彩模型是描述使用一组值(通常使用三个、四个值或者颜色成分)表示颜色方法的抽象数学模型。
本质上,色彩模型是坐标系统和子空间的阐述。
通俗地说,自然界的多彩空间是复杂变换的,在不同的应用领域人们在这个复杂的色彩空间中采用的色彩范围或者说是选取的色彩范围有所不同或者是表述方法不同。
因此就出现了多种多样的空间色彩描述方法,即不同的颜色空间。
颜色空间有许多种,常用有RGB,CMY,YUV,HSV,HSI等。
RGB颜色空间根据三基色原理,用基色光单位来表示光的量,则在RGB颜色空间,任意色光F都可以用R、G、B三色不同分量的相加混合而成:F=r [ R ] + g [ G ] + b [ B ]RGB颜色空间还可以用一个三维的立方体来描述,如下图。
这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
实际应用中RGB存在系列标准。
RAW RGBSensor的感光原理是通过一个一个的感光点对光进行采样和量化,但,在Sensor中,每一个感光点只能感光RGB中的一种颜色。
所以,通常所说的30万像素或130万像素等,指的是有30万或130万个感光点。
每一个感光点只能感光一种颜色。
但是,要还原一个真正图像,需要每一个点都有RGB三种颜色,所以,对于CCIR601或656的格式,在Sensor模组的内部会有一个ISP 模块,会将Sensor采集到的数据进行插值和特效处理,例如:如果一个感光点感应的颜色是R,那么,ISP模块就会根据这个感光点周围的G、B感光点的数值来计算出此点的G、B值,那么,这一点的RGB值就被还原了,然后在编码成601或656的格式传送给Host。
而RAW RGB格式的Sensor则是将没个感光点感应到的RGB数值直接传送给Host,由Host来进行插值和特效处理。
O V TC on f i d e n t i a l , F o r S un r i s e应用•手机•玩具•PC 摄像头•数码相机定购信息OV07675-A23A(彩色,无铅)23-pin CSP3特性•支持图像尺寸:VGA(640x480),QVGA(320x240),QQVGA(160x120)•输出格式支持;YCbCr422,Raw RGB, RGB565, ITU656•数字视频接口(DVP )并行输出接口•片上PLL•内建1.5V 核心电压稳压器•省电模式下保持所有寄存器的值•帧率程序可控,自动曝光/自动增益,水平/垂直翻转,窗口缩放•支持水平和垂直子采样•标准SCCB 通讯接口•图像自动控制功能:自动曝光,自动白平衡和自动黑电平校正,图像质量可控:镜头校正,去坏点和去噪•支持黑太阳校正•输入/输出驱动能力可设置•串行SCCB 标准控制接口•支持I/O 三态和输出极性控制•模组尺寸6mm x 6mm主要规格•感光阵列大小:640×480•电源• 模拟:2.6-3.0V• 输出/输出:1.7-3.0V •功耗• 工作:待定• 休眠:待定•温度范围:• 工作:-30℃到70℃(见表8-1)• 稳定图像:0℃到50℃(见表8-1)•输出格式(8位):YUV422/YCbCr422,RGB565,CCIR656,RA W RGB•镜头尺寸:1/9″•镜头主入射角度:25°(见图10-2)•输入时钟频率:1.5-27MHz•扫描方式:逐行•最大帧率:(见表2-1)• VGA(640*480):30帧• QVGA(320*240):60帧•灵敏度:待定mV/(Lux*sec)•快门:电子快门•信噪比:待定dB •动态范围;待定dB•最大曝光使间:待定×行曝光时间•像素尺寸:2.5um×2.5um •暗电流:待定mV/s@60℃•势阱容量:待定Keˉ•固定图案噪音(FPN ):待定 eˉ•伽玛校正:可编程•感光阵列:1640um×1220um •封装尺寸:2797um×2800umOV TC on f i de nt i al ,F or S un r i s eOmniVision 认证模组/镜头列表(采用OV7675)认证模组列表(2009年7月30日)推荐镜头列表(2009年7月30日)镜头厂镜头型号镜头结构螺牙相对孔径光学总长视场角最大像面模组尺寸Hokuang CA5132P+IR CUT M5*0.35P 2.8 3.160 2.3 6.0*6.0*3.8Sunny S30282P+IR CUT M5*0.35P 2.8 3.162 2.2 6.0*6.0*3.8Largan 9240A 2P+IR CUT M3.5*0.35P 2.8 2.0465 2.3 4.5*4.5*2.8BASO LM0022P+IR CUT M4*0.25P 2.83592.326.0*6.0*3.7模组尺寸镜头型号模组厂模组型号接口R1A 6.5*6.5*3.8S3028Sunny 8079J R1A 6.0*6.0*3.8S3028Sunny 8079GR1A 6.0*6.0*3.8S3028A-Kerr 7675FSL R1.0(090423)R1A 6.0*6.0*3.8CA513Darling DL030-OV7675A R1A 6.0*6.0*3.8CA513Truly 8190R1A 6.0*6.0*3.8CA513Sunrise PCV767501A R1A 6.0*6.0*3.8CA513I059R1A6.0*6.0*3.8CA513CN00303F2759OV7675版本标准PIN 标准PIN 标准PIN 标准PIN 标准PIN 标准PIN Foxconn 标准PIN LiteArray标准PINOV TC on f i de nt i al ,F or S un r i s e1 信号描述2 系统级别描述 2.1格式和帧率 2.2 上电顺序 2.3 电源管理 2.4上电复位产生 2.5 系统时钟控制3 功能模块描述3.1 像素阵列结构4 图像传感器数字功能4.1 水平垂直翻转 4.2 图像窗口 4.3 测试图案4.4 自动曝光/自动增益算法 4.4.1 概要5 图像传感器数字功能5.1 白平衡控制 5.2 自动白平衡 5.3 手动白平衡 5.4 伽玛控制 5.5 色彩矩阵 5.6 镜头校正6 图像传感器数字输出接口功能 6.1 数字视频接口(DVP ) 6.1.1 概要6.1.2VGA 时序7 寄存器表8 电气规范9 机械规范9.1机械规范 9.2回流焊规范10 光学规范10.1传感器阵列中心10.2 镜头主入射角(CRA )OV TC on f i de nt i al ,F or S un r i s e示意图索引图1-1管脚图1-1图2-1OV7675框图2-1图2-2参考设计2-2图2-3用内部DVDD 上电2-3图3-1传感器阵列颜色滤镜图3-1图4-1垂直/镜面翻转示例4-1图4-2图像窗口4-2图4-3测试参考图4-3图6-1VGA 时序图6-1图6-2QVGA 时序图6-2图6-3QQVGA 时序图6-3图9-1封装规范9-1图9-2回流焊温度要求9-2图10-1传感器阵列中心10-1图10-2主入射脚(CRA )10-2OV TC on f i de nt i al ,F or S un r i s e图表索引表1-1信号描述1-1表2-1格式及帧率2-1表4-1水平/垂直翻转控制4-1表4-2图像窗口控制4-2表4-3测试参考图选择4-3表7-1系统控制寄存器7-1表8-1极限值8-1表8-2直流特性(-30℃<T A <70℃)8-2表8-3模拟特性 (T A - 25℃,VDD-A - 2.8V ,VDD-IO - 1.8V )8-3表8-4时序特性8-4表8-5S CC B 时序规范8-5表9-1封装尺寸9-1表9-2回流焊条件9-2表10-1CRA 与像高的关系10-1OV TC on f i de nt i al ,F or S un r i s e1 信号描述表1-1列出OV7675的信号描述和相关的PIN 脚号。
OV7670/OV7171CM OS VGA(O m niPixel®)CAMERAC 简介功能●●●●●●●●●●●●●●●1 OV7670/OV7171管脚图(俯视OV7670/OV7171 CMOS VGA 图像传感器数据手册数据手册. OmniPixel,VarioPixel,OmniVision图标已注册为功能简介图2 描述的是OV7670/OV7171图像传感器的功能模块,包括:●感光阵列(共有656x488个像素,其中在YUV的模式中,有效像素为640x480个)●模拟信号处理●A/D转换●测试图案发生器●数字信号处理器●图像缩放●时序发生器●数字视频端口●SCCB接口●LED和闪光灯输出控制图 2 功能框Note1: DSP*(镜头校正、去噪声、黑白点补偿、自动白平衡等) 7670CSP_DS_002测试图案发生器测试图案发生器有如下功能:●八色彩色条图案●渐变至黑白彩色条图案●输出脚移位“1”数字处理器(DSP)这个模块控制由原始信号插值到RGB 信号的过程,并控制一些图像质量:●边缘锐化(二维高通滤波器)●颜色空间转换(原始信号到RGB 或者YUV/YCbYCr)●RGB 色彩矩阵以消除串扰●色相和饱和度的控制●黑/白点补偿●降噪●镜头补偿●可编程的伽玛●十位到八位数据转换缩放功能这个模块按照预先设置的要求输出数据格式,能将YUV/RGB 信号从VGA 缩小到CIF 以下的任何尺寸。
数字视频接口寄存器COM2[1:0]调节IOL/IOH 的驱动电流,以适应用户的负载。
SCCB 接口SCCB 接口控制图像传感器芯片的运行,详细使用方法参照OmniVision Te ch nolo g ies Seril Camera Control B u s(SCCB) Spe c ifi c ation LED 和闪光灯的输出控制OV7670/OV7171有闪光灯模式,控制外接闪光灯或闪光LED 的工作。