电容传感AD7156 Pmod控制器(VHDL)

逻辑主页

代码下载

电容传感Pmod控制器(顶层文件):
pmod_cdc_ad7156.vhd (15.6 KB)

I2C主控制器(必须同时包含在项目中):
i2c_master.vhd (14.1 KB)

特点

  • 用于 Digilent 公司 Pmod CDC1(适用于亚德诺半导体 AD7156 电容-数字转换器的 Pmod 模块)的简化接口 VHDL 源代码
  • 持续通过并行接口输出各通道最新电容数据
  • 处理 I2C 通信以及从电容转换器 Pmod 模块检索所有数据
  • 支持用户可选配置AD7156电容转换器参数
  • 可配置系统时钟频率

介绍

这详细介绍了一个 VHDL 组件,该组件用于处理与 Digilent 电容传感 AD7156 Pmod 的接口连接,如图 1 所示。图 2 展示了这款电容传感 Pmod 控制器集成到系统中的典型示例。如图所示,该电容传感Pmod控制器连接Pmod端口,执行配置电容转换器及采集数据的通信事务。数据持续更新并通过简单并行接口输出,可连接至用户逻辑或FPGA输出端口。

1 Digilent电容传感AD7156 Pmod模块

2 实现示例

背景

ADI公司AD7156是一款双通道电容数字转换器,具有固定阈值模式和带环境自适应补偿的模式。

操作原理

电容传感 Pmod 控制器主要由一个状态机和一个 I2C 主组件构成。

状态机

该设计采用图 3 所示的状态机来实现其操作。启动时,该组件立即进入初始( start 状态。该状态持续100ms以确保Pmod完成上电。随后进入配置( configure 状态,根据用户可调参数设置电容转换器的工作模式、阈值、灵敏度等。暂停( pause 状态会在I2C事务间插入AD7156数据手册要求的1.3微秒"总线空闲时间"。在随后的read_data 状态中,,它会从 Pmod 的电容转换器采集最新的电容数据。最终在output_result 状态输出所有数据。随后在 暂停( pause , read_dataoutput_result 状态间循环切换,以确保电容数据定期更新。尽管未在图中显示,但任何时候重置该组件都会使其返回到初始( start 状态。

3 状态图

I2C 主控制器

配置( configure read_data 状态期间,状态机控制一个 I2C 主组件与 Pmod 上的电容转换器进行通信。I2C主控的文档可在此处查阅。

配置电容传感 Pmod 控制器

通过设置实体中的泛型参数来配置电容传感Pmod控制器。

系统时钟频率

通用参数 sys_clk_freq 必须设置为提供给电容传感 Pmod控制器clk 端口的系统时钟频率。

AD7156 配置

该控制器包含七个对应AD7156内部寄存器的泛型参数,如表1所列。这些泛型参数值将在配置( configure 状态被写入对应寄存器。代码中的默认值与工厂预设寄存器值相同。AD7156数据手册(527.3 KB)详细描述了每个寄存器位,用户可按需配置转换器。

1. 用于配置的AD7156寄存器映射通用参数

端口描述

表 2 描述了电容传感 Pmod 控制器的端口。

2. 端口描述

连接方式

该Pmod配备8针连接器。表3提供了该连接器的引脚定义。需将电容传感 Pmod控制器的端口分配至FPGA引脚,这些引脚已按清单路由至该连接器。Pmod板上J1连接器的两排引脚已内部连通,因此只需将单侧连接至FPGA。

3. 电容式传感Pmod引脚定义及与电容式传感Pmod控制器的连接

复位

为使 电容传感 Pmod 控制器组件运行,reset_n 输入端口必须为逻辑高电平。该端口的低电平将异步复位组件。复位期间,组件将中止与Pmod的当前事务,并清除cdc_ch1_datacdc_ch2_datacdc_ch1_avgcdc_ch2_avg 数据输出以及 i2c_ack_err 输出。复位释放后,电容式传感Pmod控制器将重新开始运行。它会重新配置电容转换器,并继续收集和输出电容数据。

结论

本电容传感 AD7156 Pmod控制器是可编程逻辑组件,用于与 Digilent 的 Pmod CDC1(电容传感 AD7156 Pmod)进行接口连接。该控制器负责与Pmod的所有通信,用于配置Pmod的电容转换器,并通过并行输出持续提供更新的电容数据流。

附加信息

AD7156数据手册(527.3 KB)

相关主题

I2C主控制器(VHDL)