加速度计ADXL362 Pmod控制器(VHDL)

逻辑主页

代码下载

加速度计 ADXL362 Pmod 控制器 ( 顶层文件 ):

版本1.1: pmod_accelerometer_adxl362.vhd (14.2 KB)
修复了复位后间歇性出现的问题

版本1.0: pmod_accelerometer_adxl362_v1_0.vhd (14.1 KB)
首次公开发布

SPI 主控制器(必须同时包含在项目中):

spi_master.vhd (8.8 KB)

特点

  • 用于简化Digilent PmodACL2(适配ADI ADXL362加速度计的Pmod模块)接口的VHDL源代码
  • 持续通过3条并行总线输出最新的三轴加速度数据
  • 处理SPI通信以配置并获取加速度计Pmod的数据
  • 可配置的加速度计数据量程
  • 可配置的加速度计数据速率
  • 可配置系统时钟频率

介绍

该组件详细描述了与Digilent加速度计ADXL362 Pmod的接口处理,如图1所示。图2展示了该加速度计Pmod控制器集成到系统中的典型实例。如图所示,加速度计Pmod控制器连接Pmod端口并执行事务以配置加速度计并采集数据。数据持续更新并通过3条简易并行总线(对应三个轴向)输出,可连接至用户逻辑或FPGA输出端口。

1. Digilent加速度计ADXL362 Pmod模块

2. 实现示例

操作原理

加速度计Pmod控制器主要由状态机和SPI主控组件构成。

状态机

该设计采用图 3 所示的状态机来实现其操作。上电后组件立即进入启动状态,初始化其他状态所需的参数。随后进入暂停状态。此处,它在SPI事务之间暂停200纳秒。随后选择与加速度计执行的3个事务中的哪一个。前2个事务由配置状态执行(设置加速度计的数据范围和数据速率,然后启用测量)。每完成一个事务即返回暂停状态。当两个配置事务都完成后,暂停状态会重复选择第3个事务,进入read_data 状态执行该事务。该状态读取三轴加速度数据后,转入output_result 状态。output_result 状态将数据写入acceleration_xacceleration_yacceleration_z 输出总线,然后返回到pause 状态。任何时候重置组件都会使其返回到start 状态。

3. 状态图

SPI 主控制器

configureread_data 状态期间,状态机控制一个SPI主控制器组件与Pmod上的加速度计通信。SPI主控制器的文档可在此处查阅。

该设计以CPOL=‘0’和CPHA=‘0’模式实现SPI主机。根据系统时钟频率(由clk_freq 通用参数指定,见下文)设置clk_div 参数,以ADXL362数据手册中规定的最大SPI频率(即8MHz)与加速度计通信。

本设计还利用SPI主控制器的连续模式特性来执行不同长度的传输事务。配置状态下的传输长度为24位,而read_data 状态下的传输由64位组成。

配置加速度计 Pmod 控制器

通过设置实体中的通用参数来配置加速度计Pmod控制器。

系统时钟频率

必须将通用参数clk_freq 设置为提供给加速度计Pmod控制器clk 端口的系统时钟频率。

数据速率

通用参数data_rate 定义了ADXL362加速度计的采样频率。该参数为对应目标数据速率的速率代码,定义见ADXL362数据手册表17。带宽和功耗随数据速率的提高而增加。表1描述了选项并列出了速率代码。默认速率代码"011"将加速度计配置为100Hz输出数据速率。

1. 数据速率选项

数据范围

通用参数data_range 定义加速度计测量的加速度值范围。该参数由配置加速度计数据格式寄存器的位组成,定义见ADXL362数据手册表17。灵敏度随量程变化。表2描述了选项并列出了参数设置。默认设置为"00",将加速度计配置为±2g输出数据范围。

2. 数据范围选项

端口描述

表3描述了加速度计Pmod控制器的端口。

3. 端口描述

连接方式

该Pmod配备12针连接器。表4提供了该连接器的引脚定义。需将加速度计Pmod控制器的端口分配至FPGA引脚,这些引脚已按列表路由至连接器。

4. 加速度计Pmod引脚定义及与加速度计Pmod控制器的连接

复位

reset_n 输入端口必须保持逻辑高电平,加速度计Pmod控制器组件才能运行。该端口的低电平将异步复位组件。复位期间,组件将中止与Pmod的当前事务,并清除acceleration_xacceleration_yacceleration_z 数据输出。退出复位状态后,加速度Pmod控制器将重启操作。它会重新配置加速度计,随后恢复采集并输出加速度数据。

结论

这款加速度计Pmod控制器是可编程逻辑元件,可与Digilent的PmodACL2(加速度计ADXL362 Pmod)进行接口连接。它负责处理与该Pmod的所有通信,包括配置Pmod加速度计的数据范围与速率、激活测量,并通过3个并行输出总线(每个轴向对应一个)持续提供更新的加速度数据流。

附加信息

Analog Devices ADXL362 datasheet (11.1 MB)

相关主题

SPI主控制器(VHDL)