简介:面向视频处理与高速显示接口学习的DP技术文档,适合硬件工程师、PCB Layout人员及显示接口入门者系统梳理DisplayPort知识。内容从接口简介、标准与Mini-DP分类切入,梳理DP 1.0至2.0各版本带宽、MST、DSC、HDR等特性差异,并延伸到显示接口概述、数据包化传输原理、输出与接收端电路设计,以及眼图、I2C等测试要点,兼顾原理理解与原理图、PCB Layout参考。压缩包共1个docx文件,约1.93MB,按章节编排,便于按主题查阅和整理笔记。已有5737人学习,对接口选型、版本辨析和设计排错具有参考价值。
1. 一块 4K 输出板卡在评审会上:DP 接口为什么值得单独整理
硬件评审会上,一块带 4K 输出的板子卡住了:FPGA 的 DP 接口模块跑起来了,SerDes 也有波形,接上显示器却是一片黑。示波器量主链路差分对,眼图是开的;最后抓 AUX 才发现,辅助通道少了一组上拉,链路训练根本没有启动。这种问题的尴尬在于,它既不在协议文档里,也不在代码里,而在原理图某根线上。
这份 DP 接口资料就是为这类场景整理的:从 2006 年 DisplayPort 发布时的报文化设计、版本迭代到 2.0 的 80 Gbps,再落到预增强与均衡芯片的输入、输出两种用法,最后是眼图与 I2C 的测试方法。它更像一份可以被逐条对照的原理图与 PCB layout 汇总,做视频处理前端、多屏输出、显示模组或者板卡类项目的硬件工程师,基本能照着抄进自己的设计里。
2. DP 协议栈拆解:四条主链路、一条 AUX 与握手六步的分工
DP 和 HDMI 在用户视角差不多,但在板级视角差别很大。HDMI 有独立的 TMDS 时钟对,DP 没有——时钟从数据流里恢复出来,所以对走线等长、阻抗和抖动更敏感;HDMI 的 DDC 是一条相对简单的 I2C,而 DP 的 AUX 是一条双向半双工差分通道,不仅要读 EDID,还要读写 DPCD 寄存器、协商链路速率和电压摆幅。理解这个差异,才能解释为什么很多板子“线接对了但不亮”。
2.1 主链路、AUX 与 HPD:三条通道各自的职责边界
主链路是单向、高带宽、低延迟的信道,用来传未压缩的视频和音频。它由 1、2 或 4 对交流耦合、双端接的差分对组成,每一对叫一条 lane。每条 lane 自定时运行,原始码率可以是 1.62、2.7、5.4 Gbit/s,后来加到 8.1 Gbit/s,2.0 时代又引入 UHBR 的 10、13.5、20 Gbit/s。数据按 8b/10b 编码,也就是每 8 位消息编进 10 个符号,所以每条 lane 解码后的有效速率只有原始值的 80%:1.296、2.16、4.32 Gbit/s。所有使能的 lane 必须跑同一速率,链路的速率和像素时钟是解耦的,像素时钟靠 Mvid、Nvid 两个时间戳从链路符号时钟里重新生成。没有专门的时钟通道,时钟从数据流里提取,这一点直接决定了后面 layout 的很多约束。
AUX 通道是一条独立的双向半双工差分线,交流耦合,单一方向速率约 1 Mbit/s。它承担的是设定与控制:读 EDID 确认显示器能力、读 DPCD 知道对端支持几条 lane 和多高速率、写各种显示配置寄存器、读接收端状态寄存器。早期版本用 Manchester II 编码,1.2 之后换成 8b/10b,最大带宽从 2 Mbps 提到 720 Mbps。AUX 是握手的地基,AUX 不通,主链路再漂亮也不会出图。
HPD 是接收端指向源端的信号,三个作用:一是设备存在检测,接 3.3V 或拉高表示 sink 插入,拉低超过 2 ms 表示设备移除;二是中断请求,拉低 0.5 ms 到 1 ms 表示 sink 有事要说,源端再去通过 AUX 读 DPCD 里的 IRQ 向量寄存器判断中断类型;三是配合连接器上的电源引脚,按协议这路电源要支持 5V/0.5A,给本地设备供电。另外 DP 信号本身不兼容 DVI 和 HDMI,所谓双模 DP 是借外部无源转接头输出单链路 DVI 或 HDMI 1.2/1.4,靠转接头把 LVDS 电平转成 TMDS;VGA 和双链路 DVI 必须用有源转接,这一点在做兼容性宣称时容易说错。
2.2 从插上到出图:六步前置流程的顺序不能乱
设备插入后,DP 要走的不是一条命令,而是一串有严格先后顺序的事务,全部发生在 AUX 通道上:热插拔检测、读 DPCD、读 EDID、链路训练、发送 MSA、开始数据传输。顺序错了,后面的步骤拿到的就是脏数据。
第一步热插拔,HPD 被拉高,源端知道有新设备接入,开始发起 AUX 事务。第二步读 DPCD,源端向接收端要一份能力清单,内容包括 lane 数量、支持的最高链路速率、电压摆幅、预加重、均衡能力和时钟恢复参数。这一步决定了源端“能开多大”,也是链路训练前必须拿到的输入。第三步读 EDID,拿到的是显示器侧的信息:制造商、EDID 版本、屏幕尺寸、支持的色彩空间、支持的分辨率列表、原生分辨率和音频格式。源端据此决定送什么格式的内容,所以 EDID 读不全,最常见的结果就是分辨率掉档或者直接黑屏。
第四步链路训练,源端把自己选定的目标配置写进接收端的 DPCD,接收端按这个配置调整均衡,再把每个训练阶段的结果写回 DPCD,源端读回来判断是否通过,不通过就降速或者加预加重重试。这个过程是迭代的,一对支持多流功能的源端和接收端之间,一次完整的训练可能包含上百次读写操作,所以抓 AUX 日志时看到几百行记录是正常的。第五步发 MSA,主数据流属性,告诉接收端这路视频模式的详细时序信息,工程师的一项日常工作就是核对 MSA 里的参数和实际视频模式是否一致。第六步开始传数据,音频和 INFOFRAME 这些辅助信息放在可选的次级数据包里跟着走。如果源端支持多流,还会用边带消息跟下游的分支设备通信,获取各个 sink 的结构和能力。
这条链路里任何一个环节断掉,现象都是“黑屏”,但原因完全不同。所以排查时不要一上来就量主链路的眼图,先用 AUX 抓包看流程走到第几步停住,效率会高很多。
2.3 版本选型:带宽、DSC 与 8b/10b 编码的取舍
版本迭代的主线就是带宽和新特性。1.0 在 2006 年发布,最大总带宽 10.8 Gbps,有效数据率 8.64 Gbps,2 米线,现在已经废弃。1.1a 在 2008 年允许使用光纤等其他传输介质,把 HDCP 加进了内容保护,实际用得很少。1.2 在 2009 年底把每通道速率翻倍到 5.4 Gbps,总带宽 21.6 Gbps,有效 17.28 Gbps,支持 4K@60、3D 和多流;1.2a 在 2012 年加了自适应同步,让显示屏刷新率跟着源端指示走。1.3 在 2014 年引入 HBR3,每通道 8.1 Gbps,总带宽 32.4 Gbps,有效 25.92 Gbps,能跑 4K@120、5K@60、8K@30。1.4 带宽不变,但加了显示压缩流、前向纠错和高动态范围元数据包,音频提升到 32 声道 1536 kHz 采样率,8K@60 才真正可用。2.0 跳到 80 Gbps,编码从 8b/10b 换成 128b/132b,有效数据率 77.37 Gbps,单屏 16K@60、10K@60 无损、4K@240,双屏 4K@144。
| 版本 | 发布 | 每通道速率 | 最大总带宽 | 有效数据率 | 编码 | 典型能力 |
|---|---|---|---|---|---|---|
| 1.0 / 1.1a | 2006.5 / 2008.1 | 1.62、2.7 Gbps | 10.8 Gbps | 8.64 Gbps | 8b/10b | 2560×1600@60 |
| 1.2 / 1.2a | 2009.12 / 2012.5 | 增加 5.4 Gbps | 21.6 Gbps | 17.28 Gbps | 8b/10b | 4K@60、MST、3D、自适应同步 |
| 1.3 | 2014.9 | 增加 8.1 Gbps | 32.4 Gbps | 25.92 Gbps | 8b/10b | 4K@120、5K@60、8K@30 |
| 1.4 / 1.4a | 2016.3 / 2018.4 | 不变 | 32.4 Gbps | 25.92 Gbps | 8b/10b | 加 DSC、FEC、HDR 元数据,8K@60 |
| 2.0 | 2019.6 | 增加 UHBR 10/13.5/20 | 80 Gbps | 77.37 Gbps | 128b/132b | 16K@60、10K@60 无损、4K@240 |
选型时最容易犯的错是只看“最大分辨率”,不看编码开销和消隐开销。下面这段脚本用来做链路预算,把像素率换算成主链路需要的有效带宽,再反推需要几条 lane、跑在哪一档速率。
def stream_bandwidth(h_active, v_active, refresh, bpp=24, overhead=1.10): """估算一路视频流需要的主链路有效带宽(Gbit/s) h_active / v_active: 有效像素数 refresh: 刷新率,单位 Hz bpp: 每像素比特数,RGB888 取 24,RGB101010 取 30 overhead: 消隐与时序开销系数,1080p 取 1.05,4K 高刷一般取 1.10~1.15 """ pixel_rate = h_active * v_active * refresh * overhead # 像素率 Hz return pixel_rate * bpp / 1e9 # 比特率 Gbit/s # 8b/10b 编码下每档原始速率对应的单 lane 有效速率 lane_capacity = {1.62: 1.296, 2.7: 2.16, 5.4: 4.32, 8.1: 6.48} def pick_link(need_gbps): """从低到高尝试链路配置,返回第一个满足需求的组合""" for raw, eff in lane_capacity.items(): for n in (1, 2, 4): if n * eff >= need_gbps: return n, raw, n * eff return None need = stream_bandwidth(3840, 2160, 60, bpp=24, overhead=1.10) print(f"4K60 8bpc 需要有效带宽 {need:.2f} Gbit/s") print("推荐配置:%d lane @ %.2f Gbps,可用 %.2f Gbit/s" % pick_link(need))脚本里bpp和overhead是唯一需要按项目改的两个参数:做 10 位色深就把 24 换成 30,做高刷新率就把 overhead 往 1.15 靠。输出结果会告诉你 4K60 8 位色大约需要 13 Gbit/s 的有效带宽,两条 HBR2 lane 就够,四条 HBR 也够但功耗更高。一个设计良好的源端会尽量用更少的 lane 和更低的电压摆幅来降低功耗,这也是链路训练会从首选配置开始迭代、失败再降档的原因。日常 4K 用到 1.2 就够,8K 才是 1.4 加 DSC 的战场;2.0 的 80 Gbps 不是不能上,但要先算清楚线材、连接器和芯片三者的成本。
3. 输出端设计:FPGA SerDes 经预增强芯片到连接器的原理图落地
长距离传输必须对输出信号做预增强、对输入信号做均衡,所以中间要放一颗兼具这两种能力的芯片。资料里用的是一颗支持到 DP1.4b 的预增强与均衡二合一器件(型号 DP130),它既能当输出驱动,也能当输入均衡,同一颗料覆盖收发两个方向,BOM 上会省不少事。这一章讲它作为输出芯片时的原理图怎么画。
3.1 输出链路的分块与器件职责
整条链路分成三段:FPGA 内部的 DP 发送模块输出 SerDes 信号,经隔直电容进 DP130,DP130 做预增强后经隔直电容送到 DP 连接器。FPGA 已经内置 DP 模块的场合,这种接法最直接,省掉外部的编码和并串转换。
三段各自的职责要分清。FPGA 段负责打包、编码、并串转换和链路训练的状态机;DP130 段负责补偿通道损耗,通过调整预增强档位让信号在接收端还能张开眼;连接器段负责机械连接和 ESD 防护。做原理图评审时,我会把这三段的边界画出来贴在评审材料第一页,因为大部分低级错误都发生在“谁的电容该放哪边”这种边界问题上。
3.2 隔直电容、上下拉与 I2C 上拉的取值与摆放
输出侧有五处容易出错:差分输入、差分输出、辅助通道、串行总线和接口配置。
差分输入的隔直电容要放在驱动芯片端,也就是靠近 DP130 的一侧,因为 FPGA 输出的 SerDes 是交流信号,电容靠近接收端才能减少反射。差分输出的隔直电容同样要靠近连接器摆放,理由正好相反——输出信号要经过一段走线才到连接器,电容放在连接器端能把这段走线的直流电位问题挡在外面。辅助通道按 100Ω 差分控制,源端接 FPGA,同样用小电容隔直,接收端接连接器,这里要特别注意上下拉电阻,AUX 在空闲时需要有确定电平,上下拉漏贴会让链路训练在第一步就失败。
串行总线有两条。一条是 DDC 的 I2C,负责传 EDID,源端靠它识别显示器能力;另一条是 CTL 端的 I2C,是标准 I2C 总线,传除 EDID 之外的其他控制信号。两条都需要做 3.3V 上拉,输出侧的上拉电阻取 10K。ADDR 引脚用于多个芯片共用同一条 I2C 总线时区分地址,地址不同就可以挂在一起,这一点在多路输出的板子上很实用。
| 信号组 | 差分/单端 | 隔直电容位置 | 上拉 | 关键注意点 |
|---|---|---|---|---|
| 主链路输入 | 差分 | 靠近 DP130 输入端 | 无 | 电容容值一致,避免对内失配 |
| 主链路输出 | 差分 | 靠近 DP 连接器 | 无 | 四对走线同层同阻抗 |
| AUX | 100Ω 差分 | 源端小电容隔直 | 按参考设计上下拉 | 空闲电平必须确定 |
| DDC I2C | 单端 | 无 | 3.3V / 10K | 与 EDID 读取成功率直接相关 |
| CTL I2C | 单端 | 无 | 3.3V / 10K | 多芯片共用时靠 ADDR 分址 |
| HPD | 单端 | 无 | 按参考设计 | 拉低时序决定插拔识别 |
接口配置上,DP 连接器是金属座,要把金属座的接地和系统地进行隔离,不然外部设备的噪声和地电位差会顺着外壳灌进板内。同时因为它是外接接口,信号和电源上都要加 ESD 防护,器件尽量靠近连接器,让静电电流在进入芯片之前就被引走。
3.3 输出端原理图连线清单
把上面这些整理成一张连线表,画图时逐条对照,比凭记忆可靠。
| 网络 | 起点 | 终点 | 关键元件 | 备注 |
|---|---|---|---|---|
| ML_LANE0~3 | FPGA SerDes 输出 | DP130 差分输入 | 隔直电容 | 电容靠近 DP130 |
| ML_OUT0~3 | DP130 差分输出 | DP 连接器 | 隔直电容 | 电容靠近连接器 |
| AUX_CH | FPGA | DP 连接器 | 隔直电容、上下拉 | 100Ω 差分 |
| DDC_SCL/SDA | DP130 | DP 连接器 | 10K 上拉 | 传 EDID |
| CTL_SCL/SDA | 主控 | DP130 | 10K 上拉 | 传输其他控制信号 |
| HPD | DP 连接器 | 主控 | 按参考设计 | 中断与插拔共用 |
| DP_PWR | 连接器电源脚 | 板内 5V | ESD 器件 | 5V/0.5A |
这张表的价值在于评审时能一条条问:这条线的电容在哪、上拉有没有、ESD 放在哪。我见过最典型的一次翻车,就是 DDC 的上拉画在了 DP130 和主控之间,连接器那一侧反而没有,结果 EDID 读出来全是 0xFF。
3.4 输出端 PCB layout:阻抗、等长与地隔离
Layout 部分资料里只给了标题,实际做的时候按下面几条约束走。主链路四对差分按 100Ω 差分阻抗控制,对内两根线严格等长,对与对之间也要做等长补偿,误差控制在几个 mil 以内;参考平面必须完整,不能在差分对下方开槽或者跨分割,否则回流路径断了,眼图会莫名其妙地塌。隔直电容的焊盘会引入阻抗不连续,所以电容要放在走线尽量直的位置,焊盘下面挖空处理。
AUX 和主链路要拉开距离,避免主链路的高频能量耦合到 AUX 上导致误码;AUX 自身按 100Ω 差分走,长度不需要和主链路严格对齐,但也不要绕远。ESD 器件放在连接器焊盘和芯片之间,越靠近连接器越好,走线先经过 ESD 再到芯片。连接器的金属外壳地和系统地之间用磁珠或者电容做单点连接,别直接大面积铺铜连在一起,否则静电测试时很容易把整板的地电位带偏。
4. 接收端设计:均衡芯片旁路 AUX 与 HPD 两套接法的取舍
接收端的芯片还是同一颗,但用法完全不同:它不再驱动连接器,而是把连接器进来的信号均衡后送给 FPGA。这个方向最容易出问题的不是主链路,而是 AUX——很多人习惯性地把 AUX 也接到芯片上,结果链路训练根本起不来。
4.1 接收链路的信号流向与均衡芯片的功能边界
信号从 DP 连接器进来,四对差分先经隔直电容进 DP130 做均衡,均衡后的信号再经隔直电容送给 FPGA,电容靠近 FPGA 摆放。和输出侧一样,电容位置的原则是“靠近信号的接收方”。
芯片在这里承担的是补偿通道损耗,把经过线材和连接器衰减后的信号重新张开。速率越高、线越长,均衡档位就要越大。有些设计还会在这条链路上加一颗自适应重定时器,速率低于 1 Gbps 时自动配成重驱动、高于 1 Gbps 时自动配成重定时,用来对付长线或者级联场景;是否需要取决于线材长度和链路速率,短距离板上走线一般用不上。
4.2 AUX 直连 FPGA 与 HPD 两套接法怎么选
接收侧的 AUX 不走芯片,直接从连接器出来就送给 FPGA。具体接法是:AUX 从连接器出来后,一方面接到 DP 芯片的对应引脚,另一方面经小电容隔直送给 FPGA,同样按 100Ω 差分控制,上下拉不能漏。之所以要绕开芯片,是因为 AUX 是双向半双工的控制通道,芯片在这一侧不做转发,硬接进去反而会破坏握手时序。
HPD 在这个方向上提供了两种接法,选哪种取决于主控是否希望自己完全掌控插拔检测。一种是连接器 HPD 直接进主控,主控自己判断插入和中断;另一种是经过芯片再转给主控,由芯片完成一部分电平处理。两种都能工作,但如果主控需要精确测量 HPD 拉低的持续时间(比如 0.5 ms 到 1 ms 的中断窗口),建议走直连,中间多一级器件就会多一份延迟和不确定性。
串行总线在接收侧也有变化。DDC 的 I2C 在这个方向没有显示器信息要读,可以直接 NC;CTL 端的 I2C 仍然要接,负责其他控制信号交互,3.3V 上拉,上拉电阻取 2K——注意这里和输出侧的 10K 不一样,照抄输出侧的参数是常见错误。ADDR 的处理逻辑相同,多芯片共用总线时靠地址区分。
| 项目 | 输出侧做法 | 接收侧做法 | 差异原因 |
|---|---|---|---|
| 主链路隔直电容 | 输入靠芯片、输出靠连接器 | 输入靠芯片、输出靠 FPGA | 电容始终靠近接收方 |
| AUX 走向 | 源端接 FPGA,经电容到连接器 | 连接器出来后直连 FPGA,同时接芯片 | 双向控制通道不做芯片转发 |
| DDC I2C | 必须接,10K 上拉 | 可 NC | 接收侧无 EDID 可读 |
| CTL I2C | 10K 上拉 | 2K 上拉 | 两侧总线负载不同 |
| HPD | 连接器直出 | 两种接法可选 | 主控是否需要精确计时 |
4.3 接收端布局与地、ESD 处理
接收侧的 layout 原则和输出侧一致:主链路 100Ω 差分、对内等长、参考平面完整、隔直电容靠近 FPGA。差别在于接收侧的 ESD 更重要——连接器是整块板子最容易被静电打进来的地方,信号和电源都要加防护,器件靠近连接器放置。
连接器金属壳与系统地隔离这一条在两侧都要做,但接收侧还要额外考虑一点:如果整机是金属外壳,连接器外壳和机壳之间的搭接方式会影响静电泄放路径,最好在结构评审时就把这条确认掉,别等 EMC 测试才发现要改板。
5. DP 调试与常见问题排查:眼图测试点、AUX 抓包与五类翻车场景
5.1 眼图测试:测试点选错,测出来的结论就是错的
眼图测试的第一件事不是接示波器,是确认测试点。资料里给出了输入测试点和输出测试点的区分,输入侧对应 TTP2,输出侧对应 TTP4,两个测试点的眼图模板不一样,套错模板会出现“明明能显示但测试不过”的假故障。有些资料图里标的是另一颗重定时器型号的测试点划分,编号体系是通用的,具体套用时以手上芯片手册为准。
测试顺序一般是先测输入点再测输出点:输入点不过,说明通道损耗已经超出芯片的均衡能力,要么换线要么加均衡档位;输入过、输出不过,问题在芯片配置或者输出走线。眼图模板的判据要看模板的开口位置和高度,不要只盯着“眼睛张没张开”,模板不通过往往是因为某几个码型的过冲或者下冲超标。
5.2 AUX 抓包:比波形更快定位问题的方法
AUX 通道的通信记录是排查 DP 问题最高效的入口。抓包工具接在 AUX 上,记录源端和接收端之间的每一次读写,重点看三件事:读 DPCD 有没有返回、EDID 读回来的头部是不是 00 FF FF FF FF FF FF 00、链路训练迭代了几轮停在哪个速率档。资料里提到这类工具是所有 DP 相关工程师和设计师的必备设备,我完全同意——没有它,黑屏就只剩下“量波形”一条路。
抓下来的日志通常是十六进制字节流,人工看很痛苦。可以写个小脚本把事务按类型拆开,只保留关心的寄存器区间:
import re # 假设抓包工具导出的每行格式为: # [时间] CMD=0x09 ADDR=0x00101 LEN=0x10 DATA=00112233... LINE = re.compile(r"CMD=(0x[0-9A-Fa-f]+)\s+ADDR=(0x[0-9A-Fa-f]+)\s+LEN=(0x[0-9A-Fa-f]+)") def parse_aux_log(path, watch=(0x00100, 0x00200)): """按 DPCD 地址区间过滤 AUX 读写记录 CMD 高 4 位表示操作类型:0 为写,9 为读 watch 为关心的起始地址区间,默认只看链路配置和链路状态两段 """ lo, hi = watch hits = [] with open(path, encoding="utf-8") as f: for line in f: m = LINE.search(line) if not m: continue cmd, addr, length = (int(x, 16) for x in m.groups()) if lo <= addr < hi: op = "写" if (cmd >> 4) == 0 else "读" hits.append((hex(addr), op, length)) return hits for addr, op, length in parse_aux_log("aux_capture.log"): print(f"DPCD {addr} {op} 长度 {length}")脚本里watch区间要按实际关心的问题改:查链路训练就盯链路配置和链路状态两段寄存器,查 EDID 就换成 DDC 那一段。把日志过滤成几十行之后,链路训练在第几档速率失败、接收端回的训练结果是什么,一眼就能看出来。
5.3 常见问题排查:五条最容易翻车的点
现象一:主链路有波形,显示器一直黑屏。原因多半在 AUX,最常见的是上下拉漏贴或者阻值贴错,导致 AUX 空闲电平不确定,源端发出去的读 DPCD 请求没有回应。解决办法是先不插显示器,量 AUX 两根线的空闲电平,确认在规定的共模范围内,再插上显示器抓一次握手日志,看第一步读 DPCD 有没有返回。
现象二:链路训练到高速率档就失败,降到低速率档就正常。原因是通道损耗超出当前预增强或均衡档位的补偿能力,或者差分阻抗没控住。解决办法是先把预增强和均衡往上调一档试,如果能过就说明是通道损耗问题;调档无效就要回头查走线阻抗和参考平面,尤其是隔直电容焊盘处的阻抗不连续。
现象三:插拔时好时坏,重新插一次就正常。通常是 HPD 的时序问题:拉低时间不够 2 ms 被当成抖动,或者 HPD 上的滤波电容太大,把 0.5 ms 的中断脉冲吃掉了。解决办法是把滤波电容换小,必要时在 HPD 上加一级缓冲,保证边沿干净。
现象四:同一块板子,接 A 显示器正常,接 B 显示器不亮。优先怀疑 EDID:读回来的数据不完整或者校验和错误,源端会选择保守的默认模式,运气不好就黑屏。解决办法是抓 DDC 上的 I2C 波形,确认上拉电阻和总线速率,再对比两台显示器的 EDID 长度和扩展块数量。
现象五:实验室一直正常,到了现场批量出问题。大概率是 ESD 或地处理不到位,连接器金属壳和系统地直接连通,外部设备的静电顺着外壳打进来。解决办法是复查连接器的地隔离和 ESD 器件位置,ESD 一定要在信号进入芯片之前完成泄放。
5.4 出图之后的收尾测试
能正常出图不代表可以结束测试。资料里的建议是:眼图、I2C 总线按标准方法测完,电源、时序、时钟按芯片规格书逐项核对;如果各项都正常且长期出图稳定,可以考虑适当减少重复测试项,把时间留给长稳和兼容性矩阵。我一般会保留至少三种不同分辨率、两台不同显示器的组合跑满 24 小时,中间穿插几次热插拔,这个过程能捞出大部分偶发问题。
6. 验收
本文还有配套的精品资源,点击获取