ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

数控直流稳压电源设计与实测:从DAC到误差放大器的完整方案

数控直流稳压电源设计与实测:从DAC到误差放大器的完整方案 简介这是一份电子设计大赛参赛作品文档围绕简易数控直流稳压电源的完整设计与实现展开适合参加电子设计竞赛或学习数控电源、单片机控制的学生与爱好者参考。文档详细介绍了项目背景、技术选型、总体思路与具体实施方案包括电源电路、显示电路、控制电路和数模转换电路的构成以及输出电压09.9V、步进0.1V、纹波不大于10mV等关键指标并给出了基本要求、发挥部分与扩展方向涉及AT89C51单片机与DAC1232的硬件连接、运放反馈稳压等实现细节。包内共1个doc文件整体大小631KB属于文档类资料便于阅读、打印和二次修改。已有429人学习下载。读者从中可获取赛题分析思路、系统框图、方案对比和调试要点对理解单片机在直流稳压电源中的应用具有直接帮助。 电赛拿到“简易数控直流稳压电源”这类题第一反应千万别是“不就是个电源嘛”。数控直流稳压电源是每年电子设计大赛和课程设计里出场率极高的题目看起来人人都能做但能不能稳定输出、精度够不够、带载跌不跌、现场演示会不会翻车完全不是一回事。这篇内容我按自己当年从原理图到实测的完整过程来写把方案选型、硬件链路、软件逻辑、调试验证和现场经验都拆开讲清楚适合正在备赛电赛、做课程设计或者单纯想把手头“手动调电位器电源”升级成“按键设定电源”的读者。1. 先把题目读透指标拆解与方案取舍这类题目的核心指标通常很直白输出电压范围常见0-9.9V或0-15V、步进精度常见0.1V、最大输出电流从500mA到2A不等、电压稳定度、纹波大小。有些人拿到题就开始画板子我不建议这么做。我第一步是做一张需求拆解表把每一个指标转化成具体的电路约束再倒推选型。比如0-9.9V、0.1V步进这个要求意味着数字控制量至少有100个可分辨的档位。如果用一个数字电位器比如X9C103来做反馈电阻它内部只有100个抽头换算到整个输出电压范围正好是0.1V一档看起来很“够用”。但实际用的时候你会发现档位之间是非线性的、温漂大、抽头切换时有毛刺而且100档对应100个离散电阻值想精准落在每一档0.1V基本靠运气。我在新手阶段试过这条路最后的效果只能说“能动”和“能比赛”差得很远。另一条常见路线是单片机PWM输出加RC低通滤波产生一个模拟基准电压再送给稳压电路做控制。这条路成本很低很多作品也确实这么做。但PWM经过二阶滤波后依然会有残余纹波基准电压里一旦有几十毫伏的毛刺输出端就会被放大局部放大后可能变成几百毫伏的纹波。而电赛评委用示波器看纹波是常规动作这一下就会丢分。我个人最终选择的是“单片机DAC误差放大器调整管”的线性方案。DAC用I2C接口的12位芯片比如MCP4725它的LSB在3.3V基准下大约0.8mV控制0.1V步进完全有余量。整个结构本质是做一个高精度的可调LDODAC输出作为设定电压误差放大器把设定值和输出采样值做差差值驱动调整管让输出电压自动逼近设定值。这个方案输出纹波低、精度高、调试路径清晰而且每一个节点电压都可以用万用表单独量出来非常利于排查问题。2. 硬件链路逐级拆解DAC、误差放大器与调整管的配合2.1 基准与DAC精细电压从哪来DAC部分最难的不是I2C通信而是基准电压。MCP4725内部没有高精度基准它的满量程输出直接跟随VDD。如果直接把单片机的3.3V拉过来当VDDDAC输出就会跟着数字电源的纹波一起抖。我的做法是单独用一颗低压差基准芯片比如REF3025或者TL431搭的2.5V基准给DAC供电模拟部分和数字部分在PCB上单点汇地。这一步做完输出纹波能明显好一截。DAC输出范围也需要提前设计。如果基准是2.5VDAC满量程就是2.5V而你要输出9.9V这中间就需要一个放大环节。常见做法是先把输出电压用电阻分压成1/4再送进误差放大器和DAC比较。比如输出9.9V时采样点就是2.475V刚好落在DAC基准范围内。这样设计的好处是DAC全量程都被用上控制分辨率最高而不是只用其中一小段。顺带说一个容易踩的坑DAC输出端的缓冲和滤波。很多DAC数据手册建议输出加一个运放跟随器再做缓冲但MCP4725本身内部有输出缓冲外部再加一级RC低通就足够了。RC的截止频率不用太低足够滤掉DAC刷新产生的阶梯毛刺就行一般用几百欧串联加100nF并联截止频率在几kHz量级不影响环路响应速度。2.2 误差放大器与调整管如何把小信号放大成输出功率误差放大器是整个电源的核心比较器。正输入端接DAC输出的设定电压负输入端接输出电压的分压采样输出端驱动调整管。当输出电压低于设定值时采样电压低于DAC电压运放输出拉高调整管导通加深输出电压上升反之则输出拉低。这是一个标准的负反馈系统。运放选型上我推荐偏置电流小、增益带宽积足够的精密运放比如OP07或者OPA2277。普通LM358也能工作但它的输入失调电压最大能到7mV在采样分压比1/4的电路里被放大4倍输出误差可能接近30mV这对0.1V步进来说虽不致命但会让标定变得麻烦。如果想让每一档电压都稳稳落在目标附近精密运放省心得多。调整管的选择要看输出电流和功耗。以0-9.9V、1A输出来算输入通常用12V适配器当输出2V时调整管上压差是10V功耗就是10W。这个热耗绝不轻松必须加散热片必要时用TO-220封装的MOS管配合铝散热器。如果用三极管还要考虑基极驱动电流是否够——误差放大器输出能力有限大电流三极管放大倍数又不够这时候更适合用MOS管栅极只需要电压驱动。不过MOS管还有一个坑开启电压。IRF540这类常见管的VGS(th)可能在2-4V如果单片机供电只有3.3V、运放输出摆幅也接近电源轨很可能出现DAC设定9V时输出却只能到7V的情况。我的解决办法是给误差放大器的电源用单独一级12V供电并在运放输出和MOS管栅极之间加一个图腾柱推挽驱动栅极电压就能被抬到接近12V彻底打开管子。这一步在做方案时就要想到不能等到实测发现输出上不去再返工。2.3 采样反馈与保护电路不能省的几颗电阻采样分压电阻的选择直接影响精度。分压比对的是“输出电压范围/基准电压范围”如果DAC基准是2.5V、输出电压上限是10V分压比就是1/4。取值上电流不能太小否则运放偏置电流会引入误差但也不能太大否则分压电阻本身发热会影响稳定性。通常取10k/30k或者15k/45k这个量级误差尽量选1%薄膜电阻关键分压点可以并联一个小电容做频率补偿防止环路自激。保护电路我在早期版本里省过后来发现省不得。一个是在输出端并联一个极性保护二极管防止外部反接电压倒灌另一个是用采样电阻比如0.1欧姆加电流检测运放做限流比较电流超过设定值时由MCU把DAC拉到零或者关断调整管。比赛现场经常出现“输出线被接反”或者“负载短路”的情况有保护电路至少不会当着评委的面烧管子。3. 软件怎么写才配得上“数控”两个字3.1 按键与显示的状态机“数控”的精髓在交互按键设定电压、数码管或者OLED显示设定值和实测值。我的设计是三个按键短按进入设定模式左/右选择调节位加/减调整数值长按确认退出。如果用编码器也可以但按键方案在比赛现场更好解释逻辑直接。按键最烦人的是抖动和误触。硬件上加10k上拉和100nF电容软件里再做一个20ms消抖基本能解决。状态机大概就三四个状态正常运行、设定模式、输出关闭。运行模式下数码管第一行显示实测电压第二行显示设定值进入设定模式后设定值最后一位闪烁表示正在调节位。这里我建议把“输出使能”做成显式逻辑而不是一上电就直接输出设定电压。上电瞬间DAC可能输出不确定值先让DAC输出0再让用户按确认键开启输出防止给负载一个意外的电压冲击。核心状态机代码逻辑大概是typedef enum { RUN_MODE, SET_MODE, OUTPUT_OFF } sys_state_t; void key_scan(void) { static uint8_t filter_cnt 0; uint8_t key_now read_key(); if (key_now key_last) { if (filter_cnt KEY_DEBOUNCE_MS / 10) { process_key_event(key_now); filter_cnt 0; } } else { filter_cnt 0; key_last key_now; } }3.2 ADC回采与误差校正只靠DAC开环输出电压精度上限取决于基准和电阻网络误差。我之前实测发现设定5V时输出可能只有4.93V这个偏差对比赛来说不够好看。解决办法是加入ADC回采校正输出端的分压信号不只为误差放大器服务同时也接到单片机的ADC引脚MCU实时读取实际输出电压通过软件调整DAC码值让实测值逼近设定值。校正算法不用做成复杂PID电源系统本身就是负反馈稳定系统软件只需要做“查表线性拟合”。具体做法是标定时让DAC输出几个已知码值用万用表记录对应的实际输出电压拟合出一条“目标电压→DAC码”的曲线存到EEPROM或者Flash里。运行时每设定一个新的目标电压就查表得到初始DAC码再根据ADC回采结果做微调每次调整一个LSB直到实测与目标误差小于0.02V。ADC回采同样要处理噪声。单片机内部ADC本身有量化噪声输出线上又难免有些纹波所以我在软件里做了一阶滑动滤波取最近8次采样的平均值。这个滤波器不会拖慢响应速度但对消除数码管最后一位跳动特别有效。最容易忽略的是ADC参考电压如果VREF接的是3.3V电源而3.3V本身不干净那ADC测出来的数值本身就不可信。我后来把ADC参考单独用REF3025提供校正效果才真正稳定下来。3.3 软启动与掉电保存软启动这在比赛演示中是加分项。直接上电到设定电压再好的线性电源也可能在输出端产生一个过冲接单片机或者传感器负载时很不好。我的做法是上电后以20ms为一个步进把DAC码从0线性增加到目标值整个过程大概200-300ms完成。负载看到的是一段平滑的斜坡而不是一个阶跃过冲几乎消失。掉电保存更偏人性化体验。单片机有低电压检测功能当检测到供电电压掉到阈值以下在电压还没完全消失前把当前的设定电压写入EEPROM。下次上电直接恢复上次设定值。这个功能在题面上可能只是一句话但现场演示时评委常会问“还记不记得上次设定的电压”有这功能就直接变成技术亮点了。4. 实测调试图把电压值调到“准”的过程4.1 空载与带载实测数据对比实测是电赛作品最关键的一环。我搭好板子后先不接MCU用DAC模块手动给几个电压用万用表量输出端确认硬件链路工作正常。然后接上MCU跑完整程序记录不同设定值下的空载和带载数据。下面是我当时实测的一小段记录负载用的是10欧姆功率电阻输出电流约0.5A-1A设定电压(V)空载实测(V)带载实测(V)带载偏差(mV)1.01.0030.998-23.33.3123.301-115.05.0064.992-87.57.5087.491-99.99.9029.884-16这个问题在于带载时输出电压普遍比设定值低了一点尤其是9.9V档掉了16mV。原因主要有两个一是采样点在输出端但采样点到实际负载端子之间还有导线电阻负载电流在这个电阻上产生压降二是误差放大器的负反馈增益有限无法完全抵消线损。解决办法是开尔文接法采样线单独从负载端子引出不走大电流路径。我在PCB上把采样点改到输出端子根部带载偏差立刻缩小到10mV以内。4.2 输出振荡、示数跳动等问题定位调试中遇到最多的问题就是输出端自激振荡。症状是示波器上看到几十kHz到几百kHz的正弦波叠加在直流上轻则纹波超标重则整个系统啸叫。原因是反馈环路相位裕度不够。我当时的解决套路是在误差放大器反相输入端到输出端之间并联一个100pF到1nF的反馈电容把环路增益在高频段压下去。如果振荡频率很低几kHz优先检查是不是电源线太长、地线环太大如果振荡频率很高先检查运放的补偿电容。另一个高频现象是数码管显示值最后两位来回跳。硬件上没有明显问题根因往往是ADC采样窗口恰好落在开关电源适配器的开关纹波上每次采样点相位不同结果就跳。软件滑动平均能压掉大部分但如果还跳就把采样触发改成定时器驱动固定每次都在同一个相位点或者把平均次数加大到16次。实测下来“定时采样16次平均”基本能把跳动抑制在±1个显示单位内。还有一个很隐蔽的问题示波器探头地线夹太长。很多人在测输出纹波时看到很大噪声其实是探头地线像天线一样捡到了周围的电磁干扰而不是电源本身纹波大。正确做法是用接地弹簧短接探头尖端和地环紧贴输出端子测量。这个细节在电赛现场写测试报告时非常加分因为好的测试方法和好的电路同样重要。5. 画PCB时最容易牺牲性能的环节数控电源的PCB布局和普通数字电路不一样它是典型的数模混合电路。如果布局不好再好的原理图也白搭。我第一版PCB就是吃了这个亏数字地和模拟地大面积铺铜铺到一块DAC输出纹波大得离谱。我的经验是PCB上把功能分区局从左到右依次是电源输入区、调整管功率区、误差放大采样区、单片机数字区。功率地、模拟地、数字地在电源输入端的滤波电容负极单点汇合形成星形接地不要让功率电流流经模拟地平面。DAC和运放周围的地铜皮要单独连接到采样点附近的地避免数字噪声串进来。走线方面输出大电流路径尽量短而宽至少2mm以上并且和采样线分开走避免共用一段铜箔。采样线用细线从输出端子根部引出必要时加一个100欧姆串联电阻到运放输入端防止布线耦合进来的噪声。我在第二版PCB上把这些全改了以后空载纹波从原来的50mV降到了8mV左右这个改善比换任何芯片都明显。6. 赛前实测清单与调试顺序备赛到了最后几天不要随意加功能而是把现有功能逐条验证一遍。我的习惯是列一个测试清单按顺序执行每通过一项就打勾上电后DAC输出是否为0数码管显示是否正常初始化。设定1.0V、5.0V、9.9V三档空载实测误差是否在±20mV以内。接入10欧姆负载实测带载后压降是否在允许范围内。用示波器测满量程输出时纹波峰值是否小于30mV。快速按加减键连续变化观察是否存在按键漏检或电压跳变异常。断开负载再切换到最小电压确认输出无过冲。连续工作30分钟后摸散热片温度确认不会烫手。关闭输入电源再上电确认能恢复到上次设定值。这个清单里每一项背后都有意义不只是“测一下好使”这么简单。效率最高的调试顺序是先不通MCU用直流稳压电源单独给运放部分供15V手拧一个电位器模拟DAC电压确认从电位器电压到输出端的放大关系正确再接MCU先不使能输出先量DAC输出电压对不对最后才把整个环路闭合。这样每一级都能独立定位问题避免“全接上后发现输出不对但不知道是哪一级出错”的窘境。7. 演示心态与临场应变的小经验比赛现场和实验室不一样环境不理想电压会波动评委还会上手按键操作。我的建议是提前把操作流程练成肌肉记忆演示时先展示空载电压精度再带载展示带载能力然后再现场演示按键设定不同电压最后让评委自己试一下设置和复位功能。这个过程不超过3分钟但能把作品所有的技术点都带出来。还有就是数据记录要留一份纸质版。评委很可能会问“这里设定5.00V实际为什么是5.01V”你现场翻开测试记录表指着一行行数据解释这是DAC分辨率、ADC量化噪声、采样电阻误差共同作用的结果比自己现编更有说服力。最后再补一句“我在采样端用的是开尔文接法所以带载偏差控制在10mV以内”评委基本就能认可你这个作品是真的从头做到尾的。按这套思路做下来一台0-9.9V、0.1V步进、实测带载误差小于0.02V的数控直流稳压电源就能稳定复现。整个过程没有特别高深的技术但每一步都建立在“想清楚为什么要这么做”的基础上这也是电赛真正想训练的能力。本文还有配套的精品资源点击获取
返回列表