意图
本文档提供了 GMSL 2 CSI-2 序列化程序和解串程序对的一般过程。
串化器指定要求(MAX9295)
- MIPI PHY 1* 4,2* 4,2* 2,4* 2
- MIPI PHY 通道数。每PHY端口1,2,3或4通道。
- MIPI 通道映射。D0=D0,D1=D1…,Dn=Dn.
- MIPI 通道极性。
- MIPI 数据类型。参卡附录1.
解串器指定要求(MAX9296)
- MIPI PHY 1* 4,2* 4,4* 2
- MIPI PHY 通道数。每PHY端口1,2,3或4通道。
- MIPI 通道映射。
- MIPI 输出端口。
- MIPI 数据输出速率。
GPIO编程(一般用作相机同步)
参考GMSL-2 GPIO Operation.docx 应用手册(有需要,再翻译)。
4LAN典型设置
块图
D0~D3:并行数据位(4LAN)
Clock:时钟位
RAW12:图像格式
Pixels-CSI-2:像素数据
数据路径图
编程
初始化
为了成功初始化,强烈推荐回读每一个寄存器和之后仅仅更新指定的位。
步骤 | 读/写 | 设备 | 从设备ID | 寄存器 | 位 | 值 | 描述 |
---|---|---|---|---|---|---|---|
0 | 写 | 串化器 | 0x80 | 0002 | 7:4 | 0b1111 | 视频通道使能寄存器:每个位打开一个不同的视频通道 |
1 | 写 | 串化器 | 0x80 | 0330 | 2:0 | 0b000 | CSI模式寄存器:0b000:14模式;0b011:22模式;ob110:2*4模式 |
2 | 写 | 串化器 | 0x80 | 0331 | [5:4],[1:0] | 0b11,0b00 | 通道计数器:2 * 4模式:位[5:4]对应端口B,位[1:0]对应端口A。1* 4模式:位[5:4]:对应端口B |
3 | 写 | 串化器 | 0x80 | 0332 | 7:0 | 0b1110 0100 | 通道映射寄存器1:1* 4模式:[7:6]控制D3B映射;[5:4]控制D2B 映射;[3:0]不关心;2* 4模式:[7:6]控制D1A映射;[5:4]控制D0A映射;[3:2]控制D3A映射;[1:0]控制D2A映射。 |
4 | 写 | 串化器 | 0x80 | 0333 | 7:0 | 0b1110 0100 | 通道映射寄存器2:1* 4模式:[7:4]不关心;[3:2]控制D1B 映射;[1:0]控制D0B 映射。2* 4模式:[7:6]控制D1A映射;[5:4]控制D0A映射;[3:2]控制D3A映射;[1:0]控制D2A映射; |
5 | 写 | 串化器 | 0x80 | 0308 | 3:0 | 0b1111 | CSI端口选择寄存器:[3:0]:指示每一个视频通道通过端口B(1✖4模式下活跃端口)获取数据。 |
6 | 写 | 串化器 | 0x80 | 0311 | 7:0 | 0b1111 0000 | 开始视频通道寄存器:[7:4]:当端口B开始输出视频通道X、Y、Z和U。[3:0]:当端口A开始输出视频通道X,Y,Z和U。 |
7 | 写 | 串化器 | 0x80 | 0314 | 7:0 | 0b1010 0010 | X数据类型通道寄存器:[7]:设置为高。[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
8 | 写 | 串化器 | 0x80 | 0316 | 6:0 | 0b110 1100 | Y数据类型通道寄存器:[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
9 | 写 | 串化器 | 0x80 | 0318 | 6:0 | 0b110 0010 | Z数据类型通道寄存器:[6]:数据类型通道使能,高有效。值为0x22代表不使用通道。[5:0]对应像素数据的hex编码数据类型 |
10 | 写 | 串化器 | 0x80 | 031A | 6:0 | 0b110 0010 | U数据类型通道寄存器:[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
11 | 写 | 解串器 | 0x90 | 0330 | 2:0 | 0b100 | CSI模式寄存器:0b001:4 * 2模式;0b100:2 * 4模式 |
12 | 写 | 解串器 | 0x90 | 0333 | 7:0 | 0b1001 1110 | 通道映射寄存器1:4 * 2模式:[7:6]控制D1D映射 。[5:4]控制D0D映射。[3:2]控制D1C映射。[1:0]控制D0C映射 ; 2 * 4模式:控制D1A映射、控制D0A映射、控制D3A映射、控制D2A映射。 |
13 | 写 | 解串器 | 0x90 | 0334 | 7:0 | 0b1110 0100 | 通道映射寄存器2:4 * 2模式:[7:6]控制D1F映射 。[5:4]控制D0F映射。[3:2]控制D1E映射。[1:0]控制D0E映射 ; 2 * 4模式:控制D3B映射、控制D2B映射、控制D1B映射、控制D0B映射。 |
14 | 写 | 解串器 | 0x90 | 040A | 7:6 | 0b00 | 通道控制寄存器0:4 * 2模式:控制端口C通道数量。2 * 4模式:未使用 |
15 | 写 | 解串器 | 0x90 | 044A | 7:6 | 0b11 | 通道控制寄存器1:4 * 2模式:控制端口D通道数量。2 * 4模式:控制端口A通道数量 |
16 | 写 | 解串器 | 0x90 | 048A | 7:6 | 0b00 | 通道控制寄存器2:4 * 2模式:控制端口E通道数量。2 * 4模式:控制端口B通道数量 |
17 | 写 | 解串器 | 0x90 | 04CA | 7:6 | 0b00 | 通道控制寄存器3:4 * 2模式:控制端口F通道数量。2 * 4模式:未使用 |
18 | 写 | 解串器 | 0x90 | 031D | 4:0 | 0b0000 | MIPI时钟速率寄存器0:4 * 2 模式:端口C控制MIPI时钟速率。2 * 4 模式:未使用 |
19 | 写 | 解串器 | 0x90 | 0320 | 4:0 | 0b1 1000 | MIPI时钟速率寄存器1:4 * 2 模式:端口D控制MIPI时钟速率。2 * 4 模式:端口A控制MIPI时钟速率 |
20 | 写 | 解串器 | 0x90 | 0323 | 4:0 | 0b0 0000 | MIPI时钟速率寄存器2:4 * 2 模式:端口E控制MIPI时钟速率。2 * 4 模式:端口B控制MIPI时钟速率。 |
21 | 写 | 解串器 | 0x90 | 0326 | 4:0 | 0b0 0000 | MIPI时钟速率寄存器3:4 * 2 模式:端口F控制MIPI时钟速率。2 * 4 模式:未使用。 |
22 | 写 | 解串器 | 0x90 | 0050 | 1:0 | 0b00 | X流通道选择寄存器:控制视频包从串化器发送到解串器的X管道。 |
23 | 写 | 解串器 | 0x90 | 0051 | 1:0 | 0b01 | Y流通道选择寄存器:控制视频包从串化器发送到解串器的Y管道。 |
24 | 写 | 解串器 | 0x90 | 0052 | 1:0 | 0B10 | Z流通道选择寄存器:控制视频包从串化器发送到解串器的Z管道。 |
25 | 写 | 解串器 | 0x90 | 0053 | 1:0 | 0B11 | U流通道选择寄存器:控制视频包从串化器发送到解串器的U管道。 |
1LAN参考设置
块图
数据路径图
编程
接下来的寄存器,强烈推荐寄存器的目标位通过读、纠正、写来改变。而且在每一个组件完整寄存器文档里,位处理描述能够被找到。
步骤 | 读/写 | 设备 | 从设备ID | 寄存器 | 位 | 值 | 描述 |
---|---|---|---|---|---|---|---|
0 | 写 | 串化器 | 0x80 | 0002 | 7:4 | 0b1111 | 视频通道使能寄存器:每个位打开一个不同的视频通道 |
1 | 写 | 串化器1 | 0x80 | 0330 | 2:0 | 0b000 | CSI模式寄存器:0b000:14模式;0b011:22模式;ob110:2*4模式 |
2 | 写 | 串化器1 | 0x80 | 0331 | [5:4],[1:0] | 0b00,0b00 | 通道计数器:2 * 4模式:位[5:4]对应端口B,位[1:0]对应端口A。1 * 4模式:位[5:4]:对应活跃端口 |
3 | 写 | 串化器1 | 0x80 | 0332 | 7:0 | 0b1110 0100 | 通道映射寄存器1:1* 4模式:[7:6]控制D3B映射;[5:4]控制D2B 映射;[3:0]不关心;2* 4模式:[7:6]控制D1A映射;[5:4]控制D0A映射;[3:2]控制D3A映射;[1:0]控制D2A映射。 |
4 | 写 | 串化器1 | 0x80 | 0333 | 7:0 | 0b1110 0100 | 通道映射寄存器2:1* 4模式:[7:4]不关心;[3:2]控制D1B 映射;[1:0]控制D0B 映射。2* 4模式:[7:6]控制D3B映射;[5:4]控制D2B映射;[3:2]控制D1B映射;[1:0]控制D0B映射; |
5 | 写 | 串化器1 | 0x80 | 0308 | 3:0 | 0b1111 | CSI端口选择寄存器:[3:0]:指示每一个视频通道通过端口B(1✖4模式下活跃端口)获取数据。 |
6 | 写 | 串化器1 | 0x80 | 0311 | 7:0 | 0b1111 0000 | 开始视频通道寄存器:[7:4]:当端口B通过视频通道X、Y、Z和U,[3:0]:通过端口A开始输出视频通道的X,Y,Z,U |
7 | 写 | 串化器1 | 0x80 | 0314 | 7:0 | 0b1110 1110 | X数据类型通道寄存器:[7]:设置为高。[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
8 | 写 | 串化器1 | 0x80 | 0316 | 6:0 | 0b110 1100 | Y数据类型通道寄存器:[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
9 | 写 | 串化器1 | 0x80 | 0318 | 6:0 | 0b110 0010 | Z数据类型通道寄存器:[6]:数据类型通道使能,高有效。值为0x22代表不使用通道。[5:0]对应像素数据的hex编码数据类型 |
10 | 写 | 串化器1 | 0x80 | 031A | 6:0 | 0b110 0010 | U数据类型通道寄存器:[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
11 | 写 | 串化器2 | 0x80 | 0002 | 7:4 | 0b1111 | 视频通道使能寄存器:每个位打开一个不同的视频通道 |
12 | 写 | 串化器2 | 0x80 | 0330 | 2:0 | 0b000 | CSI模式寄存器:0b000:14模式;0b011:22模式;ob110:2*4模式 |
13 | 写 | 串化器2 | 0x80 | 0331 | [5:4],[1:0] | 0b00,0b00 | 通道计数器:2 * 4模式:位[5:4]对应端口B,位[1:0]对应端口A。1 * 4模式:位[5:4]:对应活跃端口 |
14 | 写 | 串化器2 | 0x80 | 0332 | 7:0 | 0b1110 0100 | 通道映射寄存器1:1* 4模式:[7:6]控制D3B映射;[5:4]控制D2B 映射;[3:0]不关心;2* 4模式:[7:6]控制D1A映射;[5:4]控制D0A映射;[3:2]控制D3A映射;[1:0]控制D2A映射。 |
15 | 写 | 串化器2 | 0x80 | 0333 | 7:0 | 0b1110 0100 | 通道映射寄存器2:1* 4模式:[7:4]不关心;[3:2]控制D1B 映射;[1:0]控制D0B 映射。2* 4模式:[7:6]控制D3B映射;[5:4]控制D2B映射;[3:2]控制D1B映射;[1:0]控制D0B映射; |
16 | 写 | 串化器2 | 0x80 | 0308 | 3:0 | 0b1111 | CSI端口选择寄存器:[3:0]:指示每一个视频通道通过端口B(1✖4模式下活跃端口)获取数据。 |
17 | 写 | 串化器2 | 0x80 | 0311 | 7:0 | 0b1111 0000 | 开始视频通道寄存器:[7:4]:当端口B通过视频通道X、Y、Z和U,[3:0]:通过端口A开始输出视频通道的X,Y,Z,U |
18 | 写 | 串化器2 | 0x80 | 0314 | 7:0 | 0b1110 1110 | X数据类型通道寄存器:[7]:设置为高。[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
19 | 写 | 串化器2 | 0x80 | 0316 | 6:0 | 0b110 1100 | Y数据类型通道寄存器:[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
20 | 写 | 串化器2 | 0x80 | 0318 | 6:0 | 0b110 0010 | Z数据类型通道寄存器:[6]:数据类型通道使能,高有效。值为0x22代表不使用通道。[5:0]对应像素数据的hex编码数据类型 |
21 | 写 | 串化器2 | 0x80 | 031A | 6:0 | 0b110 0010 | U数据类型通道寄存器:[6]:数据类型通道使能,高有效。[5:0]对应像素数据的hex编码数据类型 |
22 | 写 | 解串器 | 0x90 | 0330 | 2:0 | 0b100 | CSI模式寄存器:0b001:4 * 2模式;0b100:2 * 4模式 |
23 | 写 | 解串器 | 0x90 | 0333 | 7:0 | 0b1001 1110 | 通道映射寄存器1:4 * 2模式:[7:6]控制D1D映射 。[5:4]控制D0D映射。[3:2]控制D1C映射。[1:0]控制D0C映射 ; 2 * 4模式:控制D1A映射、控制D0A映射、控制D3A映射、控制D2A映射。 |
24 | 写 | 解串器 | 0x90 | 0334 | 7:0 | 0b1110 0100 | 通道映射寄存器2:4 * 2模式:[7:6]控制D1F映射 。[5:4]控制D0F映射。[3:2]控制D1E映射。[1:0]控制D0E映射 ; 2 * 4模式:控制D3B映射、控制D2B映射、控制D1B映射、控制D0B映射。 |
25 | 写 | 解串器 | 0x90 | 040A | 7:6 | 0b00 | 通道控制寄存器0:4 * 2模式:控制端口C通道数量。2 * 4模式:未使用 |
26 | 写 | 解串器 | 0x90 | 044A | 7:6 | 0b11 | 通道控制寄存器1:4 * 2模式:控制端口D通道数量。2 * 4模式:控制端口A通道数量 |
27 | 写 | 解串器 | 0x90 | 048A | 7:6 | 0b00 | 通道控制寄存器2:4 * 2模式:控制端口E通道数量。2 * 4模式:控制端口B通道数量 |
28 | 写 | 解串器 | 0x90 | 04CA | 7:6 | 0b00 | 通道控制寄存器3:4 * 2模式:控制端口F通道数量。2 * 4模式:未使用 |
29 | 写 | 解串器 | 0x90 | 031D | 4:0 | 0b0000 | MIPI时钟速率寄存器0:4 * 2 模式:端口C控制MIPI时钟速率。2 * 4 模式:未使用 |
30 | 写 | 解串器 | 0x90 | 0320 | 4:0 | 0b1 1000 | MIPI时钟速率寄存器1:4 * 2 模式:端口D控制MIPI时钟速率。2 * 4 模式:端口A控制MIPI时钟速率 |
31 | 写 | 解串器 | 0x90 | 0323 | 4:0 | 0b0 0000 | MIPI时钟速率寄存器2:4 * 2 模式:端口E控制MIPI时钟速率。2 * 4 模式:端口B控制MIPI时钟速率。 |
32 | 写 | 解串器 | 0x90 | 0326 | 4:0 | 0b0 0000 | MIPI时钟速率寄存器3:4 * 2 模式:端口F控制MIPI时钟速率。2 * 4 模式:未使用。 |
33 | 写 | 解串器 | 0x90 | 0050 | 1:0 | 0b00 | X流通道选择寄存器:控制视频包从串化器发送到解串器的X管道。 |
34 | 写 | 解串器 | 0x90 | 0051 | 1:0 | 0b01 | Y流通道选择寄存器:控制视频包从串化器发送到解串器的Y管道。 |
35 | 写 | 解串器 | 0x90 | 0052 | 1:0 | 0b10 | Z流通道选择寄存器:控制视频包从串化器发送到解串器的Z管道。 |
36 | 写 | 解串器 | 0x90 | 0053 | 1:0 | 0b11 | U流通道选择寄存器:控制视频包从串化器发送到解串器的U管道。 |
37 | 写 | 解串器 | 0x90 | 040B | 7:0 | 0b0000 0111 | X通道映射使能寄存器:每一个寄存器对应一个单独的DT/VC 映射使能.设置一个位为高,为了每一个数据类型必须被映射。FS和FE可能依赖应用。 |
38 | 写 | 解串器 | 0x90 | 048B | 7:0 | 0b0000 0111 | Y通道映射使能寄存器:每一个寄存器对应一个单独的DT/VC 映射使能.设置一个位为高,为了每一个数据类型必须被映射。FS和FE可能依赖应用。 |
39 | 写 | 解串器 | 0x90 | 048B | 7:0 | 0b0000 0111 | Z通道映射使能寄存器:每一个寄存器对应一个单独的DT/VC 映射使能.设置一个位为高,为了每一个数据类型必须被映射。FS和FE可能依赖应用。 |
40 | 写 | 解串器 | 0x90 | 04CB | 7:0 | 0b0000 0111 | U通道映射使能寄存器:每一个寄存器对应一个单独的DT/VC 映射使能.设置一个位为高,为了每一个数据类型必须被映射。FS和FE可能依赖应用。 |
41 | 写 | 解串器 | 0x90 | 042D | 7:0 | 0b0001 0101 | X通道映射目标寄存器:为了每个映射使能,目标控制器应该被指定 |
42 | 写 | 解串器 | 0x90 | 046D | 7:0 | 0b0001 0101 | Y通道映射目标寄存器:为了每个映射使能,目标控制器应该被指定 |
43 | 写 | 解串器 | 0x90 | 04AD | 7:0 | 0b0001 0101 | Z通道映射目标寄存器:为了每个映射使能,目标控制器应该被指定 |
44 | 写 | 解串器 | 0x90 | 04ED | 7:0 | 0b0001 0101 | U通道映射目标寄存器:为了每个映射使能,目标控制器应该被指定 |
45 | 写 | 解串器 | 0x90 | 040D | 7:0 | 0b0010 1110 | X管道映射0 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
46 | 写 | 解串器 | 0x90 | 040E | 7:0 | 0b0010 1110 | X管道映射0 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
47 | 写 | 解串器 | 0x90 | 040F | 7:0 | 0b0000 0000 | X管道映射1 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
48 | 写 | 解串器 | 0x90 | 0410 | 7:0 | 0b0000 0000 | X管道映射1 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
49 | 写 | 解串器 | 0x90 | 0411 | 7:0 | 0b0000 0001 | X管道映射2 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
50 | 写 | 解串器 | 0x90 | 0412 | 7:0 | 0b0000 0001 | X管道映射2 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
51 | 写 | 解串器 | 0x90 | 044D | 7:0 | 0b0110 1100 | Y管道映射0 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
52 | 写 | 解串器 | 0x90 | 044E | 7:0 | 0b0010 1110 | Y管道映射0 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
53 | 写 | 解串器 | 0x90 | 044F | 7:0 | 0b0100 0000 | Y管道映射1 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
54 | 写 | 解串器 | 0x90 | 0450 | 7:0 | 0b0100 0000 | Y管道映射1 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
55 | 写 | 解串器 | 0x90 | 0451 | 7:0 | 0b0100 0001 | Y管道映射2 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
56 | 写 | 解串器 | 0x90 | 0452 | 7:0 | 0b0100 0001 | Y管道映射2 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
57 | 写 | 解串器 | 0x90 | 048D | 7:0 | 0b0110 1100 | Z管道映射0 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
58 | 写 | 解串器 | 0x90 | 048E | 7:0 | 0b1110 1100 | Z管道映射0 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
59 | 写 | 解串器 | 0x90 | 048F | 7:0 | 0b0100 0000 | Z管道映射1 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
60 | 写 | 解串器 | 0x90 | 0490 | 7:0 | 0b1100 0000 | Z管道映射1 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
61 | 写 | 解串器 | 0x90 | 0491 | 7:0 | 0b0100 0001 | Z管道映射2 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
62 | 写 | 解串器 | 0x90 | 0492 | 7:0 | 0b1100 0001 | Z管道映射2 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
63 | 写 | 解串器 | 0x90 | 04CD | 7:0 | 0b1110 1100 | U管道映射0 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
64 | 写 | 解串器 | 0x90 | 04CE | 7:0 | 0b0100 0000 | U管道映射1 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
65 | 写 | 解串器 | 0x90 | 04CF | 7:0 | 0b1100 0000 | U管道映射1 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
66 | 写 | 解串器 | 0x90 | 04D0 | 7:0 | 0b0100 0001 | U管道映射2 资源寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
67 | 写 | 解串器 | 0x90 | 04D1 | 7:0 | 0b1100 0001 | U管道映射2 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
68 | 写 | 解串器 | 0x90 | 04D2 | 7:0 | 0b1000 0001 | U管道映射2 目标寄存器:[7:6] 指定资源VC。[5:0]指定资源DT。 |
典型调试debug技巧
- 当MIPI数据正在发送时,验证串化器的PCLKDET 位为高。
- 每个视频管道被使用(典型图像传感器发送一个视频管道每个数据类型).
- 如果PCLKDET位 验证不为高时。
- 无效的MIPI数据从串化器发送。
- 串化器被编程,期望图像传感器(寄存器0x0331)的正确数量的通道。
- 串化器被编程,图像传感器(寄存器0x332,和寄存器0x333)正确通道交换。
- 串化器被编程为图像传感器(寄存器0x334)正确通道极性。
- 串化器MIPI数据正确路线是从MIPI控制器到视频管道。验证寄存器0x0314、0x0316、0x0318和0x031A编程值是正确值。
- 如果 串化器PCLKDET 位设置为高,验证解串器的VIDEO_LOCK 位置高。PCLKDET位意味着串化器到解串器 收发大多数无效的MIPI数据。VIDEO_LOCK意味着解串器大多数接收到串化器的无效MIPI数据和解串器从MIPI段口发送MIPI数据。
- 如果PCLKDET为高,但是VIDEO_LOCK是低,验证以下内容:
- GMSL PHY 为自由错误。
- 串化器的视频管道设置为传输数据,和视频管道在解串起设置为接受数据时。寄存器0x0002在解串器和串化器都需要使能/可用每个视频管道和每个视频管道不使用/不可用。
- 如果PCLKDET位置高,和VIDEO_LOCK位设置为高,和SOC仍然识别到无效的MIPI数据。验证以下内容:
-
MIPI发送器正确的编程为SOC的期望。
- 通道数量
- 通道交换
- 通道权限
- MIPI时钟速速率
-
数据通路内部到解串器是正确的。文章来源:https://www.toymoban.com/news/detail-403875.html
- 视频管道到MIPI控制器编程。Use When-How-DT-V-Mapping.ppt for additional information on how to properly program the deserializer.
- 错误
- 解串器的LCRC错误 的以下原因:
- 数据从两个串化器发送到相同的管道。
- 在串化器一侧没有连续的MIPI时钟。
脚本样例
// ES2.1 MAX9295 and MAX 9296
// Image Sensor:2.3MP Image Sensor
// Spece:
// 4-lane MIPI CSI-2.
// 500-700 Mbps/lane
// RAW12 格式数据
// Serializer:MAX9295A(ES2.1)
// Spece:
// RAW12 通路到视频管道Y
// 解串器:MAX9296A(ES2.1)
// Spece:
// RAW12通过控制器1经过DT/VC映射。FS/FE不使用。
// 4-lane MIPI CSI-2 输出
// 1.5 Gbps/lane
/* 串化器和解串器 GMSL 连接重置 */
0x04, 0x90, 0x00, 0x10, 0x31, //采用重置Oneshot改变
//延时 100ms
0x04, 0x80, 0x00, 0x10, 0x21, //采用重置Oneshot改变
//延时 100ms
/* 串化器MIPI CSI-2 PHY 设置 */
0x04, 0x80, 0x03, 0x30, 0x00, // 设置串化器为1x4 模式。(phy_config = 0)
0x04, 0x80, 0x03, 0x32, 0xE4, // 验证通道映射是默认值。(phy1_lane_map = 4'hE, phy2_lane_map = 4'h4 )
0x04, 0x80, 0x03, 0x33, 0xE4, // 条件通道映射
0x04, 0x80, 0x03, 0x31, 0x33, // 串化器设置4通道映射 (ctrl1_num_lanes = 3)
0x04, 0x80, 0x03, 0x11, 0xF0, // A端口和B端口开始发送视频。
0x04, 0x80, 0x03, 0x08, 0x7F, // 使能信息通道。端口A和B加入开始位。从B端口的所有通道使用数据。
/* 串化器数据类型到视频通道路线(串化器数据流) */
0x04, 0x80, 0x03, 0x14, 0xF0, // Route 16bit DCG (DT = 0x30) to VIDEO_X (Bit 6 enable)
0x04, 0x80, 0x03, 0x16, 0x6C, // Route 12bit RAW (DT = 0x2C) to VIDEO_Y (Bit 6 enable)
0x04, 0x80, 0x03, 0x18, 0x52, // Route EMBEDDED8 to VIDEO_Z (Bit 6 enable)
0x04, 0x80, 0x03, 0x1A, 0x22, // Unused VIDEO_U
/* 串化器使能发送视频数据,从串化器到解串器 */
0x04, 0x80, 0x00, 0x02, 0xF3, // 确保每个管道开始发送。 (VID_TX_EN_X/Y/Z/U = 1)
/* 解串器MIPI CSI-2 PHY 设置 */
0x04, 0x90, 0x03, 0x30, 0x04, // 设置MIPI Phy 模式: 2x(1x4) mode
0x04, 0x90, 0x03, 0x33, 0x4E, // 通道映射 - 开始4通道端口映射
0x04, 0x90, 0x03, 0x34, 0xE4, // 加入通道映射
0x04, 0x90, 0x04, 0x0A, 0x00, // 通道计数 - 0 lanes striping on controller 0 (Port A slave in 2x1x4 mode).
0x04, 0x90, 0x04, 0x4A, 0xC0, // 通道计数 - 4 lanes striping on controller 1 (Port A master in 2x1x4 mode).
0x04, 0x90, 0x04, 0x8A, 0xC0, // 通道计数 - 4 lanes striping on controller 2 (Port B master in 2x1x4 mode).
0x04, 0x90, 0x04, 0xCA, 0x00, // 通道计数 - 0 lanes striping on controller 3 (Port B slave in 2x1x4 mode).
/* 解串器MIPI CSI-2 时钟速率设置 */
0x04, 0x90, 0x03, 0x1D, 0x2F, // MIPI clock rate - 1.5Gbps from controller 0 clock (Port A slave in 2x1x4 mode).
0x04, 0x90, 0x03, 0x20, 0x2F, // MIPI clock rate - 1.5Gbps from controller 1 clock (Port A master in 2x1x4 mode).
0x04, 0x90, 0x03, 0x23, 0x2F, // MIPI clock rate - 1.5Gbps from controller 2 clock (Port B master in 2x1x4 mode).
0x04, 0x90, 0x03, 0x26, 0x2F, // MIPI clock rate - 1.5Gbps from controller 2 clock (Port B slave in 2x1x4 mode).
/* 解串器流选择编程 */
0x04, 0x90, 0x00, 0x50, 0x00, // Route data from stream 0 to pipe X
0x04, 0x90, 0x00, 0x51, 0x01, // Route data from stream 0 to pipe Y
0x04, 0x90, 0x00, 0x52, 0x02, // Route data from stream 0 to pipe Z
0x04, 0x90, 0x00, 0x53, 0x03, // Route data from stream 0 to pipe U
0x04, 0x90, 0x03, 0x32, 0xF0, // 使能所有的PHYS。
/* 串化器GPIO编程 */
0x04, 0x80, 0x02, 0xbe, 0x90, // Enable sensor power down pin.
0x04, 0x80, 0x02, 0xbf, 0x60, // Enable sensor reset pin.
0x04, 0x80, 0x03, 0xF1, 0x89, // Output RCLK to sensor.
附录1
MIPI CSI-2 数据类型有唯一的6位 16进制的编码对应。图像传感器有能力编程确定数据类型指定的hex编码。询问图像传感器数据手册验证hex编码。
图像数据类型与典型hex编码文章来源地址https://www.toymoban.com/news/detail-403875.html
数据类型 | 典型hex编码 |
---|---|
RGB888 | 0x24 |
RGB666 | 0x23 |
RGB565 | 0x22 |
YUV422 8-bit | 0x1E |
YUV422 10-bit | 0x1F |
RAW8 | 0x2A |
RAW10 | 0x2B |
RAW12 | 0x2C |
RAW14 | 0x2D |
RAW16 | 0x2E |
Embedded 8-bit | 0x12 |
到了这里,关于纯翻译 GMSL2-CSI2 MAX9295和MAX9296配对通用过程 编程指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!