首页 / 资讯中心 / 文章详情

SN74LVC1G14DBVR施密特触发器:方波发生器与按键检测实战

SN74LVC1G14DBVR施密特触发器:方波发生器与按键检测实战 ★ FEATURED ARTICLE
1. 从一颗小芯片说起SN74LVC1G14DBVR到底能干什么搞硬件的人大概都有这种经历手头有个小项目需要给某个数字电路提供一个时钟信号频率不用太精确几百kHz到几MHz都行但就是不想为这点事专门上一颗晶振或者MCU。这时候一颗施密特触发反相器加上一个电阻一个电容就能解决问题。SN74LVC1G14DBVR就是这么一颗芯片——单路施密特触发反相器SOT-23-5封装供电范围1.65V到5.5V带5V耐压输入输出驱动能力±32mA。说白了它就是一个带迟滞特性的反相器输入低电平输出高电平输入高电平输出低电平关键在于它的输入阈值不是单一电压点而是有上下两个阈值这就是施密特触发的核心。这颗芯片在实际项目里最常见的用途有三个第一把缓慢变化的模拟信号整形成干净的数字信号比如光电传感器输出、按键信号消抖第二配合RC网络构成弛张振荡器也就是方波发生器第三做简单的信号缓冲和电平转换。我这次要聊的就是用这颗芯片同时实现方波发生和按键检测两个功能而且只用一颗芯片加几个阻容元件。为什么选SN74LVC1G14DBVR而不是普通的74HC14或者用MCU来做几个原因。普通74HC14是六路反相器做一个小项目用一路就够了剩下五路浪费而且封装大。用MCU做方波发生器当然可以但需要写代码、烧录、调试对于纯粹要一个时钟源或者测试信号的场景来说太重了。SN74LVC1G14DBVR单路封装SOT-23-5只有5个引脚占板面积小到可以忽略成本也就几毛钱而且不需要任何编程上电就出波形。对于需要快速验证、快速出样的小项目来说这是最省事的方案。这篇文章适合谁看如果你刚接触数字电路想搞明白施密特触发器和RC振荡器到底怎么回事这篇文章会从原理到计算到实测一步步讲清楚。如果你是有经验的工程师想找一个可以直接抄的方波发生器电路和按键检测方案文章里有完整的参数计算、PCB布局建议和实测数据。我还会分享几个在实际调试中踩过的坑比如为什么你的方波频率和计算值对不上、为什么按键检测偶尔会误触发、电源退耦到底该怎么放。2. 施密特触发反相器做振荡器原理没你想的那么复杂2.1 施密特触发器为什么能振荡先把这个事情说透。普通反相器的传输特性是一条斜线输入电压从低到高变化时输出从高到低连续变化中间有一个线性放大区。如果把普通反相器的输出通过RC反馈到输入它确实也能振荡但波形很差频率也不稳定因为线性区太窄容易受噪声干扰。施密特触发器不一样它的传输特性是一个迟滞回环。以SN74LVC1G14DBVR为例在3.3V供电下正向阈值VT大约在1.6V到2.0V之间负向阈值VT-大约在0.8V到1.2V之间迟滞电压大约0.8V左右。具体数值每颗芯片会有差异数据手册给的是一个范围。这个迟滞特性意味着当输入电压上升超过VT时输出才翻转为低当输入电压下降低于VT-时输出才翻转为高。中间那段区域输出保持不变。把反相器的输出通过一个电阻R反馈到输入端输入端再接一个电容C到地就构成了最基本的弛张振荡器。工作过程是这样的假设上电瞬间电容电压为0输入为低输出为高。输出高电平通过电阻R给电容C充电电容电压逐渐上升。当电容电压上升到VT时输出翻转为低。此时电容通过电阻R放电电容电压逐渐下降。当电容电压下降到VT-时输出又翻转为高。如此循环输出端就得到了一个方波。充电时间由R和C的乘积决定具体来说充电阶段从VT-充到VT放电阶段从VT放到VT-。由于SN74LVC1G14DBVR的输出高电平和低电平分别接近VCC和GND充电和放电的电压范围相同所以占空比接近50%。实际中由于输出高电平有内阻、输入漏电流等因素占空比会略有偏差但一般应用完全够用。2.2 频率计算公式与参数选择频率的近似计算公式是f ≈ 1 / (2 × R × C × ln(2)) ≈ 0.72 / (R × C)这个公式怎么来的充电阶段电容电压从VT-充到VT充电目标是VCC。根据RC充电公式V(t) VCC × (1 - e^(-t/RC))代入V(T1) VT起始电压VT-可以解出充电时间T1。放电阶段类似电容从VT放到VT-放电目标是GND放电时间T2。总周期T T1 T2。如果假设VT ≈ 0.67×VCCVT- ≈ 0.33×VCC这是很多施密特触发器的典型值那么T1 ≈ T2 ≈ RC×ln(2)总周期T ≈ 2RC×ln(2) ≈ 1.386RC频率f ≈ 0.72/(RC)。但SN74LVC1G14DBVR的实际阈值并不是精确的0.67VCC和0.33VCC数据手册给出的范围比较宽。所以这个公式只能用来估算实际频率需要用示波器测出来再调整。我一般会先用公式算一个大概值选一个接近的标准电容值然后用可调电阻或者换不同阻值的电阻来微调。举个例子我想要一个大约1MHz的方波。用公式反推RC 0.72 / 1MHz 0.72×10^-6。如果选C 100pF那么R 0.72×10^-6 / 100×10^-12 7200Ω也就是7.2kΩ。实际选7.5kΩ标准值C选100pF理论频率约960kHz。实测可能会在800kHz到1.1MHz之间取决于芯片的具体阈值。再比如我想要一个大约1kHz的低频方波用于驱动LED闪烁或者做音频测试。RC 0.72 / 1kHz 0.72×10^-3。如果选C 100nF那么R 0.72×10^-3 / 100×10^-9 7200Ω还是7.2kΩ。所以同样的电阻值电容从100pF换成100nF频率从约1MHz降到约1kHz差了1000倍。这里有一个实际选型的经验电容不要选太小太小了PCB上的寄生电容和芯片输入电容会影响频率稳定性。一般建议C不低于47pF。电容也不要选太大太大了充电电流小输入漏电流的影响会变大而且电解电容的漏电流和等效串联电阻会影响波形质量。一般建议C不超过10μF而且尽量用陶瓷电容或薄膜电容不要用电解电容。电阻的选择也有讲究。R太小了充电电流大输出端的驱动能力要够而且功耗会增加。R太大了输入漏电流在电阻上产生的压降会影响阈值导致频率偏移。SN74LVC1G14DBVR的输入漏电流在25°C时最大1μA如果R 1MΩ那么漏电流产生的压降是1V这已经和迟滞电压相当了频率会严重偏离计算值。所以R一般建议在1kΩ到1MΩ之间超过100kΩ就要注意漏电流的影响。2.3 输出波形质量与负载影响SN74LVC1G14DBVR的输出驱动能力是±32mA对于驱动一般的CMOS输入、LED串联限流电阻、小功率蜂鸣器都没问题。但要注意输出端接负载后输出高电平会下降输出低电平会上升这会影响充电和放电的最终电压从而影响频率和占空比。如果负载是一个LED串联电阻到地那么输出高电平时LED会消耗电流输出高电平可能从3.3V降到3.0V甚至更低。这会导致充电阶段的目标电压降低充电时间变短频率升高。同时输出低电平时LED不亮输出低电平接近0V放电时间基本不变。所以占空比会偏离50%频率也会变化。如果负载是一个电容性负载比如长导线或者MOS管栅极输出波形的上升沿和下降沿会变缓这会增加输出级的功耗但一般不会严重影响振荡频率因为振荡频率主要由RC反馈网络决定。我实测过在输出端接一个2kΩ电阻串联红色LED到地3.3V供电下空载时频率约1.02MHz接上LED后频率约1.08MHz占空比从49%变成53%。这个变化对于大多数应用来说可以接受但如果你的应用对频率精度要求高就要考虑加一级缓冲或者把负载接到另一个反相器上。3. 按键检测电路用同一颗芯片搞定消抖和触发3.1 为什么按键需要消抖机械按键在按下和释放的瞬间触点会发生多次弹跳产生一系列快速的高低电平变化持续时间通常在5ms到20ms之间。如果直接把按键信号接到数字电路的时钟输入端或者中断引脚这些弹跳会被误认为是多次按键导致误触发。传统的消抖方法有两种硬件消抖和软件消抖。软件消抖是在MCU里延时采样简单但占用CPU时间。硬件消抖是用RC低通滤波加施密特触发器把弹跳信号滤掉。SN74LVC1G14DBVR本身就是施密特触发器输入有迟滞特性配合一个RC低通滤波就能实现硬件消抖。具体电路是这样的按键一端接地另一端通过一个上拉电阻接到VCC同时通过一个电容到地再接到SN74LVC1G14DBVR的输入端。按键未按下时输入端被上拉电阻拉高输出为低。按键按下时输入端通过按键接地电容通过按键放电输入端电压下降。当电压下降到VT-时输出翻转为高。由于施密特触发器的迟滞特性即使按键触点有弹跳只要弹跳幅度不超过迟滞电压输出就不会反复翻转。RC时间常数的选择很关键。时间常数太小消抖效果不好时间常数太大按键响应变慢。一般按键消抖的RC时间常数选10ms到50ms比较合适。如果上拉电阻选10kΩ那么电容选1μF时间常数就是10ms。如果上拉电阻选100kΩ电容选100nF时间常数也是10ms。但这里有一个问题如果按键检测电路和方波发生器共用一颗SN74LVC1G14DBVR那么按键检测的输出会占用一路反相器方波发生器占用另一路。SN74LVC1G14DBVR只有一路反相器所以不能同时做两件事。除非用两颗芯片或者用一颗芯片分时复用。等等这里需要澄清一下。SN74LVC1G14DBVR是单路反相器只有一路输入和一路输出。所以它不能同时做方波发生器和按键检测。但是我们可以用一颗芯片做方波发生器另一颗芯片做按键检测两颗芯片型号相同电路相似这样物料清单简单采购方便。或者我们可以用一颗芯片做方波发生器按键检测用分立元件加MCU的施密特触发输入来实现。不过标题里说的是“附按键检测电路实战”意思是在同一个项目里同时包含方波发生器和按键检测电路不一定非要用同一颗芯片。我这次的做法是用两颗SN74LVC1G14DBVR一颗做方波发生器一颗做按键消抖和触发。两颗芯片加起来成本不到一块钱电路也不复杂。3.2 按键检测电路的具体参数按键检测电路的设计目标是按键按下时输出一个干净的数字脉冲没有弹跳按键释放时输出恢复原状。同时输出脉冲的宽度要足够MCU或者后续电路能可靠识别。电路连接如下VCC接3.3VGND接地。上拉电阻R1从VCC到芯片输入端阻值10kΩ。按键从芯片输入端到地。电容C1从芯片输入端到地容值1μF。芯片输出端接后续电路同时通过一个反馈电阻R2可选到输入端用于增加迟滞或者锁定状态。等等这里需要仔细分析。如果按键按下输入端通过按键直接接地电容C1被短路输入端电压迅速降到0V输出翻转为高。按键释放后输入端通过R1充电电压逐渐上升。当电压上升到VT时输出翻转为低。所以按键按下时输出高释放时输出低这是一个反相的逻辑。如果希望按键按下时输出低释放时输出高可以把按键接在VCC和输入端之间上拉电阻改成下拉电阻。或者用两级反相器但那样就多用了一路。实际使用中我一般把按键接在输入端和地之间上拉电阻到VCC这样按键按下时输出高电平可以直接驱动LED或者作为MCU的中断信号上升沿触发。如果MCU需要下降沿触发可以在软件里配置或者加一级反相。RC时间常数的计算R1 10kΩC1 1μF时间常数τ R1×C1 10ms。按键弹跳时间一般不超过10ms所以这个时间常数可以滤掉大部分弹跳。但要注意按键按下时电容通过按键放电放电路径的电阻包括按键接触电阻通常小于100mΩ和芯片输入端的等效电阻放电时间常数远小于10ms所以按下时响应很快。释放时电容通过R1充电充电时间常数10ms输出电压在约10ms后达到VT输出翻转为低。所以释放时的响应有约10ms的延迟这是可以接受的。如果希望响应更快可以减小C1到100nF时间常数变成1ms但消抖效果会变差。如果按键质量好弹跳时间短1ms也够用。如果按键质量差弹跳时间长可能需要增大到10μF时间常数100ms但那样按键响应会明显变慢。我实测过几种不同按键的弹跳时间普通的6mm轻触按键弹跳时间约5ms到8ms12mm自锁按键弹跳时间约2ms到3ms薄膜按键弹跳时间约10ms到15ms。所以10ms的时间常数对大多数按键都够用。3.3 按键检测与方波发生的联动在实际项目中我经常需要按键控制方波输出的开和关或者切换频率。这时候可以把按键检测电路的输出接到方波发生器的使能端或者反馈网络上。一种简单的做法是按键检测电路的输出控制一个模拟开关或者MOS管用来接通或断开方波发生器的反馈电阻。比如方波发生器的反馈电阻由两个电阻串联组成一个固定电阻R3和一个可调电阻或者另一个固定电阻R4。按键检测输出高电平时通过一个MOS管把R4短路总反馈电阻变小频率升高按键检测输出低电平时MOS管断开总反馈电阻变大频率降低。这样就实现了按键切换频率。另一种做法是按键检测电路的输出直接控制方波发生器的电源。按键按下时给方波发生器芯片供电方波输出按键释放时方波发生器断电输出停止。这种做法最简单但要注意芯片的启动时间。SN74LVC1G14DBVR的启动时间很快上电后几微秒内就能起振所以按键按下后几乎立刻就有方波输出。如果要用一颗MCU来读取按键状态并控制方波发生器可以把按键检测电路的输出接到MCU的GPIOMCU再控制方波发生器的电源或者反馈网络。这样灵活性更高但增加了MCU的成本和复杂度。我个人的经验是如果只是简单的开和关直接用按键检测输出控制方波发生器的电源最省事。如果需要切换多个频率可以用按键检测输出配合计数器或者MCU来实现。4. 完整电路搭建与实测过程4.1 物料清单与电路图说明先列一下我这次实测用的物料元件型号/参数数量备注施密特触发反相器SN74LVC1G14DBVR2SOT-23-5封装电阻10kΩ20603封装1%精度电阻7.5kΩ10603封装1%精度电阻1kΩ10603封装1%精度电容100pF10603封装NP0材质电容1μF10603封装X7R材质电容100nF20603封装X7R材质退耦用按键6mm轻触按键1直插或贴片LED红色10805封装电源3.3V1可用稳压电源或电池方波发生器部分U1的引脚5接VCC引脚2接GND引脚4是输出引脚1是输入。反馈电阻R1从引脚4接到引脚1电容C1从引脚1接到GND。退耦电容C2从引脚5接到GND尽量靠近芯片放置。按键检测部分U2的引脚5接VCC引脚2接GND引脚4是输出引脚1是输入。上拉电阻R2从引脚1接到VCC按键SW1从引脚1接到GND电容C3从引脚1接到GND。退耦电容C4从引脚5接到GND。LED指示部分U2的输出引脚4通过限流电阻R3接到LED阳极LED阴极接GND。这样按键按下时U2输出高电平LED亮按键释放时U2输出低电平LED灭。电源部分3.3V电源接到VCC和GND两个芯片的退耦电容都要接好。这里要注意SN74LVC1G14DBVR的引脚定义是引脚1是输入引脚2是GND引脚3是NC不连接引脚4是输出引脚5是VCC。SOT-23-5封装的引脚顺序是逆时针排列引脚1在左上角引脚2在左下角引脚3在右下角引脚4在右上角引脚5在顶部中间。焊接的时候不要搞错方向。4.2 方波发生器实测数据我先单独测试方波发生器部分。用3.3V稳压电源供电示波器探头接U1的输出引脚4探头衰减设为10倍带宽限制设为20MHz。空载情况下测得波形如下频率约980kHz高电平3.28V低电平0.02V上升时间约3ns下降时间约2.5ns占空比约49.5%和理论计算值960kHz相比偏差约2%这个偏差主要来自芯片实际阈值和计算假设的差异。SN74LVC1G14DBVR在3.3V供电下的实际VT约1.75VVT-约1.05V迟滞电压约0.7V。代入精确公式计算频率约975kHz和实测980kHz非常接近。然后我在输出端接了一个2kΩ电阻串联红色LED到地再测频率约1.04MHz高电平2.95V低电平0.02V占空比约53%频率升高了约6%占空比偏离了3.5%。原因前面分析过LED拉低了输出高电平充电目标电压降低充电时间变短。这个变化在可接受范围内但如果你的应用对频率精度要求高建议加一级缓冲。接着我换了反馈电阻把7.5kΩ换成15kΩ电容不变理论频率约480kHz。实测频率约490kHz高电平3.28V低电平0.02V占空比约49.8%再换成3.6kΩ理论频率约2MHz。实测频率约1.95MHz高电平3.25V低电平0.03V占空比约49.2%从这些数据可以看出频率在几百kHz到2MHz范围内实测值和理论值偏差在5%以内占空比接近50%波形质量很好。频率再高比如到5MHz以上上升沿和下降沿的影响会变大波形会变成近似三角波占空比也会偏离。频率再低比如到几十Hz电容需要很大电解电容的漏电流会影响频率稳定性。4.3 按键检测实测数据按键检测部分我用示波器同时观察U2输入端引脚1和输出端引脚4的波形。按键按下时输入端电压从3.3V迅速降到0V输出端从0V翻转到3.3V。按键释放时输入端电压从0V通过10kΩ电阻给1μF电容充电电压按指数规律上升约10ms后达到VT约1.75V输出端从3.3V翻转到0V。实测按键按下时的输出上升沿非常干净没有弹跳。按键释放时的输出下降沿也很干净没有弹跳。说明10ms的RC时间常数配合施密特触发器的迟滞特性消抖效果很好。我特意用了一个质量较差的按键弹跳时间约15ms测试结果按键按下时输出端有轻微抖动持续时间约2ms但幅度没有超过逻辑阈值后续电路不会误触发。按键释放时输出端干净。说明10ms时间常数对15ms弹跳的按键勉强够用如果按键质量更差建议增大电容到2.2μF或4.7μF。LED指示部分按键按下时LED亮释放时LED灭响应速度肉眼感觉不到延迟。LED限流电阻1kΩ电流约(3.3V - 1.8V) / 1kΩ 1.5mA亮度适中不刺眼。4.4 PCB布局与焊接要点PCB布局对电路性能影响很大尤其是方波发生器部分。几个关键点退耦电容必须尽量靠近芯片的VCC引脚和GND引脚走线越短越好。我一般把100nF电容放在芯片背面或者紧挨着芯片放置走线长度不超过2mm。退耦电容的作用是提供高频电流回路如果走线太长寄生电感会影响退耦效果导致电源噪声增大方波波形上出现毛刺。反馈电阻和电容的走线也要尽量短尤其是电容到GND的走线。如果走线太长寄生电容和寄生电感会影响振荡频率和波形质量。我一般把反馈电阻和电容放在芯片同一面紧挨着输入引脚。输入引脚是高阻抗节点容易受干扰。走线要尽量短远离输出引脚和其他高频信号线。如果输入引脚走线较长可以考虑加一个小的屏蔽或者用地线包围。输出引脚驱动LED时LED和限流电阻的走线可以稍长但也不要太长避免引入不必要的寄生电容。焊接方面SN74LVC1G14DBVR是SOT-23-5封装引脚间距0.95mm手工焊接需要一定的技巧。我一般用尖头烙铁温度设300°C先用锡膏或者细焊锡丝给焊盘上锡然后用镊子把芯片放上去用热风枪或者烙铁加热引脚。注意不要过热SOT-23封装的热容量小烙铁接触时间不要超过3秒否则可能损坏芯片。焊接完成后先用万用表检查VCC和GND之间有没有短路然后上电测电压。如果VCC电压正常再测输出波形。如果不起振先检查反馈电阻和电容有没有焊错再检查芯片方向有没有搞反。5. 常见问题与排查技巧实录5.1 方波发生器不起振或频率不对这是最常见的问题。我整理了一个排查表现象可能原因排查方法解决方法完全不起振输出固定高或低反馈电阻或电容虚焊万用表测通断重新焊接完全不起振输出固定高或低芯片方向焊反检查引脚1标记重新焊接完全不起振输出固定高或低电源电压不足万用表测VCC检查电源频率远低于计算值电容值偏大用万用表测电容更换电容频率远低于计算值电阻值偏大用万用表测电阻更换电阻频率远高于计算值电容值偏小用万用表测电容更换电容频率远高于计算值电阻值偏小用万用表测电阻更换电阻频率不稳定漂移电源不稳定示波器测VCC纹波加退耦电容或换电源频率不稳定漂移输入漏电流影响减小反馈电阻换小阻值电阻波形有毛刺退耦不良检查退耦电容靠近芯片加100nF波形有毛刺输出负载太重断开负载测试加缓冲或减小负载占空比偏离50%输出负载不对称检查负载连接调整负载或加缓冲占空比偏离50%阈值不对称换一颗芯片筛选阈值接近的芯片我遇到过一次频率只有计算值一半的情况排查了半天最后发现是反馈电容焊成了两个并联实际容值是标称值的两倍。所以焊接后一定要用万用表确认元件值。还有一次频率比计算值高了20%检查发现是反馈电阻的焊盘之间有残留锡渣导致实际阻值变小。清理焊盘后恢复正常。5.2 按键检测误触发或响应迟钝按键检测的问题一般有两类误触发和响应迟钝。误触发是指按键没有按下时输出端有脉冲或者电平跳动。原因可能是输入端受到干扰或者上拉电阻太大输入端的漏电流导致电压不稳定。解决方法减小上拉电阻到4.7kΩ或者在输入端加一个小电容100pF到地滤掉高频干扰。响应迟钝是指按键按下后输出端要等很久才翻转。原因可能是RC时间常数太大或者按键接触电阻太大。解决方法减小电容值或者换质量好的按键。我实测过如果电容用10μF上拉电阻10kΩ时间常数100ms按键释放后要等约100ms输出才翻转感觉明显迟钝。所以一般建议电容不超过1μF。还有一种情况是按键按下时输出正常释放时输出不翻转一直保持高电平。原因可能是按键漏电流太大或者电容漏电流太大导致输入端电压无法上升到VT。解决方法换漏电流小的电容陶瓷电容或者减小上拉电阻。5.3 电源退耦与噪声抑制电源退耦是很多新手容易忽略的问题。SN74LVC1G14DBVR在输出翻转时会在电源线上产生电流尖峰如果退耦不好这些尖峰会通过电源线耦合到其他电路导致误触发或者波形毛刺。我一般会在每个芯片的VCC引脚旁边放一个100nF的陶瓷电容再在电源入口放一个10μF的钽电容或者陶瓷电容。100nF电容负责高频退耦10μF电容负责低频退耦。两个电容配合使用效果最好。如果电路中有多个芯片或者多个高频信号建议在电源线上串联一个磁珠或者小电感进一步隔离噪声。磁珠选100MHz时阻抗约100Ω的电感选1μH到10μH的。实测中如果退耦电容离芯片超过5mm方波波形上会出现明显的毛刺频率越高毛刺越明显。把退耦电容移到芯片旁边后毛刺消失。所以退耦电容的位置比容值更重要。5.4 芯片选型与替代方案SN74LVC1G14DBVR的替代型号有不少比如74LVC1G14GW、74LVC1G14GV、NC7SZ14等。这些芯片功能相同封装可能不同引脚定义可能不同替换时要注意。如果买不到SN74LVC1G14DBVR可以用74HC14代替但74HC14是六路反相器封装大而且供电范围是2V到6V和SN74LVC1G14DBVR的1.65V到5.5V略有不同。74HC14的阈值和迟滞电压也不同替换后需要重新计算RC参数。如果对频率精度要求高可以用晶振或者陶瓷谐振器代替RC振荡器。晶振的频率精度可以达到±20ppm而RC振荡器的精度只有±5%到±10%。但晶振需要额外的起振电路成本也更高。如果对频率可调性要求高可以用可调电阻代替固定电阻或者用数字电位器。可调电阻的缺点是长期稳定性差触点容易氧化。数字电位器可以通过MCU控制但需要额外的编程和接口。6. 这个电路还能怎么玩几个扩展思路6.1 频率可调的方波发生器把反馈电阻换成一个固定电阻串联一个可调电阻就可以手动调节频率。比如固定电阻3.3kΩ可调电阻10kΩ总电阻范围3.3kΩ到13.3kΩ频率范围约540kHz到2.2MHz。可调电阻选多圈精密电位器调节更精细。如果要用MCU控制频率可以用数字电位器比如MCP41010代替可调电阻通过SPI接口控制阻值。数字电位器的分辨率一般是8位256级对于大多数应用够用。但要注意数字电位器的带宽和寄生电容高频时可能影响波形质量。6.2 占空比可调的方波发生器基本的RC振荡器占空比接近50%如果要调节占空比可以在充电和放电路径上分别加不同的电阻。具体做法反馈电阻分成两个并联支路一个支路串联二极管用于充电另一个支路串联二极管用于放电两个支路的电阻值不同就可以得到不同的充电和放电时间常数从而调节占空比。比如充电支路电阻1kΩ放电支路电阻10kΩ那么充电快放电慢输出高电平时间短低电平时间长占空比小于50%。反之则占空比大于50%。二极管选肖特基二极管压降小速度快。6.3 多路方波输出与相位控制如果需要多路方波输出可以用多颗SN74LVC1G14DBVR每颗产生一路方波频率可以相同也可以不同。如果频率相同但相位不同可以用一颗芯片产生主振荡然后通过RC移相网络或者触发器产生多路相位不同的方波。比如用一颗SN74LVC1G14DBVR产生主振荡输出接到一个D触发器的时钟输入端D触发器的Q和Q非输出就是两路相位差180度的方波。再用第二颗D触发器时钟接第一颗的Q非就可以得到相位差90度的方波。这样可以用简单的数字电路产生多路正交方波用于驱动H桥或者正交编码器。6.4 按键控制的多功能信号源把按键检测电路和方波发生器结合起来可以用按键切换不同的频率或者波形。比如用一颗MCU读取按键状态MCU控制数字电位器的阻值从而切换频率。或者用按键控制模拟开关切换不同的反馈电容实现频率切换。我做过一个简单的多功能信号源用一颗SN74LVC1G14DBVR做方波发生器反馈网络由三个电容和三个电阻组成通过按键控制模拟开关切换不同的电容和电阻组合可以输出1kHz、10kHz、100kHz、1MHz四档频率。按键检测用另一颗SN74LVC1G14DBVR输出接到MCUMCU控制模拟开关。整个电路成本不到5块钱但功能很实用。6.5 低功耗设计考虑SN74LVC1G14DBVR的静态电流很小典型值1μA但动态电流随频率增加而增加。在3.3V供电、1MHz输出时电源电流约2mA到3mA。如果用于电池供电的设备需要降低频率或者间歇工作。降低频率可以降低动态电流因为动态电流和频率成正比。如果频率从1MHz降到1kHz动态电流降到约2μA到3μA加上静态电流1μA总电流约3μA到4μA一颗纽扣电池可以用好几年。间歇工作是指用MCU控制方波发生器的电源需要的时候才上电不需要的时候断电。SN74LVC1G14DBVR的启动时间很短上电后几微秒就能起振所以间歇工作不会影响响应速度。如果对功耗要求极高可以用更低功耗的芯片比如74AUP1G14静态电流只有0.1μA但驱动能力也弱一些输出电流只有±4mA。选型时要根据实际负载来权衡。我个人在实际操作中的体会是SN74LVC1G14DBVR这颗芯片虽然简单但要用好还是要注意不少细节。反馈电阻和电容的选值、退耦电容的位置、输入端的保护、输出端的负载每一个环节都会影响最终的性能。我建议第一次做这个电路的时候先用面包板搭一个最小系统只焊方波发生器部分用示波器确认波形正常后再加按键检测和LED指示。这样排查问题容易得多。另外多买几颗芯片不同批次的芯片阈值可能有差异筛选一下可以得到更精确的频率。最后再分享一个小技巧如果手头没有示波器可以用一个简单的RC低通滤波加万用表来测频率虽然精度不高但判断电路有没有起振、频率大概在什么范围还是够用的。
阅读完成 · 觉得有帮助?
咨询建站