[运动传感器] LSM6DS3电流过大原来是这个原因

littleshrimp   2018-3-19 13:57 楼主
LSM6DS3是ST的一款6轴力学传感器,3轴加速度+3轴陀螺仪
前段时间在玩STEVAL-IDB007V1板子的发现它上边的LSM6DS3比较耗电
为了找到原因手里的STEVAL-IDB007V1已经被我动了大手术
然后又在淘宝上买了一颗LSM6DS3的开发板拿来解剖
QQ图片20180319133250.png

LSM6DS3耗电大的原因是因为在画板的时候没有处理特定I/O
如果单片机在处于掉电模式下不能实现对应I/O的输出就会导致LSM6DS3的某些引脚处于浮动状态
去掉上拉电阻的评估板
QQ图片20180319133143.png


LSM6DS3同时兼容SPI和I2C接口
通过CS引脚切换
在CS引脚为高时启用I2C接口
在CS引脚为低时启用SPI接口
上电CS默认为高电平
LSM6DS3还包含一个辅助I2C接口,用来控制更多的I2C设备
为了降低LSM6DS3的功耗需要这些具有输入(大概是这样)功能的引脚都要维持高电平或者低电平
除了pin12(CS)引脚
这些引脚包括pin1(SDO/SA0),pin2(SDx),pin3(SCx),pin13(SCL),pin14(SDA)
pin4(INT1)和pin9(INT2)不具备输入功能可以不处理


虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论 (40)

“LSM6DS3耗电大的原因是因为在画板的时候没有处理特定I/O”,虾哥这句话,我表示没有看太懂
点赞  2018-3-20 17:01
引用: huaiqiao 发表于 2018-3-20 17:01
“LSM6DS3耗电大的原因是因为在画板的时候没有处理特定I/O”,虾哥这句话,我表示没有看太懂

把I/O写成引脚会好些
具有输入功能的引脚需要处理,比如接上/下拉电阻或直接连接到电源和地
点赞  2018-3-20 23:00
引用: littleshrimp 发表于 2018-3-20 23:00
把I/O写成引脚会好些
具有输入功能的引脚需要处理,比如接上/下拉电阻或直接连接到电源和地

哦哦,这样啊。
就是说引脚需要配置,不同的配置电流会不一样在你使用的这个中。可以这样理解吗
点赞  2018-3-21 09:27
引用: huaiqiao 发表于 2018-3-21 09:27
哦哦,这样啊。
就是说引脚需要配置,不同的配置电流会不一样在你使用的这个中。可以这样理解吗

要想办法不能让引脚悬空 悬空的输入引脚会特别耗电
前段时间看过一个为什么单片机引脚浮动会影响功耗低文章写的很详细 后来找不到了
点赞  2018-3-21 10:31
引用: littleshrimp 发表于 2018-3-21 10:31
要想办法不能让引脚悬空 悬空的输入引脚会特别耗电
前段时间看过一个为什么单片机引脚浮动会影响功耗低 ...

哦哦,这样啊。

你的意思是在引脚在输入情况下,悬空比较耗电?
那么,比如在一些设计中,其他不用的IO情况,那应该怎么配置。也需要配置么。

说起你提到的这个,我随便找了个STM32F4的中文参考手册。在GPIO那个章节。

引用: 在复位期间及复位刚刚完成后,复用功能尚未激活,I/O  端口被配置为输入浮空模式。



点赞  2018-3-21 10:56
的确是,这个片子比较不按套路出牌。 CS脚说明:I2C/SPI mode selection 1: SPI idle mode / I2C communication enabled; 0: SPI communication mode / I2C disabled 傲游截图20180321151608.png 设置IO的目的就是既不让SPI工作,也不让I2C工作。 CS拉高时,把SDA、SCL也拉高,这样SPI不工作,总线处于空闲状态,I2C不传输数据,但可能会有一定功耗,应该比较节能。 CS拉低时,不管SDA、SCL的状态,I2C都不工作,SPC和SCL复用,SCL必须拉高,才能让SPI不传输数据,但这时传感器是SPI接口是工作的,SPI接口应该会有部分功耗。 本帖最后由 gs001588 于 2018-3-21 15:39 编辑
点赞  2018-3-21 15:36
引用: huaiqiao 发表于 2018-3-21 10:56
哦哦,这样啊。

你的意思是在引脚在输入情况下,悬空比较耗电?
那么,比如在一些设计中,其他不用的 ...

st单片机这方面做得很好 stm32好像推荐配置成模拟输入
bluenrg-1的gpio即使悬空不处理也不会影响功耗
点赞  2018-3-21 16:00
引用: littleshrimp 发表于 2018-3-21 16:00
st单片机这方面做得很好 stm32好像推荐配置成模拟输入
bluenrg-1的gpio即使悬空不处理也不会影响功耗

说实话,很多时候我都管过那些不用的引脚。
就像楼主我给你回复的,复位后,那些不用的引脚应该是默认的输入浮空模式
点赞  2018-3-21 16:12
引用: gs001588 发表于 2018-3-21 15:36
的确是,这个片子比较不按套路出牌。
CS脚说明:I2C/SPI mode selection
      1: SPI idle mode / I ...

CS为高时浮动的引脚可能会触发I2C工作是一种可能还有一种可能是像下边说的那样
295e4ca64746eb74841b3ce7177cb97b.png
当GPIO管脚配置为输入管脚且外部电平处于浮动状态时(0
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-3-21 20:38
引用: huaiqiao 发表于 2018-3-21 16:12
说实话,很多时候我都管过那些不用的引脚。
就像楼主我给你回复的,复位后,那些不用的引脚应该是默认的 ...

设计时如果考虑到了能为以后调试省去很多麻烦
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-3-21 20:38
你好楼主, 我现在在用STM32 通过SPI连接 LSM6Ds3. 但是不知道为什么MISO的数据一直不对,用示波器也看了, MOSI的是对的,但是MISO的不对。 你能分享一下你的电路图吗?我用的是下面的,谢谢
  • Capture.PNG
点赞  2018-7-9 13:39
引用: haaozhang 发表于 2018-7-9 13:39
你好楼主, 我现在在用STM32 通过SPI连接 LSM6Ds3. 但是不知道为什么MISO的数据一直不对,用示波器也看了 ...

MISO是连到传感器板子的jp1-2了吗?数据是什么样的?
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-7-9 13:50
MISO 连到了 SDO/SA0 引脚(第一个引脚),但是没有接上拉电阻,不知道会不会影响。 数据一直是零。但是WHO_AM_I 是对的0X69。 所以很困惑。你在淘宝买的开发版有电路图吗
点赞  2018-7-9 14:05
引用: haaozhang 发表于 2018-7-9 14:05
MISO 连到了 SDO/SA0 引脚(第一个引脚),但是没有接上拉电阻,不知道会不会影响。 数据一直是零。但是WHO ...

WHO AM I 正确就不应该是通信的问题
是不你没配置正确就读OUTx寄存器了?
试试复位读一下0x18或0x19看一下得到的数据和手册上给的一样吗 QQ图片20180709141922.png
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-7-9 14:21
我读了CTRL3_C, 结果是0x00, 应该是0x04. 我写了一个值, 然后又读还是0x00. 我使用cubemx生成的代码。他把所有的GIPO配成 AF_PP的
点赞  2018-7-9 14:32
引用: haaozhang 发表于 2018-7-9 14:32
我读了CTRL3_C, 结果是0x00, 应该是0x04. 我写了一个值, 然后又读还是0x00. 我使用cubemx生成的代码。他 ...

你确定每次读取who am i都是正确的吗?
试试往ctrl3_c写0x01等待一段时间后再读ctrl3_c看看是多少
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-7-9 14:43
WHO_AMI_I 是对的 0x69 准备明天试试加个上拉电阻 试试。 你买的淘宝的板子又电路图吗?MISO 有上拉电阻ma
点赞  2018-7-9 14:46
引用: haaozhang 发表于 2018-7-9 14:46
WHO_AMI_I 是对的 0x69 准备明天试试加个上拉电阻 试试。 你买的淘宝的板子又电路图吗?MISO 有上拉电阻ma

没有电路图,应该有上拉,你可以直接在STM32里加个上拉试试 QQ图片20180709145024.png
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-7-9 14:54
跟我想的一样, 先用内部的试试。 明天测完告诉你结果
点赞  2018-7-9 15:03
123下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复