5·06 op amp 是什么 (operational amplifier) About 7 min Lecture 10
op amp(operational amplifier)是一块现成的 amplifier 芯片,里面有几十个 transistor。这一节只讲它从外面看是什么样:三个端子,一个式子 v o = A ( v + − v − ) v_o = A(v_+ - v_-) v o = A ( v + − v − ) ,输入端不取电流,输出不能超出电源(饱和)。后面所有 op amp 电路都用这一节的模型。
① 符号和端子
符号:左边两个输入端(+ 和 −),右边一个输出端。上下两根电源引脚通常不画。
三角形左边两个输入端,右边一个输出端。标"+"的叫同相输入 (noninverting input),它的电压记作 v + v_+ v + ;标"−"的叫反相输入 (inverting input),电压记作 v − v_- v − ;输出端的电压记作 v o v_o v o 。三个都是节点电压 ,也就是对地的电压。真实的 op amp 还有两根电源引脚(例如接 +12 V 和 −12 V),符号上通常不画,但它必须接电源才能工作,放大用的能量也从这里来(5·01 )。
② 线性区的模型:只放大两个输入的差
op amp 的模型
输出没有顶到电源时(线性区):
v o = A ( v + − v − ) = A v d v_o = A\,(v_+ - v_-) = A\,v_d v o = A ( v + − v − ) = A v d v d = v + − v − v_d = v_+ - v_- v d = v + − v − 是两个输入端之间的电压差。A A A 叫开环增益 (open-loop gain),是一个非常大的正数,典型值 1 0 5 10^5 1 0 5 左右。两个输入端都不取电流:i + = i − = 0 i_+ = i_- = 0 i + = i − = 0 。
这个式子说了三件事。第一,op amp 只看 v + v_+ v + 和 v − v_- v − 的差 :两个输入都是 5 V,和两个输入都是 0 V,v d v_d v d 都是 0,输出一样。第二,"+"和"−"说的是方向:v + v_+ v + 升高,v o v_o v o 跟着升高(同方向,所以叫"同相");v − v_- v − 升高,v o v_o v o 反而降低("反相")。它们不是 电源的正负极。第三,A A A 极大,差值只要几微伏,输出就有零点几伏。
同一个模型画成电路:输入端之间是 R i n R_{in} R in ,输出是一个 VCVS A v d A v_d A v d 串一个 R o u t R_{out} R o u t 。v d v_d v d 的参考方向是 + 端为正。
上图把模型画成了电路,三个元件各对应一个参数:
输入电阻 R i n R_{in} R in :接在两个输入端之间。外电路的电流要流进 op amp 的输入端,只能穿过 R i n R_{in} R in ,大小是 v d / R i n v_d / R_{in} v d / R in 。真实值在 MΩ 以上,例如 R i n = 2 R_{in} = 2 R in = 2 MΩ、v d = 1 v_d = 1 v d = 1 mV 时,输入电流只有 0.5 nA,可以当成 0。这就是 i + = i − = 0 i_+ = i_- = 0 i + = i − = 0 的来历。
VCVS A v d A v_d A v d :op amp 放大的那一步就是一个 VCVS(5·01 ):它读输入端之间的电压 v d v_d v d ,在输出端造出 A v d A v_d A v d ,读的时候不取电流。所以分析电路时可以把 op amp 整个换成一个 VCVS;具体怎么换图,见5·16 "把 op amp 换成 VCVS"那一节。
输出电阻 R o u t R_{out} R o u t :串在 VCVS 和输出端之间。负载取电流 i i i 时,R o u t R_{out} R o u t 上掉 i R o u t iR_{out} i R o u t ,输出比 A v d A v_d A v d 低这么多。真实值几十 Ω,例如 R o u t = 50 Ω R_{out} = 50\ \Omega R o u t = 50 Ω 、负载取 2 mA 时只掉 0.1 V。
理想 op amp 把三个参数推到极限:R i n = ∞ R_{in} = \infty R in = ∞ (输入端完全不取电流)、R o u t = 0 R_{out} = 0 R o u t = 0 (输出就是 A v d A v_d A v d ,接什么负载都不变)、A → ∞ A \to \infty A → ∞ 。前两条从现在起一直用;A → ∞ A \to \infty A → ∞ 在5·08 用。
参数 意思 理想 op amp
R i n R_{in} R in 两个输入端之间的电阻:越大,op amp 从输入端取的电流越少 ∞ \infty ∞ (不取电流)
R o u t R_{out} R o u t 输出端的串联电阻:越小,接负载时输出掉得越少 0 0 0
A A A 开环增益:v d v_d v d 被放大的倍数 → ∞ \to \infty → ∞
③ 饱和:输出不能超出电源
饱和 (saturation)
op amp 的输出电压只能在 − V s a t -V_{sat} − V s a t 和 + V s a t +V_{sat} + V s a t 之间。V s a t V_{sat} V s a t 由电源决定,略低于电源电压;题目不说时就取等于电源电压(本页都取 ±12 V)。A v d A v_d A v d 算出来超出这个范围时,输出停在边界上:
v o = { + V s a t , A v d > V s a t A v d , ∣ A v d ∣ ≤ V s a t − V s a t , A v d < − V s a t v_o = \begin{cases} +V_{sat}, & A v_d \gt V_{sat} \\ A\,v_d, & |A v_d| \le V_{sat} \\ -V_{sat}, & A v_d \lt -V_{sat} \end{cases} v o = ⎩ ⎨ ⎧ + V s a t , A v d , − V s a t , A v d > V s a t ∣ A v d ∣ ≤ V s a t A v d < − V s a t 中间一段叫线性区 (linear region),两边叫饱和 。饱和时 v o v_o v o 不再等于 A v d A v_d A v d 。
线性区有多宽?要 ∣ A v d ∣ ≤ V s a t |A v_d| \le V_{sat} ∣ A v d ∣ ≤ V s a t ,即 ∣ v d ∣ ≤ V s a t / A |v_d| \le V_{sat}/A ∣ v d ∣ ≤ V s a t / A 。A = 1 0 5 A = 10^5 A = 1 0 5 、V s a t = 12 V_{sat} = 12 V s a t = 12 V 时,∣ v d ∣ ≤ 12 / 1 0 5 |v_d| \le 12/10^5 ∣ v d ∣ ≤ 12/1 0 5 V = 0.12 = 0.12 = 0.12 mV。也就是说,两个输入只要差 0.12 mV 以上,输出就顶到电源。下面这条曲线叫 op amp 的传输特性 (transfer characteristic):横轴 v d v_d v d ,纵轴 v o v_o v o 。
A = 1 0 5 A = 10^5 A = 1 0 5 、V s a t = 12 V_{sat} = 12 V s a t = 12 V:只有 ∣ v d ∣ ≤ 0.12 |v_d| \le 0.12 ∣ v d ∣ ≤ 0.12 mV 这一小段是斜线(斜率 A A A ),超出就平了,停在 ±12 V。
④ 例题:开环时输出是多少
"开环" (open loop) 指输出不接回输入,op amp 单独工作。下面两题都取理想的 R i n R_{in} R in 、R o u t R_{out} R o u t ,A = 1 0 5 A = 10^5 A = 1 0 5 ,V s a t = 12 V_{sat} = 12 V s a t = 12 V。
例题 例 1 只有差值起作用
v + = 2.00003 v_+ = 2.00003 v + = 2.00003 V,v − = 2.00000 v_- = 2.00000 v − = 2.00000 V。求 v o v_o v o 。
求差: v d = v + − v − = 0.00003 v_d = v_+ - v_- = 0.00003 v d = v + − v − = 0.00003 V = 30 μ = 30\ \mu = 30 μ V。两个输入各有 2 V,但 op amp 只看这 30 µV。
代入模型: A v d = 1 0 5 × 3 × 1 0 − 5 = 3 A v_d = 10^5 \times 3 \times 10^{-5} = 3 A v d = 1 0 5 × 3 × 1 0 − 5 = 3 V。
检查是否饱和: 3 V 在 ±12 V 之内,在线性区,所以 v o = 3 v_o = 3 v o = 3 V。
例题 例 2 饱和
(a) v + = 1 v_+ = 1 v + = 1 mV,v − = 0 v_- = 0 v − = 0 。(b) v + = 0 v_+ = 0 v + = 0 ,v − = 0.5 v_- = 0.5 v − = 0.5 mV。求 v o v_o v o 。
(a) v d = 1 v_d = 1 v d = 1 mV,A v d = 1 0 5 × 1 0 − 3 = 100 A v_d = 10^5 \times 10^{-3} = 100 A v d = 1 0 5 × 1 0 − 3 = 100 V,超过 + 12 +12 + 12 V。输出停在上边界:v o = + 12 v_o = +12 v o = + 12 V。
(b) v d = 0 − 0.5 v_d = 0 - 0.5 v d = 0 − 0.5 mV = − 0.5 = -0.5 = − 0.5 mV,A v d = − 50 A v_d = -50 A v d = − 50 V,低于 − 12 -12 − 12 V。输出停在下边界:v o = − 12 v_o = -12 v o = − 12 V。注意符号:是 v − v_- v − 比较大,所以输出往负的方向走。
两题的 ∣ v d ∣ |v_d| ∣ v d ∣ 都超过了 0.12 mV,所以都在饱和区;输出只告诉你"哪一边大",不再和 v d v_d v d 成比例。
开环几乎没法当 amplifier 用
0.12 mV 太小了:外界的噪声、两个输入端之间的微小失配都比它大,所以开环的 op amp 输出几乎总是顶在 +12 V 或 −12 V。而且 A A A 本身不准,随温度、批次能差好几倍。所以 op amp 几乎总是和 negative feedback 一起用(下一节)。唯一故意开环的用法是比较器 (comparator):它只关心输出是 +12 V 还是 −12 V,也就是"哪个输入大"。