资讯详情

MTK 安卓11 传感器兼容 陀螺仪42607-p

考虑到成本或多样性,新传感器往往需要兼容。这一次,陀螺仪icm42607-p分析型号

1.如果传感器首次用于平台或项目,则需要添加传感器驱动文件(FAE如果已经存在,直接进行下一步:

文件存储路径:

vendor\mediatek\proprietary\tinysys\freertos\source\middleware\contexthub\MEMS_Driver\accGyro\icm4n607.c

2.新增陀螺仪i2c配置接口、方向、地址和中断号;

mt6771:项目平台 lv973:项目名

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\\\cust\accGyro\cust_accGyro.c

#include "cust_accGyro.h"  struct accGyro_hw cust_accGyro_hw[] __attribute__((section(".cust_accGyro"))) = {  #ifdef CFG_ICM2060X_SUPPORT     {         .name = "icm2060x",         .i2c_num = 1,         .direction = 2,         .i2c_addr = {0x68, 0},         .eint_num = 4,     }, #endif #ifdef CFG_FIS210X_SUPPORT     {         .name = "fis210x",         .i2c_num = 1,         .direction = 2,         .i2c_addr = {0x6a, 0x6b},         .eint_num = 4,     }, #endif #ifdef CFG_ICM4X607_SUPPORT     {         .name = "icm4n607",         .i2c_num = 1,         .direction = 2,         .i2c_addr = {0x68, 0},         .eint_num = 4,     }, #endif }; 

查看项目配置文件可知,兼容前使用ICM2006X传感器,其中i2c_num,direction,eint_num可完全复制icm2006x宏定义与配置name进行修改,i2c_addr可查看其他平台的配置地址或芯片手册;

3.添加overlay配置

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\lv973\cust\overlay\overlay.c

void accGyroOverlayRemap(void) { ACC_GYRO_OVERLAY_REMAP_START     ACC_GYRO_OVERLAY_REMAP(icm2060x);     ACC_GYRO_OVERLAY_REMAP(icm4n607); ACC_GYRO_OVERLAY_REMAP_END      return; }

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\lv973\inc\overlay_sensor.h

/***************************************************************************** * Overlay0: ACCGYRO *****************************************************************************/ #define OVERLAY_SECTION_ACCGYRO                    \  OVERLAY_ONE_OBJECT(icm2060x, icm2060x)         \     OVERLAY_ONE_OBJECT(icm4n607, icm4n607) #ifdef OVERLAY_SECTION_ACCGYRO #define OVERLAY0 OVERLAY_SECTION_ACCGYRO #else #define OVERLAY0 #endif  // OVERLAY_SECTION_ACCGYRO

4.配置项目配置文件;

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\lv973\ProjectConfig.mk

CFG_ACCGYRO_SUPPORT = yes CFG_LSM6DS3_SUPPORT = no CFG_LSM6DSM_SUPPORT = no CFG_BMI160_SUPPORT = no CFG_LIS3DH_SUPPORT = no CFG_LIS2HH12_SUPPORT = no CFG_FIS210X_SUPPORT = no CFG_ICM2060X_SUPPORT = yes CFG_ICM4X607_SUPPORT = yes

5.如果该平台首次使用该传感器,则需要在编译链接中添加文件;

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\platform\feature_config\chre.mk

ifeq ($(CFG_FIS210X_SUPPORT),yes) C_FILES   = $(SENDRV_DIR)/accGyro/fis210x.c endif ifeq ($(CFG_ICM2060X_SUPPORT),yes) C_FILES   = $(SENDRV_DIR)/accGyro/icm2060x.c endif ifeq ($(CFG_ICM4X607_SUPPORT),yes) C_FILES   = $(SENDRV_DIR)/accGyro/icm4n607.c endif ifeq ($(CFG_MIR3DA_SUPPORT),yes) C_FILES   = $(SENDRV_DIR)/accGyro/mir3da.c CFLAGS  = -DCFG_ACC_NO_FIFO endif endif

如果你觉得文章有用,请表扬博主

标签: lis3dh陀螺仪传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台