六轴传感器ICM-20608

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=0STANDBY=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]

-

保留。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值