该模块由意法半导体出品,通过AEC-Q100认证,6轴同步输出。可应用于航位推测(Dead reckoning,DR)、振动监测、碰撞检测等应用场景。需要用该模块,阅读DS,做个记录。
电源供电后,模块执行10ms(最大)的引导过程来加载微调参数。启动完成后,加速度计和陀螺仪都会自动配置为关机模式。
当加速度计和陀螺仪同时开启时,加速度计和陀螺仪同步,两个传感器的数据速率是彼此的整数倍。
数字接口
模块可以通过I2C或者SPI进行访问,SPI可以通过软件配置为3线制或4线制(CTRL3_C (12h)寄存器SIM位,默认为4线制),SPI可以工作在模式0(极性为0,相位为0)或者模式3(极性为1,相位为1),工作模式由主设备确定,模块自动适应。I2C和SPI接口共用引脚,I2C对应CS引脚为高电平,SPI对应低电平。注意CS引脚功能,高电平时对应SPI闲置状态和I2C使能状态(使用SPI时应将I2C禁止,CTRL4_C (13h)寄存器对应的I2C_disable 位置1,CTRL9_XL (18h)寄存器对应的DEVICE_CONF位置1)。
工作模式
模块支持三种工作模式:
- 单独加速度计工作,陀螺仪断电或睡眠模式;
- 单独陀螺仪工作,加速度计断电;
- 加速度计和陀螺仪同时工作,各自具有独立的数据输出速率。
默认情况下,加速度计和陀螺仪均为断电状态,加速度计通过写寄存器CTRL1_XL (10h)的ODR_XL[3:0]位激活,陀螺仪通过写寄存器CTRL2_G (11h).的ODR_G[3:0]位激活。加速度计和陀螺仪激活后均可工作在高性能工作状态。
滤波器功能
滤波器框图如下:
1. 陀螺仪滤波
上图中,HP_EN_G由控制寄存器CTRL7_G (16h)设置,该寄存器可配置高通滤波器的截至频率。LPF1_SEL_G由控制寄存器CTRL4_C (13h) 设置,FTYPE[2:0]由控制寄存器CTRL6_G (15h)设置。
2. 加速度计滤波
上图中,HP_SLOPE_XL_EN用于加速度计LPF2、SLOPE FILTER以及HPF的选择,HPCF_XL[2:0]用于LPF2和HPF的配置,同时进行截至频率的设置。
3. FIFO
将数据写入FIFO由加速度计/陀螺仪数据准备好信号触发,用户可灵活配置FIFO。由于FIFO_DATA_OUT_TAG字节允许识别FIFO中数据的含义,FIFO数据流的重构较为简单。可编程的FIFO浮水印阈值可以通过寄存器FIFO_CTRL1(07h)和FIFO_CTRL2(08h)中的WTM[8:0]位进行设置。可以读取专用寄存器(FIFO_STATUS1 (3Ah)、FIFO_STATUS2 (3Bh))来检测FIFO溢出事件、FIFO满状态、FIFO空状态、FIFO水印状态和FIFO中存储的未读样本数量。这些状态事件可以在INT1和INT2插脚上生成专用的中断,具体可在寄存器INT1_CTRL (0Dh)和INT2_CTRL (0Eh)中设置。FIFO缓冲区可以配置为以下6中模式(由寄存器FIFO_CTRL4 (0Ah)中FIFO_MODE_[2:0]进行选择):
- 旁路模式,
- FIFO模式
- 连续模式
- 连续到FIFO模式
- 旁路到连续模式
- 旁路到FIFO模式
FIFO中的数据一个字(word)由7个字节(byte)组成:1个标签字节(FIFO_DATA_OUT_TAG (78h)),6个固定数据字节(FIFO_DATA_OUT)寄存器(79h) 到(7Eh)。寄存器FIFO_STATUS1 (3Ah) 和 FIFO_STATUS2 (3Bh)中的DIFF_FIFO_[9:0]包含FIFO中字的个数。此外,可以配置一个加速度计或陀螺仪的批处理事件的计数器。FIFO_STATUS2 (3Bh)寄存器中的COUNTER_BDR_IA标志位标识计数器达到寄存器COUNTER_BDR_REG1 (0Bh) 和 COUNTER_BDR_REG2 (0Ch))中CNT_BDR_TH_[10:0]给出的阈值,从而触发FIFO的读取。对应的传感器可通过COUNTER_BDR_REG1 (0Bh)寄存器中的TRIG_COUNTER_BDR位确定。对于其它的FIFO状态事件,通过断言INT1_CTRL (0Dh) 寄存器中的INT1_CNT_BDR位以及 INT2_CTRL (0Eh)寄存器中的 INT2_CNT_BDR位,可以将标志位COUNTER_BDR_IA连接到INT1或者INT2引脚。
关于加速度计和陀螺仪传感器配置变化的元信息可以通过启用FIFO_CTRL2 (08h)中的ODR_CHG_EN位来管理。
4. DEN功能
外部触发进行数据采样,此时INT2/DEN引脚应配置为输入。启用该功能后FIFO和输出寄存器中的数据由数据采集触发后模块采集的第一个数据进行填充。DEN的功能在陀螺仪数据采集时时默认打开的。
启动过程
模块上电后自动下载FLASH中的补偿系数到内部寄存器。启动过程结束后(大约10ms),加速度计和陀螺仪自动进入断电模式。可通过寄存器CTRL1_XL、CTRL2_G选取某一工作模式将加速度计和陀螺仪转入上电模式从而采集加速度和角速率数据。
对加速度计:
1、写INT1_CTRL=01h //INT1上的加速度计数据准备好中断信号
2、写CTRL1_XL=60h //ACC ODR=417Hz(高性能模式)
对陀螺仪:
1、写INT1_CTRL=02h //INT1上的陀螺仪数据准备好中断信号
2、写CTRL2_G=60h //Gyro ODR=417Hz(高性能模式)
利用状态寄存器读取数据:
1. Read STATUS_REG
2. If XLDA = 0, then go to 1
3. Read OUTX_L_A
4. Read OUTX_H_A
5. Read OUTY_L_A
6. Read OUTY_H_A
7. Read OUTZ_L_A
8. Read OUTZ_H_A
9. Data processing
10. Go to 1
读出的加速度计和陀螺仪原始数据均为16位2进制补码数。