SOLVED 关于zynq开发imx296
-
@veye_xumm 我接了一个dp接口用来显示,使能完后,不进行任何寄存器的初始化,它显示的画面应该是摄像头这边实时画面吗,因为我现在屏幕那边显示有信号,但是一直是黑屏,如果是显示摄像头的实时画面,那可能是我fpga的硬件搭建问题
-
@wangdada 有两个地方是需要做的。
- 硬件使能引脚
https://wiki.veye.cc/index.php/MV-MIPI-IMX296M_Data_Sheet/zh
pin7 要拉高。这个pin我们板子有内部上拉电阻,你悬空也是可以的。 - 寄存器写一个start
https://wiki.veye.cc/index.php/MV_Series_MIPI_Camera_Register_Map/zh#.E5.9B.BE.E5.83.8F.E9.87.87.E9.9B.86
0x400寄存器需要写一个开始输出。
- 硬件使能引脚
-
@veye_xumm 好的,感谢
-
@veye_xumm 你好,我按照这个方法操作了一下,我用zynq写了0x01给0x0400这个寄存器,根据示波器观察这个数到这个数写进去了,写完器件地址和数据之后都有应答,写的话应该没问题吧,我看写1就行,最后结果没有出图像。
在读取的时候我也遇到了问题,因为0x0400是只写的,所以我读了其他几个寄存器,想看看里面的值,但是每次在写完读器件地址,sda和scl的电平就会同时拉低,一段时间后会出现几个字节的全高电平ff,这是什么原因呢,您遇到过吗,如下图所示。给的默认iic从机地址是0x3b,我写的时候是整体左移一位为7位的器件地址,最后一位为读写位,我看了读时序也是对的,先是写器件地址,然后是寄存器地址,最后是读器件地址,后面正常的话这应该是寄存器的值,但sda和scl都拉低了一段时间 -
@wangdada
i2c读取寄存器的时候,中间部分不要发停止位,重新发start信号即可。 另外请注意这个模组的reg addr是2字节的,reg data是4字节的。
-
@veye_xumm 您好,又来麻烦您了,就是正常按照你上次说的那俩个条件,硬件使能引脚拉高为1(用表笔测了为3.3V),寄存器0X0400写一个start信号(我写了0x01,这个数没有问题吧),用示波器读取到了写入的数据,也有应答,这个启动条件是没有问题吧。因为显示屏一直不出图像,所以我观察了MIPI_L0_N,MIPI_L0_P和MIPI_CK_N这几个mipi引脚,波形信号都是这个,就最下面的频率有变化,这是什么原因呢,与示波器有关系吗?还是摄像头没有工作呢?
下图是MIPI_CK_N引脚的波形
-
@wangdada 这感觉好像start写没成功,然后MIPI输出于复位状态呢。
建议你读取一下version,来确认i2c已经成功调通。
请注意这个模组的reg addr是2字节的,reg data是4字节的。 -
@veye_xumm 您好,我想问一下这的iic没有加上下拉电阻吧
-
@wangdada 摄像机这端没有上拉电阻。应该是主控板上有上拉电阻才对。
-
@veye_xumm 嗯嗯,是的,我怕这边也有,会产生影响
-
@veye_xumm 您好,我想问一下mono10和raw10这俩个图像格式可以通用吗,我用的一个ip支持raw10,我看咱们imx296输出格式是mono10,这个有影响吗?
-
@wangdada 这两个是一样的,只是叫法不同而已。