-
6正好找学习视频
-
谢谢虾哥 最终我终于解决了 发现是我mcu在睡眠前配置加速度中断的时候导致MCU内部错乱导致功耗增大 但是功能能够保持 这就是我查不到的原因 我今天生气了就用刀把板子分成了几个模块,然后测每个模块的功耗 最终发现是MCU问题 但是屏蔽LSM6DSL相关代码功耗又没问题。后面我就一句一句的加LSM6DSL的代码 最终发现问题所在。我将配置代码改在另外一个地方就没有任何问题了 工作电流710uA 就是6轴的360uA+MCU的300多uA加上其他的就是710uA 现在睡眠的功耗是14.3uA 像现在这个就没错了 9uA+muc2.3uA+其他的4uA对得上了 所实话这次的问题解决让我收获很多 谢谢虾哥的支持。谢谢
-
本帖最后由 zf1995 于 2018-4-18 19:00 编辑
接在高电平就没有这270uA的电流了 但是还是不对啊睡眠还是有161uA的电流 按照datasheet上说法应该是9uA才对 最终发现原因是因为模块的SA0/SD0 连接了上拉电阻产生的270ua的电流。哎还是没解决
-
说出来我都不行 居然是SA0引脚 这个决定地址的引脚 我直接将检测SA0引脚的电流发现有273uA 的电流 我是直接连接的地线 这样连接有问题吗?虾哥有什么建议吗?@littleshrimp
-
我用开发板仿真 然后用杜邦线连接 然后测VCC的进入时的电流 发现工作有700多uA 睡眠有400多uA的电流 然后我检测地线回去时的电流发现工作时只有390uA电流 睡眠时有170uA的电流 虽然也不怎么对 但是代表我的其他地方有线短路跑电了 我再检查下。
-
最终发现并不是 我一开始就把角速度关了 睡眠任然有功耗 感觉像是内部被短路了一样了
-
最终我的理论不对 我一开始就把角速度关了还是有这么高的功耗 这个功耗怎么来的暂时没搞懂 感觉像配置的加速度内部短路了
-
不知道我现在回答算不算晚 因为我也遇到了 终于今天解决了 因为你的0x15配置成了0x80 配置成了边沿触发方式。这个模式会不更新角速度的数据 而且0x1e也会只显示更新了温度的数据
-
zf1995 发表于 2018-4-17 16:33
我试过 那样功耗是对的还有就是我吧配置LSM6DSL的代码屏蔽了,功耗也是对的。
现在的现象就像角速度没 ...
看了这个我以为是时间的问题 但是我加大延迟也不行 所以我是真的不知道原因了
-
我试过 那样功耗是对的还有就是我吧配置LSM6DSL的代码屏蔽了,功耗也是对的。
现在的现象就像角速度没掉电一样且处于高性能模式有555uA的电流加上MCU的就对上了570uA的电流了。
而且正常工作是电流也不对 有700多uA我选用的采样频率是104Hz 配置为低功耗模式 但是功耗却是高性能是的功耗0.65mA加上我的muc的100多uA。按照应用手册上的功耗来说应该是360uA+100多uA应该在500uA的电流左右。是不是配置成低功耗是有什么特殊的步骤啊?应用手册的第30页的3.9节倒是说了 但是没看懂。。。
-
littleshrimp 发表于 2018-4-17 14:35
你先参考一下官方例程 我这几天在外边 等回去帮你看看
好的 我的中断也解决了 但是低功耗有问题 睡眠了还有570多ua的电流 正常应该在12uA左右的 我再看看
-
littleshrimp 发表于 2018-4-16 22:22
试试按照我的测试代码先复位 再对ctrl2_g写0x40 然后读取状态和数据
还不行把你的i2c读写函数拿出来看下
谢谢虾哥 我解决了这个问题啊 是因为LSM6DSL_ACC_GYRO_CTRL6_G(0x15)中的TRIG_EN我配置为了1导致角速度不能出现数据。但是遇见新的问题了以前能够唤醒的代码现在不能唤醒了 然后检查中断引脚发现没产生中断了 哎解决一个坑又来一个。我再弄弄。
-
我今天试了下 单步除了第一次有数据 其他都没有和全速是一样的现象。 今天我吧S3的模块取下来焊在我的板子上 能读出数据排除了我硬件问题 我将SL的焊接在S3的模块上发现现象是一样的 排除了是模块的问题。 哎看来还是软件问题 但是原因就不知道了
-
littleshrimp 发表于 2018-4-13 16:51
我用我的BlueCoin Starter kit开发板做了测试,开发板上的传感器是LSM6DSM配置和LSM6DSL一样
陀螺仪只需 ...
对了虾哥 你看下是不是我原理图有问题啊
-
就是这样的情况
-
zf1995 发表于 2018-4-13 17:27
额 我试了下加复位 也是不行 还是一样的。没办法我就换成了LSM6DS3读取数据发现角速度存在偏移 这个是怎 ...
额我 查了下需要校准。
-
本帖最后由 zf1995 于 2018-4-13 17:28 编辑
littleshrimp 发表于 2018-4-13 16:51
我用我的BlueCoin Starter kit开发板做了测试,开发板上的传感器是LSM6DSM配置和LSM6DSL一样
陀螺仪只需 ...
额 我试了下加复位 也是不行 还是一样的。没办法我就换成了LSM6DS3读取数据发现角速度存在偏移 这个是怎么回事?
-
littleshrimp 发表于 2018-4-13 15:11
你可以参考一下官方驱动里都配置了哪些寄存器、对应的值是多少,对比一下
恩 好的 谢谢 官方的驱动不是分开的嘛 得自己调用来配置 我也对比了下 我自己配置应该没问题 不然扶着不会出数据,但是不知道为啥要扶着才能有数据 而且自己画的板子是直接没用 只有加速度的有数据
-
比起更换驱动我更想知道问题出在那里 。而且驱动好难改啊 删除都删死我了:Cry::Cry::Cry:
-
对应#define LSM6DSL_ACC_GYRO_WHO_AM_I_REG 0X0F
#define LSM6DSL_ACC_GYRO_CTRL1_XL 0X10
#define LSM6DSL_ACC_GYRO_CTRL2_G 0X11
#define LSM6DSL_ACC_GYRO_CTRL3_C 0X12
#define LSM6DSL_ACC_GYRO_CTRL4_C 0X13
#define LSM6DSL_ACC_GYRO_CTRL5_C 0X14
#define LSM6DSL_ACC_GYRO_CTRL6_G 0X15
#define LSM6DSL_ACC_GYRO_CTRL7_G 0X16
#define LSM6DSL_ACC_GYRO_CTRL8_XL 0X17
#define LSM6DSL_ACC_GYRO_CTRL9_XL 0X18
#define LSM6DSL_ACC_GYRO_CTRL10_C 0X19
#define LSM6DSL_ACC_GYRO_MASTER_CONFIG 0X1A
#define LSM6DSL_ACC_GYRO_WAKE_UP_SRC 0X1B
#define LSM6DSL_ACC_GYRO_TAP_SRC 0X1C
#define LSM6DSL_ACC_GYRO_D6D_SRC 0X1D
#define LSM6DSL_ACC_GYRO_STATUS_REG 0X1E