主题中讨论的其他器件:AWR2243、 DS90UB960-Q1、DS90UB954-Q1

在这种情况下、每个 DS90UB960-Q1连接到四个 DS90UB953-Q1、每个 DS90UB953-Q1连接到一个 AWR2243。 四个 AWR2243由一个 MCU 通过 SPI 进行控制。 有一个 SoC 通过 DS90UB960-Q1接收 AWR2243数据并进行处理。
我的问题是如何在 SoC 上配置 UB953和 UB960以接收数据。
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.

在这种情况下、每个 DS90UB960-Q1连接到四个 DS90UB953-Q1、每个 DS90UB953-Q1连接到一个 AWR2243。 四个 AWR2243由一个 MCU 通过 SPI 进行控制。 有一个 SoC 通过 DS90UB960-Q1接收 AWR2243数据并进行处理。
我的问题是如何在 SoC 上配置 UB953和 UB960以接收数据。
您好,文强:
DS90UB953-Q1 和 DS90UB960-Q1都需要最少的初始配置、才能开始发送和接收数据。 所需的任何额外配置将取决于您的应用。 通电并连接后、 只要满足以下条件、DS90UB953-Q1和 DS90UB960-Q1都应能够发送和接收数据:
- DS90UB953-Q1 与 DS90UB960-Q1之间的连接 已建立。 为确保满足这一要求、我建议您遵循数据表提供的原理图和布局建议。
-连接到串行器的 DS90UB960-Q1的每个 RX 端口都被使能(寄存器0x0C)
-每个 DS90UB953-Q1都设置为与 DS90UB960-Q1相同的时钟模式。 有关这方面的更多信息、请参阅 DS90UB960-Q1数据表的第7.4.3节和 DS90UB953-Q1数据表的第7.4.2节。
串行器上的 CSI 输入端、解串器上的 CSI 输出 端配置为使两个接口都与任何连接的设备兼容。
DS90UB953-Q1和 DS90UB960-Q1的所有其他配置设置将取决于 您的应用。 例如、如果您的应用需要同步所有串行器、您可以考虑对 DS90UB960-Q1进行编程、以 在串行器的 GPIO 引脚上生成同步信号。 此外、您还可以对 解串器的数据转发模式进行编程(有关这方面的更多信息、请参阅 DS90UB960-Q1数据表的第7.4.25节)。 对于所有配置设置、请参阅每个器件数据表的寄存器映射部分。
如果您有任何其他问题、请告诉我。
此致、
肯尼思
您好,文强:
是否需要在 UB953和 UB960上配置 CSI 格式? [/报价]若要 从另一个器件接收 CSI 数据或向该器件发送 CSI 数据、 DS90UB953-Q1和 DS90UB960-Q1的 CSI 时钟和数据通道配置需要与其连接的器件相匹配。
UB953是否可以在不配置 UB953的 CSI 格式的情况下输出信号?默认情况下、DS90UB953-Q1 CSI 接口将配置为四数据通道非连续时钟配置。 如果 AWR2243具有相同的 CSI 配置、则 DS90UB953-Q1应该能够开始接收 CSI 数据并通过链路传输。
如何在配置 PGEN_CFG 时选择 NUM_CBARS 的值? [/报价]NUM_CBARS 是通过确定要通过生成的图形显示的色条数量来设置的。
如何计算 PGEN_BAR_SIZE 的值?要确定如何计算 PGEN_BAR_SIZE、请参阅 DS90UB960-Q1数据表的第7.5.12.3.1节。
此致、
肯尼思
[/quote][/quote]
UB953的 DTS 配置:
#define SER_MODEL ub953
#define SER_NODE CONVAT_3 (SER_MODEL、_、PORT_IDX)
#define SER_NODE_NAME CONVAT_3 (SER_MODEL、@、SER_ADDR)
#define SER_PATH CONVAT_5 (DES_PATH、/LINK@、DES_LINK、/、SER_NODE_NAME)
#define DES_LINK_NODE CONVAT_3 (DES_NODE、_LINK、DES_LINK)
#define SER_GPIO_NODE CONVAT_3 (SER_MODEL、_GPIO_、PORT_IDX)
&DES_LINK_NODE{
SER_NODE:SER_NODE_NAME{
兼容="D3、ub953";
STATUS = STR (STATUS);
physic-addr =<0x18>;
#address-Cells =<1>;
#size-cells =<0>;
寄存器= ;
CSI-LANE-COUNT =<4>;
CSI 连续时钟=<1>;
I2C-VOLTAGE-SEL =<0x0>;
SER_GPIO_NODE:SER_GPIO_NODE{
兼容="D3、ub953-GPIO";
状态="可以";
GPIO 控制器;
#GPIO-CELLS =<2>;
ngpios =<4>;
};
};
};
UB953的寄存器值如下:
器件 ID 寄存器(0x00):0x30
通用配置(0x02): 0x72
正向通道模式选择(0x03):0x4b
常规状态(0x52):0x45
UB960的 DTS 配置:
#define DES_NAME ub960
#define DES_PATH CONVAT_3 (\
I2C_BASE_PATH、/、\
CONV_3 (DES_NAME、@、DES_ADDR)
#define DES_NODE CONVAT_3 (DES_NAME、_、DES_ADDR)
/{
CONV_2 (i2c@、I2C_ADDR){
/*解串器*/
DES_node:DES_name@DES_ADDR{
STATUS = STR (STATUS);
兼容="D3、ub960";
寄存器= ;
IOVDD-SUPPLY = IOVDD_SUPPLY;
AVDD 电源= AVDD_SUPPLY;
PDB-GPIO = RESET_PIN;
CSI-LANE-COUNT = ; // CSI_LANES 为4
CSI-TX-SPEED -Mbps =<1600>;
CSI 连续时钟=<1>;
FRAME-SYNC-MODE =<8>;
FRAME-SYNC-HIGH-TIME-us =<15000>;
frame-sync-low-time-us =<35000>;
#address-Cells =<1>;
#size-cells =<0>;
CONTACT_2 (DES_node、_link0):链接@0{
寄存器=<0>;
#address-Cells =<1>;
#size-cells =<0>;
};
CONTACT_2 (DES_node、_link1):链接@1{
寄存器=<1>;
#address-Cells =<1>;
#size-cells =<0>;
};
CONV_2 (DES_node、_Link2):链接@2{
寄存器=<2>;
#address-Cells =<1>;
#size-cells =<0>;
};
CONTACT_2 (DES_node、_Link3):链接@3{
寄存器=<3>;
#address-Cells =<1>;
#size-cells =<0>;
};
};
};
};
UB960的寄存器值如下:
器件 ID 寄存器(0x00):0x64
RX_PORT_CTL 寄存器(0x0c):0xF
RX_PORT_STS1寄存器(0x4d):0x13
BCC_CONFIG 寄存器(0x58):0x5e
SER ID (0x5b):0x30
SER 别名 ID (0x5c):0x00
PORT_CONFIG 寄存器(0x6d):0x3c
我可以确认的是、有一个来自雷达的信号输出、但我无法读取 Sock 上的数据。
我的哪些配置为错误? 或者、我是否缺少已配置的寄存器?
您好,文强:
感谢您的耐心。
对于您提供的 DS90UB953-Q1寄存器值、我有以下问题:
-我看到您已将此设备配置为 CSI-2连续时钟。 此 CSI-2时钟配置是否与 AWR2243的 CSI-2时钟配置匹配?
对于 DS90UB960-Q1、我有以下问题:
- DS90UB960-Q1的 CSI-2时钟和数据通道配置是否与 SOC 的 CSI-2时钟和数据通道配置相匹配?
-您是否使用示波器/探头来 确认是否正在 DS90UB960-Q1的任一 CSI-2端口上输出 CSI-2数据?
从共享的寄存器数据可以看出、DS90UB953-Q1与 DS90UB960-Q1之间的链路成功。 因此、数据在通过链路传输时应该不会出现问题。 为了进一步了解任一器件是否存在任何潜在的配置问题、我需要检查所有寄存器的配置。 您能否导出并发送 DS90UB960-Q1和 DS90UB953-Q1的所有寄存器的寄存器数据?
此致、
肯尼思
尊敬的 Kenneth Arnold:
感谢您的回复!
DS90UB953-Q1的4个 GPIO 端口未连接。
DS90UB953-Q1正向通道的时钟模式为"非同步内部模式"。
DS90UB953-Q1寄存器:
30 00 72 4b 00 18 21 28 Fe 1e 10 7f 7f 01 f0 00
00 00 00 00 00 20 18 3c 80 62 62 62 00 00 00 00
00 00 00 00 02 00 67 33 01 00 00 00 00 00 00
00 20 09 04 00 10 00 64 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20 c0 45 00 00 00 07 07 07 02 00 00 00 00
00 2a 00 10 0f 8b 00 64 00 00 00 00 00 00 00
00 00 00 25 00 00 00 00 00 00 00 E4 00 00 00 00 00
00 00 00 00 00 00 00 90 00 00 00 00 05 00 00 00 00
32 E3 64 01 00 00 00 00 00 00 03 02 00 00 0f
00 0d 0e 0d 0e 10 42 10 10 03 01 00 00 00
00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5F 55 42 39 35 33.
DS90UB960-Q1寄存器:
64 00 1e 40 c0 01 00 1C 10 7a 7a 0f 00 02 ff
00 00 00 00 00 00 00 00 01 61 A8 E3 dd 00 04 0c.
00 03 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 01 43 00 00 00 00 00 00 00 00 00 00 00 00 00
00 A9 71 01 00 20 00 00 00 12 01 03 14 37.
14 00 00 03 00 00 00 00 5e 00 30 00 50 00
00 00 00 00 00 80 c0 00 00 00 00 00 003c 8a 88
2B 2c 00 24 17 70 C5 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 16 01 16 27 8d 27 A6 00 00 00 00 00 00 00
00 00 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00
00 0f 00 08 25 00 18 00 9c 33 83 74 80 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 43 94 03 60 f2 00 02 00 01 00 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5F 55 42 39 36 30 00 00 00 00 00 00 00 00 00 00
此致、
周文强
您好,文强:
感谢您发送 寄存器数据。 我将查看寄存器数据、让您知道我是否识别出可能导致您所看到问题的任何寄存器配置。
为了 确定为何无法在 SoC 上读取数据、我还建议您先尝试一下、看看当 解串器图形发生器生成数据时 SoC 是否可以读取这些数据。 这样做可以帮助我们确定问题是 由串行器/图像传感器的配置还是解串器/SoC 的配置引起的。 更多有关如何使用 DS90UB960-Q1图形发生器功能的信息、建议您参阅 DS90UB960-Q1数据表的第7.5.12节。 有关模式生成脚本的示例、您还可以参阅本应用手册的第7.1.11节:
https://www.ti.com/lit/an/snla267a/snla267a.pdf
本应用手册专门 介绍了 DS90UB954-Q1、但与图形发生器相关的一些原理也适用于 DS90UB960-Q1。
此致、
肯尼思
尊敬的 Kenneth Arnold:
感谢您的回复!
我使用以下函数来设置 UB960的寄存器。
静态 int ub960_colorbar_pattern (结构 ub960 *self)
{
int err = 0;
试用(err、regmap_write (self->map、UB960_REG_IND_ACC_CTL、0x0));
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x01));// PGEN_CTL
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x01));// enagle PGEN
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x02));// PGEN_CFG
试用(err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x24));//发送色条图形、4个色条、4个字节
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x03));// PGEN_CSI_DI
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x2A));// RAW8:0x2A RAW16:0x2E
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x04));// PGEN_LINE_SIZE1
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x17));// 0x1770=6000
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x05));// PGEN_LINE_SIZE0
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x70));//
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x06));// PGEN_BAR_SIZE1
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x05));// 0x05dc=1500
试用(err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x07));// PGEN_BAR_SIZE0
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0xdc));//
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x08));// PGEN_ACT_LPF1
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x00));//
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x09));// PGEN_ACT_LPF0
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x24));// 0x24=36
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x0a));// PGEN_TOT_LPF1
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x00));//
试用(err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x0B));// PGEN_TOT_LPF0
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x24));// 0x24=36
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x0c));// PGEN_LINE_PD1
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x0B));//
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x0d));// PGEN_LINE_PD0
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x93));//
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x0E));// PGEN_VBP
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x00));//
try (err、regmap_write (self->map、UB960_REG_IND_ACC_ADDR、0x0F));// PGEN_VFP
try (err、regmap_write (self->map、UB960_REG_IND_ACC_DATA、0x00));//
try (err、regmap_write (self->map、UB960_REG_FWD_CTL1、0xF0));
试用(err、regmap_write (self->map、UB960_REG_CSI_CTL1、0x01));
返回错误;
}
四个寄存器的值为:μ F
CSI_PORT_SEL=0x1、FWD_CTL1 = 0xf0 CSI_PLL_CTL = 0x8 CSI_CTL = 0x1
但是、示波器仍然没有检测 UB960的 CSI0_CLKN 和 CSI0_CLKP 处的信号。
这样做的原因是什么?
您好,文强:
此致、
Cindy.
您好,文强:
如果在960或953上启用 patgen、只有960会有 CSI-2输出。
此致、
Cindy.
static int pattern_generator (struct regmap *map)
{
int err = 0;
try (err、regmap_write (map、0xB0、0x0));
try (err、regmap_WRITE(map、0xB1、0x01));// PGEN_CTL
try (err、regmap_write (map、0xB2、0x01));// enagle PGen
try (err、regmap_WRITE(MAP、0xB1、0x02));// PGEN_CFG
try (err、regmap_write (map、0xB2、0x33));//发送色条图形、4个色条、4个字节
try (err、regmap_WRITE(map、0xB1、0x03));// PGEN_CSI_DI
Try (err、regmap_write (map、0xB2、0x24));// 0x24:RGB888 0x2A:RAW8 0x2E:RAW16
try (err、regmap_write (map、0xB1、0x04));// PGEN_LINE_SIZE1
try (err、regmap_write (map、0xB2、0x0F));//
try (err、regmap_write (map、0xB1、0x05));// PGEN_LINE_SIZE0
try (err、regmap_write (map、0xB2、0x00));//
try (err、regmap_write (map、0xB1、0x06));// PGEN_BAR_SIZE1
try (err、regmap_write (map、0xB2、0x01));//
try (err、regmap_write (map、0xB1、0x07));// PGEN_BAR_SIZE0
try (err、regmap_write (map、0xB2、0xe0));//
try (err、regmap_WRITE(map、0xB1、0x08));// PGEN_ACT_LPF1
try (err、regmap_write (map、0xB2、0x02));//
try (err、regmap_WRITE(map、0xB1、0x09));// PGEN_ACT_LPF0
try (err、regmap_write (map、0xB2、0xd0));//
try (err、regmap_write (map、0xB1、0x0a));// PGEN_TOT_LPF1
try (err、regmap_write (map、0xB2、0x04));//
try (err、regmap_write (map、0xB1、0x0B));// PGEN_TOT_LPF0
try (err、regmap_write (map、0xB2、0x1a));//
try (err、regmap_write (map、0xB1、0x0c));// PGEN_LINE_PD1
try (err、regmap_write (map、0xB2、0x0c));//
try (err、regmap_write (map、0xB1、0x0d));// PGEN_LINE_PD0
try (err、regmap_write (map、0xB2、0x67));//
try (err、regmap_WRITE(MAP、0xB1、0x0E));// PGEN_VBP
try (err、regmap_write (map、0xB2、0x21));//
try (err、regmap_write (map、0xB1、0x0F));// PGEN_VFP
try (err、regmap_write (map、0xB2、0x0A);//
返回错误;
}
UB960寄存器的值:
64 00 1e 40 d0 01 00 1C 10 7a 7a 04 00 02 ff
00 00 00 00 00 00 00 00 00 80 61 A8 E3 dd 00 04
B0 03 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 01 43 01 00 00 00 00 00 00 00 00 00 00 00
00 A9 71 01 00 00 20 00 00 00 12 24 83 04 62
8F 00 00 04 00 00 00 5a 00 30 84 A8 50 00
00 00 00 00 00 A8 C4 00 00 00 00 00 00 00 7c 8a 88
AB AC aa 02 d0 0f 00 C5 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 2f 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00
1C 13 1f 08 25 00 18 00 9c 33 83 74 80 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 43 94 17 60 f2 00 02 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5F 55 42 39 36 30 00 00 00 00 00 00 00 00 00 00
UB953 寄存器的值:
30 00 73 4b 00 18 41 28 Fe 1e 10 7f 7f 06 34 00
00 00 00 00 00 20 18 3c 80 62 62 62 00 00 00 00
00 00 00 00 02 00 67 33 01 00 00 00 00 00 00
00 20 09 04 00 12 00 64 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20 c0 45 00 00 00 00 07 07 07 00 00 00 00 00
00 2a 00 10 0f 8b 00 64 00 00 00 00 00 00 00
00 00 00 25 00 00 00 00 00 00 00 E4 00 00 00 00 00
00 00 00 00 00 00 00 90 00 00 00 00 00 07 00 00 00
32 E3 64 01 00 00 00 00 00 00 06 08 00 26 00 10.
00 11 10 0e 0f 10 42 10 10 03 01 00 00 00
00 0f 0A 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5F 55 42 39 35 33.
添加以下配置:
ERR = regmap_write (info->ub960、0x32、0x01);// CSI_PORT_SE val:0x01、0x12
ERR += regmap_write (info->ub960、0x20、0xF0);// FWD_CTL1
ERR += regmap_write (info->ub960、0x1f、0x08);// CSI_PLL_CTL
ERR += regmap_write (info->ub960、0x33、0x01);// CSI_CTL1
UB960 寄存器的值:
64 00 1e 40 c0 01 00 1C 10 7a 7a 04 00 02 ff
00 00 00 00 00 00 00 00 00 80 61 A8 E3 dd 00 04 08
F0 03 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
00 A9 71 01 00 00 20 00 00 00 12 24 83 04 74
F5 00 00 04 00 00 00 5a 00 30 84 A8 50 00
00 00 00 00 00 A8 C4 00 00 00 00 00 00 00 7c 8a 88
AB AC aa 02 d0 0f 00 C5 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00
00 0f 0A 08 25 00 18 00 9c 33 83 74 80 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 43 94 17 60 f2 00 02 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5F 55 42 39 36 30 00 00 00 00 00 00 00 00 00 00
您好,文强:
这个 Patgen 脚本看起来是正确的、只需确保输出数据格式与 SOC 所期望的格式匹配即可。
我看到960寄存器0x1F = 0x08以使用内部时钟、但我建议您尝试切换到0x1F = 0x00以使用外部时钟(默认)。
对于960寄存器0x34、请尝试禁用 CSI 周期性偏斜校准、因为如果 SoC 未配备处理这种情况、可能会出现问题。
如果仍有问题、能否向我发送960和953原理图、让我确保没有问题?
此致、
Cindy.