美信Maxim Integrated-MAX96752通信及寄存器配置

        详情请参考官方文档。

一、设备地址:

二、发送格式

间隔10微秒

三、寄存器配置排序

        除了GMSL链路和视频吞吐量所需的测序外,还有GMSL设备中特性的寄存器配置。寄存器配置序列分为组。配置组必须按照下面描述的顺序完成,但是每个组中的配置是灵活的。

※Power Up*设备上电PWDNB升高

※Link Reset*

        设置RESET_LINK = 1。在配置期间保持链路处于复位状态,以防止与GMSL链路的远端发生多主I2C冲突。

GMSL PHY Config

       如果需要,配置GMSL PHY和优化。

Color Mapping Config -> LUT配置并使用颜色查找表

(1)概述

①使用颜色查找表(LUT)进行RGB像素数据转换原理图

②LUT寄存器信息

(2)配置

①编写LUT翻译值。

LUT 可以在上电后的随机值分配后恢复为 1:1 的直通色彩映射。例如,使用以下编程模式将 oLDI 解串器的红色 LUT 恢复为 1:1 映射值:

• 0x1000 = 0x00
• 0x1001 = 0x01
• 0x1002 = 0x02
• …
• 0x10FF = 0xFF

②回读LUT翻译值(以确保正确的编程)。

LUT 翻译值在 GMSL2 设备中不会正确读取(例如,0xFF),除非反序列化器接收到有效的视频数据。在接收到有效视频数据之前,内部块将处于断电状态。

然而,如果收到 I2C/UART 的确认(ACK)以确认寄存器写入,则对 LUT 的写入始终是有效的(即使不存在有效的视频数据)。要通过 I2C/UART 读取确认 LUT 值,则需要有效的视频数据。

③启用LUT。

尽管 GMSL2 设备中的 LUT_A、LUT_B 和 LUT_C 具有独立的使能寄存器,但 LUT 无法部分使能。在单个视频通道中,所有 LUT(即 LUT_A、LUT_B 和 LUT_C)必须一起使能/禁用以确保正常工作。

如果需要配置单色 LUT,但其他不需要,则使用所需的转换值配置单个 LUT,其余 LUT 使用 1:1 映射值。例如,如果只需要红色转换,则将所需的转换值填入 LUT_A,并将绿色(LUT_B)和蓝色(LUT_C)填入线性 1:1 转换值。

Watermark配置和启用水印前视频吞吐量

I2S Config配置I2S路由、流ID、端口使能

※oLDI Config*配置oLDI端口-单/双,通道交换等。

(1)概述

OpenLDI (oLDI) 是一种高带宽数字视频接口,使用低压差分信号传输(LVDS)以在不进行数字-模拟转换或复杂解码协议的情况下传输数字视频。GMSL2 oLDI 解串器将单链路或双链路 GMSL2 输入转换为单个或双个 oLDI 视频输出,具有灵活的输出选项。

oLDI 输出配置:

•单端口(4 或 8 条通道)或双端口(2x4 条通道)

• 1x4、2x4 或 1x8 oLDI 输出通道配置 每个端口支持高达 150MHz 的像素时钟频率(双端口模式下为 300MHz)。有关更多信息,请参阅带宽效率优化子节。

GMSL2 oLDI 解串器从连接的串行器的的视频输入的跟踪和测量时钟频率生成 oLDI 时钟输出。下图显示了带有 oLDI 时钟的 LVDS 脉冲位置。

(2)配置
(2-1)寄存器

        为了在 oLDI 分离器模式下正确操作,显示时序参数必须在 oLDI 分离之前有偶数个 PCLK 周期。如果不这样做,两个 LVDS 端口的行起始点之间的同步可能会失真。

        将 LVDS 端口的输出格式设置为 OLDI_FORMAT,并使用连接显示器的格式以确保正确的颜色映射。

        注意:下表中的所有寄存器(除了OLDI SSEN)只能在VID_LOCK = 0时设置。在双OLDI应用中,寄存器OLDI1(0x1CE)中的OLDI_SPL_POL位必须始终设置为0。

oLDI 端口配置寄存器

oLDI 输出极性反转和引脚映射寄存器

        下表包含用于输出极性反转和输出引脚映射的寄存器。极性是逐通道反转的。引脚映射寄存器允许对OLDI输出端口和通道的引脚分配进行编程。除非TCON或定时转换器设备需要这样的自定义更改,否则不建议更改这些寄存器的默认设置。

PRBS 寄存器

LUT 寄存器

用于启用 LUT 的寄存器;有关更多信息,请参考颜色查找表(LUT)部分

GPIO 同步信号输出

       如果启用下表中的寄存器,则可以在 GPIO01 上查看同步信号。有关引脚映射的详细信息,请参考设备特定的数据表。

(2-2)编程示例
  • 在单一 oLDI 输出处流媒体
    oLDI 反序列化程序中执行以下写入:
    1-OLDI_OUTSEL = 选择 LVDS 输出端口(A 或 B)以输出 LVDS 视频数据
  • 2-OLDI_FORMAT = 选择 LVDS 端口的映射格式(oLDI 或 VESA)
  • 3-OLDI_4TH_LANE = 选择 24 位或 18 位输出(即 4 车道或 3 车道输出端口)
  • 4-OLDI_DUP = 选择是否在两个 LVDS 端口上重复同一视频

  • 双 oLDI 输出流式传输
    在 oLDI 反序列化程序中执行以下写入:
    1-OLDI_FORMAT = 选择 LVDS 端口的映射格式(oLDI 或 VESA)
  • 2-OLDI_4TH_LANE = 选择 24 位或 18 位输出(即 4 车道或 3 车道输出端口)

  • 3-OLDI_SPL_MODE = 3

  • 4-OLDI_SPL_EN = 1

  • 5-OLDI_SWAP_AB = 将偶数或奇数像素的交换路由到端口 A 和 B

  • 6-OLDI_SPL_POL = 0

  • ③ 交换端口通道映射并反转信号

    交换端口 A 的 1 号和 2 号通道,并反转 2 号通道的极性。在 oLDI 反序列化器中执行以下写入:

    1-LANE_SEL_A1 = 2 (通道 1 引脚输出内部通道 2)

    2-LANE_SEL_A2 = 1 (通道 2 引脚输出内部通道 1)
    3-LANE_INV_A2 = 1(反转通道 2 引脚的极性)

    Main I2C / UART Config and CRC 默认配置的更改(例如CRC ARQ)。

    I2C / UART PT Config 旁路通道的配置和启用

  • (1)概述

           I2C 控制通道是通过 GMSL 链路提供对序列化器(serializer)和反序列化器(deserializer)寄存器的访问。这个控制通道的引入,增加了系统的灵活性,允许在主微控制器所在的一方访问序列化器和反序列化器的寄存器。对于相机应用来说,通常主微控制器位于反序列化器端;而对于显示应用,主微控制器则通常位于序列化器端。

    除了主 I2C 控制通道外,系统还支持透传 I2C 通道。这些透传通道允许通过 GMSL 链路发送 I2C 数据,并可以访问远端设备,但无法访问序列化器或反序列化器的寄存器。

    在修改序列化器或反序列化器的 I2C 配置时,例如启用或禁用 I2C 通道时,从写入确认(ACK)到下一次操作需要有 10 微秒的延时。

    (2)端口访问与路由

    下表列出了 MAX96752 中用于 I2C 主控制通道和透传通道的 MFP 引脚功能。

    引脚

    默认功能

    I2C 功能

    备注

    40

    GPIO03

    SDA1

    通过寄存器启用 I2C 透传通道

    42

    GPIO05

    SCL1

    通过寄存器启用 I2C 透传通道

    27

    SDIR

    SDA2

    通过寄存器启用 I2C 透传通道

    29

    WSIR

    SCL2

    通过寄存器启用 I2C 透传通道

    8

    SDA_RX

    N/A

    通过 CFG0 引脚选择 I2C 或 UART 功能

    9

    SCL_TX

    N/A

    通过 CFG0 引脚选择 I2C 或 UART 功能

    1

    I2CSEL

    I2CSEL

    上电时选择 I2C 或 UART 功能,拉高选择 I2C

    设备上电后,需要通过 CFG0 引脚来设置设备为 I2C 模式。上述 MFP 表中的功能名称以及接下来的 I2C 配置部分假设设备已配置为 I2C 模式。

    默认情况下,主 I2C 控制通道的 SDA 和 SCL 线路通过 MFP8 和 MFP9 引脚输出。如果需要禁用主控制通道的线路访问,可以通过设置寄存器 0x1 中的 DIS_LOCAL_CC 字段来禁用;如果需要禁用远程设备的控制访问,可以设置 DIS_REM_CC 字段。

    (3) I2C 寄存器

    以下是用于启用/禁用主 I2C 控制通道和透传 I2C 通道的相关寄存器。

    寄存器地址

    位字段名称

    位数

    默认值

    说明

    0x01

    IIC_1_EN

    4

    0b0

    启用 I2C 透传通道 1

    0x01

    IIC_2_EN

    5

    0b0

    启用 I2C 透传通道 2

    0x02

    DIS_LOCAL_CC

    5

    0b0

    禁用主 I2C 控制通道的 SDA 和 SCL 引脚连接

    0x02

    DIS_REM_CC

    4

    0b0

    禁用通过 GMSL 链路访问远程设备控制通道

    0x03

    I2CSEL

    4

    0b0

    选择主控制通道使用 I2C 或 UART。上电时由 I2CSEL 引脚配置

    (4) 启用 I2C 透传通道

    在启用 I2C 透传通道之前,必须先禁用其他 MFP 功能。在 MAX96752 中,用户可以将第一个 I2C 透传通道(SDA1_RX1 / SCL1_TX1)引出到引脚 40 和引脚 42。第二个 I2C 透传通道(SDA2_RX2 / SCL2_TX2)可以通过编程引出到引脚 27 和引脚 29。透传通道的启用通过设置寄存器 0x1 中的 IIC_1_EN 和 IIC_2_EN 位来完成。

    (5) 控制通道编程示例

    以下是启用 I2C 透传通道 1 的寄存器写入示例,适用于 MAX96751 和 MAX96752:

    # DES I2C 地址 = 0x90

    # SER I2C 地址 = 0x80

    # 启用反序列化器上的 I2C 透传通道 1

    0x90, 0x0001, 0x12

    # 启用序列化器上的 I2C 透传通道 1

    0x80, 0x0001, 0x58

    在这个示例中,反序列化器(DES)的 I2C 地址为 0x90,序列化器(SER)的 I2C 地址为 0x80。通过设置相应的寄存器值,启用反序列化器和序列化器上的 I2C 透传通道 1。

  • SPI Config and CRC 配置和使能SPI通道

    GPIO Config 配置和使能GPIO通道

    V-sync Output Config

           配置和启用V-Sync输出是一个调试功能。必要时启用。不应用于工作。

    Interrupt handling (ERRB)

    启用选定的错误到ERRB引脚,以满足系统错误处理和ASIL要求。根据所选的配置,可能需要清除初始条件(可能需要在链路锁定后进行)ERRB 引脚可用于通知系统出现欠压和过压情况。可用的每个监视功能都可以根据上述描述单独路由到 ERRB 引脚,详细介绍了各种电压监视器。用户可配置的寄存器字段如下所列。当这些寄存器字段设置为 1 时,启用将相关的欠压/过压情况报告到 ERRB 引脚(即,错误条件将使 ERRB 低电平有效。有关更多信息,请参阅 GMSL2 错误报告(ERRB 引脚)部分。

  • SSC Config and Enable

  •     配置扩频时钟。反序列化程序必须在序列化程序之前配置。

    oLDI输出端口可以被编程为具有0.5%的中心扩频时钟(SSC),频率为20kHz到40kHz的三角调制频率。可以通过配置config_spread_bit_ratio位域(寄存器DPLL_3)将扩频百分比编程到最多4%。

    注意:oLDI的SSC模式编程独立于GMSL高速时钟的SSC模式。

  • ※Release Link Reset* Set RESET_LINK = 0

  • LINK Lock*通过寄存器或引脚观察LINK LOCK

  • ※Video Lock*

    如果有视频吞吐量,请观察VIDEO LOCK。“视频锁定”表示反序列化器有视频输出。
  • 四、状态和调试寄存器

    1.状态和错误位

    以下寄存器位提供与LVDS输出相关的状态和错误信息。

  • - VID_LOCK – (寄存器 VIDEO_RX8) – 指示为所选通道ID接收到有效的视频流,视频管道已锁定,并且视频流已通过LVDS正确恢复以驱动显示。

    - VID_PKT_DET – (寄存器 VIDEO_RX8) – 指示解串器检测到所选流ID的视频数据包流。

  • - DUAL_OLDI_AUTO_RST_ALIGNED – (寄存器 VRX46) – 此位域报告在OLDI输出检测到未对齐后OLDI输出是否已重置。仅在DUAL_OLDI_AUTO_RST_ALIGN = 1时适用。

  • - OUT_STUCK_ERR_FLAG – (寄存器 INTR3) – 当OLDI输出卡在低电平或高电平时,标志被断言。通过OUT_STUCK_ERR_OEN位启用。如果输出卡住事件已解决,则读取时标志被清除。

    - OUT_OPEN_ERR_FLAG – (寄存器 INTR3) – 当OLDI输出断开时,标志被断言。通过OUT_OPEN_ERR_OEN位启用。如果输出断开事件已解决,则读取时标志被清除。

    有关更多信息,请参阅错误标志部分。

    以下视频接收器状态寄存器和中断也可以使用:

    - 行CRC中断(LCRC_ERR_FLAG)。

    - 视频块长度错误中断(VID_BLK_LEN_ERR)。

    - 视频序列号错误(VID_SEQ_ERR)。

    2.调试步骤

    如果OLDI解串器未如预期运行,请执行以下步骤:

    1. 确保没有超过最小和最大频率限制。

    2. 验证解串器是否检测到有效的视频流(VID_PKT_DET)。

    3. 验证是否为所选通道ID接收到并恢复了有效的视频流,并且通过LVDS正确恢复(VID_LOCK)。

    4. 确保OLDI拆分控制信号正确映射到DE信号的下降沿(OLDI_SPL_MODE和OLDI_SPL_POL)。

    5. 确保OLDI端口A和B正确映射(OLDI_SWAP_AB)。

    6. 如果在双OLDI模式应用中像素在OLDI传输端口之间交换,设置DUAL_OLDI_AUTO_RST_ALIGN = 1。

    7. 检查第四条LVDS通道是否未为24位视频禁用(OLDI_4TH_LANE)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木不迷茫(˵¯͒¯͒˵)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值