六轴传感器ICM-20608
ICM-20608-G是一个6轴传感器芯片,由3轴陀螺仪和3轴加速度计组成。陀螺仪可编程的满量程有:±250,±500,±1000和±2000度/秒。加速度计可编程的满量程有:±2g,±4g,±8g和±16g。
ICM-20608-G是一个6轴传感器芯片,由3轴陀螺仪和3轴加速度计组成。陀螺仪可编程的满量程有:±250,±500,±1000和±2000度/秒。加速度计可编程的满量程有:±2g,±4g,±8g和±16g。学习Linux之SPI之前,先要了解这个芯片。
ICM-20608芯片具有16位adc、可编程数字滤波器、嵌入式温度传感器和可编程中断。可选择I2C或SPI串行通讯,其中I2C通讯速度为400kHz,SPI的通讯速度为8MHz。VDD工作范围为1.71V至3.45V。
如果ICM-20608使用I2C通讯,则其从地址为b110100X,长度为7位。这个X,是由引脚AD0上的逻辑电平决定。当AD0=0时,ICM-20608的从设备地址为0x68;当AD0=1时,ICM-20608的从设备地址为0x69;这样,就可以允许两个ICM-20608连接到同一I2C总线上。
ICM-20608是通过读写寄存器来配置和读取传感器数据,如果使用SPI接口读写一个寄存器,只需要16个时钟。如果要读写多个寄存器,就需要更多时钟。第一个字节包含“读写的寄存器地址”,寄存器地址最高位是读写标志位。寄存器地址最高位为1,就表示读寄存器;寄存器地址最高位为0,就表示写寄存器,剩下的7位才是实际的寄存器地址。寄存器地址后面跟着的就是“读写的数据”。
ICM-20608检测轴方向和极性
1、陀螺仪SELF_TEST_X_GYRO寄存器
地址:0x00,类型:读/写
位 |
名称 |
描述 |
[7:0] |
XG_ST_DATA[7:0] |
XG_ST_DATA[7:0]表示在制造测试期间“X轴每秒角速率”的自检输出,也是最终用户执行的自检输出。 |
2、陀螺仪SELF_TEST_Y_GYRO寄存器
地址:0x01,类型:读/写
位 |
名称 |
描述 |
[7:0] |
YG_ST_DATA[7:0] |
YG_ST_DATA[7:0]表示在制造测试期间“Y轴每秒角速率”的自检输出,也是最终用户执行的自检输出。 |
3、陀螺仪SELF_TEST_Z_GYRO寄存器
地址:0x02,类型:读/写
位 |
名称 |
描述 |
[7:0] |
ZG_ST_DATA[7:0] |
ZG_ST_DATA[7:0]表示在制造测试期间“Z轴每秒角速率”的自检输出,也是最终用户执行的自检输出。 |
4、加速度计SELF_TEST_X_ACCEL寄存器
地址:0x0D,类型:读/写
位 |
名称 |
描述 |
[7:0] |
XA_ST_DATA[7:0] |
XA_ST_DATA[7:0]表示在制造测试期间“X轴加速度”的自检输出,也是最终用户执行的自检输出。 |
5、加速度计SELF_TEST_Y_ACCEL寄存器
地址:0x0E,类型:读/写
位 |
名称 |
描述 |
[7:0] |
YA_ST_DATA[7:0] |
YA_ST_DATA[7:0]表示在制造测试期间“Y轴加速度”的自检输出,也是最终用户执行的自检输出。 |
6、加速度计SELF_TEST_Z_ACCEL寄存器
地址:0x0F,类型:读/写
位 |
名称 |
描述 |
[7:0] |
ZA_ST_DATA[7:0] |
ZA_ST_DATA[7:0]表示在制造测试期间“Z轴加速度”的自检输出,也是最终用户执行的自检输出。 |
7、陀螺仪XG_OFFS_USRH偏移调整寄存器
地址:0x13,类型:读/写
位 |
名称 |
描述 |
[7:0] |
X_OFFS_USR[15:8] |
X_OFFS_USR[15:8]表示X轴陀螺仪16位偏移量的第15位到第8位(2的补码)。用于消除传感器输出的直流偏置,在进入传感器寄存器之前,它被添加到陀螺仪传感器值中。 |
8、陀螺仪XG_OFFS_USRL偏移调整寄存器
地址:0x14,类型:读/写
位 |
名称 |
描述 |
[7:0] |
X_OFFS_USR[7:0] |
X_OFFS_USR[7:0]表示X轴陀螺仪16位偏移量的第7位到第0位(2的补码)。用于消除传感器输出的直流偏置,在进入传感器寄存器之前,它被添加到陀螺仪传感器值中。 |
9、陀螺仪YG_OFFS_USRH偏移调整寄存器
地址:0x15,类型:读/写
位 |
名称 |
描述 |
[7:0] |
Y_OFFS_USR[15:8] |
Y_OFFS_USR[15:8]表示Y轴陀螺仪16位偏移量的第15位到第8位(2的补码)。用于消除传感器输出的直流偏置,在进入传感器寄存器之前,它被添加到陀螺仪传感器值中。 |
10、陀螺仪YG_OFFS_USRL偏移调整寄存器
地址:0x16,类型:读/写
位 |
名称 |
描述 |
[7:0] |
Y_OFFS_USR[7:0] |
Y_OFFS_USR[7:0]表示Y轴陀螺仪16位偏移量的第7位到第0位(2的补码)。用于消除传感器输出的直流偏置,在进入传感器寄存器之前,它被添加到陀螺仪传感器值中。 |
11、陀螺仪ZG_OFFS_USRH偏移调整寄存器
地址:0x17,类型:读/写
位 |
名称 |
描述 |
[7:0] |
Z_OFFS_USR[15:8] |
Z_OFFS_USR[15:8]表示Z轴陀螺仪16位偏移量的第15位到第8位(2的补码)。用于消除传感器输出的直流偏置,在进入传感器寄存器之前,它被添加到陀螺仪传感器值中。 |
12、陀螺仪ZG_OFFS_USRL偏移调整寄存器
地址:0x18,类型:读/写
位 |
名称 |
描述 |
[7:0] |
Z_OFFS_USR[7:0] |
Z_OFFS_USR[7:0]表示Y轴陀螺仪16位偏移量的第7位到第0位(2的补码)。用于消除传感器输出的直流偏置,在进入传感器寄存器之前,它被添加到陀螺仪传感器值中。 |
13、SMPLRT_DIV采样率分配器
地址:0x19,类型:读/写
位 |
名称 |
描述 |
[7:0] |
SMPLRT_DIV[7:0] |
当FCHOICE_B [1:0]=00和(0 < DLPF_CFG < 7)时,该寄存器配置才有效。 FIFO采样率:SAMPLE_RATE=INTERNAL_SAMPLE_RATE/ (1 + SMPLRT_DIV) INTERNAL_SAMPLE_RATE = 1kHz |
14、CONFIG寄存器
地址:0x1A,类型:读/写
位 |
名称 |
描述 |
[7] |
- |
总是设置为0 |
[6] |
FIFO_MODE |
当设置为’1’时,当FIFO已满时,将不会向FIFO写入额外的写操作。 当设置为’0’时,当FIFO已满时,将向FIFO写入额外的写操作,替换旧的数据。 |
[5:3] |
EXT_SYNC_SET[2:0] |
启用FSYNC引脚数据采样。 当EXT_SYNC_SET[2:0]=0时,不启用FSYNC引脚数据采样。 当EXT_SYNC_SET[2:0]=1时,TEMP_OUT_L[0]。 当EXT_SYNC_SET[2:0]=2时,GYRO_XOUT_L[0]。 当EXT_SYNC_SET[2:0]=3时,GYRO_YOUT_L[0]。 当EXT_SYNC_SET[2:0]=4时,GYRO_ZOUT_L[0]。 当EXT_SYNC_SET[2:0]=5时,ACCEL_XOUT_L[0]。 当EXT_SYNC_SET[2:0]=6时,ACCEL_YOUT_L[0]。 当EXT_SYNC_SET[2:0]=7时,ACCEL_ZOUT_L[0]。 |
[2:0] |
DLPF_CFG[2:0] |
当FCHOICE_B [1:0]=00时,设置陀螺仪低通滤波,见下表。 |
FCHOICE_B[1:0] |
DLPF_CFG[2:0] |
陀螺仪滤波 |
温度滤波 |
||
3-dB BW(Hz) |
Noise BW(Hz) |
Rate(kHz) |
3-dB BW(Hz) |
||
1 |
X |
8173 |
8595.1 |
32 |
4000 |
2 |
X |
3281 |
3451.0 |
32 |
4000 |
0 |
0 |
250 |
306.6 |
8 |
4000 |
0 |
1 |
176 |
177.0 |
1 |
188 |
0 |
2 |
92 |
108.6 |
1 |
98 |
0 |
3 |
41 |
59.0 |
1 |
42 |
0 |
4 |
20 |
30.5 |
1 |
20 |
0 |
5 |
10 |
15.6 |
1 |
10 |
0 |
6 |
5 |
8.0 |
1 |
5 |
0 |
0 |
3281 |
3451.0 |
8 |
4000 |
15、GYRO_CONFIG陀螺仪量程设置
地址:0x1B,类型:读/写
位 |
名称 |
描述 |
[7] |
XG_ST |
陀螺仪X轴自检 |
[6] |
YG_ST |
陀螺仪Y轴自检 |
[5] |
ZG_ST |
陀螺仪Z轴自检 |
[4:3] |
FS_SEL[1:0] |
陀螺仪满量程选择: 当FS_SEL[1:0]=00时,陀螺仪满量程为±250dps; 当FS_SEL[1:0]=01时,陀螺仪满量程为±500dps; 当FS_SEL[1:0]=10时,陀螺仪满量程为±1000dps; 当FS_SEL[1:0]=11时,陀螺仪满量程为±2000dps; |
[2] |
- |
保留 |
[1:0] |
FCHOICE_B[1:0] |
当FCHOICE_B[1:0]=00时,用来设置DLPF滤波 |
16、ACCEL_CONFIG加速度计量程设置
地址:0x1C,类型:读/写
位 |
名称 |
描述 |
[7] |
XA_ST |
加速度计X轴自检 |
[6] |
YA_ST |
加速度计Y轴自检 |
[5] |
ZA_ST |
加速度计Z轴自检 |
[4:3] |
ACCEL_FS_SEL[1:0] |
加速度计满量程选择: 当ACCEL_FS_SEL[1:0]=00时,加速度计满量程为±2g; 当ACCEL_FS_SEL[1:0]=01时,加速度计满量程为±4g; 当ACCEL_FS_SEL[1:0]=10时,加速度计满量程为±8g; 当ACCEL_FS_SEL[1:0]=11时,加速度计满量程为±16g; |
[2:0] |
- |
保留 |
17、ACCEL_CONFIG2加速度计低通设置
地址:0x1D,类型:读/写
位 |
名称 |
描述 |
[7:6] |
- |
保留 |
[5:4] |
DEC2_CFG[1:0] |
低功率加速度计模式的平均滤波器设置: 当DEC2_CFG[1:0]=00时,平均采样4次; 当DEC2_CFG[1:0]=01时,平均采样8次; 当DEC2_CFG[1:0]=10时,平均采样16次; 当DEC2_CFG[1:0]=11时,平均采样32次; |
[3] |
ACCEL_FCHOICE_B |
用来设置“加速度计数据速率和带宽”,见下表。 |
[2:0] |
A_DLPF_CFG[2:0] |
“加速度计数据速率和带宽”设置:
ACCEL_FCHOICE_B |
A_DLPF_CFG[2:0] |
加速度计 |
||
3-dB BW(Hz) |
Noise BW(Hz) |
Rate(kHz) |
||
1 |
X |
1046.0 |
1100.0 |
4 |
0 |
0 |
218.1 |
235.0 |
1 |
0 |
1 |
218.1 |
235.0 |
1 |
0 |
2 |
99.0 |
121.3 |
1 |
0 |
3 |
44.8 |
61.5 |
1 |
0 |
4 |
21.2 |
31.0 |
1 |
0 |
5 |
10.2 |
15.5 |
1 |
0 |
6 |
5.1 |
7.8 |
1 |
0 |
7 |
420.0 |
441.6 |
1 |
在低噪声模式下,加速度计配置:
ACCEL_FCHOICE_B |
1 |
0 |
0 |
0 |
0 |
|
A_DLPF_CFG[2:0] |
X |
7 |
7 |
7 |
7 |
|
DEC2_CFG[1:0] |
X |
0 |
1 |
2 |
3 |
|
Averages |
1X |
4X |
8X |
16X |
32X |
|
Ton (ms) |
1.084 |
1.84 |
2.84 |
4.84 |
8.84 |
|
Noise BW (Hz) |
1100.0 |
441.6 |
235.0 |
121.3 |
61.5 |
|
Noise (mg) TYP based on 250μg/√Hz |
8.3 |
5.3 |
3.8 |
2.8 |
2.0 |
|
SMPLRT_DIV[7:0] |
ODR(Hz) |
电流消耗(μA)TYP |
||||
255 |
3.9 |
8.4 |
9.4 |
10.8 |
13.6 |
19.2 |
127 |
7.8 |
9.8 |
11.9 |
14.7 |
20.3 |
31.4 |
63 |
15.6 |
12.8 |
17.0 |
22.5 |
33.7 |
55.9 |
31 |
31.3 |
18.7 |
27.1 |
38.2 |
60.4 |
104.9 |
15 |
62.5 |
30.4 |
47.2 |
69.4 |
113.9 |
202.8 |
7 |
125.0 |
57.4 |
87.5 |
132.0 |
220.9 |
N/A |
3 |
250.0 |
100.9 |
168.1 |
257.0 |
N/A |
N/A |
1 |
500.0 |
194.9 |
329.3 |
N/A |
N/A |
N/A |
18、LP_MODE_CFG低功耗模式配置寄存器
地址:0x1E,类型:读/写
位 |
名称 |
描述 |
[7] |
GYRO_CYCLE |
当GYRO_CYCLE=1时,启用低功耗陀螺仪模式。默认设置为GYRO_CYCLE=0 |
[6:4] |
G_AVGCFG[2:0] |
低功耗陀螺仪模式的平均滤波器配置。默认G_AVGCFG[2:0]=000 |
[3:0] |
LPOSC_CLKSEL[3:0] |
低功率加速度输出数据率: 当LPOSC_CLKSEL[3:0]=0时,输出频率为0.24Hz; 当LPOSC_CLKSEL[3:0]=1时,输出频率为0.49Hz; 当LPOSC_CLKSEL[3:0]=2时,输出频率为0.98Hz; 当LPOSC_CLKSEL[3:0]=3时,输出频率为1.95Hz; 当LPOSC_CLKSEL[3:0]=4时,输出频率为3.91Hz; 当LPOSC_CLKSEL[3:0]=5时,输出频率为7.81Hz; 当LPOSC_CLKSEL[3:0]=6时,输出频率为15.63Hz; 当LPOSC_CLKSEL[3:0]=7时,输出频率为31.25Hz; 当LPOSC_CLKSEL[3:0]=8时,输出频率为62.5Hz; 当LPOSC_CLKSEL[3:0]=9时,输出频率为125Hz; 当LPOSC_CLKSEL[3:0]=10时,输出频率为250Hz; 当LPOSC_CLKSEL[3:0]=11时,输出频率为500Hz; 当LPOSC_CLKSEL[3:0]=12~15时,保留; |
若要陀螺仪工作在低功耗模式或6轴低功耗模式下,则应将GYRO_CYCLE设置为1。陀螺仪滤波器配置由G_AVGCFG[2:0]确定,设置平均滤波器配置。它不依赖于DLPF_CFG[2:0]。
下表显示了陀螺仪低功耗模式的一些示例配置:
FCHOICE_B[1:0] |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
G_AVGCFG[2:0] |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
Averages |
1X |
2X |
4X |
8X |
16X |
32X |
64X |
128X |
|
Ton (ms) |
1.73 |
2.23 |
3.23 |
5.23 |
9.23 |
17.23 |
33.23 |
65.23 |
|
Noise BW (Hz) |
650.8 |
407.1 |
224.2 |
117.4 |
60.2 |
30.6 |
15.6 |
8.0 |
|
Noise (dps) TYP based on 0.008º/s/√Hz |
0.2 |
0.16 |
0.12 |
0.09 |
0.06 |
0.04 |
0.03 |
0.02 |
|
SMPLRT_DIV[7:0] |
ODR(Hz) |
电流消耗典型值(mA) |
|||||||
255 |
3.9 |
1.3 |
1.3 |
1.3 |
1.3 |
1.4 |
1.4 |
1.5 |
1.8 |
99 |
10.0 |
1.3 |
1.3 |
1.4 |
1.4 |
1.5 |
1.6 |
1.9 |
2.5 |
64 |
15.4 |
1.4 |
1.4 |
1.4 |
1.5 |
1.6 |
1.8 |
2.2 |
N/A |
32 |
30.3 |
1.4 |
1.4 |
1.5 |
1.6 |
1.8 |
2.2 |
N/A |
N/A |
19 |
50.0 |
1.5 |
1.5 |
1.6 |
1.8 |
2.1 |
2.8 |
N/A |
N/A |
9 |
100,0 |
1.6 |
1.7 |
1.9 |
2.2 |
3.0 |
N/A |
N/A |
N/A |
7 |
125.0 |
1.7 |
1.8 |
2.0 |
2.5 |
N/A |
N/A |
N/A |
N/A |
4 |
200.0 |
1.9 |
2.1 |
2.5 |
N/A |
N/A |
N/A |
N/A |
N/A |
3 |
250.0 |
2.1 |
2.3 |
2.7 |
N/A |
N/A |
N/A |
N/A |
N/A |
2 |
333.3 |
2.3 |
2.6 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
1 |
500.0 |
2.9 |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
19、ACCEL_WOM_THR唤醒运动阈值寄存器
地址:0x1F,类型:读/写
位 |
名称 |
描述 |
[7:0] |
WOM_THR[7:0] |
这个寄存器保存的是加速度计的“运动中断唤醒的阈值”。 |
20、FIFO_EN寄存器
地址:0x23,类型:读/写
位 |
名称 |
描述 |
[7] |
TEMP_FIFO_EN |
当TEMP_FIFO_EN=1时,将TEMP_OUT_H和TEMP_OUT_L温度数据以采样率写入FIFO;如果启用,即使数据路径处于备用状态,也会发生数据缓冲。 当TEMP_FIFO_EN=0时,功能被禁用。 |
[6] |
XG_FIFO_EN |
当XG_FIFO_EN=1时,将GYRO_XOUT_H和GYRO_XOUT_L陀螺仪X轴数据以采样率写入FIFO;如果启用,即使数据路径处于备用状态,也会发生数据缓冲。 当XG_FIFO_EN=0时,功能被禁用。 |
[5] |
YG_FIFO_EN |
当YG_FIFO_EN=1时,将GYRO_YOUT_H和GYRO_YOUT_L陀螺仪Y轴数据以采样率写入FIFO;如果启用,即使数据路径处于备用状态,也会发生数据缓冲。 当YG_FIFO_EN=0时,功能被禁用。 注意:启用陀螺仪或温度数据路径任何一个位,即使该数据路径未启用,数据也被缓冲到FIFO中。 |
[4] |
ZG_FIFO_EN |
当ZG_FIFO_EN=1时,将GYRO_ZOUT_H和GYRO_ZOUT_L陀螺仪Z轴数据以采样率写入FIFO;如果启用,即使数据路径处于备用状态,也会发生数据缓冲。 当ZG_FIFO_EN=0时,功能被禁用。 |
[3] |
ACCEL_FIFO_EN |
当ACCEL_FIFO_EN=1时,将ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H,ACCEL_YOUT_L,ACCEL_ZOUT_H,和ACCEL_ZOUT_L加速度数据以采样率写入FIFO; 当ZG_FIFO_EN=0时,功能被禁用。 |
[2:0] |
- |
保留 |
21、FSYNC_INT为FSYNC中断状态寄存器
地址:0x36,类型:读/写
位 |
名称 |
描述 |
[7] |
FSYNC_INT |
当FSYNC中断产生时,这个位自动设置为1。 在读取寄存器后,该位清除为0。 |
22、INT_PIN_CFG为INT/DRDY引脚/ bypass使能配置寄存器
地址:0x36,类型:读/写
位 |
名称 |
描述 |
[7] |
INT_LEVEL |
当INT_LEVEL=1时,INT/DRDY引脚被配置为低电平; 当INT_LEVEL=0时,INT/DRDY引脚被配置为高电平; |
[6] |
INT_OPEN |
当INT_OPEN=1时,INT/DRDY引脚被配置为开漏极; 当INT_OPEN=0时,INT/DRDY引脚被配置为推完输出; |
[5] |
LATCH_INT_EN |
当LATCH_INT_EN=1时,在中断状态被清除之前,INT/DRDY引脚保持电平不变。 当LATCH_INT_EN=0时,中断脉宽为50us。 |
[4] |
INT_RD_CLEAR |
当INT_RD_CLEAR=1时,如果有读操作,中断状态被清除。 当INT_RD_CLEAR=0时,只有通过读取INT_STATUS寄存器才能清除中断状态。 |
[3] |
FSYNC_INT_LEVEL |
当中断被激活低时,FSYNC_INT_LEVEL=1表示FSYNC引脚的逻辑电平。 当中断被激活高时,FSYNC_INT_LEVEL=0表示FSYNC引脚的逻辑电平。 |
[2] |
FSYNC_INT_MODE_EN |
当FSYNC_INT_MODE_EN=1时,使能FSYNC引脚触发中断,并令FSYNC引脚转换到FSYNC_INT_LEVEL指定的电平。 当FSYNC_INT_MODE_EN=0时,FSYNC引脚被禁止引起中断。 |
[1] |
- |
保留 |
[0] |
- |
总是0 |
23、INT_ENABLE为中断使能寄存器
地址:0x38,类型:读/写
位 |
名称 |
描述 |
[7:5] |
WOM_INT_EN[7:5] |
当WOM_INT_EN[7:5]=111时,使能加速度计运动中断; 当WOM_INT_EN[7:5]=000时,不使能加速度计运动中断; |
[4] |
FIFO_OFLOW_EN |
当FIFO_OFLOW_EN=1时,使能FIFO缓冲区溢出产生中断。 当FIFO_OFLOW_EN=0时,不使能FIFO缓冲区溢出产生中断。 |
[3] |
- |
保留 |
[2] |
GDRIVE_INT_EN |
当GDRIVE_INT_EN=1时,陀螺仪驱动系统就绪中断使能。 |
[1] |
- |
保留 |
[0] |
DATA_RDY_INT_EN |
当DATA_RDY_INT_EN=1时,数据就绪中断使能。 |
24、INT_STATUS为中断状态寄存器
地址:0x3A,类型:读/写
位 |
名称 |
描述 |
[7:5] |
WOM_INT[7:5] |
当加速度计的运动中断时,WOM_INT[7:5]=111; 在读取寄存器后,WOM_INT[7:5]=000。 |
[4] |
FIFO_OFLOW_INT |
当FIFO缓冲区溢出产生时,FIFO_OFLOW_INT=1。 在读取寄存器后,FIFO_OFLOW_INT=0。 |
[3] |
- |
保留 |
[2] |
GDRIVE_INT |
当陀螺仪驱动系统就绪中断时,GDRIVE_INT=1。 |
[1] |
- |
保留 |
[0] |
DATA_RDY_INT |
当产生数据就绪中断时,DATA_RDY_INT=1。 在读取寄存器后,DATA_RDY_INT=0。 |
25、ACCEL_XOUT_H加速度X轴数据高8位寄存器
地址:0x3B,类型:只读
位 |
名称 |
描述 |
[7:0] |
ACCEL_XOUT_H[7:0] |
加速度X轴数据高8位 |
26、ACCEL_XOUT_L加速度X轴数据低8位寄存器
地址:0x3C,类型:只读
位 |
名称 |
描述 |
[7:0] |
ACCEL_XOUT_L[7:0] |
加速度X轴数据低8位 |
X轴实际加速度:accel_x_act =(float)(accel_x_adc)/2048;
27、ACCEL_YOUT_H加速度Y轴数据高8位寄存器
地址:0x3D,类型:只读
位 |
名称 |
描述 |
[7:0] |
ACCEL_YOUT_H[7:0] |
加速度Y轴数据高8位 |
28、ACCEL_YOUT_L加速度Y轴数据低8位寄存器
地址:0x3E,类型:只读
位 |
名称 |
描述 |
[7:0] |
ACCEL_YOUT_L[7:0] |
加速度Y轴数据低8位 |
Y轴实际加速度:accel_y_act =(float)(accel_y_adc)/2048;
29、ACCEL_ZOUT_H加速度Z轴数据高8位寄存器
地址:0x3F,类型:只读
位 |
名称 |
描述 |
[7:0] |
ACCEL_ZOUT_H[7:0] |
加速度Z轴数据高8位 |
30、ACCEL_ZOUT_L加速度Z轴数据低8位寄存器
地址:0x40,类型:只读
位 |
名称 |
描述 |
[7:0] |
ACCEL_ZOUT_L[7:0] |
加速度Z轴数据低8位 |
.Z轴实际加速度:accel_z_act =(float)(accel_z_adc)/2048;
31、TEMP_OUT_H温度传感器输出高8位寄存器
地址:0x41,类型:只读
位 |
名称 |
描述 |
[7:0] |
TEMP_OUT_H[7:0] |
温度传感器输出高8位 |
32、TEMP_OUT_L温度传感器输出低8位寄存器
地址:0x42,类型:只读
位 |
名称 |
描述 |
[7:0] |
TEMP_OUT_L[7:0] |
温度传感器输出低8位。 温度= ( (TEMP_OUT[15:0]-RoomTemp_Offset)/Temp_Sensitivity ) +25度 查表得RoomTemp_Offset=25,Temp_Sensitivity=326.8。 |
实际温度值temp_act = ((float)(temp_adc)-25)/326.8 + 25;
33、GYRO_XOUT陀螺仪X轴输出寄存器
1)、GYRO_XOUT_H陀螺仪X轴输出高8位寄存器
地址:0x43,类型:只读
位 |
名称 |
描述 |
[7:0] |
GYRO_XOUT[15:8] |
陀螺仪X轴输出高8位。 |
2)、GYRO_XOUT_L陀螺仪X轴输出低8位寄存器
地址:0x44,类型:只读
位 |
名称 |
描述 |
[7:0] |
GYRO_XOUT[7:0] |
陀螺仪X轴输出低8位。 GYRO_XOUT = Gyro_Sensitivity * X_angular_rate 当FS_SEL[1:0]=00时,陀螺仪满量程为±250dps,Gyro_Sensitivity = 131 LSB/(º/s) |
陀螺仪X轴实际角度:gyro_x_act = (float)(gyro_x_adc) / 16.4;
34、GYRO_YOUT陀螺仪Y轴输出寄存器
1)、GYRO_YOUT_H陀螺仪Y轴输出高8位寄存器
地址:0x45,类型:只读
位 |
名称 |
描述 |
[7:0] |
GYRO_YOUT[15:8] |
陀螺仪Y轴输出高8位。 |
2)、GYRO_YOUT_L陀螺仪Y轴输出低8位寄存器
地址:0x46,类型:只读
位 |
名称 |
描述 |
[7:0] |
GYRO_YOUT[7:0] |
陀螺仪Y轴输出低8位。 GYRO_YOUT = Gyro_Sensitivity * Y_angular_rate 当FS_SEL[1:0]=00时,陀螺仪满量程为±250dps,Gyro_Sensitivity = 131 LSB/(º/s) |
陀螺仪Y轴实际角度:gyro_y_act = (float)(gyro_y_adc) / 16.4;
35、GYRO_ZOUT陀螺仪Z轴输出寄存器
1)、GYRO_ZOUT_H陀螺仪Z轴输出高8位寄存器
地址:0x47,类型:只读
位 |
名称 |
描述 |
[7:0] |
GYRO_ZOUT[15:8] |
陀螺仪Z轴输出高8位。 |
2)、GYRO_ZOUT_L陀螺仪Z轴输出低8位寄存器
地址:0x48,类型:只读
位 |
名称 |
描述 |
[7:0] |
GYRO_ZOUT[7:0] |
陀螺仪Z轴输出低8位。 GYRO_ZOUT = Gyro_Sensitivity * Z_angular_rate 当FS_SEL[1:0]=00时,陀螺仪满量程为±250dps,Gyro_Sensitivity = 131 LSB/(º/s) |
陀螺仪Z轴实际角度:gyro_z_act = (float)(gyro_z_adc) / 16.4;
36、SIGNAL_PATH_RESET为信号通路复位寄存器
地址:0x68,类型:读/写
位 |
名称 |
描述 |
[7:2] |
- |
保留 |
[1] |
ACCEL_RST |
复位加速数字信号路径。注意:传感器寄存器不会被清除。可使用SIG_COND_RST清除传感器寄存器。 |
[0] |
TEMP_RST |
复位温度数字信号路径。注意:传感器寄存器不会被清除。可使用SIG_COND_RST清除传感器寄存器。 |
37、ACCEL_INTEL_CTRL为加速度计智能控制寄存器
地址:0x69,类型:读/写
位 |
名称 |
描述 |
[7] |
ACCEL_INTEL_EN |
这位启用了运动唤醒检测逻辑。 |
[6] |
ACCEL_INTEL_MODE |
当ACCEL_INTEL_MODE=1时,将当前的样本与之前的样本进行比较。 当ACCEL_INTEL_MODE=0时,将当前的样本与之前的样本不进行比较。 |
[5:0] |
- |
保留 |
38、USER_CTRL为用户控制寄存器
地址:0x6A,类型:读/写
位 |
名称 |
描述 |
[7] |
- |
保留 |
[6] |
FIFO_EN |
当FIFO_EN=1时,使能FIFO操作模式。 当FIFO_EN=0时,不使能从SPI串口访问FIFO。 要禁用DMA的FIFO写入,则令FIFO_EN=0。 |
[5] |
- |
保留 |
[4] |
I2C_IF_DIS |
I2C_IF_DIS=1 ,禁用I2C从模块,并将串行接口置于SPI模式。 |
[3] |
- |
保留 |
[2] |
FIFO_RST |
FIFO_RST=1,复位FIFO模块。复位是异步的。该位在内部20MHz时钟的一个时钟周期后自动清除。 |
[1] |
- |
保留 |
[0] |
SIG_COND_RST |
SIG_COND_RST=1 ,复位所有陀螺仪数字信号路径,加速数字信号路径,和临时数字信号路径。 这个位也会清除所有的传感器寄存器。 |
39、PWR_MGMT_1为电源管理寄存器1
地址:0x6B,类型:读/写
位 |
名称 |
描述 |
[7] |
DEVICE_RESET |
DEVICE_RESET=1,重置内部寄存器,并恢复默认设置。一旦复位完成,该位自动清除为0。 |
[6] |
SLEEP |
当SLEEP=1时,使能芯片进入睡眠模式。 注意:默认值为1,芯片从睡眠模式启动。 |
[5] |
ACCEL_CYCLE |
当ACCEL_CYCLE=1时,且SLEEP=0和STANDBY=0时,芯片将在睡眠和采集单个加速度计样本之间循环,取单个加速度计样本的速率由SMPLRT_DIV决定。 注意:当通过PWR_MGMT_2寄存器位禁用所有加速度计轴并启用周期时,芯片将以上述各自寄存器确定的速率唤醒,但不会采集任何样本。 |
[4] |
GYRO_STANDBY |
当GYRO_STANDBY=1时,陀螺仪驱动和锁相环电路被启用,但感测路径被禁用。这是一个低功耗模式,允许快速启用陀螺仪。 |
[3] |
TEMP_DIS |
当TEMP_DIS=1时,禁用温度传感器。 |
[2:0] |
CLKSEL[2:0] |
当CLKSEL[2:0]=0,内部振荡器为20MHz。 当1<=CLKSEL[2:0]<=5,自动选择最佳的可用时钟源,如果准备好就使用这个锁相环,否则使用内部振荡器。 当CLKSEL[2:0]=6,内部振荡器为20MHz。 当CLKSEL[2:0]=7,停止时钟并保持定时发生器复位。 |
40、PWR_MGMT_2为电源管理寄存器2
地址:0x6C,类型:读/写
位 |
名称 |
描述 |
[7] |
FIFO_LP_EN |
FIFO_LP_EN=1,在低功耗加速度计模式下使能FIFO。 默认值为FIFO_LP_EN=0。 |
[6] |
- |
保留 |
[5] |
STBY_XA |
当STBY_XA=1时,X轴加速计被禁用。 当STBY_XA=0时,X轴加速计被打开。 |
[4] |
STBY_YA |
当STBY_YA=1时,Y轴加速计被禁用。 当STBY_YA=0时,Y轴加速计被打开。 |
[3] |
STBY_ZA |
当STBY_ZA=1时,Z轴加速计被禁用。 当STBY_ZA=0时,Z轴加速计被打开。 |
[2] |
STBY_XG |
当STBY_XG=1时,X轴陀螺仪被禁用。 当STBY_XG=0时,X轴陀螺仪被打开。 |
[1] |
STBY_YG |
当STBY_YG=1时,Y轴陀螺仪被禁用。 当STBY_YG=0时,Y轴陀螺仪被打开。 |
[0] |
STBY_ZG |
当STBY_ZG=1时,Z轴陀螺仪被禁用。 当STBY_ZG=0时,Z轴陀螺仪被打开。 |
41、FIFO_COUNT为FIFO写入的字节数寄存器
1)、FIFO_COUNTH为FIFO写入的字节数高4位寄存器
地址:0x72,类型:只读
位 |
名称 |
描述 |
[7:5] |
- |
保留 |
[4:0] |
FIFO_COUNT[12:8] |
FIFO_COUNT[12:8]为FIFO写入的字节数高4位。 注意:为了将新数据锁存到FIFO_COUNTH和FIFO_COUNTL,必须读FIFO_COUNTH。 |
2)、FIFO_COUNTL为FIFO写入的字节数低8位寄存器
地址:0x73,类型:只读
位 |
名称 |
描述 |
[7:0] |
FIFO_COUNT[7:0] |
FIFO_COUNT[7:0]为FIFO写入的字节数低8位。 注意:为了将新数据锁存到FIFO_COUNTH和FIFO_COUNTL,必须读FIFO_COUNTH。 |
42、FIFO_R_W为FIFO读写寄存器
1)、FIFO_COUNTH为FIFO写入的字节数高4位寄存器
地址:0x74,类型:读/写
位 |
名称 |
描述 |
[7:0] |
FIFO_DATA[7:0] |
Read/Write命令为FIFO提供读或写操作。 |
43、WHO_AM_I为ID寄存器
地址:0x75,类型:读/写
位 |
名称 |
描述 |
[7:0] |
WHOAMI[7:0] |
ICM-20608G的ID为0XAF; ICM-20608D的ID为0XAE。 |
44、XA_OFFSET为X轴加速度计偏移寄存器
1)、XA_OFFSET_H为X轴加速度计偏移抵消XA_OFFS[14:7]
地址:0x77,类型:读/写
位 |
名称 |
描述 |
[7:0] |
XA_OFFS[14:7] |
X轴加速度计的上位偏移抵消。 在所有满量程模式下,可抵消+/- 16g偏移,15位0.98毫克步骤。 |
2)、XA_OFFSET_L为X轴加速度计偏移抵消XA_OFFS[6:0]
地址:0x78,类型:读/写
位 |
名称 |
描述 |
[7:1] |
XA_OFFS[6:0] |
X轴加速度计的下位偏移抵消。 在所有满量程模式下,可抵消+/- 16g偏移,15位0.98毫克步骤。 |
[0] |
- |
保留。 |
45、YA_OFFSET为Y轴加速度计偏移寄存器
1)、YA_OFFSET_H为Y轴加速度计偏移抵消YA_OFFS[14:7]
地址:0x7A,类型:读/写
位 |
名称 |
描述 |
[7:0] |
YA_OFFS[14:7] |
Y轴加速度计的上位偏移抵消。 在所有满量程模式下,可抵消+/- 16g偏移,15位0.98毫克步骤。 |
2)、YA_OFFSET_L为Y轴加速度计偏移抵消YA_OFFS[6:0]
地址:0x7B,类型:读/写
位 |
名称 |
描述 |
[7:1] |
YA_OFFS[6:0] |
Y轴加速度计的下位偏移抵消。 在所有满量程模式下,可抵消+/- 16g偏移,15位0.98毫克步骤。 |
[0] |
- |
保留。 |
46、ZA_OFFSET为Z轴加速度计偏移寄存器
1)、ZA_OFFSET_H为Z轴加速度计偏移抵消ZA_OFFS[14:7]
地址:0x7D,类型:读/写
位 |
名称 |
描述 |
[7:0] |
ZA_OFFS[14:7] |
Z轴加速度计的上位偏移抵消。 在所有满量程模式下,可抵消+/- 16g偏移,15位0.98毫克步骤。 |
2)、ZA_OFFSET_L为Z轴加速度计偏移抵消ZA_OFFS[6:0]
地址:0x7E,类型:读/写
位 |
名称 |
描述 |
[7:1] |
ZA_OFFS[6:0] |
Z轴加速度计的下位偏移抵消。 在所有满量程模式下,可抵消+/- 16g偏移,15位0.98毫克步骤。 |
[0] |
- |
保留。 |
更多推荐
所有评论(0)