5685|15

10

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

LSM6DS3TR的INT1检测不到中断 [复制链接]

 
  本帖最后由 piaoroumi 于 2018-11-2 11:26 编辑

读取WHO_AM_I 得到69,
配置加速计:
          gYroscopeWrite(CTRL9_XL, 0x38);//XL configure
          gYroscopeWrite(CTRL1_XL, 0x60);//XL configure
          gYroscopeWrite(INT1_CTRL, 0x01);//

然后移动板子, INT1没有中断出来. 试了2块板子, 都一样.
求教一下大侠们, 可能是哪里的问题?  寄存器写进去读出来也是对的.

最新回复

陀螺仪计算角度存在长期漂移,建议使用磁力计,或者使用磁力计配合陀螺仪使用 如果只是想判断是否开门可以通过判断角速度的大小来实现,不开门的时候角速度接近0 开门的时候角速度会增加,因为不是绝对数据,所以如果开门的速度足够慢会无法检测  详情 回复 发表于 2018-12-29 15:21
点赞 关注(1)
 
 

回复
举报

9792

帖子

24

TA的资源

版主

沙发
 
你想让INT1输出什么中断?
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
littleshrimp 发表于 2018-11-2 17:11
你想让INT1输出什么中断?

有加速计数据就绪的时候, INT1的状态改变

点评

你看一下这个贴子,有完整的工程 https://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=649230&highlight=LSM6DSl  详情 回复 发表于 2018-11-2 17:39
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

4
 
怎么配寄存器能简单地实现加速计有数据的时候, INT1有中断呢?
 
 
 

回复

9792

帖子

24

TA的资源

版主

5
 
piaoroumi 发表于 2018-11-2 17:32
有加速计数据就绪的时候, INT1的状态改变

你看一下这个贴子,有完整的工程
https://bbs.eeworld.com.cn/forum ... 0&highlight=LSM6DSl
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

6
 
谢谢虾哥. 我研究一下!
 
 
 

回复

9792

帖子

24

TA的资源

版主

7
 
本帖最后由 littleshrimp 于 2018-11-4 13:55 编辑

我做了一个测试,如果只按照你的配置方法配置LSM6DS3寄存器确实存在不能触发中断的情况
然后我在代码里增加了上电先复位LSM6DS3,然后再配置对应的寄存器,中断正常
同样,在上电不复位的情况下,在配置好寄存器以后读取一次输出寄存器,中断也正常

你可以试一下这两种方法
问题可能是器件配置好以后数据准备好,INT1引脚输出高电平,单片机因为复位等原因没有及时读取中断
再运行时中断引脚为高电平没法再次触发上升沿断中断导致
除以上两种方法还可以尝试使用高电平中断或者上升沿中断时判断一下引脚电平
测试代码:

  1.   static uint8_t who_am_i;
  2.   //WHO_AM_I (0Fh)
  3.   HAL_I2C_Mem_Read(&hi2c1,0xd4,0x0f,I2C_MEMADD_SIZE_8BIT,&who_am_i,1,0x100);
  4.   static uint8_t reg;
  5.   //CTRL3_C (12h) 0x01 SOFT REST
  6.   reg = 0x01;
  7. #warning "1.上电时复位传感器"
  8. // HAL_I2C_Mem_Write(&hi2c1,0xd4,0x12,I2C_MEMADD_SIZE_8BIT,®,1,0x100);
  9.   HAL_Delay(500);
  10.   //CTRL3_C (12h) 0x44 BDU IF_INC  
  11.   reg = 0x44;
  12. // HAL_I2C_Mem_Write(&hi2c1,0xd4,0x12,I2C_MEMADD_SIZE_8BIT,®,1,0x100);
  13.   //CTRL9_XL (18h) x,y,z en
  14.   reg = 0x38;
  15.   HAL_I2C_Mem_Write(&hi2c1,0xd4,0x18,I2C_MEMADD_SIZE_8BIT,®,1,0x100);
  16.   //CTRL1_XL (10h)
  17.   reg = 0x60;
  18.   HAL_I2C_Mem_Write(&hi2c1,0xd4,0x10,I2C_MEMADD_SIZE_8BIT,®,1,0x100);
  19.   //INT1_CTRL (0Dh)
  20.   reg = 0x01;
  21.   HAL_I2C_Mem_Write(&hi2c1,0xd4,0x0d,I2C_MEMADD_SIZE_8BIT,®,1,0x100);
  22.   
  23. #warning "2.配置好以后读取一次output寄存器"
  24. //  HAL_I2C_Mem_Read(&hi2c1,0xd4,0x28,I2C_MEMADD_SIZE_8BIT,buffer,6,0x100);
  25.   /* USER CODE END 2 */

  26.   /* Infinite loop */
  27.   /* USER CODE BEGIN WHILE */
  28.   while (1)
  29.   {

  30.   /* USER CODE END WHILE */

  31.   /* USER CODE BEGIN 3 */
  32.     if(lsm63se_drdy_flag)
  33.     {
  34.        lsm63se_drdy_flag = 0;
  35.        HAL_I2C_Mem_Read(&hi2c1,0xd4,0x1e,I2C_MEMADD_SIZE_8BIT,&status,1,0x100);
  36.        if(status & 0x01)
  37.        {
  38.           HAL_I2C_Mem_Read(&hi2c1,0xd4,0x28,I2C_MEMADD_SIZE_8BIT,buffer,6,0x100);
  39.        }
  40.     }
  41.   }
  42.   /* USER CODE END 3 */
复制代码



测试工程文件:
使用NUCLEO-L496ZG开发板,STM32CubeMX创建工程,I2C与LSM6DSL通信,CS、SA0接低电平,CS接高电平,PA5连接LSM6DS3_INT1引脚,上升沿中断,无上下拉电阻
lsm6ds3 nucleo-l496zg.rar (9.03 MB, 下载次数: 62)


个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

8
 
前段时间又忙别的东西, 上来发现虾哥又为我答疑解惑了. 真的非常感激, 我马上试一下
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

9
 
虾哥, 我已经按照您的配置, 得到了中断. 并且我配成了单击产生中断.
我说一下我的应用场景. 我们在做智能锁方案这块. 因为客户提出已经有供应商在做陀螺仪来检测开关门了. 所以我们也想上这种方案.
思路是:关好门的时候做好校准. 然后门动的时候通过陀螺仪计算门的角度, 来判断门的开关状态.
我想请问:这样的思路可行吗?
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

10
 
虾哥, 我做了测试. 用你的方法配置了. 得到中断了, 非常感谢.
我们的应用场景是这样的:
在门关闭的时候, 做初始化. 然后用陀螺仪去计算门的开合角度. 实现自动关门的功能.
我想问, 这样的使用方式是否可行?

点评

应该可以 陀螺仪工作的时候电流会大一些 电池供电需要注意 还有就是陀螺仪计算开门的角度是相对角度 可以配合加速度判断关门检测 还有一个方法是使用磁力计 相当于把指南针放在门上 周围有固定磁场感染可以通过校  详情 回复 发表于 2018-11-25 07:56
 
 
 

回复

9792

帖子

24

TA的资源

版主

11
 
piaoroumi 发表于 2018-11-24 18:27
虾哥, 我做了测试. 用你的方法配置了. 得到中断了, 非常感谢.
我们的应用场景是这样的:
在门关闭的时候,  ...

应该可以 陀螺仪工作的时候电流会大一些 电池供电需要注意 还有就是陀螺仪计算开门的角度是相对角度 可以配合加速度判断关门检测
还有一个方法是使用磁力计 相当于把指南针放在门上
周围有固定磁场感染可以通过校准解决 计算出开门的绝对角度
缺点是怕动态磁场干扰 比如传感器外边有人拿一块磁铁晃几下可能就会误判
必要时可以把这三个结合起来

点评

我现在已经使能了陀螺仪, 并且读到了中断, 然后发现会一直产生中断. 我希望在门没动的情况下不要有中断产生. 只有动的时候才有. 能在哪里设置角速度的阈值呢?  详情 回复 发表于 2018-11-26 11:28
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

12
 
littleshrimp 发表于 2018-11-25 07:56
应该可以 陀螺仪工作的时候电流会大一些 电池供电需要注意 还有就是陀螺仪计算开门的角度是相对角度 可以 ...

我现在已经使能了陀螺仪, 并且读到了中断, 然后发现会一直产生中断. 我希望在门没动的情况下不要有中断产生. 只有动的时候才有. 能在哪里设置角速度的阈值呢?
/* íó?Yò?3?ê??ˉ********
************************/
void gYroscopeG_Init(void)
{
                gYroscopeWrite(CTRL2_G, 0x1C);//
          gYroscopeWrite(CTRL6_C, 0x70);
                gYroscopeWrite(CTRL7_G, 0x43);
                gYroscopeWrite(INT1_CTRL, 0x02);//ê1?üíó?Yò??D??.
}

点评

正常情况下你需要一直接收数据然后分析出开门的角度lsm6ds3有4D或6D阈值触发中断功能,应该不能满足你的要求 [attachimg]388998[/attachimg] [attachimg]388999[/attachimg]  详情 回复 发表于 2018-11-26 11:48
 
 
 

回复

9792

帖子

24

TA的资源

版主

13
 
piaoroumi 发表于 2018-11-26 11:28
我现在已经使能了陀螺仪, 并且读到了中断, 然后发现会一直产生中断. 我希望在门没动的情况下不要有中断产 ...

正常情况下你需要一直接收数据然后分析出开门的角度lsm6ds3有4D或6D阈值触发中断功能,应该能满足你的要求






个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

14
 
那估计使用不了, 我不能一直醒着的。 是一个功耗敏感系统
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
piaoroumi 发表于 2018-11-24 18:27
虾哥, 我做了测试. 用你的方法配置了. 得到中断了, 非常感谢.
我们的应用场景是这样的:
在门关闭的时候,  ...

兄台,我看到你的门开关方案:在门关闭的时候, 做初始化. 然后用陀螺仪去计算门的开合角度. 实现自动关门的功能
你们实现了吗?
我现在做个毕业设计,选的这个样例,想向你请教下这个方案思路和实现方式

点评

陀螺仪计算角度存在长期漂移,建议使用磁力计,或者使用磁力计配合陀螺仪使用 如果只是想判断是否开门可以通过判断角速度的大小来实现,不开门的时候角速度接近0 开门的时候角速度会增加,因为不是绝对数据,所以  详情 回复 发表于 2018-12-29 15:21
 
 
 

回复

9792

帖子

24

TA的资源

版主

16
 
devil'eye 发表于 2018-12-27 14:20
兄台,我看到你的门开关方案:在门关闭的时候, 做初始化. 然后用陀螺仪去计算门的开合角度. 实现自动关门 ...

陀螺仪计算角度存在长期漂移,建议使用磁力计,或者使用磁力计配合陀螺仪使用
如果只是想判断是否开门可以通过判断角速度的大小来实现,不开门的时候角速度接近0
开门的时候角速度会增加,因为不是绝对数据,所以如果开门的速度足够慢会无法检测
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表