工具与软件:
大家好、专家
在 TDA4VEN 上、我们使用串行解串器解决方案从摄像头获取数据、数据流如下:
OVX1F (x4)--> DS90UB933 --> DS90UB960 --> TDA4VEN (CSIRX)。
传感器输出格式: 1280×960@30fps、YUV422、8位
请提供解串器 DS90UB960的配置文件作为参考、谢谢!
此致、
Bing
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.
工具与软件:
大家好、专家
在 TDA4VEN 上、我们使用串行解串器解决方案从摄像头获取数据、数据流如下:
OVX1F (x4)--> DS90UB933 --> DS90UB960 --> TDA4VEN (CSIRX)。
传感器输出格式: 1280×960@30fps、YUV422、8位
请提供解串器 DS90UB960的配置文件作为参考、谢谢!
此致、
Bing
我使用的是 csirx0、
ub960 (port0)--> tda4ven (csirx0)
您好、Thomas
例如、我们使用串行器的 GPIO1开始流式传输的一些传感器。
我们也使用 GPIO1。
我们现在将使用内部同步、稍后将使用外部同步。 外部同步需要 SoC 向 UB960输出 PWM、对吧?
我们将 UB960的 GPIO0设置为接收外部 PWM 信号、因此请为我提供内部和外部同步的示例、谢谢!
此致、
Bing
您好、Thomas
这是我的配置脚本、我无法获取映像、我不知道有什么问题。
#!/bin/sh
#UB960: 0x30 UB933: 0xb0 Sensor: 0x6c
# TDA4VEN main_i2c0, regs 0x20000000
TI960=0x30
WriteI2C()
{
i2ctransfer -y -f 1 w2@$1 $2 $3
sleep 0.1
}
WriteI2C $TI960 0x01 0x02 # reset all digital part
sleep 1
## Internally generated framesync configuration
WriteI2C $TI960 0x0C 0x0F # enable RX0-3
WriteI2C $TI960 0x4C 0x0F # write enable for RX0-4 registers
WriteI2C $TI960 0x1F 0x00 # set CSI-2 Transmitter Speed 1.6G
WriteI2C $TI960 0x4C 0x01 # page to port RX0
WriteI2C $TI960 0x6E 0xA9 # set RX0 SER GPIO1 output framesync signal
WriteI2C $TI960 0x4C 0x12 # page to port RX1
WriteI2C $TI960 0x6E 0xA9 # set RX1 SER GPIO1 output framesync signal
WriteI2C $TI960 0x4C 0x24 # page to port RX2
WriteI2C $TI960 0x6E 0xA9 # set RX2 SER GPIO1 output framesync signal
WriteI2C $TI960 0x4C 0x38 # page to port RX3
WriteI2C $TI960 0x6E 0xA9 # set RX3 SER GPIO1 output framesync signal
# set Internally Generated FrameSync 30Hz, 2778 counts
WriteI2C $TI960 0x19 0x03 # FS_HIGH_TIME_1
WriteI2C $TI960 0x1A 0x9D # FS_HIGH_TIME_0
WriteI2C $TI960 0x1B 0x07 # FS_LOW_TIME_1
WriteI2C $TI960 0x1C 0x3A # FS_LOW_TIME_0
WriteI2C $TI960 0x18 0x01 # enable framesync
## RX0-3 I2C pass through and slave ID configuration
WriteI2C $TI960 0x4C 0x01 # page to port RX0
WriteI2C $TI960 0x58 0x58 # enable passthrough
WriteI2C $TI960 0x5C 0xB0 # set serializer alias
WriteI2C $TI960 0x5D 0x6C # imager slave ID, port0
WriteI2C $TI960 0x65 0x6C # imager slave alias, port0
WriteI2C $TI960 0x6D 0x7F # set Input Mode,raw10
WriteI2C $TI960 0x7C 0xC1 # set frame valid polarity to active high
WriteI2C $TI960 0x4C 0x12 # page to port RX1
WriteI2C $TI960 0x58 0x58 # enable passthrough
WriteI2C $TI960 0x5C 0xB0 # set serializer alias
WriteI2C $TI960 0x5D 0x6C # imager slave ID, port1
WriteI2C $TI960 0x65 0x6C # imager slave alias, port1
WriteI2C $TI960 0x6D 0x7F # set Input Mode,raw10
WriteI2C $TI960 0x7C 0xC1 # set frame valid polarity to active high
WriteI2C $TI960 0x4C 0x24 # page to port RX2
WriteI2C $TI960 0x58 0x58 # enable passthrough
WriteI2C $TI960 0x5C 0xB0 # set serializer alias
WriteI2C $TI960 0x5D 0x6C # imager slave ID, port2
WriteI2C $TI960 0x65 0x6C # imager slave alias, port2
WriteI2C $TI960 0x6D 0x7F # set Input Mode,raw10
WriteI2C $TI960 0x7C 0xC1 # set frame valid polarity to active high
WriteI2C $TI960 0x4C 0x38 # page to port RX3
WriteI2C $TI960 0x58 0x58 # enable passthrough
WriteI2C $TI960 0x5C 0xB0 # set serializer alias
WriteI2C $TI960 0x5D 0x6C # imager slave ID, port3
WriteI2C $TI960 0x65 0x6C # imager slave alias, port3
WriteI2C $TI960 0x6D 0x7F # set Input Mode,raw10
WriteI2C $TI960 0x7C 0xC1 # set frame valid polarity to active high
## CSI output configuration for basic synchronized forwarding
WriteI2C $TI960 0x4C 0x01 # page to port RX0
WriteI2C $TI960 0x70 0x1F # RAW10_datatype_yuv422b10_VC0
WriteI2C $TI960 0x7C 0xC1 # RAW10 use lower 8bit
WriteI2C $TI960 0x4C 0x12 # page to port RX1
WriteI2C $TI960 0x70 0x5F # RAW10_datatype_yuv422b10_VC1
WriteI2C $TI960 0x7C 0xC1 # RAW10 use lower 8bit
WriteI2C $TI960 0x4C 0x24 # page to port RX2
WriteI2C $TI960 0x70 0x9F # RAW10_datatype_yuv422b10_VC2
WriteI2C $TI960 0x7C 0xC1 # RAW10 use lower 8bit
WriteI2C $TI960 0x4C 0x38 # page to port RX3
WriteI2C $TI960 0x70 0xDF # RAW10_datatype_yuv422b10_VC3
WriteI2C $TI960 0x7C 0xC1 # RAW10 use lower 8bit
WriteI2C $TI960 0x20 0x00 # [3:0]: 0: CSI-2 port 0; 1: CSI-2 port 1
WriteI2C $TI960 0x21 0x04 # enable basic Synchronized forwarding for CSI port 0&1
WriteI2C $TI960 0x32 0x01 # read from CSI port0, write to CSI port0
WriteI2C $TI960 0x33 0x03 # enable CSI port0
#WriteI2C $TI960 0x32 0x12 # read from CSI port1, write to CSI port1
#WriteI2C $TI960 0x33 0x03 # enable CSI port1
960寄存器:

933个寄存器:

此致、
Bing
尊敬的 Bing:
谢谢、我在工作台上遇到了一些问题、因此从工作台上看到脚本也很有帮助。
您的系统上是否也有其他端口的状态? 下面列出了一些评论:
问题是您这边没有视频吗?
此致!
Thomas
您好、Thomas
如果分辨率为 YUV422 8位、我们应将寄存器0x70 = 0x1E 设置为 CSI 数据类型。 您能否确认这是否正确? 我在您的脚本中看到了0x1F。
在我把它更改为0x1E 后、它运行正常。
我计划实施一种热插拔、发现拔下任何摄像头模块(UB933+图像传感器)后、所有摄像头显示屏都无法正常工作、即使还有其他三个摄像头 模块、为什么会这样?
此外、您可以建议一种可行的热插拔方式、只要它检测到 摄像头模块的拔下和插入即可。
此致、
Bing
您好、Thomas
[报价 userid="520415" url="~/support/interface-group/interface/f/interface-forum/1427574/ds90ub960-q1-ds90ub960-configuration-reference-example/5490060 #5490060"]完成热插拔后、是否可以禁用寄存器0x20中不再使用的端口转发? [报价]感谢您的支持、热插拔功能现已开始工作。
此致、
Bing