max96712)
概述将GMSL2/GMSL1的串行输入转换成MIPI CSI-2 的D-PHY/C-PHY接口输出正向视频传输正在进行中时同时允许每个链路传输双向控制通道数据MAX96712可以接收多达四个远端传感器使用行业标准的同轴电缆(COAX)或双绞线(STP)互连每一个GMSL2串行链路以固定正向速率3Gbps或6Gbps反向187.5Mbps运行在GMSL1模式下MAX96712可以与第一代3.12Gbps或1.5Gbps GMSL1序列化器配对或在GMSL1模式下与GMSL2序列化器一起运行在3.12Gbps速率MAX96712支持视频数据的聚合和复制使来自多个远程传感器的流能够被组合并路由到一个或多个可用的CSI-2输出数据也可以基于虚拟通道ID路由使得来自单个GMSL输入的多个流可以独立路由到不同的CSI-2输出来自多个传感器的数据也可以同步并组合在一个单一的使用帧拼接的复合超帧中并输出到该CSI-2流中CSI-2接口支持2个4通道和4个2通道配置C-PHY或D-PHY多种通信接口支持i2c/uart/spi支持高达15m的同轴电缆支持RAW8/10/12/14/16/20,RGB565/666/888,YUV422 8/10位格式符合ASIL-B标准(GMSL2)简要框图note:4路link可分别单独配置如我们为linkA配置为GMSL2,linkB/C/D配置为GMSL1输入link可能有从PORTA-PORTD4路link也可以称为linkA-linkD输出CSI-2总共8lanes,如上可以配置为2*4lanes(PORTA/PORTB),或者配置为4*2lanes(PORTC/D,PORTE/F)control and video data router相关详情后面分成gmsl1/gmsl2两个方面详解1.CFG0/CFG1起始默认配置CFG0 Input Map: ----i2c地址起始配置note : R1 connects to VDDIO, R2 connects to GND我们项目中的实际配置如下图 所以CFG0对应的device_address配置为0xD6(1101 0110),取出前7位则对应的地址为0x6B1101 011note:i2c协议中起始start信号后的一个字节前7位为地址最后一位为读写位0写入 1读取CFG0配置的为上电的默认地址后续可以通过默认地址写DEV_ADDR0x00寄存器修改i2c address,我们项目写入的值为0x901001 0000,所以实际对应的i2c addresss被改成了 0x480100 1000CFG1 Input Map: ----GMSL模式默认配置参见上面的CFG1电路图可见我们的上电默认配置为上图中圈出来的配置COAX/GMSL1/HIM EanbledCOAX : Coaxial Cable同轴电缆线是一种电线及信号传输线STP : Shielded twisted-pair,屏蔽双绞线是一种广泛用于数据传输的铜质双绞线2.典型应用场景框图4个传感器聚合一个CSI-2输出 我们使用该场景方案GMSL1/GMSL2的video pipe框图 GMSL1 video pipe线路固定不可随意组合portA对应PIPE0,依次类推但是GMSL2组合较为复杂有兴趣详细研究MAX96712手册note:GMSL1:GMSL1 video pipe线路固定不可随意组合portA对应PIPE0,依次类推GMSL1,GMSLA----PIPE0,GMSLB----PIPE1,GMSLC----PIPE2,GMSLD----PIPE3GMSL2:内部的链路可以随意组合配置更复杂但是相关功能安全ASIL-B等相关规范都是只在GMSL2模式下才支持incoming pipes:每个GMSL2 input 可以有最多4个incoming PIPES(PIPEX,PIPEY,PIPEZ,PIPEU),但是总的incoming pipes最多8个internal data pipes:总共8个internal data pipes,任何incoming pipes可以路由到任意的internal pipeAll pipes can route to any aggregatoreach aggregator can feed any csi controller3.重要寄存器配置1.REG0 (0X00) 设备i2c地址配置设备地址0x6b 寄存器地址0x00 0x00 配置值0x90由上图CFG0配置知道默认地址为0x6b0x90的地址转换后为0x48,所以后续对于max96712的操作都依赖于0x48的地址2.REG6 (0X06) PORT A/B/C/D GMSL模式和使能配置设备地址0x48 寄存器地址0x00 0x06 配置值0x00前期后期使能相应的位如使能portA,0x01位4-位7配置linkA-linkD工作在gmsl1还是gmsl2可以单独配置如linkA在gmsl2,其他link在gmsl10,1,2,3位根据需要使能相应的位前期都disable,后期可以都使能也可以只使能如PORTA,设置为0x013.REG26 (0X10)REG27 (0X11)PORT A/B/C/D 数据和控制信号速率配置设备地址0x48 寄存器地址0x00 0x10 配置值0x11reg26/reg27均配置为0x11,所以PORT A/B/C/D的接收数据速率都为3Gbps,控制信号发送速率都为187.5Mbps如果某一路link需要配置为gmsl2需要将相应的速率改为6Gbps4.GMSL1_6(0xB06,0xC06,0xD06,0xE06)PORT A/B/C/D工作模式配置设备地址0x48 寄存器地址0x0B 0x06 配置值0xef因为我们的96712是和96705串行器搭配所以这三位配置为111GMSL2的通道不能配置这个寄存器5.VIDEO_PIPE_EN(0xF4)PIPE通道使能配置设备地址0x48 寄存器地址0x00 0xF4 配置值0x0F因为我们使用的是4路link所以使能PIPE0-PIPE36.BACKTOP15/BACKTOP16(0x40E,0x40F,0x410)PIPE0-PIPE3通道数据格式配置设备地址0x48 寄存器地址0x40E-0x410 配置值根据自己需求配置我们都配置成 : YUV422 8bitsnote:这三个传感器除了PIPE0的数据格式配置在0x40E的0:5位例如我们配置的0x40E为0x5e也就是05位为0x1e对应格式为YUV422 8bits,其他的如PIPE1都是要组合两个寄存器来看如PIPE1需要组合0x40E的7:6位(soft_dt_1_h)作为高位再结合0x40F的0:3位(soft_dt_1_l)作为低位然后才生成相应的数据格式0x40E: 我们配置为0x5e0x40F: 我们配置为0x7e0x410: 我们配置为0x7a7.BACKTOP12/BACKTOP18/BACKTOP19(0x40B,0x411,0x412)PIPE0-PIPE3通道bpp(bits per pixel)格式配置需要保证bpp配置和data types匹配如我们的data type为0x1e也就是yuv422 8bits所以bpp应该是0x10,也就是每个pixel占用16个bits8.MIPI_PHY0(0x8A0)MIPI PHY工作模式配置设备地址0x48 寄存器地址0x08 0xA0 配置值0x04如上图0x04的配置对应为MIPI PHY配置为2个4 lane phy模式————————————————版权声明本文为博主原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明。原文链接https://blog.csdn.net/kimginginging/article/details/128812409