max96712 解串器寄存器配置说明

使用max96712 解串器对应其寄存器配置的一些说明:

一:第一部分配置说明

{0x0017,0x14,max96712_delay1},  link节点唤醒使能和关闭 0xf4
{0x0019,0x94,max96712_delay1},
{0x06c2,0x10,max96712_delay1},  手册上标注必须0x10

**********测试发现,以下几个不一定需要,主要是做性能优化的***************
{0x14D1,0x03,max96712_delay1}, 必须0x03
{0x15D1,0x03,max96712_delay1},
{0x16D1,0x03,max96712_delay1},
{0x17D1,0x03,max96712_delay1},


{0x1445,0x00,max96712_delay1},必须0x00,关掉sSC默认接收功能
{0x1545,0x00,max96712_delay1},
{0x1645,0x00,max96712_delay1},
{0x1745,0x00,max96712_delay1},

{0x1449,0x75,max96712_delay1}, 必须0x75,
设置芯片内部error channel 配置, 配置为默认常开,优化链路接收性能
{0x1549,0x75,max96712_delay1},
{0x1649,0x75,max96712_delay1},
{0x1749,0x75,max96712_delay1},
*******************************************************************
{0x0010,0x11,max96712_delay1}, 速率配置需要根据摄像头支持的速率做配置,
                               10-11寄存器代表的是PHYb,a, PHYd,C发送和接收数据的速率

{0x0011,0x11,max96712_delay1},  3gpbs
{0x0006,0xFF,max96712_delay1},  gmsl2 + 1ink/gmsl1 +link
{0x0018,0x0F,max96712_delay1},  0x0f

        因为使用的是高通qnx ais camare框架,根据其驱动的流程,第一部分的初始化寄存器配置在0x18地址过,并且在max96712_sensor_detect_device_channels接口中调用

二:第三部分

        在max96712_sensor_init_setting -> max96712_set_init_sequence接口内的initlink时候调用。主要是配置max96712解串器针对不同的串行器做的适配工作

{0x0003,0xFE,max96712_delay1},    //0x4通道应该要0x0???//这个有疑问
{0x00F0,0x62,max96712_delay1},   //FO/F1/F2/F3寄存器配置的是mipicsi物理上
                           //enable pipe 0 for link A stream 2 pipe 1 for link B stream 2
                                        //(因为696717只有一个pipez
                                        //对应stream 2.pipe x 对应stream 0)
                                       //phy怎么跟video pipe link之间做映射的。
                                       //就是设置视频通道通过csi的哪个phy通道给出去的。
                                       //max96712有8个vide0 pipe
                                        //以及走的是哪个视频通道pline设置,


(0x00F1,0xEA,max96712_delay1},
{0x00F4,0x0F,max96712_delay1},   //使能前4个video pipe

//MIPI PHY Setting 以下是针对mipi端的配置
// Set Des in 2x4 mode
{0x08A0,0x04,max96712_delay1}, //配置通信的1ane模式,
                               //phy0/1/2/3之问组合成的模式,
                               //bit7 关闭mipi正常模式
// Set Lane Mapping for 4-lane port A
{0x08A3,0xE4,max96712_delay1},
{0x08A4,0xE4,max96712_delay1},


// Set4 lane、D-PHY、2bit VC
{0x090A,0xC0,max96712_delay1},
{0x094A,0xC0,max96712_delay1},
                 //0x04,0x52,0x09,0x8A,0xC0,
                 //0x04,0x52,0x09,0xCA,0xC0
// Turn on MIPI PHYs
{0x08A2,0x34,max96712_delay1},

//Hold DPLL in reset (config soft rst n = O) before changing the rate
{0x1c00,0xF4,max96712_delay1},
{0x1D00,0xF4,max96712_delay1},
            //0x04,0x52,0x1E,0x00,0xF4
            //0x04,0x52,0x1F,0x00,0xF4,
// Set Data rate to be 16ooMbps/lane for port A and enable software override
{0x0415,0x30,max96712_delay1},
{0x0418,0x30,max96712_delay1},
                  //0x04,0x52,0z04,0x1B,0x26,
                  //0x04,0x52,0x04,0x1E,0x26,
// Release reset to DPLL (config soft rst n -1)
{0x1c00,0xF5,max96712_delay1},
{0x1D00,0xF5,max96712_delay1},
             //0x04,0x52,0x1E,0x00,0xF5


// Release reset to DPLL (config soft rst n = 1)
{0x1c00,0xF5,max96712_delay1},
{0x1D00,0xF5,max96712_delay1},
             //0x04,0x52,0x1E,0x00,0xF5,
             //0x04,0x52,0x1F,0x00,0xF5,
{0x08A0,0x04,max96712_delay1}, //设置mipi模式和时钟使能lane模式配置 
{0x08A3,0xE4,max96712_delay1}, //映射数据D0  D1默认4E
{0x08A4,0xE4,max96712_delay1}, //映射数据D0  D1默认E4


{0x090A,0xC0,max96712_delay1}, //这里为啥是c0.  4lane,dphy模式?
{0x094A,0xC0,max96712_delay1},\
//{0x098A,0xC0,max96712 de1ay1_},\
//{0x09cA,0xC0, max96712 delay1_},\ //这里为啥是c0.4lane,dphy模式?


{0x08A2,0xF0,max96712_delay1}, //使能mipi phys 怎么看到的使能mipi phyl phy


//以下配置max96712和串行器之间通信链路和数据格式
//mipi的pipe 0配置
{0x090B,0x07,max96712_delay1}, //map映射,前3个*,这个的配置,决定了
                               //是否需要90d及之后的寄存器配置
{0x092D,0x15,max96712_delay1}, //使能90B映射的配置3个*


//以下几个寄存器的配置说明都是一致的。不清楚为啥这么配置
{0x090D,0x1E,max96712_delay1}, //配置porta 端口通信的数据格式datatype
{0x090E,0x1E,max96712_delay1}, //配置porta 端口通信的数据格式
{0x090F,0x00,max96712_delay1}, //vc(虚拟通道)和dt(data type:yuv422(1E)
                                //raw10(2B)等)映射配置   
                                /* datatype
                                0X1O: GENERIC8
                                0X11: GENERIC8
                                0x12: EMBEDDED
                                0x1E: YUV422 8-bit
                                0x1F: YUV422 10-bit
                                0x22: RGB565
                                0x23: RGB666
                                0x24: RGB888
                                0x2A: RAW8
                                0x2B: RAW10
                                0x2C: RAW12
                                0x2D: RAW14
                                0x2E: RAW16
                                0x2F: RAW20
                                0x30:YUV422 12-bit
                                0x31:UDP8
                                0x32:UDP8
                                0x33:UDP8
                                0x34:UDP8
                                0x35:UDP8
                                0x36:UDP8
                                0x37:UDP8
                                */

{0x0910,0x00,max96712_delay1},
{0x0911,0x01,max96712_delay1},
{0x0912,0x01,max96712_delay1},
//mipi的pipe 1配置
{0x094B,0x07,max96712_delay1},
{0x096D,0x15,max96712_delay1},
{0x094D,0x1E,max96712_delay1}, //配置portb 端口通信的数据格式
{0x094E,0x5E,max96712_delay1},//配置portb 端口通信的数据格式
{0x094F,0x00,max96712_delay1},
{0x0950,0x40,max96712_delay1},
{0x0951,0x01,max96712_delay1},
{0x0952,0x41,max96712_delay1},

//mipi的pipe 2配置
{0x098B,0x07,max96712_delay1},
{0x09AD,0x15,max96712_delay1},
{0x098D,0x1E,max96712_delay1},
{0x098E,0x9E,max96712_delay1},
{0x098F,0x00,max96712_delay1},
{0x0990,0x80,max96712_delay1},
{0x0991,0x01,max96712_delay1},
{0x0992,0x81,max96712_delay1},

//mipi的pipe 3配置
{0x09CB,0x07,max96712_delay1}, 
{0x09ED,0x15,max96712_delay1},
{0x09CD,0x1E,max96712_delay1},
{0x09CE,0xDE,max96712_delay1},
{0x09CF,0x00,max96712_delay1},
{0x09D0,0xc0,max96712_delay1},
{0x09D1,0x01,max96712_delay1},
{0x09D2,0xC1,max96712_delay1},

因为4路摄像头都是同一种串行器和同一种sensor,因此其datatype都是0x1E

//默认f4
{0x1c00,0xF4,max96712_delay1},
//默认f4,默认不复位pll寄存器  //F5复位p11寄存器,但不复位config 配置寄存器
{0x1D00,0xF4,max96712_delay1},

{0x1E00,0xF4,max96712_delay1}, //默认f4
{0x1F00,0xF4,max96712_delay1}, //默认f4
{0x0415,0x34,max96712_delay1}, //疑问?★,配置通信速率,
//前后需要设置1c00等寄存器,复位dpll
{0x0418,0x34,max96712_delay1}, //疑问?


{0x1c00,0xF5,max96712_delay1}, //为啥又设置为f5, 使设置生效
//释放复位dpll,生效pll输出速率
{0x1D00,0xF5,max96712_delay1},
{0x1E00,0xF5,max96712_delay1},
{0x1F00,0xF5,max96712_delay1},

三:第二部分

是针对max96717串行器初始化配置,在max96712_sensor_init_setting

->max96712_set_init_sequence ->initlink接口中调用

{0x0002,0x03,max96712_delay1},设置bit6 video发送使能
{0x0330,0x08,max96712_delay1},开启mipi的连续时钟。使能虚拟通道,
是否复位rx
{0x0318,0x6B,max96712_delay1},bit6 是使能,5:0是data type,6B配置的就是2B(RaW10),对应解串器的90D,90E等的配置,因为上述对应的是0x1E,因此这里需要更改.

{0x0570,0x00,max96712_delay1},
提高时钟幅度
{0x03F1,0x89,max96712_delay1}
{0x03F0,0x10,max96712_delay1},
{0x0331,0x11,max96712_delay1},选择data1ane数量

{0x0330,0x00,max96712_delay1},
{0x02BE,0x00,max96712_delay1},
{0x02BE,0x10,max96712_delay1},配置gpio的引1脚驱动能力?

{0x02d6.0x10,max96712_delay1}
{0x0010,0x21,max96712_delay1}
{0x0000,0x82,max96712_delay1}

四:第四部分

就是start_link 开启max96717输出的配置,0x02 = 0x43
{0x0002,0x43,max96712_delay1}    
以及开启max96712输出图像:0x8a0=0x84
{0x08a0,0x84,max96712_delay1}    

五:第五部分

stop_link配置停止max96717输出0x02 = 0x03
{0x0002,0x03,max96712_delay1}
以及停止max96712输出图像:0x8a0=0x04
{0x08a0,0x04,max96712_delay1}   

六:检验

        上述寄存器是配置工作的。当芯片工作后,如何知道配置是否正常出图,可以读取以下寄存器熟知判断

确认max96712 0x8a0地址是否开启,如果是0x84就是开启,0x8d0是否每次读取都不一样
(如果不一样代表mipi有在增长输出),

读取解串器地址0x1dc,0x1fc,0x21c,0x23c等是否等于0x81(意味video link lock已经有输出)

读取解串器地址0x06,确认是否按硬件通信方式配置gms12/gmsl1

读取解串器地址0x10/0x11 确认配置速率(3gbps/6gbps)和连接方式(4lane/2x2lane)

gms12模式 通过0x1a 0x0a 0x0b 0x0c 检测96712是否1ink成功,如果link成功,
各值为:0xda,0xc8,0xc8,0xc8

0x40a:检测pipe0/1/2/3是否数据溢出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值