DE10-Lite加速度计使用教程

1. 概述

DE10-Lite实验板上有一片5轴加速度计芯片ADXL345(通常称为G-sensor)。它可以用来测量板子的倾斜角度。本文讲述如何以50次/秒的速度读取其X轴和Y轴的数据。

在使用SystemBuilder建立工程时,勾选Accelerometer项。

这个接口有一点复杂,下面的*.zip文件里提供了代码和说明文件。

把以下文件复制到你的工程的hdl/子目录:

hdl/accel.v

 
  
hdl/spi_control.v

 
  
hdl/spi_serdes.v

   压缩包里的test/子目录下是测试文件,可以借鉴。

2.模块说明

下面讲述如何使用spi_control模块。

  1. spi_control.v

这是一个用来控制主从(FPGA和加速度计)通信的模块。这个模块初始化DE10-Lite上的加速度计并周期性的采样其X轴和Y轴的数据。使用这个模块之前,请仔细阅读下面的参数和端口汇总信息。注意模块的3个时钟信号的特殊要求。生成这3个时钟信号的详细描述见文尾。

参数

n  SPI_CLK_FREQ—用于SPI从端通信的时钟频率。这个时钟频率也是spi_control和spi_serdes里的大部分逻辑使用的时钟信号。这个只在2MHz验证过,所以,除非必要,不要修改这个值。

n  UPDATE_FREQ—从G-sensor采样的频率,这个只在50Hz验证过,非必要,勿修改。

端口

n  reset_n  为0时,复位位。

n  clk  模块的时钟信号。在模块例化中,确保data_update保持一个时钟周期的高电平。这个信号经过25MHz和50MHz测试。

n  spi_clk  驱动SPI的内部逻辑时钟信号。注意:这个信号必须与clk同相,否则,时序约束条件可能就不满足。

n  spi_clk_out  驱动SPI外部逻辑的时钟信号。注意:其频率必须与spi_clk相同,但相位偏前270度。

n  data_update  控制信号。当获取有效的data_x和data_y的新值时,保持一个时钟周期的高电平。

n  data_x  G_sensor的X轴的数值(当七段数码管正对着你时,左右翻转实验板),有符号的16位2的补码。只有当data_update==1时,它才有效。

n  data_y  G_sensor的Y轴的数值(当七段数码管正对着你时,前后翻转实验板),有符号的16位2的补码。只有当data_update==1时,它才有效。

n  SPI_CSN  SPI协议的片选信号。直接连接到顶层模块中同名端口。

n  SPI_CLK  SPI协议的时钟信号。直接连接到顶层模块中同名端口。

n  SPI_SDI  SPI主到从的数据线。直接连接到顶层模块中同名端口。

n  SPI_SDO  SPI从到主的数据线。直接连接到顶层模块中同名端口。

2.spi_serdec.v

这个模块包含一个串并转换器,用于FPGA和加速度计之间的4线模式的SPI通信。在设计中使用spi_control.v模块会例化这个模块。这个模块主要用来主从交互,不支持突发访问。

3.用锁相环配置时钟

前面提到的三个时钟信号:clk,spi_clk,spi_clk_out可以用一个PLL模块生成。参考之前的PLL例化教程。

在参数设置时,c0,c1,c2的值如下:

* c0 - Freq: 25
MHz, Phase: 0

* c1 - Freq: 2
MHz, Phase: 0

* c2 - Freq: 2
MHz, Phase 270

你设计的模块时钟信号是c0。

把这些时钟信号连接到spi_control模块的输入端口:

* c0 → clk

* c1 → spi_clk

* c2 →
spi_clk_out

4.输出的范围

虽然加速度计的输出是16位的2的补码,大概在[-260,+260],但观测在[-500,+500].

5.输出的时序

实际上,新的加速度计的值随时都会产生,但是需要跟主时钟同步(25MHz或50MHz)。因此,在某些时候需要新的加速度计输出值的应用程序将需要缓冲加速度计的输出。最简单的缓冲器是一个16位寄存器,当加速计的输出有效时写入,并且可以在任何时候读取。

References:

1. EEC180 Tutorial: Using the accelerometer on the DE10-LITE board

https://www.ece.ucdavis.edu/~bbaas/180/tutorials/accelerometer.html

Written by YongfengXie

2022/05/31   Written

DE10-Lite加速度计使用教程的更多相关文章

  1. 刻录DVD.XP系统盘(U盘)

    ZC:用这个软件,安装太慢了... 忽然发现 以前有别的软件可以使用:http://www.cnblogs.com/vmskill/p/6196522.html 1.我是在这个论坛看到 这个工具的:h ...

  2. 免费申请使用IBM Cloud Lite(轻量套餐) 详细教程指南

    注册轻量帐户可在 IBM CLOUD控制台中使用所选的显示有轻量标记的免费轻量套餐来构建应用程序和探索服务.轻量帐户不会到期,也无需信用卡. 本文详细的介绍了一下,免费云服务的申请以及使用!这次使用I ...

  3. Jetty使用教程(一)——开始使用Jetty

    一.Jetty简介 1.1 什么是Jetty Jetty是一个提供HHTP服务器.HTTP客户端和javax.servlet容器的开源项目.   这个入门教程分为五个部分: 第一部分部分重点介绍如何使 ...

  4. 【特别推荐】Web 开发人员必备的经典 HTML5 教程

    对于我来说,Web 前端开发是最酷的职业之一,因为你可以用新的技术发挥,创造出一些惊人的东西.唯一的问题是,你需要跟上这个领域的发展脚步,因此,你必须不断的学习,不断的前进.本文将分享能够帮助您快速掌 ...

  5. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )

    [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 ) billcheung 发表于 2011-10-23 00:07:49 https://www.itsk.com ...

  6. [原创] RT7 Lite win7旗舰版精简方案

    [原创] RT7 Lite win7旗舰版精简方案 墨雪SEED 发表于 2016-1-26 21:23:54  https://www.itsk.com/thread-362912-1-5.html ...

  7. 基于Nodejs生态圈的TypeScript+React开发入门教程

    基于Nodejs生态圈的TypeScript+React开发入门教程   概述 本教程旨在为基于Nodejs npm生态圈的前端程序开发提供入门讲解. Nodejs是什么 Nodejs是一个高性能Ja ...

  8. Arduino可穿戴开发入门教程(大学霸内部资料)

    Arduino可穿戴开发入门教程(大学霸内部资料) 试读下载地址:链接:http://pan.baidu.com/s/1mg9To28 密码:z5v8 介绍:Arduino可穿戴开发入门教程(大学霸内 ...

  9. Cocos2d-JS加速度计与加速度事件

    在很多移动设备的游戏使用到了加速度计,Cocos2d-JS引擎提供了访问加速度计传感器的能力.本节我们首先介绍一下加速度计传感器,然后再介绍如何在Cocos2d-JS中访问加速度计.加速度计加速度计是 ...

  10. QML官方系列教程——QML Applications

    附网址:http://qt-project.org/doc/qt-5/qmlapplications.html 假设你对Qt的官方demo感兴趣,能够參考本博客的另一个系列Qt5官方demo解析集 每 ...

随机推荐

  1. 【干货】Java开发者快速上手.NET指南

    前言 前几天有小伙伴在技术群里发了一个微软官方出的:适用于Java开发人员的.NET快速入门免费电子书,今天大姚来分享一下Java开发者想要快速上手.NET有哪些教程和优质资料. 微软适用于Java开 ...

  2. 可变形卷积系列(三) Deformable Kernels,创意满满的可变形卷积核 | ICLR 2020

    论文提出可变形卷积核(DK)来自适应有效感受域,每次进行卷积操作时都从原卷积中采样出新卷积,是一种新颖的可变形卷积的形式,从实验来看,是之前方法的一种有力的补充.   来源:晓飞的算法工程笔记 公众号 ...

  3. C++设计模式 - 享元模式(Flyweight)

    对象性能模式 面向对象很好地解决了"抽象"的问题,但是必不可免地要付出一定的代价.对于通常情况来讲,面向对象的成本大都可以忽略不计.但是某些情况,面向对象所带来的成本必须谨慎处理. ...

  4. 一篇文章了解CI/CD管道全流程

    从CI/CD过程开始,包含所有阶段并负责创建自动化和无缝的软件交付的一系列步骤称为CI/CD管道工作流.使用CI/CD管道,软件发布工件可以从代码提交阶段到测试.构建.部署和生产阶段在管道中移动和前进 ...

  5. Ohos-MPChart——支持多种图表绘制的组件

    简介 Ohos-MPChart是OpenAtom OpenHarmony(简称"OpenHarmony")系统显示各种图表视图的三方组件,用于声明式应用开发,提供了多种多样的图表视 ...

  6. HarmonyOS SDK,赋能开发者实现更具象、个性化开发诉求

    随着移动互联网的逐步成熟,用户的需求越来越细化.鸿蒙生态为开发者提供的HarmonyOS SDK开放能力,高效赋能美团外卖等合作伙伴实现更具象.个性化的开发诉求,给用户提供更丰富便捷的体验. 点击链接 ...

  7. Bash与shell的区别

    Bash 与 shell 的区别 介绍 常见的 shell 解释器有 sh.bash 这两种,其他的 ksh.csh 和 zsh 等是不常见的.Mac OS 中默认安装了以上所有类型,Windows ...

  8. 容器开发运维人员的 Linux 操作机配置优化建议

    "工欲善其事必先利其器", 作为一个PAAS平台架构师, 容器相关技术(docker, k8s等)是必不可少的. 本文简单介绍下我自己的Linux操作机配置. 提升工作效率, 提高 ...

  9. 《深入理解Java虚拟机》读书笔记:运行时栈帧结构

    代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步. 一.概述 在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机执行引擎的统 ...

  10. HDC2021技术分论坛:吐司盒子?芝士码?HarmonyOS音视频测试来啦

    作者:lifusheng,用户体验技术专家 当下,音视频无处不在,很多设备和应用都涉及音视频.因而,对于HarmonyOS开发者们来说,如何对鸿蒙生态产品进行音视频测试是一个非常重要的问题. 华为Ha ...