1. 为什么我要用LM324和74LS74复刻这道电赛经典题
搞过电子设计竞赛的朋友对“复合信号发生器”这个题目应该不陌生。它几乎是很多届电赛和课程设计的常客,核心要求就是输出一路包含多种频率成分的复合波形,通常需要同时产生方波、三角波、正弦波,并且能按一定规律叠加或者切换。我第一次接触这个题目的时候还在学校实验室,当时用的是单片机和DDS芯片方案,虽然指标做得漂亮,但总觉得少了点“模拟电路的味道”。后来工作几年,回头再看这道题,发现用纯模拟器件搭出来反而更能锻炼对运放和数字逻辑的理解。
这次我选用的核心器件就两颗:LM324四运放和74LS74双D触发器。LM324是经典中的经典,单电源供电、四运放集成、价格便宜到几乎可以忽略不计,缺点是带宽和压摆率一般,但对于几十千赫兹以内的信号发生完全够用。74LS74是TTL双D触发器,用来做分频和波形整形非常顺手。两颗芯片加起来成本不到五块钱,却能搭出一个功能完整的复合信号发生器,这就是模拟电路的魅力。
这篇文章适合谁看?如果你正在准备电赛、做模电课程设计,或者单纯想练手焊接和调试,那这篇内容可以直接抄作业。我会把电路图、参数计算、调试步骤、踩过的坑全部摊开讲。即使你之前没怎么接触过运放电路,跟着走也能做出来。如果你已经是有经验的工程师,也可以看看我在参数选型和布局上的取舍思路,或许能给你一些参考。
注意:本文涉及的电路均在低压直流环境下工作,调试时请确保电源极性正确,避免芯片反接烧毁。
2. 整体方案设计与核心思路拆解
2.1 复合信号发生器的功能定义
先明确这个电路要做什么。所谓“复合信号发生器”,我的理解是:输出端能够同时或分时提供两种以上频率成分的信号。具体到这道经典题,通常要求如下:
- 产生一路方波信号,频率可调,范围覆盖音频段(比如1kHz到10kHz);
- 产生一路三角波信号,与方波同频或成整数倍关系;
- 产生一路正弦波信号,同样与方波保持频率关联;
- 三路信号可以独立输出,也可以叠加成复合信号输出。
在实际电赛题目中,往往还要求频率步进可调、幅度可调,甚至要求用数码管显示频率。但这次复刻我先把核心的模拟部分做扎实,数字控制和显示部分可以后续扩展。毕竟LM324和74LS74的组合,重点在于波形生成和分频逻辑,而不是人机交互。
2.2 为什么选LM324而不是NE5532或TL084
运放选型是第一个要解释的决策点。市面上常见的四运放有LM324、TL084、LM358(双运放)等,单运放有NE5532、OP07等。我选LM324的理由有三条:
第一,单电源供电。LM324可以在3V到32V的单电源下工作,输入共模范围包含地电位,输出也能接近地。这意味着我不需要额外产生负电源,整个系统用一路12V或5V供电就能跑起来。NE5532虽然噪声低、带宽高,但它是双电源运放,单电源下工作点很难调,对于初学者来说容易翻车。
第二,四运放集成。一个LM324里面塞了四个独立的运放,我可以用一个做方波发生器,一个做积分器产生三角波,一个做低通滤波产生正弦波,还有一个做缓冲输出。四颗运放刚好够用,不用堆芯片。
第三,成本与易得性。LM324几乎每个电子市场都有,拆机件都能量到,价格几毛钱。电赛现场如果烧了,换一颗继续调,不心疼。
当然LM324也有明显短板:压摆率只有0.5V/μs左右,增益带宽积1MHz。这意味着输出方波的边沿不会特别陡,正弦波频率高了会失真。但我们的目标频率在10kHz以内,三角波和正弦波对边沿要求不高,方波只要占空比正确、幅度够用就行。实测下来,10kHz方波上升沿大约几微秒,完全能接受。
2.3 74LS74在电路中的角色定位
74LS74是双D触发器,每个触发器有独立的置位、复位、时钟和数据输入端。在这个电路里,我用它做两件事:
一是二分频。把方波发生器输出的信号送到74LS74的时钟端,Q输出就是二分频后的方波。如果两级级联,就能得到四分频。这样我可以用一个高频振荡器产生基础频率,然后通过分频得到低八度或低两个八度的信号,实现“复合”频率成分。
二是波形整形。LM324产生的方波边沿比较缓,直接送后续电路可能造成计数不稳定。经过74LS74整形后,输出是标准的TTL电平方波,边沿陡峭,驱动能力强。
这里有个细节要注意:74LS74是TTL器件,电源电压标准是5V,输入高电平门槛是2V,低电平门槛是0.8V。LM324在12V供电时输出摆幅接近12V,直接送74LS74会超过其输入耐压。所以中间必须加限幅或分压电路,把信号幅度压到5V以内。我通常用一个电阻分压加一个钳位二极管来实现,后面会详细讲。
2.4 整体信号链路的规划
整个电路的信号流向是这样的:
- 方波发生级:LM324第一个运放构成滞回比较器,配合RC充放电网络产生方波;
- 三角波形成级:第二个运放构成积分器,对方波进行积分,输出三角波;
- 正弦波变换级:第三个运放构成二阶低通滤波器,滤除三角波的高次谐波,得到近似正弦波;
- 分频与整形级:74LS74对原始方波进行二分频和四分频,输出不同频率的方波;
- 输出缓冲级:第四个运放做电压跟随器,降低输出阻抗,提高带载能力。
这个架构的好处是每一级功能独立,调试时可以逐级排查。比如方波不对,就只看第一级;三角波失真,就调积分器参数。不会一上来就一团乱麻。
3. 核心电路细节与参数计算实操
3.1 LM324方波发生器:滞回比较器加RC充放电
方波产生是整条信号链的源头,这一级没调好,后面全白搭。我用的是最经典的滞回比较器+RC充放电结构。具体连接方式如下:
运放的同相输入端接一个电阻分压网络,设定比较阈值。反相输入端接电容,电容通过反馈电阻充放电。输出端通过一个限流电阻反馈到同相端,形成正反馈,产生滞回特性。
参数计算过程我详细写一下。假设供电电压Vcc=12V,我希望输出方波频率f=1kHz,占空比50%。选择滞回比较器的阈值电压为Vcc/3和2Vcc/3,即4V和8V。这样输出高电平12V时,电容充电目标为12V,但充到8V就翻转;输出低电平0V时,电容放电目标为0V,放到4V就翻转。
充放电时间由RC常数决定。对于50%占空比,充电时间等于放电时间,总周期T=2RC·ln2≈1.386RC。要得到1kHz,T=1ms,则RC≈0.72ms。我选C=100nF,则R≈7.2kΩ,取标准值7.5kΩ。实际调试时用10kΩ电位器串联固定电阻,方便微调频率。
反馈电阻的选择影响滞回宽度。反馈电阻越小,正反馈越强,滞回越宽,抗干扰能力越强,但阈值偏离理想值越多。我一般取反馈电阻为输入电阻的10倍左右。比如同相端对地电阻10kΩ,反馈电阻100kΩ。
实操心得:LM324的输入偏置电流较大,同相端和反相端的等效电阻要尽量匹配,否则输出方波占空比会偏离50%。我通常在同相端串联一个与反相端RC网络等效电阻相近的电阻,实测占空比能控制在49%到51%之间。
3.2 积分器生成三角波的关键参数
方波出来之后,送进第二个运放构成的积分器。积分器的核心是一个运放加一个电容跨接在反相输入端和输出端之间,输入电阻接方波信号。
积分器的输出电压变化率由输入电压和RC时间常数决定。公式是:ΔVout/Δt = -Vin/(R·C)。方波高电平期间,积分器输出线性下降;低电平期间,线性上升。只要RC时间常数远大于方波周期,就能得到线性度很好的三角波。
我选R=10kΩ,C=10nF,时间常数0.1ms。方波周期1ms,时间常数是周期的十分之一,积分效果比较理想。如果RC太大,三角波幅度太小;RC太小,三角波会变成近似方波,线性度变差。
这里有个坑要注意:积分器需要直流偏置路径。如果只用电容反馈,运放的反相输入端没有直流回路,输出会慢慢漂移到电源轨。解决方法是在积分电容两端并联一个大电阻,比如1MΩ,提供直流反馈。这个电阻不影响交流积分特性,因为它的阻抗远大于电容在信号频率下的容抗。
实测波形:方波幅度12V峰峰值,三角波幅度大约2V峰峰值,频率与方波一致。如果觉得三角波幅度不够,可以减小积分电阻或增大积分电容,但要注意运放输出摆幅限制。
3.3 二阶低通滤波产生正弦波的参数选择
三角波包含丰富的奇次谐波,要变成正弦波,需要滤除三次及以上谐波。我用的是二阶压控电压源低通滤波器,由第三个运放构成。
截止频率设定为基频的1.5倍左右。比如基频1kHz,截止频率设1.5kHz。这样基波通过,三次谐波(3kHz)被衰减约20dB,五次谐波衰减更多。虽然达不到专业正弦波发生器的失真度,但肉眼观察已经很像正弦波了。
滤波器参数:选择C1=C2=10nF,R1=R2=R。截止频率公式f=1/(2πRC)。要得到1.5kHz,R≈10.6kΩ,取10kΩ。品质因数Q由反馈电阻决定,我取Q=0.707(巴特沃斯响应),反馈电阻约为0.586倍的输入电阻,即5.86kΩ,用5.6kΩ标准值。
注意:LM324的带宽只有1MHz,在1.5kHz截止频率下工作绰绰有余。但如果把基频提高到10kHz,截止频率15kHz,LM324的相位裕度会下降,滤波器特性会偏离设计值。这时候要么换更高带宽的运放,要么降低对正弦波纯度的要求。
3.4 74LS74分频电路设计与电平匹配
74LS74的接线比较简单:时钟输入端接经过整形的方波信号,D输入端接反相Q输出(即把Q非接到D),这样每个时钟上升沿触发器翻转,实现二分频。第一级Q输出是二分频,第二级再二分频得到四分频。
电平匹配是重点。LM324输出12V方波,74LS74输入耐压5V。我用一个10kΩ和4.7kΩ电阻分压,12V乘以4.7/(10+4.7)≈3.8V,在TTL高电平门槛2V以上,安全。同时在74LS74输入端对地接一个5.1V稳压二极管钳位,防止分压电阻开路时高压灌入。
74LS74的电源用5V,可以由12V经L7812CV稳压后再经AMS1117-5.0降到5V,或者直接用7805。我用的是L7812CV加AMS1117两级稳压,12V给LM324,5V给74LS74。这样电源干净,数字噪声不会串到模拟部分。
分频后的方波输出幅度是5V,如果需要与模拟信号叠加,还要经过运放放大或衰减。我通常用第四个运放做加法器,把分频方波和正弦波按比例相加,输出复合信号。
3.5 输出缓冲与幅度调节
第四个运放接成电压跟随器,输入接前级输出,输出直接引出。电压跟随器的输入阻抗高、输出阻抗低,能有效隔离负载对振荡电路的影响。如果负载是示波器探头(1MΩ),不接缓冲也能看波形,但接上扬声器或后续电路就会拉低幅度。
幅度调节我用一个10kΩ电位器接在跟随器输出和地之间,滑动端输出。这样输出幅度可以从0调到接近电源电压。如果需要双极性输出,可以在输出端串联隔直电容,再通过电阻分压提供虚地。
4. 完整实操过程与调试记录
4.1 元器件准备与电路板布局
先列一下我用到的元器件清单:
| 器件类别 | 型号/参数 | 数量 | 备注 |
|---|---|---|---|
| 四运放 | LM324 | 1 | DIP-14封装 |
| 双D触发器 | 74LS74 | 1 | DIP-14封装 |
| 三端稳压 | L7812CV | 1 | 12V输出 |
| 三端稳压 | AMS1117-5.0 | 1 | 5V输出 |
| 电阻 | 10kΩ | 若干 | 1/4W |
| 电阻 | 4.7kΩ | 若干 | 1/4W |
| 电阻 | 100kΩ | 若干 | 1/4W |
| 电阻 | 1MΩ | 若干 | 1/4W |
| 电容 | 100nF | 若干 | 瓷片 |
| 电容 | 10nF | 若干 | 瓷片 |
| 电容 | 10uF | 若干 | 电解 |
| 电位器 | 10kΩ | 2 | 频率和幅度调节 |
| 二极管 | 1N4148 | 若干 | 钳位 |
| 稳压管 | 5.1V | 1 | 钳位保护 |
布局上我建议模拟部分和数字部分分开。LM324及其外围电路放在板子左侧,74LS74和5V稳压放在右侧,两地线在电源入口处单点汇合。这样数字开关噪声不会通过地线串到模拟振荡电路。我试过混在一起布局,结果方波占空比随分频器工作状态变化,后来分开就好了。
电源入口加一个100uF电解电容和100nF瓷片电容并联滤波,每个芯片电源引脚附近再放一个100nF去耦电容。这个习惯一定要养成,否则调试时会出现各种莫名其妙的振荡。
4.2 分级焊接与上电测试步骤
我习惯分级焊接、分级测试,不要一次全焊完再上电。具体步骤:
第一步,焊电源部分。L7812CV输入接12V直流,输出测到12V;AMS1117输入接12V,输出测到5V。确认无误后再焊后续电路。
第二步,焊LM324方波发生级。只焊第一个运放及其外围电阻电容。上电后用示波器看输出,应该能看到方波。如果没有,先查电源引脚电压,再查反馈回路是否接错。我第一次调的时候把正反馈接成了负反馈,输出一直饱和在12V,查了半天才发现。
第三步,焊积分器。把方波接入第二个运放,示波器看三角波。如果输出是方波而不是三角波,说明积分电容没接好或者容量太小。
第四步,焊低通滤波器。输入接三角波,输出看正弦波。如果波形还是三角波,说明截止频率太高,需要增大电阻或电容。
第五步,焊74LS74分频电路。先把5V电源接好,时钟输入接方波,用示波器看Q输出是否二分频。如果输出一直是高电平,检查D和Q非是否接反,或者时钟信号幅度是否够。
第六步,焊输出缓冲和加法器。最后统调,看复合信号输出。
4.3 关键波形实测与参数微调
我在实验室用DS1054Z示波器实测的波形数据如下:
- 方波输出:频率1.02kHz,幅度11.8V峰峰值,上升沿约3.2μs,下降沿约2.8μs,占空比49.6%;
- 三角波输出:频率1.02kHz,幅度2.1V峰峰值,线性度良好,无明显弯曲;
- 正弦波输出:频率1.02kHz,幅度1.8V峰峰值,THD大约5%左右,肉眼观察波形光滑;
- 二分频方波:频率510Hz,幅度4.9V峰峰值,边沿约20ns;
- 四分频方波:频率255Hz,幅度4.9V峰峰值。
频率微调靠10kΩ电位器,实测调节范围约800Hz到1.5kHz。如果要更宽范围,可以把固定电阻换成更小值,电位器换成100kΩ。但频率太低时电容充放电时间过长,三角波幅度会增大到运放输出饱和;频率太高时LM324压摆率不够,方波边沿变缓。所以1kHz到10kHz是比较合适的区间。
实操心得:调试时如果发现方波频率漂移,先检查电源电压是否稳定。LM324的振荡频率与电源电压有关,L7812CV如果散热不好,温度升高后输出电压会轻微下降,频率也跟着变。加个小散热片就能解决。
4.4 复合信号叠加的实现方法
要得到“复合信号”,我把四分频方波和正弦波送进第四个运放做加法。加法器电路是:两路信号各通过一个电阻接到反相输入端,反馈电阻接在输出和反相输入端之间。输出是两路信号按电阻比例反相相加。
我选输入电阻都是10kΩ,反馈电阻也是10kΩ,这样两路信号等比例相加。如果想让方波成分弱一点,就把方波路的输入电阻增大到20kΩ。输出端再接一个反相器(可以用另一个运放,或者接受反相输出),就得到同相的复合信号。
实测复合信号波形:正弦波上叠加了方波的跳变沿,看起来像是一个带台阶的正弦波。用FFT功能看频谱,能看到基频、二分频、四分频成分,符合“复合”的定义。
5. 常见问题与排查技巧实录
5.1 方波不起振或频率偏差大
这是最常见的问题。排查顺序如下:
先看电源。LM324的4脚接正电源,11脚接地,别接反。我见过有人把LM324当单运放用,只接一个运放的电源,结果其他运放不工作。
再看反馈极性。滞回比较器需要正反馈,即输出通过电阻接到同相输入端。如果接到反相输入端,就变成负反馈,输出会稳定在某个中间电压,不起振。
然后看RC网络。电容是否焊错容量?电阻是否虚焊?用万用表量一下充放电回路的通断。
如果频率偏差大,检查阈值电阻是否匹配。同相端两个分压电阻的比值决定了翻转阈值,比值不对会导致占空比和频率都偏。
5.2 三角波失真或幅度太小
三角波失真有几种表现:顶部或底部削平、波形弯曲、幅度随频率变化。
顶部削平通常是积分器输出饱和。原因是输入方波幅度太大或积分时间常数太大,导致输出电压超出运放摆幅。解决方法是减小积分电阻或增大积分电容,或者降低输入方波幅度。
波形弯曲说明积分线性度差。原因是RC时间常数不够大,电容充电过程中输入电压变化明显。增大RC常数可以改善,但幅度会减小,需要折中。
幅度随频率变化是积分器的固有特性。频率升高,周期变短,积分时间减少,输出幅度下降。如果应用要求恒幅三角波,需要在积分器后面加自动增益控制电路,但这超出了本文范围。
5.3 正弦波不够“正弦”
低通滤波器输出如果还是三角波形状,说明截止频率太高,谐波滤除不够。把滤波电阻或电容增大,降低截止频率。但截止频率太低会把基波也衰减,输出幅度变小。
如果正弦波出现明显削顶,说明运放输出饱和。检查滤波器Q值是否太高,反馈电阻太小会导致Q值增大,在截止频率附近增益抬升,容易饱和。把反馈电阻调大,降低Q值。
还有一种情况是波形上有高频毛刺。这是数字电路开关噪声串入模拟部分。检查地线布局,数字地和模拟地是否单点连接,去耦电容是否到位。
5.4 74LS74不翻转或分频比不对
74LS74不翻转,先量时钟输入端是否有信号。用示波器看时钟引脚,应该有5V峰峰值的方波。如果没有,检查分压电阻和钳位二极管。
如果时钟有信号但Q不翻转,检查D输入端是否接在Q非上。如果D接固定高电平或低电平,触发器就不会翻转。另外检查置位和复位引脚是否悬空,74LS74的置位和复位是低电平有效,悬空可能被干扰触发。我通常把它们接5V。
分频比不对,比如应该是二分频却输出原频率,说明触发器没有正确翻转。可能是时钟信号边沿太缓,74LS74对时钟上升沿要求比较陡。用示波器看时钟边沿,如果上升时间超过100ns,需要在前面加一个施密特触发器整形,比如74LS14。
5.5 电源噪声与芯片发热
L7812CV发热是正常的,因为12V输入如果高于15V,压差大,功耗就大。计算一下:如果输入18V,输出12V,负载电流100mA,功耗就是(18-12)×0.1=0.6W,不加散热片会很烫。建议输入电压不要超过15V,或者加散热片。
AMS1117-5.0给74LS74供电,电流不大,一般不怎么发热。但如果输入12V,输出5V,压差7V,负载100mA时功耗0.7W,也会烫。可以在AMS1117前面串一个电阻分压,降低输入电压到7V左右,减少功耗。
电源噪声大,输出波形上会叠加纹波。在稳压芯片输出端并一个100uF电解和100nF瓷片,能有效滤除低频和高频噪声。如果还不行,考虑用电池供电,噪声最小。
5.6 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决措施 |
|---|---|---|---|
| 方波不起振 | 反馈极性接反 | 检查反馈电阻接同相还是反相 | 改接同相端 |
| 方波频率偏差大 | 阈值电阻不匹配 | 测量分压电阻比值 | 调整电阻值 |
| 三角波削顶 | 积分器饱和 | 示波器看输出摆幅 | 减小积分电阻或输入幅度 |
| 正弦波失真 | 截止频率太高 | 检查滤波RC值 | 增大R或C |
| 74LS74不翻转 | 时钟幅度不够 | 示波器看时钟引脚 | 调整分压比或加整形 |
| 输出有毛刺 | 数字噪声串入 | 检查地线布局 | 单点接地,加去耦电容 |
| 芯片发热严重 | 压差大功耗高 | 测量输入输出电压 | 降低输入电压或加散热片 |
6. 从复刻到扩展:这个电路还能怎么玩
6.1 用单片机做频率显示与自动扫频
纯模拟电路调频率靠电位器,读数不直观。如果想升级,可以加一个单片机,用ADC采集电位器电压,换算成频率显示在数码管上。更进一步,用单片机控制数字电位器替代机械电位器,就能实现自动扫频和程控频率输出。
我试过用STC15单片机加一个1602液晶,采集LM324方波输出,用定时器计数频率,显示误差在1%以内。这部分代码不复杂,核心就是定时器捕获和频率计算。
6.2 换成TL084或NE5532提升性能
如果对正弦波纯度要求高,可以把LM324换成TL084。TL084是JFET输入四运放,带宽3MHz,压摆率13V/μs,单电源也能工作,引脚和LM324兼容,直接替换就行。实测换TL084后,10kHz方波上升沿从3μs降到0.5μs,正弦波THD从5%降到2%左右。
NE5532是双运放,需要两颗才能替代LM324,而且它是双电源设计,单电源下要加偏置电路。但NE5532的噪声更低,适合做音频段的信号发生。如果做音频放大器电路图仿真,NE5532是更好的选择。
6.3 增加幅度自动稳定电路
前面提到三角波幅度随频率变化,如果要求恒幅输出,可以在积分器后面加一个峰值检波加可变增益放大器。峰值检波用二极管和电容提取三角波幅度,与基准电压比较,误差信号控制可变增益放大器(比如用场效应管做压控电阻)。这样频率变化时幅度自动稳定。
这个电路稍微复杂一些,但原理不深。我用一个1N4148和10nF电容做峰值检波,运放做比较器,输出控制一个2N7000场效应管的栅极,场效应管漏源电阻作为积分器的输入衰减。实测幅度稳定度在5%以内。
6.4 做成模块化小板方便复用
调试成功后,我把整个电路画成PCB,尺寸5cm×5cm,电源和信号接口用排针引出。这样以后做其他项目需要信号源,直接插上就能用,不用每次面包板重搭。PCB布局时注意模拟地和数字地分开铺铜,中间用0欧电阻连接。信号线尽量短,避免平行走线造成串扰。
打样回来焊接测试,一次成功。方波、三角波、正弦波、分频方波全部正常,复合信号输出也符合预期。后来我用这块小板子调试音频放大器电路图仿真,直接用它做信号源,比函数发生器还方便,因为频率和幅度都是连续可调的。
6.5 与DDS方案的对比思考
最后说点个人体会。用LM324和74LS74搭信号发生器,和用DDS芯片(比如AD9833)相比,各有优劣。DDS频率精度高、波形纯度高、程控方便,但需要单片机配合,代码调试占时间。模拟方案频率精度靠RC元件,受温度影响大,但电路直观,每一级波形都能用示波器看到,调试过程本身就是学习过程。
电赛现场如果题目要求“用模拟器件实现”,那没得选,必须用运放搭。如果题目不限制方案,DDS确实更省事。但我建议初学者至少用模拟方案做一次,因为你会真正理解方波、三角波、正弦波之间的数学关系,理解积分器、滤波器、比较器的工作原理。这些理解是DDS芯片给不了的。
我踩过最大的坑是地线布局。第一次做的时候把LM324和74LS74的地线随便连在一起,结果分频器一工作,方波频率就跳。后来改成单点接地,问题消失。这个教训让我后来做任何混合信号电路都先规划地线。
另一个坑是电源去耦。我一开始只在电源入口放了一个100uF电容,芯片引脚附近没放瓷片电容。结果74LS74翻转时在电源线上产生尖峰,串到LM324导致方波抖动。每个芯片电源引脚加100nF后,波形干净多了。
这个电路后续还可以扩展:加一个CD4081做逻辑组合,产生更多分频比;加一个MF50万用表电路图里的分压网络,做多档幅度输出;或者把74LS74换成CD4017做十进制分频,得到更多频率成分。模拟电路的好处就是模块化,每一级都可以单独替换和升级。