OV7740 图像传感器配置文档
OV7740 是一款常用的 VGA 图像传感器,用于图像捕捉应用。以下文档将详细介绍如何初始化和配置 OV7740 图像传感器以实现基本的图像采集。
硬件配置
1. 时钟配置
为了保证 OV7740 图像传感器能够正确工作,需要配置时钟源。图像传感器要求工作在 24 MHz,因此使用了以下时钟配置:
-
PLL(Phase Locked Loop)时钟配置:
PLLA
时钟工作在 96 MHz(主系统时钟)。PCK0
时钟将PLLA
时钟分频为 24 MHz。- 代码配置如下:
PMC->PMC_PCK[0] = (PMC_PCK_PRES_CLK_4 | PMC_PCK_CSS_PLLA_CLK); PMC->PMC_SCER = PMC_SCER_PCK0; while (!(PMC->PMC_SCSR & PMC_SCSR_PCK0)) { }
2. PIO 配置
OV7740 图像传感器通过 PIO(并行输入输出)接口传输数据。需要初始化 PIO 接口以接收图像数据。
-
PIO 配置:
pio_capture_init(OV_DATA_BUS_PIO, OV_DATA_BUS_ID);
这里
OV_DATA_BUS_PIO
和OV_DATA_BUS_ID
是与图像数据总线相对应的硬件配置。
3. TWI(I2C)配置
OV7740 使用 TWI 总线(也就是 I2C 总线)与主控制器进行通信。为了确保与 OV7740 的正确通信,需要初始化 TWI 外设。
-
启用 TWI 时钟:
pmc_enable_periph_clk(ID_BOARD_TWI);
-
初始化 TWI 外设:
twi_options_t opt; opt.master_clk = sysclk_get_cpu_hz(); // 设置主时钟 opt.speed = TWI_CLK; // 设置通信速度 twi_master_init(BOARD_TWI, &opt); // 初始化 TWI 总线
-
TWI 中断配置:
NVIC_DisableIRQ(BOARD_TWI_IRQn); NVIC_ClearPendingIRQ(BOARD_TWI_IRQn); NVIC_SetPriority(BOARD_TWI_IRQn, 0); NVIC_EnableIRQ(BOARD_TWI_IRQn);
4. 电源配置
为了开启 OV7740 图像传感器,需要控制图像传感器的电源引脚。
-
开启 OV7740 电源:
ov_power(true, OV_POWER_PIO, OV_POWER_MASK);
5. OV7740 初始化
在硬件配置完成后,接下来需要初始化 OV7740 图像传感器。这包括与图像传感器通信,确保传感器被正确配置。
-
初始化 OV7740:
while (ov_init(BOARD_TWI) == 1) { }
该函数通过 TWI 总线与 OV7740 进行通信,直到初始化成功。
6. OV7740 配置
完成初始化后,配置 OV7740 图像传感器的分辨率、数据格式和帧率等参数。这里使用的是 QVGA 分辨率、YUV422 格式,帧率设置为 20 帧每秒。
-
配置 OV7740:
ov_configure(BOARD_TWI, QVGA_YUV422_20FPS);
7. 等待图像传感器适应环境
为了确保图像传感器能够根据环境自动调整参数(如增益、白平衡等),需要延迟一段时间,通常是 3 秒。
-
等待 3 秒:
delay_ms(3000);
总结
- 时钟配置:通过 PLL 和时钟分频,确保 PCK0 时钟为 24 MHz,以供 OV7740 图像传感器使用。
- PIO 配置:初始化 PIO 接口,确保图像数据能够正确传输。
- TWI 配置:启用并配置 TWI 总线,以便与 OV7740 进行通信。
- 电源配置:控制电源引脚为 OV7740 图像传感器供电。
- OV7740 初始化与配置:初始化并配置 OV7740 图像传感器,包括设置分辨率、帧率、数据格式等。
- 延迟:等待图像传感器适应环境。