1. 光电检测前端里,TIA为什么会变成“震荡器”
做过光电检测前端的人大概都遇到过一个很诡异的场景:电路焊好、上电、用示波器一看,输出端挂着一层几兆到几十兆的持续正弦波,输入没有光、探测器也接着,但就是不停地震。你把反馈电容从1pF加到10pF,震荡没了,可带宽也跟着塌了;你把电容再减回去,信号是快了,震荡又回来了。这个来回拉扯的过程,基本就是跨阻放大器(TIA)设计中最核心的矛盾:稳定性与带宽在同一个反馈节点上互相抢地盘。
TIA 的本质工作是把光电二极管产生的微弱电流转换成电压,跨阻增益等于反馈电阻 Rf。想提高灵敏度就得加大 Rf,想提高带宽就得减小 Rf 或者减小总输入电容,而光电二极管的结电容 Cd、运放的输入电容 Cin、PCB 寄生电容 Cpcb 又都堆在同一个反相输入端上,和 Rf 一起构成一个极点。这个极点会带来相位滞后,一旦滞后累积到接近 180 度、环路增益又大于 1,电路就自己跟自己玩起来了。所以 TIA 设计不是“选个运放、配个电阻”那么简单,它是一次围绕环路稳定性做平衡的系统工程。
这篇内容面向的是已经具备基本运放知识、正在或准备做光电检测前端的人:可能你在做光谱仪、激光测距、光通信接收端、荧光检测、颗粒计数,也可能只是想把一个光电二极管读出电路做稳。下面我会按“需求拆解—运放选型—补偿计算—噪声与带宽复核—布板与实测调试”的实际推进顺序展开,重点讲清楚每个参数为什么这么取、公式怎么算、实测出问题怎么一步步定位。所有数值例子都基于常见器件的典型量级,你可以直接套到自己的项目里做初算,再上板验证。
需要先强调一点:TIA 的很多“玄学”其实是没算清楚。它不像纯数字电路那样容错高,一个 0.5pF 的寄生电容就可能改变相位裕度十几度。所以下文所有推导都尽量给出完整算式,你可以照着把自己的参数代进去。
2. 先把需求翻译成四个可计算的指标
在动手选型之前,最忌讳的是直接抄别人的原理图。别人的 Rf=1MΩ 是人家的光功率、人家的探测器、人家的带宽需求决定的,抄过来大概率不匹配。我习惯把需求先压成四个数字,这四个数字一旦定下来,后面的所有取舍都有依据。
2.1 跨阻增益 Rf 与最小可检测光功率的换算
跨阻增益直接决定“一微安光电流能变成多少伏”。假设你的探测器响应度是 0.6A/W,最小要检测的光功率是 1μW,那么光电流 Ip = 0.6A/W × 1μW = 0.6μA。如果后级 ADC 的满量程是 2.5V,你希望 0.6μA 至少对应几十毫伏的可分辨信号,那 Rf 就不能太小。
反过来算更实用:给定输出摆幅上限 Vout_max 和最大光电流 Ip_max,Rf 的上限就被卡死了:
Rf ≤ Vout_max / Ip_max
举例:运放供电 ±5V,输出实际可用摆幅按 ±3.5V 算,最大光电流 50μA,则 Rf ≤ 3.5V / 50μA = 70kΩ。这时候如果你非要用 1MΩ,输出早就饱和削顶了,信号完全失真。很多人忽略这一点,只看灵敏度不看动态范围,结果强光一来波形就平顶。
同时还要算噪声下限。Rf 上的热噪声电流密度是 sqrt(4kT/Rf),Rf 越大,电阻热噪声越小,灵敏度越高,但带宽越窄。这就是第一个明确的取舍点。
2.2 带宽目标与增益带宽积的硬约束
TIA 的闭环带宽近似为:
f_-3dB ≈ sqrt( GBW / (2π × Rf × C_total) )
其中 GBW 是运放的增益带宽积,C_total = Cd + Cin + Cpcb + Cf。这个公式是 TIA 设计里最重要的一条,它告诉你带宽不是随便给的,它被 GBW、Rf、C_total 三者共同锁死。
举个实际例子:Rf = 1MΩ,C_total 估 5pF,想要 1MHz 带宽,那么需要 GBW ≥ 2π × Rf × C_total × f² = 2π × 1e6 × 5e-12 × (1e6)² ≈ 3.14e7,也就是约 31MHz。注意这里是 f 的平方关系,带宽翻倍,GBW 需求变四倍。所以高跨阻 + 高带宽是非常昂贵的组合。
我一般会把这个公式反过来用:先看手头运放的 GBW,再算能达到的最大带宽,如果算出来离需求差得远,就说明要么降 Rf、要么换运放、要么接受更窄的带宽,三条路必须选一条,硬撑没有意义。
2.3 光电二极管电容 Cd 的实测取值
Cd 是影响稳定性和带宽的关键参数,但数据手册给的往往是特定反偏电压下的值,且容差可能达到 ±20%。更麻烦的是,Cd 随反偏电压变化明显:反偏越大,结电容越小。所以如果你用零偏(光伏模式),Cd 会比手册标称值大不少;用反偏(光导模式)则小一些但漏电流增大。
我的做法是:设计初算时按手册最大值再加 20% 余量,上板后用 LCR 表在实际工作偏压下测一次,或者用运放做成缓冲器测阶跃响应反推。宁可把 Cd 估大,因为估小了会导致补偿不足、相位裕度不够,直接震荡;估大了只是带宽保守一点,不会炸。
2.4 相位裕度的目标值定在多少
相位裕度(PM)是稳定性的量化指标。工程上常用标准是 PM ≥ 45° 保证不震荡,PM ≥ 60° 保证阶跃响应没有明显过冲,PM ≥ 65° 则基本可以认为“很稳”。
对 TIA 来说,我通常把目标定在60° 到 70°之间。原因有两个:一是 Cd 和 Cpcb 有不确定性,留 10° 左右的余量应对寄生;二是 TIA 后面常接 ADC 采样或比较器,过冲会带来额外的建立时间误差。低于 45° 时,虽然理论上还稳定,但频响会出现明显峰化,噪声带宽被放大,实际信噪比反而变差。
把上面四个数字整理成一张表,后面所有设计都对着这张表走:
| 指标 | 符号 | 本例取值 | 决定因素 |
|---|---|---|---|
| 跨阻增益 | Rf | 100kΩ | 动态范围与灵敏度折中 |
| 目标带宽 | f_-3dB | 500kHz | 信号调制频率 |
| 总输入电容 | C_total | 6pF | Cd 4pF + Cin 1.5pF + 寄生 0.5pF |
| 相位裕度 | PM | ≥60° | 稳定性余量 |
| 运放 GBW | GBW | ≥20MHz | 由带宽公式反推 |
3. 运放选型:不是 GBW 越高越好
新手最容易犯的错是“带宽越高越保险”,直接抓一颗几百 MHz 的运放往上怼。结果发现该震荡还是震荡,甚至更厉害。因为高 GBW 运放往往输入电容更大、开环输出阻抗特性更复杂,反而把寄生极点推得更敏感。选型要看的是一组参数的组合,不是单一指标。
3.1 输入偏置电流与 FET 输入运放的适用边界
TIA 的输入端是高阻抗节点,运放的输入偏置电流 Ib 会直接叠加到光电流上形成误差。误差电压等于 Ib × Rf。如果 Rf = 1MΩ,Ib = 1nA,误差就是 1mV;如果 Ib = 100nA,误差直接 100mV,把微弱信号全淹了。
所以低跨阻(几十 kΩ 以下)时,双极型运放也能用,它的电压噪声低;但高跨阻(几百 kΩ 以上)必须选FET 输入或 CMOS 输入运放,Ib 可以做到 pA 级。选型时看两个数:室温 Ib 和 Ib 随温度的漂移。有些运放标称 1pA,但 60 度时涨到几百 pA,如果你的设备要在宽温下工作,这个漂移必须查曲线图而不是只看典型值。
提示:数据手册里 Ib 的正负号也要留意。有些运放 Ib 是流入,有些是流出,配合探测器暗电流的方向,可能导致输出偏到某一侧轨。这时候可以在同相端加一个同量级的电阻做偏置电流补偿,但会增加噪声,慎用。
3.2 电压噪声与电流噪声的权衡
TIA 的噪声贡献主要有三块:Rf 的热噪声、运放的电压噪声在 C_total 上产生的噪声增益放大、运放的电流噪声在 Rf 上产生的压降。总输出噪声近似:
en_out ≈ sqrt( (in × Rf)² + (en × (1 + Rf·2πf·C_total))² 的积分 + 4kT·Rf )
不用被这个式子吓到,实际选型时抓重点:高 Rf 场景下,电流噪声 in 和 Rf 热噪声是主导;低 Rf 场景下,电压噪声 en 经噪声增益放大后更关键。FET 输入运放通常 in 极小(fA 级),en 偏大(几 nV 到十几 nV);双极型运放相反。所以高跨阻优先 FET 输入,低跨阻可考虑低 en 的双极型。
另一个容易忽略的是en 的 1/f 噪声拐点频率。如果你的信号是低频的(比如直流光功率监测、慢变荧光),1/f 噪声会在低频段显著抬升,这时候要选 1/f 拐点低的运放,而不是只看 10kHz 处的噪声密度。
3.3 输入电容 Cin 对补偿量的连锁影响
Cin 直接进入 C_total,影响带宽和稳定性。但它还有个隐蔽的作用:它和 Cf 一起决定补偿电容的有效性。小 Cin 的运放能让你的 Cf 取值更小,从而带宽损失更少。所以选型表里必须把 Cin 列出来对比。
下面是几类常见运放配置的定性对比(数值为量级示意,实际以具体器件手册为准):
| 运放类型 | Ib 量级 | en 量级 | Cin 量级 | 适用 Rf 范围 |
|---|---|---|---|---|
| 双极型通用 | nA~μA | 低(3~5nV) | 2~5pF | 10kΩ 以下 |
| 双极型低噪声 | nA | 极低(1~2nV) | 3~8pF | 10k~100kΩ |
| FET 输入 | pA | 中(8~20nV) | 2~6pF | 100kΩ~10MΩ |
| CMOS 输入 | fA~pA | 较高(15~30nV) | 2~5pF | 1MΩ 以上 |
3.4 压摆率与输出驱动能力常被漏掉
TIA 的输出要驱动后级 ADC 的采样电容或长线,压摆率不够会导致大信号边沿变缓,等效带宽下降。尤其当你的信号是脉冲式的(比如激光脉冲回波),上升沿时间受压摆率限制。计算很简单:需要的压摆率 SR ≥ 2π × f × Vout_peak。500kHz、2V 峰值,SR 至少 6.3V/μs,实际留 2 倍余量取 12V/μs 以上。
还有一点:很多高 GBW 运放是“去补偿”或“非完全补偿”的,标称 GBW 高但只在增益 ≥ 某值时稳定。TIA 的噪声增益在低频接近 1(单位增益),如果运放要求最小增益 ≥ 5 才稳定,那它根本不适合做 TIA。这个坑我踩过,选了一颗标称 200MHz 的运放,结果单位增益下自激,查手册才发现它标注“稳定增益 ≥ 10”。所以选型第一关是确认单位增益稳定。
4. 补偿电容 Cf 的计算、误算与实测修正
Cf 是整个 TIA 设计里最需要精确、也最容易出错的元件。它太小则相位裕度不足、震荡或严重峰化;太大则带宽被压死。很多人靠“试着焊”来确定 Cf,这在小批量调试时可以,但量产或换批次器件就会翻车。正确做法是算出来,再用实测微调。
4.1 从相位裕度反推 Cf 的完整算式
TIA 环路里,主极点由 Rf 和 C_total 构成的噪声增益零点/极点决定。经典结论是:要让相位裕度达到 45°,Cf 需满足
Cf ≥ sqrt( C_total / (2π × Rf × GBW) )
这个式子的物理含义是:Cf 与 C_total 构成的分压比,正好把噪声增益的高频抬升压回到与 GBW 相交时环路增益降到 1 的位置。要更高的相位裕度,Cf 要按比例加大。经验上,PM 从 45° 提到 60°,Cf 大约要增加到 1.5 到 2 倍。
代入前面的例子:C_total = 6pF,Rf = 100kΩ,GBW = 20MHz:
Cf ≥ sqrt( 6e-12 / (2π × 1e5 × 2e7) ) = sqrt( 6e-12 / 1.2566e13 ) ≈ sqrt(4.775e-25) ≈ 6.9e-13 F ≈ 0.69pF
算出来不到 1pF,这个量级已经和 PCB 寄生电容、焊盘电容同一水平了。这就是高带宽 TIA 的现实困境:理论需要的 Cf 可能小于你能稳定实现的寄生电容。这种情况下,PCB 上两个焊盘之间的几毫米走线就构成了“天然 Cf”,你根本控制不住。解决办法只有降 Rf、降带宽需求,或者用更小的封装、更紧凑的布局把寄生压到 0.2pF 以下。
再算一个更现实的例子:Rf = 1MΩ,C_total = 5pF,GBW = 10MHz:
Cf ≥ sqrt( 5e-12 / (2π × 1e6 × 1e7) ) = sqrt( 5e-12 / 6.283e13 ) ≈ sqrt(7.96e-26) ≈ 0.28pF
同样小得难以实现。所以真实的高跨阻 TIA,往往实际带宽远低于公式算出的理想值,因为寄生电容已经把 Cf 撑大了。这也解释了为什么很多人“按公式算完发现带宽对不上”——不是你算错了,是寄生在替你做补偿。
4.2 用噪声增益曲线核对补偿是否到位
更直观的方法是画噪声增益(Noise Gain)随频率的曲线。噪声增益 = 1 + Zf/Zin,其中 Zf 是 Rf 并联 Cf,Zin 是 C_total 的容抗。曲线在低频是 1,随着频率升高,C_total 容抗下降,噪声增益开始以 +20dB/dec 上升,到 fz = 1/(2πRfCf) 处被 Cf 压平,形成一个平台,平台高度约为 C_total/Cf。
关键判据:这个平台与运放开环增益曲线的交点,对应的相位裕度要够。平台越高(即 C_total/Cf 越大),交点频率越低,相位裕度越好,但带宽越窄。反过来平台太低,交点落在开环曲线下降较陡的区域,相位裕度就差。
实用做法:在仿真里把开环增益曲线和噪声增益曲线画在同一张图上,看交点处两条曲线的斜率差。如果开环曲线在交点处是 -20dB/dec,噪声增益是平的,那相位裕度约 90°;如果开环已经是 -40dB/dec,那相位裕度就很危险。这个图比单纯套公式更能反映真实情况,因为公式里的 GBW 是单极点近似,实际运放往往有第二极点。
4.3 Cf 用多个小电容串联来凑小容值
当算出 0.5pF 这种值时,市面上的电容最小一般到 0.5pF 或 1pF,且容差大(±0.25pF 很常见)、温度系数差。我的做法是用两个 1pF 串联得到 0.5pF,或者用 1pF 与 2pF 串联得到 0.67pF。串联的好处是容值更准(相对误差被平均)、耐压更高,缺点是占板面积大、寄生增加。
另一个技巧是用PCB 上的寄生电容当补偿:故意在反馈路径下方铺一小块铜,通过调整面积来微调 Cf。这在射频和高速电路里常见,但对量产一致性不友好,只适合小批量或原型验证。
注意:Cf 一定要用 C0G/NP0 材质的电容。X7R、Y5V 的容值随电压和温度变化可达 ±30% 以上,你的相位裕度会随温度和信号幅度漂移,今天稳明天震。这个钱不能省。
4.4 实测相位裕度的两种方法
算完之后必须实测验证。方法一:方波响应法。在输入端注入一个小幅度方波(通过一个注入电容耦合,模拟电流阶跃),看输出波形的过冲量。过冲约 4% 对应 PM≈65°,过冲 16% 对应 PM≈50°,过冲 25% 对应 PM≈45°。这个方法简单,但要求注入的阶跃足够快。
方法二:闭环频响法。用网络分析仪或带扫频功能的信号源,测闭环幅频特性,看峰化量。峰化 0dB 对应 PM≈90°,峰化 1dB 约 60°,峰化 3dB 约 45°。峰化超过 3dB 就说明补偿不足了。
我一般先用方法一快速判断,因为不需要额外仪器,示波器加一个信号源就够。具体操作:信号源输出 1kHz 方波,幅度 100mV,经 10pF 电容耦合到反相输入端(模拟探测器电流注入),示波器看输出。如果输出有过冲和振铃,就加大 Cf;如果是缓慢爬升无过冲,说明 Cf 偏大,带宽被压,可以适当减小。
5. 噪声、带宽与布局的三角博弈
补偿算完、电路能稳定工作只是过了第一关。TIA 的实际性能还取决于噪声控制、带宽验证和 PCB 布局。这三者之间同样存在矛盾:降噪声要加大 Rf,加 Rf 压带宽;提带宽要减电容,减电容又可能引入更多寄生和干扰。
5.1 输出噪声的逐项估算与主导项判断
前面给过噪声公式,这里讲怎么落地估算。以 Rf = 1MΩ、C_total = 5pF、运放 en = 10nV/√Hz、in = 1fA/√Hz、带宽 100kHz 为例:
- Rf 热噪声电流密度:sqrt(4kT/Rf) = sqrt(4×1.38e-23×300/1e6) ≈ 4.07e-15 A/√Hz,乘以 Rf 得电压噪声 4.07μV/√Hz
- 运放电流噪声:1fA/√Hz × 1MΩ = 1nV/√Hz,可忽略
- 运放电压噪声经噪声增益放大:低频时噪声增益约 1,高频时升到 C_total/Cf,假设平台为 3,则等效 30nV/√Hz,再乘带宽积分
从量级看,这个大 Rf 场景下 Rf 热噪声(4μV/√Hz)远超运放电压噪声(10nV/√Hz 量级),所以选超低噪声运放意义不大,反而 Rf 本身是瓶颈。总输出噪声约 4.07μV/√Hz × sqrt(1.57×100kHz) ≈ 4.07e-6 × 396 ≈ 1.6mV RMS。这个值和信号幅度比较,就能判断信噪比够不够。
反过来如果 Rf = 10kΩ,热噪声降到 0.4μV/√Hz,但运放电压噪声经放大后可能到 30nV×平台,如果平台为 5 就是 150nV/√Hz,噪声增益放大成为主导之一,且带宽可以做高。所以低跨阻场景反而要挑低 en 运放。
这个分析告诉我们:噪声优化要先判断主导项,不要盲目堆低噪声器件。高跨阻下 Rf 热噪声是天花板,再怎么选运放也压不下去,想降噪只能降带宽(减小噪声带宽)或降 Rf(但牺牲灵敏度)。
5.2 噪声增益峰化如何吃掉信噪比
补偿不足时,噪声增益曲线在交叠频率附近会出现峰化(peaking)。峰化意味着该频段的噪声被额外放大,而信号未必同步增强,导致信噪比下降。实测表现是:明明带宽够、信号也在,但底噪比理论值高出一截。
排查方法:用频谱分析仪看输出噪声谱,如果在中高频某处有个明显的隆起,而信号源没输出,那就是噪声增益峰化,说明 Cf 偏小或 C_total 被低估。加大 Cf 或重新评估布局寄生即可压平。
5.3 输入端布局:一毫米走线值多少 pF
反相输入端是 TIA 最敏感的节点,它的寄生电容直接进 C_total。经验数据:普通 FR4 上,1mm 长、0.2mm 宽的走线对地电容约 0.1pF 量级;一个过孔约 0.3~0.5pF;一个 0603 焊盘约 0.2pF。听起来很小,但在 C_total 只有 5pF 的场景下,多两个过孔就占了 10%~20%。
布局原则:
- 探测器引脚到运放反相输入端的距离压到最短,能不用过孔就不用
- 反馈电阻和 Cf 紧贴运放放置,反馈回路面积最小化
- 反相输入端周围不要铺地,或者做“开窗”处理,减少对地电容
- 同相端接地要就近、单独走线,不要和数字地混
- 运放电源引脚就近放 0.1μF 加 10μF 去耦,电源噪声会通过运放耦合到输出
还有一点常被忽略:光电二极管本身的封装电容。TO 封装、SMD 封装、带透镜的封装,引脚电容差异很大。如果探测器离运放较远,中间用同轴线连接,同轴线每米约 100pF,几厘米就是几 pF,必须算进 C_total。这种场景下,宁可把运放做到探测器旁边(做成小模块),也不要拉长线。
5.4 屏蔽与接地:别让 50Hz 和开关电源钻进来
TIA 的高阻输入节点极易拾取干扰。最常见的现象是输出上叠加 50Hz 工频或几十 kHz 的开关电源纹波。前者来自空间电场耦合,后者来自电源传导。
对策分三层:第一层是空间屏蔽,把 TIA 整体放进金属盒,盒子接模拟地,探测器窗口留出;第二层是电源净化,模拟供电用低压差线性稳压器,前面加 LC 滤波,避免开关电源纹波直接进运放;第三层是接地设计,模拟地和数字地单点连接,连接点选在 ADC 下方,避免数字回流经过模拟区。
如果干扰已经出现,排查顺序:先断开探测器看干扰是否消失(判断是空间耦合还是电路本身),再把输入端对地短接看输出(判断是输入耦合还是电源耦合)。这个二分法能快速缩小范围。
6. 调试实录:一次 2MHz 震荡的完整排查链路
理论讲完,说一个我实际遇到的案例,把排查思路完整走一遍。这个案例很有代表性,因为最后发现的问题既不是 Cf 也不是运放,而是布局。
6.1 现象描述与初步假设
电路参数:Rf = 470kΩ,Cf 按公式算得 0.8pF(用 1pF 与 3.3pF 串联凑 0.77pF),运放 GBW 50MHz,FET 输入,探测器 Cd 标称 3pF。目标是 300kHz 带宽。上电后输出端出现约 2MHz 的持续正弦震荡,幅度 200mV 峰峰值,用手靠近电路板震荡频率会漂移。
初步假设有三个:一是 Cf 不足,二是 C_total 被低估,三是布局寄生过大。按优先级,先验证 Cf。
6.2 用方波注入法确认相位裕度不足
往输入端注入 1kHz 方波(经 10pF 耦合),输出过冲约 35%,伴随明显振铃。按经验,35% 过冲对应 PM 约 40°,确实不足。把 Cf 临时加大到 2pF,震荡消失,过冲降到 5% 左右,说明方向对了——补偿不足。
但这只是治标。因为按公式,0.8pF 应该够(算出来需要 0.69pF),实际却不够,说明 C_total 比估计的大。问题变成:多出来的电容在哪?
6.3 分段测量找出隐藏的 3pF
我做了三件事:
第一,把探测器焊下来,用 LCR 表在实际反偏下测 Cd,结果是 3.8pF,比标称 3pF 大 27%。这一项就把 C_total 从估计的 4.5pF 抬到 5.3pF。
第二,检查 PCB,发现反相输入端到探测器焊盘之间有一段 6mm 走线,且穿了两个过孔(为了避开底层的地平面开槽)。按 0.1pF/mm 加过孔 0.4pF×2 估,这段贡献约 1.4pF。加上运放 Cin 1.5pF、焊盘 0.4pF,C_total 实际约 8.6pF,比估计高了近一倍。
第三,用网络分析仪测闭环频响,看到在 2MHz 附近有明显峰化,峰化量约 5dB,印证了相位裕度不足的判断。
到这里根因清楚了:Cd 实测偏大 + 走线过孔寄生,导致 C_total 被低估近一倍,按错误 C_total 算出的 Cf 自然不够。
6.4 修复方案与验证数据
修复分两步走:
第一步,改布局。把探测器直接贴到运放反相输入端旁边,走线从 6mm 缩到 1.5mm,去掉两个过孔,反相输入端周围的地铜皮开窗。改完后重测,C_total 降到约 6.2pF。
第二步,重算 Cf。C_total = 6.2pF,Rf = 470kΩ,GBW = 50MHz:
Cf ≥ sqrt( 6.2e-12 / (2π × 4.7e5 × 5e7) ) = sqrt( 6.2e-12 / 1.476e14 ) ≈ sqrt(4.2e-26) ≈ 0.2pF
理论值 0.2pF,但考虑要有 60° 以上相位裕度,取 1.5 倍余量,实际用 0.5pF(1pF 与 1pF 串联)。焊上后测方波响应,过冲 3%,PM 约 68°。测闭环带宽,-3dB 点在 310kHz,符合目标。噪声测试:输出 RMS 噪声约 180μV(带宽 300kHz),折算输入电流噪声约 0.38nA RMS,和理论估算吻合。
这个案例的教训很直接:公式没错,错在输入参数。C_total 必须实测或按最坏情况估足,否则算出来的 Cf 是“精确的错误”。另外,布局优化比加大 Cf 更划算,因为加大 Cf 会直接牺牲带宽,而减小寄生是纯收益。
6.5 换批次器件后的复现性检查
小批量调好后,我拿了另外五片同型号探测器和运放做复现。结果有一片在常温下轻微峰化(约 2dB),一片完全正常。查下来是探测器 Cd 批次差异,最大的一片到 4.5pF。这说明 Cf 的取值必须按 Cd 的上限来算,不能按典型值。
最终我把 Cf 定在 0.68pF(用 1pF 与 2.2pF 串联),牺牲一点带宽(实测 -3dB 降到 280kHz),换来全批次稳定。这个取舍在量产里是必须的:宁可带宽保守 10%,也不要让 1% 的板子震荡返修。
7. 几个容易翻车的细节和我的取舍习惯
除了主链路,还有一些边角问题经常让人卡住。这些点散落在各种讨论里,我按自己的经验集中说几条。
7.1 探测器偏置方式对 Cd 和暗电流的双重影响
光伏模式(零偏)下暗电流极小,噪声低,但 Cd 大、响应速度慢;光导模式(反偏)下 Cd 小、速度快,但暗电流随偏压和温度上升。如果你的应用是微弱直流光检测,优先零偏;如果是脉冲检测或高带宽,用反偏,但要接受暗电流带来的直流偏移,并在后级做交流耦合或数字基线校正。
反偏电压也不是越大越好。很多探测器在 5V 反偏时 Cd 已经降到接近饱和,再加大偏压收益很小,反而暗电流翻倍。我一般从 2V 到 5V 之间试,看暗电流和带宽的实际平衡点。
7.2 反馈电阻的选型不只是阻值
Rf 的阻值精度影响增益精度,但更关键的是寄生电容和电压系数。大阻值厚膜电阻(比如 1MΩ 以上)往往有较大的寄生并联电容(0.1~0.3pF),这个电容直接并联在 Cf 上,等于替你做了一部分补偿,但也让你的 Cf 计算失准。薄膜电阻寄生小,但贵。
我的习惯是:Rf 超过 500kΩ 时,优先选薄膜或专用高阻低寄生型号,并且在算 Cf 时把电阻寄生电容也算进 Cf 里。如果用手头普通电阻,实际 Cf 会比标称值大,带宽比预期低,这时候不要盲目减小 Cf 去“追带宽”,先确认是不是电阻寄生在起作用。
另外,大阻值电阻的电压系数会导致大信号时阻值变化,产生非线性。信号动态范围大的场合要注意。
7.3 双电源还是单电源
TIA 用双电源(±5V 或 ±3.3V)最省心,因为输入端可以工作在 0V 附近,探测器零偏或小反偏都方便,输出摆幅也够。单电源方案需要把同相端抬到 Vcc/2 做虚地,这时候要注意:虚地的噪声会直接进入信号链,必须用低噪声基准加良好去耦;另外输入端的共模电压不能太低,否则运放输入级线性度变差。
我个人的偏好是小信号、高阻抗场景一律双电源,省掉虚地这一堆麻烦。如果系统只有单电源,那就用一颗低噪声基准加运放缓冲做虚地,并在同相端加 RC 滤波。
7.4 输出端要不要加隔离电阻
TIA 输出接 ADC 或长线时,建议串一个小电阻(22Ω 到 100Ω)做隔离。原因有两个:一是隔离运放输出端看到的容性负载,防止容性负载导致相位裕度下降甚至震荡;二是抑制反射。这个电阻和 ADC 采样电容构成低通,取值时注意不要影响信号带宽。如果 ADC 采样保持的开关电荷注入较明显,还可以在电阻后加一个小电容做电荷缓冲,但要算好这个电容和隔离电阻形成的极点位置。
7.5 温度漂移的补偿思路
TIA 的直流漂移主要来自三处:Ib 随温度变化、探测器暗电流随温度变化、Rf 的温漂。前两项在宽温场景下可能主导。对策:选 Ib 温漂小的运放;如果暗电流是主要漂移源,可以考虑加温度传感器做数字补偿(标定一条漂移曲线,运行时查表扣减);Rf 选低温漂型号(25ppm/℃ 以内)。
交流耦合可以消掉直流漂移,但会引入高通截止频率,低频信号会受影响。如果信号本身是缓变的直流光强,就不能用交流耦合,只能靠补偿。
8. 从初算到量产的检查清单
写到这里,把整个流程收拢成一份可以照着走的清单。我每次做新 TIA 设计都会过一遍,能省掉很多返工。
第一步,明确四个数:Rf(由动态范围和灵敏度定)、目标带宽、C_total(按 Cd 最大值 + Cin + 寄生估足)、相位裕度目标(60° 以上)。这四个数不明确,后面全是瞎试。
第二步,反推 GBW 并选型:用带宽公式算所需 GBW,再留 1.5 到 2 倍余量选运放。选型时确认单位增益稳定、Ib 和 en/in 匹配你的 Rf 量级、Cin 尽量小、压摆率够用。
第三步,算 Cf 并评估可实现性:用 Cf ≥ sqrt(C_total/(2π·Rf·GBW)) 算最小值,乘 1.5 倍取相位裕度余量。如果算出来小于 1pF,先别急着焊,评估你的布局寄生能不能压到那个量级;压不到就降 Rf 或降带宽。
第四步,仿真核对噪声增益曲线:把开环增益和噪声增益画在一起,看交点和斜率,确认没有峰化。有条件的话做闭环 AC 扫频。
第五步,布板时把寄生当一等公民:输入端走线最短、不过孔、周围开窗;反馈元件紧贴运放;模拟地和数字地单点连接;电源就近去耦;整体屏蔽。
第六步,上板后先测稳定性再测指标:方波注入看 overshoot,确认 PM 够;再测带宽、噪声、直流偏移。震荡没解决之前不要谈其他指标,没有意义。
第七步,做批次复现:至少拿 5 片不同批次的探测器和运放验证,按最坏情况定 Cf 和偏置。量产件的容差往往比实验室样品大得多。
几个反复出现的错误,我列成对照表放在这里,方便快速自查:
| 现象 | 最可能原因 | 排查动作 | 处理 |
|---|---|---|---|
| 输出持续正弦震荡 | Cf 不足或 C_total 低估 | 方波注入看过冲 | 加大 Cf 或改布局降寄生 |
| 高频峰化但未震荡 | 相位裕度 45° 左右 | 闭环扫频看峰化量 | Cf 增到 1.5 倍 |
| 底噪高于理论 | 噪声增益峰化或电源干扰 | 频谱看隆起,断输入看 | 压平增益曲线,净化电源 |
| 输出削顶 | Rf 过大超动态范围 | 算 Vout_max/Ip_max | 降 Rf 或加衰减 |
| 直流偏移随温度漂 | Ib 或暗电流温漂 | 变温测偏移 | 换运放或数字补偿 |
| 带宽远低于计算 | Rf 寄生电容或布局电容大 | 测实际 C_total | 换低寄生电阻,优化布局 |
| 小信号正常大信号失真 | 压摆率不足或 Rf 电压系数 | 加大信号看边沿 | 换高 SR 运放、换电阻 |
最后分享一个我自己养成的习惯:每次做完 TIA,我都会留一个“调试焊盘”,专门并联 Cf 用,位置就在反馈电阻两端,方便随时加减小电容试。同时在原理图上把 C_total 的估算值和实测值都标出来,下次做类似设计直接参考。TIA 这个电路看着简单,就那么几个元件,但真正做好需要把每个寄生的来龙去脉都摸清楚,算得细、测得勤、留余量,比什么技巧都管用。