基于海思HI3559CV100移植IMX178

本文详细介绍了如何在海思HI3559CV100平台上移植IMX178传感器,包括IMX178的I2C调试、寄存器配置,以及HI3559主芯片的MIPI_RX和VI配置。通过调整寄存器设置、MIPI_RX接口为LVDS模式、VI配置为1920*1080分辨率,成功实现了IMX178在HI3559平台上的工作。
摘要由CSDN通过智能技术生成

主芯片:HI3559CV100

主芯片手册:Hi3559A╱C V100 ultra-HD Mobile Camera SoC 用户指南.pdf

主芯片MPP手册:HiMPP V4_Password_Removed.pdf

SENSOR:IMX178

SENSOR手册:IMX178LQJ-C_Data_Sheet.pdf

SDK:Hi3559AV100R001C02SPC010


IMX178的移植,主要涉及SENSOR端寄存器的配置、主芯片端VI各模块的配置,本文主要基于这两点进行移植过程的描述,其他功能模调用、PINMUX配置、驱动调用、Makefile修改等,可参考IMX334。

IMX178调试

根据SDK中的IMX334,首先拷贝sony_imx334文件夹,重命名为sony_imx178,并将所有334相关字段全部改为178

sony_imx178文件夹中主要包含imx178_cmos.c(图像质量相关)、imx178_sensor_ctl.c(寄存器配置相关),IMX178的调试主要包括I2C调试和寄存器配置,主要集中在imx178_sensor_ctl.c文件中

IMX178的I2C调试

参考IMX178手册,获取I2C Slave Address为0x34,Slave Address长度为8bit,Register Address长度为16比特,高位在前、低位在后

 

I2C写寄存器写入方式如下

int imx178_write_register(VI_PIPE ViPipe, int addr, int data)
{
    if (0 > g_fd[ViPipe])
    {
        return HI_SUCCESS;
    }

    int idx = 0;
    int ret;
    char buf[8];

    if (imx178_addr_byte == 2)
    {
        buf[idx] = (addr >> 8) & 0xff;
        idx++;
        buf[idx] = addr & 0xff;
        idx++;
    }
    else
    {
        buf[idx] = addr & 0xff;
        idx++;
    }

    if (imx178_data_byte == 2)
    {
        buf[idx] = (data >> 8) & 0xff;
        idx++;
        buf[idx] = data & 0xff;
        idx++;
    }
    else
    {
        buf[idx] = data & 0xff;
        idx++;
    }

    ret = write(g_fd[ViPipe], buf, (imx178_addr_byte + imx178_data_byte));
    if (ret < 0)
    {
        ISP_TRACE(HI_DBG_ERR, "I2C_WRITE DATA error!\n");
        retur
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值