2026 Make Blocks #3阶段2 - 基于MCP4728的DAC模块设计
该项目使用了MCP4728,实现了DAC模块的设计,它的主要功能为:4通道DAC输出。
标签
DAC
MCP4728
4通道
Bymyself
更新2026-07-22
66

任务介绍

本项目设计一款多通道精密DAC电压输出模块,用于提供可编程、高稳定的直流电压信号,可作为校准源、传感器激励源或测试激励信号源使用。模块采用MCP4728等12位及以上DAC芯片,支持I2C数字接口控制,具备至少2路完全独立的电压输出通道,各路可分别设定不同电压值且互不干扰。板载精密基准电压源确保输出精度和长期稳定性,同时提供标准接线端子方便外部连接,并预留MCU控制接口便于系统集成。整体设计目标是输出误差小、温漂低、操作简便,满足实验室及工业场景中对可控电压源的基本需求。

方案介绍

板卡资源推荐如下:主控DAC选用MCP4728T(MSOP-10封装),板载一颗0.1μF陶瓷去耦电容紧贴芯片VDD引脚,I2C总线上加上拉电阻,4Pin排针作为MCU控制接口(含VCC、GND、SDA、SCL),另外在电源输入端加入一颗LED作为电源指示灯,一眼即可判断板子是否正常上电。由于MCP4728自带基准,本设计优先使用内基准以简化电路。主要硬件部分包括如下:
0

模块介绍

芯片选用Microchip的MCP4728,这是一颗4通道12位I2C接口的电压输出型DAC,内置2.048V高精度基准源,供电范围2.7V至5.5V,每路输出可独立编程为0至VREF之间的任意电压,分辨率达4096级,建立时间典型值仅6μs,完全满足精密可控输出的需求。

原理图和PCB模块介绍
0

原理图
0

PCB

我们通过插针接口将芯片的重要引脚都引出来了。
0

3D效果图
0

实物图

实测效果

我们需要通过一个主控进行4路DAC出口的配置,这里我们使用arduino R4进行快速配置,见4路DAC配置成不同的输出状态,然后进行测试,基本连接如下:
0

测试代码我们通过arduino IDE可以直接搜到有关MCP4728的驱动库,然后基于库进行测试代码的编写,如下:


#include <Adafruit_MCP4728.h>
#include <Wire.h>

Adafruit_MCP4728 mcp;

void setup(void) {
Serial.begin(115200);
while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens

Serial.println("Adafruit MCP4728 test!");

// Try to initialize!
if (!mcp.begin()) {
Serial.println("Failed to find MCP4728 chip");
while (1) {
delay(10);
}
}

mcp.setChannelValue(MCP4728_CHANNEL_A, 4095);
mcp.setChannelValue(MCP4728_CHANNEL_B, 2048);
mcp.setChannelValue(MCP4728_CHANNEL_C, 1024);
mcp.setChannelValue(MCP4728_CHANNEL_D, 0);
}

void loop() { delay(1000); }

接下来我们进行对应的接口的测量就可以了:

A口:
0

B口:
0

C口:
0

D口:
0

心得体会

本次的任务是四通道DAC输出模块,这个封装选择还是很常见的,外围也比较简单,对于布线来说难度不大,版型参考了经典模块,又在系列模块里面添加了一个,感谢论坛的这次活动,简直是硬件工程师的福音,不仅可以锻炼自己的上手设计的能力,还是丰富自己的模块库。

附件下载
basic_demo.zip
DAC.zip
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号