MCP4725 数据手册解读
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计算公式为:
V_REF参考电压取VDD的值
实际输出电压 = DAC值 * LSB