尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ADuC812恒流源设计:大功率激光器驱动与PI保护

ADuC812恒流源设计:大功率激光器驱动与PI保护 简介这是一份面向电子工程、光电技术与电源设计方向学习者的专业技术文献聚焦大功率半导体激光器驱动电源中的恒流源设计问题。资源以ADuC812微控制器为核心系统讲解数控恒流源的实现路径利用内置12位ADC与DAC构建非接触式闭环反馈采用大功率MOSFET作为调整管配合霍尔电流传感器完成电流采样实现对050A输出电流的线性控制稳流精度达0.1A并设计过流保护电路与软件中值滤波算法提升抗冲击能力。压缩包为1个PDF文件约224KB内容为完整的期刊论文含系统框图、最小系统电路、驱动模块与测试结果等章节适合作为课程设计、毕业设计或电源开发项目的参考文献与方案指导。目前已有103人学习浏览可为读者提供从硬件选型、反馈控制到保护策略的完整设计思路与验证方法。1. 一颗 12 位 DAC 撑起的电流环ADuC812 在大功率半导体激光器里的位置大功率半导体激光器的工作电流常在几安培到数十安培结电压以约 -1.5 mV/℃ 的斜率随温度漂移光功率、中心波长和横模都直接跟着电流走。决定成败的往往不是输出能力而是恒流源电路的稳定度纹波大到几十毫安激光器的模式就开始抖上电瞬间的电流过冲足以在结面上烧出光学损伤。ADuC812 恰好卡在这件事上。8051 内核、双 12 位 DAC、多通道 12 位 ADC、看门狗和电源监控都集成在一颗芯片里用 DAC 给电流定值、用 ADC 回采采样电阻压降、用固件做调节和保护省掉了外挂转换器带来的模拟地纠纷。这条恒流源设计电路的主干由此分成两段——前级开关预稳压后级线性调整适合 1 A30 A 的激光器驱动也适合需要程控与长期无人值守的场合。2. ADuC812 恒流源的硬件链路从 Buck 预稳压到线性调整管激光器驱动的输出级只有两种选择一种把功率全交给线性管另一种全交给开关变换器。前者干净但热得离谱后者凉快但纹波压不住。ADuC812 方案的价值在于它能把两者的分界线画在合适的位置让数字部分只负责设定和缓慢修正把快速抑制纹波的活留给模拟环路。2.1 恒流源电路为什么走Buck 预稳压 线性调整两级单级线性恒流源的功耗是 (Vin − VLD) × I。30 A 输出、激光器结压 2 V、输入取 12 V 时调整管要吞掉 300 W无论 TO-247 还是水冷板都扛不住反过来单级 Buck 恒流在几十安培下纹波通常在几十到上百毫安开关边沿还会在激光器上叠加高频调制对窄线宽应用是致命的。折中方式是前级 Buck 把电压压到 VLD 1.5 V 附近后级线性调整管只吃掉这 1.5 V。同样 30 A调整管功耗降到 45 W 左右配一块像样的散热器就能长期工作而线性级对开关纹波的抑制比在低频段可以做到 40 dB 以上输出纹波落回毫安级。前级电压跟随由 ADuC812 用另一路 DAC 或 PWM 加 RC 网络给出跟随精度要求不高±0.3 V 足够。需要留意的是前级跟随不能太快。如果预稳压环带宽接近后级线性环两个环会互相激励。常见做法是让 Buck 的调整时间常数落在几十毫秒量级线性环落在几十微秒量级两者相差三个数量级。2.2 调整管、采样电阻与驱动级的参数怎么定调整管优先选低 Rds(on) 的 N 沟道 MOSFET但要清楚它工作在饱和区而非开关区直流 SOA 才是真正的约束。20 A、压差 1.5 V 意味着持续 30 W 的沟道发热必须按直流 SOA 曲线降额到 50% 以下使用并且选正温度系数的器件避免热点集中。若追求更低噪声可以用 NPN 达林顿代价是压差要多吃 1.52 V。采样电阻的取值由满量程电流和 ADC 输入范围反推。ADuC812 的 ADC 是单极性输入参考电压常用片内 2.5 V 或外接更低温漂的基准。取 10 mΩ 四端子无感电阻20 A 时压降 200 mV功耗 4 W需要 5 W 以上的功率余量再经仪表放大器放大 10 倍变成 2 V 送到 ADC正好用满量程。参数取值依据最大输出电流 Imax20 A激光器额定工作点留 20% 余量采样电阻 Rs10 mΩ / 5 W / 25 ppm压降与自热平衡前置增益 G10 倍把 200 mV 抬到 2 V 用满 ADC 量程参考电压 VREF2.5 V与 DAC 共用同一基准调整管压差1.5 V兼顾功耗与纹波抑制线性环带宽约 30 kHz快于热漂移慢于开关噪声# 采样链与调整管功耗的快速估算 Imax 20.0 # 最大输出电流 A Rs 0.010 # 采样电阻 10 mΩ G 10 # 仪表放大器增益 Vref 2.5 # DAC/ADC 共用参考电压 Vshunt Imax * Rs # 采样电阻满量程压降 Vadc Vshunt * G # 送入 ADC 的电压 code int(Vadc / Vref * 4096) print(f满量程压降 {Vshunt*1000:.0f} mV, ADC 输入 {Vadc:.2f} V, 码值 {code}) print(f采样电阻功耗 {Imax**2 * Rs:.2f} W) for Vdrop in (1.0, 1.5, 2.0, 3.0): print(f调整管压差 {Vdrop} V - 持续功耗 {Vdrop*Imax:.0f} W)这段脚本输出的关键数字有两个用途一是确认 10 mΩ 配 10 倍增益恰好让 ADC 码值落在 32003900 区间留出顶部余量避免削顶二是判断调整管功耗落在哪一档散热方案里。如果算出来压差 3 V说明前级跟随没做好应该回过去改 Buck 的给定而不是加大散热器。2.3 ADuC812 模拟前端的地平面与基准处理ADuC812 把模拟和数字做在同一衬底上地处理不当12 位 ADC 的有效位数会掉到 9 位以下。采样电阻的地端必须用开尔文连接单独引出一对线一路去仪表放大器的 REF 脚一路去 ADC 的 AGND中间不与功率地共用走线。功率回流走粗铜皮在采样电阻地端单点接到模拟地数字地和 AGND 在芯片下方用一小段铜桥连接避免大电流穿过模拟区。DAC 输出到运放之间加一级 RC10 kΩ 串 100 nF 到地把 DAC 的码值跳变毛刺滤掉基准脚旁边并 10 μF 钽电容加 100 nF 陶瓷电容位置紧贴引脚。前端仪表放大器选失调电压低于 100 μV、温漂低于 1 μV/℃ 的型号否则在 20 A 量程下采样链路的温漂会直接变成几毫安的电流漂移把恒流源的稳定度指标吃掉一半。3. 电流环落地ADuC812 的 DAC 设定、ADC 回采与 PI 调节硬件把电流变成电压之后剩下的事就是把电压读进来、把误差算出来、把修正量写回 DAC。ADuC812 的片上外设让这三步都在一颗芯片内完成省掉外部总线的时序协调也让采样和给定共用同一个基准从原理上消掉了一部分比例误差。3.1 DAC 与 ADC 的寄存器配置顺序上电顺序很重要先配置 DAC 并确保输出为零再使能 ADC最后才允许功率级上电。ADuC812 的 DAC 是电压输出型12 位写两个字节分两次写入会在中间产生一个错误的中间值所以固件里要先把低字节和高字节拼好后一次性锁存或者接受短暂毛刺但把它挡在功率级使能之前。/* ADuC812 电流环外设初始化DAC0 给定 ADC 回采 */ void CurrentLoop_Init(void) { DACCON 0x0F; /* 使能 DAC0/DAC112 位模式选用内部 2.5V 基准 */ DAC0L 0x00; /* 上电先给零码值保证激光器零电流 */ DAC0H 0x00; ADCCON1 0xF0; /* 使能 ADC定时器触发的连续转换模式 */ ADCCON2 0x03; /* 电流回采通道选 AIN3 */ ADCCON3 0x00; /* 满量程范围与基准设置 */ /* 定时器 0 产生 50 us 采样节拍即 20 kHz 电流环 */ }DACCON的低位决定通道使能和位数先写低字节再写高字节在多数应用里不会出问题因为功率级此时还没上电。ADCCON2的通道号要和原理图上仪表放大器的输出脚一一对应改硬件时这行必须同步改否则固件读的是别人家的电压。50 μs 的采样节拍对应 20 kHz 环路带宽对热漂移和工频扰动足够同时给 8051 内核留出运算时间。3.2 从采样电阻到 ADC 码值的量程换算换算关系写成一行就够了I code × VREF / (4096 × Rs × G)。以 2.5 V、10 mΩ、10 倍增益代入每 1 LSB 约等于 6.1 mA。这个分辨率对 20 A 量程来说不算高硬件上没法再提高但电流环是闭环实际稳态精度由环路增益和基准温漂决定而不是由单次量化步长决定。真正要管住的是基准内部 2.5 V 基准的温漂在几十 ppm/℃ 量级如果追求 100 ppm 以内的稳定度就应外接低温漂基准源并把 DAC 和 ADC 都切到外部基准。采样值不要单点即用按硬件过采样做 8 次累加再右移 3 位等效多出一位左右的有效分辨率代价只是 8 个采样周期在 20 kHz 节拍下完全负担得起。同时把 ADC 结果做一阶低通滤掉 50 Hz 工频串入。3.3 PI 调节器的离散化写法和抗积分饱和电流环对超调很敏感纯比例增益给不大必须带积分。用增量式 PI 比位置式更好因为它天然带有积分限幅的入口也方便在故障时一键清积分。/* 增量式 PI输入误差(LSB)输出 DAC 码值 */ #define KP 3 /* 比例增益按环路实测整定 */ #define KI 1 /* 积分增益已含 50us 采样周期 */ #define I_MAX_CODE 3900 /* 上限留出削顶余量约对应 23.8 A */ int pi_step(int err) { static long u 0; /* DAC 码值累加器 */ static int e1 0; /* 上一次误差 */ long du (long)KP * (err - e1) (long)KI * err; u du; if (u I_MAX_CODE) u I_MAX_CODE; /* 抗积分饱和上限 */ if (u 0) u 0; /* 激光器不允许反向电流 */ e1 err; return (int)u; }整定时先把KI置零逐步加大KP直到电流阶跃响应出现轻微过冲再回退 30%然后从小往大加KI观察 10 ms 内的静差是否收掉。如果出现低频振荡通常是KI太大或者采样节拍抖动先检查定时器中断有没有被串口打印拖长。上限I_MAX_CODE不只是防削顶它同时是软件过流保护的最后一层。3.4 串口指令在线改电流与读状态调试阶段最省事的接口是 UART 上的 ASCII 命令用中断收、主循环解析不影响电流环节拍。指令含义返回I 5000设定电流 5000 mAOK 5000R读当前电流与状态I4998 T31 S0S 10软启动斜坡设为 10 ms/1%OKC清故障并复位积分OKL查最近 8 条故障记录8 行时间戳解析时把命令字符转大写、用sscanf取数值、对设定值做上下限夹紧任何一条指令的执行都不允许直接写 DAC而要更新一个目标值变量由电流环自己按斜坡逼近目标。这样即使串口上误发一个 30000也不会让激光器瞬间吃到超额电流。4. 保护、软启动与排错恒流源设计电路最容易翻车的几个点大功率激光器的损坏大多不是稳态烧的而是瞬态和故障处理不当烧的。软启动、过流、开路、过温这四条线必须在硬件和固件上各做一遍任何一条只靠软件都是赌博。4.1 上电浪涌与软启动斜率激光器结面的热时间常数在微秒到毫秒量级电流从 0 跳到 20 A结温会瞬间冲高长期反复会加速腔面退化。软启动的做法是让 DAC 码值按固定斜率爬升而不是一步到位。斜率建议按 1% 满量程每毫秒起步20 A 量程即 200 mA/ms全程 100 ms对绝大多数应用不构成等待负担。固件里用一个斜坡计数器实现/* 1 ms 节拍调用把 u_now 逐步推向 u_target */ void ramp_step(void) { const int step 20; /* 20 LSB/ms ≈ 122 mA/ms */ if (u_now u_target) { u_now step; if (u_now u_target) u_now u_target; } else if (u_now u_target) { u_now - step; /* 降流同样限速避免热冲击 */ if (u_now u_target) u_now u_target; } dac_write(u_now); }硬件上再叠一层功率级使能继电器或 MOSFET 之前先让 DAC 归零并延时 20 ms确保前级 Buck 已经建立。上电顺序错了前级输出可能带着高电压冲击线性管。4.2 开路、短路、过温三类故障的判定与动作开路判定靠设定高、反馈低DAC 码值已经推到目标值以上 5% 并持续 10 ms而 ADC 读数仍低于设定的 5%说明激光器开路或者采样链路断了。短路或过流判定靠反馈远高于设定硬件上用比较器在 10 μs 内切断使能固件在 1 ms 内二次确认并锁存故障。过温用 NTC 分压接到另一路 ADC 通道10 ms 采一次查表换算温度超过阈值先降流到 50%继续上升则切断输出。三类故障都进同一个状态字串口S字段里能读出来。现象常见原因第一步定位动作电流上不去且 DAC 顶格激光器开路 / 采样线断量采样电阻两端压降是否为零一使能就切断真实过流或比较器阈值偏低示波器看采样电阻波形前沿尖峰电流缓慢漂移基准或仪表放大器温漂热风枪局部加温观察码值变化毫安级高频纹波调整管自激 / Buck 环路干扰看调整管栅极是否有几十 kHz 振荡设定 5 A 实际 4.2 A采样电阻阻值或增益偏差用四线法单独校准采样电阻4.3 振荡与纹波按链路顺序往回查查到振荡先别急着改补偿电容。用示波器同时看三路调整管栅极驱动电压、采样电阻两端压降、前级 Buck 输出电压。如果栅极在几十 kHz 上有明显正弦说明线性环路相位余量不够在误差放大器反馈支路上加零点补偿或者把主极点电容加大一档如果栅极干净、而采样电阻上有 100 Hz 以上的纹波源头在前级 Buck应改开关频率或加大后级 LC 滤波如果纹波频率和串口打印节奏一致那就是固件问题中断被拖长导致采样节拍抖动。直流耦合看幅度交流耦合看细节两路都要看。20 A 量程下 20 mA 的纹波在 10 mΩ 上只有 200 μV示波器必须打到 1 mV/div 并开带宽限制否则量到的全是探头拾取的环境噪声。5. 进阶光功率与温度双闭环以及稳定度的长期验证单电流环只能保证电流稳保证不了光功率稳。激光器结温变化 1 ℃阈值电流和斜率效率都会变同样的电流下输出光功率可能差百分之几。工程上有两种补法一是加背向光探测器做光功率闭环二是加 TEC 把温度锁死。前者成本低适合对波长要求不苛刻的泵浦场景后者稳定度好适合需要锁波长的场合。光功率闭环的实现方式是在电流环外面再套一层慢环ADuC812 用另一路 ADC 读 PD 的跨阻放大输出采样节拍降到 10 Hz 即可输出直接修正电流环的目标值修正量限幅在 ±5% 以内避免慢环把快环带乱。温度双闭环同理NTC 读数同时用于过温保护和 TEC 的 PI 调节两者共用一次采样但阈值判定和调节用的滤波器系数要分开。长期稳定度不能只看开机半小时。用一个简单的定时记录脚本把串口数据落盘跑满 8 小时以上再算峰峰值和标准差。指标测法合格参考短时纹波示波器 AC 耦合20 MHz 带宽限制小于满量程 0.05%8 小时电流漂移每分钟记录一次小于满量程 0.02%温度系数环境每升 10 ℃ 记录一次稳态值小于 50 ppm/℃阶跃建立时间设定值跳变 10%记录到 ±1% 内小于 2 ms# 把串口回读的电流值按分钟聚合输出漂移统计 import statistics samples [] # 单位 mA来自串口 I 字段 with open(log.txt) as f: for line in f: if line.startswith(I): samples.append(int(line.split()[0][2:])) span max(samples) - min(samples) print(f样本数 {len(samples)}, 峰峰值 {span} mA) print(f标准差 {statistics.pstdev(samples):.1f} mA) print(f相对满量程漂移 {span/20000*100:.4f} %)判断这份日志时先看有没有台阶状跳变有台阶通常是基准或接插件热电势在变不是环路问题再看标准差是否随环境温度同步起伏同步就说明温度补偿没做到位如果峰峰值全部集中在开机后前 20 分钟那是整机热平衡过程可以把这段数据单独剔除后再评估稳态指标。记录满 8 小时再下结论比反复改补偿参数可靠得多。本文还有配套的精品资源点击获取
返回列表