ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AD633模拟乘法器实战:乘法、除法、开方电路搭建与避坑指南

AD633模拟乘法器实战:乘法、除法、开方电路搭建与避坑指南 1. 从运放加减法到模拟乘法器的跨越1.1 为什么运放做乘除开方这么费劲做过模拟电路的朋友都有个体会用运放搭加减法电路那叫一个顺手。反相加法器、同相加法器、差分放大器几个电阻一配虚短虚断一列传递函数就出来了。但一旦需求变成“把两个信号乘起来”或者“求一个信号的平方根”运放那套线性思维立刻就不够用了。原因不复杂。运放本身是个高增益的线性放大器它的反馈网络如果是线性的整个闭环就是线性的。加减法本质上是线性运算所以运放能轻松搞定。但乘法是典型的非线性运算两个变量相乘输出和输入之间不再是一条直线关系。你没法用纯电阻网络构造出一个乘法传递函数因为电阻网络只能实现加权求和。那用运放加二极管行不行可以对数-反对数电路就是这条路。利用PN结的指数特性先取对数再相加再取反对数理论上能实现乘法。但实际做起来二极管的温度漂移、对数一致性、动态范围这些问题能把人折磨疯。我早年试过用匹配三极管对做对数乘法常温下标定好了手一摸电路板输出就飘根本没法用。所以当需要真正稳定、可重复的模拟乘法运算时专用模拟乘法器芯片才是正路。AD633就是这类芯片里最经典、最容易上手的一颗。1.2 AD633到底能做什么AD633是一颗四象限模拟乘法器。所谓四象限意思是X和Y两个输入都可以是正也可以是负输出极性自动跟随。它的核心传递函数是W (X1 - X2)(Y1 - Y2) / 10 Z分母那个10是芯片内部的标度因子输出单位是伏特。Z引脚可以接入一个偏置电压用来做加法或者电平搬移。整个芯片内部用的是跨导线性乘法单元配合激光修调精度和温漂都比自己搭的分立方案好一个数量级。它能干的活包括但不限于模拟乘法、除法、平方、开方、倍频、混频、压控增益、功率计算。基本上任何涉及两个模拟量相乘或者非线性变换的场合AD633都能派上用场。1.3 这篇文章适合谁看如果你已经会用运放搭基本的放大和加减法电路想往非线性模拟计算方向走一步那这篇内容就是写给你的。我会从AD633的引脚功能讲起把乘法、除法、开方三种电路的搭建过程拆开揉碎给出具体的电阻取值、供电方案、波形实测结果最后把我踩过的坑和排查经验一并分享出来。不需要你有很深的半导体物理背景只要能看懂运放虚短虚断就能跟着做下来。2. AD633芯片内部结构与外围配置2.1 引脚功能逐个拆解AD633常见的是8引脚DIP或者SOIC封装引脚定义如下引脚编号名称功能说明1X1X通道同相输入2X2X通道反相输入3Y1Y通道同相输入4Y2Y通道反相输入5Z求和输入偏置注入6W输出7V-负电源8V正电源X1和X2构成一个差分输入对Y1和Y2同理。芯片内部实际计算的是(X1-X2)和(Y1-Y2)的乘积。如果你只用一个输入信号通常把另一端接地或者接到参考电平上。Z引脚是一个高阻抗求和节点内部通过一个电阻连接到输出放大器。你可以把它理解成运放的反相输入端只不过这个“运放”的反馈网络已经集成好了。给Z加电压输出就会叠加这个电压。2.2 供电方案与去耦要点AD633的标准供电是正负15V也可以工作在正负5V到正负18V范围内。供电电压直接决定了输出信号的动态范围。比如正负15V供电时输出大概能到正负13V左右再高就削顶了。去耦电容这件事必须认真对待。我的习惯是在芯片的V和V-引脚各放一个0.1uF的陶瓷电容到地再并联一个10uF的钽电容。0.1uF负责高频10uF负责低频。这两个电容要尽量靠近芯片引脚走线越短越好。我见过有人只在电源入口放了一个电解电容结果输出波形上叠了几十毫伏的高频毛刺查了半天以为是乘法器本身的问题其实就是去耦没做好。注意AD633的电源抑制比虽然不错但并不意味着可以省去去耦。模拟乘法器对电源纹波比普通运放更敏感因为电源波动会直接调制乘法核心的跨导。2.3 输入输出阻抗与负载考虑AD633的输入阻抗标称是10MΩ级别对大多数信号源来说基本可以忽略负载效应。但输出端就不一样了输出阻抗大概在几十欧姆量级带负载能力有限。如果你后面接的是低阻抗负载比如50Ω的示波器输入档位那输出幅度会明显下降。我的做法是在输出端串一个100Ω左右的电阻再接到示波器的高阻输入档。这样既能保护输出级又不会因为负载太重导致波形失真。如果你确实需要驱动低阻抗负载后面加一级运放缓冲用NE5532或者OPA2134都行接成电压跟随器即可。3. 乘法电路搭建与波形实测3.1 最简乘法电路的连接方式先做最基础的乘法。目标输出W X * Y / 10。连接方案如下X1接信号源AX2接地Y1接信号源BY2接地Z接地W接示波器供电正负15V去耦电容按前面说的配置。信号源A和B先用函数发生器给正弦波频率1kHz幅度1V峰峰值。理论上两个1V峰峰值的正弦波相乘输出应该是W (1 * 1) / 10 0.1V峰峰值的二倍频信号因为sin(a) * sin(b) 0.5[cos(a-b) - cos(ab)]当a和b频率相同时输出是直流分量加二倍频分量。但AD633的Z引脚接地时直流分量被隔掉了所以输出只有二倍频。实测下来输出确实是2kHz的正弦波幅度大约100mV峰峰值和理论计算吻合。波形干净没有明显失真。3.2 输入幅度对输出波形的影响这里有个细节值得展开说。AD633的线性输入范围大概在正负10V以内超过这个范围内部晶体管会进入非线性区输出波形开始削顶或者出现畸变。我做了个对比测试输入A幅度输入B幅度理论输出实测输出波形状态1Vpp1Vpp100mVpp98mVpp干净正弦5Vpp5Vpp2.5Vpp2.4Vpp干净正弦10Vpp10Vpp10Vpp9.2Vpp轻微削顶12Vpp12Vpp14.4Vpp11Vpp明显削顶从表格能看出来输入在5Vpp以内时线性度很好到10Vpp时输出已经开始压缩12Vpp就严重失真了。所以实际使用时建议把输入信号控制在正负5V以内留足余量。实操心得如果你需要处理大幅度信号先在前面加一级分压或者衰减把信号压到AD633的舒适区算完再放大回去。虽然多了一级但精度和波形质量会好很多。3.3 直流偏置与Z引脚的妙用Z引脚不只是接地用的。给它加一个直流电压输出就会叠加这个电压。这个功能在做电平搬移或者加法运算时特别有用。举个例子我想让输出始终在一个正电压范围内方便后面接单电源ADC。那就在Z引脚加一个2.5V的基准电压。这样即使乘法结果是负的输出也会被抬到2.5V以上。具体接法用一颗TL431产生2.5V基准经过一个电压跟随器缓冲后接到Z引脚。注意Z引脚的输入阻抗很高但为了稳定还是加一级缓冲比较稳妥。实测中我发现Z引脚的电压会以1:1的比例出现在输出端和乘法结果直接相加。这个特性在做“乘法加偏置”的复合运算时非常方便省去了后面再加一级加法器的麻烦。4. 除法电路的工作原理与实现4.1 除法电路的反馈结构除法是乘法的逆运算。AD633本身只做乘法但把乘法器放在运放的反馈环路里就能实现除法。原理是这样的把乘法器的输出经过一个运放反相后反馈到乘法器的一个输入端。运放的同相端接被除数信号。由于运放的虚短特性乘法器的一个输入会被强制等于被除数除以另一个输入。具体电路运放A的反相输入端接乘法器输出W运放A的同相输入端接被除数信号V1运放A的输出接乘法器的Y1乘法器的X1接除数信号V2乘法器的X2、Y2接地乘法器的Z接地运放A接成反相放大器反馈电阻Rf和输入电阻Ri决定增益。但这里反馈路径经过乘法器所以整个闭环传递函数变成Vout - (V1 * 10) / V2那个10来自AD633的标度因子。实际电路中运放的反馈电阻和输入电阻会引入额外的比例系数需要根据具体需求调整。4.2 除法电路的关键限制条件除法电路有两个硬性限制必须记住第一除数不能为零也不能太接近零。当V2趋近于零时输出会趋向无穷大运放直接饱和。实际使用中V2的绝对值建议大于0.5V最好在1V以上。第二除数必须为单极性。因为AD633是四象限乘法器但除法电路中如果V2为负反馈极性会反转运放从负反馈变成正反馈电路直接锁死。所以除法电路里V2必须是正电压。我试过用负电压做除数结果运放输出直接冲到电源轨怎么调都回不来。后来在V2前面加了一级精密整流把负电压翻成正的问题才解决。4.3 实测除法波形与精度分析测试条件V1给1V直流V2给1V直流理论上输出应该是-10V。但正负15V供电下输出摆幅有限实际测到-9.8V左右误差来自运放的失调和乘法器的标度误差。换成动态信号测试V1给1kHz正弦波幅度1VppV2给2V直流。理论上输出应该是正弦波除以2再乘以10也就是5Vpp的反相正弦波。实测输出是4.9Vpp波形干净相位翻转180度符合预期。精度方面AD633的标度因子误差典型值是1%加上外围电阻的误差整体精度大概在2%到3%之间。对于大多数模拟计算应用来说够用了。如果需要更高精度就得用激光修调过的电阻网络或者上数字方案。常见问题除法电路输出振荡。这通常是因为反馈环路相位裕度不够。解决方法是在运放的反馈电阻上并联一个小电容大概10pF到100pF做相位补偿。具体容值需要根据运放的GBW和乘法器的延迟来调我一般从22pF开始试。5. 开方电路的设计与调试5.1 开方电路的拓扑结构开方电路是除法电路的一个特例。把乘法器的两个输入端接在一起再放进运放的反馈环路就构成了开方电路。连接方式乘法器X1和Y1短接接到运放输出乘法器X2和Y2接地乘法器W接运放反相输入端运放同相输入端接输入信号Vin运放输出就是开方结果传递函数推导乘法器输出W Vout² / 10。运放虚短反相输入端电压等于同相输入端电压即Vin。所以Vout² / 10 Vin解得Vout sqrt(10 * Vin)。注意这里有个条件Vin必须为正。因为Vout²总是正的如果Vin为负方程无实数解运放会饱和到负电源轨。5.2 输入范围与输出幅度的计算假设输入Vin从0V变化到10V理论上输出Vout sqrt(10 * Vin)从0V变化到10V。但实际上运放输出摆幅有限正负15V供电下最多到13V左右。所以Vin的最大值对应Vout 13V时Vin 13² / 10 16.9V。但AD633的输入线性范围只有正负10V所以Vin实际上限是10V对应Vout 10V。实测数据输入Vin理论输出实测输出误差1V3.16V3.12V-1.3%2.5V5.00V4.92V-1.6%5V7.07V6.95V-1.7%7.5V8.66V8.48V-2.1%10V10.0V9.75V-2.5%误差随着输入增大而增加主要原因是乘法器在大信号下的非线性开始显现。如果对精度要求高建议把输入限制在5V以内误差可以控制在2%以内。5.3 开方电路的动态响应测试静态精度只是一方面动态响应同样重要。我给输入加了一个1kHz的三角波幅度从0V到5V观察输出波形。理论上输出应该是输入的开方曲线形状上应该是一个上凸的弧线。实测波形确实呈现上凸形状但在输入接近0V的地方输出有一个小小的“死区”大概有几十毫伏的平坦区域。这个死区来自运放的输入失调电压和乘法器的失调。当输入很小时开方结果对失调非常敏感因为sqrt函数的斜率在零点附近是无穷大。输入变化一点点输出变化很大失调直接淹没了信号。解决办法如果应用需要处理接近零的输入可以在输入上叠加一个小的偏置电压比如100mV把工作点抬离死区。或者选用失调更低的运放比如OPA277或者ADA4077。实操心得开方电路对运放的失调电压要求很高。我一开始用LM358试死区大得没法看。换成OPA277后死区缩小到几毫伏效果立竿见影。所以别在运放上省钱尤其是做非线性运算的时候。6. 常见问题排查与避坑指南6.1 输出波形异常排查速查表现象可能原因排查方法解决方案输出无信号供电未接通万用表测V和V-引脚电压检查电源连接输出削顶输入幅度过大示波器测输入信号幅度减小输入或加分压输出振荡反馈相位裕度不足示波器看振荡频率加补偿电容输出直流偏移大运放失调或Z引脚未接地测Z引脚电压接地或加调零电路除法电路锁死除数为负或接近零测除数信号确保除数为正且大于0.5V开方电路死区大运放失调电压高换低失调运放用OPA277等精密运放波形毛刺多电源去耦不足示波器AC耦合看电源纹波加0.1uF和10uF去耦6.2 我踩过的三个典型坑第一个坑忘记接去耦电容。第一次搭AD633电路时我觉得芯片内部肯定有滤波外部电容可省则省。结果输出波形上叠了大约50mV的高频噪声频率是开关电源的开关频率。后来老老实实加上0.1uF陶瓷电容噪声立刻降到5mV以下。这件事告诉我模拟乘法器对电源质量的要求比普通运放高得多。第二个坑除法电路里除数用了负电压。当时想做个V1/V2的运算V2给了一个负的直流电平。结果运放输出直接冲到正电源轨怎么调输入都没反应。查了半天才意识到负除数让反馈极性反转负反馈变成了正反馈。后来在V2通道加了一级反相器把负电压翻正电路立刻正常工作。第三个坑开方电路输入接近零时输出跳变。输入从0V慢慢往上调输出一开始不动突然跳到2V多。这就是前面说的死区问题。换了低失调运放后跳变消失输出平滑过渡。这个经历让我明白非线性电路对器件精度的要求比线性电路苛刻得多。6.3 示波器测量的注意事项测AD633的输出波形时示波器探头要拨到10X档。1X档的输入电容大概有100pF加上探头线的电容会在输出端形成额外的容性负载导致高频响应变差波形上升沿变缓。另外示波器的接地夹要尽量靠近电路板的地不要用长地线。长地线会引入电感在高频时形成振铃。我习惯在电路板上焊一个专门的接地测试点探头地线直接夹在那里测出来的波形最干净。如果输出信号很小比如几十毫伏示波器要开带宽限制到20MHz减少高频噪声的干扰。同时用平均采样模式把随机噪声压下去波形看起来会清晰很多。7. 从乘法器延伸出去的几个实用方向7.1 压控增益放大器把AD633的Y通道接控制电压X通道接信号输出就是被控制电压调制的信号。控制电压从0V到10V变化增益从0到1线性变化。这个电路在自动增益控制AGC里非常有用。我做过一个音频AGC用AD633做压控增益后面接有效值检测芯片AD736检测输出幅度反馈到AD633的Y通道。当输入信号变大时控制电压下降增益降低输出幅度保持稳定。实测下来输入从10mV到1V变化输出稳定在100mV左右波动不超过5%。7.2 模拟乘法器做混频两个不同频率的正弦波相乘输出是它们的和频和差频。这就是混频的基本原理。AD633的带宽虽然不算特别高但做音频范围的混频绰绰有余。我试过用1kHz和1.2kHz相乘输出是200Hz和2.2kHz两个频率的叠加。用示波器的FFT功能能看到两个清晰的峰值。如果后面加一个低通滤波器把2.2kHz滤掉就得到了200Hz的差频信号。这个电路在通信接收机里很常见。7.3 功率计算电路把电压信号和电流信号分别接到AD633的X和Y通道输出就是瞬时功率。再经过一个低通滤波器取平均值就得到了有功功率。这个方案在功率测量仪表里用得很广。需要注意的是电流信号通常需要经过一个电流互感器或者分流电阻转换成电压信号再接到AD633。转换过程中要保证相位对齐否则功率计算会有误差。我在做这个电路时特意用双踪示波器同时看电压和电流波形调整互感器的负载电阻让两路信号的相位差尽量小。8. 写在最后的一些个人体会AD633这颗芯片我用了快十年从最初的面包板搭电路到后来画PCB做产品它一直是我做模拟计算的首选。它的精度不是最高的带宽也不是最宽的但胜在结构简单、外围元件少、上手快。对于大多数非线性的模拟运算需求它都能给出一个体面的结果。如果你刚开始接触模拟乘法器我的建议是先从乘法电路做起把供电、去耦、输入范围这些基础问题摸清楚。然后再尝试除法注意除数的极性和幅度限制。最后再碰开方电路这时候你会对运放的失调和噪声有更深的体会。实测波形这件事光看理论推导是不够的。我见过太多人理论算得头头是道一上电波形完全不是那么回事。模拟电路就是这样寄生参数、器件离散性、布局布线每一个细节都会影响最终结果。多动手多测量多对比比看十本书都管用。最后分享一个小技巧如果你手头没有双路函数发生器可以用AD633自己做一个倍频器。把同一个正弦波同时接到X和Y通道输出就是二倍频。这个电路可以用来测试乘法器的带宽和失真简单又实用。
返回列表