数字电位器AD5160 Pmod控制器(VHDL)

逻辑主页

下载

DPOT AD5160 Pmod控制器(顶层文件): pmod_dpot_ad5160.vhd (7.4 KB)

SPI主控制器(需同时加入项目): spi_master.vhd (8.8 KB)

特性

  • 用于Digilent Pmod DPOT模块(适配ADI AD5160数字电位器)的流线型接口VHDL源码
  • 通过简易并行接口接收数字电位器设置数据
  • 处理与DPOT Pmod模块的所有串行通信
  • 可配置系统时钟频率

概述

本文详述了用于连接Digilent DPOT AD5160 Pmod模块的VHDL组件,如图1所示。图2展示了该数字电位器Pmod控制器在系统中的典型集成方案。如图所示,DPOT Pmod控制器连接Pmod接口并执行设置数字电位器阻值的操作。数据通过简易并行接口锁存,可连接至用户逻辑或FPGA输入端口。

1. Digilent DPOT Pmod模块

2. 应用实例

背景知识

DPOT Pmod模块采用AD5160系列器件,提供8位分辨率的10kΩ数字电位器。电阻值 RWBRWA 通过SPI接口设置。最小阻值由滑动触点电阻RW 决定,典型值为60Ω。(但实测样品为89Ω)该电位器具有256个触点,滑动端可在A、B端点间切换,因此电阻值以每比特约39Ω的增量进行设置。公式1和公式2分别定义了电阻 RWARWB

工作原理

DPOT Pmod控制器采用简单状态机及技术论坛提供的SPI主控组件来设置数字电位器的滑动端位置。

状态机

该设计使用图3所示的状态机实现其操作。组件启动后立即进入初始状( start 态。在此状态保持100微秒,确保Pmod模块有充足的上电时间。随后进入暂停( pause 状态。在此状态下,确保与DPOT模块的两次操作间隔至少100纳秒(AD5160数据手册规定最小间隔为40纳秒)。接着解除忙( busy 信号,表明DPOT Pmod控制器已准备好进行新操作,并进入就绪( ready 状态。在就绪状态等待,当检测到dpot_tx_ena 使能信号有效时,锁存新操作数据并进入发送数据( send_data 状态。在此状态下执行与Pmod模块的操作,完成后返回暂停( pause )状态。虽未图示,但任何时候重置组件都会使其返回初始( start 状态。

3 状态图

SPI 主控

发送数据( send_data 状态期间,状态机控制SPI主控组件与Pmod上的数字电位器通信。SPI主控组件文档详见此处

SPI主控配置为CPOL=0且CPHA=0,以满足AD5160数字电位器的要求。

时钟配置

通过为ENTITY中定义的GENERIC参数clk_freqspi_clk_div 赋值,可配置该DPOT Pmod控制器的时钟。clk_freq 参数必须设置为clk 输入端口提供的系统时钟频率(单位MHz)。公式3定义了spi_clk_div 值的计算方法。

05_00

其中fclk 表示所提供系统时钟的频率(单位MHz)。

例如,代码中指定的默认值为 spi_clk_div = 1。这是因为该组件是在使用50 MHz系统时钟的情况下开发和测试的。50/50 = 1.任何 clk_freq ≤ 50 MHz 都会导致默认的 spi_clk_div = 1。

公式4定义了由此产生的串行时钟频率 fsclk

此计算确保串行时钟低于数字电位器规定的最大通信频率25 MHz。

事务处理

DPOT Pmod控制器通过其busy 输出指示其可用性。当busy 信号为‘0’时,控制器准备接受发送到DPOT Pmod的事务。置位dpot_tx_ena 输入会锁存dpot_data 的当前值。一旦锁存,控制器(Controller)会置位busy信号,表示正在进行事务处理,因此当前不可用。当事务完成时,控制器再次取消busy 信号,表示已准备好接受另一个请求。

事务处理示例

图4展示了一个事务处理示例。busy 信号为‘0’。用户逻辑随后置位dpot_tx_ena 信号,将dpot_data 总线上的数据发送到DAC。控制器置位busy 信号,表示请求已锁存,此时用户逻辑可以取消dpot_tx_ena 信号。控制器向DPOT Pmod发送串行通信,然后在事务和100ns暂停完成后取消busy 信号。

如果dpot_tx_ena 信号未被取消,一旦控制器可用,新的事务请求会立即被锁存并开始。

4. 事务处理示例

端口描述

表1描述了DPOT Pmod控制器的端口。

1. 端口描述

连接

该Pmod模块配备一个6针连接器J1。表2提供了该连接器的引脚定义。需将DPOT Pmod控制器的端口分配至FPGA引脚,这些引脚已按所列方式路由至该连接器。

2. DPOT Pmod引脚定义及与DPOT Pmod控制器的连接

复位

reset_n 输入端口必须保持逻辑高电平,DPOT Pmod控制器组件才能运行。该端口低电平时将异步复位组件。复位期间,组件会中止与DPOT Pmod的当前事务,并将busy 输出置高表示不可用。复位释放后,DPOT Pmod控制器将重新开始运行。

结论

该DPOT Pmod控制器是可编程逻辑组件,用于连接Digilent的DPOT AD5160 Pmod模块。它简化了与数字电位器的数据交互以设置其电阻值。

相关主题

SPI主控制器(VHDL)