ARTICLE DETAIL

资讯详情

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

用LTspice仿真施密特触发器:从原理到回环曲线的完整教程

用LTspice仿真施密特触发器:从原理到回环曲线的完整教程 很多学过模拟电路的朋友第一次接触施密特触发器时应该都有过这样的体验老师在黑板上写两个阈值公式再画一条带着回差的传输特性曲线你在下面抄了半天始终没搞清楚输出为什么能从低电平“啪”地跳到高电平。其实想真正把这件事弄明白用LTspice对施密特触发器做一次传输特性分析从搭电路到看到完整的回环曲线熟练之后五分钟都用不到比光啃理论直观太多了。这篇文章就带你从零搭一个运放版的施密特触发器把原理、操作、参数计算和常见坑一次说清。不管是正在学模电的学生还是想快速验证阈值的工程师都能直接照着做。1. 施密特触发器到底在干什么先别急着放元件1.1 迟滞就是“记忆”两个阈值和一个回环施密特触发器本质上是一个带正反馈的比较器。普通比较器只有一个阈值电压输入电压越过这条线输出就翻一次问题是如果输入信号带着噪声波形会在阈值附近来回蹭输出就会跟着疯狂抖动这在工程上是不能接受的。施密特触发器不一样它有两个阈值一个高阈值VT一个低阈值VT-而且VT一定大于VT-。输入电压从低往高走时要越过VT输出才翻转输入电压从高往低走时要一直跌到VT-输出才翻转回去。换句话说输出状态“记住”了自己当前在哪个状态不会因为一个小抖动就来回乱跳。我用生活里的例子给你类比一下空调制热时温度降到18℃开始吹热风升到23℃才停中间这5℃就是“迟滞窗口”。如果没有这个窗口温度在22.5℃附近波动压缩机会不停启停几下就废了。施密特触发器里的正反馈干的也是这件事它把输出信号拉回来“推一把”让翻转过程干净利落不给噪声留机会。1.2 传输特性曲线到底怎么看传输特性曲线就是把输入电压V(in)放在横轴、输出电压V(out)放在纵轴看两者之间的关系。普通比较器的传输特性是一条简单的阶梯线输入低于阈值输出是低输入高于阈值输出是高来回只有一条路径。施密特触发器的传输特性则是一个“回环”因为输出状态依赖当前状态所以曲线不是单值的。你把输入从最低扫描到最高时输出沿着下支路走到VT位置突然跳上去再从最高扫描回最低时输出沿着上支路走到VT-位置突然跳下来。两条路径不重合中间围出来的那块水平宽度就是迟滞窗口。第一次看到这个环的人通常都有一种“哦原来如此”的感觉因为公式里的VT和VT-在图上直接就是两条竖边的横坐标根本不用死记。这也是我强烈建议每个人都亲手仿一遍的原因纸上得来终觉浅曲线出来比什么都有说服力。2. 开工前的准备LTspice环境与仿真策略2.1 为什么选LTspice来干这件事LTspice是ADI官方出的SPICE仿真软件免费跨平台Windows、macOS、Linux都能跑而且仿真速度和内置模型数量都很能打。很多硬件公司实际上就是用LTspice做电源、信号链的预验证它不是你想象的那种“玩具软件”。很多新手一搜LTspice教程看到的全是模型导入、第三方库、伯德图、截止频率之类的内容容易被吓到。其实普通入门根本不用碰那些。这次仿真只用到LTspice的元件库和直流/瞬态分析装上软件就能做完全不需要导入任何外部模型。等以后你真的需要仿真某个厂商的专用器件时再去研究.lib、.include这些导入操作不迟。下载安装这里我不展开说官网注册一下就行装完是绿色软件那种体验直接打开画原理图没有任何激活码或者License的破事这点比很多商业EDA工具省心太多。2.2 仿真策略选择DC扫描还是瞬态扫描拿到施密特触发器之后有两种办法看传输特性一种是传统的DC扫描另一种是我特别推荐的“瞬态三角波法”。DC扫描的思路是把输入电压源从-5V到5V一步一步扫过去每次算一个静态工作点最后画出V(out)对V(in)的曲线。这种方法适合看单向翻转比如输入从低到高时的VT。但要看到完整回环你就得再反过来扫一遍然后手动把两条曲线叠在一起看。瞬态三角波法的思路更直接给输入加一个从-5V升到5V、再从5V降回-5V的三角波跑一次瞬态仿真然后把波形窗口的横轴从“时间”改成“输入电压V(in)”。这样正向扫描和反向扫描被天然拼在了一条曲线里回环直接出现而且还能顺便看到V(out)随时间变化的真实波形。两种方法的对比如下表方法实现难度能否一次看到回环适合场景DC扫描单向低不能只能看到一个翻转方向想快速确认单个阈值DC扫描正反两次中能但需要手动叠加两次结果喜欢传统做法的人瞬态三角波法低能横轴改成V(in)即可最推荐直观且信息量大所以文章后面我会先用DC扫描让你感受一下基础操作然后重点用瞬态三角波法一次把传输特性回环拉出来。2.3 元件选型一个运放、两个电阻就够了搭建一个最经典的运放型反相施密特触发器只需要一个运放、两个电阻、一个输入电压源和两个电源。运放我选LT1001这是LTspice内置库里的通用精密运放不需要额外导入。你可能会问为什么不用比较器比较器其实也是可以的但很多比较器是开集/开漏输出外面还得加上拉电阻电路又多一个元件对新手不友好。运放当比较器用虽然在实际工程里有很多限制但做原理演示完全没问题正反馈迟滞效果一样清晰。电阻取值方面R1取10kΩR2取20kΩ。为什么是2倍关系因为阈值计算里R1/R2是一个关键比例取2倍既能让迟滞窗口明显又方便你心算验证仿真结果。电源用双电源±5V同相输入端接地作为参考点VREF这样输出高电平和低电平基本对称回环也是对称的看着舒服。3. 手把手搭电路从原理图到仿真参数3.1 在LTspice中画出施密特触发器先在LTspice里新建一个原理图然后按下面的顺序放置元件按F2打开元件库在搜索框输入LT1001找到后放到原理图中间。这个运放符号上有“”和“-”两个输入引脚后面接线不要接反。按R放两个电阻右键改阻值一个改成10k一个改成20k这就是R1和R2。按V放三个电压源V1是输入信号源V2是正电源5VV3是负电源-5V。按G放地至少放三个地分别接到输入源负端、正电源负端、负电源正端。按F4给关键节点加网络标签输入节点标“IN”输出节点标“OUT”。连线关系要特别搞清楚V1正端接R1R1另一端接运放的反相输入端“-”R2接在运放输出端“OUT”和反相输入端“-”之间运放的同相输入端“”直接接地。V2正端接运放的正电源引脚V3负端接运放的负电源引脚。检查无误后电路就搭完了。这里说一个我自己的习惯给节点加网络标签非常关键否则后面读波形时节点名就是“V(n001)”这种随机编号很难看懂。花十秒钟加两个标签后面省很多事。3.2 先来一次DC扫描先看单向翻转这次仿真我们先做最简单的DC扫描。点菜单Simulate - Edit Simulation Command选DC sweep。在设置里Source选V1Start填-5Stop填5Step填0.01点击OK之后原理图上会出现一个.dc指令框再点运行LTspice会算出来V(out)随V(in)从-5V到5V变化的曲线。你会看到初始阶段输出电压是一个较低的电平等输入电压升到大约2.4V左右输出突然跳变到高电平之后一直维持在高电平。这是因为电路只有一个扫描方向输入从低到高翻转点就是上阈值VT而反向扫描的下阈值VT-你看不到。想看到完整回环最简单粗暴的办法是再跑一次反向DC扫描。把DC sweep的Start改成5Stop改成-5Step改成-0.01再次运行。如果LTspice问你是否保留上一次的波形选择保留这样两条曲线会叠加在同一张图里回环就出来了。这个方法能做但操作起来有点啰嗦下面介绍我真正推荐的做法。3.3 一次仿真看全回环用三角波瞬态扫描把V1的Value改成下面这个PWL函数PWL(0 -5 10m 5 20m -5)这段的意思很简单0秒时电压是-5V10ms时线性升到5V20ms时再线性降回-5V正好是一个三角波周期。然后打开Simulate - Edit Simulation Command选TransientStop Time填20m其他默认运行。这时你会看到V(out)的波形是一个方波输入上升过程中输出在某个点从低跳高输入下降过程中输出在另一个点从高跳低。这就是施密特触发器的“记忆”效应在时域上的表现。重点操作来了右键波形窗口的横轴在X Axis Settings里把Quantity Plotted改成V(in)。确认之后横轴从时间变成输入电压你立刻会看到一条标准的施密特触发器传输特性回环。为什么这一步有效因为瞬态仿真同时包含了“输入从低到高”和“输入从高到低”两个过程用输入电压当横轴正好把两个方向的路径画在同一张图上。这个“把时间轴换成输入电压”的技巧是LTspice看传输特性最实用的招数。你以后看任何带迟滞的电路比如比较器、触发器、磁滞回线都能这么干。3.4 阈值计算与参数设计理论值先算好在进行结果解读之前把理论阈值算清楚你才能判断仿真曲线对不对。对反相施密特触发器反相输入端的电压由两个来源共同决定一个是通过R1过来的输入信号VIN一个是通过R2反馈过来的输出电压VOUT。用叠加定理或者直接列节点电流方程可以得到Vn (VIN * R2 VOUT * R1) / (R1 R2)运放翻转条件是Vn等于同相端电压也就是0V。假设运放输出高电平为VOH低电平为VOL可以解出两个阈值输出为低电平时输入上升使Vn0得到上阈值VT -VOL * R1/R2输出为高电平时输入下降使Vn0得到下阈值VT- -VOH * R1/R2如果R110k、R220kVOH≈4.8VVOL≈-4.8V那么VT≈2.4VVT-≈-2.4V迟滞窗口是4.8V。这里有一个很重要的细节LT1001不是轨到轨运放它输出的高电平到不了5V低电平也到不了-5V所以实际翻转点会略小于理论估算值这个下面会专门讲。4. 传输特性结果解读回环为什么会这样4.1 从曲线读翻转点正反馈的“助推”机制把横轴改成V(in)之后你会看到V(out)的曲线是一条逆时针方向行走的“口”字形回环。底边代表输出低电平状态顶边代表输出高电平状态两个竖直的边就是两次翻转。右侧竖边对应的是输入从低往高走时的翻转点即VT左侧竖边对应的是输入从高往低走时的翻转点即VT-。你用鼠标把光标放在这两条竖边上可以直接读出坐标值这个实测值比理论估算更可信。为什么两条竖边几乎是垂直的因为反馈是正反馈。当输入电压逼近翻转点时运放输出电压刚开始有微小的上升趋势这个微小的变化通过R2反馈回反相输入端相当于把输入端的电压往翻转方向又推了一把。推一把之后输出变化更大反馈更猛最终形成一个雪崩式的翻转输出瞬间从低到高或从高到低。正反馈越强回环竖边就越垂直。我在实际看曲线时很少去背公式里的VT和VT-因为曲线已经把所有答案都告诉你了。两个竖边在哪里迟滞窗口有多大一目了然。4.2 改参数看回差变化迟滞窗口怎么调迟滞窗口的大小主要由R1/R2的比例决定。比例越大窗口越宽比例越小窗口越窄。这个规律光靠理论记忆容易忘但用LTspice看一次就再也忘不掉。具体操作把R2的Value改成{RR}注意花括号这是LTspice的变量语法。然后在原理图上放一个SPICE指令.step param RR 10k 40k 10k这个指令的意思是让RR分别取10k、20k、30k、40k四组值各跑一遍仿真。重新跑瞬态并把横轴改成V(in)你会看到四条回环曲线叠在一起RR越小回环越宽RR越大回环越窄。这个画面比任何文字都直观。调迟滞窗口在实际工程里是有讲究的。如果输入信号的噪声幅度有1V你的迟滞窗口至少要比噪声峰峰值大否则照样误翻转但如果窗口设得太大输入信号本身可能就“骑不过去”了阈值太高翻不了或者翻转延时会变大。所以设计时第一步就是把传输特性仿真曲线拉出来然后根据实际信号幅度和噪声水平选一个合适的R1/R2比例。4.3 理论值和仿真值对不上原因在这里如果你拿第3.4节的公式去算再用光标测量实际回环的翻转点会发现仿真值比理论值略小一点。这不是你电路画错了而是LT1001的输出摆幅不是满幅的。LT1001在±5V电源下典型输出高电平大约在3.8V到4.2V之间低电平大约在-3.8V到-4.2V之间。把VOH和VOL实际值代入公式比如VOH4.2V、VOL-4.2VVt就变成2.1VVT-变成-2.1V窗口从4.8V缩到4.2V。要验证这一点你可以在波形窗口里直接读出V(out)的高电平和低电平然后手算一下保证能和仿真翻转点对得上。想知道更精确的阈值可以换一个轨到轨输出的运放比如LT1366或者AD8605这样VOH和VOL更接近电源电压回环也更对称。这个坑在实操中非常常见不是模型出了问题。5. 常见问题与避坑技巧5.1 为什么只有一条线没有回环这是初学者遇到最多的问题原因通常有三个。第一你用DC扫描只扫了一个方向输入从低到高只触发一次翻转自然只有一条路径。解决方法是做瞬态三角波法或者跑正反两次DC扫描再叠加。第二波形窗口的横轴没有改成V(in)。很多人跑完瞬态后看着V(out)对时间的曲线以为这就是传输特性但其实那只是时域波形。记得右键横轴把Quantity Plotted改成V(in)。第三R2接错位置了。如果R2接到了运放的同相输入端而不是反相输入端那电路就变成了负反馈迟滞效应消失传输特性变成普通比较器那样的一条阶梯线。检查原理图连线是最优先做的事。5.2 运放输出摆幅不够回环不对称LT1001这类通用运放输出不是轨到轨高电平和低电平都到不了电源轨。这意味着VOH和VOL的绝对值可能不一样导致VT和VT-不对称回环看起来有点歪。碰到这种情况先别急着改电路用光标读一下V(out)的实际高低电平值代入公式算一下确认仿真结果是自洽的。如果项目需要精确阈值再换成轨到轨运放或者把电源电压调高让运放输出进入更“舒服”的工作区间。在仿真阶段换运放就是改个元件的事情这也是用仿真验证方案的最大优势。5.3 输出波形毛刺多怎么处理理论上施密特触发器抗干扰能力很强但在仿真里PWL三角波如果边沿太陡运放的高带宽会激发出一些过冲和振铃看起来像毛刺。解决办法有两个。第一把PWL的边沿时间拉长比如写成PWL(0 -5 10m 5 20m -5)10ms的爬升足够缓基本不会有多余振铃。第二在仿真设置里加一个最大步长限制比如在SPICE Directive里加一行.tran 0 20m 0 1u强制仿真步长不超过1微秒波形会平滑很多代价是仿真时间稍长。另外LTspice默认有波形数据压缩如果觉得波形细节不够可以在Directive里加.options plotwinsize0关掉压缩精度更高。5.4 顺便聊一下LTspice的文件和模型导入问题很多新手第一次用LTspice仿真后发现工程目录里多出好几个文件什么.raw、.log、.net被吓到以为软件出问题了。这些文件其实分工明确.raw是波形数据.log是仿真日志.net是网表文件都是正常产物不用管它们。原理图文件记得手动保存成.asc那才是你下次能重新打开的东西。至于第三方模型导入比如想仿真英飞凌的器件确实需要把.lib或.sub文件放到工程目录然后用.include指令包含进来。这算LTspice里比较进阶的操作跟本文主题关系不大。这次用的LT1001是内置库模型直接就能仿真完全不必为导入问题分心。等你有明确的厂商器件需求时再单独花半小时研究导入流程。5.5 常见问题速查表现象可能原因解决办法只有一条传输线没有回环DC扫描单向/横轴没有改成V(in)/R2接错用瞬态三角波法右键横轴改V(in)检查R2接反相端回环不对称或翻转点偏小运放不是轨到轨VOH/VOL达不到电源电压读实际VOH和VOL代入公式换轨到轨运放输出有明显过冲或振铃PWL边沿过陡/仿真步长太大拉长PWL边沿限制最大仿真步长多出的文件看不懂.raw/.log/.net是正常产物无需处理保存好.asc文件即可换电阻值后回环没变化参数没有设为变量用花括号{RR}并加.step指令6. 写在最后一点个人体会我早年间做过一个电源监测电路输入信号是缓慢上升的电压到了阈值附近会有几十毫伏的纹波用普通比较器做判断输出在阈值附近抖得没法看。后来我把比较器换成施密特触发器结构迟滞窗口设得比纹波峰峰值大了一截问题立刻解决。但那一次我还是先花了半天算阈值、改电阻、上板测试来回折腾。自从养成先在LTspice里把传输特性回环拉出来的习惯后电阻参数基本一次定准上板就是验证一下省了太多时间。所以这次把整个仿真过程完整写出来最深的一个体会是传输特性曲线这种东西看十遍书不如亲手跑一遍。公式当然要学但公式给出的是静态关系仿真曲线则能让你看到正反馈的“助推”、迟滞窗口的宽窄、输出摆幅的影响这些才是电路真正工作的样子。希望你看完这篇文章后也打开LTspice亲手把那个回环拉出来哪怕最后只是发出一声“原来是这样”的感叹那我这四千多字就没白写。
返回列表