This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的团队:
我们将制作两个 MIPI-CSI2、如下图所示。
摄像头由 ISX016传感器和 DS90UB913串行器组成。
但是、我遇到了如下错误日志
此外、Video1和 Video2不起作用。
请告诉我
[错误日志]
root@imx8mp-var-dart:~ v4l2-ctl --list-devices
[3717.785575] mxc-mipi-csi2.0:is_entity_link_setup、未找到远程板!
[3717.792245] mxc-mipi-csi2.1:is_entity_link_setup、未找到远程板!
mxc-ISI-cap (平台:32e00000。ISI:cap_devic):
/dev/video1.
mxc-ISI-M2M (平台:32e00000。ISI:M2M_devic):
/dev/video0
mxc-ISI-cap (平台:32e020.ISI:cap_devic):
/dev/video2.
root@imx8mp-var-dart:~#
此致、
吊信。
你好、Shin、
我不熟悉错误代码? 您是否在使用913锁定960时遇到问题? 是否确定要将960捆绑到正确的设置? 尝试拉960个寄存器、以便查看您看到的问题。
此致、
Nick
您好、Nick、
我的错误日志是...
>> [3717.785575] mxc-mipi-csi2.0:is_entity_link_setup、未找到远程板!
>>[3717.792245] mxc-mipi-csi2.1:is_entity_link_setup、未找到远程板!
在正常情况下,如果您输入此命令( v4l2-ctl --list-devices),您可以看到以下日志
################################
root@imx8mp-var-dart:~ v4l2-ctl --list-devices
mxc-ISI-cap (平台:32e00000。ISI:cap_devic):
/dev/video1.
mxc-ISI-M2M (平台:32e00000。ISI:M2M_devic):
/dev/video0
mxc-ISI-cap (平台:32e020.ISI:cap_devic):
/dev/video2.
root@imx8mp-var-dart:~#
################################
此外、如果我输入此命令(" gst-launch-1.0 v4l2src device=/dev/video1! 视频/x-raw、宽=1280、高=720 ! autovideosink sync-false” ),用于 vide1,
然后测试图形显示在我们的屏幕中
但是、在我的例子中、它不起作用。
我认为这是 DS90UB960与 IMX8的 MIPI-CSI2之间的连接问题
您能否推荐 DS90UB960的 DTS 设置?
我以前像下面一样...
################################
[my xxxx.dts (我的 xxxx.dts)]
解串器1@30{
兼容="ti、ds90ub960-Q1";
reg-names ="main"、"rxport0"、"rxport1";
reg =<0x30>、<0x40>、<0x41>;
时钟频率=<25000000>;
interrupt-parent =<&GIC>;
中断=<5 0 IRQ_TYPE_LEVEL_HIGH_>;
RESET-GPIO =<&GPIO4 1 GPIO_ACTIVE_LOW>;
#clock-cells =<0>;
I2C-ALIASE-POOL =/bits/16 <0x4a 0x4b 0x4c 0x4d 0x4e 0x4f>;
分配的时钟速率=<25000000>;
CSI_id =<1>;
IPU_id =<1>;
MIPI_CSI;
状态="正常";
端口{
#address-cells =<1>;
#size-cells =<0>;
端口@0{
reg =<0>;
ds90ub954_fpd3_in2:端点{
远程端点=<&sensor_2_out>;
};
};
端口@1{
reg =<1>;
ds90ub954_fpd3_in3:端点{
远程端点=<&sensor_3_out>;
};
};
端口@2{
reg =<2>;
ds90ub954_mipi_out1:端点{
数据通道=<1 2 3 4>;
时钟通道=<0>;
IPU_id =<1>;
CSI_id =<1>;
/*实际上是一个 REFCLK 乘法器*/
数据速率=<1600000000>;
远程端点=<&mipi_csi1_EP>;
};
};
};
I2C-ATR{
#address-cells =<1>;
#size-cells =<0>;
REMOVE_i2c2:I2C@0{
reg =<0>;
#address-cells =<1>;
#size-cells =<0>;
};
REMOVE_i2c3:I2C@1{
reg =<1>;
#address-cells =<1>;
#size-cells =<0>;
};
#endif
};
};
################################
DS90UB960采用测试图形模式。
(此外 ,我已经检查了 DS90UB960的 TX 端口0中的测试模式...它通过示波器工作。 )
此致、
吊信。
你好、Shin、
很遗憾、我不熟悉您使用的软件、因此我可能无法在这部分提供帮助。 您是否说可以在示波器上看到960的 CSI 输出、但无法在屏幕上看到它? 我将确保没有连接问题、同时确保将数据转发到器件的 CSI 端口。
您是否能够共享显示数据停止位置的图?
此致、
Nick
你(们)好 Nick
[1] 您说可以在示波器上看到960的 CSI 输出、但无法在屏幕上看到它吗?
(hosung)是的、没错
我已经检查了下面蓝色的圆圈
[2]我附加了方框图、 请看蓝色的圆圈
正如我说过的、960采用测试图形模式。MIPI-CSI2连接 IMX8的 ISI (图像传感器接口)。
此外、IMX 的 ISI 可连接视频(视频1或视频2)
然后、我已经说 过、如果我输入此命令(" gst-launch-1.0 v4l2src device=/dev/video1! 视频/x-raw、宽=1280、高=720 ! autovideosink sync-false” )对于 video1, 测试模式将显示在我们的屏幕中。
但是、这不是视频。
请告诉我我该怎么做
此致、
吊信。
您好!
因此、我的理解是、当您使用960 PATGEN 工具时、您可以看到测试模式、但您无法看到来自实际传感器的视频。 您是否能够从960中拉取所有寄存器、以便我们可以查看是否所有设置都正确。 我们需要确保使用正确的模式搭接、将所有数据转发到 CSI 端口、并从913接收数据。 此外、您还应从 DVP 串行器进行 VCID 和数据类型映射。
此致、
Nick
您好、Nick、
它是转储数据、如下所示。
root@imx8mp-var-dart:~# i2cdetect -y -r 2.
0 1 2 3 4 5 6 7 8 9 A b c d e f
00:------------ ------
10:------------ ------------ ------------ --
20:------------ ------------ ------------ --
30:------------ ------------ ------ UU ----
40:------ 44 -------------- ------------ --
50:---------- ------------ ------------ --
60:------------ ------------ ------------ --
70:------------ ------
root@imx8mp-var-dart:~#
root@imx8mp-var-dart:~# i2cdump -f 2 0x3D
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:7A 00 1e 40 d0 01 00 fe 1c 10 7a 7a 0f b9 00 ff zz。@?????zz?。
10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 03… ??
20:00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.?..........
30:00 00 01 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00...?...
40:00 A9 71 01 00 20 00 00 00 12 00 02 00。?q?.. …………………………………
50:00 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 ?。
60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 88 88 88 88 X??
70:2B 2c e4 00 00 C5 00 01 00 20 00 00 +、??????。 (笑声)
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00… ?.........
B0:00 0f 04 08 25 00 18 00 F8 33 83 74 80 00 00 00。?????????????????
C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0:00 43 94 1f 60 f2 00 02 00 00 00 00 00 00 00 00 00 .C??`?
E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0:5F 55 42 39 36 30 00 00 00 00 00 00 00 00 00 00 00 _UB960 ..........
您说" 此外、您还应从 DVP 串行器进行 VCID 和数据类型映射"
请详细说明您所说的内容。
此致、
吊信。
你(们)好 Nick
它是960的原理图。
但是、我们不需要传感器控制。然后我们不像红框(GPIO 0 ~ 7)那样连接这些 GPIO 的线路(0 ~ 7)
此 GPIO 的连接是否与我的问题相关?
此致、
吊信。
您好!
是的、您发送的数据是我要查找的数据。 如果您查看寄存器0x4D、您会发现您实际上并未使用串行器锁定。
您是否能够验证串行器是否已通电? 此外、还应将寄存器0x58设置为值0x58。
我还建议验证960是否正确捆绑。
此致、
Nick
您好、Nick、
正如您说过的、我检查了两点
[1]您说“还应将寄存器0x58设置为值0x58。 我还建议验证960是否正确捆绑。”
>>我修改了这个自举、这个寄存器0x58是0x58、如下所示 ... 谢谢。
root@imx8mp-var-dart:~# i2cdetect -y -r 2.
0 1 2 3 4 5 6 7 8 9 A b c d e f
00: ------------ ------
10:------------ ------------ ------------ --
20:------------ ------------ ------------ --
30:------------ ------------ ------ UU ----
40:UU UU ---- 44 ---------- ------------ --
50:---------- ------------ ------------ --
60:------------ ------------ ------------ --
70:------------ ------
root@imx8mp-var-dart:~#
root@imx8mp-var-dart:~# i2cdump -f 2 0x3D
未指定大小(使用字节数据访问)
警告! 该程序会使您的 I2C 总线混淆、导致数据丢失和更糟糕的情况!
我将探测文件/dev/i2c-2、地址0x3D、模式字节
继续? [y/n]、是
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:7A 00 1e 40 d0 01 00 fe 1c 10 7a 7a 0f b9 00 ff zz。@?????zz?。
10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 … ?。
20:00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ……………………………………………
30:00 00 01 03 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ………………………………………………
40:00 A9 71 01 00 00 20 00 00 00 12 00 03 14 25 。?q?.. ????%
50:1F 00 00 00 00 00 00 00 58 00 b0 88 78 00 00 ?。 X..?x。
60:00 00 00 00 94 00 00 00 00 00 00 00 00 00 00 00 7f 88 88 ?。 ???
70:2B 2c e4 02 d0 0c 80 C5 00 01 00 20 00 00 +、???????? ?。。 (笑声)
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:07 51 07 50 ff ff ff ff ff 00 00 00 00 00 00 00 00 ?Q?P.............
A0:00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … ?.........
B0:00 0f 04 08 25 00 18 00 ff 33 83 74 80 00 00 .??%...3?t...
C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0:00 43 94 02 60 f2 00 02 07 7f 00 10 00 00 00 .C ???`????????。。。
E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0:5F 55 42 39 36 30 00 80 82 00 00 00 00 00 00 00 00 _UB960..?
root@imx8mp-var-dart:~#
[2]您说“如果查看寄存器0x4D,您可以看到您实际上并未锁定串行器。
您是否能够验证串行器是否已通电?”
>>我们的平台不控制串行器。
摄像头模块(ISX016 + DS90UB913)由 MCU (其它芯片)控制
该 MCU 输入摄像头模块的电源。
然后,正如您所说的“您可以看到您实际上并未锁定串行器”
最后、 您不需要使用串行器进行锁定
然后、… 如果我使用串行器解除锁定, 请告诉我该怎么办??
此致、
侯声信。
您好!
看起来您现在能够锁定了。 最新的寄存器转储显示寄存器0x4D 正在读取0x03、这显示 LOCK 和 PASS 有效。 似乎有可用的 CSI 数据、但看起来不像正在转发。 是否可以尝试禁用0x20中的转发并禁用寄存器0x33中的 CSI 端口、然后确保在启用转发之前启用 CSI 端口?
此致、
Nick
您好、Nick、
正如您所说的,“是否可以尝试禁用0x20中的转发并禁用寄存器0x33中的 CSI 端口,然后确保在启用转发之前启用 CSI 端口? ”
我继续这样做,但不幸的是,结果是一样的。
如果设置有任何问题、 请告诉我…
[这是我的转储值]
root@imx8mp-var-dart:~# i2cdump -f 2 0x3D
未指定大小(使用字节数据访问)
警告! 该程序会使您的 I2C 总线混淆、导致数据丢失和更糟糕的情况!
我将探测文件/dev/i2c-2、地址0x3D、模式字节
继续? [y/n]、是
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:7A 00 1e 40 d0 01 00 fe 1c 10 7a 7a 0f b9 00 ff zz。@?????zz?。
10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02 … ??
20:F0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ??..........
30:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40:00 A9 71 01 00 00 20 00 00 00 12 00 03 04 25 。?q?.. ????%
50:20 00 00 00 00 00 00 00 58 00 b0 88 00 00....... 十.??
60:00 00 00 00 94 00 00 00 00 00 00 00 00 00 00 00 7f 88 88 ?。 ???
70:2B 2c e4 02 d0 0c 80 C5 00 01 00 20 00 00 +、???????? ?。。 (笑声)
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … ?.........
B0:1C 01 00 08 25 00 18 00 ff 33 83 74 80 00 00 00?????????????????
C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0:00 43 94 02 60 f2 00 02 07 7f 00 00 00 00 00 00 00 .C?`…………………………………………………………
E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0:5F 55 42 39 36 30 00 80 82 00 00 00 00 00 00 00 00 _UB960..?
root@imx8mp-var-dart:~#
此致、
吊篮
您好!
我尝试确保按照正确的顺序启用 CSI 端口。 请尝试按照以下步骤禁用器件上的 CSI 端口、然后重新启用该端口。
您能否验证寄存器的写入顺序是否正确?
此致、
Nick
您好、Nick、
当然、我会按照您所说的那样继续。
[1]禁用 CSI-2发送器
FWD_CTL1 >>寄存器0x20值0xF0
CSI_CTL2 >>寄存器0x34值0x0
CSI_CTL >>寄存器0x33值0x0
(结果)
root@imx8mp-var-dart:~# i2cdump -f 2 0x3D
未指定大小(使用字节数据访问)
警告! 该程序会使您的 I2C 总线混淆、导致数据丢失和更糟糕的情况!
我将探测文件/dev/i2c-2、地址0x3D、模式字节
继续? [y/n]、是
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:7A 00 1e 40 d0 01 00 fe 1c 10 7a 7a 0f b9 00 ff zz。@?????zz?。
10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02… ??
20:F0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ??..........
30:00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00...?..........
40:00 A9 71 01 00 00 20 00 00 00 12 00 03 04 25。?q?.. ????%
50:20 00 00 00 00 00 00 00 58 00 b0 88 00 00....... 十.??
60:00 00 00 00 94 00 00 00 00 00 00 00 00 00 00 00 7f 88 88 ?。 ???
70:2B 2c e4 02 d0 0c 80 C5 00 01 00 20 00 00 +、???????? ?。。 (笑声)
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00… ?.........
B0:1C 01 00 08 25 00 18 00 ff 33 83 74 80 00 00 00?????????????????
C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0:00 43 94 07 60 f2 00 02 07 7f 00 00 00 00 00 00 00 .C?`…………………………………………………………
E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0:5F 55 42 39 36 30 00 80 82 00 00 00 00 00 00 00 00 _UB960..?
root@imx8mp-var-dart:~#
[2]启用 CSI-2发送器
CSI_CTL >>寄存器0x33值0x02
CSI_CTL2 >>寄存器0x34值0x01
FWD_CTL1 >>寄存器0x20值0x0
(结果)
root@imx8mp-var-dart:~# i2cdump -f 2 0x3D
未指定大小(使用字节数据访问)
警告! 该程序会使您的 I2C 总线混淆、导致数据丢失和更糟糕的情况!
我将探测文件/dev/i2c-2、地址0x3D、模式字节
继续? [y/n]、是
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:7A 00 1e 40 d0 01 00 fe 1c 10 7a 7a 0f b9 00 ff zz。@?????zz?。
10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02… ??
20:00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.?..........
30:00 00 01 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00……………………………………………
40:00 A9 71 01 00 00 20 00 00 00 12 00 03 04 25。?q?.. ????%
50:20 00 00 00 00 00 00 00 58 00 b0 88 00 00....... 十.??
60:00 00 00 00 94 00 00 00 00 00 00 00 00 00 00 00 7f 88 88 ?。 ???
70:2B 2c e4 02 d0 0c 80 C5 00 01 00 20 00 00 +、???????? ?。。 (笑声)
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00… ?.........
B0:1C 01 00 08 25 00 18 00 ff 33 83 74 80 00 00 00?????????????????
C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0:00 43 94 02 60 f2 00 02 07 7f 00 00 00 00 00 00 00 .C?`…………………………………………………………
E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0:5F 55 42 39 36 30 00 80 82 00 00 00 00 00 00 00 00 _UB960..?
root@imx8mp-var-dart:~#
此致、
吊信。
您好!
我想您在这里犯了一个错误、在浏览设置的 CSI 启用部分时、您还需要设置0x33[0]= 1。 您应该写入0x33 -> 0x03。
此致、
Nick
您好、Nick、
正如您所说、我将此0x33 reg 从0x01更改为0x03。
我得到了信号(相机的信号)。它工作正常。
(我检查了摄像机的信号,就像下面的蓝色圆圈...它的工作原理... 我使用了示波器)
但是、我无法 在屏幕上显示此视频。
我的意思是...摄像头的信号正常工作(通过示波器)
我无法在显示屏上显示此摄像头的信号。
(我使用了以下命令进行显示>> GS-launch-1.0 v4l2src device=/dev/video1 ! 视频/x-raw、宽=1280、高=720 ! autovideosink sync-false )
此致、
吊信。
你好、Shin、
您是否确定 SoC 可以承受您使用的速度和连续时钟? 如果 TX 端口输出数据、但 SoC 看不到数据、则可能是 SoC 存在问题。 您是否能够看到960的测试模式?
此致、
Nick
您好、Nick、
(Q)您是否确定 SoC 能够承受您使用的速度和连续时钟?
(a)是的,这是正确的。
(Q)如果 TX 端口输出数据、但 SoC 无法看到、则可能是 SoC 存在问题。 您是否能够看到960的测试模式?
(a)是的,我同意。
此外,测试模式可以正常工作,但我看不到视频(相同)
我对测试模式有疑问
如果启用测试模式,
当我们使用4通道时,所有4通道是否都是测试模式,如下图1所示?
4通道中的一个测试模式是否与下图2类似?
此致、
吊信
您好!
测试模式将对图片1等车道使用全部功能。 您能否检查 VCID 是否已正确映射? SoC 可能正在寻找特定的 VCID、而器件输出的是错误的 VCID。
此致、
Nick
您好、Nick、
谢谢你。
无论如何、DS90UB960都能正常工作。
正如您所说、我正在检查 VCID、器件正在输出等...
由于重管理问题与 SOC 相关、我将关闭此问题。
此致、
吊信。