课题学习(二十三)---三轴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.hqwc.cn/news/669795.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分子动力学模拟学习-Gromacs工具链

1、总体流程 在gromacs的使用说明中有一个flow chart,比较简略。以下针对一般体系(非蛋白等领域)进行了一些调整,通用性更强。 在做分子动力学模拟时,其复杂性除了以上各种输入输出文件的操作,另一点就是力…

Telnet的三种配置和SSH配置

Telnet的三种配置 实验配置思路: 配置接口IP地址: R1——配置接口IP地址 R2——配置接口IP地址 认证模式为none的配置 R1——认证模式配置为none R2——测试Telnet连接R1设备 认证模式为passwrd的配置 R1——认证模式配置为password R2——测试Telnet连…

第五十三节 Java设计模式 - 工厂模式

Java设计模式 - 工厂模式 工厂模式是一种创建模式,因为此模式提供了更好的方法来创建对象。 在工厂模式中,我们创建对象而不将创建逻辑暴露给客户端。 例子 在以下部分中,我们将展示如何使用工厂模式创建对象。 由工厂模式创建的对象将是…

如何通过少量样本复刻高级提示词?

(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费) 创意 网友遁一子先生最近在玩儿 Gemini 1.5 Pro 多模态。别人也就拿 Gemini 的视频分析功能来问问模型某个镜头出现在什么时间,然后对准确的…

模块SM472,SM203和利时卡件

模块SM472,SM203❗电:183-6998-1851❗和利时卡件,电源线应远离系统内其余任何电缆线,且当在凑近进口处就近安装滤波器,模块SM472,SM203和利时卡件保证外面供电网络上的扰乱进入到机柜中;滤波器要尽量凑近电源输入插座安装&#xf…

微信答题链接怎么做_新手也能快速上手制作

在数字营销日新月异的今天,如何有效吸引用户参与、提升品牌曝光度,成为了每一个营销人都在思考的问题。而微信答题链接,作为一种新兴的互动营销方式,正以其独特的魅力,在营销界掀起一股新的热潮。今天,就让…

【Pytorch】1.读取训练数据集

导入Dataset类 from torch.utils.data import Dataset # 注意是Dataset(大写)的才是类通过jupyter我们可以阅读一下Dataset类的具体使用方法 help(Dataset) # 或者直接 Dataset??我们可以看到具体对Dataset类的解释 从蓝色字体我们可以得出 所有的代…

【Scala---04】函数式编程 『 函数 vs 方法 | 函数至简原则 | 函数式编程』

文章目录 1. 函数 vs 方法1.1 方法(1) 定义方法(2) 运算符即方法 1.2 函数(1) 定义函数(2) 匿名函数 1.3 方法转为函数1.4 可变参数&默认参数 2. 函数至简原则3. 函数式编程3.1 函数式编程思想3.3 函数柯里化&闭包3.5 递归 & 尾递归 4. 补充4.1 访问元祖元素4.2 &g…

UE5(射线检测)学习笔记

这一篇会讲解射线检测点击事件、离开悬停、进入悬停事件的检测,以及关闭射线检测的事件,和射线检测蓝图的基础讲解。 创建一个简单的第三人称模板 创建一个射线检测的文件夹RadiationInspection,并且右键蓝图-场景组件-命名为BPC_Radiation…

React中的高阶组件的封装,高阶函数,HOC的含义及用法:

含义及作用: 高阶函数代码案例: 调用高阶组价:

自然语言(NLP)

It’s time for us to learn how to analyse natural language documents, using Natural Language Processing (NLP). We’ll be focusing on the Hugging Face ecosystem, especially the Transformers library, and the vast collection of pretrained NLP models. Our proj…

ubuntu20.04通过minio配置FTP服务

项目需求:原来存储文件用的是oss服务存储的,本地minio服务。因为项目需求需要ftp服务来访问文件。查看了一下minio官网4.20版本以后的支持ftp服务。官网介绍如下: 参考文章地址如下:File Transfer Protocol (FTP/SFTP) — MinIO …