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

逻辑主页

代码下载

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

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

版本1.0: pmod_accelerometer_adxl345_v1_0.vhd (14.0 KB)
首次公开发布

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

spi_master.vhd (8.8 KB)

特点

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

介绍

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

1. Digilent ADXL345加速度计Pmod模块

2. 实现示例

操作原理

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

状态机

该设计采用图 3 所示的状态机来实现其操作。上电后组件立即进入启动状态,初始化其他状态所需的参数。随后进入暂停状态。在此状态下暂停200ns,确保满足SPI事务间最小时间间隔(ADXL345数据手册规定)。接着选择与加速度计执行的4个事务之一。前3个事务由配置状态完成(设置加速度计数据量程、数据速率,最后启用测量功能)。每完成一个事务即返回暂停状态。当3个配置事务全部完成后,暂停状态循环选择第4个事务,进入read_data 状态执行。该状态读取三轴加速度数据后,转入output_result 状态。output_result 状态将数据写入acceleration_xacceleration_yacceleration_z 输出总线,然后返回到pause 状态。任何时候重置组件都会使其返回到start 状态。

3. 状态图

SPI 主控制器

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

本设计以CPOL='1’和CPHA='1’模式实现SPI主控制器。它根据系统时钟频率(通过clk_freq 通用参数指定,见下文)设置clk_div 参数,以ADXL345数据手册中指定的最大SPI频率(即5MHz)与加速度计通信。

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

配置加速度计 Pmod 控制器

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

系统时钟频率

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

数据速率

通用参数data_rate 定义ADXL345加速度计进行测量的频率。该参数本身是对应于所需数据速率的速率代码,定义在ADXL345数据手册的表7中。带宽和功耗随数据速率的提高而增加。表1描述了选项并列出了速率代码。默认速率代码为"0100",将加速度计配置为1.56Hz输出数据速率。

1. 数据速率选项

数据范围

通用参数data_range 定义加速度计测量的加速度值范围。该参数本身由用于配置加速度计数据格式寄存器的位组成,定义在ADXL345数据手册的表21中。增大范围还会提高输出分辨率,以保持4mg/LSB 的比例因子。表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的PmodACL(加速度计ADXL345 Pmod)。它负责处理与该Pmod的所有通信,包括配置Pmod加速度计的数据范围与速率、激活测量,并通过3个并行输出总线(每个轴向对应一个)持续提供更新的加速度数据流。

附加信息

Analog Devices ADXL345 datasheet (839.9 KB)

相关主题

SPI主控制器(VHDL)