导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    请教OV9281摄像头在V851SE的Tinyvision板子上的移植。

    V Series
    1
    2
    1400
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • I
      iamseer LV 4 最后由 编辑

      我这边需要实现200帧以上的灰度图抓取,所以选用了OV9281摄像头。但是由于没买到引脚顺序一致的摄像头,所以自己用扩展板焊了一个,飞线确实可能影响信号完整性,正经的等长板子在打了,需要几天才能寄来。暂时先用这个测。
      PXL_20240510_091851565.jpg
      驱动的部分是用默认的GC2053改的,参考了Rockchip的OV9281驱动。附上DTS和驱动文件(没改完):

      ov9281_mipi.c
      board.dts

      目前/dev/video0出现了,使用camerademo也能看到I2C通讯和MIPI输出。

      Screen Shot 2024-05-13 at 12.53.31 AM.png

      但是报错
      [CAMERA_ERR] camera0 select timeout,end capture thread!
      帧率显示为0

      我尝试观察了MIPI的输出,把逻辑分析仪挂到FPC连接器17,18脚,即DP0,DN0。能看到LP向HS转换时的LP01状态,所以正反应该没接错。另外通过修改传感器寄存器,可以让DP1,DN1不输出,也可以让CP和CN进入Gated clock观察到LP01。所以接线应该没有错。

      我怀疑问题还是在时序上,目前寄存器配置PLL1 pix clk为800M,PLL1 sys clk为80M。所以我猜测像素时钟是80M,每lane的输出是800Mbps (初次调MIPI不一定对)。

      Rockchip里对于1280x800x30fps的设置是:
      #define OV9282_VTS_30_FPS 0xe48
      #define OV9282_HTS_30_FPS 0x2d8
      那3656(E48)*728(2D8)*30 = 79.84M,似乎和80M的时钟能对上。
      只是728比800还少,不太明白为什么,但很多驱动都是用这个数。

      突发的数据传输每33.3ms一次,应该对应是30帧。
      Screen Shot 2024-05-13 at 1.48.02 AM.png
      其中突发的传输是7.4ms,802个下降沿,应该对应800的分辨率。至于7.4ms,我实在算不出这个数据是和什么对应。

      进一步放大图像,这应该是每一行的传输。
      Screen Shot 2024-05-13 at 1.52.50 AM.png
      空闲为14.3us,传输为8.4us。这两个数据我也没有算出对应的设置。

      另外摄像头卖家提供的驱动似乎来自君正,
      hts 0x5b0=1456
      vts 0x71c=1820
      此时800个LP模式的空闲为14.56ms,占33.33ms的比例与800/1280基本一致。
      但是每个LP为9.8us,后面高速数据为8.3us,这个数据我也没有算出对应的设置。

      这两种hts和vts设置都有camera0 select timeout错误。还烦请有经验的前辈分享一下经验和建议。

      I 1 条回复 最后回复 回复 引用 分享 0
      • I
        iamseer LV 4 @iamseer 最后由 编辑

        更新一下,
        这两份教程对于驱动编写很有帮助

        Tina Linux Camera开发指南
        https://www.cnblogs.com/weidongshan/articles/17183702.html

        全志Linux Tina-SDK开发完全手册
        https://tina.100ask.net/SdkModule/Linux_MIPI_CSI_DevelopmentGuide-05/

        我的配置里没有 info->time_hs 项。加入后调为0x30,仍然不出图。但是改为0x20,就可以出图了。

        1 条回复 最后回复 回复 引用 分享 1
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策