PG236_hdmi_rx_v3_1_registers

张开发
2026/4/16 22:46:13 15 分钟阅读

分享文章

PG236_hdmi_rx_v3_1_registers
HDMI RX 子系统 v3.1 寄存器地图逐寄存器位级说明Executive Summary:HDMI 1.4/2.0 接收子系统 v3.1 (HDMI Rx SS v3.1) 是一个层次化 IP集成了 HDMI RX 核心、视频时序检测 (VTD)、DDC/EDID 控制、音频、AUX 信息帧、TMDS 链路状态等模块【62†L8-L13】。Xilinx 官方文档PG236 v3.1建议通过驱动配置 IP 而非直接寄存器编程但我们根据驱动源码xv_hdmirx_hw.h及子模块规格提供了一份完整的寄存器映射表。本文按子模块列出所有 AXI4-Lite 寄存器偏移地址 (HEX)、绝对地址占位 (BASE_ADDRoffset)、寄存器名、位域名称与功能、复位值、访问类型等并附来源引用。子模块地址范围功能概述Core0x0000–0x00BF主控寄存器版本、控制、中断、PIO、定时器【68†L1136-L1144】【70†L1282-L1290】Video Timing0x00C0–0x00FF视频定时检测 (VTD) 寄存器【70†L1330-L1339】【70†L1351-L1359】DDC/EDID0x0100–0x013FDDC 控制/状态EDID 访问寄存器【70†L1399-L1414】InfoFrame/AUX0x0140–0x017FAUX InfoFrame 控制与状态【74†L1533-L1541】【74†L1562-L1571】Audio (AUD)0x0180–0x01BF音频控制 (N/CTS) 和状态寄存器【72†L1611-L1619】【72†L1643-L1651】Link Status0x01C0–0x01FFTMDS 错误计数、链路就绪等【72†L1661-L1670】【72†L1678-L1685】EDID RAM0x0400–0x04FF256-byte EDID RAM可通过 DDC 接口读写固定容量【74†L1596-L1604】【72†L1707-L1711】InfoFrames——包括 AVI/GCP/SPD 信息帧见 AUX 状态寄存器Debug/CRC——内部调试寄存器未公开建议使用 VTC/ILA 调试。TMDS 链路LNKSTA 寄存器 (0x1C0-0x1DC)音频 (AUD)AUD 寄存器 (0x180-0x19C)AUX InfoFrameAUX 寄存器 (0x140-0x154)DDC/EDIDDDC 控制 (0x100-0x13C)视频时序 (VTD)VTD 寄存器 (0xC0-0xF8)核心模块Version (0x00,0x04)PIO 控制 (0x40-0x70)Timer (0x80-0x94)HDMI RX Subsystem v3.1核心寄存器 (Core: 控制/状态/中断)0x0000 —VER_ID偏移/绝对BASE0x0000【68†L1136-L1140】说明版本模块标识寄存器 ID (只读)。位域[31:0] VER_ID(硬件版本ID)。复位0x0 (未说明具体值)访问RO来源驱动头文件【68†L1136-L1140】、PG236 v3.1(一般未公开寄存器地图)。0x0004 —VER_VERSION偏移/绝对BASE0x0004【68†L1138-L1142】说明版本号寄存器 (只读)。位域[31:0] VER_VERSION(版本号)。复位0x0访问RO来源同上【68†L1138-L1142】。0x0040 —PIO_ID偏移BASE0x0040【68†L1148-L1152】说明并行 I/O 控制器 ID (只读)。位域[31:0] PIO_ID(一般为固定 ID, 驱动定义为0x2200【72†L1707-L1711】)。复位0x2200访问RO0x0044 —PIO_CTRL偏移BASE0x0044【68†L1150-L1153】说明并行 I/O 控制寄存器。位域[0] RUN使能 PIO (启动时钟)。[1] IE中断使能。复位0x0访问RW0x0048 —PIO_CTRL_SET,PIO_CTRL_CLR偏移BASE0x0048 / BASE0x004C【68†L1151-L1158】说明写1置位/清除PIO_CTRL寄存器位。位域同PIO_CTRL。访问WO (写1有效)0x0050 —PIO_STA(Status)偏移BASE0x0050【68†L1159-L1162】说明PIO 状态寄存器。位域[0] IRQ中断标志 (写1清)【68†L1196-L1199】。[1] EVT事件标志。复位0x0访问RO0x0054 —PIO_OUT偏移BASE0x0054【68†L1163-L1166】说明PIO 输出寄存器控制视频/音频路径。位域【68†L1202-L1209】【68†L1212-L1218】【68†L1230-L1234】[0] RESETHDMI RX 核复位写1硬件复位。[1] LNK_ENTMDS 链路使能 (HS/MODE)。[2] VID_EN视频输出使能。[3] HPD热插拔检测输出 (1HPD拉高)。[5:4] DEEP_COLOR色深 (0024bpp,0130bpp,1036bpp,1148bpp)【68†L1210-L1214】。[7:6] PIXEL_RATE像素时钟倍频指示 (HDMI 2.0 SCDC 指示)【68†L1211-L1214】。[9:8] SAMPLE_RATE音频采样率倍频 (0032k,0144.1k,1048k,11其他)【68†L1213-L1218】。[11:10] COLOR_SPACE色域 (00RGB,01YCbCr444,10YCbCr422,11YCbCr420)【68†L1213-L1218】。[12] SCRMTMDS扰码使能(1使能)【68†L1230-L1234】。[29] BRIDGE_YUV420桥接器YUV420模式(1使能)【68†L1230-L1234】。[30] BRIDGE_PIXEL桥接像素丢弃(1使能)【68†L1230-L1234】。复位0x0访问RW0x0058 —PIO_OUT_SET,PIO_OUT_CLR偏移BASE0x0058 / BASE0x005C【68†L1165-L1172】说明写1置位/清除PIO_OUT对应位。访问WO0x0060 —PIO_OUT_MSK偏移BASE0x0060【68†L1171-L1173】说明PIO_OUT掩码寄存器 (用于 AXI 写掩码)。位域[8:0] MASK(对应 PIO_OUT 位)访问RW (默认0)0x0064 —PIO_IN偏移BASE0x0064【68†L1174-L1176】说明PIO 输入状态寄存器。位域【68†L1249-L1257】[0] DET5V检测 (1检测到信号)【68†L1249-L1253】。[1] LNK_RDYTMDS锁定 (链路就绪)【68†L1250-L1253】。[2] VID_RDY视频流锁定 (VTC锁定)【68†L1251-L1254】。[3] MODE输出模式 (0RGB,1YCbCr)。[4:6] SCRMBL_LOCK[0..2]三个 TMDS 通道扰码锁定【68†L1257-L1264】。[7] SCDC_SCRAMBLER_ENSCDC 使能标志【68†L1266-L1270】。[8] SCDC_TMDS_RATIOSCDC TMDS时钟比特【68†L1266-L1270】。[9] ALIGNER_LOCK位对齐锁定【68†L1268-L1272】。[10] BRDG_OVERFLOW桥接 FIFO 溢出【70†L1275-L1280】【72†L1697-L1704】。访问RO0x0068–0x0070 —PIO_IN_EVT,PIO_IN_EVT_RE,PIO_IN_EVT_FE偏移BASE0x0068、0x006C、0x0070【68†L1178-L1185】说明PIO 输入事件中断寄存器写1清位。访问WO定时器 (Timer) 寄存器 (0x0080起)0x0080 ID【70†L1280-L1284】定时器模块 ID (RO)。0x0084 CTRL【70†L1284-L1292】控制寄存器 (RUN/IE位)RW。0x0088 CTRL_SET / 0x008C CTRL_CLR写1置位/清除 CTRL 位【70†L1285-L1292】。0x0090 STA【70†L1292-L1297】状态寄存器 (IRQ, 计数事件)RO。0x0094 CNT【70†L1295-L1297】计数寄存器 (可写入复位计数)RW。位域【70†L1302-L1309】RUN, IE, IRQ, CNT_EVT。视频时序寄存器 (VTD)视频定时检测模块寄存器位于 0x00C0~0x00FF【70†L1330-L1339】【70†L1344-L1352】偏移绝对地址寄存器位域描述复位访问0x00C0BASE0x00C0VTD_ID[31:0]VTD 模块 ID0x0RO0x00C4BASE0x00C4VTD_CTRLsee belowVTD 控制0x0RW0x00C8BASE0x00C8VTD_CTRL_SET—写1写入 CTRL—WO0x00CCBASE0x00CCVTD_CTRL_CLR—写1清除 CTRL—WO0x00D0BASE0x00D0VTD_STAsee belowVTD 状态0x0RO0x00D4BASE0x00D4VTD_TOT_PIX[31:0]总像素 (HTotal)0x0RO0x00D8BASE0x00D8VTD_ACT_PIX[31:0]有效像素 (HActive)0x0RO0x00DCBASE0x00DCVTD_TOT_LIN[31:0]总行数 (VTotal)0x0RO0x00E0BASE0x00E0VTD_ACT_LIN[31:0]有效行数 (VActive)0x0RO0x00E4BASE0x00E4VTD_VSW[31:0]垂直同步宽度0x0RO0x00E8BASE0x00E8VTD_HSW[31:0]水平同步宽度0x0RO0x00ECBASE0x00ECVTD_VFP[31:0]垂直前沿 (VFP)0x0RO0x00F0BASE0x00F0VTD_VBP[31:0]垂直后沿 (VBP)0x0RO0x00F4BASE0x00F4VTD_HFP[31:0]水平前沿 (HFP)0x0RO0x00F8BASE0x00F8VTD_HBP[31:0]水平后沿 (HBP)0x0ROVTD_CTRL位域【70†L1365-L1374】[0] RUN启动定时检测。[1] IE同步丢失中断使能。[2] FIELD_POL场极性配置。[3] SYNC_LOSS同步丢失检测。[15:8] TIMEBASE时间基准 (与定时器协作)【70†L1375-L1379】。VTD_STA位域【70†L1383-L1392】[0] IRQVTD 中断标志。[1] TIMEBASE_EVT时间基准事件。[3] VS_POL检测到的 Vsync 极性。[4] HS_POLHsync 极性。[5] FMT帧格式 (隔行/逐行)。[6] SYNC_LOSS_EVT同步丢失事件。视频信息宽高、帧率、色深等可从VTD_ACT_*获得分辨率PIO_OUT字段得到色深/像素率等。音频寄存器 (Audio)偏移绝对地址寄存器位域描述复位访问0x0180BASE0x0180AUD_ID[31:0]音频模块 ID (只读)0x0RO0x0184BASE0x0184AUD_CTRL[0] RUN, [1] IE音频控制启动、INT 使能0x0RW0x0188BASE0x0188AUD_CTRL_SET—写1 置位AUD_CTRL—WO0x018CBASE0x018CAUD_CTRL_CLR—写1 清除AUD_CTRL—WO0x0190BASE0x0190AUD_STATsee below音频状态 (活动、OVF等)0x0RO0x0194BASE0x0194AUD_CTS[31:0]HDMI CTS 值 (音频参数)0x0RW0x0198BASE0x0198AUD_N[31:0]HDMI N 值 (音频参数)0x0RWAUD_STAT 位域【72†L1643-L1652】[0] IRQ音频中断标志。[1] ACT_EVT音频激活事件。[2] CH_EVT通道状态变化。[3] ACT音频流激活标志。[12:8] AUD_CH音频通道数 (0x1F 掩码, 左移8)【72†L1651-L1657】。[15:13] AUD_FMT音频格式 (左移13)【72†L1653-L1657】。采样率和通道数也可从PIO_OUT中的采样率位 ([9:8] 位)和AUD_STAT的通道字段读取。TMDS 链路 / PHY 状态PIO_IN(0x0064) 状态位【68†L1249-L1257】[0] DET信号检测 (Cable)。[1] LNK_RDY链路锁定 (TMDS Ready)。[2] VID_RDY视频锁定 (VTC Ready)。[4:6] SCRAMBLE_LOCK0..2TMDS 3通道扰码锁定。其它 (SCDC Scrambler, TMDS比, 对齐锁定, overflow) 等【68†L1266-L1274】。链路错误计数 (Link Status, 0x01C0起)【72†L1661-L1670】【72†L1678-L1685】偏移寄存器描述访问0x01C0LNKSTA_ID模块 ID (只读)RO0x01C4LNKSTA_CTRL运行/错误清除控制 (RW)RW0x01C8LNKSTA_CTRL_SET写1置位控制WO0x01CCLNKSTA_CTRL_CLR写1清除控制WO0x01D0LNKSTA_STA状态 (IRQ/ErrMax)RO0x01D4LNKSTA_ERR0通道0错误计数 (RO)RO0x01D8LNKSTA_ERR1通道1错误计数 (RO)RO0x01DCLNKSTA_ERR2通道2错误计数 (RO)RO位域LNKSTA_CTRL提供[0] RUN启动计数[2] 清错误等【72†L1689-L1698】LNKSTA_STA[0] IRQ、[1] ERR_MAX等【72†L1697-L1704】。HDCP 相关寄存器如果 IP 启用了 HDCP则 HDCP 寄存器位于更高偏移超出基本 AXI4 区域。例如 HDCP1.4 模块位于BASE0x10000HDCP2.2 位于BASE0x40000等【17†L1-L9】。PG236 不公开具体寄存器建议使用驱动接口【72†L1661-L1670】【72†L1687-L1695】。EDID RAM 寄存器子系统提供 256 字节 EDID RAM地址范围BASE0x0400–0x04FF可通过 AXI 读写。EDID 通过 DDC 接口访问DDC_*寄存器在BASE0x0100起【70†L1399-L1408】提供读写指针DDC_EDID_SEG_PTR(0x0120)、DDC_EDID_WPTR(0x0124)、DDC_EDID_RPTR(0x0128)、DDC_EDID_DATA(0x012C)【70†L1401-L1414】。配置后主机读写 EDID 数据。PG236 指明 EDID RAM 不通过 AXI Lite 寄存器直接写入。InfoFrame / 包状态AUX 状态寄存器 (BASE0x0150) 报告 InfoFrame 接收情况【74†L1562-L1571】[1] NEW新包到达[2] ERR包错误[3] AVIAVI InfoFrame 有效[4] GCPGCP 有效。还包括 AVI 色域(AVI_CS)、VIC码(AVI_VIC) 和 GCP 色深/相位字段通过位域掩码抽取【74†L1583-L1602】。Debug 寄存器与 CRC子系统不公开独立的调试/CRC 寄存器。常用调试手段使用 VTC (VTD_STA) 验证时序。检查PIO_IN状态位锁定情况。Audio 状态寄存器 (AUD_STAT) 报告通道和错误。使用 Vivado ILA 捕获 TMDS/CLK 信号分析 CRC。Appendix调试建议 常见故障关键寄存器PIO_IN、VTD_*、AUD_STAT、LNKSTA_STA等用于诊断锁定情况和错误计数。常见问题TMDS 未锁定检查LNK_RDY、SCRAMBLER_LOCK视频无输出VID_RDY或VTD_ACT_*为0音频参数错误检查 N/CTS 与AUD_STATEDID 加载失败检查 DDC 状态。官方说明PG236 特别强调使用驱动配置不建议直接写寄存器【72†L1661-L1670】【72†L1697-L1704】。以上信息来源于 Xilinx 驱动源码与官方资料【68†L1136-L1144】【72†L1661-L1670】。参考资料Xilinx/AMD 官方 PG236 v3.1 (AXI4-Lite 接口章节)【62†L8-L13】Xilinx HDMI RX 驱动头文件 xv_hdmirx_hw.h【68†L1136-L1144】【74†L1555-L1564】【72†L1661-L1670】例程和解答库【72†L1661-L1670】等。请注意部分字段在官方文档未明确公开仅能从驱动源码或用户手册中推导故标注了来源。

更多文章