战舰v3|stm32f103 摄像头OV2640驱动程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ss343fd/article/details/54718565

【硬件接线】

这里写图片描述
【最少接线】

模块ov2640 stm32f103
数据:D[0..7] 8根 PC[0..7]
串口:SCL、SDA 2根 uart3的PB10,11
其他:PCLK(像素时钟)、VSYNC(帧同步) 2根 PB15,PB5
电源:提供 OV2640 稳定的 2.8V 和 1.3V 工作电压 适合的电压输出引脚

*一般淘宝的模块自带了稳压芯片,供电3.3v即可
这里写图片描述

【驱动流程】

系统上电后,MCU配置OV2640的工作方式,在OV2640准备好图像后,VSYNC会被拉高一段时间,在此时间内MCU通过PCLK上升沿中断按字节接收图像数据

详细解析:
定义:帧同步信号-摄像头开始发送一帧图像(如320x160个像素)时发出的信号。像素同步信号则是开始发送一个像素点时发出的信号。

1 通过SSCB初始化摄像模块(初始化上百个寄存器) *SSCB类似于I2C
2 等待帧同步信号VSYNC上升沿,开始读取一帧的数据
2.1 在此过程中VSYNC保持高电平,每个像素同步信号PCLK下降沿,开始读走8位数据线的数据(1像素),重复n次
2.2 直到帧同步信号VSYNC下降沿,一帧图像数据读取结束
3 等待帧同步信号VSYNC上升沿,开始读取新一帧的数据

时序图
这里写图片描述

这里写图片描述
note
*使用中断监听帧同步信号引脚VSYNC和像素同步信号引脚PCLK,当VSYNC低电平时,关闭PCLK中断以防误读。
*还有一个行同步信号HREF,原本应是帧信号->行信号->像素信号,此处可以不用,直接帧信号->像素信号。
*模块可输出多种视频格式,但数据读取流程一样。
*数据手册的时序图显示是VSYNC低电平阶段传输帧数据,个人认为有误,根据可运行的例程判断应为VSYNC高电平阶段传输帧数据。
*驱动例程贴在文章末尾

【各种设置】

传感器窗口设置、图像尺寸设置、图像窗口设置和图像输出大小设置

  • 传感器窗口设置
    传感器窗口设置

补充

*OV2640 自带了一个 8 位微处理器,该处理器有 512 字节 SRAM,4KB 的 ROM,它提供一个灵活的主机到控制系统的指令接口,同时也具有细调图像质量的功能。

【参考资料】

官方文档
OV2640 Camera Module Software Application Notes1.04 OVT.pdf
OV2640_Camera_Module_Hardware_Application_Notes1.04.pdf
OV2640.pdf
第四十章 摄像头实验-STM32F4开发指南-正点原子探索者STM32开发板.pdf
资料保存路径 E:\0_战舰v3\7,硬件资料\摄像头OV2640

展开阅读全文

没有更多推荐了,返回首页