鹰眼摄像头的移植(LPLD V3)

本文详细介绍了鹰眼摄像头的驱动步骤,包括了解工作方式、时序图、使用SCCB配置、场中断与DMA传输、图像解压等关键环节。通过场中断触发DMA,实现150帧每秒的高速传输,适用于智能车比赛。同时,文章提到了OV7725传感器的特性,并提供了初始化配置和寄存器设置。
摘要由CSDN通过智能技术生成

关键词:

  • 鹰眼摄像头
  • LPLD V3库
  • OV7725
鹰眼摄像头的优点

1.硬件二值化,二值化效果理想(个人看法不一样)
2.一次传输8个像素,速度可达150帧每秒
3.成像质量、低照度好的OV7725
由于某宙捕食者摄像头停产,不得不换用市面上认为用于智能车比赛较好的摄像头——鹰眼(我也是偷懒的人,能用别人的坚决不自己写)。

鹰眼的驱动步骤
1.了解鹰眼的工作方式(可以参考《OV7725数字摄像头编程基本知识笔记》)

我在驱动鹰眼的时候和山外哥一样,并未使用行中断,而是采用场中断+DMA的方式,可能与大家习惯使用行场中断+DMA采集图像的方式存在差异,不过原理并没有太多区别。
这里写图片描述
注意:①在K60与PCLK、VSYNC连接的IO处加下拉150Ω的电阻进行阻抗匹配,可以有效减少干扰。不过我在测试的时候并没有加,图像也很稳定,并没有异常。
②鹰眼使用3.3V供电,存在因电池电量不够出现图像上下错位的情况。

这里写图片描述

2.搞清楚时序图

这里写图片描述
(忽略图片中的行中断内容)采用场信号上升沿触发中断,开启DMA,根据PCLK的下降沿触发,传输图像。

3.采集图像的思路
使用场中断,DMA传输

①需要采集图像时,开场中断
②判断场中断来了,初始化DMA传输,并启动DMA传输
③每个PCLK下降沿来了都触发DMA传输,把摄像头的输出的值读取到内存数组里。
④DMA停止传输时触发中断,中断里面设置图像采集结束标志,图像采集完毕。

4.使用SCCB

OV7725摄像头的寄存器是EEPRON,有一定单片机基础的同学都知道,其不稳定,数据易丢失,因此程序每次初始化时我们都需要重新写入寄存器设置。下面定义摄像头的各寄存器地址:

#ifndef _OV7725_REG_H_
#define _OV7725_REG_H_

#define OV7725_ID           0x21


#define OV7725_GAIN      0x00
#define OV7725_BLUE      0x01
#define OV7725_RED       0x02
#define OV7725_GREEN     0x03
#define OV7725_BAVG      0x05
#define OV7725_GAVG      0x06
#define OV7725_RAVG      0x07
#define OV7725_AECH      0x08
#define OV7725_COM2      0x09
#define OV7725_PID       0x0A
#define OV7725_VER       0x0B
#define OV7725_COM3      0x0C
#define OV7725_COM4      0x0D
#define OV7725_COM5      0x0E
#define OV7725_COM6      0x0F
#define OV7725_AEC       0x10
#define OV7725_CLKRC     0x11
#define OV7725_COM7      0x12
#define OV7725_COM8      0x13
#define OV7725_COM9      0x14
#define OV7725_COM10     0x15
#define OV7725_REG16     0x16
#define OV7725_HSTART    0x17
#define OV7725_HSIZE     0x18
#define OV7725_VSTRT     0x19
#define OV7725_VSIZE     0x1A
#define OV7725_PSHFT     0x1B
#define OV7725_MIDH      0x1C
#define OV7725_MIDL      0x1D
#define OV7725_LAEC      0x1F
#define OV7725_COM11     0x20
#define OV7725_BDBase    0x22
#define OV7725_BDMStep   0x23
#define OV7725_AEW       0x24
#define OV7725_AEB       0x25
#define OV7725_VPT       0x26
#define OV7725_REG28     0x28
#define OV7725_HOutSize  0x29
#define OV7725_EXHCH     0x2A
#define OV7725_EXHCL     0x2B
#define OV7725_VOutSize  0x2C
#define OV7725_ADVFL     0x2D
#define OV7725_ADVFH     0x2E
#define OV7725_YAVE      0x2F
#define OV7725_LumHTh    0x30
#define OV7725_LumLTh    0x31
#define OV7725_HREF      0x32
#define OV7725_DM_LNL    0x33
#define OV7725_DM_LNH    0x34
#define OV7725_ADoff_B   0x35
#define OV7725_ADoff_R   0x36
#define OV7725_ADoff_Gb  0x37
#define OV7725_ADoff_Gr  0x38
#define OV7725_Off_B     0x39
#define OV7725_Off_R     0x3A
#define OV7725_Off_Gb    0x3B
#define OV7725_Off_Gr    0x3C
#define OV7725_COM12     0x3D
#define OV7725_COM13     0x3E
#define OV7725_COM14     0x3F
#define OV7725_COM16     0x41
#define OV7725_TGT_B     0x42
#define OV7725_TGT_R     0x43
#define OV7725_TGT_Gb    0x44
#define OV7725_TGT_Gr    0x45
#define OV7725_LC_CTR    0x46
#define OV7725_LC_XC     0x47
#define OV7725_LC_YC     0x48
#define OV7725_LC_COEF   0x49
#define OV7725_LC_RADI   0x4A
#define OV7725_LC_COEFB  0x4B
#define OV7725_LC_COEFR  0x4C
#define OV7725_FixGain   0x4D
#define OV7725_AREF1     0x4F
#define OV7725_AREF6     0x54
#define OV7725_UFix      0x60
#define OV7725_VFix      0x61
#define OV7725_AWBb_blk  0x62
#define OV7725_AWB_Ctrl0 0x63
#define OV7725_DSP_Ctrl1 0x64
#define OV7725_DSP_Ctrl2 0x65
#define OV7725_DSP_Ctrl3 0x66
#define OV7725_DSP_Ctrl4 0x67
#define OV7725_AWB_bias  0x68
#define OV7725_AWBCtrl1  0x69
#define OV7725_AWBCtrl2  0x6A
#d
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值