ADI 技术
直播中

周蓓

7年用户 231经验值
私信 关注
[问答]

请问ADLX345能实现运动静止检测?

您好!

第一次用
ADLX345这种芯片,芯片很棒,就是我没搞懂操作.手册读了几遍,还是理解欠缺.
有如下问题,请解答。

  • 芯片应用:
    用ADLX345检测设备是否静止。
了解到该芯片有活动/非活动检测功能。同时也具备低功耗和休眠功能。非常适合我的应用。

  • 想实现的效果:
   
利用该芯片的静止检测功能,实现设备静止时,
ADLX345
产生中断,唤醒MCU。

  • 问题:
  • 寄存器ACT_INACT_CTL中,交流和直流的工作模式,想要实现静止检测的话,哪一种模式更合适?
  • 选定了DC/AC工作模式之后,寄存器THRESH_INACT和tiME_INACT应该设置多少合适?(1g=0x10 1s=0x01.对吧?)
  • 寄存器POWER_CTL的链接位有影响吗。设置POWER_CTL为0x08是否可以?
  • 几寄存器DATA_FORMAT的自测力设置是否有影响?设置DATA_FORMAT为0x2B是否可以?
  • 寄存器FIFO_CTL、FIFO_STATUS没有进行设置,默认值是否可以?
  • 读取的寄存器INT_SOURCE的中断源需要清零吗?怎么清除?
  • XYZ偏移量怎么设置,寄存器的值怎么计算?
  • IIC读取的XYZ的加数度值(高低位合并后的值),是否需要换算成g为单位的加速度值,换算方法是用读取的原始值/256LSB/g吗?
  • 休眠和低功耗的设置,这种设置之下寄存器的配置.
ADLX345水平放置,
现在读取的XYZ的数据为7 1 248,是正常的吧.


我自己的寄存器配置如下:

  I2C_Write(OFSX,0x00);   //X 偏移量 根据测试传感器的状态写入pdf29页
   I2C_Write(OFSY,0x00);   //Y 偏移量 根据测试传感器的状态写入pdf29页
   I2C_Write(OFSZ,0x00);   //Z 偏移量 根据测试传感器的状态写入pdf29页
   
   I2C_Write(THRESH_INACT,0x08);   //静止阈值 0.5g
   I2C_Write(TIME_INACT,0x01);   //静止时间 1s
   I2C_Write(ACT_INACT_CTL,0x07);   //静止检测DC耦合  
   I2C_Write(BW_RATE,0x07);   //低功率模式OFF 速率设定为6.25 参考pdf13页  
   
   I2C_Write(INT_MAP,0x00);   //使能 INT1 中断
   I2C_Write(DATA_FORMAT,0x2B);   //中断低电平有效 全分辨率 右对齐 ±16g,


   I2C_Write(POWER_CTL,0x08);   //自动休眠off 测量模式 参考pdf24页
   I2C_Write(INT_ENABLE,0x08);   //使能 inactivity 中断


谢谢!
谢谢!

回帖(1)

王蔚

2019-1-29 14:00:28
非常感谢您对ADI产品的关注!
针对您的问题:
1. DC和AC模式都可以选择,区别在于,DC模式下,每个采样点的加速度值直接与阈值(THRESH_ACT或者THRESH_INACT)比较;而在AC模式下,新的采样点参考以前的某个采样点,以两个采样点的差值与阈值作比较;
2. 关于阈值大小与持续时间的设置,需要看您的应用来配置,阈值的比例因子是62.5mg/LSB,时间是1sec/LSB;
关于寄存器的配置,可以参考AN-1023中的具体事例,文档提供了对静止检测的算法原理,寄存器配置,参考代码,阅读一下就可以解决问题。
http://www.analog.com/media/cn/technical-documentation/application-notes/AN-1023_cn.pdf  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分