☰
LM324四运放打造信号发生器:方波、正弦波、三角波原理与实测
2026/10/8 15:08:55 网站建设 项目流程

手里正好有一片LM324,想做个能输出方波、正弦波、三角波的信号源?很多人第一反应是上DDS芯片或者STM32+DAC,其实这片几毛钱的四运放就能把三种波形一次全搞定。今天这篇文章就从原理推导、参数计算到面包板实测,完整拆一遍这个经典电路。无论你是做课程设计、调音频电路,还是想给STM32的ADC找一路模拟信号源,这套方案都够用,而且成本压到五块钱以内。

LM324是四路运放,单颗芯片里集成了四个独立的运算放大器。用两路做方波和三角波发生器,再拿一路做三角波到正弦波的整形,最后一路做输出缓冲或幅度放大,四路刚好全部利用。这个设计不花哨,但逻辑很顺:方波和三角波本来就是一体的,正弦波通过整形网络从三角波变换过来,电路简单、参数可算、调试也直观。

1. 整体设计思路与选型理由

1.1 LM324这个芯片,到底适合干什么

先说说为什么选LM324。这颗芯片是四运放里最“皮实”的那种:供电电压范围从3V到32V,支持单电源或者双电源供电,静态功耗低,价格便宜到可以忽略不计。它的增益带宽积大概在1.2MHz左右,压摆率约0.5V/μs,这些参数在今天看着不算亮眼,但做几百赫兹到几十千赫兹的波形发生器完全够用。

LM324的输出能力也要心里有数。它的输出不是轨到轨,正电源下高电平一般到VCC-1.5V左右,负电源下低电平到VEE+1.5V左右。也就是说,用±5V供电时,输出最高约3.5V、最低约-3.5V。这个摆幅对驱动ADC、后级放大器或耳机监听都够,但如果你想要真正的满幅输出,就得额外加一级轨到轨缓冲或者提高供电电压。

用LM324做波形发生器的另一个好处是温度稳定性和可靠性。我手里这块是几年前的TI产LM324N,实测下来在20℃到35℃的室温范围内,输出频率漂移很小,不会因为手摸了一下电阻电容就跳频。这一点对长期运行的测试环境很重要。

1.2 波形怎么排:先方波三角波,再整形成正弦

三种波形的产生顺序是有讲究的。最常见的做法是先让电路自己振荡出方波和三角波,这俩天生是“搭档”:一个迟滞比较器输出方波,一个积分器把方波积分成三角波,两个运放形成闭环振荡。正弦波不直接振荡,而是从三角波通过整形网络转换过来。

为什么正弦波不直接做?因为直接做正弦波振荡(比如文氏桥)需要稳幅电路,要么用热敏电阻,要么用灯泡,要么用JFET做自动增益控制,这些在LM324这种通用运放下都比较麻烦,频率调节也不方便。而方波-三角波发生器只靠电阻电容就能稳定振荡,频率由RC参数决定,调起来非常顺手。三角波再经过二极管折线整形,就能得到失真度在百分之几级别的正弦波,对大多数演示、测试和ADC信号源场景已经足够。

这套方案的额外好处是四个运放的分工非常清晰:U1A做迟滞比较器出方波,U1B做积分器出三角波,U1C做三角波缓冲,U1D做整形后信号的幅度调节或输出级。没有闲置运放,也没有额外芯片,整块电路就靠一片LM324加几个电阻电容二极管。

1.3 供电方案:双电源优先,单电源也能用

供电方式直接影响波形形态和调试难度。我最推荐用对称双电源供电,比如±5V或者±9V。双电源下运放输出天然围绕0V对称,方波高电平正、低电平负,三角波在正负之间线性变化,后级接示波器或者经过隔直电容给ADC都很方便。

如果手头只有单电源,比如5V或12V,也能工作,但需要把参考电压抬到VCC/2。具体做法是用两个等值电阻分压得到一个2.5V中点,把这个中点接到比较器的同相端参考端和积分器的同相端,所有输出波形就会围绕2.5V上下摆动。这样相当于把0V参考点平移到了2.5V,单电源下依然能输出完整的方波、三角波和正弦波,只是幅度会受输出摆幅限制,比双电源方案小一些。

对刚开始做这个电路的朋友,我的建议是直接用±5V或±9V。双电源适配器或者两节锂电池串联都能供上,波形对称性好,公式计算也简单,少踩很多偏置方面的坑。

2. 方波和三角波同时产生:迟滞比较器+积分器

2.1 两个运放各干一件事,互相较劲儿

方波和三角波发生器的核心由两个运放组成。第一个运放U1A接成同相迟滞比较器,输出方波;第二个运放U1B接成积分器,把方波积分成三角波。比较器的反相输入端接积分器的输出,积分器的输入接比较器的输出,两个运放首尾相连,形成一个完整的闭环。

我把工作过程讲得具体一点。假设刚上电时U1A输出为高电平,这个高电平经过电阻R加在U1B的反相输入端,U1B就会以恒定的电流给反馈电容C充电,输出端电压线性下降。电压下降的斜率由R×C决定,电阻越小、电容越小,下降越快。U1B的输出同时接在U1A的反相输入端,当三角波电压下降到某个负阈值时,U1A翻转,输出变为低电平。

U1A输出变为低电平后,U1B反相输入端的信号从正变成负,积分方向反转,输出端电压改为线性上升。当三角波上升到正阈值时,U1A再次翻转,输出回到高电平。如此反复,U1A输出就是方波,U1B输出就是三角波。两个波形频率一样,方波用来做逻辑信号或者经过转换做PWM,三角波用来做扫描信号或者后续正弦整形。

这里要特别提醒一句:比较器必须有正反馈,也就是从U1A输出端到同相输入端要接一颗反馈电阻Rf,同相输入端再通过另一颗电阻Rg接到参考地。没有正反馈,比较器会处于线性放大状态而不是不断翻转的迟滞状态,电路根本不起振。

2.2 频率和幅度怎么算

这个电路的频率公式看起来复杂,实际推导逻辑很直白。迟滞比较器的翻转阈值由反馈电阻Rf和接地电阻Rg决定,阈值系数β=Rg/(Rf+Rg)。当比较器输出高电平VOH时,三角波要线性上升到β×VOH才会触发翻转,下降时同理要跌到β×VOL。积分器输出从负阈值到正阈值的时间,就是半个周期。

推导出来的振荡频率是:

f = (Rf + Rg) / (4 × Rg × R × C)

注意公式里的R和C是积分器的电阻和电容,Rf和Rg是比较器正反馈网络的两个电阻。三角波的峰峰值近似为:

Vpp = 2 × VOUT × Rg / (Rf + Rg)

VOUT是比较器的高电平幅度或者低电平幅度,双电源对称供电时高低幅度相等。频率公式里没有VOUT,说明电源电压波动不影响频率稳定性,这一点比很多文氏桥振荡器好很多,也是这个拓扑的一大优势。

举个例子,我实际用的参数是Rf=20kΩ、Rg=10kΩ、R=10kΩ、C=100nF,±5V供电。代入频率公式:(20+10)/(4×10×10×0.1)kHz=750Hz。这里计算时把kΩ和μF单位直接带入得到kHz,不影响结果。三角波峰峰值按输出电压约3.5V算,大约是2×3.5×10/30=2.33Vpp,波形以0V为中心上下摆动,直接接示波器看非常清晰。

7700

2.3 抄作业:一组实测参数和扩展档位

给直接想搭电路的朋友一组可以抄的参数。比较器部分的反馈电阻Rf取20kΩ,接地电阻Rg取10kΩ,积分电阻R取10kΩ,积分电容C决定频率档位。下面是几个常用档位:

C取值理论频率实际用途
1μF75Hz慢速扫描、电机控制粗调
100nF750Hz音频范围初测、ADC采样调试
10nF7.5kHz音频信号、滤波器扫频
1nF75kHz高频测试,注意LM324压摆率限制

实际搭建时,C建议用CBB电容或者C0G瓷片电容,漏电小、温漂低,三角波线性度会好很多。电解电容不是不能用,但漏电大会导致积分电容上的电压自己偏移,三角波上下不对称,频率也有可能飘。

电阻精度也不用追求太高,普通1%金属膜电阻就够。频率误差主要由RC精度决定,如果你需要频率很准,可以用多圈电位器代替积分电阻R,边测边调到目标频率。这个设计本身不是精密频率源,但做演示和常规测试足够了。

3. 三角波变正弦波:二极管折线整形方法

3.1 为什么不能靠一阶低通硬滤

看到“三角波转正弦波”,有人会想:三角波的高次谐波按1/n²衰减,直接用一个低通滤波器滤一遍不就行了?理论上是能出正弦波,但实际效果很差。三角波的谐波集中在奇次谐波上,三次谐波幅度大约是基波的11%,五次要再低一截。一阶低通即使把截止频率调得很低,也没法同时保留足够强的基波又完全消除三次谐波,出来的波形要么幅度太小,要么还带着明显的“毛刺”感。

更好的办法是二极管折线整形,本质上是一个多段逼近器。三角波的上升边和正弦波的上升边形状不一样,正弦波在峰值附近明显更平缓。整形网络通过在三角波的不同电压段切换增益,把峰值附近“压扁”,把过零点附近“拉直”,多次折线叠加后就能逼近正弦曲线。

这个思想和现在数字信号处理里的查表法很像,只不过用模拟方式实现。段数越多,逼近效果越好,但电路复杂度也越高。用两个到三个阈值点做两段折线,THD能到百分之五到八左右,用四个阈值点做四段折线,失真可以进一步降低。对演示和给ADC当信号源,这个精度完全够。

3.2 折线逼近整形的原理和接法

搭建整形网络不需要复杂芯片,就用LM324剩下的运放加上1N4148二极管和几颗电阻。基本思路是:三角波经过一颗电阻R0送入整形节点,节点通过几路二极管连接到不同参考电压。当输入电压超过某一档的参考电压时,对应二极管导通,节点上等于并联进去一颗电阻,改变了分压比例,从而降低这一段的增益。

具体接法是这样的。三角波先经过U1C运放缓冲,保证阻抗匹配和带载能力。缓冲后的信号经R0=10kΩ接到整形节点。正常范围内,节点电压跟输入呈线性关系。第一级阈值设在三角波峰值的30%左右,第二级设在70%左右。正弦波的形状决定了峰值附近要压、中段要缓,所以二级折线就是先以较高增益通过零点区域,再降低增益通过峰值区域。

阈值电压用电阻分压从±5V电源获得,每路串一个多圈电位器进行微调。二级管方向要注意,正半周的阈值支路用可控硅式的方向,负半周完全镜像。调试的时候先用示波器同时观察三角波输入和整形输出,看输出波形峰值附近是不是出现了明显的圆弧过渡。如果峰值被削成近乎平顶,说明阈值设低了或者导通电阻太小;如果峰值还是尖的,说明压缩不够,需要把阈值电压往峰值方向移动。

我个人最常用的做法是三个阈值点:40%、70%、90%。三点四段逼近,THD已经比较理想。再多加一级,电路复杂度提升明显,但对LM324这个级别的整形方案来说边际收益不大。

3.3 调出低失真正弦波的经验

这部分多写一点,因为实际调试的时候,理论参数只能保证“能出波形”,距离“波形漂亮”还有很长的路。我最开始搭的时候,输出总是一头圆一头尖,示波器上看特别明显,排查了很久才发现是正半周二极管装错了一颗。

第一个经验是阈值电压一定要独立可调。四个阈值分别用四个多圈电位器,先全部调在50%位置,然后只调正半周的第一级,观察波形正半周根部到峰值的过渡是否圆润,调完正半周再调负半周。两边独立调,比两边共用一组参数好调得多。

第二个经验是整形节点的负载电阻不能太小。R0选10kΩ,后面的接地电阻至少也要10kΩ,否则输入信号会被分压掉太多,输出幅度变得很小。LM324输出电流有限,负载阻抗太低也会增加失真。

第三个经验是最后一级运放做幅度恢复。整形网络本质上是一个衰减网络,输出幅度可能只有原三角波的百分之三四十。我用U1D接成同相放大器,放大倍数设定在2到3倍,输出端再接一个10kΩ电位器做幅度微调。这样正弦波的实际输出幅度可以自由调整,适配后续ADC输入范围或者音频后级。

如果你不想做二极管整形,还有一个备选方案是文氏桥正弦振荡器加比较器转方波、积分器转三角波。这个方案的优点是正弦波直接来自振荡器,失真更低;缺点是频率调整不如方波三角波发生器方便,而且额外占用运放资源。对标题这个场景,用折线整形更合理。

4. 完整搭建流程与实测记录

4.1 面包板/洞洞板的搭建顺序与去耦

搭建顺序决定调试难度。我建议先把U1A和U1B组成的方法三角波振荡器搭好,不接后面任何整形部分,先调出干净漂亮的方波和三角波。这两路没问题了,再接U1C缓冲和二极管整形网络,最后接U1D输出级。分步搭建,每步都能验证,出了问题也容易定位。

电源去耦是模拟电路的老问题。LM324每个电源引脚对地接一颗0.1μF陶瓷电容,尽量靠近芯片引脚。如果电源是开关电源或者USB供电,建议再加一颗10μF电解电容储能。见过好多次波形毛刺严重,最后发现就是电源去耦没做,100kHz级别的高频噪声全串进波形里了。

面包板搭建时,积分电容的位置要特别小心。面包板寄生电容比较大,积分电容引脚应尽量短,反馈电容不要跨在面包板长条区域的远端,否则寄生电容会影响实际积分时间,频率计算值会和实测值差出一截。LM324的输入偏置电流很小,面包板漏电影响有限,但清洁干燥的面包板仍然会让波形更稳定。

4.2 实测波形记录与数据

我实际搭出来的电路,电源用±6V(两节18650锂电池模拟的对称电源),参数是Rf=20kΩ、Rg=10kΩ、R=10kΩ、C=100nF。示波器测出来的方波频率稳定在738Hz左右,和理论的750Hz有一点偏差,主要是电阻电容的实际精度和面包板寄生参数造成的。这个偏差在正常范围内,不用纠结。

方波的高电平大约4.5V,低电平大约-4.5V,上升沿在示波器1μs/div时看起来几乎是垂直的,实际测拐角处有轻微圆化,这是LM324压摆率限制的必然结果,不影响逻辑使用。三角波的峰峰值大约2.4V,波形线性度很漂亮,从示波器网格上看整个斜坡没有任何肉眼可见的折点。

接上二极管整形网络后,正弦波输出经过U1D放大,最终幅度大约3Vpp。用FFT功能看频谱,基波在738Hz,三次谐波大概比基波低30dB,五次要更低一些。这个底噪水平拿来当音频振荡器完全够用,给STM32 ADC做信号源也没问题。正弦波的失真主要来自折线段数有限,如果你对THD要求更高,可以增加阈值点数,或者在整形后再串一个窄带滤波器。

4.3 和STM32联动:ADC采集与信号调理

这个电路的输出和STM32配合使用是很自然的应用。STM32的ADC输入范围一般是0到3.3V,而LM324双电源下输出是围绕0V正负摆动,直接接数字地会切掉负半周。解决办法是用电容隔直,再叠加一个1.65V直流偏置,把正弦波整体抬到ADC的安全范围内。

操作上,先从LM324输出端串联一个1μF到10μF的电容,电容后面接两个10kΩ电阻分压3.3V得到1.65V偏置,信号在偏置点上叠加后送ADC引脚。这样正弦波就从-1.5V到+1.5V变成了0.15V到3.15V,能完整落入ADC量程。采样率建议设为信号频率的20倍以上再配合过采样,效果更好。

反过来,如果你在用STM32的DAC输出DDS正弦波,LM324可以做模拟输出端的缓冲跟低通滤波。DAC输出带负载能力弱,直接接示波器都会有幅度跌落,接一级LM324跟随器后,输出阻抗降到几十欧姆,后面再接滤波器或者放大器都从容得多。这也算两个方向的场景打通了。

5. 常见问题排查与避坑清单

5.1 不振荡、幅度小、波形畸变排查表

这个电路故障率最高的几个点,基本都在比较器反馈和积分电容上。我把常见现象、可能原因和排查方向整理成一张表,调试的时候对着看就行。

现象可能原因排查方法
完全没波形,输出一直高或一直低正反馈电阻Rf没接或断路,运放进入线性放大状态检查Rf和Rg是否按图接入,用万用表测通断
有方波但三角波几乎是一条直线积分电容C断焊或没有插紧替换C,或用示波器表笔触碰积分器反相端看有无反应
方波和三角波都有了,但频率和计算值差很远积分电容用了电解电容,漏电大换CBB电容或C0G瓷片电容
三角波上下不对称双电源不对称,或运放输出摆幅限制检查电源电压,实际测+/-电源对地电压
正弦整形输出一头平一头尖二极管极性装错或阈值电位器没调分别调正负半周阈值,检查二极管方向
波形上有明显毛刺电源去耦不充分检查0.1μF去耦电容是否靠近电源引脚

5.2 三处容易翻车的细节

第一处是积分电容的极性。如果图省事用了有极性的钽电容或者电解电容,装反之后电容漏电会特别大,三角波会慢慢漂移甚至直接饱和到电源轨。我一开始就是吃了这个亏,换了无数参数才想到是电容的问题。

第二处是整形网络二极管的选择。1N4148是比较理想的选择,开关速度快、压降低、温度稳定性好。千万别用整流二极管比如1N4007,那玩意恢复时间太长,在高频下会严重影响整形后的波形形态,本来该圆润的峰值反而会出现明显的折角。

第三处是幅度太小时不要马上怀疑电路。LM324的输出摆幅不是轨到轨,±5V供电下方波高电平只能到3.5V左右,三角波峰峰值因此打得折扣。想要更大输出,把供电升到±9V或者±12V,波形幅度立刻上去。电源电压高低不影响频率,只影响幅度,这一点在设计的时候就要留好余量。

5.3 参数速查与后续扩展

最后给一个速查思路。想要改变输出频率,优先改积分电容C,C不变时改积分电阻R。频率和RC乘积成反比,换一个档位就把电容整体换掉,细调电位器串在R的位置。比较器的Rf和Rg决定三角波幅度,想增加三角波峰峰值,增大Rg、减小Rf,但幅度太大会让三角波接近运放输出极限,反而失真,要留一点余量。

如果后续想把这个电路做成产品或者实验模块,可以加一个输出开关切换三种波形,加一个电位器调频率,再加一个末级运放做幅度调节。整个系统还是只用一颗LM324加外围元件,成本低、调试简单,能覆盖从几十赫兹到几十千赫兹的常用测试信号范围。想要的三角波扫描功能,也可以把积分电阻换成双极性三极管构成的压控恒流源,就能实现电压控制频率,这个扩展后面再单独聊。

我实际做完这个电路的最大感受是,模拟电路相比数字方案,虽然费一点手工,但你能清晰看到每个参数和波形形态之间是怎么互相影响的。数字DDS几分钟就能调出一路正弦波,却很难让你真正理解“频率由什么决定、幅度为什么会下降、失真从哪里来”。这颗LM324,算是用最小成本把这些问题都讲明白了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询