L3G4200陀螺仪学习
来源:互联网 发布:java获取服务器外网ip 编辑:程序博客网 时间:2024/06/05 08:50
L3G4200D传感器学习
L3G4200D是意法(ST)半导体公司推出的一款MEMS运动传感器:三轴数字输出陀螺仪,可测量物体绕X、Y、Z三轴运动夫人角速度的变化,测量范围为±250, ±500, ±1000, 和 ±2000°/sec(dps)。通过测量角速度的变化,可以判别出物体的运动状态,所以也称为运动传感器,换句话说,这传感器可以让我们的设备知道自己“在哪儿和去哪儿”(where they are or where they are going),提供16位数据输出,输出值为16位数值的补码,以及可配置的低通和高通滤波器等嵌入式数字功能,支持IIC和SPI总线两种通讯方式。
一、传感器的测量方向和内部引脚图
引脚说明如下:
Pin
名称
功能
1
Vdd_IO
电源IO脚
2
SCL/SPC
I2C串行时钟/SPI串口时钟
3
SDA/SDI/SDO
I2C串行数据/SPI串行数据输入/3-wire串行接口数据输出
4
SDO/SA0
SPI串行数据输出/
I2C设备的地址不显着位
5
CS
SPI启用
I2C / SPI模式选择(1: I2C模式; 0: SPI启用)
6
DRDY/INT2
数据就绪/FIFO中断
7
INT1
可编程中断
8
Reserved
接地
9
Reserved
接地
10
Reserved
接地
11
Reserved
接地
12
Reserved
接地
13
GND
0V供应
14
PLLFILT
锁相环环路滤波器
15
Reserved
连接到Vdd
16
Vdd
电源
二、传感器寄存器的配置过程
1、初始化传感器(选择量程、高通滤波模式,设置中断使能等,对相应的控制寄存器进行写操作)
2、读取数据(首先读状态寄存器(STATUS_REG),若ZYXDA=1,则可以读数,否则等待。为减小误差,在编写程序时要设置连续读数多次,然后取平均值。)
三、主要寄存器介绍
1、控制寄存器
①CTRL_REG1(地址:20H):选择输出数据速率。输出带宽,以及X、Y、Z轴的使能
DR1
DR0
BW1
BW0
PD
Zen
Yen
Xen
DR1-DR0和BW1-BW0配置对应的输出速率和带宽如下表(其中:ODR为数据输出频率,Cut_Off为滤除频率)
DR<1:0>
BW<1:0>
ODR{Hz}
Cut_Off
00
00
100
12.5
00
01
100
25
00
10
100
25
00
11
100
25
01
00
200
12.5
01
01
200
25
01
10
200
50
01
11
200
70
10
00
400
20
10
01
400
25
10
10
400
50
10
11
400
110
11
00
800
30
11
01
800
35
11
10
800
50
11
11
800
110
PD
0:掉电模式 1:普通模式或者休眠模式(默认为0 )
Zen
Z轴使能 0:不启用 1:启用(默认1)
Yen
Y轴使能 0:不启用 1:启用(默认1)
Xen
X轴使能 0:不启用 1:启用(默认1)
对于PD处于3个模式中的哪一个则看下表:
模式
PD
Zen
Yen
Xen
掉电模式
0
-
-
-
休眠模式
1
0
0
0
普通模式
1
-
-
-
②CTRL_REG2(地址:21H):选择高通滤波模式和高通截止频率
0
0
HPM1
HPM0
HPCF3
HPCF2
HPCF1
HPCF0
高通滤波器模式选择配置
HPM1
HPM0
高通滤波器模式
0
0
普通模式(reset reading HP_RESET_FILTER)
0
1
滤波器参考信号
1
0
普通模式
1
1
根据中断自动设定
高通截止频率Hz
HPCF<3:0>
ODR=100Hz
ODR=200Hz
ODR=400Hz
ODR=800Hz
0000
8
15
30
56
0001
4
8
15
30
0010
2
4
8
15
0011
1
2
4
8
0100
0.5
1
2
4
0101
0.2
0.5
1
2
0110
0.1
0.2
0.5
1
0111
0.05
0.1
0.2
0.5
1000
0.02
0.05
0.1
0.2
1001
0.01
0.02
0.05
0.1
③CTRL_REG3(地址:22H):中断使能
I1_Int1
I1_Boot
H_Lactive
PP_OD
I2_DRDY
I2_WTM
I2_ORun
I2_Empty
相关功能配置如下:
I1_Int1
INT1脚中断使能(0:Disable,1:Enable)默认0
I1_Boot
INT1脚引导状态可用(0:Disable,1:Enable)默认0
H_Lactive
INT1脚中断激活配置(0:高,1:低)默认0
PP_OD
Push- Pull / Open drain. (0: Push- Pull; 1: Open drain)默认0
I2_DRDY
DRDY/INT2数据准备(0: Disable; 1: Enable)默认0
I2_WTM
DRDY/INT2的FIFO WaterMark中断(0: Disable; 1: Enable)默认0
I2_ORun
DRDY/INT2的FIFO溢出中断(0: Disable; 1: Enable)默认0
I2_Empty
DRDY/INT2的FIFO空中断(0: Disable; 1: Enable)默认0
④CTRL_REG4(地址:23H):选择量程
BDU
BLE
FS1
FS0
-
ST1
ST0
SIM
相关配置如下表:
BDU
数据块更新.(0:持续更新,1:输出寄存器在MSB和LSB读时才更新)默认为0
BLE
大/小 尾端数据选择(0:数据LSB在地位地址,1:数据LSB在高位地址)默认0
FS1-FS0
满量程选择(00:250dps;01:500dps;10:2000dps;11:2000dps)(默认00)
ST1-ST0
自检使能(00:普通模式;01:Self test 0 (+);10:--;11:Self test 1 (-))
SIM
SPI串行接口模式选择(0:四线接口;1:三线接口)
⑤CTRL_REG5(地址:24H):FIFO使能,高通滤波使能
BOOT
FIFO_EN
--
HPen
INT1_Sel1
INT1_Sel0
Out_Sel1
Out_Sel0
相关配置:
BOOT
重启内存内容(0:普通模式; 1:重启内存内容)默认0
FIFO_EN
FIFO(0: FIFO disable; 1: FIFO Enable)默认0
HPen
高通滤波器使能(0: HPF disabled; 1: HPF enabled)默认0
INT1_Sel1- INT1_Sel0
INT1选择配置 ,默认0
Out_Sel1- Out_Sel0
外部选择配置,默认0
⑥STATUS_REG(地址:27H):状态寄存器,数据就绪可读
ZYXOR
ZOR
YOR
XOR
ZXYDA
ZDA
YDA
XDA
相关配置
ZYXOR
X,Y,Z轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0
ZOR
Z轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0
YOR
Y轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0
XOR
X轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0
ZYXDA
X,Y,Z轴新数据(0:没有获取新数据1:获取新数据)默认0
ZDA
Z轴新数据(0:没有获取新数据1:获取新数据)默认0
YDA
Y轴新数据(0:没有获取新数据1:获取新数据)默认0
XDA
X轴新数据(0:没有获取新数据1:获取新数据)默认0
2、数据寄存器(共6个,每个轴的角速度由两个字节组成,分成高位和低位,数据以二进制补码形式存储):
OUT_X_L(地址:28H):X轴角速度 低位
OUT_X_H(地址:29H):X轴角速度 高位
OUT_Y_L(地址:2AH):Y轴角速度 低位
OUT_Y_H(地址:2BH):Y轴角速度 高位
OUT_Z_L(地址:2CH):Z轴角速度 低位
OUT_Z_H(地址:2DH):Z轴角速度 高位
- L3G4200陀螺仪学习
- Android陀螺仪传感器学习
- 陀螺仪的学习
- Android陀螺仪传感器学习
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- iOS学习-加速计和陀螺仪
- iOS学习-加速计和陀螺仪
- iOS学习新知识-加速计和陀螺仪
- iOS学习笔记 加速计和陀螺仪
- iOS学习笔记34-加速计和陀螺仪
- Unity陀螺仪
- 陀螺仪相关
- [LA] Orthogonal contrasts
- 关于PEiD 0.95在Win7 Ultimate x64下崩溃的解决
- 如何实现切换ViewController
- 一个贯穿图像处理与数据挖掘的永恒问题
- ADXL345知识学习总结
- L3G4200陀螺仪学习
- Akka Cluster原理与应用
- 解决svn 树冲突办法1
- Akka TestKit测试包的使用
- ES6学习——集合(Collections):Set API
- 关于高级语言编译、操作系统、硬件的关系思考(二)
- ES6学习——集合(Collections):Set 应用示例
- 机器学习-非监督学习(Unüberwachte Lernverfahren)+大型数据库:Clustering-1
- AngularJS学习之$digest循环和$apply