数控调压BUCK电路 —— 基于TPS56637(TI)

0 前言

本文基于 TITPS56637 实现一个支持调压的 BUCK 电路,包含从零开始详细的 原理解析、原理图、PCB 及 实测数据

本文属于《DIY迷你数控电源》系列,本系列我们一起实现一个简单的迷你数控电源

我是 LNY,一个在对嵌入式的所有都感兴趣的博主,一个原厂嵌入式软件开发工程师
如果对你有帮助,请点赞、收藏、关注三连,这是我持续创作的动力之一!!!

文章目录

  • 0 前言
  • 1 如何进行数控调压
    • 1.1 BUCK原理简介
    • 1.2 如何用BUCK得到想要的电压
    • 1.3 如何动态调整BUCK的输出电压
    • 1.4 其它
  • 2 设计选型
    • 2.1 背景:数控电源DIY项目
    • 2.2 设计指标
    • 2.3 BUCK选型
  • 3 硬件设计
    • 3.1 原理图 & 参数设计
    • 3.2 软件效率优化
    • 3.3 PCB & 渲染图
  • 4 测试
    • 4.1 测试环境
    • 4.2 简单测试
    • 4.3 进一步的测试待更新...
  • 5 本系列其它文章(或更新计划)
  • 6 参考资料

1 如何进行数控调压

1.1 BUCK原理简介

BUCK 是一种 DCDC 拓扑结构,把输入的高电压转换成更低的稳定电压

实现方式是 控制模拟开关导通的占空比 来调整输出电压的大小
控制模拟开关导通的占空比 是由输出电压决定的(许多BUCK芯片将模拟开关集成在芯片内部)

BUCKFB(Feedback,反馈)引脚用于获取 分压后的输出电压实际值

分压后的输出电压实际值 将和 内部参考电压 进行比较,组成一个反馈网络,通过监测输出电压,来控制模拟开关的占空比:

分压后的输出电压实际值 > 内部参考电压 ==> 提高模拟开关导通的占空比,输出电压升高
分压后的输出电压实际值 < 内部参考电压 ==> 降低模拟开关导通的占空比,输出电压降低

最终,FB引脚的电压 将会稳定在 内部参考电压,而输出电压也会稳定在我们想要的电压上

1.2 如何用BUCK得到想要的电压

外围电路的结构芯片原厂已经给出,在一般应用下,我们最重要的工作是:计算FB引脚上电阻分压网络的阻值,即下图中的 R6R7
在这里插入图片描述

在这里插入图片描述
VOUTV_{OUT}VOUT—— 经过 BUCK 降压后的输出电压
R6、R7 —— 对应原理图的 R6 和 R7
0.6 —— 反馈电压,每个 BUCK 芯片可能不同,为一常量,在 DATASHEET 的电气参数中可以查到
在这里插入图片描述
芯片原厂在其应用实例中一般都会给出上图中所示的一个公式
在输入和输出参数都满足其要求的情况下,选定R6R7的阻值,就可以得到想要的输出电压

这个公式是怎么得来的?
这个公式可以写成:
0.6=VOUTR6+R7∗R7\begin{aligned} 0.6 = \frac{ V_{OUT} }{R_6 + R_7} * R_7 \end{aligned} 0.6=R6+R7VOUTR7
看原理图,电流从 VOUT 经过 R6R_6R6R7R_7R7 流入 GND,那么这条回路上的电流为:VOUTR6+R7\frac{ V_{OUT} }{R_6 + R_7}R6+R7VOUT
这条回路上电流处处相等,因此电阻 R7R_7R7 两端的电压为 VR7=VOUTR6+R7∗R7V_{R_7} = \frac{ V_{OUT} }{R_6 + R_7} * R_7VR7=R6+R7VOUTR7
电阻 R7R_7R7 两端的电压就是其两端的压差,而其一端是 GND 电压为0V,那么其另一端电压值就是VR7V_{R_7}VR7
这一点直接连接BUCK芯片FB引脚,即 VFB=VOUTR6+R7∗R7V_{FB} = \frac{ V_{OUT} }{R_6 + R_7} * R_7VFB=R6+R7VOUTR7

上面我们有说,BUCK芯片的目的就是控制模拟开关导通的占空比,让VFBV_{FB}VFB和内部参考电压保持一致,从而得到想要的输出电压。目前我们VOUTV_{OUT}VOUT(由设计指标得到)、VFBV_{FB}VFB(由芯片手册得到)已知,只要选择 R6R_6R6R7R_7R7 让这个等式成立就可以了。

阻值选择的注意事项?

  1. 必须保证上述等式成立。
  2. 阻值应在合理范围内选择。阻值过大会导致 FB 引脚内部误差放大器偏置电流引起的误差变大,且更容易拾取环境中的电磁干扰噪声等;阻值过小会导致由过多电流流入电阻分压网络,导致系统功耗变大

当手册没有明确指定时,选择几十kΩ级别(如10kΩ - 200kΩ) 的电阻通常是一个安全、合理且广泛应用的起点。

1.3 如何动态调整BUCK的输出电压

首先,厂商自己会推出一些支持调压的 DC-DC 芯片,可以通过一些通讯协议来调整输出电压。

但我们这里讨论的是 普通的 DC-DC 芯片如何完成调压。当然,TI 在其DATASHEET里有写,不建议这么操作。
在这里插入图片描述
卓晴老师在他的文章数控降压电源模块DCDC| 5A,LCD显示讲解了一种数控调压的方法:通过使用DAC注入电流,以调整FB电压,进而调整输出电压。我们简单复习一下。

在正常情况下,FB 引脚的电压VFBV_{FB}VFBVOUT 经过电阻分压网络直接得到
那么如果我们自己控制 FB 引脚的电压VFBV_{FB}VFB,是不是就能调整输出电压了呢?

卓晴老师在其文章中引用了XL4015-ADJ 5A 大电流DC-DC原理图分享一文中的原理图,这里借用一下:
在这里插入图片描述
从上图可以看到,I2I_2I2I3I_3I3流入 VFB 节点,I1I_1I1流出 VFB 节点,他们的大小分别是:
I1=VFBR1I2=VOUT−VFBR2I3=VG−VD−VFBR3\begin{aligned} I_1 &= \frac{V_{FB}}{R_1} \\ I_2 &= \frac{V_{OUT} - V_{FB}}{R_2} \\ I_3 &= \frac{V_G - V_D - V_{FB}}{R_3} \end{aligned} I1I2I3=R1VFB=R2VOUTVFB=R3VGVDVFB
其中:
VGV_GVG —— DAC (或其它,如滤波后的PWM信号)输出的直流电压
VDV_DVD —— 二极管(一般是肖特基二极管,因为压降低)的压降

根据基尔霍夫电流定律,在任意时刻,流入电路中某一节点(或闭合面)的电流之和等于流出该节点(或闭合面)的电流之和,因此:
I1=I2+I3\begin{aligned} I_1 = I_2 + I_3 \end{aligned} I1=I2+I3
联立以上四式,得:
VOUT=VFB×(1+R2R1)+(VFB+VD−VG)×R2R3V_{OUT} = V_{FB} \times \left(1 + \frac{R_2}{R_1}\right) + (V_{FB} + V_D - V_G ) \times \frac{R_2}{R_3} VOUT=VFB×(1+R1R2)+(VFB+VDVG)×R3R2
现在我们在选定 R1R_1R1R2R_2R2R3R_3R3 三个阻值后,就可以通过调整 VGV_GVG 的电压来调整 VOUTV_{OUT}VOUT 了!

1.4 其它

在此我有个疑问,为什么不直接将DAC接入到FB引脚呢?

!!!以下内容来源于DeepSeek,供大家参考:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有些芯片是支持直接使用DAC控制的,因为其FB引脚已经做了优化:

2 设计选型

2.1 背景:数控电源DIY项目

在选择设计指标前,有必要说一下要实现的DIY项目。
这个DIY项目的最终目标是实现一个迷你数控电源,其和调压相关的实现如下:

  1. 电压诱骗
    数控电源的电源输入来自快充充电器,通过 PD 协议芯片 STUSB4500,诱骗出5V、9V、12V或20V电压。如果快充头支持PPS协议,那么可以在 5V——20V 以 0.05V 的步进自由选择数控电源的输入电压(因为 STUSB4500 只支持这些,而非快充协议限制)。
  2. 电压转换
    作为一个数控电源,应该可以以较高精度的步进调整输出电压,为此支持两种电压输出方式
    方式1: 通过 PPS 协议直接诱骗出需要的电压。
    (优点:电路简单、效率高。缺点:最低输出5V,调整步进精度0.05V)
    方式2:PD3.0PPS 协议诱骗出一特定电压后,输入到数控 BUCK 电路,调整为最终需要的电压。
    (优点:可以输出低于5V的电压、调整步进精度高。缺点:由于BUCK压差的限制,不能输出过高的电压;输出纹波大)
    .
    为了实现上述功能,将使用两个负载开关芯片 LM73100(也是理想二极管芯片)实现二选一输出。
  3. 计量
    使用 INA233 计量芯片实现对输出的电压、电流、功率和能量进行计量。
  4. 保护功能
    使用 TPS25974 电子保险丝实现过流、过压、短路等接口保护。

2.2 设计指标

基于上述前提,可以定出对BUCK调压电路基本的设计指标

  • 输入电压:5V——20V(由PD诱骗芯片决定,STUSB4500 最高支持20V)
  • 输出电压:0V——12V(需要更高电压时,由PD诱骗后通过快充头直出)
  • 输出电流:5A(由PD诱骗芯片决定,STUSB4500 最高支持5A)
  • 输出纹波:100mV(仅BUCK输出,不包含后级eFuse的大电容)
  • 调压精度:10mV

2.3 BUCK选型

基于以上指标,选择了德州仪器的 TPS56637
在这里插入图片描述

3 硬件设计

3.1 原理图 & 参数设计

DATASHEET的参考设计:
在这里插入图片描述
参考以上设计,绘制我们的原理图
在这里插入图片描述
那么主要选择的参数就是 R22R_{22}R22R23R_{23}R23R25R_{25}R25 了。

根据上面的公式:
VOUT=VFB×(1+R23R22)+(VFB+VD−VG)×R23R25V_{OUT} = V_{FB} \times \left(1 + \frac{R_{23}}{R_{22}}\right) + (V_{FB} + V_D - V_G ) \times \frac{R_{23}}{R_{25}} VOUT=VFB×(1+R22R23)+(VFB+VDVG)×R25R23
其中,已知参数是:
VGV_{G}VG是DAC输出的电压,范围是 0V — 3.3V;
VDV_{D}VD是肖特基二极管上的压降,1N5817WS 的压降是 0.45V;
R22R_{22}R22初选为10kΩ,R23R_{23}R23选为220kΩ,R25R_{25}R25选为36kΩ。
VOUT=0.6×(1+22010)+(1.05−VG)×22036V_{OUT} = 0.6 \times \left(1 + \frac{220}{10}\right) + (1.05 - V_G ) \times \frac{220}{36} VOUT=0.6×(1+10220)+(1.05VG)×36220
VGV_{G}VG输出 0V 时,VOUT=20.21VV_{OUT} = 20.21VVOUT=20.21V
VGV_{G}VG输出 3.3V 时,VOUT=0.05VV_{OUT} = 0.05VVOUT=0.05V

12bit DAC的输出范围码字为0 — 4096,对应 0.05V 和 20.21V,那么一个码子对应的电压值为0.005V,即理论调压精度为5mV。

但是BUCK芯片是有压差要求的,且 TPS56637 最高输出电压为13V,因此DAC的最低输出电压VGMAX=1.18VV_{G_{MAX}} = 1.18VVGMAX=1.18V

3.2 软件效率优化

在这里插入图片描述
在我们这个应用中,因为输入电压来源于快充充电器,所以可以获取到范围内的所有电压值。

那是否会有一种控制算法
根据输出电压值,先粗调一个输入电压值,再通过BUCK精调,保证BUCK工作在最高效率下呢?

题主认为这种方式肯定是必须且有成效的,但是这部分还没有完成,完成了会贴出来,并附上测试结果。

3.3 PCB & 渲染图

根据上述的原理图layout,BUCK电路对应下图中红框的位置。

请添加图片描述

在这里插入图片描述

4 测试

4.1 测试环境

在这里插入图片描述
上图中将BUCK的 MODE 引脚接地,从而使BUCK进入 ECO模式,在轻载下获得更高的效率

在实际应用中,MODE 引脚由MCU的GPIO控制(但是这块板的MCU刚刚炸掉,所以就简单粗暴的短接到GND了)

4.2 简单测试

DAC电压为3.197V时,BUCK输出电压1.941V
DAC电压为0V时,BUCK输出电压为13.97V

4.3 进一步的测试待更新…

总之先简单的验证一下这个电路能用吧,具体效果怎么样后面再更新

后面的打算换一款板子,把MCU焊好之后再测试。

5 本系列其它文章(或更新计划)

如果已经更新,下面会出现超链接

硬件:

  • MCU —— STM32G431CBU6
  • 调压BUCK电路 —— 基于TPS56637(本文)
  • 功率计电路 —— 基于INA233
  • 理想二极管开关电路 —— 基于LM73100
  • 电子保险丝电路 —— 基于TPS25974
  • PD3.0(PPS) SINK电路 —— 基于STUSB4500
  • 旋转编码器 & 蜂鸣器电路 —— 基于EC11和SS8050
    .

软件:

  • STUSB4500 —— BSP程序开发
  • INA233 —— BSP程序开发
  • EC11编码器 &蜂鸣器 —— BSP程序开发
  • LVGL —— 图形库移植与应用开发
  • FreeRTOS —— 移植与应用开发
    .

其它:

  • 外壳设计及加工
  • 元器件及结构件的选择
    .

相关文章:

  • PPS(PD3.0)快充SINK模块 — 基于STUSB4500

6 参考资料

[1] 数控降压电源模块DCDC| 5A,LCD显示 —— 卓晴
[2] XL4015-ADJ 5A 大电流DC-DC原理图分享 —— 苏守坤
[3] TPS56637 DATASHEET

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89792.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

prometheus UI 和node_exporter节点图形化Grafana

prometheus UI 和node_exporter节点图形化Grafana 先简单的安装一下 进行时间的同步操作安装Prometheus之前必须要先安装ntp时间同步&#xff0c;因为prometheus server对系统时间的准确性要求很高&#xff0c;必须保证本机时间实时同步。# 用crontab进行定时的时间的同步 yum …

RabbitMQ—TTL、死信队列、延迟队列

上篇文章&#xff1a; RabbitMQ—消息可靠性保证https://blog.csdn.net/sniper_fandc/article/details/149311576?fromshareblogdetail&sharetypeblogdetail&sharerId149311576&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 TTL …

LVS 集群技术详解与实战部署

目录 引言 一、实验环境准备 二、理论基础&#xff1a;集群与 LVS 核心原理 2.1 集群与分布式 2.2 LVS 核心原理 LVS 的 4 种工作模式 LVS 调度算法 三、LVS 部署工具&#xff1a;ipvsadm 命令详解 四、实战案例&#xff1a;LVS 部署详解 案例 1&#xff1a;NAT 模式…

前端vue3获取excel二进制流在页面展示

excel二进制流在页面展示安装xlsx在页面中定义一个div来展示html数据定义二进制流请求接口拿到数据并展示安装xlsx npm install xlsx import * as XLSX from xlsx;在页面中定义一个div来展示html数据 <div class"file-input" id"file-input" v-html&qu…

android 信息验证动画效果

layout_check_pro <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/parent"android:layout_width"wrap_content"android:layout_…

【iOS】继承链

文章目录前言什么是继承链OC中的根类关于NSProxy关键作用1.方法查找与动态绑定2. 消息转发3. **类型判断与多态**继承链的底层实现元类的继承链总结前言 在objective-c中&#xff0c;继承链是类与类之间通过父类&#xff08;Superclass&#xff09;关系形成的一层层继承结构&am…

论文阅读:Instruct BLIP (2023.5)

文章目录InstructBLIP&#xff1a;迈向通用视觉语言模型的指令微调研究总结一、研究背景与目标二、核心方法数据构建与划分模型架构训练策略三、实验结果零样本性能消融实验下游任务微调定性分析可视化结果展示四、结论与贡献InstructBLIP&#xff1a;迈向通用视觉语言模型的指…

Elasticsearch+Logstash+Filebeat+Kibana部署【7.1.1版本】

目录 一、准备阶段 二、实验阶段 1.配置kibana主机 2.配置elasticsearch主机 3.配置logstash主机 4.配置/etc/filebeat/filebeat.yml 三、验证 1.开启Filebeat 2.在logstash查看 3.浏览器访问kibana 一、准备阶段 1.准备四台主机kibana、es、logstash、filebeat 2.在…

Vue开发前端报错:‘vue-cli-service‘ 不是内部或外部命令解决方案

1.Bug: 最近调试一个现有的Vue前端代码&#xff0c;发现如下错误&#xff1a; vue-cli-service’ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 2.Bug原因&#xff1a; 导入的工程缺少依赖包&#xff1a;即缺少node_modules文件夹 3.解决方案&#xff1…

AI生态,钉钉再「出招」

如果说之前钉钉的AI生态加持更多的围绕资源和商业的底层助力&#xff0c;那么如今这种加持则是向更深层次进化&#xff0c;即真正的AI模型训练能力加持&#xff0c;为垂类大模型创业者提供全方位的助力&#xff0c;提高创业成功率和模型产品商业化确定性。作者|皮爷出品|产业家…

XSS GAME靶场

要求用户不参与&#xff0c;触发alert(1337) 目录 Ma Spaghet! Jefff Ugandan Knuckles Ricardo Milos Ah Thats Hawt Ligma Mafia Ok, Boomer Exmaple 1 - Create Example 2 - Overwrite Example 3 - Overwrite2 toString Ma Spaghet! <h2 id"spaghet&qu…

Unity学习笔记(五)——3DRPG游戏(2)

添加更多的敌人 编辑EnemyController&#xff0c;解决报错导致敌人无法注册观察者模式&#xff0c;从而无法执行敌人庆祝动画 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public enum EnemyStatus { GUARD,PATROL…

2025测绘程序设计国赛实战:一轮终章 | 单向后方交会C#实现

前言本文是小编对六道国赛试题中的最后一个试题&#xff0c;单向后方交会的一篇学习日志。本文的整体架构&#xff0c;依旧首先拿训练数据跟大家介绍本题涉及到的数据的属性含义&#xff0c;涉及到算法的原理、执行流程和终极目的。然后附上小编用C#来实现的程序&#xff0c;从…

基于Echarts的气象数据可视化网站系统的设计与实现(Python版)

本系统旨在构建一个基于Echarts的气象数据可视化系统&#xff0c;本系统能够从中国天气网爬取实时天气数据&#xff0c;并进行存储、分析和可视化展示。用户可以通过网页界面查看不同地区的天气情况&#xff0c;以及历史天气数据的变化趋势。 技术栈&#xff1a;Python语言、My…

HarmonyOS 启动提速秘籍:懒加载全链路实战解析

摘要 随着移动应用功能越来越复杂、界面越来越丰富&#xff0c;应用启动慢、内存占用高等问题也越来越普遍。特别是在 HarmonyOS NEXT 应用开发中&#xff0c;如果不加优化&#xff0c;用户打开页面时可能要等好几秒&#xff0c;体验就很差了。 懒加载&#xff08;Lazy Loading…

全新安装Proxmox VE启动时卡在Loading initial ramdisk

原因&#xff1a; 使用了Ventoy启动盘装载 Proxmox ISO 文件安装。 要用Ventoy优盘启动&#xff0c;选择Advance Option里的Rescue Boot&#xff0c; 修改文件/etc/default/grub.d/installer.cfg&#xff0c;删除rdinit/vtoy/vtoy运行 update-grub 更新grub配置&#xff0c;重启…

【Java项目安全基石】登录认证实战:Session/Token/JWT用户校验机制深度解析

目录 1.前言 2.正文 2.1Cookie—Session机制 2.1.1核心原理图解&#xff1a; 2.1.2四步核心流程&#xff1a; 2.1.3存储架构对比 2.1.4集群部署方案&#xff08;Spring Session Redis&#xff09; 2.2Token令牌 2.2.1核心原理图解&#xff1a; 2.2.2四步核心流程&am…

融合优势:SIP 广播对讲联动华为会议 全场景沟通响应提速​

SIP 广播对讲与华为视频会议融合解决方案&#xff0c;是基于 SIP 协议将广播对讲系统与华为视频会议系统进行整合&#xff0c;实现通信资源共享与业务流程联动&#xff0c;可提升应急响应效率与沟通协作能力。融合原理&#xff1a;SIP 是一种基于文本的应用层协议&#xff0c;具…

Milvus Dify 学习笔记

目录 docker方式&#xff1a; 模式一&#xff1a;Milvus Lite linux docker方式&#xff1a; 下载yml文件&#xff0c; https://github.com/milvus-io/milvus/releases docker启动&#xff1a; docker compose up -d from pymilvus import connections connections.conne…

汽车ECU控制器通信架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…