camera方案(三)max96712

📅 2026/7/16 20:45:12 👁️ 阅读次数 📝 编程学习
camera方案(三)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-PORTD,4路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位则对应的地址为0x6B(1101 011)

note:i2c协议中起始start信号后的一个字节,前7位为地址,最后一位为读写位,0:写入 1:读取

CFG0配置的为上电的默认地址,后续可以通过默认地址写DEV_ADDR(0x00)寄存器修改i2c address,我们项目写入的值为0x90(1001 0000),所以实际对应的i2c addresss被改成了 0x48(0100 1000)

CFG1 Input Map: ----GMSL模式默认配置

参见上面的CFG1电路图,可见我们的上电默认配置为上图中圈出来的配置,COAX/GMSL1/HIM Eanbled

COAX : 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----PIPE3

GMSL2:
内部的链路可以随意组合,配置更复杂,但是相关功能安全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 pipe

All pipes can route to any aggregator

each aggregator can feed any csi controller

3.重要寄存器配置
1.REG0 (0X00) 设备i2c地址配置
设备地址:0x6b 寄存器地址:0x00 0x00 配置值:0x90

由上图CFG0配置知道默认地址为0x6b,0x90的地址转换后为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在gmsl1

0,1,2,3位根据需要使能相应的位,前期都disable,后期可以都使能,也可以只使能如PORTA,设置为0x01

3.REG26 (0X10),REG27 (0X11)PORT A/B/C/D 数据和控制信号速率配置
设备地址:0x48 寄存器地址:0x00 0x10 配置值:0x11

reg26/reg27均配置为0x11,所以PORT A/B/C/D的接收数据速率都为3Gbps,控制信号发送速率都为187.5Mbps,如果某一路link需要配置为gmsl2,需要将相应的速率改为6Gbps

4.GMSL1_6(0xB06,0xC06,0xD06,0xE06)PORT A/B/C/D工作模式配置
设备地址:0x48 寄存器地址:0x0B 0x06 配置值:0xef

因为我们的96712是和96705串行器搭配,所以这三位配置为111

GMSL2的通道不能配置这个寄存器

5.VIDEO_PIPE_EN(0xF4)PIPE通道使能配置
设备地址:0x48 寄存器地址:0x00 0xF4 配置值:0x0F

因为我们使用的是4路link,所以使能PIPE0-PIPE3

6.BACKTOP15/BACKTOP16(0x40E,0x40F,0x410)PIPE0-PIPE3通道数据格式配置
设备地址:0x48 寄存器地址:0x40E-0x410 配置值:根据自己需求配置,我们都配置成 : YUV422 8bits

note:这三个传感器除了PIPE0的数据格式配置在0x40E的0:5位,例如我们配置的0x40E为0x5e,也就是0:5位为0x1e,对应格式为YUV422 8bits,其他的如PIPE1都是要组合两个寄存器来看,如PIPE1需要组合0x40E的7:6位(soft_dt_1_h)作为高位,再结合0x40F的0:3位(soft_dt_1_l)作为低位,然后才生成相应的数据格式

0x40E: 我们配置为0x5e

0x40F: 我们配置为0x7e

0x410: 我们配置为0x7a

7.BACKTOP12/BACKTOP18/BACKTOP19(0x40B,0x411,0x412)PIPE0-PIPE3通道bpp(bits per pixel)格式配置

需要保证bpp配置和data types匹配,如我们的data type为0x1e,也就是yuv422 8bits,所以bpp应该是0x10,也就是每个pixel占用16个bits

8.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