课题学习(二十三)---三轴MEMS加速度计芯片ADXL372

   声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。

一、基础配置

  测量范围-200g-200g,分辨率为12位, V s 、 V D D I / O V_s、V_{DDI/O} VsVDDI/O范围为1.6V-3.5V
在这里插入图片描述
在这里插入图片描述

1.1 引脚配置和功能说明

在这里插入图片描述
在这里插入图片描述
  引脚功能比较简单,主要是几个电源引脚( V s 、 V D D I / O 、 G N D V_s、V_{DDI/O}、GND VsVDDI/OGND)、SPI接口和两个中断接口。

1.2 三种工作模式

  ADXL372有三种工作模式:①连续测量模式;②低功耗冲击检测的瞬时接通模式;③唤醒模式,用于有限带宽的低重力加速度的活动检测

1.2.1 连续测量

  测量模式为ADXL372的默认工作模式。在此模式下,连续读取加速度数据,此模式下操作ADXL372时,本数据表中描述的所有功能都可用

1.2.2 瞬时开启模式

  即时开启模式使极低的功率冲击检测。在这种模式下,加速度计持续监测环境。当检测到超过内部阈值的事件时,设备切换到测量模式记录事件
   目标默认阈值是10g到15g,但它可以变化。如果默认阈值过低,寄存器选项允许将阈值增加到30g到40g的目标。
   为了节省电力,在加速度计切换到正常工作状态之前,没有新的数字加速度数据可读取。但是,所有的寄存器都有正常的读/写功能。

1.2.3 唤醒模式

  唤醒模式是理想的简单检测存在或不运动,在极低的功耗。唤醒模式对于实现低g运动激活的开/关开关特别有用,允许系统的其余部分断电,直到检测到持续的活动。在唤醒模式下,设备断电的持续时间等于唤醒定时器,由时序寄存器中的WAKEUP_RATE位设置,然后打开的持续时间等于滤波器沉淀时间(参见滤波器沉淀时间部分)。
  如果检测到运动,加速度计可以根据设备配置以多种方式自主响应,例如:

  • 切换到全带宽测量模式
  • 向微控制器发出中断信号
  • 唤醒下游电路

  在唤醒模式下,所有寄存器和FIFO都具有正常的读/写功能,并且可以以降低的唤醒速率从数据寄存器读取实时数据。然而,在唤醒模式期间,没有新的数据存储在FIFO中,并且在唤醒模式中没有可用的中断。

1.3 滤波器

1.3.1 低通抗混叠滤波器

  在没有抗混叠滤波器的情况下,频率超过ODR混叠一半或折叠到测量带宽的输入信号可能导致测量不准确。为了减轻这种不准确性,在ADC的输入端提供了一个四极低通滤波器。过滤带宽由用户可选,默认带宽为200hz。最大带宽最多限制为ODR的一半,以确保不违反Nyquist标准

1.3.2 低通抗混叠滤波器

  高通滤波器是一阶无限脉冲响应(IIR)滤波器。下表列出了可用的−3dB频率,用户可选择,取决于输出数据速率。高通和低通滤波器可以同时用于设置带通选项。
在这里插入图片描述

1.3.3 数据输出速率(ODR)

  ADXL372可以选择400hz、800hz、1600hz、3200hz或6400hz的加速度数据数据速率。用户可选择ODR,默认为400hz。如果用户选择的抗混叠滤波器带宽大于ODR的一半,则设备默认带宽为ODR的一半。增加或减少ODR会相应地增加或减少电流消耗。

1.4 中断

1.4.1 活动中断和非活动中断

  当检测到活动和不活动时,分别设置活动位和非活动位。

1.4.2 数据准备中断

  DATA_RDY位在有新的有效数据可用时设置,在没有新数据可用时清除。
  在读取任何数据寄存器时,DATA_RDY位都不设置。如果在读取寄存器之前DATA_RDY = 0,并且在读取寄存器期间有新数据可用,则DATA_RDY保持0直到读取完成,然后才设置为1。
  如果在读取寄存器之前DATA_RDY = 1,则在读取寄存器开始时将其清除。
  如果在读取寄存器之前DATA_RDY = 1,并且在读取寄存器期间有新数据可用,则在读取寄存器开始时将DATA_RDY清除为0,并在整个读取过程中保持0。
  当读取完成时,DATA_RDY设置为1。

1.4.3 FIFO中断

   ①当FIFO中存储的样本数量等于或超过FIFO_SAMPLES中指定的数量时,设置FIFO_FULL位(寄存器0x39与FIFO_CTL寄存器中的位0一起)。当从FIFO读取足够的样本时,FIFO_FULL位自动清除,使得剩余的样本数量低于指定的数量。
  FIFO采样数设置为0,表示设置Watermark中断。为了避免意外触发这个中断,FIFO_SAMPLES寄存器的默认值是0x80。
  ②当FIFO输出缓冲区中至少有一个有效数据可用时,设置FIFO_RDY位。当FIFO中没有有效数据可用时,该位被清除。在FIFO触发模式下,只有在检测到活动中断后才设置,并且围绕事件的数据保存在FIFO中。
  ③当FIFO溢出或溢出时设置FIFO_OVR位,这样新数据取代未读数据,这可能表明尚未清空的完整FIFO或由缓慢的SPI事务引起的时钟错误。如果将FIFO配置为最旧保存模式,则溢出事件表示没有足够的空间可用于新的样本。当FIFO和STATUS寄存器的内容都被读取时,fif_ovr位被清除。当FIFO被禁用时,它也被清除。

1.5 自检

  自检功能通过SELF_TEST寄存器中的ST位启用,寄存器0x40。使用自检功能的建议步骤如下:

  1. 将设备置于测量模式。
  2. 确保启用了低通活动过滤器。
  3. 通过在SELF_TEST寄存器(寄存器0x40)中设置ST位来进行自检。

  大约300毫秒后,读取自检状态位ST_DONE和USER_ST,以检查通过或失败的情况。

二、 串行通信

2.1 SPI

  SPI模式为:CPHA = CPOL = 0。即CLK空闲时为低,在CLK第一边沿(上升沿)读取数据
在这里插入图片描述
   ADXL372支持最高10MHz的SCLK频率。连接ADXL372进行SPI通信,接线如下图所示。
在这里插入图片描述
  读寄存器和写寄存器的命令结构分别如图40和图41所示。
在这里插入图片描述
  读和写寄存器命令支持多字节(突发)读/写访问。多字节读和写命令的波形图分别如图42和图43所示。
在这里插入图片描述

2.2 IIC

在这里插入图片描述
  关于IIC的介绍数据手册没有给出过多的介绍,只是给出了几个时序图,不过能从图中看出基本的配置需求,如果使用IIC通信,按照该图的时序进行编写代码即可。
在这里插入图片描述
   注意:IIC设备地址为0x53.

三、寄存器

  在此只介绍部分重要的寄存器,一些用不到的就不介绍了,感兴趣的小伙伴可以自己去看一下数据手册。

3.1 状态寄存器

在这里插入图片描述
  DATA_RDY位是数据准备位,若是三个轴的数据已经准备好了,则该位置1,表示数据已准备完成,现在可以读取加速度数据

3.2 X轴数据寄存器

在这里插入图片描述
  由于数据是12位的,所有由两个寄存器组成,第一个寄存器保存数据的高八位,第二个寄存器的前四位保存数据的低四位
  Y轴和Z轴的数据寄存器和X轴一样,所以在这就不详细介绍了。

3.3 最高峰值数据寄存器

在这里插入图片描述

  峰值数据寄存器包含自该寄存器最后一次读取以来记录的最高幅度样本对应的加速度数据。数据被左对齐并格式化为两个补码。
  该寄存器的数据格式和加速度数据寄存器的格式一样,在这就不再过多介绍了。

3.4 偏移寄存器

在这里插入图片描述
  偏移寄存器由四位组成,并提供用户集。这些寄存器的比例因子如图下图所示。
在这里插入图片描述
  读取寄存器的值之后,就可以根据上图的对应关系将各轴的偏移值对应起来,注意,各轴的偏移值不一样

3.5 高通滤波器设置寄存器

在这里插入图片描述
  注意,虽然设置了寄存器的值,但是高通滤波的频率会随着ODR的不同而变化,所以在此要注意ODR的值。

3.6 中断引脚函数映射寄存器

在这里插入图片描述
在这里插入图片描述
  INT1_MAP和INT2_MAP寄存器分别配置INT1和INT2中断引脚。位[6:0]选择哪个函数在引脚上产生中断。如果它对应的位被设置为1,则该函数在INTx引脚上产生中断。
  bit7配置引脚是工作在高电平(bit7低电平)还是低电平(bit7高电平)模式。关于这句话,我的理解是:如果bit7设置为0,那么在产生中断时INT1,引脚为高电平;如果bit7设置为1,那么在产生中断时INT1,引脚为低电平
  每个引脚可以同时选择任意数量的功能。如果选择了多个函数,则需要将它们的条件组合在一起以确定INTx引脚状态。每个函数的状态可以通过读取状态寄存器来确定。如果没有中断映射到INTx引脚,则引脚保持在高阻抗状态。

3.7 外部定时控制寄存器

在这里插入图片描述
在这里插入图片描述

3.8 测量控制寄存器

在这里插入图片描述
在这里插入图片描述

3.9 电源控制寄存器

在这里插入图片描述

3.10 自检寄存器

在这里插入图片描述

四、 往期回顾

课题学习(一)----静态测量
课题学习(二)----倾角和方位角的动态测量方法(基于磁场的测量系统)
课题学习(三)----倾角和方位角的动态测量方法(基于陀螺仪的测量系统)
课题学习(四)----四元数解法
课题学习(五)----阅读论文《抗差自适应滤波的导向钻具动态姿态测量方法》
课题学习(六)----安装误差校准、实验方法
课题学习(七)----粘滑运动的动态算法
课题学习(八)----卡尔曼滤波动态求解倾角、方位角
课题学习(九)----阅读《导向钻井工具姿态动态测量的自适应滤波方法》论文笔记
课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记
课题学习(十一)----阅读《Attitude Determination with Magnetometers and Accelerometers to Use in Satellite》
课题学习(十二)----阅读《Extension of a Two-Step Calibration Methodology to Include Nonorthogonal Sensor Axes》
课题学习(十三)----阅读《Calibration of Strapdown Magnetometers in Magnetic Field Domain》论文笔记
课题学习(十四)----三轴加速度计+三轴陀螺仪传感器-ICM20602
课题学习(十五)----阅读《测斜仪旋转姿态测量信号处理方法》论文
课题学习(十六)----阅读《Continuous Wellbore Surveying While Drilling Utilizing MEMS Gyroscopes Based…》论文
课题学习(十七)----姿态更新的四元数算法总结
课题学习(十八)----捷联测试电路设计与代码实现(基于MPU6050和QMC5883L)
课题学习(十九)----Allan方差:陀螺仪噪声分析
课题学习(二十)----阅读《近钻头井斜动态测量重力加速度信号提取方法研究》论文
课题学习(二十一)----姿态更新的四元数算法推导
课题学习(二十二)—《A Double-Stage Kalman Filter for Orientation Tracking With an Integrated Processor …》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/593210.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【银角大王——Django课程——用户表的基本操作2】

用户表的基本操作2 编辑用户按钮删除按钮入职日期——不显示时分,只显示年月日——使用DataField函数不使用DateTimeField修改models记得重新执行命令,更新数据库结构修改前修改后 编辑用户按钮 点击编辑,跳转到编辑页面(将编辑的…

CrossOver支持的软件多吗 CrossOver支持软件列表 crossover兼容性查询

如果你是一个喜欢在Mac上工作的用户,但又不想放弃一些Windows上的优秀软件,那么可以考虑使用一些兼容工具来运行Windows程序。其中,CrossOver就是一款功能强大且受欢迎的兼容工具。那么,CrossOver到底能支持哪些Windows软件呢&…

JVM笔记2--垃圾收集算法

1、如何确认哪些对象“已死” 在上一篇文章中介绍到Java内存运行时的各个区域。其中程序计数器、虚拟机栈、本地方法栈3个区域随着线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊的执行着入栈和出栈操作。每个栈帧中分配多少内存基本上…

VMvare如何更改虚拟机内共享文件夹的挂载点

更改虚拟机内共享文件夹的路径 进入目录 /etc/init.d ,并找到vmware-tools文件 里面有配置项 vmhgfs_mnt"/mnt/hgfs" 将引号内的内容更改为你需要挂载的路径,重启即可 注意挂载的路径不能是 “/”,必须根目录下的某个文件夹,或者其子文件夹 …

定时器编程前配置和控制LED隔一秒亮灭

1.配置定时器 0 工作模式16位计时 2.给初值,定一个10ms出来 3.开始计时

环形链表的判断方法与原理证明

(题目来源:力扣) 一.判读一个链表是否是环形链表 题目: 解答: 方法:快慢指针法 内容:分别定义快慢指针(fast和slow),快指针一次走两步,慢指…

物体检测:如何检测小物体?

原文地址:https://medium.com/voxel51/how-to-detect-small-objects-cfa569b4d5bd 2024 年 4 月 22 日 物体检测是计算机视觉的基本任务之一。在高层次上,它涉及预测图像中物体的位置和类别。最先进的(SOTA)深度学习模型&#x…

3031087 -“无数据”:物料不显示在 MRP 应用中

症状 使用其中一个 MRP 应用(监控物料覆盖范围、管理物料覆盖范围、监控外部需求等)时无法找到物料。 用户在搜索过滤器时会收到错误消息“无数据”。 “本 KBA 中的图像/数据来自 SAP 内部系统、示例数据或演示系统。任何与真实数据相似的都是完全巧…

Apache反代理Tomcat项目,分离应用服务器和WEB服务器

项目的原理是使用单独的机器做应用服务器,再用单独的机器做WEB服务器,从网络需要访问我们的应用的话,就会先经过我们的WEB服务器,再到达应用程序,这样子的好处是我们可以保护应用程序的机器位置,同时还可以…

R语言中,查看经安装的包,查看已经加载的包,查看特定包是否已经安装,安装包,更新包,卸载包

创建于:2024.5.4 R语言中,查看经安装的包,查看已经加载的包,查看特定包是否已经安装,安装包,更新包,卸载包 文章目录 1. 查看经安装的包2. 查看已经加载的包3. 查看特定包是否已经安装4. 安装包…

java发送请求-http和https

http和https区别 1、http是网络传输超文本协议,client---- http------ server 2、httpshttpssl证书,让网络传输更安全 ,client---- httpssl------ server 3、ssl证书是需要客户端认可的,注意官方证书和jdk生成的证书的用户来使…

实现批量自动文本标注(输出标签)代码复现

一:项目地址: IDEA-Research/Grounded-Segment-Anything: Grounded-SAM: Marrying Grounding-DINO with Segment Anything & Stable Diffusion & Recognize Anything - Automatically Detect , Segment and Generate Anything (github.com) 二…

3.SpringSecurity基本原理

SpringSecurity本质是一个过滤器链。十多个过滤器构成一个过滤器链。 这些过滤器在项目启动就会进行加载。每个过滤器执行放行操作才会执行下一个过滤器。 常见过滤器 FilterSecurityInterceptor 是一个方法级的权限过滤器,基本位于过滤器链的最底部。 Excepti…

内核workqueue框架

workqueue驱动的底半部实现方式之一就是工作队列,作为内核的标准模块,它的使用接口也非常简单,schedule_work或者指定派生到哪个cpu的schedule_work_on。 还有部分场景会使用自定义的workqueue,这种情况会直接调用queue_work和qu…

sql 中having和where区别

where 是用于筛选表中满足条件的行,不可以和聚类函数一起使用 having 是用于筛选满足条件的组 ,可与聚合函数一起使用 所以having语句中不能使用select中定义的名字

QT:QT与操作系统

文章目录 信号槽与事件 信号槽与事件 在之前的信号槽中,已经有了一个基本的认识,那么对于QT中事件的理解其实就非常的类似,当用户进行某种操作的时候,就会触发事件,去执行一些对应的方法 QT对于事件又进行了封装&…

Lucene从入门到精通

**************************************************************************************************************************************************************************** 1、概述 【1】入门:作用、有点与缺点 【2】应用:索引、搜索、fie…

【软件开发规范篇】JAVA后端开发编程规范

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是&#xff0…

Python数据分析案例43——Fama-French回归模型资产定价(三因子/五因子)

案例背景 最近看到要做三因子模型的同学还挺多的,就是所谓的Fama-French回归模型,也就是CAMP资本资产定价模型的升级版,然后后面还升级为了五因子模型。 看起来眼花缭乱,其实抛开金融资产定价的背景,从机器学习角度来…

04_jvm性能调优_并行收集器介绍

并行收集器(此处也称为吞吐量收集器)是类似于串行收集器的分代收集器。串行和并行收集器之间的主要区别在于并行收集器具有多个线程,用于加速垃圾回收过程。 通过命令行选项-XX:UseParallelGC 可启用并行收集器。默认情况下,使用…
最新文章