3轴加速度传感器LIS3DSH
ST公司推出的一系列DISCOVERY开发板中,STM32F4 Discovery是基于ARM CORTEX-M4内核的一款入门级开发套件。下面将简单介绍基于这块开发板的加速度传感器信息获取。注意:On market, there are 2 versions of STM32F4-Discovery board. First release had LIS302DL (old board) and new release (current) has LIS3DSH device. LIS3DSH has 5 selectables full scales (2/4/6/8/16G), old LIS302DL has only 2 (2.3/9.2G). 即市面上有两种开发板:MB997A的MEMS是长方形的LIS302DL,MB997C的MEMS正方形的LIS3DSH。官方自带的MEMS例程中只支持老版的LIS302DL,但两个版本除了性能和寄存器上存在一些差异,在Discovery PCB板上的引脚都是一样的。
- LIS3DSH三轴加速度传感器
LIS3DSH是ST公司推出的低功耗、高性能并且内置有限状态机的三轴高分辨率加速度传感器,可支持1.7~3.6 V的宽输入电压,有±2g/4g/±8g/±16g不同量程范围,1个集成的FIFO(先入先出)缓冲存储区块,16位的数字输出,工作温度范围为-40~+85 ℃,能够提供稳定而精确的测量数据。输出接口采用工业标准的I2C/SPI串行接口,可以实现自由落体检测、振动监测与补偿、步行检测等一系列涉及运动状态变化的应用
LIS3DSH与STM32接线原理图如下图所示,SDI(MOSI)、SDO(MISO)、SPC(SCK)连接到STM32的SPI1上,CS作为片选信号连到PE3引脚。传感器还有两个可编程中断源INT1和INT2,可以在某轴的加速度超过设定阈值或是检测到自由落体事件时产生中断信号,分别将其连接到单片机PE0、PE1引脚。
其内部功能结构如下图所示:
LIS3DSH内置两个有限状态机,可以运行用户自定义的程序(Each state machine allows implementing gesture recognition in a flexible way, free-fall,wake-up, 4D/6D orientation, pulse counter and step recognition, click/double-click,shake/double-shake, face-up/face-down, turn/double-turn)。这些程序由一系列指令组成,这些指令确定了状态转变。对状态n来说可以转变到状态(n+1)或是reset state,当RESET条件为真时,就转变到reset state;当NEXT条件为真时,就转变到下一个状态。当到达output/stop/continue状态时,会产生一个中断。
Each state includes NEXT/RESET conditions. The RESET condition is defined in the MSB part while the NEXT condition is defined in the LSB part of the ST1_X and ST2_X registers.As shown below the RESET condition is performed first, the NEXT condition is performed only when the RESET condition is not satisfied. When both conditions (NEXT and RESET) are not satisfied, the state machine waits for a new sample and starts the evaluation again in the same state.
- FIFO
LIS3DSH内置了FIFO用于存放每个轴的加速度数据,FIFO有六种运行模式:
1. Bypass mode:这种模式下
2. FIFO mode
3. Stream mode
4. Stream-to-FIFO mode
5. Bypass-to-Stream mode
6. Bypass-to-FIFO mode
- 寄存器
在读取加速度信息之前需要先对传感器进行配置,比如量程、传输速率、工作模式等。来看第一个相关的寄存器CTRL_REG4(20h)
其中ODR[3:0]控制输出速率和工作模式,ODR[3:0]全为0时进入省电/低功耗模式(上电启动后默认进入省电模式,在该模式下除了I2C/SP通信接口外,绝大多数内部模块处于关闭状态以降低功耗。The content of the configuration registers is preserved and output data registers are not updated),具体情况见下表。Xen、Yen、Zen分别为XYZ轴加速度采集使能,默认全部使能。
OUT_T (0Ch)为一个8位温度寄存器,温度值由补码表示,分辨率为1LSB/度,00h表示25摄氏度。
WHO_AM_I(0Fh)为一个8位设备标识寄存器,寄存器中的内容始终为0x3F。
OFF_X (10h), OFF_Y (11h), OFF_Z (12h)分别为XYZ轴的8位偏移补偿寄存器,有补码表示,默认值为0x00。Final acceleration output value is composed as:
Output(axis) = Measurement(axis) - OFFSET_x(axis) * 32 (由于8位补偿值乘了32,因此每个轴的补偿值为-4095~4096LSB)
参考:
http://www.st.com/content/st_com/en/products/mems-and-sensors/accelerometers/lis3dsh.html
https://stm32f4-discovery.net/2014/09/library-35-lis302dl-or-lis3dsh-accelerometer/
相关文章
- 红外传感器型号和参数_红外传感器参数
- 《安富莱嵌入式周报》第283期:全开源逆向“爆破”硬件工具,Linux内核6.1将正式引入RUST语言,I3C培训教程,80款市场成熟的电感式位置传感器设计
- Linux——Linux驱动之玩转SPI(下)iMX6ULL驱动SPI接口的6轴MEMS传感器芯片实现数据采集开发实战
- 振弦采集模块传感器接口(智能振弦传感器)
- 创想焊缝跟踪传感器实现工字钢自动焊接的应用方案
- 多通道振弦传感器无线采集仪 数据发送详情
- Android获得当前设备支持的所有传感器详解手机开发
- 苹果新专利:实现包括Touch ID和Face ID在内的屏下传感器技术
- 装上生物传感器,口罩也能测新冠:可媲美黄金标准
- 使用Linux系统接入DHT11温度湿度传感器(dht11linux)
- 如何用树莓派搭建一个颗粒物传感器
- 深度干货:详解基于视觉+惯性传感器的空间定位方法 | 雷锋网公开课
- 神奇的气体传感器