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