TI FPD-Link III SerDes评估套件硬件配置与I2C通信实战指南

📅 2026/7/24 9:19:31
TI FPD-Link III SerDes评估套件硬件配置与I2C通信实战指南
1. 项目概述与核心价值如果你正在设计一个车载摄像头系统、中控显示屏或者任何需要在几米距离上传输高清视频数据并同时进行双向控制的设备那么你大概率绕不开一对关键的芯片串行器Serializer和解串器Deserializer也就是我们常说的SerDes。这玩意儿听起来高大上但说白了它的核心任务就一个把主板上一大把并行的数据线比如21根视频数据线加上时钟和控制线打包成一对高速的差分信号通过一根简单的双绞线传出去然后在另一端再原封不动地解包还原。为什么非得这么折腾我干了十几年车载电子设计最头疼的就是布线。想象一下一个1080p的摄像头RGB888格式就是24位数据加上行场同步和时钟三十多根线要从车头拉到中控台线束又粗又重成本高不说电磁干扰EMI更是噩梦。而采用TI的DS90UB903Q/904Q这类FPD-Link III SerDes方案只需要一对双绞线就能搞定21位视频数据、像素时钟、以及一个完整的双向I2C控制通道。线束重量和复杂度直接降一个数量级抗干扰能力还因为差分传输而大大增强这对追求可靠性的汽车电子来说简直是救命稻草。这次拿到的DS90UB903Q/904Q评估套件就是TI给工程师的一把“瑞士军刀”。它包含了串行器板TX、解串器板RX和一根2米长的USB线仅作物理连接非USB协议。别看它是一套2012年的老评估板其体现的设计思路、配置方法和调试经验对于理解当前市面上绝大多数同类型SerDes芯片依然具有极高的参考价值。它能让你在实验室里快速搭建一个从视频源如FPGA或图像传感器到显示端如LCD屏的完整链路验证视频传输质量并深入测试那个至关重要的、与视频流共生的双向I2C控制通道。接下来我就结合手册和实际调试经验把这套板子从硬件配置到软件通信给你掰开揉碎了讲清楚。2. 评估套件硬件深度解析与配置要点刚拿到评估板别急着上电。第一件事是搞清楚板子上每一个接口、跳线和开关是干什么的。手册里的图表很全但有些关键细节和“坑”需要结合实操才能明白。2.1 板卡布局与核心接口识别两块板子串行器DS90UB903Q和解串器DS90UB904Q布局对称且清晰。串行器板TX是数据发送端它的核心任务是接收并行的LVCMOS信号并将其转换为高速串行流。板子上最显眼的是那个2x22 pin的IDC连接器J1这就是21位数据DIN[20:0]和像素时钟PCLK的输入口。旁边还有一个4pin的IDC连接器J4这是I2CSDA SCL的接入点。板子边缘的USB-A型插座P2就是FPD-Link III差分信号的输出口用附带的线缆连接到解串器板。解串器板RX则相反它的mini USB口J2是高速串行信号的输入口那个2x22 pin的IDC连接器J7输出还原后的21位并行数据和时钟。同样它也有一个4pin的I2C接口J6。这里有个非常重要的警告手册用大写强调我也必须用经验再强调一遍板子上的USB接口仅借用其物理连接器和线缆通信协议完全不是USB绝对不要把它插到电脑或任何USB设备上也绝对不要从电脑USB口取电否则瞬间烧毁芯片没商量。供电必须严格使用板载的香蕉插座J5 J6 on TX J8 J9 on RX连接外部可调电源。2.2 电源与I/O电平配置第一个易错点两块板子都需要两种电压核心电压VDD典型值1.8V和I/O电压VDDIO1.8V或3.3V。VDD给芯片内核供电必须接。VDDIO决定了输入/输出引脚的电平标准。串行器板TXVDD从J5正、J6地接入。VDDIO的选择通过跳线JP11和JP12完成。这是第一个容易糊涂的地方JP11这个跳线选择板载LDOU2的输出是1.8V还是3.3V给VDDIO网络供电。JP12这个跳线帽决定是否将外部输入的VDDIO比如你从别处引来的3.3V接入系统。常见配置如果你希望输入1.8V LVCMOS信号就将JP11跳到1.8V位置JP12空置不使用外部VDDIO。如果你希望输入3.3V LVCMOS信号通常将JP11跳到3.3V位置使用板载LDO同时JP12空置或者如果你有干净的外部3.3V电源也可以将JP11置于任意位置因为不用它然后将外部3.3V接到JP12的VDDIO引脚上并插上跳线帽。务必用万用表确认J1接口处的电压是否符合你的信号源电平解串器板RX逻辑类似VDD接J8、J9。VDDIO通过JP12和JP13配置规则与TX板完全一致。输出到显示屏的电平就由这里的VDDIO决定。实操心得我强烈建议在初次上电前先不接任何信号源和负载单独给两块板子供电。用万用表测量各关键测试点VDD应是1.8V、VDDIO根据跳线是1.8V或3.3V、以及所有开关、跳线端的电压确保与你的预期配置一致。这能排除掉至少一半的硬件配置错误。2.3 模式开关与关键跳线设置每块板子上都有一个DIP开关S1它定义了芯片最基础的工作状态。PDBPower Down Bar这是芯片使能引脚。必须设置为HIGH上拨芯片才能工作。很多新手调试半天没输出最后发现是PDB没拉高。M_SMODE这是决定I2C控制通道主从模式的最关键设置。它决定了数据在双向通道里的流向。显示模式Display ModeI2C主控制器如MCU在串行器TX侧。此时TX的M_S设为HIGHSlave代理RX的M_S设为LOWMaster代理。这是评估板出厂默认状态也是最常见的应用主机控制远端显示屏。相机模式Camera ModeI2C主控制器在解串器RX侧。此时TX的M_S设为LOWMaster代理RX的M_S设为HIGHSlave代理。适用于主机读取远端摄像头传感器配置的场景。黄金法则TX和RX的M_S设置必须相反一个为高另一个必为低否则I2C通信无法建立。RES0保留引脚必须设置为LOW下拨。手册特别强调用户自己设计PCB时也必须将此脚接地。地址选择跳线JP8 on TX JP4 on RX用于设置芯片自身的I2C从设备地址。跳线帽插上则启用板载的可变电阻VR1来调节地址跳线帽拔掉则地址由外部电路决定。评估板上默认插着跳线帽且VR1拧到0欧姆此时地址是默认的TX地址0xB0写 RX地址0xC0写。通过调节VR1可以改变连接在ID[x]引脚的下拉电阻RID从而获得不同的从地址用于总线上挂多个器件。表1和表2给出了电阻值与地址的对应关系比如RID2.0K时TX地址变为0xB2 RX地址变为0xC2。I2C上拉选择跳线JP9 on TX JP5 on RX这个跳线决定I2C总线的上拉电阻来源。跳线帽闭合默认则使用板载的1.0kΩ电阻上拉到VDDIO。如果你的主控制器板子已经提供了上拉电阻则需要将此跳线帽打开避免并联导致电阻值过小。I2C总线必须要有上拉电阻通常值在1kΩ到10kΩ之间具体取决于总线电容和速度。USB电源线处理跳线JP6/JP7 on TX JP3/JP2 on RX前面说了USB线只用来传差分信号其内部的5V红和GND黑电源线不能乱接。评估板很贴心地设计了跳线让你可以选择将这两根线接到板子的VDD、VSS或者悬空。最安全、最推荐的做法是统一跳到VSS地即将红线和黑线都接地这样即使误操作也不会引入危险电压。跳线设置参考手册中的图示非常清楚。3. 系统搭建与信号连接实战硬件配置检查无误后就可以开始连接整个系统了。我们以最常见的“显示模式”为例搭建一个从FPGA作为视频源和I2C主控到LCD显示屏的完整评估环境。3.1 物理连接步骤供电连接使用两台可调电源或者一台双通道电源分别给TX板和RX板供电。切记先调好电压再接线将正极VDD接到TX板的J5和RX板的J8负极VSS接到TX板的J6和RX板的J9。先设置电压为1.8V电流限制定在500mA以上然后打开输出。FPD-Link III链路连接使用套件提供的2米USB线将USB-A端插入TX板的P2在背面mini USB端插入RX板的J2在正面。听到“咔哒”声确保连接牢固。这根线就是你的高速数据通道。视频信号源连接你需要一个能产生1.8V或3.3V LVCMOS并行视频信号的源。可以是带有RGB或LVDS输出功能的FPGA开发板或者专用的视频图案发生器。使用扁平电缆排线将信号源的输出连接到TX板的J1接口。注意J1是2x22的IDC座你需要确保排线的引脚1通常有颜色标记与板子上标注的GND引脚1对齐。21位数据DIN0-DIN20和PCLK的对应关系手册中的表格列得非常详细。信号源阻抗匹配如果你的信号源输出阻抗是50欧姆并且驱动能力一般为了获得更好的信号完整性需要在TX板的输入端并联50欧姆终端电阻。板子上预留了电阻位R1-R22对应DIN0-DIN20和R22对应PCLK。根据你的信号源情况决定是否焊接这些0欧姆或49.9欧姆电阻。显示设备连接同样使用扁平电缆将RX板的J7接口连接到你的LCD显示屏或带有并行输入的采集卡。确保电平匹配RX板VDDIO设置的电压与显示设备输入要求一致。I2C控制连接这是实现双向控制的关键。在显示模式下I2C主控制器比如你的FPGA或单片机需要连接到TX板的J4接口。你需要用杜邦线连接J4-1 (VDD_I2C)连接到主控板的I2C电源通常3.3V。如果使用板载上拉JP9闭合这个引脚可以不接。J4-2 (SCL)连接到主控的I2C时钟线。J4-3 (SDA)连接到主控的I2C数据线。J4-4 (VSS)连接到主控的地。 同时将远端设备比如LCD屏的时序控制器的I2C接口连接到RX板的J6接口接法同上。3.2 上电与锁相环PLL锁定检查所有连接检查无误后给两块板子上电。此时RX板上的一个绿色LEDLED2 标记为LOCK应该点亮。这个LED连接的是DS90UB904Q的LOCK引脚。LOCK信号为高电平表明解串器的PLL已经成功从接收到的串行数据流中恢复出时钟并与输入数据流同步这是整个SerDes链路正常工作的首要标志。如果LOCK灯不亮请立即进入第5章的故障排查流程。如果LOCK灯常亮恭喜你物理层链路已经建立。此时你应该能在显示设备上看到来自信号源的图像如果信号格式正确。但图像显示正常只代表视频数据通道通了那个强大的双向I2C控制通道还需要进一步配置才能工作。4. 双向I2C控制通道的配置与通信实战这是DS90UB903Q/904Q芯片组的精髓所在。它允许你在同一条差分线上除了传输视频流还能透明地传输一个完整的I2C总线用于配置远端的设备或芯片本身延迟极低且不依赖视频消隐期。4.1 显示模式Display Mode下的I2C配置在这种模式下I2C主控在TX侧。我们的目标是让主控能通过SerDes链路访问位于RX侧的远端从设备例如LCD屏的寄存器假设地址为0xA0。硬件模式确认确保TX板S1的M_SHSlave RX板S1的M_SLMaster。这是显示模式的硬件基础。主控初始化序列主控FPGA/MCU需要先对TX芯片地址0xB0进行配置告诉它“你要帮我把命令转发给谁”。步骤A设置目标解串器地址。向TX0xB0的寄存器0x06DES_DEV_ID写入值0xC0。这条命令的意思是“串行器当你收到发给地址0xC0的I2C命令时请通过串行链路转发给对面的解串器”。步骤B设置远端从设备地址。向TX0xB0的寄存器0x07SLAVE_DEV_ID写入值0xA0。这条命令的意思是“串行器当你收到发给地址0xA0的I2C命令时也请通过串行链路转发并最终让解串器在本地I2C总线上发起对这个地址的访问”。关键点这个配置是“一次性”的。配置完成后主控只需要像操作本地I2C设备一样发起对地址0xA0或0xC0的读写TX和RX芯片会自动完成协议转换和转发。对于地址0xA0的访问数据会直达远端LCD屏对于地址0xC0的访问数据会访问RX芯片自身的配置寄存器。通信验证流程手册提供了一个清晰的流程图和步骤我们可以将其转化为具体的操作写操作验证主控向地址0xA0的寄存器0x13假设是一个可读写的通用寄存器写入数据0xFF。这个写请求会被TX芯片封装通过串行链路发给RX芯片RX芯片再在本地I2C总线上执行对0xA0设备的写操作0x13寄存器写0xFF。读操作验证紧接着主控从地址0xA0的寄存器0x13读取数据。请求同样经过链路转发RX芯片读取远端设备0x13寄存器的值应该是刚写入的0xFF再通过链路传回给TX芯片最终返回给主控。如果读回0xFF则证明整个双向控制通道的读写功能完全正常。4.2 相机模式Camera Mode下的I2C配置相机模式逻辑相反I2C主控在RX侧。目标是让RX侧的主控能访问TX侧的摄像头传感器地址0xA0。硬件模式切换将TX板M_S设为LMaster RX板M_S设为HSlave。注意切换模式后必须断电重启芯片新的M_S引脚状态才能生效。主控初始化序列此时主控连接在RX板的J6上。它需要对RX芯片地址0xC0进行配置。步骤A设置目标串行器地址。向RX0xC0的寄存器0x07SER_DEV_ID写入值0xB0。意思是“解串器把发给0xB0的命令转发给对面的串行器”。步骤B设置远端从设备地址匹配表。这是与显示模式不同的地方。RX芯片有一组地址匹配寄存器0x08h~0x17h。需要把摄像头地址0xA0填入其中一个例如向寄存器0x08写入0xA0。这意味着当主控访问地址0xA0时RX芯片会响应并转发。步骤C远程唤醒串行器。因为相机可能处于低功耗模式需要向RX的寄存器0x01写入0x04来唤醒TX侧的链路。通信验证验证逻辑与显示模式类似只是方向相反。主控对地址0xA0摄像头或0xB0TX芯片进行读写RX和TX芯片协同完成转发。实操心得关于I2C时钟拉伸Clock Stretching手册和芯片特性里反复提到主控制器必须支持从设备时钟拉伸。这是很多通用I2C库或硬件模块容易忽略的地。在FPD-Link III的I2C转发过程中作为代理的芯片Slave Proxy在收到有效地址后在应答位ACK之前需要短暂地拉低SCL线即时钟拉伸以便有时间处理地址匹配和准备转发。如果你的主控不支持这个特性即SCL被严格按定时器驱动不允许被从设备拉低那么I2C通信会在第一个ACK处卡死。在选用MCU或编写FPGA的I2C Master IP时务必确认其支持此功能。5. 典型问题排查与调试技巧实录就算按照手册一步步来第一次调试也难免遇到问题。下面是我在多次使用中总结的“快速诊断树”和避坑指南。5.1 问题排查速查表问题现象可能原因排查步骤与解决方案LOCK指示灯不亮1. 供电异常2. 差分线缆未接好或损坏3. 输入时钟PCLK无效或频率超范围4. 芯片未使能PDB为低5. 模式M_S设置错误两端相同1.首先用万用表测量TX板J5/J6和RX板J8/J9的电压确保为稳定的1.8V。测量VDDIO电压是否符合预期1.8V/3.3V。2. 检查USB线是否插紧尝试更换一根质量好的USB 2.0线仅作物理测试。3. 用示波器测量TX板J1上的PCLK引脚确认有时钟信号幅度Vpp符合LVCMOS标准1.8V或3.3V频率在芯片支持的10-43 MHz范围内。4. 检查TX和RX板上S1开关的PDB引脚是否都拨到了HIGH位置。5.确认TX和RX的M_S开关处于相反位置一高一低。LOCK灯亮但无图像输出1. 输入数据信号问题2. 输出负载或连接问题3. VDDIO电平不匹配4. 数据与时钟边沿对齐问题1. 用示波器或逻辑分析仪检查TX板J1上的部分数据线如DIN0 DIN1是否有活动信号。确认信号幅度和直流偏置正确。2. 检查RX板J7到显示设备的连接线。确认显示设备已上电并设置到正确的输入模式。3. 确认RX板的VDDIOJP12/JP13设置的电平与显示设备要求的输入电平一致。4. 检查芯片的RFB/TRFB寄存器配置默认通常为上升沿采样确保与你的视频时序匹配。可以通过I2C访问芯片内部寄存器来检查和修改。LOCK灯亮有图像但花屏/错位1. 数据位序Mapping错误2. 时钟抖动或信号完整性差3. 电缆过长或质量差1. 这是最常见的原因之一。SerDes芯片通常允许通过寄存器重新映射并行数据位序以适配不同的屏或传感器。检查DS90UB903Q/904Q数据手册中的“Input Data Mapping”相关寄存器如0x0C 0x0D等确认其配置与你的视频源数据位序一致。2. 检查PCLK和数据线的信号质量是否存在过冲、振铃或边沿过于缓慢。在TX板输入端增加适当的串联电阻或并联终端电阻可能改善。3. 套件线缆是2米芯片支持最长10米。但如果使用非屏蔽或阻抗匹配很差的线缆在较长距离时可能出现误码。尝试缩短线缆或使用屏蔽双绞线STP。I2C通信失败1. I2C上拉电阻问题2. 主控不支持时钟拉伸3. 地址配置错误4. 模式M_S设置错误5. 未等待LOCK稳定1. 用万用表测量SDA和SCL线在不通信时的电压应为VDDIO如3.3V。如果电压偏低检查上拉电阻JP9/JP5跳线及外部电路是否连接阻值是否合适通常4.7kΩ。2.这是高频问题用示波器抓取I2C通信波形重点看主控发出地址后的第一个ACK时钟周期SCL线是否被从设备拉低了一段时间。如果主控在此阶段超时则说明不支持拉伸。需要更换主控方案或修改驱动。3. 用I2C扫描工具确认TX芯片0xB0和RX芯片0xC0是否能被主控发现。如果找不到检查地址跳线JP8/JP4和VR1的设置。4. 再次确认M_S开关显示模式TXH RXL相机模式TXL RXH。5. 确保在LOCK信号稳定LED常亮后再进行I2C配置和通信。上电后芯片需要时间建立链路和锁定。芯片发热严重或电流过大1. 电源短路2. 差分线对短路3. 输入信号电平超过VDDIO1. 立即断电用万用表蜂鸣档检查VDD和GND之间是否短路。检查电源线是否接反。2. 检查USB线缆的差分对D D-是否因弯折等原因内部短路。可更换线缆测试。3. 确认输入到J1的信号电压峰值未超过你设置的VDDIO电压如VDDIO1.8V 输入信号不能是3.3V。5.2 高级调试工具与技巧逻辑分析仪这是调试SerDes和I2C的利器。建议使用带高速差分探头和I2C解码功能的型号。你可以同时抓取TX侧的并行输入数据、PCLK以及RX侧的并行输出数据对比验证数据是否正确传输。对于I2C可以清晰地看到地址、数据、ACK/NACK位以及关键的时钟拉伸现象。示波器用于观察信号完整性。测量PCLK的时钟频率、占空比、上升/下降时间。测量差分信号在USB接口的D和D-上的波形观察眼图是否张开需要高速示波器。检查电源纹波是否在合理范围内通常50mVpp。I2C总线分析仪如手册提到的Corelis等工具可以主动发起I2C命令或监控总线流量对于分析复杂的I2C交互问题非常有效尤其当你的主控程序还不稳定时可以先用它来验证硬件链路和芯片基本配置是否正确。这套DS90UB903Q/904Q评估套件虽然硬件平台稍旧但它完整呈现了一个高性能SerDes链路评估所需的所有要素。通过亲手配置电源、模式、I2C并解决可能遇到的LOCK、图像、通信等问题你对SerDes系统工作的理解会从纸面参数深入到每一个信号和配置位。这种经验在你日后设计基于更先进SerDes芯片如DS90UB953/954 甚至更高速度的FPD-Link IV系列的系统时会显得无比珍贵。记住稳定的硬件是基础正确的配置是关键而细致的调试则是将设计从“能工作”推向“可靠工作”的必经之路。