Post Go back to editing

ADXL345配置成AUTO_SLEEP模式为什么无法进入正常工作。

Thread Summary

用户询问在ADXL345的AUTO_SLEEP模式下,为何加速度活动未触发中断唤醒MCU。最终答案指出需检查加速度和时间阈值设置,并确认Link和AUTO_SLEEP位已正确置位。用户提供的寄存器配置显示已设置加速度阈值和中断使能,但MCU仍无法从自动休眠模式唤醒。
AI Generated Content

根据手册配置成AUTO_SLEEP模式,当有加速度的时候为什么没有中断进入MCU来唤醒其工作。原本的设计是在AUTO_SLEEP在有加速度的时候能够产生ACTIVITY中断,从而唤醒MCU。

  • 您好,您的问题已经提交给ADI相关专家,将邀请专家尽快回答您的问题。谢谢!

  • 您好。请问能否正确检测到检测到静止中断活动中断,注意加速度和时间的阈值设置。检测到静止需要满足这两个条件的要求,活动中断需要满足加速度阈值的要求。Auto sleep功能LinkAUTO_SLEEP两个bit置位。请发送您的寄存器配置看一下

  • 在测量模式下我的阈值设定是可以检测到静止中断的,但是在休眠模式下静止检测就无效了。

  • 您活动检测是怎样的。请发送寄存器配置看一下

  • Single_Write_ADXL345(POWER_CTL,0x00);

    Single_Write_ADXL345(INT_ENABLE,0x00);

    Single_Write_ADXL345(BW_RATE,0x08);      //0000 0110速率设定为6.25 参考pdf13页

    Single_Write_ADXL345(DATA_FORMAT,0x2F);   //测量范围,正负16g,13位模式  0X2b D5=1,中断设置为低电平有效

    Single_Write_ADXL345(THRESH_ACT,0x01);    //活动阀值(xy)1000MG 62.5mg/L

    Single_Write_ADXL345(THRESH_INACT,0x03);    // 静止阀值(xyz?)(根据实际调整) 时阈

    Single_Write_ADXL345(TIME_INACT,0x03);     //时阈 5s

    // Single_Write_ADXL345(DUR,0xF0);       //敲击检测时阈

    Single_Write_ADXL345(ACT_INACT_CTL,0xEE);    //0110 0110 直(交)流耦合 活动检测使能xy 静止检测使能XY

    Single_Write_ADXL345(0x2F,0x10);    //中断引脚映射INT_MAP , 活动中断配置到INT2,静止中断到INT1

    Single_Write_ADXL345(0x2E,0x18);    //中断使能 INT_ENABLLE

          Single_Read_ADXL345(INT_SOURCE);               //清零中断

    Single_Write_ADXL345(POWER_CTL,0x34);    //电源设置 休眠使能 0x38  0x08 0x34

        Single_Write_ADXL345(0x1E,0x00);   //X 偏移量 根据测试传感器的状态写入pdf29页

        Single_Write_ADXL345(0x1F,0x00);   //Y 偏移量 根据测试传感器的状态写入pdf29页

        Single_Write_ADXL345(0x20,0x05);   //Z 偏移量 根据测试传感器的状态写入pdf29页

    这是我的寄存器配置 ,也是自动休眠进不去,能不能帮小弟看一下