MCP4725 芯片手册深度解读:引脚、寄存器、工作模式与应用电路全梳理
1.MCP4725 简介
MCP4725 是 Microchip 公司生产的一款单通道 12 位数字-模拟转换器 (DAC),具有非易失性 EEPROM 存储功能,它广泛用于需要精确模拟信号输出的应用中,如音频信号生成、传感器信号调节和电压基准调节。

MCP4725 的主要特点为:
- 12 位分辨率:MCP4725 提供 12 位的分辨率,意味着它可以输出 4096 个不同的电压等级。这使得它适用于需要高精度信号生成的场景
- I²C 接口:MCP4725 通过 I²C 总线进行通信,这意味着它可以与微控制器等主设备轻松集成,使用 I²C 通信协议即可控制 DAC 的输出
- EEPROM 存储:该器件内置非易失性 EEPROM,可以存储 DAC 输出寄存器的值,这意味着即使设备断电或重启,输出值也能被保持不变
- 输出电压范围:MCP4725 的输出电压范围为 0V 至 Vcc,输出电压的精确度取决于参考电压 Vref,通常与供电电压相同
- 低功耗:MCP4725 是一个低功耗设备,非常适合电池供电的应用
- 紧凑封装:它通常采用 SOT-23 或 MSOP-8 封装,非常适合空间受限的设计
其内部结构如下:

2.MCP4725 的引脚功能说明
MCP4725 引脚功能说明如下:

3.MCP4725 的电气参数
以下是 MCP4725 的电气参数介绍:


其中,重要参数有以下几个:
- 工作电压(Operating Voltage, VDD):DAC 能够正常工作的电源电压范围,2.7V 至 5.5V。
- 供电电流(Supply Current, IDD):DAC 在正常工作模式下的电流消耗,典型值为 210 µA。
- 节能模式电流(Power-Down Current, IDDP):DAC 进入节能模式时的电流消耗,典型值为 0.06 µA。
- 积分非线性误差(Integral Non-Linearity Error, INL):DAC 输出与理想线性输出之间的误差,最大值为 ±14.5 LSB,表示 DAC 输出的线性度;如果 INL 误差较大,DAC 输出与期望值之间的偏差会增加。
- 差分非线性误差(Differential Non-Linearity Error, DNL):相邻两个数字值对应的模拟输出之间的误差,典型值为 ±0.2 LSB,较小的 DNL 表示 DAC 在不同的数字值之间的输出变化比较均匀。
- 增益误差(Gain Error, GE):DAC 输出电压的实际增益与理想增益之间的误差,典型值为-0.1%(最大值 2%),增益误差较大可能导致输出电压偏离预期值。
- 输出电压稳定时间(Output Voltage Settling Time, TS):DAC 输出电压从一个值稳定到另一个值所需的时间,典型值为 6 µs,较短的稳定时间表示 DAC 能够快速响应输入变化。
- 上电时间:DAC 从电源启动到完全准备好的时间,较短的上电时间意味着设备能够更快地开始正常工作,尤其在频繁重启的应用中非常重要
- 电阻输出阻抗(ROUT):DAC 输出端的内阻,正常模式下的较低输出阻抗(1 Ω)有助于稳定输出电压,节能模式下的高阻抗值影响 DAC 输出的负载能力。
- EEPROM 写入时间:写入 EEPROM 需要的时间。
- 数据保留时间:EEPROM 在不通电的情况下保持数据的时间。
4.MCP4725 的工作模式
设备有两种操作模式:正常模式和节能模式。通过编程配置寄存器中的电源关断位(PD1 和 PD0)来选择模式,用户也可以在非易失性 EEPROM 存储中编程这两个电源关断位。
- 正常模式:设备进行正常的数模转换
- 电源关断模式/节能模式:设备进入节能状态,关闭大部分内部电路;在节能模式下,所有内部电路(除 I2C 接口外)都被禁用,没有数据转换事件,也没有 VOUT 输出,输出级切换到已知的电阻负载,其值根据电源关断位的状态决定,通过设置节能模式也可以避免不必要的输出电压(例如,在启动或关机期间)
电源关断位的设置如下:

PD1 = 0,PD0 = 0,正常模式
PD1 = 0,PD0 = 1,1kΩ 电阻到地
PD1 = 1,PD0 = 0,100 kΩ 电阻到地
PD1 = 0,PD0 = 1 ,500 kΩ 电阻到地
通过选择合适的上拉电阻值,可以控制输出端在 Power-Down 模式下的漏电流。
5.MCP4725 的 EEPROM 存储
MCP4725 具有 14 位宽的 EEPROM 存储器,用于存储配置位(2 位)和 DAC 输入数据(12 位)。这些位可以通过 I2C 接口命令进行读写。EEPROM 写入操作在接收到 EEPROM 写入命令时启动(数据位 C2 = 0, C1 = 1, C0 = 1)。写入操作期间,状态位 RDY/BSY 保持低电平,直到写入操作完成。写入操作完成后,RDY/BSY 数据位变为高电平。写入期间,任何新的写入命令都会被忽略。

DAC 寄存器数据位

EEPROM 内存和出厂默认设置
6.MCP4725 的操作方式
MCP4725 通过 I2C 总线与主设备(MCU)通信,作为从设备工作,主设备可以通过 I2C 接口命令写入或读取 DAC 输入寄存器或 EEPROM。
MCP4725 的 I2C 设备地址包含四个固定位(1100 = 设备代码)和三个地址位(A2, A1, A0)。其中,A2 和 A1 位在制造过程中已经硬接线,默认编程为“00”,A0 位由 A0 引脚的逻辑状态决定。
A0 引脚可以连接到 VDD 或 VSS,也可以由数字逻辑电平驱动。如下图所示:

MCP4725 的 I2C 设备地址数据位
6.1 MCP4725 的写命令
我们可以通过 I2C 接口输入要输出的模拟电压编码,MCP4725 的输入编码为无符号二进制,输出电压范围从 0V 到 VDD。输出电压的计算公式如下:
$$
V_{OUT} = \frac{D}{2^{12}} \times V_{DD}
$$
其中,D 是 DAC 输入数据(0 到 4095)。

写命令用于将配置位和 DAC 输入码加载到 DAC 寄存器,或写入设备的 EEPROM;写命令类型由三个写命令类型位(C2, C1, C0)定义。

其中,有三种写命令类型:
- 快速模式写命令 (C2=0, C1=0, C0=X):快速写入命令用于更新 DAC 寄存器,设备的 EEPROM 不受此命令的影响,此命令会更新掉电模式选择位(PD1 和 PD0)和 DAC 寄存器中的 12 位 DAC 输入码,该设备在第 3 个字节的 ACK 脉冲的下降沿更新 VOUT:
- 我们可以在第一次发送三个字节的命令后发送停止位结束传输,完成一次数据发送
- 也可以在在第一次发送三个字节的命令后发送重复启动位,然后发送新的第二字节和第三字节的 DAC 输入字节和电源关断选择数据位,实现多次连续的更新操作

- 写DAC输入寄存器命令 (C2=0, C1=1, C0=0):此命令执行与快速模式命令相同的功能,但是将写命令类型位和电源关断选择位与 DAC 输入字节分开发送,D11-D0 位在第三和第四字节中表示 DAC 输入数据,第四字节中的最后 4 位(X, X, X, X)为无关位,设备在接收到最后一个字节(第 4 个字节)后执行主设备的写命令,主设备可以发送一个停止位来终止当前序列,或者发送一个重复启动位,进行数据更新
- 写入DAC输入寄存器和EEPROM命令 (C2=0, C1=1, C0=1):当设备接收到此命令时,它将配置和数据位加载到 DAC 寄存器中,且将数据写入 EEPROM;当设备在写 EEPROM 时,RDY/BSY 位变为低电平,并保持低电平直到 EEPROM 写入操作完成,通过读取命令可以监控 RDY/BSY 位的状态

6.2 MCP4725 的读命令
MCP4725 的读命令操作流程主要用于从 DAC 输出寄存器和 EEPROM 中读取数据:当主设备发送一个包含 R/W 位为“高电平”的命令时(即 R/W = 1),MCP4725 将进入读取模式,并在 SDA 数据线上输出其当前的 DAC 寄存器和 EEPROM 数据。

7.MCP4725 的 I2C 广播呼叫和高速模式
7.1 广播呼叫
广播呼叫(General Call) 是 I2C 协议中的一种特殊通信方式,它允许主设备向总线上所有的从设备发送一个通用地址(General Call Address)进行广播通信,而不是单独寻址一个特定的从设备。MCP4725 作为从设备支持这种广播呼叫,并对一些特定的命令做出响应。
广播呼叫地址为 0x00,即地址字节的第一字节为全 0,广播呼叫的功能由第二字节的内容决定。

广播呼叫数据帧格式
MCP4725 支持以下两种广播呼叫操作:
- 广泛复位 (General Call Reset):第二字节为
00000110(06h),当 MCP4725 接收到此命令后,会立即中止当前的转换操作,并执行一个内部复位操作,该复位类似于电源复位(POR)。复位后,MCP4725 会将 EEPROM 中的内容重新加载到 DAC 寄存器中,恢复到上电初始状态。 - 广泛唤醒 (General Call Wake-up):第二字节为
00001001(09h),当 MCP4725 接收到此命令后,会将 DAC 寄存器中的电源关断数据位(PD1, PD2)复位为正常操作模式(PD1, PD2 = 0, 0),这种操作不会影响 EEPROM 中的电源关断数据位设置。
在一个 I2C 总线上可能连接多个 MCP4725 设备,主设备可以通过发送一个广播命令,使所有设备同步复位或唤醒,从而简化系统的初始化过程。
7.2 高速模式
高速模式(HS Mode) 是 I2C 协议中支持的三种操作模式之一,它允许更快的数据传输速率,以应对需要高吞吐量的应用场景。HS Mode 支持最高 3.4 Mbit/s 的数据传输速率,相比于标准模式(100 kbit/s)和快速模式(400 kbit/s),大幅提高了通信效率。
I2C 协议要求在进入高速模式前,必须通过发送一个特殊的地址字节 00001XXX 激活 HS Mode,其中 XXX 是高速主设备(HS Master)的唯一代码。MCP4725 接收到此地址字节后不会应答(即不发送 ACK),但会切换到 HS Mode。
I2C 高速模式常用于需要高数据传输速率的应用或多设备通信中,减少总线占用时间,提升系统的响应速度。
8.MCP4725 的典型应用
8.1 MCP4725 简单电压输出
此时,Vout 为模拟电压输出,A0 引脚可连接 GND、VDD 或单片机的数字引脚来设置 I2C 地址,I2C 通信接口上连接两个上拉电阻,通常在 1kΩ 到 10kΩ 之间。
VDD 输入电压上通常连接两个用于滤波的电容,常见为一个 10µF 的钽电容和一个 0.1µF 的陶瓷电容,同时在 PCB 布线时这些电容应尽量靠近 VDD 引脚放置(距离在 4mm 以内)。
MCP4725 简单电压输出的原理图如下:

8.2 MCP4725 减少输出步长
当 VDD 为 3.3V 时,MCP4725 的输出电压步长为 3.3V / 4096 ≈ 0.805 mV。某些应用可能需要极小的 DAC 输出电压步长(如 200 µV),这可以通过在 DAC 输出端使用电压分压器实现。电压分压器会缩小 DAC 的输出步长,同时减少噪声的影响。
以下电路用于光传感器信号的精确检测和输出电压的微调,该电路用于检测光强度是否达到了设定的阈值:

其中,R1 和 R2 构成分压器,用于将 DAC 的输出电压 VOUT 调整为较小的电压 VTRIP,VTRIP 计算公式如下:
$$
V TRIP = V OUT × (R2 / (R1 + R2))
$$
比较器另一端连接了感测电阻 (RSENSE)和光敏二极管,该电阻用于感测通过光敏二极管的电流,在光照条件下,光敏二极管产生电流,并在 RSENSE 上产生电压降;比较器用于判断 VTRIP 和 RSENSE 上的电压差异,进而产生相应的输出信号。比较器可以用来检测光的强度或者电流是否超出设定的门限值。
8.3 MCP4725 构建“窗口”DAC
对于需要在设定点或阈值电压附近具有非常高分辨率的传感器应用,可以通过使用带有上拉和下拉电阻的分压器网络构建“窗口”DAC,这样可以在缩小输出电压范围的同时显著提高步长分辨率。
以下电路用于检测电路中的电流是否超出安全范围:

其中,MCP4725 根据输入的数字代码 Dn 生成的模拟电压 VOUT 为:
$$
V_{OUT} = V_{DD} \times \frac{Dn}{2^{12}}
$$
R1、R2、R3 组成了一个分压电路,将 VOUT 转换为比较器的输入电压 VTRIP。为了分析方便,可以将电路简化为 Thevenin 等效电路,其等效电阻和电压计算公式如下:
$$
R_{23} = \frac{R_2 R_3}{R_2 + R_3}
$$
$$
V_{23} = \frac{(V_{CC+} \times R_2) + (V_{CC-} \times R_3)}{R_2 + R_3}
$$
最终输入到比较器的电压 VTRIP 为:
$$
V_{TRIP} = \frac{V_{OUT} \times R_{23} + V_{23} \times R_1}{R_2 + R_{23}}
$$
电流检测电阻 Rsense 用于测量流经负载的电流,通过电流引起的电压降与 VTRIP 进行比较,以判断电流是否达到设定的阈值。
8.4 MCP4725 的双极性电压输出
通过使用外部运算放大器,可以实现 MCP4725 的双极性操作。这种配置允许用户通过选择合适的电阻值来实现几乎任何所需的输出电压范围、功率和噪声性能。运放的增益由电阻 R1 和 R2 决定,R3 和 R4 则用于调整 DAC 的输出偏移。

其中,运算放大器电路用于缓冲和放大 MCP4725 的输出信号,R1 和 R2 构成了一个可调增益电路,允许用户选择合适的增益,而 R3 和 R4 则用于将 DAC 的输出电压移至所需的偏置电平。
$$
V_{IN+} = \frac{V_{OUT}R_4}{R_3 + R_4}
$$
$$
V_O = V_{IN+} \left(1 + \frac{R_2}{R_1}\right) - V_{DD}\left(\frac{R_2}{R_1}\right)
$$
如果需要更高的偏置电压,可以将 R4 连接到 VDD 而不是 VSS,同时使用上拉电阻取代 R4。
8.5 MCP4725 的电流输出
通过添加一个电压跟随器和传感器电阻,可以将 DAC 输出的电压转换为数字选择的电流源。这种电路通常用于驱动 LED、激光器或其他需要稳定电流供给的负载。通过编程 DAC 输出的电压,能够精确控制通过负载的电流。

其中,运算放大器在不同电压下供给三极管不同的基极电流,从而调节负载上通过的电流,通过测量 Rsense 上的电压降,运算放大器调节其输出,以保证电流保持恒定。

MCP4725 是 Microchip 公司生产的一款单通道 12 位数字-模拟转换器 (DAC),具有非易失性 EEPROM 存储功能,它广泛用于需要精确模拟信号输出的应用中,如音频信号生成、传感器信号调节和电压基准调节。
浙公网安备 33010602011771号