Navigation

    VEYE IMAGING Forum

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc

    SOLVED CS-MIPI-IMX307 I2C通信失败

    CS MIPI camera
    2
    12
    1445
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      rice last edited by

      你好,我在AXU2CGA开发板上使用你们的 CS-MIPI-IMX307摄像头模组时I2C通信失败。按照imx307 datasheet 上的描述,读取imx307地址0x301E和0x301F,正常会得到返回数据0xb2和0x01。
      但是我得到的数据都是0(程序解析为0,如下代码)

             imx307_read(IicInstance, 0x301E, &sensor_id[0]);
      	imx307_read(IicInstance, 0x301F, &sensor_id[1]);
      
      	if (sensor_id[0] != 0xb2 || sensor_id[1] != 0x01)
      	{
      		xil_printf("Not imx307 id, %x %x\r\n", sensor_id[0], sensor_id[1]);
      		return 0 ;
      	}
      	else
      	{
      		xil_printf("Got imx307 id, %x %x\r\n", sensor_id[0], sensor_id[1]);
      	}
      

      I2C clk为59kHz,下图是用示波器抓取的I2C clk 信号(黄色)以及data信号(绿色)。从示波器抓取到的clk来看,当进行I2C通信时,clk的点平会拉低一点,低于正常3.3v,不清楚什么原因导致的?
      ![alt text](企业微信截图_16382591509674.png image url)

      希望您能给我点帮助信息来定位这个问题!谢谢

      R 1 Reply Last reply Reply Quote 0
      • R
        rice @rice last edited by

        @rice
        补充:
        开发板信息链接:
        https://detail.tmall.com/item.htm?id=633043274934&ali_refid=a3_430582_1006:1226490189:N:gTPlvx0IrMbEZiOPesA3eePtnA7jCACF:3922f3f98118a45b77f17cf757f9a174&ali_trackid=1_3922f3f98118a45b77f17cf757f9a174&spm=a230r.1.14.3

        摄像头信息链接:
        https://item.taobao.com/item.htm?spm=a230r.1.14.3.3f3d2da5Jsp8ja&id=609353783398&ns=1&abbucket=2#detail

        veye_xumm 1 Reply Last reply Reply Quote 0
        • veye_xumm
          veye_xumm @rice last edited by

          @rice
          你好,可以看到我们模组上面除了sensor,还有其他的芯片。
          这个模组输出是UYVY的,经过了isp处理。
          作为上位机来说,是访问不到sensor的。
          http://wiki.veye.cc/index.php/CS-MIPI-IMX307_STARVIS_Module/zh
          http://wiki.veye.cc/index.php/CS-MIPI-X_i2c/zh

          R 1 Reply Last reply Reply Quote 0
          • R
            rice @veye_xumm last edited by rice

            @veye_xumm
            感谢您的回答,我的应用程序时直接发起 I2C通信,也就是和imx307模块的Pin13 Pin14(SCL SDA)通信。
            您说“作为上位机来说,是访问不到sensor的”这句话的意思是不是:
            imx307模块的Pin13 Pin14(SCL SDA)引脚其实没连接到 IMX307 芯片上,而是连接到其他芯片上?
            如果是这样,那我怎么直接配置 imx307 的寄存器?

            veye_xumm 1 Reply Last reply Reply Quote 0
            • veye_xumm
              veye_xumm @rice last edited by

              @rice

              @rice said in CS-MIPI-IMX307 I2C通信失败:

              )引脚其实没连接到 IMX307 芯片上,而是连接到其他芯片上?

              是的,接到了我们的主控芯片。

              @rice said in CS-MIPI-IMX307 I2C通信失败:

              那我怎么直接配置 imx307 的寄存器?

              控制不了

              R 1 Reply Last reply Reply Quote 0
              • R
                rice @veye_xumm last edited by rice

                @veye_xumm
                感谢答复,看了你们的驱动代码:https://github.com/veyeimaging/nxp_i.mx_veye_bsp/blob/main/driver_source/4.19.35/csimx307_mipi_v2.c

                可以看到 csimx307_check_id函数是通过I2C通信读取地址0x0102和地址0x0103的数据,我的FPGA开发板没有linux系统,我直接发起I2C通信读上面两个地址的数据得到的都是0。

                在没有linux系统的支持下,能否实现直接通过I2C通信配置这个IMX307模块,去点亮摄像头?

                veye_xumm 1 Reply Last reply Reply Quote 0
                • veye_xumm
                  veye_xumm @rice last edited by

                  @rice

                  @rice said in CS-MIPI-IMX307 I2C通信失败:

                  在没有linux系统的支持下,能否实现直接通过I2C通信配置这个IMX307模块,去点亮摄像头?

                  当然是可以的。摄像头并不知道上位机是什么系统。

                  你的这个问题,有没有可能是启动时间的问题。 我们的CS系列需要7-10秒钟启动,然后才能访问。

                  http://wiki.veye.cc/index.php/CS-MIPI-X_i2c/zh
                  https://github.com/veyeimaging/raspberrypi/tree/master/i2c_cmd/bin

                  具体可以参考这个脚本的代码,来查找哪个寄存器对应什么功能。

                  R 1 Reply Last reply Reply Quote 0
                  • R
                    rice @veye_xumm last edited by

                    @veye_xumm
                    “CS系列需要7-10秒钟启动,然后才能访问”
                    请问有启动时序相关配置说明文档嘛?I2C通信clk合理范围是多少?

                    veye_xumm 1 Reply Last reply Reply Quote 0
                    • veye_xumm
                      veye_xumm @rice last edited by

                      @rice 不需要配置,上电自己就配好了。

                      R 2 Replies Last reply Reply Quote 0
                      • R
                        rice @veye_xumm last edited by

                        This post is deleted!
                        1 Reply Last reply Reply Quote 0
                        • R
                          rice @veye_xumm last edited by

                          @veye_xumm said in CS-MIPI-IMX307 I2C通信失败:

                          上电自己就配

                          所以上电后我可以直接通过I2C读写模组上的寄存器,不需要做其他配置是吗?I2C通信的时钟需要多少合适?我这边实验下来总是失败。。

                          veye_xumm 1 Reply Last reply Reply Quote 0
                          • veye_xumm
                            veye_xumm @rice last edited by veye_xumm

                            @rice 通信时钟100k和400k都可以。

                            1. 一般的fpga的3.3VCCIO, VIHmin<2.88V,电平应该不是识别不了的原因。
                            2. 确认下IO上拉电阻大小。1.5K~4.7K最佳。
                            3. 确认下访问地址的理解是否有出入。
                              68b1503b-cb13-4c88-85f4-149004cb6eef-e194d314de6f636c1200b5f216e227d.png
                              e936a931-289f-4aa4-aa31-997c3ba1c25a-0a00d8eb575881a763313dd68213c7a.png
                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post