无变压器电源设计:从电容限流原理到5V/50mA IoT设备供电实战
1. 项目概述为什么我们需要无变压器电源在捣鼓Arduino、ESP8266这类微控制器小项目时最头疼的往往不是代码逻辑而是怎么给它找个合适的“家”——一个稳定、小巧又便宜的电源。传统的方案要么是笨重的工频变压器配线性稳压器发热大、效率低要么是复杂的开关电源SMPS虽然效率高但设计门槛不低电磁干扰EMI处理起来也麻烦。对于只需要几十毫安电流的传感器节点、小型显示屏或者简单的控制电路来说这些方案都像是“高射炮打蚊子”既浪费成本也占空间。于是无变压器电源Transformer-less Power Supply TPS这种“小而美”的方案就进入了我们的视野。它的核心思路非常巧妙利用电容的“容抗”来代替传统变压器或大功率电阻对220V交流市电进行分压和限流再经过整流、滤波和稳压得到我们需要的低压直流电。整个电路的核心元件可能就几个一个安规电容、几个二极管、一个稳压管和一个滤波电容。成本可以控制在几块钱人民币以内体积可以做到比一枚硬币还小非常适合集成到最终产品里。我最早接触这种电路是在一些老式的家电遥控器、LED灯驱动或者门铃里。后来自己做物联网IoT设备需要把传感器节点塞进各种角落对电源的体积和成本极其敏感TPS就成了我的首选方案之一。当然它绝非完美最大的挑战就是安全。因为电路直接与市电火线连接没有变压器的电气隔离任何一个元件的失效都可能让低压输出端带上致命的220V电压。所以设计TPS一半是电路艺术另一半则是严谨的安全工程。接下来我会结合一个为Arduino Nano或ESP-01S供电的典型5V/50mA TPS电路从头到尾拆解其设计思路、元件选型、计算过程并分享我踩过的坑和积累的实操经验。2. 电路原理深度解析电容如何“代替”变压器要理解无变压器电源关键在于吃透“容抗”这个概念。我们跳过复杂的公式推导用更直观的方式来理解。2.1 容抗交流电路中的“智能电阻”想象一下水流过管道。直流电就像稳定的水流电容对于直流电来说相当于一个完全关闭的水闸水流无法通过隔直。但交流电是方向周期性变化的水流电容的极板可以随着水流方向的改变而反复充放电宏观上看就好像水流“通过”了电容。不过这个“管道”对水流有阻碍这个阻碍就是容抗Xc单位是欧姆。容抗的计算公式是Xc 1 / (2 * π * f * C)。其中f是交流电频率我国市电为50HzC是电容的容量单位法拉。这个公式告诉我们电容容量越大容抗越小允许通过的交流电流就越大。这就像水管越粗水流越容易通过一样。在TPS电路中我们正是利用这个安规电容C1产生的容抗来限制从市电流向后续电路的电流。它扮演了一个“无功耗”限流电阻的角色。为什么说“无功耗”因为理想电容不消耗有功功率电流流过它时电压和电流相位差90度能量在电场中交换而不被消耗。相比之下如果用一个大电阻来限流比如要得到同样的限流效果电阻上会消耗巨大的功率PI²R这些功率全部转化为热量效率极低且发热严重。这就是TPS在低电流应用中的核心优势高效限流。2.2 整体电路工作流程从220VAC到5VDC让我们跟随电流的路径看一遍完整的能量转换过程市电输入与限流220V/50Hz的交流电通过保险丝F1可选但强烈建议后首先遇到的是并联的压敏电阻RV1用于吸收浪涌和安规电容C1。C1的容抗决定了整个电路的最大输入电流。例如一个0.68μF的电容在50Hz下的容抗约为4687欧姆。根据欧姆定律最大理论电流 I_max ≈ V_ac / Xc 220V / 4687Ω ≈ 47mA。这就是我们设计的电流上限。整流与滤波经过C1限流后的交流电进入由D1-D4组成的桥式整流器。它将双向的交流电转换为单向的脉动直流电。这个脉动直流电随后给滤波电容C2充电。C2的容量通常是100μF-470μF决定了输出电压的纹波大小。容量越大储存的电荷越多在整流桥不输出的间隙每个交流周期有两次能为负载提供的电流越稳定纹波越小。稳压与保护整流滤波后的电压仍然会随着输入电压和负载变化而波动。齐纳二极管ZD1例如5.1V在此处起到钳位稳压的作用。当电压试图超过其齐纳电压时ZD1会反向击穿将多余的电流旁路到地从而将输出电压稳定在5.1V左右。电阻R2是ZD1的限流电阻确保其工作在安全电流范围内。电阻R1是C1的泄放电阻至关重要。断电后C1上可能残留高压R1通常1MΩ能在几秒内将其安全释放防止电击风险。输出最终在C2和ZD1的共同作用下我们得到一个相对稳定的5V直流电为后级的微控制器供电。注意这里的“稳压”是相对的。齐纳二极管的稳压精度和动态响应不如线性稳压器如LM7805。当负载电流变化剧烈时输出电压可能会有几十到上百毫伏的波动。对于大多数数字电路来说这完全可以接受。2.3 与阻容降压RC降压的辨析很多人容易把TPS和简单的阻容降压搞混。经典的阻容降压使用一个电阻和一个电容串联分压电阻会消耗大量功率仅适用于极微电流几个mA的场景如LED指示灯。而我们讨论的TPS其核心是利用容抗限流后续有完整的整流、滤波和稳压环节能提供数十毫安级的电流是功能完整的电源电路。可以说TPS是阻容降压的“完全体”和“安全体”。3. 核心元件选型与参数计算每一个零件都关乎安全与性能设计TPS元件的选择不是“差不多就行”每一个都必须精确计算并满足安全规格。这里我提供一个为5V/50mA负载设计的详细计算范例。3.1 安规电容C1电路的“心脏”与“安全阀”这是整个电路中最关键、安全要求最高的元件。容量计算目标输出电流 I_out 50mA。考虑到整流桥、稳压管的损耗输入电流需要略大于输出电流我们假设效率约为80%则所需输入电流 I_in ≈ I_out / 0.8 ≈ 62.5mA。 根据容抗公式Xc V_ac / I_in。这里 V_ac 取市电有效值220V则Xc ≈ 220V / 0.0625A ≈ 3520Ω。 再由C 1 / (2 * π * f * Xc)计算电容值C ≈ 1 / (2 * 3.14 * 50 * 3520) ≈ 0.90 * 10^-6 F 0.90μF。 实际上由于市电电压可能波动如升至240V并为留有余量我们通常选择比计算值稍小的标准电容。0.68μF或0.82μF是常见选择。0.68μF对应的理论最大电流约为47mA满足50mA需求且有少许余量。类型与安全等级必须使用X类安规电容。安规电容经过特殊设计失效时呈开路状态避免短路引起火灾。X电容又分X1耐高压脉冲4kV和X2耐压2.5kV。对于220V市电应用X2等级完全足够也更常见便宜。绝对禁止使用普通的CBB或涤纶电容替代耐压值电容的额定交流电压V~AC必须大于当地市电的最高电压。对于220V地区建议选择耐压AC275V或AC310V及以上的X2电容。3.2 整流二极管D1-D4与稳压二极管ZD1整流二极管由于电流很小100mA普通的1N40071A/1000V完全胜任且绰绰有余。它的高反向耐压提供了良好的安全性。也可以使用更小的1N4148但其反向耐压较低在高压浪涌下风险更高因此推荐使用1N4007。稳压二极管齐纳二极管电压选择需要5V输出就选5.1V的齐纳二极管如1N4733A。注意齐纳二极管的标称电压是在特定测试电流下的实际输出电压会随电流略有变化。功率计算齐纳二极管消耗的功率 P_z V_z * I_z。最恶劣的情况是负载断开空载时所有输入电流约47mA都将流过齐纳管。此时 P_z_max ≈ 5.1V * 0.047A ≈ 0.24W。因此选择一颗标准的1W1N4733A齐纳二极管是安全且常见的。为了更可靠也可以选择1.5W或2W的型号。限流电阻R2R2的作用是防止空载时过大的电流损坏齐纳管和滤波电容。其值需要计算当满载时R2和负载微控制器共同分担电流。假设满载时负载需要50mA齐纳管需要流过最小稳定电流查数据表假设为5mA则总电流55mA。R2上的压降为输入电压整流滤波后约市电峰值电压减去损耗粗略估计为300V减去齐纳电压5.1V约为295V。根据欧姆定律 R2 ≈ 295V / 0.055A ≈ 5363Ω。这是一个非常大的电阻功耗 P_R2 I² * R (0.055)² * 5363 ≈ 16W这显然不可行。 实际上在TPS中限流功能主要由安规电容C1承担了。R2的取值可以很小如10-100欧姆其主要作用是在上电瞬间限制对滤波电容C2的冲击电流并作为一个小型保险丝。更常见的做法是省略R2或者使用一个几欧姆到几十欧姆的小电阻。齐纳管的保护依赖于C1提供的天然电流上限。3.3 滤波电容C2与泄放电阻R1滤波电容C2其容量决定了输出电压的纹波。纹波电压 V_ripple ≈ I_load / (f * C2)。其中对于全桥整流f取100Hz因为整流后脉动频率是市电的2倍。假设负载电流 I_load 50mA希望纹波小于0.5V。 则C2 ≈ I_load / (f * V_ripple) 0.05A / (100Hz * 0.5V) 0.001 F 1000μF。 这个计算值往往很大。在实际中由于齐纳二极管的稳压作用我们可以容忍更大的纹波。通常选择220μF到470μF的电解电容即可满足大多数微控制器的要求。耐压选择16V或25V足够。泄放电阻R1这是生命安全的保障。断电后C1假设0.68μF可能储存高压电荷。R1的作用是在安全时间内将其放电。放电时间常数 τ R1 * C1。为了安全要求在断电后1秒内将电压降至安全电压如36V以下。根据放电公式 V(t) V0 * e^(-t/τ)。设V0311V220V的峰值要求1秒后V36V。 解方程 36 311 * e^(-1/τ)得 τ ≈ 0.21秒。 由于 τ R1 * C1 所以 R1 ≤ τ / C1 0.21s / (0.68*10^-6 F) ≈ 309kΩ。 为了留足余量通常选择1MΩ一百万欧姆的电阻。此时 τ 1e6 * 0.68e-6 0.68秒能在几秒内充分放电。该电阻的功率很小1/4W或1/8W规格即可。3.4 其他保护元件保险丝F1可选但推荐在火线输入端串联一个慢断型保险丝如100mA/250V可以在电容C1意外短路时提供最后一道保护防止线路过热。压敏电阻RV1可选但推荐并联在输入端用于吸收来自电网的瞬时高压浪涌如雷击感应、电机启停保护后续脆弱的二极管和电容。可选型号如7D471470V钳位电压。4. 完整电路设计与PCB布局要点基于以上分析我们可以绘制出完整的电路图并设计PCB。4.1 完整电路图与BOM清单一个增强安全性的5V/50mA TPS电路图如下所示文字描述[AC L] --- [F1 100mA] --------- [C1 0.68uF X2] -------- [全桥整流 D1-D4 1N4007] ------ [C2 470uF/16V] ------ [Vout 5V] | | | | | [RV1 7D471] [R1 1MΩ 1/4W] [ZD1 5.1V 1W] | | | | | | [AC N] -------------------------------------------------------------------------------------------------------- [GND](注为清晰表示全桥整流具体连接方式为C1/R1连接点接桥堆一个交流输入端另一个交流输入端接AC N。桥堆正输出接C2正极和负载VCC负输出接C2负极、ZD1阳极和负载GND。ZD1阴极接Vout。物料清单BOM位号参数数量备注C10.68μF X2 AC275V1核心必须安规电容R11MΩ 1/4W1泄放电阻碳膜/金属膜均可D1-D41N40074整流二极管ZD15.1V 1W (1N4733A)1稳压二极管C2470μF 16V 电解电容1滤波电容RV17D471 或 MOV-14D4711压敏电阻可选但推荐F1100mA/250V 慢断保险丝1可选但推荐配保险丝座PCB自定义1单面板即可4.2 PCB布局与布线安全规范PCB布局对于高压电路至关重要不良布局可能导致爬电距离不足引起打火或失效。强弱电隔离在PCB上明确划分“高压区”市电输入、C1、R1、整流桥和“低压区”C2、ZD1、输出端子。两者之间留出足够的电气间隙空间距离和爬电距离沿面距离。对于220V工作电压建议强弱电之间的间隔至少保持3mm以上最好能达到5-8mm。可以在PCB上开一条隔离槽来强制增加距离。走线宽度高压走线尤其是保险丝后到整流桥之前的电流虽然小但为安全起见线宽不应太细建议不小于0.5mm约20mil。低压部分走线可以细一些。元件间距高压部分的元件如C1、R1、整流桥引脚之间也要保持足够距离避免因灰尘、潮湿导致短路。泄放电阻放置R1应尽可能靠近安规电容C1的引脚放置确保放电路径最短即使电路其他部分断开C1也能通过R1放电。接地与铺铜低压区的GND可以铺铜以增强稳定性和抗干扰能力。但高压区绝对不要大面积铺铜以免增加不必要的耦合电容和安全隐患。丝印与标识在PCB上清晰丝印“高压危险”、“AC 220V INPUT”等警告标识。标明输入L/N、输出VCC/GND端子。实操心得我第一次画TPS的PCB时忽略了爬电距离高压走线和低压地之间只留了1mm。板子做回来测试没问题但长期在潮湿环境下工作后出现了轻微的漏电导致微控制器偶尔复位。后来严格按照规范重新设计问题彻底消失。这个教训让我深刻理解到安全规范不是纸上谈兵而是用可能的事故写成的。5. 组装、测试与调试全流程5.1 焊接与组装步骤准备与防护工作台铺防静电垫佩戴静电手环。准备好万用表最好有电容档、隔离变压器强烈推荐或漏电保护插排。焊接顺序建议先焊接低压部分的元件C2 ZD1 输出插座再焊接高压部分R1 C1 整流桥 RV1 保险丝座。特别注意电解电容C2和二极管ZD1的极性切勿焊反。检查焊接完成后用放大镜检查有无虚焊、连锡。用万用表二极管档检查整流桥是否正确用电阻档检查R1阻值是否正常确保无短路。5.2 上电测试流程安全第一警告以下测试涉及220V市电有触电危险请务必在有经验人员指导下进行或使用隔离变压器进行测试。空载测试不接单片机将电路板固定好远离金属物体和人体。使用隔离变压器给电路供电或者确保测试环境有漏电保护开关。用万用表交流电压档测量输入端电压是否为220V。用直流电压档测量输出端C2两端电压。理论上应接近齐纳二极管的稳压值约5.1V。由于空载所有电流流经ZD1电压可能会略高一点如5.3V这是正常的。测量输出端电压纹波。将万用表调到交流毫伏档或使用示波器测量。空载时纹波应该很小。带载测试准备一个可调电子负载或者一个已知电流的负载如多个并联的LED加限流电阻。从轻载如10mA开始逐步增加负载电流到设计值50mA。观察输出电压的变化。随着负载加重输出电压会略有下降。当负载电流接近C1提供的最大电流时输出电压会开始急剧下降。记录下能维持稳定5V输出的最大电流这就是该电源的实际带载能力。在整个带载范围内测量输出电压的纹波。纹波会随负载增大而增大。关键参数测量效率测量输入功率需要功率计或分别测输入AC电压、电流并计算和输出功率输出电压*输出电流。TPS的效率通常在50%-80%之间取决于负载和设计。温升长时间满载工作后用手断电后或测温枪检查齐纳二极管ZD1和安规电容C1的温升。ZD1微热是正常的因为它消耗了多余的功率但不应烫手。C1应该基本无温升。5.3 与微控制器连接实测以Arduino Nano为例断开所有电源。将TPS的5V输出连接到Nano的“5V”引脚GND连接到Nano的“GND”引脚。注意不要使用Nano的Vin引脚也不要插入USB线。上电观察Nano的电源指示灯是否亮起。上传一个简单的Blink程序观察是否正常工作。可以连接一些外围设备如一个OLED屏幕约20mA和一个温湿度传感器约1mA测试电源在动态负载下的稳定性。6. 常见问题、故障排查与进阶优化即使按照设计焊接也可能遇到问题。下面是我总结的“排错手册”。6.1 故障现象与排查表故障现象可能原因排查步骤与解决方案无输出电压1. 保险丝熔断2. 安规电容C1开路3. 整流桥有二极管开路或焊反4. 泄放电阻R1短路罕见1. 断电检查保险丝通断。2. 用电容表测量C1容量是否正常。3. 用万用表二极管档检查D1-D4每个二极管的正反向压降。4. 测量R1阻值是否为1MΩ左右。输出电压远低于5V如1-2V1. 滤波电容C2失效或容量严重不足2. 负载电流超过设计值短路或过载3. 齐纳二极管ZD1接反或损坏1. 更换C2试试。2. 断开负载测空载电压。若恢复正常检查负载电路是否短路或耗电过大。3. 检查ZD1方向或用万用表测其稳压值。输出电压偏高且不稳定如6-8V1. 齐纳二极管ZD1开路或未焊接2. 负载太轻且无其他稳压路径1. 检查ZD1是否焊好测量其是否导通在路测量可能不准可焊下一端测量。2. 这是TPS空载时的典型现象接上适当负载如一个1kΩ电阻电压应下降至5V左右。输出电压纹波过大单片机频繁复位1. 滤波电容C2容量不足或失效如干涸2. 安规电容C1容量偏小导致带载能力处于临界状态3. 负载电流动态变化太快1. 并联一个相同或更大容量的电容在C2上观察纹波是否改善。2. 尝试将C1换为0.82μF或1μF需重新计算电流注意不能超出后续元件承受能力。3. 在单片机电源引脚就近增加一个10-100μF的电解电容和一个0.1μF的陶瓷电容进行去耦。安规电容C1或齐纳管ZD1发热严重1. 输入电压过高2. 负载过轻导致ZD1消耗功率过大3. C1质量差损耗角大1. 检查市电电压是否正常。2. 确保电源有最小负载或考虑在输出端并联一个固定假负载电阻如输出5V时并联1kΩ电阻消耗5mA。3. 更换为品牌可靠的安规电容。6.2 进阶优化技巧增加线性稳压器以提高稳定性如果负载对电压精度和纹波要求很高如某些ADC可以在TPS的5V输出后面再级联一个低压差的线性稳压器LDO如AMS1117-3.3V为核心单片机提供更干净的3.3V电源。TPS作为“预稳压”承担大部分压差和功耗LDO则进行精细稳压。实现多路输出如果需要3.3V和5V可以用TPS产生一个稍高的电压如9V然后分别用两个LDO如LM7805和AMS1117-3.3稳压得到。注意总功率不能超过TPS的设计容量。过流保护在输出端串联一个自恢复保险丝PPTC可以在负载短路时切断电路故障排除后自动恢复保护TPS和后续电路。EMI滤波在交流输入端增加一个共模电感和小电容组成的π型滤波器可以有效抑制TPS电路对电网的高频干扰也减少电网干扰对电路的影响提升系统可靠性。6.3 安全红线绝对不能妥协的原则必须使用X2安规电容这是防止电容短路起火的最关键保障。必须并联1MΩ泄放电阻这是防止断电后触电的生命保障。初次测试务必使用隔离变压器它能将你与大地隔离即使触碰到电路中的高压点也不会形成回路极大降低触电风险。没有隔离变压器也必须确保有漏电保护开关。高压部分做好绝缘与隔离成品必须用绝缘外壳封装PCB上强弱电严格分区。明确标识设备上清晰标明“高压危险”、“非隔离电源”等警示。无变压器电源是一个经典、巧妙且极具性价比的解决方案它完美诠释了工程学中“用简单方法解决特定问题”的智慧。它不适合给手机充电也不适合驱动电机但在其擅长的领域——为那些静默运行、耗电极小的物联网传感器、时钟模块、显示单元供电——它几乎是无敌的。掌握它意味着你在硬件设计的工具箱里又多了一件轻便而锋利的武器。记住敬畏市电恪守安全规范然后大胆地去用它点亮你的创意吧。在我众多的低功耗项目里这颗小小的、没有线圈的电源一直是默默守护系统运行的可靠基石。