R1是下电阻,接 FB - GND
R2是上电阻,接 VOUT - FB
R3接 DAC - FB

2025-03-12T01:58:17.png

#include <stdio.h>
#include <stdint.h>

float r1 = 10, r2 = 56, r3 = 12;
float vfb = 1.25;

float calc_vout(float vdac) {
    return (1 + r2 / r1 + r2 / r3) * vfb - r2 / r3 * vdac;
}

int main(void) {
    printf("R1 %.02f R, R1 %.02f R, R1 %.02f R, Vfb %.02f V\r\n", r1, r2, r3, vfb);
    for (float i = 0; i <= 3.3; i += 0.3) {
        printf("VDAC %.02f V; VOUT %.02f V\r\n", i, calc_vout(i));
    }
    return 0;
}

打印结果如下,可实现0-12V可调电源:

R1 10.00 R, R1 56.00 R, R1 12.00 R, Vfb 1.25 V
VDAC 0.00 V; VOUT 14.08 V
VDAC 0.30 V; VOUT 12.68 V
VDAC 0.60 V; VOUT 11.28 V
VDAC 0.90 V; VOUT 9.88 V
VDAC 1.20 V; VOUT 8.48 V
VDAC 1.50 V; VOUT 7.08 V
VDAC 1.80 V; VOUT 5.68 V
VDAC 2.10 V; VOUT 4.28 V
VDAC 2.40 V; VOUT 2.88 V
VDAC 2.70 V; VOUT 1.48 V
VDAC 3.00 V; VOUT 0.08 V
VDAC 3.30 V; VOUT -1.32 V

推导过程:

I1 = Vfb / R1
I2 = Vout - Vfb / R2
I3 = Vdac - Vfb / R3  # 电流方向可正可负,此处定义 Vdac -> Vfb 为正
I1 = I2 + I3

==> Vout = (1 + R2 / R1 + R2 / R3) * Vfb - R2 / R3 * Vdac

标签: none

添加新评论