关于6轴传感器LSM6DSLTR的调试说明
关于6轴传感器LSM6DSLTR的调试说明
- AP的检测脚需要配置为pull-down的,不能配置为pull-up,否则中断脚一直是高;sensor的int1脚配置为open-drain模式:
- 可以配置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
- 上报的单位问题:
量程控制是由寄存器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的调试说明相关推荐
- keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...
之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言.我们尽量满足. 1.1 移植思路 先找到驱动:也许内核里已经有,也许需 ...
- FXOS8700CQ 6轴传感器的介绍与调试
简介 FXOS8700CQ 6轴传感器是NXP推出的一款在小型 3 x 3 x 1.2 mm QFN 塑料封装中结合了先进的 3 轴加速度传感器(±2g/±4g/±8g) 和 3 轴磁力计传感器. 这 ...
- 【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608
在线课堂:https://www.100ask.net/index(课程观看) 论 坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...
- arduino调试BNO080高精准度九轴传感器模块
arduino调试BNO080高精准度九轴传感器模块 原文链接:https://www.yourcee.com/newsinfo/2925867.html 1.简介 2.原理图 3.使用前准备 4.接 ...
- VR中的9轴传感器(重力加速度/陀螺仪/磁力计)
ref:https://blog.csdn.net/dabenxiong666/article/details/53836503 前言 传感器的调试过程,一般根据原厂提供demo代码,调试数据接口,将 ...
- 【翻译】利用加速度求解位置的算法——三轴传感器
cposture 一个小白的技术成长之路 [翻译]利用加速度求解位置的算法--三轴传感器 http://www.cnblogs.com/cposture/p/4378922.html 摘要 ...
- 利用加速度求解位置的算法——三轴传感器
转载的一篇文章,跟自己做过的一个车载项目类似,也算是标记一下吧. ---------------------------------------分割线------------------------- ...
- 【STM32Cube】学习笔记(三):六轴传感器
文章目录 摘要 一.简介 1.I2C原理 2.MPU6050介绍 3.MPU6050寄存器介绍 4.DMP使用 二.硬件电路设计 三.软件设计 1.CubeMX配置 2.CubeIDE代码 3.结果显 ...
- DA14580开发板与lis2ds12三轴传感器数据显示实现
目录 第一:DA14580芯片 第二:DA14580 开发例程目录和SDK目录结构 第三:了解SDK例程代码 第四:蓝牙profile和应用的角色和分工 第五:应用开发框架 第六:LIS2DS12三轴 ...
最新文章
- python写程序求1-3+5-7+...-99+101的值-python基本练习
- Quartz集成到 Spring
- nodejs开发 过程中express路由与中间件的理解 - pyj063 - 博客园
- Linux数码管和点阵程序,随笔:python turtle绘制八段数码管和共阳极8x8led点阵
- Transactional 事务
- WebService学习总结(3)——使用java JDK开发WebService
- 马云行业预测:人工智能下,未来10年机器人占领职场
- Codeforces Gym 101142 C. CodeCoder vs TopForces(思维+图论)
- win10+VS2013+OPENCV如何配置于仕琪人脸检测算法
- 电脑重装系统误删重要数据了怎么办
- 什么是项目沟通管理?
- python统计分析-卡方分析和方差分析
- springcloud入门——config分布式配置中心
- 如何在微信中下载APP
- 叶蔬菜种子行业调研报告 - 市场现状分析与发展前景预测
- Centos ansible部署,启动服务失败
- 为什么抖音账号作品很少粉丝却很多,抖音删除的粉丝还能看到吗
- Mac版3D动画建模渲染工具C4D R26
- 在CentOS 7最小环境下安装Cinnamon桌面环境
- 如何在GitHub上传并更新项目
热门文章
- 网页拉流rtmp服务器,rtmp服务器以及rtmp推流/拉流/转发
- Python 常见文件格式 .py .pyc .pyw .pyo .pyd
- 读书笔记 | 之Photoshop里Pantone色类型该如何选择
- 游戏资讯及后台管理的开发与实现
- 安装GotoBLAS和hpl
- python实现多元线性拟合、一元多项式拟合、多元多项式拟合
- 公众号营销是小程序运营的天然入口
- java 获取日期是否是工作日(包括正常工作日和节假日调休补班)
- 厉害了,一根网线发起的攻击!
- MySQL最后一步四勾都没√解决办法