简介:面向电子DIY爱好者、硬件工程师及电子相关专业学生,这份T12焊台通用电源设计资源以家用交流电为输入,稳定输出24V直流电,包含两套可选的完整方案,且均已制作实物验证,可直接打样,适合自制焊台电源、设备维修或教学演示场景。压缩包共8个文件,整体仅7.84MB,其中原理图文档(SchDoc/SchLib)用于查看电路连接与元器件选型,PCB设计文档(PcbDoc/PcbLib)用于布局布线及生产制造,工程文件(PrjPcb)保证项目完整可编辑,htm说明页面则提供必要使用参考,目录按方案组织清晰。两种方案中,方案一提供24V/3A输出,方案二以UC3843控制器为核心,两者均包含独立原理图与PCB文件,可对比理解开关电源的设计取舍;从交流输入整流滤波到高频开关变换、反馈稳压,设计流程清晰完整,尤其有助于学习反激式电源的工程实现。整体打样投产风险较低,用户可直接参考PCB布局和元件参数,减少重复设计时间。目前已有1263人学习下载,适合需要定制T12焊台电源、补充开关电源设计经验的电子爱好者与工程师参考。
1. T12通用电源:烙铁手感差异的根源就在供电架构
T12烙铁头冷态电阻约8Ω,上电瞬间冲击电流超过3A,这意味着焊台的瞬态响应能力比额定功率更能决定焊接体验。两台焊台标称都是70W,焊大焊点时一台温度掉到300℃以下,另一台只掉30℃,差距不在烙铁头,而在电源架构。这个T12焊台通用电源项目给出了两个完整方案,一个以模拟PWM调压为核心,另一个走STM32数控同步Buck路线,都包含从原理图到PCB的全套闭环设计。两个方案对比着看,正好能看出“焊台电源”和“普通稳压电源”在设计目标上的本质差异:焊台电源必须同时处理大电流冲击、快速升温需求和毫伏级热电偶信号,三者叠加才是T12对电源的完整要求。适合自己打样做焊台的电子工程师,也适合想搞清楚焊台内部电源逻辑的爱好者。
2. T12电源方案A与方案B的原理图:从拓扑选型到关键参数计算
2.1 两个方案的拓扑对比与选型理由
标题里写了“2个方案”,我建议把方案A做成分离式架构:先用UC3843反激电源把市电变成稳定的24V直流,再用独立的PWM调压电路控制T12的RMS功率。方案B做成集成式数控架构:STM32F103直接控制同步Buck电路输出可调电压,热电偶信号回读后由单片机做PID闭环。两种架构对应完全不同的设计哲学,方案A的每个模块都可以单独测试,方案B则把所有逻辑收敛在固件里。
| 对比维度 | 方案A(模拟PWM两级) | 方案B(STM32数控Buck) |
|---|---|---|
| 电源拓扑 | UC3843反激,固定24V输出 | 前级反激+后级同步Buck |
| 控温方式 | 555/运放PWM调节RMS电压 | STM32读取热电偶做PID |
| 效率 | 约80%,PWM线性段有损耗 | 约90%,Buck全程高效率 |
| 调试难度 | 低,模块独立测试 | 中,软硬件需要配合 |
| 扩展性 | 差,改参数要换电阻电容 | 好,改固件就能加功能 |
| 故障定位 | 直观,万用表逐级查 | 复杂,需要串口日志辅助 |
方案A适合手里已有24V笔记本电源的玩家——把后级做出来就能用;方案B适合想做完整产品的人,一次把电源和控制做在一起。PCB布局上,方案A相当于两个小板子,方案B是单板集成,后者的热设计压力更大。
2.2 方案A原理图:UC3843反激电源的变压器与反馈回路
2.2.1 反激变压器参数计算
UC3843是电流模式PWM控制器,65kHz工作频率下,72W输出(24V/3A)的参数计算如下。这里给出一个可复用的计算脚本,用Python跑一遍就能得到关键参数:
# T12电源方案A:UC3843反激变压器参数快速计算 vin_ac = 220 # 输入交流电压有效值 vin_dc_min = vin_ac * 1.2 # 整流后最低电压,考虑波动 vout = 24.0 # 输出电压 iout = 3.0 # 输出电流 eta = 0.85 # 预估效率 fsw = 65000 # 工作频率 65kHz dmax = 0.45 # 最大占空比,UC3843限制0.5以内 vor = 100.0 # 反射电压,决定MOS管应力 pout = vout * iout pin = pout / eta ton = dmax / fsw lp = (vin_dc_min * dmax) ** 2 / (2 * pin * fsw) # 初级电感量 print(f"反射电压取{vor:.0f}V时,开关管应力={vin_dc_min + vor:.0f}V") print(f"初级电感量Lp={lp*1000:.2f}mH") print(f"初级峰值电流Ip={vin_dc_min * dmax / (lp * fsw):.2f}A") print(f"匝比Np:Ns={vor / (vout + 1):.1f}:1")参数说明:反射电压取100V时,结合250V左右的整流母线电压,MOS管峰值应力约350V,留出20%裕量后选择600V规格的7N60或8N60足够。初级电感1.5mH左右,需要开气隙防止磁饱和。匝比按4.2:1设计,次级绕组用三线并绕的方式处理3A电流的趋肤效应,线径选0.4mm三股比单根0.8mm损耗更小。
2.2.2 TL431+PC817反馈回路的相位补偿
反激电源的输出采样用TL431和PC817光耦构成隔离反馈,这个组合的环路补偿参数直接影响T12升温时的电压跌落。典型接法是:TL431的R端通过两个电阻分压采样24V输出,C端接PC817的LED,PC817的光敏三极管接到UC3843的COMP脚(2脚)。补偿网络在TL431的R端和C端之间并联一个RC串联支路,数值从10nF+2.2kΩ起步,示波器观察负载跳变时的过冲来调整。
这块的常见误区是把光耦CTR当常数用。PC817在1mA工作电流下CTR约50%,但随着老化会衰减,所以反馈环路的增益裕量至少要留6dB。另一个容易犯的错是变压器辅助绕组没有按输出电压比例绕,导致UC3843的VCC供电在轻载时偏低,芯片进入欠压保护循环。辅助绕组电压按15V设计,绕组匝数和次级匝数比约0.6:1,并加一个5.1V稳压管钳位。
2.3 方案B原理图:STM32+同步Buck的数控电源问题
2.3.1 Buck电感与开关频率的匹配
方案B的核心是STM32输出PWM驱动同步Buck,直接为T12提供可变电压。这里的关键参数是Buck电感和开关频率的匹配:频率太低,电感要加大,动态响应变慢,T12焊接大焊点时电压跌落明显;频率太高,MOS管开关损耗占大头,STM32的定时器PWM输出能力也需要验证。
// STM32F103 TIM1 PWM输出配置:初始化同步Buck开关频率 void buck_pwm_init(uint32_t fsw_hz) { TIM_TimeBaseInitTypeDef tb; TIM_OCInitTypeDef oc; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); tb.TIM_Prescaler = 72 - 1; // 72MHz时钟分频到1MHz tb.TIM_Period = (uint32_t)(1000000 / fsw_hz) - 1; // 设定开关频率 tb.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &tb); oc.TIM_OCMode = TIM_OCMode_PWM1; oc.TIM_OutputState = TIM_OutputState_Enable; oc.TIM_Pulse = 0; // 初始占空比0 oc.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM1, &oc); TIM_CtrlPWMOutputs(TIM1, ENABLE); // 主输出使能,必须加这行 TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable); }Buck电感量按20%纹波电流设计,计算公式是L = (Vin_max - Vout) × D / (fsw × ΔI)。输入24V、输出12V、开关频率200kHz、峰值电流4A时,纹波电流0.8A,算出L约等于33μH,取标称值33μH。需要注意的是,这个电感需要能承受4A直流叠加下不饱和,选型时看电感规格书里的Isat参数,不要只看额定电流。
2.3.2 电流采样与热电偶信号调理电路
数控方案的优势在于能精确感知功率。电流采样使用低边采样电阻(10mΩ/2W)配合运放放大后送STM32的ADC,电压放大50倍后灵敏度达到0.5A/V,ADC分辨率12位下电流分辨率约0.8mA,足够判断待机与焊接状态。T12热电偶信号是毫伏级的,必须经过高增益差分放大后再接ADC——直接采样会淹没在开关噪声里。
热电偶放大用专用仪表放大器INA333或用运放搭差分电路,增益设在200倍,把2-10mV的信号放大到0.4-2V进入ADC范围。注意滤波:在ADC前端加一阶RC低通,截止频率设为1kHz,这样能有效滤除Buck开关造成的共模干扰。MCU的ADC采样率设到10kHz,用平均值滤波后参与PID运算,更新周期10ms。
3. T12电源PCB布局布线:热路和电路一起画
3.1 高压侧与低压侧的爬电距离布局
反激电源PCB上的安全间距是第一批决定的事情,不是最后检查的事情。以方案A为例,220V市电进入后必须先经过保险丝到整流桥,这段走线的间距至少保持6mm爬电距离,保险丝之后的铜箔宽度要能承载3A电流,1oz铜厚下至少要2.5mm宽。如果板子空间紧张,在高压区和低压区之间开一个1.5mm宽的槽,等效增加爬电距离。
方案B虽然低压部分是Buck,但前端还是反激电源,爬电距离的要求一点不能省。在嘉立创EDA或者AD里画板时,我习惯先把板框画好,然后在高压区拉一个禁布区轮廓,把低压部分框出去。DRC设置里把clearance规则改成6mm针对这个区域,避免后期反复改线。初次打板的人容易忽略的是光耦两侧的间距——光耦本身有隔离击穿电压,但PCB焊盘之间的间距同样按6mm处理。
3.2 MOS管散热焊盘与过孔阵列设计
不管是UC3843外置的开关MOS管还是Buck电路中的上下管,散热设计都是PCB的关键。以方案B的同步Buck为例,两个NMOS各承担约2W损耗,只用铜箔散热的话,2盎司铜厚下需要约20平方厘米的散热面积,这对巴掌大的板子不现实,必须借助过孔阵列把热量导到背面。
散热过孔的规则:孔径0.3mm、间距0.8mm阵列布置在MOS管的散热焊盘下,过孔直接打在焊盘上,焊接时用锡膏填充。过孔数量按每瓦4个来计算,4W损耗至少16个过孔。还有一个细节:MOS管的驱动电阻和栅极泄放电阻要靠近栅极引脚放置,距离不超过5mm,否则驱动波形会有振铃,引起开关损耗上升或EMI恶化。
3.3 两种方案的接地策略对比
方案A的模拟PWM控制采用单点接地:功率地(24V输出地、MOS管源极)和控制地(TL431、运放地)在输出电容的负极端汇合,只通过一个点相连。特别注意UC3843芯片的电流采样引脚:采样电阻的地必须单独走线回到芯片地,不能和输出电容的地共用一段铜箔,否则采样到的不是真实电流而是叠加了地弹噪声的信号。
方案B是数字控制的,接地策略更讲究:模拟地(热电偶放大、电流采样)和数字地(STM32、PWM驱动)分开铺铜,然后在ADC参考地附近单点连接。Buck上下管的开关节点是噪声源,这个节点的铜箔面积要尽量小以减小天线效应,但又要足够宽以承载电流——这是个矛盾点,一般用一条短粗的走线解决,不要大面积铺铜。电感下方的铜箔要挖空,避免涡流发热和寄生耦合。
3.4 PCB板层设置与DRC规则清单
两个方案都推荐用双层板完成,成本低,调试方便。如果手头有“cadence pcb板层设置”或者AD的PCB经验,按下面的规则配置即可。层叠结构:顶层为信号+功率走线,底层为完整地平面,不铺其他网络。
表格中列出的间距规则是整个PCB设计过程中DRC检查的核心约束,按照这些规则检查一遍可以避免大部分硬件上电短路的问题。
| 检查项 | 最小间距值 | 说明 |
|---|---|---|
| 高压到低压间距 | 6mm | 反激380V母线到低压控制区 |
| 低压走线到走线 | 0.3mm | 24V以下信号的常规间距 |
| 走线到板边 | 0.5mm | 防止分板时划伤铜箔 |
| 过孔到走线 | 0.35mm | 避免钻孔偏移切断走线 |
| 丝印到焊盘 | 0.5mm | 防止丝印盖住焊盘影响焊接 |
对于“PCB丝印模糊”的问题,一个常见做法是丝印的字体高度不小于0.8mm,线宽不小于0.15mm。直接在嘉立创EDA里用标准字体输出,不要手动改线宽,否则打样的丝印就看不清了。板框用2D线放在Keep-Out层或者板框层,注意不同EDA工具对板框层的定义不同,转换文件前先确认层名对应。
4. T12焊台电源的组装调试与波形排查
4.1 上电前的五个检查点
板子焊接完成后的首要动作不是插电,而是先用万用表做五个检查,这五个点能避免90%的炸机风险。首先是输入端的电阻检查,万用表拨到二极管档测保险丝两端应有短路声,测整流桥交流输入端应无明显短路。然后是输出端,反激变压器的次级二极管输出端对地应该呈二极管正向压降特性,反向无穷大——如果正反都是0,说明次级二极管焊反或者输出电容装反了。
| 检查点 | 测量对象 | 正常值 | 异常含义 |
|---|---|---|---|
| 输入阻抗 | 整流桥AC端、DC端 | DC端1MΩ以上充电现象 | MOSFET击穿或滤波电容短路 |
| 输出极性 | 24V输出端对地 | 二极管特性 | 输出电容反接 |
| VCC电压 | UC3843的7脚对地 | 2MΩ以上 | 启动电阻焊错或芯片损坏 |
| 采样回路 | 电流采样电阻两端 | 0.01Ω左右 | 采样线断路 |
| 光耦方向 | PC817的1脚/2脚 | 1脚接TL431阴极 | 方向装反导致环路失控 |
五个检查全部通过后,用调压器或者串联一个60W白炽灯做限流保护再上电。白炽灯在正常工作时亮度很低,如果灯泡亮得刺眼说明板子有大电流短路,立即断电排查。第一次上电时示波器探头加上电压探头衰减100倍,同时预触发设在上升沿,避免错过浪涌波形。
4.2 示波器看T12电源的三个关键波形
上电后示波器要抓的是三个关键波形:UC3843驱动的MOS管Vds波形、输出电压纹波、负载跳变时的瞬态响应。MOS管的Vds波形能看出变压器设计是否合理:正常波形是一个矩形波叠加关断尖峰,尖峰幅度应控制在反射电压的30%以内。如果尖峰超过150V,说明RCD吸收电路参数不对——R取100kΩ、C取1nF是起跑值,加大电容会降低尖峰但增加损耗。
输出电压纹波在满载状态下应低于50mV。反激电源的输出纹波主要由输出电容决定,24V/3A输出配1000μF电解电容和1μF陶瓷电容并联。如果纹波超过100mV,问题大概率在电容的ESR而不是容量——电解电容在开关频率下ESR会随频率升高而增大,可以并联几个陶瓷电容来降低高频纹波。方案B的Buck输出纹波则应控制在30mV以下,如果超标,检查电感是否饱和(声音会变尖),或者输出电容是否用了过低压陶瓷电容。
4.3 温度闭环的调试方法
先给T12烙铁头单独通电,用万用表测量发热丝冷态电阻约8Ω。方案A的PWM调压通过改变导通角控制RMS电压,调试时直接给PWM信号,看T12电压从0V到24V是否线性变化。方案B则用STM32的串口打印设定温度和当前热电偶读数,观察PID输出是否平稳。
用热电偶温度计的探头夹在烙铁头尖端附近,设置一个温度目标值比如350℃,观察升温曲线。升温过程应该是平滑的,如果温度过冲超过20℃,把PID的P值降低30%。如果温差持续存在(比如设定350℃实际只有330℃),这是热电偶冷端补偿的问题,在固件里加一个固定偏置,比如+22℃,这是室温补偿的典型值。
5. 让T12电源更通用:休眠唤醒、温度校准与动态功率
5.1 用热电偶实现休眠唤醒的固件判断
当T12烙铁头放在焊台上时,热电偶信号会有一个特征性的突变——因为烙铁头温度快速下降但发热丝仍在加热,热电偶电压的变化率和正常焊接期间的模式不一样。在固件里检测这个特征,比用外部传感器更省事:
// 基于温度变化率的休眠判断,5秒内温度下降超过50℃判定放入支架 uint8_t is_sleeping = 0; float temp_prev, temp_now; int16_t temp_delta; temp_now = read_t12_temp_mv() * 100; // 转换成0.01℃精度 temp_delta = (int16_t)(temp_now - temp_prev); temp_prev = temp_now; if (temp_delta < -500) { // 5秒内(调用周期设定为5秒)下降5℃以上 is_sleeping = 1; } else if (temp_delta > 100) { is_sleeping = 0; // 拿起烙铁,温度回升 }休眠状态下将PWM输出降为0,同时保留热电偶采样回路供电,电流消耗从2W降到0.5W以下。唤醒条件是检测到热电偶电压重新出现上升趋势,这意味着烙铁被拿起。这个逻辑简单有效,但如果环境温度波动大,建议用一阶低通滤波把变化率平滑一下再判断。
5.2 温度校准:把标定点存进Flash
每一个T12烙铁头在不同温度和不同的热电偶放大器增益下,读回来的ADC值是有差异的。在固件里做一个百分点的线性插值:用250℃、300℃、350℃、400℃四个标准温度点校准,分别用外部热电偶温度计实测烙铁头温度,把对应的ADC原始值写入STM32的Flash(不需要外部存储芯片):
// 校准数据存储结构,存放在最后一个Flash扇区 typedef struct { uint16_t adc_at_250c; uint16_t adc_at_300c; uint16_t adc_at_350c; uint16_t adc_at_400c; uint8_t is_calibrated; } t12_calib_t;校准完成后,实际温度通过线性插值计算:如果ADC值在350℃和400℃之间,温度 = 350 + (adc_now - adc_350) × (400-350) / (adc_400 - adc_350)。四点校准对DIY焊台来说已经足够,误差能控制在±2℃以内。如果手头有精度更高的六位半万用表,可以增加六点校准,但实际的焊接体验差异不大。
5.3 焊大焊点不降温的动态功率前馈
最后分享一个让T12焊台“有高级感”的技巧。焊接大焊点比如地线铜柱时,烙铁头温度会快速下跌,PID闭环的反应存在几十毫秒的滞后。提前量在于:检测温度下降的斜率dT/dt,当斜率超过阈值时,把PID输出直接加上一个功率前馈项,让电源瞬间输出更高电压,保持烙铁头的热量输出稳定。
// PID输出加上基于温度变化率的前馈补偿 float pid_output = pid_update(target_temp, current_temp); float temp_drop_rate = get_temp_change_rate(); // ℃/s if (temp_drop_rate < -20) { // 温度骤降超过20℃/s,判定正在焊大件 pid_output += 0.2 * (-temp_drop_rate); // 前馈系数0.2 } buck_set_duty(clamp(pid_output, 0, 0.95f));前馈系数从0.1开始调,每次增加0.05,直到观察到烙铁头在大焊点上不会掉到300℃以下为止。系数过大会造成温度过冲,需要在焊接结束后观察回落曲线的超调量是否超过10℃。这个参数每个焊台略有不同,因为热电偶采样延迟和Buck的响应速度在影响它,用示波器验证是最直接的方式。
本文还有配套的精品资源,点击获取