已回答假定已回答

adlx345 静止检测问题 谢谢!

tianye907 在 2018-5-9 詢問的問題
最後回覆由tianye907於2018-5-9提供

您好!

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

  • 芯片应用:

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

  • 想实现的效果:

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

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

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 中断

 

谢谢!谢谢!

 

結果