您好!
第一次用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 中断