OV7725寄存器配置

article/2025/9/13 21:10:42

OV7725寄存器配置(为了替换NT99141研究了很长一段时间)

部分参考链接:
OV7725 电器特性和时序图:https://www.cnblogs.com/raymon-tec/p/5087088.html
OV7725摄像头的彩色图像采集原理与液晶显示(有必要了解框图):https://blog.csdn.net/huzhoudaxia/article/details/75269392

OV7725的一些必要认识

OV7725功能框
XCLK:工作时钟输入,由主控器产生(由外部输入到摄像头),频率常用为24MHz;
PCLK:像素时钟输出,由XCLK产生,用于控制器采样图像数据(时钟速率<5ns,比如PCL84MHZ,30fps); 配置寄存器设置不同频率
HREF:行参考信号输出;
VSYNC:场同步信号输出; 一帧图像产生的中断,配置寄存器可使用该功能

D[9:0] 像素数据输出;

RSTB:复位输入,低电平有效;
PWDN:低功耗模式选择输入,正常工作期间需拉低;
SCL:SCCB管理接口时钟,最高频率400KHz;
SDA:SCCB接口串行数据总线;

OV7725寄存器配置(引自野火的配置)

//寄存器宏定义#define GAIN      0x00#define BLUE      0x01#define RED       0x02#define GREEN     0x03#define BAVG      0x05#define GAVG      0x06#define RAVG      0x07#define AECH      0x08#define COM2      0x09#define PID       0x0A#define VER       0x0B#define COM3      0x0C#define COM4      0x0D#define COM5      0x0E#define COM6      0x0F#define AEC       0x10#define CLKRC     0x11#define COM7      0x12#define COM8      0x13#define COM9      0x14#define COM10     0x15#define REG16     0x16#define HSTART    0x17#define HSIZE     0x18#define VSTRT     0x19#define VSIZE     0x1A#define PSHFT     0x1B#define MIDH      0x1C#define MIDL      0x1D#define RSVD      0x1E#define LAEC      0x1F#define COM11     0x20#define BDBase    0x22#define BDMStep   0x23#define AEW       0x24#define AEB       0x25#define VPT       0x26#define REG28     0x28#define HOutSize  0x29#define EXHCH     0x2A#define EXHCL     0x2B#define VOutSize  0x2C#define ADVFL     0x2D#define ADVFH     0x2E#define YAVE      0x2F#define LumHTh    0x30#define LumLTh    0x31#define HREF      0x32#define DM_LNL    0x33#define DM_LNH    0x34#define ADoff_B   0x35#define ADoff_R   0x36#define ADoff_Gb  0x37#define ADoff_Gr  0x38#define Off_B     0x39#define Off_R     0x3A#define Off_Gb    0x3B#define Off_Gr    0x3C#define COM12     0x3D#define COM13     0x3E#define COM14     0x3F#define COM15     0x40#define COM16     0x41#define TGT_B     0x42#define TGT_R     0x43#define TGT_Gb    0x44#define TGT_Gr    0x45#define LC_CTR    0x46#define LC_XC     0x47#define LC_YC     0x48#define LC_COEF   0x49#define LC_RADI   0x4A#define LC_COEFB  0x4B #define LC_COEFR  0x4C#define FixGain   0x4D#define AREF0     0x4E#define AREF1     0x4F#define AREF2     0x50#define AREF3     0x51#define AREF4     0x52#define AREF5     0x53#define AREF6     0x54#define AREF7     0x55#define UFix      0x60#define VFix      0x61#define AWBb_blk  0x62#define AWB_Ctrl0 0x63#define DSP_Ctrl1 0x64#define DSP_Ctrl2 0x65#define DSP_Ctrl3 0x66#define DSP_Ctrl4 0x67#define AWB_bias  0x68#define AWBCtrl1  0x69#define AWBCtrl2  0x6A#define AWBCtrl3  0x6B#define AWBCtrl4  0x6C#define AWBCtrl5  0x6D#define AWBCtrl6  0x6E#define AWBCtrl7  0x6F#define AWBCtrl8  0x70#define AWBCtrl9  0x71#define AWBCtrl10 0x72#define AWBCtrl11 0x73#define AWBCtrl12 0x74#define AWBCtrl13 0x75#define AWBCtrl14 0x76#define AWBCtrl15 0x77#define AWBCtrl16 0x78#define AWBCtrl17 0x79#define AWBCtrl18 0x7A#define AWBCtrl19 0x7B#define AWBCtrl20 0x7C#define AWBCtrl21 0x7D #define GAM1      0x7E#define GAM2      0x7F#define GAM3      0x80#define GAM4      0x81#define GAM5      0x82#define GAM6      0x83#define GAM7      0x84#define GAM8      0x85#define GAM9      0x86#define GAM10     0x87#define GAM11     0x88#define GAM12     0x89#define GAM13     0x8A#define GAM14     0x8B#define GAM15     0x8C#define SLOP      0x8D#define DNSTh     0x8E#define EDGE0     0x8F#define EDGE1     0x90#define DNSOff    0x91#define EDGE2     0x92#define EDGE3     0x93#define MTX1      0x94#define MTX2      0x95#define MTX3      0x96#define MTX4      0x97#define MTX5      0x98#define MTX6      0x99#define MTX_Ctrl  0x9A#define BRIGHT    0x9B#define CNST      0x9C#define UVADJ0    0x9E#define UVADJ1    0x9F#define SCAL0     0xA0#define SCAL1     0xA1#define SCAL2     0xA2#define SDE       0xA6#define USAT      0xA7#define VSAT      0xA8#define HUECOS    0xA9#define HUESIN    0xAA#define SIGN      0xAB#define DSPAuto   0xAC//寄存器配置表static Register_Info Sensor_Config[] ={{COM7,      0x80}, //恢复默认设置{COM10,     0x02},//激活场中断/*输出格式,分辨率配置*/{CLKRC,		0x00}, /*clock config*/{COM7,		0x00}, /*VGA RGB422 */{HSTART, 	0x23}, //VGA = 0x23,QVGA = 0x3F {HSIZE, 	0xA0}, //VGA = 0xA0,QVGA = 0X50{VSTRT, 	0x07}, //VGA = 0x07,QVGA = 0X03{VSIZE, 	0xf0}, //VGA = 0xf0,QVGA = 0X78{HREF, 		0x00},{HOutSize, 	0xA0},{VOutSize, 	0xF0},{EXHCH, 	0x00},/*DSP control*/{TGT_B,		0x7f},{FixGain,	0x09},{AWB_Ctrl0,	0xe0},{DSP_Ctrl1,	0xff},{DSP_Ctrl2,	0x20},{DSP_Ctrl3,	0x00},{DSP_Ctrl4,	0x00},/*AGC AEC AWB*/{COM8,		0xf0},{COM4,		0x41},	  /*Pll AEC CONFIG,对输出颜色有影响*/{COM6,		0xc5},{COM9,		0x21},{AEW,		0x34},{AEB,		0x3c},{VPT,		0xa1},{EXHCL,		0x00},{AWBCtrl3,	0xaa},{AWBCtrl1,	0x5d},{EDGE1,		0x0a},{DNSOff,	0x01},{MTX1,		0x5f},{MTX2,		0x53},{MTX3,		0x11},{MTX4,		0x1a},{MTX5,		0x3d},{MTX6,		0x5a},{MTX_Ctrl,	0x1e},{BRIGHT,	0x00},{CNST,		0x25},{USAT,		0x65},{VSAT,		0x65},{UVADJ0,	0x81},{SDE,		0x20},  //二值化,个人需求,根据寄存器手册进行配置,这个寄存器还有其他功能,可以多看看/*GAMMA config*/{GAM1,		0x0c},{GAM2,		0x16},{GAM3,		0x2a},{GAM4,		0x4e},{GAM5,		0x61},{GAM6,		0x6f},{GAM7,		0x7b},{GAM8,		0x86},{GAM9,		0x8e},{GAM10,		0x97},{GAM11,		0xa4},{GAM12,		0xaf},{GAM13,		0xc5},{GAM14,		0xd7},{GAM15,		0xe8},{SLOP,		0x20},{HUECOS,	0x80},{HUESIN,	0x80},{DSPAuto,	0xff},{DM_LNL,	0x00},{BDBase,	0x99},{BDMStep,	0x03},{LC_RADI,	0x00},{LC_COEF,	0x13},{LC_XC,		0x08},{LC_COEFB,	0x14},{LC_COEFR,	0x17},{LC_CTR,	0x05},/*Horizontal mirror image*/{COM3,		0xd0},//垂直翻转,水平翻转/*night mode auto frame rate control*///	{COM5,		0xf5},	/*在夜视环境下,自动降低帧率,保证低照度画面质量*/{COM5,		0x31},	/*夜视环境帧率不变*/}//部分缩写解释:AGC(Auto maticGain Control):自动增益控制,AWB:自动白平衡,AEC(automatic exposure control):自动曝光控制,BLC(back light control):背光补偿

个人总结

OV7725的基本启动配置主要有时钟、分辨率、输出格式。

部分需要关注的寄存器:

COM3:可以换数据输出顺序,比如可以RGB顺序,也可以BGR顺序
COM4:PLL设置,影响帧率
COM8:AGC,AWB,WEC使能
COM10:行中断(HSYNC),场中断使能
还有上面分辨率配置那一块是很必要配置的

再说说我替换NT99141遇到的坑(不熟悉代码流程(开发板配套demo)带来的坑最多):
1…未激活场中断(或者说帧中断)。开发板缓存的采集依据估计是根据帧中断来的,开启过后,LCD上能够显示图像轮廓
2.XCLK输入超范围,采集图像不准确
3.寄存器配置PLL带来PCLK不匹配,图像也不准确
4.分辨率配置错误带来图像大小不准确
5.以为NT99141输出的是RGB565格式,导致LCD看到的图像是绿色的图像轮廓,这是坑我坑的最久的,被同事误导了一波,还得靠自己啊。

关于OV7725的其他功能,参见官方《OV7725 Software Application Note》,主要是摄像头的微调,白平衡,曝光量,帧率之类的。


http://chatgpt.dhexx.cn/article/Nxtytgdg.shtml

相关文章

基于STM32的OV7725摄像头拍照实验

平台&#xff1a;STM32ZET6&#xff08;核心板&#xff09;ST-LINK/V2SD卡USB串口线鹰眼OV7725摄像头&#xff08;注意&#xff0c;为了减少摄像头连线的麻烦&#xff0c;建议初学者选取单片机时选用带有摄像头接口的板子&#xff09; 工程介绍&#xff1a;需要移植FatFs文件系…

OV7725鹰眼摄像头

OV7725鹰眼摄像头如何使用&#xff1f; 目前的ov7725鹰眼摄像头&#xff0c;基本上用的都是山外的库&#xff0c;所以今天我们主要根据山外的库&#xff0c;基于k60芯片&#xff0c;给大家具体的讲解。 1.摄像头初始化 首先是摄像头的第一步就是初始化&#xff0c;这个我们直…

OV7725摄像头图像采集基础知识

目前FPGA用于图像采集 传输 处理 显示应用越来越多&#xff0c;主要原因是图像处理领域的火热以及FPGA强大的并行处理能力。本文以OV7725为例&#xff0c;对摄像头使用方面的基础知识做个小的总结&#xff0c;为后续做个铺垫。 XCLK:工作时钟输入&#xff0c;由主控器产生&…

FPGA--OV7725摄像头采集与VGA显示实验--1--OV7725使用与驱动协议

目录 前言 OV7725引脚及功能框图 参数指标 引脚 功能框图 SCCB时序及读写操作 SCCB时序特点 读写实现 OV7725寄存器常用配置参数 前言 摄像头采集是图像处理的第一步&#xff0c;本章节分为多部分&#xff0c;旨在让大家学会如何使用OV7725采集图像&#xff0c;并且…

【FPGA的基础快速入门22-------OV7725摄像头模块】

OV7725摄像头模块 OV7725是Omni Vision&#xff08;豪威科技&#xff09;公司生产的CMOS图像传感器&#xff0c;该传感器功耗低、可靠性高以及采集速率快&#xff0c;主要应用在玩具、安防监控、电脑多媒体等领域。 OV7725感光阵列达到640*480&#xff0c;能实现最快60fps VGA…

STM32 OV7725 传感器

目录 OV7725 传感器1、选择输出格式2、选择输出分辨率3、帧率调整4、夜间模式5、消除光带6、白平衡7、缺陷像素矫正8、黑电平矫正9、视频模式10、数字缩减 OV7725 函数1、光模式2、颜色饱和度3、亮度4、对比度5、特效 OV7725 设置参考 OV7725 传感器 OV7725摄像机™ 图像传感器…

OV7725摄像头之OV7725芯片

近日入手了一块正点原子家的OV7725摄像头模块&#xff0c;秉着小白尽可能学得透彻些的想法&#xff0c;选择了野火家的相同摄像头教学视频。链接如下&#xff1a;【单片机】野火STM32F103教学视频 (配套霸道/指南者/MINI)【全】(刘火良老师出品) (无字幕)_哔哩哔哩_bilibili 现…

二进制加法运算

两个二进制整数相加时&#xff0c;是位对位处理的&#xff0c;从最低的一对位&#xff08;右边&#xff09;开始&#xff0c;依序将每一对位进行加法运算。两个二进制数字相加&#xff0c;有四种结果&#xff0c;如下所示&#xff1a; 0 0 00 1 11 0 1 1 1 10 1 与 1 …

二进制加减法编程

1、二进制加法基本指令 &#xff08;1&#xff09;ADD指令 格式&#xff1a;ADD DST&#xff0c;SRC 该指令把源操作数&#xff08;SRC&#xff09;指向的数据与目的操作数&#xff08;DST&#xff09;相加后&#xff0c;将结果放到目的操作数&#xff08;DST&#xff09;中…

二进制乘除法运算原理

二进制乘除法原理 计算机所能完成的最基本操作是加减法和左右移。 虽然ISA中一般都有MUL类指令&#xff0c;但是这些经过译码之后最终的元操作还是加法和移位指令。 二进制乘法 假设不能使用乘除运算求ab的结果&#xff0c;当ab123时&#xff0c;最直接的方法是通过88个88相…

二进制加法计算

读计算机原理这本书的的时候涉及到二进制数的加法&#xff0c;个人做个直观的记录&#xff0c;防止遗忘。 计算时&#xff0c;先把两个二进制数对齐&#xff08;如同十进制一样&#xff0c; 从右向左&#xff09;11为10&#xff0c;此时向上一位进1,0写在本位&#xff08;如同十…

二进制加减乘除

最重要的,理解十进制的借位和进位.十进制中,由于一个循环是10,所以借1位,就相当于从高位借过来10,也就是常说的借1当10,同时,高位需要减去10(外在体现上是减去1,因为高位已经在高位了).反过来,进1,就等于高位加上10,但因为高位已经在高位了,所以去掉位数考虑,高位实际是加1,也就…

二进制加法

计算机中二进制相关运算 有符号二进制与无符号二进制数之间的区别有符号二进制加法运算讨论关于有符号二进制数算术的溢出问题&#xff08;重点&#xff09;无符号二进制运算 有符号二进制与无符号二进制数之间的区别 对于一个有符号二进制数来讲&#xff0c;最高位是该数的符…

二进制加减法计算

二进制加减法&#xff1a;原码、反码、补码 1.十进制下的计算1.模数2.补数 2.二进制数的存储1.计算机计数2.原码3.反码4.补码 3.二进制计算1.中位对称2.循环进位3.二进制减法推算4.结论 1.十进制下的计算 1.模数 假设下文【模】定义如下&#xff1a;某个可度量系统的度量范围…

二进制数的运算方法

1&#xff0e;二进制数的算术运算 二进制数的算术运算包括&#xff1a;加、减、乘、除四则运算&#xff0c;下面分别予以介绍。 &#xff08;1&#xff09;二进制数的加法 根据“逢二进一”规则&#xff0c;二进制数加法的法则为&#xff1a;0&#xff0b;0&#xff1d;00&…

简单计算二进制的加减法

二进制就是计算机技术中广泛采用的一种数制&#xff0c;由&#xff08;0&#xff0c;1&#xff09;组成。你可以广泛的认为&#xff0c;每一个 0&#xff0c;1 都&#xff08;存储在&#xff09;对应着一个比特位&#xff08;bit&#xff09;,而由这些由例如&#xff1a;010010…

二进制的加减乘除法全了看一下叭

看这里~ 前言一、二进制加法二、二进制减法三、二进制乘法四、二进制除法总结 前言 最近在学习通信网络中的CRC算法&#xff0c;所以积累一下二进制的各种算法&#xff0c;如果对您有用&#xff0c;记得点个赞喔&#xff01;谢谢啦。 一、二进制加法 对于二进制加法和十进制的…

二进制加,减法,23个位运算技巧

二进制加&#xff0c;减法 二进制最高位为1时表示负数&#xff0c;为0时表示正数。 **原码&#xff1a;**一个正数&#xff0c;转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。 举例说明&#xff1a;       int类型的 …

二进制的加减法_二进制加减法

二进制的加减法 1)二进制加法 (1) Binary Addition) Since binary numbers consist of only two digits 0 and 1, so their addition is different from decimal addition. Addition of binary numbers can be done following certain rules: 由于二进制数仅由两位数字0和1组成…

补码二进制减法计算

二进制减法计算 -1 - 1 二进制表示为 -1 1 -2 补码1111 ... 1110 原码1000 ... 0010 如果是5 - 3 如果-12 如果Int_min - 1 127 此处是在Int的范围&#xff0c;所以在环内-1到了127 如果不在int范围中&#xff0c;在二进制中&#xff0c;结果就是-(int_min1)…