MCP4725是带EEPROM的12位数模转换器。

使用2线I2C接口,可在标准、快速或高速模式下工作

引脚

引脚 说明
VOUT

模拟输出电压,范围为VSS~VDD

VSS 参考地
VDD 电源电压
SDA、SCL I2C相关引脚,需要接上拉电阻
A0

I2C地址选择引脚

工作模式

PD1 PD0 功能
0 0 正常模式
0 1 1kΩ电阻接地
1 0 100kΩ电阻接地
1 1 500kΩ电阻接地
  • 正常模式:器件进行正常的数模转换
  • 关断模式:VOUT关闭,但I2C通信可正常进行

写命令

该芯片没有特定的寄存器地址,可以用HAL_I2C_Master系列函数

地址字节

1 1 0 0 A2 A1 A0 0

A2、A1在芯片出厂前设定,默认为0

A0由芯片引脚决定

模式与数据

C2、C1、C0 定义了写入的模式

C2 C1 C0 命令名 功能
0 0 x 快速模式 更改DAC寄存器,EEPROM不受影响
0 1 0 写DAC寄存器 将配置位和数据代码装载到DAC寄存器
0 1 1 写DAC寄存器和EEPROM 将配置位和数据代码装载到DAC寄存器并写EEPROM

当定义为快速模式时,传入地址字节后

发送的第二个字节为:

0 0 PD1 PD0 D11

D10

D9

D8

发送的第三个字节为:

D7 D6 D5 D4 D3 D2 D1 D0

定义为其他模式的时候,传入地址字节后

发送的第二个字节为:

C2 C1 C0 X X PD1 PD0 x

发送的第三个字节为:

D11 D10 D9 D8 D7 D6 D5 D4

发送的第四个字节为:

D3 D2 D1 D0 X X X X

写命令结束后即更新VOUT的值

读命令

地址字节

1 1 0 0 A2 A1 A0 1

向主机发送从机地址后,

接收的第二个字节指示当前设备的工作状态:

RDY/BSY PQR X X X PD1 PD0 X
  • RDY/BSY:EEPROM写状态指示位,1:完成,0:未完成

接收的第三、四个字节为DAC寄存器数据

D11 D10 D9 D8 D7 D6 D5 D4
D3 D2 D1 D0 X X X X

接收的第五、六个字节为EEPROM数据

X PD1 PD0 X D11 D10 D9 D8
D7 D6 D5 D4 D3 D2 D1 D0

    DAC数值计算

    12位DAC对应的数值为0至4095

    最低有效位LSB计算公式为:

    LSB=\frac{V_{REF}}{2^{12}}

    V_REF参考电压取VDD的值

    实际输出电压 = DAC值 * LSB

    Logo

    智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

    更多推荐