硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1249|回复: 0
收起左侧

[KiCad] 分享贴,PWM或DAC控制电源管理芯片的输出电压

[复制链接]

7

主题

31

回帖

52

积分

初级会员

积分
52
发表于 2024-11-20 16:05:04 | 显示全部楼层 |阅读模式
本帖最后由 LY_Bear 于 2024-11-21 09:26 编辑

背景:

在回忆整理之前做过的项目中有用到利用MCU的GPIO控制Buck电源管理芯片的输出用法,
整理了一下相关内容并使用Jupyter Notebook做了一个计算工具。开放给有需要的人使用。

原理:
1732090044412.png

代码:
由于论坛不能直接上传.ipynb文件,代码也不多,就直接粘到贴子里。
[Python] 纯文本查看 复制代码
# BUCK电路输出电压计算
Vfb = 1.0
R1 = 10.0
R2 = 100.0
R3 = 10.0
R4 = 47.0

# 计算系数
b  = Vfb * (R1*R2+(R1+R2)*(R3+R4))/(R1*(R3+R4))
k = -(R2/(R3+R4))

# 计算DAC电压
def f(y: float)-> float:
    return (y - b) / k

# 搜索电压
def search(Vamax: float, taget: list[float]) -> None:
    for t in taget:
        x = f(t)
        if x > Vamax:
            print("超出范围")
            break
        print("BUCK输出电压为:{:.4f}V, DAC模拟电压为:{: .4f}V".format(t,x))
    print("搜索完成\n在Vamax = {:.4f}V时, Buck输出电压 = {:.4f}V".format(Vamax, (k*Vamax+b)))
#----------------------------------------
print("最大输出电压 = {:.4f}V\n理论曲线斜率 = {:.4f}V".format(b, k))

t_list = [12.0, 11.5, 11.0, 10.5, 10.0, 9.5, 9.0, 8.5, 8.0]
search(Vamax=3.0, taget=t_list)


示例:
最大输出电压 = 12.7544V
理论曲线斜率 = -1.7544V
BUCK输出电压为:12.0000V, DAC模拟电压为: 0.4300V
BUCK输出电压为:11.5000V, DAC模拟电压为: 0.7150V
BUCK输出电压为:11.0000V, DAC模拟电压为: 1.0000V
BUCK输出电压为:10.5000V, DAC模拟电压为: 1.2850V
BUCK输出电压为:10.0000V, DAC模拟电压为: 1.5700V
BUCK输出电压为:9.5000V, DAC模拟电压为: 1.8550V
BUCK输出电压为:9.0000V, DAC模拟电压为: 2.1400V
BUCK输出电压为:8.5000V, DAC模拟电压为: 2.4250V
BUCK输出电压为:8.0000V, DAC模拟电压为: 2.7100V
搜索完成
在Vamax = 3.0000V时, Buck输出电压 = 7.4912V


结语:
个人设计,如有错误,还望指出








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-9 22:32 , Processed in 0.251241 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表