使用 I2C 连接 MCP4651-502E 数字电位器

Interfacing MCP4651-502E digital potentiometer using I2C

我正在使用两个 MCP4651 双数字电位器,我想通过 I2C 从 Arduino Uno 控制它们。这是 MCP4651 的数据表,因此您无需查找:http://www.farnell.com/datasheets/1789212.pdf

我也会附上PCB原理图,但是我的名气不够

我正在尝试将我的值写入数据表第 49 页上的抽头 1 寄存器。但是我尝试的每个命令都没有得到确认。我还附上了示波器的截图。

这是我的代码:

#include <Wire.h>

void setup()
{
  Wire.begin();
}

void loop()
{
  Wire.beginTransmission(40);
  Wire.write(0b10010000);
  Wire.write(0b10000000);
  Wire.endTransmission(40);
  delayMicroseconds(500);
}

I2C 协议显然有效,否则我不会得到确认地址,我尝试了两个电位器,两个雨刮器,写入,递增和递减。没有一个成功。如果有人知道我做错了什么,我将不胜感激。

数据表的第 49 页详细介绍了一般调用的详细信息。

广播呼叫命令详见第48页。这些命令在您使用广播呼叫地址(0)同时与所有设备通信时使用。

您正在尝试与总线上的单个设备通信,因此您应该注意从第 51 页开始详细说明的命令,尤其是 Table7-1、7-2 和图 7- 1.