拓冰建站拓冰建站
首页 / 资讯中心 / 正文

DS90LV031A LVDS发送器实战:差分电平计算、RGB转LVDS接线与眼图验证

简介这份PDF是TI公司DS90LV031A的官方数据手册面向从事高速接口电路设计的硬件工程师、嵌入式开发者及工业自动化相关技术人员用于解决3.3V低电压系统中高速差分信号传输的设计选型与参数核对问题。资源包共1个文件为1.15MB的PDF文档完整收录了该四通道CMOS差分线路驱动器的规格书内容。手册详细给出超过400Mbps200MHz的切换速率、0.1ns典型差分偏移、2ns最大传播延迟、±350mV差分信号幅度及13mW静态功耗等关键指标并涵盖TRI-STATE输出禁用功能、EN与EN*使能控制逻辑、SOIC与TSSOP两种封装尺寸以及与IEEE 1596.3 SCI和TIA/EIA-644 LVDS标准的兼容性说明。内容预览可见引脚配置、绝对最大额定值、ESD等级、推荐工作条件及框图等章节可帮助读者快速完成电路设计、信号完整性评估与器件选型。目前已有168人学习下载适合需要查阅原厂权威参数、构建高速点对点通信系统的工程师参考。1. 从一份 datasheet 说起DS90LV031A 到底解决什么问题很多硬件工程师第一次接触 DS90LV031A是在一份 PDF 里翻到引脚定义和时序图然后发现它其实是个很“朴素”的器件四路 CMOS 差分线驱动器把单端 LVCMOS/LVTTL 信号转成 LVDS 差分对。它不复杂但用错的人不少。典型场景是 FPGA 或 SoC 侧只有 3.3V 单端 IO而屏、背板或长排线需要低摆幅差分传输来压 EMI、拉距离这时候就需要一颗 LVDS 发送器把单端信号“翻译”出去。DS90LV031A 常见封装是 SOIC-16 和 TSSOP-16供电 3.3V每通道 3.5mA 左右电流驱动配合 100Ω 终端电阻产生约 350mV 的差分摆幅。它适合谁做嵌入式主板、工业 HMI、FPGA 视频输出、以及需要把 3 路 RGB 或并行数据转成 LVDS 链路的硬件和驱动工程师。这一章先把它的定位讲清楚后面再落到引脚、参数和实测。2. DS90LV031A 的电气参数与 LVDS 差分线高值低值怎么算2.1 从 CMOS 单端到 LVDS 差分电平转换的物理过程DS90LV031A 内部每一路本质上是一个恒流源加一个 H 桥开关结构。输入是 CMOS 电平输出是两条互补的电流路径。当输入为高时电流从 OUT 流出、经外部 100Ω 终端电阻流回 OUT-输入为低时方向相反。这样在终端电阻上产生的电压差就是 LVDS 的差分高值和低值。很多人问“lvds 的差分线高值和低值到底是多少”答案不是固定的 0V/3.3V而是围绕一个共模电压典型 1.2V上下摆动的 ±350mV 左右。也就是说单根线对地电压大约在 0.85V 到 1.55V 之间差分电压 VOD 约 350mV。这个低摆幅正是 LVDS 抗干扰、低功耗的原因。2.2 必调参数表VOD、VOS 与终端电阻参数典型值可调范围说明供电 VCC3.3V3.0–3.6V低于 3.0V 时 VOD 会明显下降差分输出电压 VOD350mV250–450mV由内部恒流源和 100Ω 负载决定共模电压 VOS1.2V1.0–1.4V受供电和负载影响终端电阻 RT100Ω90–110Ω必须靠近接收端放置单通道电流3.5mA—四路同时工作时总电流约 14mA注意VOD 不是靠外部电阻“调”出来的而是由内部 3.5mA 恒流源和 100Ω 终端共同决定。外部能改的主要是终端电阻和供电质量。2.3 用 LTspice 验证 CMOS 反相器到 LVDS 的波形如果你手头没有板子可以用 LTspice 搭一个简化模型看波形。下面是一个 CMOS 反相器驱动 LVDS 等效负载的网表片段用来观察差分对上的电压摆幅。* CMOS 反相器驱动 100Ω 差分负载的简化验证 VCC 1 0 3.3 Vin 2 0 PULSE(0 3.3 0 1n 1n 5n 10n) M1 3 2 1 1 PMOS W10u L0.18u M2 3 2 0 0 NMOS W5u L0.18u Rterm 3 4 100 Vcm 4 0 1.2 .tran 0.1n 50n .backanno .end这段网表里M1/M2 构成 CMOS 反相器Rterm 是 100Ω 终端Vcm 模拟 LVDS 接收端的共模偏置。跑瞬态后看 Rterm 两端电压差就能理解为什么 LVDS 的差分高值低值只有几百毫伏。逻辑说明PULSE 源给 10ns 周期方波模拟 FPGA 输出的单端信号Rterm 上的压差就是等效 VOD。参数说明W/L 只是示意实际 DS90LV031A 内部恒流源行为更接近理想电流源仿真时可以用电流源替代反相器来更准确复现。3. 硬件落地SOIC/TSSOP 封装选型与 3 路 RGB 转 LVDS 的接线3.1 SOIC-16 与 TSSOP-16 的取舍DS90LV031A 常见两种封装SOIC-16 和 TSSOP-16。SOIC 引脚间距 1.27mm手工焊接和返修友好适合打样和小批量TSSOP 引脚间距 0.65mm占板面积小适合空间紧张的模组。选型时不要只看面积还要看散热和走线。四路同时工作总电流不大但 TSSOP 的引脚更密差分对出线时更容易出现长度不匹配。我的习惯是原型阶段用 SOIC量产再评估 TSSOP。下面是一个典型的 3 路 RGB 转 LVDS 发送端接线示意用 DS90LV031A 的四路通道中的三路传 R/G/B第四路传时钟。FPGA_IO_R -- DIN1 -- OUT1 / OUT1- -- LVDS_R FPGA_IO_G -- DIN2 -- OUT2 / OUT2- -- LVDS_G FPGA_IO_B -- DIN3 -- OUT3 / OUT3- -- LVDS_B FPGA_CLK -- DIN4 -- OUT4 / OUT4- -- LVDS_CLK 每对 OUT 靠近接收端接 100Ω 终端电阻逻辑说明DS90LV031A 是单向发送器输入侧接 FPGA 的 3.3V 单端 IO输出侧每对差分线走 100Ω 阻抗。参数说明如果 FPGA 侧 IO 是 1.8V不能直接接 DS90LV031A 的 3.3V 输入需要电平转换或选支持更低输入阈值的型号。这一点在 datasheet 的输入高电平 VIH 参数里写得很清楚别凭感觉直接连。3.2 差分对走线与终端电阻放置LVDS 差分对走线要等长、紧耦合阻抗控制在 100Ω。终端电阻必须放在接收端不能放在发送端。很多人把 100Ω 放在 DS90LV031A 输出旁边结果接收端反射严重眼图一塌糊涂。正确做法是发送端输出 → 传输线 → 接收端 100Ω 跨接在差分对之间。如果链路较长还可以在发送端串一个小电阻做源端匹配但这不是必须的。走线长度差控制在 5mil 以内过孔尽量少参考平面完整。3.3 上电时序与未用通道处理DS90LV031A 没有复杂的上电时序要求但未用通道的输入不能悬空。悬空的 CMOS 输入会因漏电流导致输出振荡增加功耗和噪声。常见做法是把未用输入接地或接 VCC输出悬空即可。如果整颗芯片有使能引脚不用时也要拉到确定电平。下面是一段检查未用通道的简单脚本用来在网表里快速定位悬空输入。# 检查网表中 DS90LV031A 未用输入是否悬空 used_inputs {DIN1, DIN2, DIN3, DIN4} connected {DIN1, DIN2, DIN3} # 实际连接的网络 floating used_inputs - connected if floating: print(以下输入悬空需要接地或接VCC:, floating) else: print(所有输入均已处理)逻辑说明这段脚本模拟的是设计检查思路实际项目中可以用类似的网表解析脚本在投板前扫一遍。参数说明used_inputs 是器件所有输入引脚connected 是实际有网络连接的引脚差集就是悬空引脚。悬空输入在 CMOS 电路里是大忌轻则增加功耗重则导致逻辑误翻转。4. FPGA 侧 LVDS 接收与 RK3566 点 LVDS 屏的适配思路4.1 FPGA 的 LVDS 接收端怎么配FPGA 侧如果直接接收 LVDS需要用到差分输入缓冲。以常见 FPGA 为例LVDS 接收通常配置为差分对输入内部加 100Ω 终端或者外部加终端后走单端。关键参数是输入共模范围和差分阈值。DS90LV031A 输出的共模约 1.2V差分摆幅 350mV大多数 FPGA 的 LVDS 输入都能覆盖。配置时注意不要在 FPGA 内部再开强上拉或下拉否则会破坏共模。测试时可以用一个简单的 PRBS 图案做误码统计确认链路余量。// FPGA LVDS 接收端简单误码检测示意 module lvds_check( input wire clk, input wire lvds_p, input wire lvds_n, output reg error ); wire rx; IBUFDS u_ibuf (.I(lvds_p), .IB(lvds_n), .O(rx)); reg [7:0] pattern 8hA5; always (posedge clk) begin if (rx ! pattern[0]) error 1b1; pattern {pattern[0], pattern[7:1]}; end endmodule逻辑说明IBUFDS 是差分输入缓冲把 LVDS 对转成单端。pattern 是一个循环移位寄存器用来比对接收数据。参数说明实际测试时 pattern 应换成已知的 PRBS 序列error 信号接 LED 或逻辑分析仪。如果 error 频繁拉高先查终端电阻和共模电压再查 PCB 走线。4.2 RK3566 点 LVDS 屏的 Linux 适配要点RK3566 这类 SoC 点 LVDS 屏时通常走的是 RGB 转 LVDS 或 MIPI 转 LVDS 的路径。如果用的是 DS90LV031A 做发送端那么 SoC 侧输出的是并行 RGB经 DS90LV031A 转成 LVDS 后接屏。Linux 侧要改的是显示时序和背光而不是 DS90LV031A 本身。设备树里重点配的是 panel 的时序参数clock-frequency、hactive、vactive、hfront-porch、hback-porch、hsync-len、vfront-porch、vback-porch、vsync-len。这些参数必须和屏的 datasheet 一致否则会出现花屏或偏移。DS90LV031A 在这里是透明的不参与配置但它的供电和使能要在硬件上保证。// RK3566 设备树中 LVDS panel 时序片段示意 panel: panel { compatible simple-panel; width-mm 154; height-mm 86; display-timings { timing0 { clock-frequency 65000000; hactive 1024; vactive 600; hfront-porch 160; hback-porch 140; hsync-len 20; vfront-porch 12; vback-porch 20; vsync-len 3; }; }; };逻辑说明这段设备树描述的是 panel 的时序不是 DS90LV031A 的配置。DS90LV031A 作为发送器只要供电正常、输入信号正确就会把 RGB 转成 LVDS。参数说明clock-frequency 是像素时钟hactive/vactive 是分辨率前后肩和同步长度决定消隐区。改错任何一个都会导致显示异常。调试时先用示波器看 DS90LV031A 输入端的 RGB 和时钟再看输出端的差分对逐级定位。4.3 常见误用把 DS90LV031A 当接收器用DS90LV031A 是发送器不是接收器。它的引脚定义和 DS90LV032A 这类接收器不同不能对调使用。有人看到封装一样就想直接替换结果链路完全不通。选型时一定要看清型号后缀和方向。发送器输入是 CMOS输出是 LVDS接收器输入是 LVDS输出是 CMOS。两者不能混用。如果需要在同一块板上做双向要分别选发送和接收型号或者选支持双向的收发器。5. 用示波器和眼图验证 DS90LV031A 链路余量5.1 差分探头测 VOD 和共模电压验证 DS90LV031A 工作是否正常最直接的方法是差分探头测输出。把探头跨在 OUT 和 OUT- 之间看差分电压 VOD 是否在 250–450mV 之间再把探头分别对地测 OUT 和 OUT-看共模电压是否在 1.0–1.4V 之间。如果 VOD 明显偏小先查终端电阻是否漏贴或阻值不对如果共模电压偏离太多查供电和接收端偏置。测量时注意探头带宽要足够350mV 的摆幅对噪声很敏感。5.2 用眼图判断链路余量眼图是判断 LVDS 链路余量的常用手段。把差分探头接到接收端用示波器的眼图模板功能看眼高和眼宽。眼高对应差分摆幅眼宽对应时序余量。如果眼图闭合说明反射、衰减或串扰严重。常见原因是终端电阻位置不对、走线阻抗不连续、或者差分对长度差太大。调整后再测直到眼图张开。对于 3 路 RGB 转 LVDS 的场景三对数据线和一对时钟线都要分别测时钟线的眼图尤其重要因为它是采样基准。5.3 一个快速排查清单现象可能原因检查方法无输出供电缺失或使能未拉高万用表测 VCC 和使能引脚VOD 偏小终端电阻漏贴或阻值偏大测终端电阻确认 100Ω共模偏移接收端偏置不对测 OUT 对地电压眼图闭合走线阻抗不连续或反射查终端位置和走线长度误码率高串扰或电源噪声查电源去耦和差分对间距提示DS90LV031A 本身很皮实大多数问题出在终端电阻、供电去耦和走线。先查这三样再怀疑芯片。5.4 用脚本批量检查多通道参数如果板子上有多颗 DS90LV031A手工测容易漏。可以写一个简单的记录脚本把每通道的 VOD、共模和眼高记下来方便对比。# 记录多通道 DS90LV031A 实测参数 channels { CH1: {vod_mv: 340, vcm_v: 1.21, eye_mv: 280}, CH2: {vod_mv: 355, vcm_v: 1.19, eye_mv: 300}, CH3: {vod_mv: 330, vcm_v: 1.22, eye_mv: 260}, CH4: {vod_mv: 350, vcm_v: 1.20, eye_mv: 290}, } for ch, p in channels.items(): status OK if 250 p[vod_mv] 450 and 1.0 p[vcm_v] 1.4 else CHECK print(f{ch}: VOD{p[vod_mv]}mV VCM{p[vcm_v]}V EYE{p[eye_mv]}mV - {status})逻辑说明这段脚本把实测值按通道整理自动判断是否在 datasheet 范围内。参数说明vod_mv 是差分输出电压vcm_v 是共模电压eye_mv 是眼高。阈值按 DS90LV031A 的典型范围设定。实际使用时把实测值填进去就能快速定位哪一路需要返工。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门