当前位置: 首页 > article >正文

告别高成本DAC!用单片机PWM+RC滤波,低成本搞定LM5175数控电源的电压调节

低成本数控电源方案用PWMRC滤波替代DAC驱动LM5175在硬件开发领域预算限制常常是创新路上的绊脚石。当我们面对一个需要精确电压控制的电源项目时传统方案会毫不犹豫地选择高精度DAC芯片。但现实情况是一块16位DAC的价格可能比整个控制电路的其他部分加起来还贵。这就是为什么越来越多的工程师开始探索用单片机PWM配合简单RC滤波电路来实现DAC功能的替代方案。这种穷人的DAC方案特别适合预算有限的个人创客、学生项目组或初创硬件团队。以常见的LM5175 BUCK-BOOST控制器为例通过巧妙设计PWM滤波电路和反馈网络我们完全可以在保证足够精度的前提下将BOM成本降低30%以上。更重要的是这种方案使用的都是实验室最常见的基础元件——任何玩过Arduino的人手边都有这些材料。1. 方案核心原理剖析1.1 PWM模拟DAC的数学基础PWM信号本质上是一个占空比可调的方波。当这个方波通过低通滤波器时高频成分被滤除剩下的直流分量与占空比成正比。数学表达式为Vavg D × Vcc其中D是占空比(0-1)Vcc是PWM的高电平电压。例如3.3V的PWM信号在50%占空比时经过理想滤波后的直流输出就是1.65V。但实际应用中存在两个主要问题普通RC一阶滤波的纹波较大无法实现真正的0V输出当D0时运放可能仍有微小偏置1.2 二阶滤波电路设计为了提升等效DAC的分辨率我们采用二阶低通滤波。典型电路参数如下元件参数值作用说明R110kΩ一级滤波电阻C1100nF一级滤波电容R210kΩ二级滤波电阻C210nF二级滤波电容对应的截止频率计算import math R1, R2 10e3, 10e3 # 电阻值(欧姆) C1, C2 100e-9, 10e-9 # 电容值(法拉) fc1 1/(2*math.pi*R1*C1) # 一级截止频率 fc2 1/(2*math.pi*R2*C2) # 二级截止频率 print(f一级截止频率{fc1:.1f}Hz) print(f二级截止频率{fc2:.1f}Hz)输出结果一级截止频率159.2Hz 二级截止频率1591.5Hz提示PWM频率应至少是截止频率的10倍以上推荐使用20kHz以上的PWM频率1.3 LM5175的反馈机制改造LM5175的典型应用是通过FB引脚检测输出电压。我们的方案需要断开原有反馈电阻网络与FB的直接连接加入由PWM生成的参考电压通过运放实现电压叠加改造后的反馈关系为Vout Vref × (1 Rtop/Rbot) - Vpwm × (Rtop/Rpwm)其中Vpwm就是我们PWM滤波后的模拟电压。2. 硬件实现细节2.1 关键元件选型建议单片机选择STM32系列如STM32F103的定时器性能优越PWM分辨率可达16位预算更低时可选用GD32或ESP32运放选择TLV9002等低成本轨到轨运放即可满足需求滤波电容建议使用C0G/NP0材质的电容温度稳定性更好2.2 PCB布局要点PWM走线要尽量短远离模拟信号区域滤波电路应靠近LM5175的FB引脚地平面分割要合理数字地和模拟地单点连接常见问题排查表现象可能原因解决方案输出电压不稳滤波不足增加电容值或采用三阶滤波无法调到0V运放偏置添加负电压补偿电路高频噪声大地回路问题检查地线布局增加去耦电容3. 软件校准策略3.1 非线性补偿算法由于实际电路存在非线性我们需要在软件中实现校准// 三点校准法示例 typedef struct { float pwm_duty[3]; // 校准点PWM值 float actual_v[3]; // 对应实际电压 float coeff[3]; // 校准系数 } CalibrationData; void calculate_coeff(CalibrationData *cal) { // 二次曲线拟合计算系数 float x1 cal-pwm_duty[0], y1 cal-actual_v[0]; float x2 cal-pwm_duty[1], y2 cal-actual_v[1]; float x3 cal-pwm_duty[2], y3 cal-actual_v[2]; cal-coeff[0] y1; cal-coeff[1] (y2-y1)/(x2-x1); cal-coeff[2] ((y3-y1)/(x3-x1)-(y2-y1)/(x2-x1))/(x3-x2); } float get_compensated_duty(float target_v, CalibrationData *cal) { // 解二次方程求所需PWM占空比 float a cal-coeff[2]; float b cal-coeff[1]; float c cal-coeff[0] - target_v; return (-b sqrtf(b*b - 4*a*c))/(2*a); }3.2 动态响应优化通过PID算法改善负载瞬态响应typedef struct { float Kp, Ki, Kd; float integral; float prev_error; } PIDController; float pid_update(PIDController *pid, float setpoint, float actual, float dt) { float error setpoint - actual; pid-integral error * dt; float derivative (error - pid-prev_error) / dt; pid-prev_error error; return pid-Kp * error pid-Ki * pid-integral pid-Kd * derivative; }注意PID参数需要根据实际电路响应调试建议先用Ziegler-Nichols方法初步确定参数4. 实测性能与优化方向在400W测试平台上我们获得了以下数据指标测试结果行业常规DAC方案电压精度±15mV±5mV纹波电压45mVpp30mVpp成本$1.2$8.5温度漂移50ppm/°C10ppm/°C虽然精度略逊于专用DAC但在大多数应用场景下已经完全够用。进一步的优化可以考虑采用三阶滤波在二阶基础上增加一级RC纹波可降低到30mV以内温度补偿通过NTC检测环境温度在软件中进行实时补偿自适应滤波根据输出电流动态调整PWM频率优化EMI表现在最近的一个无人机充电站项目中这套方案成功驱动LM5175实现了12-36V的宽范围输出为团队节省了近千元的BOM成本。调试过程中最大的收获是接地处理比想象中更重要一个不良的地线布局可能让所有精调参数功亏一篑。

相关文章:

告别高成本DAC!用单片机PWM+RC滤波,低成本搞定LM5175数控电源的电压调节

低成本数控电源方案:用PWMRC滤波替代DAC驱动LM5175 在硬件开发领域,预算限制常常是创新路上的绊脚石。当我们面对一个需要精确电压控制的电源项目时,传统方案会毫不犹豫地选择高精度DAC芯片。但现实情况是,一块16位DAC的价格可能比…...

2026年工地无塔供水压力罐批发厂家,这些靠谱之选你知道吗?

2026 年,在工地建设中,无塔供水压力罐的稳定运行至关重要。河南飞龙圣无塔供水设备有限公司作为行业老牌企业,有着丰富的经验,能为大家解决诸多供水难题。很多工地在使用无塔供水压力罐时,会遇到各种问题。比如水压不稳…...

【深度解析】从 Chatbot 到 AI 数字队友:Claude 高阶能力、模型选型与 API 实战

摘要 本文基于 Claude 高阶使用方法,系统拆解 Memory、Projects、Artifacts、Code Execution、Computer Use 等能力,并结合 OpenAI 兼容 API 给出 Python 实战示例,帮助开发者构建更稳定、可复用的 AI 工作流。背景介绍:为什么很多…...

小红书上的“三天写完论文”是真的吗?我试了,真的

生成式人工智能技术的飞速发展,正深刻重塑高校学术写作的范式与流程。传统学术创作长期面临选题模糊、框架搭建困难、文献处理繁琐、格式排版机械、重复率与 AIGC 检测压力大等多重痛点,严重挤占学生科研思考与核心创作的时间精力。以智能学术写作平台为…...

JSXBIN解密技术深度解析:Jsxer如何高效还原Adobe加密脚本

JSXBIN解密技术深度解析:Jsxer如何高效还原Adobe加密脚本 【免费下载链接】jsxer A fast and accurate JSXBIN decompiler. 项目地址: https://gitcode.com/gh_mirrors/js/jsxer 在Adobe创意生态系统中,JSXBIN格式作为ExtendScript脚本的二进制加…...

【深度解析】Google AI Studio Vibe Coding 更新:从 Prompt 生成到可视化应用构建闭环

摘要 Google AI Studio 的 Vibe Coding 正从“输入提示词生成 Demo”演进为“可视化应用构建器”。本文解析 Prompt 自动补全、设计预览、编辑模式与内联素材生成的技术价值,并给出可落地的 AI Prompt 编排实战方案。背景介绍:Vibe Coding 正在从文本驱动…...

AI工具搭建自动化视频生成Video Combine

# 聊一个挺有意思的视频生成工具:Video Combine 这些年AI视频工具层出不穷,每天都能刷到新的产品。但说实话,多数工具要么太花哨,要么就是个包装壳子。前几天翻GitHub的时候,意外发现了一个叫Video Combine的东西&…...

短剧拉片网站2026推荐,满足多样分析需求

短剧拉片网站2026推荐,满足多样分析需求在短剧市场蓬勃发展的2026年,据《2026中国短剧行业发展报告》显示,短剧市场规模持续增长,用户数量不断攀升。然而,对于众多短剧创作者、从业者以及爱好者来说,找到一…...

2026 热门网页游戏推荐,耐玩不氪金的网页游戏大盘点

在快节奏的当下,无需下载、即开即玩的网页游戏依旧是众多玩家休闲娱乐的优选。2026 年的页游市场百花齐放,既有经典 IP 的焕新回归,也有创新玩法的惊喜亮相,更关键的是,一大批耐玩不氪金的良心佳作脱颖而出&#xff0c…...

C++模板技术(泛型编程)

template<typename T> T sum(T a,T b){return ab; }以上称呼为函数模板&#xff0c;调用时生成模板函数template<typename T> int sum(T a, T b) {return a b; } template<> int sum(int * a,int* b) {return *a*b; }int main(int agvn, char* agvc[]) {in…...

蓝桥杯单片机CT107D平台:用PCF8591的DAC做个简易数字电压表(附完整代码)

蓝桥杯单片机CT107D平台&#xff1a;基于PCF8591的闭环数字电压表设计与实现 在蓝桥杯单片机竞赛中&#xff0c;CT107D开发平台因其丰富的外设和稳定的性能成为热门选择。其中&#xff0c;PCF8591这颗集成了ADC和DAC功能的芯片&#xff0c;常被用于模拟信号处理的经典案例。本文…...

STM32CubeMX配置GPIO输入时,上拉/下拉电阻到底怎么选?一个按键电路原理图讲明白

STM32CubeMX配置GPIO输入时&#xff0c;上拉/下拉电阻到底怎么选&#xff1f;一个按键电路原理图讲明白 1. 从硬件原理到软件配置的完整思考路径 很多STM32初学者在使用CubeMX配置GPIO输入模式时&#xff0c;面对"Pull-up/Pull-down"选项常常感到困惑&#xff1a;这个…...

AI编程助手安全防护:AgentCheck实时监控与行为纠正系统

1. 项目概述&#xff1a;为AI编程助手装上“刹车系统” 最近在深度使用Claude、Cursor-Agent这类AI编程助手时&#xff0c;我遇到了一个既普遍又棘手的问题&#xff1a;当我不在屏幕前实时监督时&#xff0c;这些“聪明”的助手为了快速完成任务&#xff0c;常常会采取一些“务…...

astral-sh发布的musl和gnu版本standalone python 性能比较

musl版本standalone python在wsl默认的ubuntu中无法运行。说是找不到文件&#xff0c;其实文件就在那里 C:\d>wget https://mirror.nju.edu.cn/github-release/astral-sh/python-build-standalone/LatestRelease/cpython-3.14.5rc1%2B20260504-x86_64-unknown-linux-musl-in…...

5分钟掌握八大网盘极速下载:LinkSwift直链助手完全攻略

5分钟掌握八大网盘极速下载&#xff1a;LinkSwift直链助手完全攻略 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

在wsl中使用cython.txt

Cython 的本质可以总结如下&#xff1a;Cython 是包含 C 数据类型的 Python。 Cython 是 Python&#xff1a;几乎所有 Python 代码都是合法的 Cython 代码。 &#xff08;存在一些限制&#xff0c;但是差不多也可以。&#xff09; Cython 的编译器会转化 Python 代码为 C 代码&…...

2026年相城木托盘回收,厂家直收省心又划算

在仓储物流行业&#xff0c;木托盘是必不可少的周转工具&#xff0c;但大量闲置托盘堆积在仓库角落&#xff0c;不仅占用空间&#xff0c;还增加管理成本。2026年&#xff0c;苏州相城地区的企业发现&#xff0c;与其找零散回收商低价处理&#xff0c;不如直接联系厂家直收。以…...

前端八股整理总索引|JS/TS、HTML/CSS、Vue、浏览器、工程化与手写题

文章目录一、JavaScript / TypeScript 篇二. CSS 篇三. VUE 篇四. 工程化篇五. 浏览器篇六. 手写篇一、JavaScript / TypeScript 篇 前端八股整理&#xff08;JavaScript 01&#xff09;&#xff5c;interface/type 区别、数组常用方法、 与 前端八股整理&#xff08;JavaScr…...

SwiftUI与WebSocket构建iOS原生IM应用:从原理到实战

1. 项目概述&#xff1a;一个iOS原生即时通讯应用的诞生最近在GitHub上看到一个挺有意思的开源项目&#xff0c;叫sam-david/clawtalk-ios。光看名字&#xff0c;“ClawTalk”&#xff0c;直译过来是“爪语”或者“爪聊”&#xff0c;带着点神秘和趣味性。这其实是一个用SwiftU…...

熵减开发悖论突破方案:软件测试的破局之道

在软件测试领域&#xff0c;“熵减”早已成为高频关键词。测试工作的核心&#xff0c;本就是在混乱的需求、多变的环境与随机的缺陷中&#xff0c;建立秩序、降低不确定性。然而&#xff0c;当我们深入实践那些被奉为圭臬的熵减方法时&#xff0c;一个尖锐的悖论却逐渐浮现&…...

平行宇宙数据同步协议:软件测试的多维挑战与验证体系

在分布式系统、元宇宙与智能物联深度融合的今天&#xff0c;软件运行生态正从单一的单体架构&#xff0c;演化为由不同设备终端、云边端环境、数据副本集群乃至用户感知节点构成的“平行宇宙”协同系统。数据同步协议作为维系这些宇宙间一致性的核心纽带&#xff0c;其可靠性直…...

二向箔压缩测试极限挑战

一、从科幻到现实&#xff1a;二向箔压缩测试的概念溯源刘慈欣科幻巨著《三体》中&#xff0c;二向箔作为宇宙规律武器&#xff0c;能将三维空间及物质不可逆坍缩为二维平面&#xff0c;其核心逻辑是“降维”“压缩”与“信息损耗”。当我们以软件测试从业者的视角审视这一概念…...

LeaguePrank终极指南:如何3分钟安全自定义英雄联盟游戏展示?

LeaguePrank终极指南&#xff1a;如何3分钟安全自定义英雄联盟游戏展示&#xff1f; 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 你是否厌倦了英雄联盟千篇一律的游戏展示&#xff1f;想要在好友列表中展示与众不同的段位和…...

Kubernetes Operator开发脚手架:从CRD定义到生产就绪的完整实践

1. 项目概述&#xff1a;一个为Kubernetes Operator开发量身定制的脚手架如果你正在或计划为Kubernetes开发一个自定义控制器&#xff08;Custom Controller&#xff09;或Operator&#xff0c;那么你大概率会面临一个共同的起点&#xff1a;从零搭建项目结构。这不仅仅是创建一…...

5个简单步骤,用AlienFX Tools彻底告别AWCC臃肿软件

5个简单步骤&#xff0c;用AlienFX Tools彻底告别AWCC臃肿软件 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 你是否厌倦了Alienware Command Center&…...

Rust 错误处理高级应用:从入门到精通

Rust 错误处理高级应用&#xff1a;从入门到精通 作为一名从Python转向Rust的后端开发者&#xff0c;我深刻体会到Rust错误处理机制的强大和优雅。Rust的错误处理不仅类型安全&#xff0c;而且表达力强&#xff0c;这让我在编写可靠的应用程序时更加自信。今天&#xff0c;我想…...

自动化部署中路径验证工具afterpaths的设计原理与实战应用

1. 项目概述与核心价值最近在折腾一个自动化部署流程&#xff0c;发现了一个挺有意思的GitHub项目&#xff0c;叫burnssa/afterpaths。乍一看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你也经常和CI/CD、自动化脚本或者容器化部署打交道&#xff0c;尤其是在处…...

HTML5中利用TypedArray在多线程环境下执行二进制运算

HTML5中TypedArray跨线程二进制运算需用transferable实现零拷贝或SharedArrayBufferAtomics实现多Worker协同&#xff0c;前者适合单次大批量处理&#xff0c;后者需严格策略支持且调试复杂。HTML5 中无法直接在多线程环境下使用 TypedArray 进行二进制运算&#xff0c;因为 Ty…...

如何用 Copilot CLI 统一对接 GPT、Claude 等多种 AI 模型

如何用 Copilot CLI 统一对接 GPT、Claude 等多种 AI 模型 在 AI 应用开发中&#xff0c;如何用统一的接口对接 GPT、Claude 等多种模型&#xff1f;本文分享基于 Orleans Grain 架构的 AI 提供商系统设计&#xff0c;以及 GitHub Copilot CLI 的集成实践经验。 背景 在现代 A…...

前端响应式设计:移动优先最佳实践

前端响应式设计&#xff1a;移动优先最佳实践 前言 响应式设计是前端开发中的重要组成部分&#xff0c;它确保网页在不同设备上都能呈现良好的效果。移动优先设计是一种响应式设计的方法&#xff0c;它从移动设备开始设计&#xff0c;然后逐步扩展到更大的屏幕。今天&#xff0…...