扫码加入

  • 方案介绍
  • 相关推荐
申请入驻 产业图谱

双DA运放加法器数控电压源

3小时前
142
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
1、双DA运放加法器数控电压源设计

点击链接下载设计资料:https://download.csdn.net/download/m0_51061483/92081541


2、系统功能介绍

数控电压源是一种将数字信号转换为可调模拟电压输出的电子装置,可应用于电源调节、仪器校准、实验教学等场景。本设计采用“加/减计数器 + 双DAC数模转换 + 运算放大器加法器”的结构,实现稳定可靠、范围可调的输出电压控制。本系统的核心思想是通过两个DAC分别控制电压的“十位”和“个位”精度,利用双DA输出经放大器处理后再在加法器中叠加,实现高分辨率且调节方式灵活的电压源输出。

本系统的功能设计包括:

(1)使用加减计数器设置电压值
计数器作为本系统的数字调节单元,通过按键可实现电压的逐步加大或减小。计数器输出的是一个数字量,代表当前待转换的电压幅度。

(2)双DAC数模转换(个位 + 十位)
由于常规DAC芯片精度或数量不足,本设计采用两个DAC分别负责个位与十位电压转换,使得整体输出电压分辨率更高、可控范围更大。

(3)运放放大器与加法器进行信号整合
从两个DAC输出的电压信号经运算放大器进行比例调整,再通过加法器将两个模拟信号叠加,实现最终需要的输出电压数值。

(4)输出电压范围可调
根据运放增益与DAC参考电压设定,使输出可在 05V、010V 或其他范围内变化。

(5)原理仿真采用Proteus环境
由于Multisim中的DAC芯片较少,本设计采用Proteus进行电路仿真,实现对DAC输出、电压调节与运放放大器的可视化验证。

此设计不仅技术结构清晰,同时在电子课程、数模混合系统设计、电压源校准电路开发中具有很高参考价值。


3、系统电路设计

系统电路由多个功能模块构成,每个模块在整体数控电压输出过程中承担着关键角色。本部分将从计数器、DAC模块、运算放大器模块、加法器模块、电源与参考电压模块等方面展开详细介绍。


3.1 加减计数器模块

计数器模块是数控电压源的数字输入接口,主要功能是:

(1)用户通过按键或拨码开关进行“加1”或“减1”的操作;
(2)计数器的当前数值用作DAC的输入;
(3)可以配置为 0~9 或 0~99 的计数范围;
(4)内部可加入锁存器,使电压设置稳定不跳变。

计数器的设计关键点包括:

  • 加法与减法同步处理:确保计数时钟一致,避免出现跳数或误触发。
  • 防抖逻辑实际电路中按键容易因机械抖动引起误触发,可采用RC硬件防抖或软件延时防抖。
  • 数值溢出处理:如超过最大值 99 需限制不继续增长,低于 00 时不再下降,保持数控电压的可靠性。

计数器输出通常为一个 8 位或 4+4 位组合电路,分别传递给十位DAC与个位DAC,使得整个系统分辨率得以提升。


3.2 双DAC数模转换模块

本设计的核心亮点在于采用两个数模转换器(DAC),分别用于控制电压的不同有效位。

(1)十位DAC用于粗调(高幅度控制)
十位 DAC 输入为计数器输出的高位数字(如十位 0~9),输出电压范围可在 0~5V 或 0~10V,根据参考电压设定。

(2)个位DAC用于细调(低幅度控制)
个位 DAC 处理的是低位数值(0~9),用于小步进的电压微调。
适当设置放大倍数,使个位 DAC 的变化在整体输出电压中占十倍关系,实现精准调节。

(3)DAC典型选择
在Proteus中常用 MC1408、DAC0808 等芯片。
若需更高精度,可考虑 AD7303 之类的双通道DAC芯片。

(4)DAC输出特性

  • 输出电流需经运放转换成电压;
  • 输出与参考电压线性相关;
  • 分辨率越高,输出电压精确度越高。

双DAC结构使得系统在 DAC 芯片数量有限的情况下,也能通过模块组合实现更大的输出范围、更多的可控分辨率与更灵活的系统扩展。


3.3 运算放大器放大电路

DAC输出的电压或电流通常较小,需要通过运放放大才能达到可用的数控输出范围。

放大器模块主要采用反相或同相比例放大,功能包括:

(1)设置输出电压比例系数;
(2)将个位与十位DAC输出进行幅度调节;
(3)提供低输出阻抗,使输出能够直接驱动负载;
(4)可通过调整运放电阻配比设置 010V、020V 或其他输出范围。

例如:

  • 十位 DAC 输出可能为 0~1V,经放大器放大 10 倍后变为 0~10V。
  • 个位 DAC 输出 0~0.1V,经放大 10 倍也变为 0~1V,用于精细调节。

运放选型建议使用 LM358、OP07、TL081 等常用型号,根据负载特性选择合适带载能力的运放芯片。


3.4 运算放大器加法器电路

加法器是将两个 DAC 模拟信号合成为一个最终输出信号的关键。

加法器设计原则如下:

(1)输入来自十位与个位 DAC 两路模拟信号;
(2)采用同相加法器结构,可避免反相导致的信号倒置;
(3)将两个电压按设定比例叠加;
(4)由电阻比决定信号加权关系;

例如:

  • 十位信号占主要份额(加权系数 10);
  • 个位信号占次要份额(加权系数 1)。

加法器输出电压公式如下:

Vout = (R2/R1)*V10 + (R4/R3)*V1

其中

  • V10 为十位DAC输出电压
  • V1 为个位DAC输出电压
  • R比决定最终电压比例关系

通过设计合理的阻值,整个系统可以实现精度高、稳定输出的数控电压源。


3.5 电源与参考电压设计

DAC与运放对电压稳定度要求很高,因此电源部分必须进行精心设计:

(1)DAC参考电压直接决定输出电压精度;
(2)运放必须采用低纹波电源;
(3)若输出电压为正负双极性,需提供 ±12V 或 ±15V 电源;
(4)若输出电压为 0~5V 或 0~10V,单电源即可;
(5)加入大容量电解电容和小容量瓷片电容组成 RC 滤波网络;

电源的稳定性直接影响整个数控电压源的可用性与精度。


4、程序设计

程序部分负责对计数器数字量进行处理、控制DAC输入数据以及实现数控逻辑。虽然DAC本身为模拟电路,但数控部分由数字逻辑驱动,可以通过单片机数字逻辑电路实现计数与控制。

下面以单片机控制的结构为例说明程序设计。


4.1 主程序结构

主程序主要处理按键输入、计数逻辑、DAC输出数据更新:

void main() {
    init_all();
    while(1) {
        read_keys();
        update_counter();
        output_to_dac();
    }
}

程序结构清晰地体现功能模块化设计


4.2 按键处理与计数器逻辑

void read_keys() {
    if(key_add == 0) {
        delay_ms(20);
        if(key_add == 0) {
            counter++;
            if(counter > 99) counter = 99;
        }
    }

    if(key_sub == 0) {
        delay_ms(20);
        if(key_sub == 0) {
            counter--;
            if(counter < 0) counter = 0;
        }
    }
}

该段代码实现按键防抖与计数器加减功能,确保系统设置的电压值不会跳动。


4.3 DAC输出更新程序

void output_to_dac() {
    unsigned char tens = counter / 10;
    unsigned char ones = counter % 10;

    dac_write(0, tens);  // 十位输出
    dac_write(1, ones);  // 个位输出
}

通过拆分十位与个位分别送入 DAC0 与 DAC1,实现双DAC配合输出。


4.4 DAC写入函数模板

void dac_write(unsigned char channel, unsigned char value) {
    // 示例:SPI写入DAC
    spi_start();
    spi_send(channel);
    spi_send(value);
    spi_stop();
}

实际 DAC 驱动方法取决于型号与接口方式。


5、总结

本设计通过数字计数器配合双DAC,再由运算放大器与加法器实现高分辨率、可调范围广的数控电压源输出。整个系统结构清晰,模块分工明确,适用于中高精度电压控制场景。通过十位与个位 DAC 协同工作,不仅解决了单DAC精度不足的问题,还可根据系统配置灵活扩展更多位数,使数控电压范围更大、精度更高。同时运放放大器与加法器的组合,使得输出电压不仅数值精准,同时电路具备高稳定度和低输出阻抗,能直接驱动外部测试或控制设备。

本方案在 Proteus 仿真环境中易于实现,可为教学、实验或工程实践提供可靠的参考模型。在实际硬件应用中,只需根据 DAC 分辨率、运放特性与电源需求进行适当调整,即可构建出高性能的数控电压输出系统。

相关推荐