
1. 从扳开关到搬信号SPST和SPDT到底在解决什么问题做硬件这一行越基础的概念越容易被忽视。提到“开关”很多人脑子里首先冒出来的是继电器、轻触按键、拨码开关这些确实是开关家族的重要成员。但当你面对的是模拟信号——比如传感器的毫伏级电压、音频的交流波形、可调电源的反馈通路——机械开关那一套就完全不够用了。这时候真正上场的是模拟开关更具体地说是SPST和SPDT这两种最基础的结构。所谓SPST就是Single Pole Single Throw单刀单掷一组输入端一组输出端导通就是直通断开就是彻底隔离类似家里墙上的灯开关。SPDT则是Single Pole Double Throw单刀双掷一个公共端可以在两个输出端之间切换类似火车变轨的道岔。模拟开关跟机械开关最大的区别在于它内部没有物理触点而是用MOS管构成的可控导通通道通过控制信号的电平高低来决定通道通断。这个特性带来了几个机械开关永远做不到的优势切换速度极快、体积小、寿命无限、无机械抖动而且控制端与信号通路完全隔离。实际项目中我用到模拟开关最多的地方就是做信号通道选择。比如一块数据采集板卡上有多路传感器信号但ADC资源有限不可能每路都配一个ADC怎么办用模拟开关一路一路切进来。还有音频设备里做输入源切换比如LINE IN、MIC、蓝牙三路信号选一路进功放用SPDT就很顺手。再比如自动增益控制电路里用模拟开关切换反馈电阻的值从而改变放大倍数这种方案比用数字电位器要省成本而且信号路径更干净。这篇内容适合谁看如果你是刚开始接触模拟电路设计的在校生或者正在做信号链路的硬件工程师又或者是想用模拟开关替换继电器的项目负责人那么把SPST和SPDT的原理、参数、串扰、应用电路这几点吃透你会少走非常多弯路。我最初在这上面交了不少学费很多问题当时觉得玄学后来回头看全是基础概念没扎牢。2. 导通电阻、泄漏电流、电荷注入这三个参数决定了你的信号保真度模拟开关不是一根理想导线。它在导通时有电阻断开时有泄漏电流切换瞬间还会注入电荷。这三个非理想特性是所有模拟开关选型时必须面对的核心矛盾也是很多设计翻车的重灾区。2.1 导通电阻Ron越低越好但别只看常温值导通电阻Ron是模拟开关导通状态下输入到输出之间的等效电阻。普通CMOS模拟开关的Ron通常在几欧到一百多欧不等。比如经典的CD4066Ron典型值大概在几十欧到上百欧而ADI的ADG5412这类高性能开关Ron可以做到5欧以下甚至有亚欧级别的开关。Ron对你的电路意味着什么如果负载阻抗很低比如你就想让开关直接驱动一个8欧的扬声器那么Ron为10欧时信号已经衰减掉了一多半这时候就必须选Ron足够低的开关。如果负载阻抗很高比如后级是10兆欧的缓冲器那Ron几百欧都无所谓因为分压比例几乎不受影响。这里有个特别容易踩的坑是Ron并不是恒定值。手册上标注的Ron是在某个特定电压、特定电流、特定温度下测得的值。实际工作时Ron会随输入信号电压的变化而波动尤其是在低压供电下这种波动可能非常明显。我遇到过一次设计电源电压3.3伏开关用的是CD4052实测导通时输出波形有可见的非线性畸变就是因为输入信号接近电源轨时MOS管导通过程进入非线性区Ron剧烈变化导致信号失真。解决办法要么提高电源电压要么换成Ron平坦度更高的开关比如ADG系列或者TI的TS5A系列。开关型号电源电压范围Ron典型值Ron平坦度导通时间/关断时间通道数/结构CD40663-15V80Ω左右一般随信号电压波动大微秒级4路SPSTTS5A231571.65-5.5V1Ω左右较好十几纳秒双路SPDTADG54125-16V5Ω以下优秀微秒级四路SPSTMAX40532.7-16V100Ω左右一般百纳秒级三路SPDT在实际选型中除了看Ron绝对值还要看Ron平坦度Ron Flatness也就是在不同输入电压下Ron的变化范围。如果你的信号是精密直流信号或者是高保真音频这个指标比Ron绝对值更重要。因为平坦度的差值会直接转化为信号的增益误差或谐波失真。2.2 泄漏电流低功耗电路和高阻抗电路的大敌模拟开关在断开状态时并不是百分百彻底隔离这就有泄漏电流。市场上常见模拟开关的泄漏电流从皮安级到微安级都有。怎么理解这个量级如果你的信号源内阻是1兆欧泄漏电流是1微安那么断开时这个泄漏电流在源内阻上产生的压降就是1伏那这个开关根本没法用断开跟导通没什么区别。我在做一个高阻抗生物电信号采集前端的时候就专门吃过这个亏。当时电极的输出阻抗高达几百兆欧我随便找了一个廉价模拟开关做通道复用结果发现某个通道断开时依然能检测到微弱信号。排查来排查去最后看手册发现这个开关的泄漏电流在高温下能到几个纳安乘以信号源阻抗几百兆欧产生的误差电压已经超过了ADC分辨率。后来换成泄漏电流只有皮安级的开关问题立刻消失。低功耗系统的设计者要特别注意电池供电的设备经常把信号源阻抗做得很高以降低整体功耗此时泄漏电流的影响会被放大。选型时不但要看25度时的泄漏电流还要看全温度范围内的最大值。模拟开关的泄漏电流和温度强相关温度每升高10度泄漏电流可能会翻倍甚至更多。2.3 电荷注入和时钟馈通切换瞬间的精度杀手电荷注入Charge Injection是模拟开关在切换瞬间控制信号通过栅极和漏源之间的寄生电容向信号通路注入电荷包的现象。这会造成输出电压的短暂跳变跳变幅度取决于注入电荷量和信号通路上的电容大小。如果后级跟随的很慢这个毛刺可能维持相当长时间。时钟馈通Clock Feedthrough也是类似的问题控制信号本身直接通过寄生电容耦合到信号通道。这两个指标在采样保持电路和小信号精密切换中非常致命。我在一个采样保持器电路里用的SPST模拟开关切换瞬间在保持电容上产生了约5毫伏的台阶误差。由于系统要求12位精度、参考电压4.096VLSB大约1毫伏5毫伏的台阶直接让系统精度不够。解决方案是把开关从普通的CD4066换成低电荷注入的专用模拟开关并且优化了控制信号的上升沿速度——加了一个RC电路让控制信号变慢一些反而减少了高频耦合。这里分享一个实测出来的经验如果你对电荷注入特别敏感可以考虑在控制端串联一个几十到几百欧的电阻减慢驱动边沿。虽然切换速度会稍微变慢但切换噪声改善非常明显。这个技巧属于“手册上不会告诉你、但实验室里很有用”的做法。3. 多路切换中的串扰现象原理机制与实际对策“串扰”是模拟开关用多了之后躲不开的话题。很多兄弟第一次遇到串扰的时候都一脸懵明明各通道都断开了为什么A通道的信号会跑到B通道上去这里面的原因很复杂笼统说一句“PCB漏电”就完事那是极不负责的。搞清楚串扰的来源你才能在电路设计阶段就把它按住。3.1 串扰的三个主要传播路径第一个路径是电源耦合。所有通道的MOS管都共用一个内部衬底和电源轨某一路的大信号活动会引起电源电压的微小波动这个波动又会通过另一路通道的导通路径耦合到输出。这个路径在开关的电源引脚和地引脚上没有做好去耦的时候尤其明显。我在多层板上习惯在模拟开关的电源引脚旁边放一个0.1uF的陶瓷电容并且尽可能靠近引脚放置另外再并一个1nF的高频电容专门应对高频串扰。第二个路径是电容耦合。模拟开关断开时输入与输出之间并不是完全开路而是存在一个断态电容Off Capacitance通常在几个pF到十几个pF之间。当信号频率升高时这个电容的阻抗逐渐降低信号就能穿过去。打个比方一堵墙虽然砌了但是墙里面留了几扇透气的窗高频信号就像水蒸气能从窗缝里渗过去。这也是为什么高频应用中模拟开关的带宽和断态电容必须同时关注。一个10pF的断态电容在10MHz时容抗只有大约1.6千欧这对于高阻抗负载来说已经是不可忽视的通道了。第三个路径是衬底耦合。这是芯片内部的物理机制多个通道共享同一块衬底沟道和阱之间的寄生电容会形成交叉耦合。衬底耦合很难从外部消除只能在选型时优先选择隔离做得好的器件或者选择带专用隔离环的开关芯片。3.2 从布局布线层面对抗串扰的实操清单串扰问题到底层逻辑看芯片内部的耦合我们控制不了但板级层面我们是可以做很多事情的。以下是我在多路模拟开关设计时固定执行的几条规则电源去耦要扎堆且就近。模拟开关的电源引脚、地引脚和每一路信号引脚都要仔细规划。电源引脚的去耦电容就近放置如果PCB空间允许电源引脚处用0.1uF加1nF的双电容组合效果会好很多。去耦电容的接地端要直接回到IC地引脚附近的过孔不要绕远路。信号走线之间加地隔离。如果板上有多路模拟开关并行切换建议在相邻通道走线之间铺设一条地线隔离间隔间距至少3倍线宽。这个地就不用是完整的地平面一条细的接地铜皮就能显著降低容性耦合。我做过对比测试在同样的层叠结构下信号线之间加了地线隔离之后10MHz串扰能改善6到8dB。输入输出走线分层。如果开关的输入和输出分别在板子的不同区域主信号路径尽量不要在同一层平行走线。哪怕必须同层也不要长距离平行最好垂直交叉走不同层把平行耦合距离压缩到最短。悬空引脚要处理干净。多路开关中不用的输入端要么直接接地要么通过一个高阻电阻拉到地。悬空的输入端有时候会成为“天线”耦合进来的噪声再通过开关的泄漏路径送到输出端造成很奇怪的串扰现象。这一点蛮多人忽略的。3.3 实测串扰的正确姿势从数据里找真凶真实测试串扰时我习惯用这样的方法把A通道输入一个大幅度的正弦波比如2Vpp、1MHzB通道输入直流0V然后测量B通道输出端上有多少A频率成分的泄漏。读出的幅度和A通道输入幅度的比值就是这个条件下的串扰指标。如果你发现串扰超出了预期排查顺序应该是先看电源是否干净。示波器夹在电源引脚上看如果电源上本身就有一堆开关动作导致的毛刺那先处理电源去耦电容配置好再测一次。然后是布局问题信号线之间的间距是否足够、有没有长距离平行走线。最后才是芯片本身的极限指标查手册对比当前条件下的串扰指标是否本来就是这么差。还有一个经验是串扰指标是频率的函数手册上通常只给一个典型频率下的值。如果工作在更高频率要自己推算或实测。断态电容的耦合是随着频率上升而加剧的10MHz和100MHz的串扰差距可能高达20dB以上。4. 二选一模拟开关与相敏检波SPDT的高阶用法讲完了基础参数和串扰来看看SPDT在一个经典高价值电路结构中的应用——模拟开关型相敏检波电路。这一块内容把SPDT的价值体现得淋漓尽致因为SPDT天生就是用来做“二选一”的器件而相敏检波需要的恰恰是二选一式的同步切换。4.1 什么是模拟开关型相敏检波相敏检波的核心思想是让信号和参考信号做乘法运算然后低通滤波提取出和参考同频同相的分量。传统的实现方案是用模拟乘法器但模拟乘法器贵、精度受温度影响大、而且对信号的线性范围有要求。在频率不高、信号幅度合理的场景下用SPDT模拟开关配合一个反相器就可以实现等效的乘法运算。电路原理是这样的输入信号vin分为两路一路直接接到SPDT的A输入另一路经过一个单位增益反向放大器变成负信号接到SPDT的B输入。SPDT的公共端接输出控制端接参考信号。当参考信号为高时输出连通A为低时输出连通B。如果参考信号是一个和输入信号同频的方波那输出信号就是这个输入信号被方波钳制后取反和取正交替的结果本质上等效于vin乘以一个±1的方波。后级再接一个低通滤波器把高频成分滤掉剩下的直流幅度直接和输入信号中与参考同频分量的幅度成正比。这个电路我第一次搭建的时候觉得非常惊艳。一个几毛钱的模拟开关芯片加一个运放就实现了一个迷你锁相放大器。比起真正的模拟乘法器方案它的功耗低得多而且相敏检波的频率由参考信号精确决定不会出现乘法器的漂移问题。4.2 实际设计中的相位调整和噪声控制用SPDT做相敏检波电路有几个非常关键的设计细节必须要处理好。参考信号的边沿速度。SPDT的切换速度通常比较快如果你用方波直接驱动控制端那么切换瞬间的电荷注入会表现为一个尖锐的脉冲。这个脉冲的能量会进到基波分量里直接影响检波精度。我的做法是驱动控制端的RC时间常数不要取得太小让控制信号的边沿斜率稍微缓一些让开关切换在信号过零点附近进行然后利用低通滤波器把残余的切换毛刺滤掉检波结果会干净很多。反向放大器的带宽和相位。反向放大器要做到在整个信号频率范围内相位误差最小。如果反向放大器本身有相位延迟那么负半周期里送到B端的信号和正半周期的A端信号就不是严格的反相关系检波输出会出现残余的正交分量最终体现为直流偏置误差。这个误差在低信噪比测量中特别致命。选运放时最好选增益带宽积是信号频率10倍以上的型号并且测一下反向通道的实际相位偏差。SPDT的Ron对称性。检波精度还取决于A路和B路的增益是否一致。如果SPDT两个通道的Ron不相同那么正半周期和负半周期的信号幅度就不一样检波输出会引入偶数次谐波误差。选型时要留意手册上给出的通道间Ron匹配指标。CD4052这种匹配一般高精度应用建议选专门做音频或精密切换的开关芯片。4.3 一个实测波形调整的案例我做过一个基于SPDT的相敏检波电路用来探测微弱交流信号。最初搭出来以后示波器上看到的检波输出在目标直流分量附近有一个明显的高频纹波而且纹波幅度还不小。查了一圈发现问题是参考方波的边沿速度太快开关切换瞬间产生的毛刺通过低通滤波器泄漏了一部分出来。后来我在参考信号驱动引脚和地之间加了一个100pF左右的电容把方波边沿减慢到几百纳秒。结果显示检波输出的纹波幅度下降了大约60%虽然切换点在时间上拉长了但因为低通滤波器的截止频率远低于方波频率整体检波灵敏度没有受到影响。这个调整其实属于“以缓换纯”的做法——对于相敏检波来说开关速度够用就行追求极致的上升沿反而会引入额外的噪声源。另外如果参考信号和输入信号之间存在微小的相位差可以在前面加一个相位调整电路比如一个可调RC移相器让参考方波的过零点和输入信号的过零点基本对齐。我在实际使用中保留了一个200欧电阻加可调电容的移相网络调试时旋转电容观察检波输出直流幅度最大且稳定时就是相位调到最好的位置。5. 从分立到集成不同场景下的SPST/SPDT选型指南SPST和SPDT的理论再熟最后都要落地到选型上。市场上有太多选择同一个封装里可能装了4路SPST也可能是双SPDT还有人使用多路复用器来替代。这里按场景拆解一下我的选型思路。5.1 音频与精密模拟信号路径这类场景最看重导通电阻平坦度、低失真、低电荷注入和低串扰。对于音频信号比如吉他效果器里的信号路由、调音台的通道切换关键是要保证音频频带内开关切换不引入明显的“咔哒”声和失真。此时推荐TS5A22362这类带低失真特性的音频专用开关或者ADI的SSM系列。这类开关一般还内置了减少pop音的电路切换时输出不会出现大的直流台阶。实测中我发现音频场景下Ron绝对值反而不重要因为后级通常是高阻抗10k到100k输入Ron几十欧的影响几乎可以忽略但Ron的平坦度很重要。如果平坦度不好信号幅度不同时增益会有偏差听感上就是“大小声”甚至可闻失真。所以音频选型看两样THDN数据和电荷注入指标。5.2 高速数字与射频信号切换这个场景对模拟开关的要求完全不一样。高速数字信号如SDI视频信号或者USB差分信号要求开关的带宽足够高通道间Skew要小。射频信号则要求插入损耗低、隔离度高。比如做视频矩阵切换推荐用ADG918这种专门为高速信号设计的开关带宽可以到千兆级别。这类开关的本质结构和普通CMOS模拟开关类似但在衬底隔离和寄生电容优化上做了很多专门设计。需要注意的是高速数字信号切换如果开关带宽不够会导致信号边沿变缓眼图闭合这时候不是加驱动能解决的必须换更高速的开关。射频场景即便用模拟开关也要控制PCB走线的特征阻抗。信号走线要做阻抗匹配开关在信号链路中的位置要尽量紧凑避免走线过长引入额外的分布电容。射频切换时串扰问题就会比低频时严重很多通常测试隔离度要用网络分析仪。5.3 低功耗与便携设备电池供电的设备最关心功耗、体积和工作电压范围。低电压低功耗场景里常用的是TS5A系列或者推动类似负载的芯片它们可以在1.65V到5.5V之间工作静态功耗只有微安级甚至纳安级。此时开关的泄漏电流指标就特别重要因为低功耗设备往往把信号源阻抗做得很高。便携设备里的SD卡检测、USB ID检测、按键唤醒这些功能实际上用非常简单的SPST开关就能实现。关键点是控制逻辑要兼容工作电压不要出现控制电压高于电源电压的情况。有些开关要求在控制端电压不能超过电源电压否则可能闭锁甚至损坏。5.4 替代继电器时要注意的坑很多项目本来用机械继电器做信号切换由于寿命、速度、体积的问题想换成模拟开关这个想法合理但有三个坑必须注意。第一继电器触点导通电阻是毫欧级的模拟开关哪怕是高端产品也很难做到低于零点几欧。如果是大电流信号比如1A以上模拟开关基本扛不住内部MOS管的功耗和散热会把芯片烧掉。模拟开关适合信号级切换不适合功率级切换。第二继电器的隔离度很高尤其适合交流电源和高压信号的切换。模拟开关的耐压受限于电源电压一般最高也就正负十几伏。如果你切换的是48V或者220V信号模拟开关根本不能碰。第三继电器的触点闭合时是真正金属接触接触电阻稳定模拟开关的Ron会受温度和信号电压影响。如果系统对导通电阻的一致性要求很高要先评估是否符合你的精度需求。从我的经验来看在信号链路里用模拟开关替代继电器是大部分情况下的正解但在电源域和功率域里继电器依然是不可替代的角色这两个域要分清楚别混着来。6. 模拟开关电路的调试心得与最终建议最后聊聊我这些年调模拟开关电路的一些零散但实用的心得。这些心得写不进芯片手册更多是从实验室的示波器和频谱仪里“顿悟”出来的。第一个心得是不要怀疑开关芯片先怀疑电源。我遇到过太多的“模拟开关串扰”“模拟开关噪声”问题最后排查下来都是电源的问题。模拟开关的小信号路径极其敏感如果你的电源纹波在十毫伏级别而开关的隔离度在80dB那么理论上能漏过来的电源噪声就有1微伏。这个量级看起来很小但如果后级是高增益放大器比如说60dB的增益那就变成1毫伏输出噪声了一点都不小。任何时候给模拟开关一个干净的电源都是性价比最高的投资。第二个心得控制信号要加缓冲尽量少直接来自MCU引脚。MCU引脚的驱动能力和噪声特性并不理想尤其当控制信号比较长、走线绕过多个过孔的时候信号边沿容易振铃或变差这些会耦合到模拟通道里。我在控制信号端串了一个33欧的电阻靠近开关引脚位置加一个小电容到地整体噪声立刻下降了不少。第三个心得原理图上的旁路电容不是象征性的。很多小伙伴喜欢在原理图上放一堆电容但布局的时候随意放置。这对模拟开关来说是很要命的。旁路电容的位置好坏直接决定它的有效性。0.1uF电容放在距离电源引脚3毫米以内和放在3厘米以外效果天差地别。高频去耦电容靠近引脚是PCB走线的基本功但模拟开关的小信号特性把这个要求放大了很多倍。第四个心得留好备用位置。设计第一版PCB时开关芯片周围多放几个不贴的0603电阻电容空位。当你发现需要调整控制信号边沿速度或者需要调整偏置时直接贴上去就能改不需要重做板子。这个习惯帮我省了太多时间。回到起点SPST和SPDT模拟开关虽然基础但它们几乎出现在所有信号处理系统中数据采集、音频路由、检波解调、电源管理。理解它们的参数含义和分析方法比记住任何一块具体芯片的规格书都重要。当你看到一份原理图中某个SPST开关的用法觉得奇怪时顺着它的Ron、泄漏电流、电荷注入、串扰这四个维度去想大部分问题都能迎刃而解。这些是我在多次和模拟开关“较量”之后最深刻的认识。也希望大家在设计时多想一步你用来切换信号的通道本身会不会成为信号质量的瓶颈带着这个问题去做选型和布局这个基础器件就一定不会拖你后腿。