关于6轴传感器LSM6DSLTR的调试说明

  1. AP的检测脚需要配置为pull-down的,不能配置为pull-up,否则中断脚一直是高;sensor的int1脚配置为open-drain模式:
  2. 可以配置wakeup中断,阈值设置为1.2g产生中断。
    在lsm6dsl_init_sensors函数中添加:
printk(KERN_ERR "------sy: set wakeup---  \n");err = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_ACCEL_ODR_ADDR,   //CTRL1_XL  0x100x40,LSM6DSL_EN_BIT, false);
//这个参数必须是false,否则导致卡死err = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_ACCEL_ODR_ADDR,   //0x100x20,LSM6DSL_EN_BIT, false);err = lsm6dsl_write_data_with_mask(sdata->cdata,0x0B,   //dataReady mode    0x0B  set pluse mode0x80,LSM6DSL_EN_BIT, false);//打开基本的中断:wakeup free-fall,具体使用哪些,在别的寄存器控制err = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_LIR_ADDR,   //TAP_CFG: 0x580x80,LSM6DSL_EN_BIT, false);//HPF applyerr = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_LIR_ADDR,   //0x580x10,LSM6DSL_EN_BIT, false);//设置唤醒阈值wake up thr set 101  1.2/(16g/64)=4.8err = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_WAKE_UP_ADDR,0x04,LSM6DSL_EN_BIT, false);//err = lsm6dsl_write_data_with_mask(sdata->cdata,//                 LSM6DSL_WAKE_UP_ADDR,//                 0x02,//                 LSM6DSL_EN_BIT, false);err = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_WAKE_UP_ADDR,0x01,LSM6DSL_EN_BIT, false);//route wake_up to int1err = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_MD1_ADDR,  //005e0x20,LSM6DSL_EN_BIT, false);//int1 int2 set open-drainerr = lsm6dsl_write_data_with_mask(sdata->cdata,LSM6DSL_BDU_ADDR,0x10, LSM6DSL_EN_BIT, false);//end: shiyan added
  1. 上报的单位问题:
    量程控制是由寄存器CTRL1_XL (10h)的bit2和bit3,如下:
    #define LSM6DSL_ACCEL_FS_ADDR 0x10
    #define LSM6DSL_ACCEL_FS_MASK 0x0c
    如下值是设置的量程:
    #define LSM6DSL_ACCEL_FS_2G_VAL 0x00
    #define LSM6DSL_ACCEL_FS_4G_VAL 0x02
    #define LSM6DSL_ACCEL_FS_8G_VAL 0x03
    #define LSM6DSL_ACCEL_FS_16G_VAL 0x01
    如下值是对应的增益:
    #define LSM6DSL_ACCEL_FS_2G_GAIN 1
    #define LSM6DSL_ACCEL_FS_4G_GAIN 2
    #define LSM6DSL_ACCEL_FS_8G_GAIN 4
    #define LSM6DSL_ACCEL_FS_16G_GAIN 8
    以FS_SEL=1为例,这时加速度的量程为-16g到+16g。
    代码中上报的是16位的数:
    xyz[0] = ((s16)(data[0] | (data[1] << 8)));
    xyz[1] = ((s16)(data[2] | (data[3] << 8)));
    xyz[2] = ((s16)(data[4] | (data[5] << 8)));
    *xyz[0] *= sdata->c_gain;
    xyz[1] *= sdata->c_gain;
    xyz[2] = sdata->c_gain;
    这里上报的是采样值会乘以gain,不同的量程,gain不一样,但是对于同一个物理值用不同的档位测试,结果是一样的。
    上报加速度的值按照单位g/16384,即1g的加速度上报16384。HAL层会 乘以(GRAVITY_EARTH /16384)
    #define ACCEL_CONVERT (GRAVITY_EARTH /16384)
    #define CONVERT_ACCEL_X ACCEL_CONVERT
    #define CONVERT_ACCEL_Y ACCEL_CONVERT
    #define CONVERT_ACCEL_Z ACCEL_CONVERT
    #define GRAVITY_EARTH (9.80665f)
    float value = event->value;
    mPendingEvent.data[0] = value * CONVERT_ACCEL_X;
    量程是±2g时,按照原始值上报;
    量程是±4g时,按照原始值<<1位上报;
    其他类推。

关于6轴传感器LSM6DSLTR的调试说明相关推荐

  1. keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...

    之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言.我们尽量满足. 1.1 移植思路 先找到驱动:也许内核里已经有,也许需 ...

  2. FXOS8700CQ 6轴传感器的介绍与调试

    简介 FXOS8700CQ 6轴传感器是NXP推出的一款在小型 3 x 3 x 1.2 mm QFN 塑料封装中结合了先进的 3 轴加速度传感器(±2g/±4g/±8g) 和 3 轴磁力计传感器. 这 ...

  3. 【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  4. arduino调试BNO080高精准度九轴传感器模块

    arduino调试BNO080高精准度九轴传感器模块 原文链接:https://www.yourcee.com/newsinfo/2925867.html 1.简介 2.原理图 3.使用前准备 4.接 ...

  5. VR中的9轴传感器(重力加速度/陀螺仪/磁力计)

    ref:https://blog.csdn.net/dabenxiong666/article/details/53836503 前言 传感器的调试过程,一般根据原厂提供demo代码,调试数据接口,将 ...

  6. 【翻译】利用加速度求解位置的算法——三轴传感器

    cposture 一个小白的技术成长之路 [翻译]利用加速度求解位置的算法--三轴传感器 http://www.cnblogs.com/cposture/p/4378922.html 摘要      ...

  7. 利用加速度求解位置的算法——三轴传感器

    转载的一篇文章,跟自己做过的一个车载项目类似,也算是标记一下吧. ---------------------------------------分割线------------------------- ...

  8. 【STM32Cube】学习笔记(三):六轴传感器

    文章目录 摘要 一.简介 1.I2C原理 2.MPU6050介绍 3.MPU6050寄存器介绍 4.DMP使用 二.硬件电路设计 三.软件设计 1.CubeMX配置 2.CubeIDE代码 3.结果显 ...

  9. DA14580开发板与lis2ds12三轴传感器数据显示实现

    目录 第一:DA14580芯片 第二:DA14580 开发例程目录和SDK目录结构 第三:了解SDK例程代码 第四:蓝牙profile和应用的角色和分工 第五:应用开发框架 第六:LIS2DS12三轴 ...

最新文章

  1. python写程序求1-3+5-7+...-99+101的值-python基本练习
  2. Quartz集成到 Spring
  3. nodejs开发 过程中express路由与中间件的理解 - pyj063 - 博客园
  4. Linux数码管和点阵程序,随笔:python turtle绘制八段数码管和共阳极8x8led点阵
  5. Transactional 事务
  6. WebService学习总结(3)——使用java JDK开发WebService
  7. 马云行业预测:人工智能下,未来10年机器人占领职场
  8. Codeforces Gym 101142 C. CodeCoder vs TopForces(思维+图论)
  9. win10+VS2013+OPENCV如何配置于仕琪人脸检测算法
  10. 电脑重装系统误删重要数据了怎么办
  11. 什么是项目沟通管理?
  12. python统计分析-卡方分析和方差分析
  13. springcloud入门——config分布式配置中心
  14. 如何在微信中下载APP
  15. 叶蔬菜种子行业调研报告 - 市场现状分析与发展前景预测
  16. Centos ansible部署,启动服务失败
  17. 为什么抖音账号作品很少粉丝却很多,抖音删除的粉丝还能看到吗
  18. Mac版3D动画建模渲染工具C4D R26
  19. 在CentOS 7最小环境下安装Cinnamon桌面环境
  20. 如何在GitHub上传并更新项目

热门文章

  1. 网页拉流rtmp服务器,rtmp服务器以及rtmp推流/拉流/转发
  2. Python 常见文件格式 .py .pyc .pyw .pyo .pyd
  3. 读书笔记 | 之Photoshop里Pantone色类型该如何选择
  4. 游戏资讯及后台管理的开发与实现
  5. 安装GotoBLAS和hpl
  6. python实现多元线性拟合、一元多项式拟合、多元多项式拟合
  7. 公众号营销是小程序运营的天然入口
  8. java 获取日期是否是工作日(包括正常工作日和节假日调休补班)
  9. 厉害了,一根网线发起的攻击!
  10. MySQL最后一步四勾都没√解决办法