从机械到数字:DS3502 如何解决传统电位器的精度、漂移与自动化痛点

前面我们说到,AD9833 芯片输出正弦波和三角波时波形幅度为 38mV~650mV,当我们需要波形幅度更大的正弦波和三角波时,需要借助运算放大器来增强幅度,常见的运算放大电路有同相放大电路和反相放大电路两种,如下图所示:

1.PNG

其中,同相放大电路放大倍数为

$$
A_v = 1 + \frac{R_f}{R_{\text{in}}}
$$

,反相放大电路倍数为

$$
A_v = -\frac{R_f}{R_{\text{in}}}
$$

,其中$$R_f$$是反馈电阻,$$R_{\text{in}}$$是输入电阻。同相放大电路的输出信号与输入信号同相,输入阻抗较高而输出阻抗较低,可以直接与高阻抗信号源连接;反相放大电路的输出信号与输入信号反相,输入阻抗由输入电阻决定,输出阻抗较低,适合用于低阻抗负载。如果我们想要调节运算放大电路的放大倍数,通常可以将反馈电阻(

$$
R_f
$$

)替换成一个旋钮电位器(可调电阻),这种方式简单直观,能够实现增益的调节:

2.PNG

但是通过旋钮电位器调节放大电路倍数也有一些缺点:

  • ​机械振动对调整的影响:​旋钮电位器是机械式元件,容易受到机械振动的影响,导致增益不稳定或漂移
  • ​定位精度较低:​旋钮电位器的增益调整精度有限,尤其是在高精度的信号调理电路中需要微小调整时,旋钮的标记不够精确,容易出现误差
  • ​不易自动化调节:​旋钮电位器通常需要人工手动调整,不适合自动化控制或程控调整
  • ​长时间使用后的磨损:​旋钮电位器是机械元件,随着时间的推移和长时间使用,可能会因为摩擦、磨损导致性能下降,调整不再顺畅,甚至失效

此时我们可以使用数字电位器代替旋钮电位器来改变信号幅度,相比于运算放大器上的旋钮电位器,数字电位器具有如下优点:

  • ​定位精度高:​数字电位器使用数字信号来精确控制电阻的调整,这意味着调节的每一步都能准确到达预定的值,具有非常高的精度。
  • ​不受机械振动的影响:​数字电位器没有机械部件,它依赖于数字信号进行控制,因此不受外界机械振动、冲击或长时间使用引起的磨损影响,稳定性更好。
  • ​程控​调节,适合自动化:数字电位器可以通过微控制器、计算机等设备进行控制,因此非常适合自动化系统、半自动化调节、远程控制等场景。

除此之外,我们也可以利用数字电位器来模拟 DAC 的功能,在低频信号生成电路中,数字电位器可用于调整波形幅度从而生成简单的模拟信号。

在以下内容中,我们讨论两种通信接口的数字电位器芯片:

  • ​MCP41010:​采用 SPI 接口,需 3 根通信线(SCK、MOSI、CS),该数字电位器芯片适合与 AD9833 芯片配合使用实现输出电压幅度调节,其选用原因在于:
    • AD9833 本身通过 SPI 配置(AD9833 的默认接口为 SPI),MCP41010 可与 AD9833 复用同一 SPI 总线,仅需额外分配一个片选(CS)引脚,节省 GPIO 资源。
    • MCP41010 的 SPI 通信接口速率高(典型值 10MHz),可快速更新电阻值,响应速度更快。
    • MCP41010 是 8 位分辨率(256 级)的数字电位器,调节步长更细,适合需要高精度幅度控制的场景。
  • ​DS3502:​采用 I2C 接口,需 2 根通信线(SDA、SCL),该数字电位器芯片适合需要连接多个 I2C 设备、并且对分辨率要求不高的场景使用:
    • DS3502 芯片为 7 位分辨率,可满足基本电压/电流调节需求,例如 LED 照明调光等。
    • DS3502 通过 I2C 地址(支持 4 个可选地址)共享总线,同时 I2C 总线在空闲时功耗极低,适合于需多个电位器协同工作(如音频多通道均衡器)或便携式设备中使用。

大家可以根据自己具体应用场景进行选择。

1.DS3502 数字电位器芯片

1.1 数字电位器 DS3502 简介

DS3502 是一款 7 位数字电位器,我们可以使用微控制器通过 I2C 接口与其进行通信调节其阻值,DS3502 提供 128 个电阻值的调节,该器件支持多种电源电压,通常在 2.7V 至 5.5V 之间工作。

3.PNG

DS3502 能够在高达 400kHz 的速度下工作,最大电阻值为 10kΩ,通过调节两个地址设定引脚,同一总线上最多支持四个 DS3502 数字电位器,并且它还具有 EEPROM 功能,可在断电后保存设置的 7 位电阻值。

4.PNG

DS3502 引脚及功能如下所示:

5.png

1.2 DS3502 芯片内部结构和工作原理

DS3502 芯片内部结构如下所示,其核心单元包括 I2C 通信接口、控制寄存器、滑动寄存器和电阻网络:

6.png

DS3502 的滑动位置由滑动寄存器(Wiper Register,WR)中的值控制,在上电时,滑动位置的初始值由初始值寄存器(Initial Value Register,IVR)编程设置;上电后,IVR 寄存器中的数据会被加载到 WR 寄存器中,从而设置电位器滑动端(RW)的初始位置。

7.png

控制寄存器(Control Register,CR)位于地址 02h,包含 WR/IVR 地址模式位(MODE 位),MODE 位决定了如何通过 I2C 写入 WR 和 IVR 数据寄存器:

  • MODE = 0​:I2C 写入地址 00h 时,将数据写入 WR 和 IVR(CR = 00h);I2C 从地址 00h 读取时,返回 WR 的内容,该模式由于涉及到 EEPROM 寄存器写入因此速度较慢
  • MODE = 1​:I2C 写入地址 00h 时,仅写入 WR(CR = 80h),I2C 从地址 00h 读取时,仍返回 WR 的内容,该模式允许快速写入 SRAM,而无需等待与 EEPROM 寄存器的写入延迟

EEPROM 和 SRAM 中的数据在切换 MODE 位时保持不变,上电时,CR 控制寄存器默认值为 00h。

DS3502 的电位器由 127 个串联电阻构成,连接在 RH 和 RL 引脚之间,通过改变滑动寄存器(Wiper Register,WR)中的值(十进制值,0 到 127 之间),DS3502 内部的解码器会控制特定的 MOS 管导通或关断,MOS 管在电阻网络中的作用是作为开关,用于选择滑动端(RW)与某个电阻节点相连:

8.png

  • MOS 管导通​:当控制信号使得某个 MOS 管导通时,该 MOS 管对应的电阻段被加入到电路中
  • MOS 管关断​:当 MOS 管关断时,对应的节点与滑动端 RW 断开,电流无法通过该路径,RW 与该电阻段无关

利用这个原理,我们可以通过调节 DS3502 的电位器滑动端电阻值来实现不同电压输出,若 RH、RL 和 RW 以分压器配置连接,RW 上的电压可以使用以下公式计算:

$$
V_{RW} = V_{RL} + \frac{(V_{RH} - V_{RL}) \times WR}{127}
$$

其中,

$$
WR
$$

是滑动位置,以十进制表示(0-127),$$V_{RL}$$是 RL 端的电压,$$V_{RH}$$是 RH 端的电压。这里,在 DS3502 芯片数据手册中电气参数中,我们可以看到滑动端调整到新的电阻值后,需要 1μs(即 Wiper 反应时间 tWRS)才能稳定:

9.png

因此,理论上当 DS3502 作为可变分压器调整输出电压时最高工作频率为 1 MHz(1/tWRS)。

1.3 DS3502 芯片的通信协议

DS3502 芯片的 I2C 通信地址由 A1、A0 两个引脚决定:

10.png

使用微控制器向 DS3502 芯片写入单字节数据时,需要写入设备地址(下图中 A0 和 AI 都与 GND 进行连接)、寄存器地址和写入数据,如下所示:

11.png

例如,写入 WR 寄存器时,通信流程如下:

12.png

当控制 CR 寄存器 MODE 位为 0 时,由于涉及到 EEPROM 寄存器写入需要一定时间,此时主设备可以通过重复寻址 DS3502 查看其是否响应来判断 DS3502 是否完成 EEPROM 寄存器的写入;或者直接等待 EEPROM 最大写入时间(tW),该时间在 DS3502 数据手册的电气参数章节可以找到,为 20ms:

13.png

使用微控制器向 DS3502 芯片读取单字节数据时,以读取 CR 控制寄存器的值为例:

14.png

  1. 首先发送从设备地址字节,设置 R/W 位为 0,进行一次假写操作,从机发送 ACK 响应信号
  2. 写入想要读取的内存地址 02h,从机发送 ACK 响应信号
  3. 生成重复的 START 条件,以保持通信
  4. 再次写入从设备地址,设置 R/W 位为 1,表示要读取数据
  5. 从机发送对应寄存器的单字节数据,主设备读取数据字节,使用 NACK 信号指示传输结束,并生成 STOP 条件

当我们使用 DS3502 芯片时,需要注意在电源引脚(VCC)和滑动电压引脚(V+)使用 0.01µF 和 0.1µF 的电容进行去耦,并且对 SDA 和 SCL 引脚使用 4.7kΩ 的上拉电阻;并且如果 RH 的电压高于 VCC,V+ 必须与 RH 保持相同或更高的电压,即需要将 V+ 与 RH 进行连接

同时,需要注意的是,滑动电压引脚(V+)的电压范围是 +4.5V 到 15.5V:

15.png

posted @ 2026-09-03 12:26  FreakStudio  阅读(18)  评论(0)    收藏  举报