基于MSP430F5438A的OV7670简单驱动程序

        作为一个新手,因为课程设计要求,接触到了OV7670。因为课程设计要求使用MSP430F5438A驱动OV7670,而网上大多数都是使用STM32进行驱动。上网查找了很多资料,也仔细看过网上大佬发的相关寄存器的帖子,最后成功使用430单片机完成了设计。本着来源于网络,回馈于网络的原则,在此介绍一下,自己使用OV7670的一点经验。水平有限,偏颇之处,还请包涵!

        首先简单的介绍一下所使用的摄像头OV7670。 OV7670是OV(OmniVision)公司生产的一颗1/6寸的CMOS VGA图像传感器。该传感器体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。通过SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影像数据。该产品VGA图像最高达到30帧/秒。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能过程包括伽玛曲线、白平衡、度、色度等都可以通过SCCB接口编程。OmmiVision 图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。其具有高灵敏度、低电压适合嵌入式应用,标准的SCCB接口以及支持RGB565格式输出。因为摄像头的像素时钟非常高,直接通过MSP430的IO口读取数据非常困难,也是十分占耗CPU。采用带FIFO模块的OV7670,通过对FIFO的读取,就可以轻松的读取摄像头采集到图像数据。从而满足速度要求,节省CPU。本次采用的OV7670自带有源晶振,不需要外部再提供时钟。一个FIFO芯片的容量是384K字节,可以存储两帧QVGA的图像数据,所以本次设计采用QVGA模式  RGB565格式传输图像数据。接下来介绍具体的驱动程序。

管脚分配如图所示:

宏定义:

//SCL-P1.3,SDA-P1.6
#define SCCB_SIC_H()     P1OUT|=BIT3 
#define SCCB_SIC_L()     P1OUT&=~BIT3  

#define SCCB_SID_H()     P1OUT|=BIT6
#define SCCB_SID_L()     P1OUT&=~BIT6

#define SCCB_SID_IN      P1DIR &= ~BIT6    
#define SCCB_SID_OUT     P1DIR |= BIT6   
#define SCCB_SID_STATE	 P1IN&BIT6

#define OE_L    P4OUT &= ~BIT3
#define OE_H    P4OUT |= BIT3
#define RCLK_L  P4OUT &= ~BIT4
#define RCLK_H  P4OUT |= BIT4
#define WEN_L   P4OUT &= ~BIT5
#define WEN_H   P4OUT |= BIT5
#define WRST_L  P4OUT &= ~BIT6
#define WRST_H  P4OUT |= BIT6
#define RRST_L  P4OUT &= ~BIT7
#define RRST_H  P4OUT |= BIT7

//像素存储
#define piexl_w 320
#define piexl_h 240<
  • 14
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值