一、OV7725的PCLK的改变和以下几个寄存器有关:

1:OX0D(COM4);

------------------------------------------------------------------------------------------------------------------

0X0D      COM4       41               common control 4

Bit[7:6]:  PLL  frequency control

00:Bypass PLL

01:PLL 4X

10:PLL 6X

11:PLL 8X

Bit[5:4]: AEC evaluate windows

00: Full windows

01: 1/2 windows

10: 1/4 windows

11: Low 2/3 windows

Bit[3:0]: Reserved

------------------------------------------------------------------------------------------------------------------

2:0X11(CLKRC);

------------------------------------------------------------------------------------------------------------------

0X11     CLKRC     80               internal Clock

Bit[7]:  Reseved

Bit[6]:  Use external clock directly (no clock pre_scale available)

Bit[5:0]: internal clock pre_scalar

F(internal clock)   = F(input  clock)/(Bit[5:0]+1)/2

. Range :    [0 0000] to [1 1111]

------------------------------------------------------------------------------------------------------------------

举个栗子:

Frame Rate Adjustment for 24Mhz input clock

30 fps, PCLK = 24Mhz
SCCB_salve_Address = 0x42;
write_SCCB(0x11, 0x01);
write_SCCB(0x0d, 0x41);
write_SCCB(0x2a, 0x00);
write_SCCB(0x2b, 0x00);
write_SCCB(0x33, 0x00);
write_SCCB(0x34, 0x00);
write_SCCB(0x2d, 0x00);
write_SCCB(0x2e, 0x00);
write_SCCB(0x0e, 0x65);

15 fps, PCLK = 12Mhz
SCCB_salve_Address = 0x42;
write_SCCB(0x11, 0x03);
write_SCCB(0x0d, 0x41);
write_SCCB(0x2a, 0x00);
write_SCCB(0x2b, 0x00);
write_SCCB(0x33, 0x00);
write_SCCB(0x34, 0x00);
write_SCCB(0x2d, 0x00);
write_SCCB(0x2e, 0x00);
write_SCCB(0x0e, 0x65);
第一个:

如上:输入时钟为24MHZ;0X0D为0x41,说明PCLK是输入时钟的4倍频;0X11为0X01,根据函数式:F(internal clock)   = F(input  clock)/(Bit[5:0]+1)/2,得到内部时钟为:F(internal clock) =24/2/2=6MHZ;得到PCLK=4*6=24MHZ,帧率是30fps

第二个:

如上:输入时钟为24MHZ;0X0D为0x41,说明PCLK是输入时钟的4倍频;0X11为0X03,根据函数式:F(internal clock)   = F(input  clock)/(Bit[5:0]+1)/2,得到内部时钟为:F(internal clock) =24/4/2=3MHZ;得到PCLK=4*3=12MHZ,帧率是15fps(帧率变小的原因是PCLK的频率降低了)

二、OV7725的帧率和PCLK的频率及0X33及0x34有关,0x33配置的是低8位,0x34配置的是高8位,这里是说增加的假的行,即没有用的行,这样帧率就会下降;

同时还和0x2a及0x2b有关,这里说的是加入的假的列,即没用的列,这样的话帧率也会下降;

---------------------------------------------------------------------------------------------------------

0X33      DM_LNL       00        RW           Dummy  Row   Low   8bit

---------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------

0x34      DM_LNH       00        RW            Dummy Row    High  8bit

-------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------

0x2a     EXHCH          00          RW          Dummy pixel insert MSB

Bit[7:4]  :4MSB for dummy pixel insert in horizontal direction

Bit[3]:Reserved;

Bit[2]:vertical data outup size LSB

Bit[1:0]:Horizontal data outup size 2LSBs

-----------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------

0x2b    EXHCL             00         RW         Dummy pixel insert LSB

8LSB  for dummy pixel insert in horizontal direction

--------------------------------------------------------------------------------------------------------------------------------

举个栗子:

Frame Rate Adjustment for 24Mhz input clock

30 fps, PCLK = 24Mhz
SCCB_salve_Address = 0x42;
write_SCCB(0x11, 0x01);
write_SCCB(0x0d, 0x41);
write_SCCB(0x2a, 0x00);
write_SCCB(0x2b, 0x00);
write_SCCB(0x33, 0x00);
write_SCCB(0x34, 0x00);
write_SCCB(0x2d, 0x00);
write_SCCB(0x2e, 0x00);
write_SCCB(0x0e, 0x65);

25fps, PCLK = 24Mhz
SCCB_salve_Address = 0x42;
write_SCCB(0x11, 0x01);
write_SCCB(0x0d, 0x41);
write_SCCB(0x2a, 0x00);
write_SCCB(0x2b, 0x00);
write_SCCB(0x33, 0x66);
write_SCCB(0x34, 0x00);
write_SCCB(0x2d, 0x00);
write_SCCB(0x2e, 0x00);
write_SCCB(0x0e, 0x65);

这两端代码的输入clk都是24MHZ,输出PCLK相同都是24MHZ,但frame rate一个是30fps,一个为25fps,程序中只有0X33不同,如何通过将0X33设置为0X66,从而将30fps变为25fps。看下面的分析:

从图片中我们可以看到一个VSYNC有510个t(LINE),所以30fps表示有30*510*t(LINE),结合上面对于0X33的分析,因为都 是24MHZ,所以30fps和25fps两个时间相同。故在这510个LINE中插入102个(0X66)LINE,总的时间才会相同。 30*510*t(LINE)=25*(510+102)*t(LINE).

当然帧率会随着PCLK的变化而变化,当PCLK变为12MHZ时,帧率也就减为15fps了。

OV7725的帧率和PCLK寄存器设置相关推荐

  1. OV7725摄像头寄存器设置

    上图是OV7725实现的整体框架,有点丑.FPGA描述SCCB时序,完成OV7725的配置,配置完成之后,OV7725 sensor输出PCLK和href,vsync以及cmos_data信号.经过格 ...

  2. 在x86汇编中将寄存器设置为零的最佳方法是什么:xor,mov或?

    在x86汇编中将寄存器设置为零的最佳方法是什么:xor,mov或? 以下所有说明都做同样的事情:设置%eax为零.哪种方式最佳(需要最少的机器周期)? xorl %eax, %eax mov $0, ...

  3. 射频识别技术漫谈(30)——PN512的寄存器设置

    [转自]http://blog.sina.com.cn/s/blog_9ed067ad0101fz1r.html PN512是NXP推出的一款低功耗.支持多协议的13.56MHz射频接口芯片.在主动模 ...

  4. STM32 USART_Init() 初始化函数中BRR寄存器设置解析

    首先了解一下BRR寄存器的构造: 可以看到bit15:4设置USARTDIV的整数部分,bit 3:0设置USARTDIV的小数部分. 所以小数部分相当于把1分为16份,则DIV_Fraction = ...

  5. 入门51单片机(STC8952RC)定时器、有关中断原理简述、寄存器设置与程序示例(包括流水灯和计时器)

    目录 1.单片机之定时器 1.1 STC89C52RC定时器模式1工作流程 1.1.1 计数部分 1.1.2 时钟部分 1.1.3 中断部分 1.2 定时器T0.T1相关寄存器 1.2.1 TCOM寄 ...

  6. STM32寄存器设置及实现流水灯

    目录 一.用HAL库点亮流水灯 1.安装STM32CUBEMX 2.安装HAL库 3.新建项目 4.keil仿真调试 5.电路连接 6.观察GPIO端口的输出波形 二.用HAL库输出hello wor ...

  7. STM32直接用寄存器设置系统时钟

    时钟对单片机的重要性,就如同心脏对人的重要性,它能驱动处理器内核完成指令,外设也在它的驱动下完成动作.总而言之,时钟是单片机里很重要的一项.那么,我们为什么要设置系统时钟呢?有的外设需要的工作频率不一 ...

  8. CFG_GCR全局配置寄存器设置

      看到CFG_GCR这个寄存器 AL位,也就是第二位0和1的不同功能 那是不是这个寄存器在不禁用swim模式的情况下,赋值0x02即可 因为我习惯使用库函数,寄存器不是很熟,所以我在标准库里面去找相 ...

  9. UART串口通信浅谈之(二)--寄存器设置

    1.1 通信的三种基本类型 常用的通信通常可以分为单工.半双工.全双工通信. 单工就是指只允许一方向另外一方传送信息,而另一方不能回传信息.比如我们的电视遥控器,我们的收音机广播等,都是单工通信技术. ...

最新文章

  1. 使用CSS选择器在页面中插入内容
  2. Java Web - EL表达式和JSTL标签库
  3. OpenGL HDR色调映射的实例
  4. 六台机器搭建RedisCluster分布式集群
  5. Stream操作Collection集合
  6. 【大学物理】毕奥萨伐尔定律
  7. 201809-1—卖菜
  8. iOS Crash常规跟踪方法及Bugly集成运用
  9. Asp.Net MVC控制器、控制器动作和动作结果
  10. 【语音隐写】基于matlab GUI DWT音频数字水印(带语音播报)【含Matlab源码 711期】
  11. 服务器优盘启动安装win7系统教程,u盘装win7系统详细教程图解
  12. CentOS7下ldap的安装
  13. 再见python你好julia_再见,Python2。你好,Python3
  14. Premiere Pro CS6自学所需的视频编辑基础(一)
  15. 蓝海创意云丨干货:V-Ray渲染后期处理雪中建筑效果图
  16. 离线高清卫星地图SDK及解决方案
  17. centos7使用蓝牙_centos7 下 通过终端 连接 蓝牙设备
  18. 线索二叉树中序非递归线索化以及递归线索化构建和遍历算法
  19. ufs2.2 协议扫盲(十一)
  20. 【Vmware】 CentOS 8 安装教程

热门文章

  1. 计算几何 - XOJ 1171 线段求交
  2. xhost和XServer相关概念汇总
  3. linux下DHCP的安装配置
  4. 一个女程序员的创业人生:胆识也是一种能力 作者:秋镇菜
  5. Android应用开发—浅谈MVX模式
  6. posman使用教程
  7. 网络爬虫--9.正则表达式
  8. 学成在线--17.我的课程
  9. python面试题总结(5)--数据类型(字典)
  10. python lambda map reduce_简单了解python filter、map、reduce的区别