欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ZYNQ学习笔记08:操控IMX222摄像机寄存器的SPI接口配置指南

最编程 2024-02-17 16:14:10
...

IMX222 是 SONY 公司出品的一款 200 万摄像头的配置,本次博客记录 IMX222摄像头的配置。

一、操作时序和配置列表

1.IMX222中的 SPI 时序

2.IMX222中的 SPI 配置接口时序

3.配置列表

4.配置过程

首先进入 Stanby 模式,通过配置如下寄存器进入,配置完成后需要退出 Stanby 模式。

配置寄存器值:

{ 0x02, 0x00, 0x31 }, //standby
{ 0x02, 0x01, 0x01 }, //vs reverse
{ 0X02, 0x02, 0xF  }, //1080p
{ 0X02, 0x03, 0x4c }, //2
{ 0X02, 0x04, 0x04 }, //3
{ 0X02, 0x05, 0x65 }, //4
{ 0X02, 0x06, 0x04 }, //5
{ 0X02, 0x11, 0x00 }, //6
{ 0X02, 0x12, 0x82 }, //7
{ 0X02, 0x14, 0x00 }, //8
{ 0X02, 0x15, 0x00 }, //9
{ 0X02, 0x16, 0x3C }, //10
{ 0X02, 0x17, 0x00 }, //11
{ 0X02, 0x18, 0xC0 }, //12
{ 0X02, 0x19, 0x07 }, //13
{ 0X02, 0x1A, 0x51 }, //14
{ 0X02, 0x1B, 0x04 }, //15
{ 0X02, 0x1e, 0x20 }, //gain
{ 0X02, 0x20, 0xf0 }, //16
{ 0X02, 0x21, 0x00 }, //16
{ 0X02, 0x2c, 0x00 }, //16
{ 0X02, 0x2d, 0x42 }, //clk
{ 0X02, 0x3b, 0xe1 }, //18 sync code
{ 0X02, 0x9A, 0x26 }, //22
{ 0X02, 0x9B, 0x02 }, //23
{ 0X02, 0xCE, 0x16 }, //24
{ 0X02, 0xCF, 0x82 }, //25
{ 0X02, 0xD0, 0x00 }, //26
{ 0X02, 0x00, 0x00 }, //27

特别注意:SPI配置时序要求先发 LSB 再发 MSB,与 Xilinx 的 ZYNQ 的 PS 端提供的驱动程序相反,因此需要认为的在发送数据前进行高低位对调操作!!!

二、Vivado 设置注意事项

1.ZYNQ 需要勾选 SPI 和一个 EMIO,同时有选择的将一些引脚引出,如下所示:

2.注意板卡电压,有的是 1.8V,有的是 3V

3.为了代码结构的合理性,建议分文件编写,如增加 imx222.c 文件用于摄像头的一些设置,点击 Src文件夹 右键 --- New --- Source File,命名时需要加上后缀 .c

4.建议加上一个 imx222.h 来存放函数,点击 Src文件夹 右键 --- New --- Header File,命名时需要加上后缀 .h

三、代码精讲

main.c 用于编写主要功能代码;

imx222.h 用于存放自定义函数;

imx222.c 用于配置IMX222的寄存器。

参考资料:

[1]威三学院FPGA教程

原文地址:https://www.cnblogs.com/xianyufpga/p/11455113.html