1 .COD 原理
COD 支持按需校准陀螺仪的X和Y轴。QMI8658A可以校准陀螺仪的X和Y轴的内部增益,提供更精确的灵敏度和更紧密的灵敏度分布。注意:Z轴不受COD影响。
1.1 运行COD的步骤
- 设置CTRL7.aEN = 0 和 CTRL7.gEN = 0 以禁用加速度计和陀螺仪。
- 通过CTRL9命令发送CTRL_CMD_ON_DEMAND_CALIBRATION (0xA2)。
- 等待大约1.5秒,直到QMI8658A完成CTRL9命令。
- 读取COD_STATUS寄存器(0x46)以检查COD执行的结果和状态。
1.2 COD状态
如果COD命令成功执行,COD_STATUS寄存器将输出0x00表示成功。非零值表示不同的失败模式。参阅COD状态寄存器(5.7)的详细信息。
1.3 保存和恢复新的增益参数
在成功运行COD后,新的增益将应用于未来的X和Y轴数据,并将这些参数更新到以下寄存器,供主机读取和保存:
- 陀螺仪-X增益 (16 bits) 将存储在dVX_L和dVX_H寄存器 (0x51, 0x52)
- 陀螺仪-Y增益 (16 bits) 将存储在dVY_L和dVY_H寄存器 (0x53, 0x54)
- 陀螺仪-Z增益 (16 bits) 将存储在dVZ_L和dVZ_H寄存器 (0x55, 0x56)
1.4恢复增益参数
- 禁用加速度计和陀螺仪 (设置CTRL7.aEN = 0 和 CTRL7.gEN = 0)。
- 将保存的陀螺仪-X增益写入寄存器CAL1_L和CAL1_H (0x0B, 0x0C)。
- 将保存的陀螺仪-Y增益写入寄存器CAL2_L和CAL2_H (0x0D, 0x0E)。
- 将保存的陀螺仪-Z增益写入寄存器CAL3_L和CAL3_H (0x0F, 0x10)。
- 写入0xAA到CTRL9寄存器以执行CTRL_CMD_APPLY_GYRO_GAINS命令。
2. COD状态寄存器
COD_STATUS寄存器地址:0x46
Bits | 名称 | 默认 | 描述 |
---|---|---|---|
7 | X_Limit_L_Fail | 1’b0 | 0: COD通过低灵敏度检查; 1: COD失败 |
6 | X_Limit_H_Fail | 1’b0 | 0: COD通过高灵敏度检查; 1: COD失败 |
5 | Y_Limit_L_Fail | 1’b0 | 0: COD通过低灵敏度检查; 1: COD失败 |
4 | Y_Limit_H_Fail | 1’b0 | 0: COD通过高灵敏度检查; 1: COD失败 |
3 | Accel_Check | 1’b0 | 0: 加速度计检查通过; 1: 加速度计检查失败 |
2 | Startup_Failed | 1’b0 | 0: 陀螺仪启动成功; |