1. 项目概述
如果你正在设计一款平板电脑、高端手持设备或者需要驱动高分辨率显示屏的嵌入式系统,那么你很可能已经接触过MIPI DSI接口。DSI以其高带宽、低功耗和抗干扰能力,几乎成了移动设备显示接口的事实标准。然而,当你需要连接一块只支持eDP接口的高分屏,或者你的主控平台只有DSI输出而目标面板是eDP输入时,问题就来了。这时候,你需要一个可靠的“翻译官”——MIPI DSI到eDP的桥接芯片。德州仪器(TI)的SN65DSI86和SN65DSI96就是为此而生的两款明星芯片,它们能将DSI的视频流实时、低延迟地转换成eDP信号。
我手头这份SN65DSI86/96评估模块(EVM)的用户手册,正是深入理解这两颗芯片和进行硬件设计的绝佳起点。这份文档远不止是一份简单的接线图,它详细展示了如何围绕桥接芯片构建一个稳定、可扩展的硬件评估平台。从复杂的多路电源树设计、确保信号完整性的高速差分对布局,到灵活可编程的I2C配置接口,每一个细节都关乎最终显示效果的稳定性和画质。对于硬件工程师、系统架构师,甚至是负责驱动调试的软件工程师来说,吃透这块EVM的设计思路,都能让你在自家的产品设计中少走很多弯路。本文将带你深入拆解这份手册,不仅还原其硬件设计精髓,更会补充大量实际工程中才会遇到的“坑”和技巧,让你能真正把这块评估板用起来,甚至将其设计理念迁移到自己的项目中。
2. 核心芯片与评估模块深度解析
2.1 SN65DSI86与SN65DSI96:孪生兄弟的细微之别
SN65DSI86和SN65DSI96在手册中常被合称为SN65DSIX6,因为它们引脚完全兼容,封装一致,核心功能都是完成MIPI DSI到eDP的桥接。但这并不意味着它们可以随意互换,理解其差异是选型的第一步。
SN65DSI86是基础款,它支持双通道DSI输入(Channel A和Channel B),并能将其转换为最多4通道的eDP输出。这意味着它能够处理相当高的数据吞吐量,满足从1080p到2K甚至更高分辨率的显示需求。它的工作模式相对直接:接收DSI数据包,解析后按照eDP协议重新打包并发送出去。
SN65DSI96则在SN65DSI86的基础上,增加了一项关键特性:自适应同步扫描技术。这项技术允许显示面板的刷新率动态地、无闪烁地匹配输入视频源的帧率。对于处理可变帧率内容(例如游戏、视频播放)或需要动态调整刷新率以节省功耗的场景至关重要。SN65DSI96通过其内置的智能逻辑和配套的环境光传感器接口(如EVM上集成的TSL2561T),可以实现更平滑的视觉体验和能效优化。
选型心得:如果你的项目对显示流畅性有极致要求,或者需要处理可变帧率内容,SN65DSI96是更优选择。如果只是简单的固定帧率视频桥接,SN65DSI86更具成本效益。EVM板的设计同时兼容两者,通过更换主芯片即可评估不同型号。
2.2 EVM模块:一个完整的参考设计平台
这块评估模块绝不仅仅是一个“转接板”。它是一个高度集成、功能完备的参考设计,几乎涵盖了产品化所需的所有外围电路。
模块的核心价值体现在以下几个方面:
- 接口完备性:它提供了多种物理连接方式。对于DSI输入,既有适合线缆连接的Samtec QSH高速连接器(J4),也有便于直接插接的Hirose FX连接器(J1,Rev1/2)或标准100mil排针(J1,Rev3)。对于eDP输出,则同时提供了标准的DisplayPort公头(J9)和用于直接连接eDP面板屏线的Samtec QSH连接器(J6)。这种设计让工程师可以用最接近最终产品的方式连接信号源和显示器。
- 电源系统设计:EVM的电源设计是一个经典的多路低压差线性稳压器(LDO)应用案例。它接受5V至17V的宽范围输入(通过J13),然后通过一颗TPS62142RGTR开关稳压器产生9V中间电压,再分别由两颗TPS74201RGWT LDO芯片产生3.3V和1.8V电源,并为SN65DSIX6芯片内核单独提供1.2V电源。这种分级供电方式能有效隔离噪声,确保为高速模拟和数字电路提供纯净的电源。
- 时钟与配置灵活性:板载一颗CDCEL913可编程时钟发生器,其输出作为SN65DSIX6的参考时钟(REFCLK)。这意味着你无需依赖外部晶振,可以通过I2C灵活配置所需的参考时钟频率(默认为27MHz),以适应不同像素时钟的需求。此外,一个8位的DIP开关(SW2)提供了硬件配置选项,例如设置芯片的I2C从机地址、使能I2C电平转换器等,这在调试和兼容不同主机时非常方便。
- 调试与监控功能:板载了多个测试点(TP)、LED指示灯(如电源指示灯D3、D6)甚至一个环境光传感器。这些看似“额外”的部件,在实际调试中能帮你快速定位问题是出在供电、配置还是信号链路上。
3. 硬件设计要点与实战解析
3.1 电源架构设计与噪声控制
电源是高速混合信号电路的基石。EVM的电源设计图(对应手册中的Figure 11 “POWER”部分)值得仔细研究。
输入与第一级转换:外部5-17V直流电源从J13接入,经过防反接二极管D8和保险丝F1(图中未明确标出值,通常为1.5A-2A)后,送入U14(TPS62142)。这是一款同步降压转换器,将输入电压降至9V(BOARD_9V)。选择开关电源作为第一级是因为其效率高,适合处理较大的压差和电流。L1(2.2uH)是功率电感,C35、C36、C37、C38组成输入输出滤波网络,其中大容值的电解电容(如22uF)应对低频纹波,小容值的陶瓷电容(如10uF, 0.1uF)滤除高频噪声。
核心电压生成:9V电压随后为两个LDO(U8, U9)供电。U9产生3.3V(BOARD_3P3V),U8产生1.8V(BOARD_1P8V)。LDO的选择至关重要,因为SN65DSIX6的I/O和PLL电路对电源噪声极其敏感。TPS74201系列具有极低的噪声和高的电源抑制比(PSRR)。其输出电压由反馈电阻R84/R89(3.3V)和R82/R90(1.8V)精确设定。C39,C42,C45,C46等电容必须紧贴芯片的输入输出引脚放置,以提供最短的电流回流路径。
内核电压(1.2V):值得注意的是,芯片内核所需的1.2V(BOARD_1P2V)并非直接来自LDO,而是由SN65DSIX6内部的一个LDO从1.8V电源转换而来。这要求1.8V电源必须足够“干净”和稳定。在EVM上,C48(DNI, 不安装)和C43(0.01uF)的位置就是为这颗内部LDO的旁路电容预留的。在实际设计中,这里必须按照数据手册推荐,放置合适容值的电容。
布局避坑指南:
- 电容摆放:为每个电源引脚配置的去耦电容,务必尽可能靠近引脚放置,先小后大(例如先放0.1uF,再放10uF)。电容的GND过孔要直接打到芯片正下方的地平面,形成最小环路。
- 电源分割:使用磁珠(如
FB4)或0欧姆电阻(如R88)对模拟电源(如PLL的VDDPLL,VCCA)和数字电源进行隔离。EVM上R88为0欧姆,在实际产品中可根据噪声情况替换为磁珠。- 电流路径:确保大电流路径(如开关电源的SW节点)远离敏感的模拟和时钟走线。电感下方所有层必须净空,避免耦合噪声。
3.2 高速信号完整性布局实战
手册中多次强调并提供了详细的布局笔记,这是保证DSI和eDP差分信号质量的生命线。
差分对控制:DSI的时钟/数据对和eDP的Main Link通道都是高速差分信号(速率可达每通道1.6Gbps以上)。EVM的设计要求所有差分对必须实现100欧姆的差分阻���和50欧姆的单端阻抗控制。这需要在PCB设计软件中根据板厂的层叠结构(介电常数、层厚)精确计算线宽和线间距。
等长与对称:差分对内的两条走线(P和N)长度必须严格匹配,通常要求误差在5mil(约0.127mm)以内。EVM的提示“Keep lengths within 5mil of each other”就是此意。长度不匹配会导致共模噪声增加,信号眼图闭合。同时,差分对在换层时,过孔必须对称放置,确保寄生参数一致。
远离干扰:“Keep away from other high speed signals”这条规则必须遵守。特别是eDP的ML(Main Link)信号,应远离任何其他高速或周期性信号,如时钟、开关电源节点。在多层板设计中,最好为这些高速差分对分配专属的布线层,并用完整的地平面作为参考。
无桩线(Stub)设计:这是高速设计的一个黄金法则。串联的匹配电阻(如DSI输入端的R6-R15)或AC耦合电容必须采用“in-line”布局,即信号线直接穿过元件焊盘,而不是从主走线上分出一小段支路(Stub)再连接到元件。EVM手册特别指出,当使用J4(Samtec连接器)时,R6-R15必须移除(DNI),否则这些电阻的焊盘就会成为破坏信号完整性的桩线。
3.3 时钟电路:系统的心跳
SN65DSIX6需要一个外部参考时钟(REFCLK)来驱动其内部PLL,以产生eDP链路所需的高速串行时钟。EVM提供了两种方案:
- 外部时钟输入:可以通过
J7连接器输入一个单端或差分时钟信号。 - 板载可编程时钟发生器:这是更常用的方案。芯片U5(CDCEL913)是一个可通过I2C编程的时钟发生器,其输出频率可灵活配置。默认通过27MHz晶体(Y1)产生27MHz时钟。参考时钟的稳定性直接影响eDP链路的稳定性。因此,布局上必须将时钟电路(晶体、时钟芯片、负载电容)尽可能靠近SN65DSIX6的REFCLK引脚,走线短而粗,并用地平面包围屏蔽。负载电容
C25,C26的容值需要根据晶体规格书精确计算,通常为十几皮法。
3.4 复位与使能逻辑:确保可靠上电
高速芯片的上电时序非常关键。SN65DSIX6的使能(EN)引脚必须在核心电压稳定之后才能拉高。EVM提供了三种配置,体现了工程上的灵活性:
- 监控电路方案(默认):使用U3(TPS3808)电源监控芯片。它监测1.8V电源(
PG1P8),只有当其稳定后,才会释放RESET#信号,进而通过U4(与门)和U2(缓冲器)控制EN引脚。这是最可靠、最推荐的生产方案。 - RC延时方案:通过R52和C10组成简单的RC电路,利用电容充电时间来延时EN信号的上升。这种方式成本低,但受温度、电压变化影响大,延时精度不高,通常仅用于调试或对成本极度敏感的场景。EVM上C10默认为DNI, R52为0欧姆,即未启用此模式。
- 外部手动控制:通过按钮SW1或连接器J16的某个引脚,可以手动控制复位。这在调试时非常有用,可以手动复位芯片而不必重启整个系统。
实操建议:在产品设计中,强烈建议采用第一种监控电路方案。它确保了无论电源上电速度如何,芯片总是在电压稳定后才开始工作,避免了因电源未稳而导致的闩锁或初始化失败问题。
4. 接口连接器详解与选型
4.1 DSI输入接口:J1, J4与J16
EVM提供了极大的灵活性来连接不同的DSI信号源。
J4(Samtec QSH-020-01):这是一个40引脚的高速连接器,同时包含了DSI Channel A和Channel B的所有差分对(各4条数据通道和1条时钟通道),以及I2C、中断(IRQ)、复位等控制信号。这是功能最全的连接器,适合连接具有标准高速线缆的信号源。使用时务必记得移除下方的R6-R15电阻。
J1:在Rev1/2版本上是Hirose FX连接器,在Rev3上是2x16的100mil排针。它只引出了DSI Channel A的信号。这种设计更适合直接与核心板或主板上的排针插座对接,进行板对板连接。如果使用J1,则需要安装R6-R15电阻(0欧姆)作为端接或预留位置。
J10:这是用于外部I2C编程的接口。当你使用像Total Phase Aardvark这样的USB转I2C适配器来配置桥接芯片时,就连接到这里。板上的U6(TXS0102)是一个双向电平转换器,当I2C_3V3EN使能时,可以将主机的3.3V I2C电平转换为芯片侧的1.8V电平。
4.2 eDP输出接口:J6与J9
J9:标准DisplayPort公头接口。这意味着你可以直接用标准的DP线缆连接一台外部的DisplayPort显示器进行测试和验证。这对于功能验证和兼容性测试非常方便。
J6(Samtec QSH-020-01):这是用于连接嵌入式DisplayPort面板的接口。除了4对eDP Main Link差分信号和1对AUX通道差分信号外,它还引出了面板所需的电源(LCD_VCC,BL_PWR)、使能(BL_ENABLE)、亮度调节(PWM_DIM)和热插拔检测(HPD)信号。这是一个完整的eDP面板接口。
子板扩展:手册提到了两种用于连接实际eDP屏线的子板:DSI86 EDP_30PIN和DSI86 EDP_40PIN。它们本质上是将J6的Samtec接口转换为更常见的eDP屏线连接器(如IPEX)。30PIN版本支持最多2个eDP通道,40PIN版本支持最多4个通道。你需要根据目标面板的接口规格来选择合适的子板。
5. I2C配置实战与脚本解读
SN65DSIX6的所有功能配置,包括视频模式、链路速率、通道映射等,都通过I2C接口完成。手册第7节提供的Total Phase Aardvark适配器脚本,是理解配置流程的绝佳范例。
5.1 配置流程总览
无论是配置单通道还是双通道DSI模式,配置流程都遵循一个清晰的模式:
- 基础设置:配置DSI通道数、eDP通道数、增强帧模式、预加重/后加重(Pre-emphasis/Post-emphasis)、链路速率(HBR, HBR2)等。
- 使能PLL:启动芯片内部的锁相环。
- 启动链路训练:发送训练模式指令,让芯片与eDP面板进行握手和信号校准。
- 配置视频时序:写入目标分辨率对应的水平/垂直有效像素、前后廊、同步脉冲宽度等参数。这些参数必须与输入DSI视频流的时序严格匹配。
- 使能视频流:最后打开视频流输出。
5.2 关键寄存器解析(以1920x1080脚本为例)
让我们逐行分析手册中7.1节的脚本,理解每个命令背后的含义:
<!-- 设置I2C比特率为100kHz --> <i2c_bitrate khz="100" /> <!-- 寄存器0x10: 配置DSI通道与eDP通道 --> <i2c_write addr="0x2D" count="1" radix="16">10 26</i2c_write>0x10寄存器的高4位用于配置DSI通道,低4位用于配置eDP通道。0x26的二进制是0010 0110。解读如下:
0010:表示使用单DSI通道(Channel A only),并且该通道使用4条数据线。0110:表示使用2条eDP通道(Lane 0和 Lane 1)。如果值是0x0F,则表示使用全部4条eDP通道。
<!-- 寄存器0x5A: 配置增强帧模式 --> <i2c_write addr="0x2D" count="1" radix="16">5A 04</i2c_write>0x04使能eDP的增强帧模式(Enhanced Framing),这是一种更可靠的帧定界方式,建议始终开启。
<!-- 寄存器0x93, 0x94, 0x95: 配置eDP发射器均衡 --> <i2c_write addr="0x2D" count="1" radix="16">93 20</i2c_write> <i2c_write addr="0x2D" count="1" radix="16">94 80</i2c_write> <i2c_write addr="0x2D" count="1" radix="16">95 00</i2c_write>这些寄存器用于设置eDP信号在长距离或高频传输时的预加重(Pre-emphasis)和后加重(Post-emphasis),以补偿高频损耗。0x93设置预加重���0x94设置摆动幅度(Swing)和链路速率(0x80对应HBR, 2.7Gbps/lane),0x95设置后加重。具体值需要根据实际PCB走线长度和面板特性进行调整,脚本中的值是针对EVM板布局的典型值。
<!-- 寄存器0x0D: 使能内部PLL --> <i2c_write addr="0x2D" count="1" radix="16">0D 01</i2c_write>这是关键一步,写入0x01启动芯片的时钟锁相环。PLL锁定需要一定时间,所以后面有<sleep ms="10" />等待。
<!-- 寄存器0x96: 启动半自动链路训练 --> <i2c_write addr="0x2D" count="1" radix="16">96 0A</i2c_write>写入0x0A启动半自动训练模式。芯片会与连接的eDP面板进行通信,自动调整均衡器等参数以建立稳定链路。之后通过读取0x96寄存器可以检查训练状态(0x00通常表示成功)。
<!-- 寄存器0x20至0x3A: 配置视频时序参数 --> <i2c_write addr="0x2D" count="2" radix="16">20 80 07</i2c_write> <!-- CHA_ACTIVE_LINE_LENGTH = 0x0780 = 1920 --> <i2c_write addr="0x2D" count="2" radix="16">24 38 04</i2c_write> <!-- CHA_VERTICAL_DISPLAY_SIZE = 0x0438 = 1080 --> <i2c_write addr="0x2D" count="2" radix="16">2C 10 80</i2c_write> <!-- CHA_HSYNC_PULSE_WIDTH = 0x8010 --> <i2c_write addr="0x2D" count="2" radix="16">30 0E 80</i2c_write> <!-- CHA_VSYNC_PULSE_WIDTH = 0x800E --> <i2c_write addr="0x2D" count="1" radix="16">34 98</i2c_write> <!-- CHA_HORIZONTAL_BACK_PORCH = 0x98 = 152 --> <i2c_write addr="0x2D" count="1" radix="16">36 13</i2c_write> <!-- CHA_VERTICAL_BACK_PORCH = 0x13 = 19 --> <i2c_write addr="0x2D" count="1" radix="16">38 10</i2c_write> <!-- CHA_HORIZONTAL_FRONT_PORCH = 0x10 = 16 --> <i2c_write addr="0x2D" count="1" radix="16">3A 03</i2c_write> <!-- CHA_VERTICAL_FRONT_PORCH = 0x03 = 3 -->这是配置的核心部分,定义了1920x1080@60Hz的详细时序。这些值必须与你的DSI信号源输出的视频时序完全一致。通常可以从处理器或GPU的显示驱动文档中获得。例如,0x0780是1920的十六进制,0x0438是1080的十六进制。同步脉冲宽度的格式比较特殊,高低字节组合表示一个值,需要参考数据手册的位域说明。
<!-- 寄存器0x5B: 设置色彩深度 --> <i2c_write addr="0x2D" count="1" radix="16">5B 00</i2c_write>0x00表示eDP输出为每像素24位(RGB888)。如果面板支持18bpp(RGB666)以节省带宽,可以配置为其他值。
<!-- 寄存器0x3C: 测试模式 --> <i2c_write addr="0x2D" count="1" radix="16">3C 00</i2c_write>0x00表示输出正常视频数据。可以设置为其他值来输出彩条等测试图案,这在没有信号源时调试硬件非常有用。
<!-- 寄存器0x5A: 最终使能 --> <i2c_write addr="0x2D" count="1" radix="16">5A 0C</i2c_write>最后再次配置0x5A寄存器,在原有增强帧模式(0x04)的基础上,加入0x08(即0x0C),使能视频流(Vstream)。至此,配置完成,视频信号应该从eDP接口输出。
5.3 双通道DSI模式配置要点
7.2节的脚本针对2560x1440分辨率,使用了双通道DSI输入。关键区别在于:
0x10寄存器写入0x00,表示使用双DSI通道,每个通道4条数据线。- 需要额外配置Channel B的时序参数,例如
0x22(CHB_ACTIVE_LINE_LENGTH)。 0x94寄存器写入0xE0,表示使用HBR2链路速率(5.4Gbps/lane),以满足2560x1440@60Hz 24bpp所需的高带宽。
6. 常见问题排查与调试技巧
6.1 上电无显示问题排查清单
- 电源检查:这是第一步也是最常见的问题。用万用表测量所有关键电压点:
BOARD_9V,BOARD_3P3V,BOARD_1P8V,BOARD_1P2V,以及芯片的VCC,VCCA,VCCIO等引脚。确保电压值在数据手册规定的容差范围内(通常是±5%)。特别注意1.2V内核电压是否正常。 - 复位信号检查:用示波器测量芯片的EN(或RESET)引脚。确保其上电时序正确:在核心电压稳定后,有一个从低到高的明确跳变。如果使用监控电路,检查TPS3808的
PG引脚是否变高。 - 时钟检查:用示波器测量REFCLK引脚(芯片A7脚)。确保有稳定、干净的27MHz(或你配置的频率)时钟信号,幅度符合要求。无时钟或时钟质量差会导致PLL无法锁定。
- I2C通信检查:连接I2C适配器(如Aardvark),尝试读取芯片的器件ID寄存器(例如
0x00)。如果读不到或返回全0/全F,检查:- I2C线缆连接是否正确(SDA, SCL)。
- I2C上拉电阻是否已安装(EVM上已集成)。
- DIP开关
SW2-5(ADDR)设置是否正确,决定了地址是0x2C还是0x2D。 - 电平转换器U6是否使能(
SW2-8,I2C_3V3EN)。
- 配置脚本执行:确保I2C配置脚本已成功运行,且没有报错。可以通过再次读取已配置的寄存器来验证。特别注意链路训练寄存器
0x96,训练成功后读取值应为0x00。如果不是,可能是eDP链路物理连接问题或面板未准备好。 - 信号源与面板:确认DSI信号源已开始输出视频流(处于LP-11状态后的HS模式)。确认eDP面板已上电,背光已开启。
6.2 显示异常问题排查
- 花屏、闪屏、颜色错误:
- 检查电源噪声:用示波器AC耦合模式观察1.8V和1.2V电源,看是否有几十到几百mV的高频噪声。加强滤波电容或调整布局。
- 检查时序参数:仔细核对写入的显示时序参数(水平/垂直总数、前后廊、同步宽度)是否与信号源完全匹配。一个像素的误差都可能导致同步失败。
- 检查色彩深度配置:确认寄存器
0x5B的设置与面板期望的色彩格式(24bpp, 18bpp等)一致。
- 无显示但背光亮:
- 检查链路训练:读取寄存器
0x96,确认训练成功(值为0x00)。如果训练失败,尝试降低eDP链路速率(在0x94寄存器中配置HBR而非HBR2),或调整均衡器设置(0x93,0x95)。 - 检查视频流使能:确认最后一步向寄存器
0x5A写入了0x0C(使能增强帧和视频流)。 - 使用测试图案:将寄存器
0x3C设置为彩条模式(如0x01)。如果此时能显示彩条,说明桥接芯片工作正常,问题可能出在DSI信号源或数据映射上。
- 检查链路训练:读取寄存器
6.3 硬件设计复查清单(基于EVM经验)
在将自己的设计投入生产前,请对照此清单检查:
- [ ]电源滤波:每个电源引脚附近是否都有至少一个0.1uF和一个1-10uF的陶瓷电容?电容的GND过孔是否足够近、足够多?
- [ ]差分对:是否做了100Ω差分阻抗控制?对内长度差是否小于5mil?是否远离噪声源?是否避免了桩线结构?
- [ ]时钟走线:REFCLK走线是否最短?是否被地线包围?负载电容是否紧贴晶体引脚?
- [ ]复位电路:是否使用了可靠的电源监控芯片(如TPS3808)来产生复位信号,而非简单的RC电路?
- [ ]未连接引脚:芯片的未使用引脚(如TEST1, TEST2)是否已按照数据手册要求接地或上拉?
- [ ]散热:芯片的散热焊盘(PAD)是否打了足够多的过孔连接到内部地平面,以利于散热?
通过深入研究SN65DSI86/96 EVM的用户手册,我们不仅获得了一个可立即上手的评估工具,更学习到了一个工业级高速视频接口桥接方案的完整设计范式。从精密的电源管理、严谨的高速布局规则,到灵活的软件配置流程,每一个环节都凝聚着应对实际工程挑战的智慧。当你下次面对需要连接DSI与eDP的世界时,这份手册和其中的设计思想,就是你最可靠的路线图。