完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在做activity中断的时候,使用交流耦合,使能xy轴,阀值设定为0x10,水平静止放置芯片,测的数据寄存器的xy轴数据在-70左右而且稳定,以读取0x2b寄存器发现y轴有事件发生,读取0x30 中断源是0x93表明是activity中断,但是xy轴数据稳定,没道理会有1g的跳动啊,我又试了一下0x18,也会出现经常中断,最后阀值设定为0x28,才使得没有中断发生。器件水平静止无任何人为振动或敲击它。
x轴向上,绕x旋转,XYZ 3个数据应该会这么样呢?小弟我刚搞这个传感器,求高人指教,谢谢 |
|
相关推荐
16个回答
|
|
您好。ADXL345做activity检测使用的是非抽取数据,输出的数据是抽取数据,带宽也更低。中断触发时可能在输出数据上看来没有满足设置条件。
但是您的设置条件和数据相差较多。请您检查芯片的供电,注意电源的去耦。请回读寄存器设置,检查写入值和回读值是否一致 |
|
|
|
st94wo 发表于 2018-11-30 17:21 首先谢谢您在百忙之中对我的问题的回答。但是我太理解您说的非抽取数据和抽取数据是什么意思?我不太明白,是不是非抽取数据和抽取数据并不一样,非抽取数据要比抽取数据大?我刚搞这个传感器,看到adxl345手册好像并没有提到。 那个我的寄存器写入值,进行回读得到的值是正确的,就是写入与读取操作是没有问题的。 我本来想在敲击桌面来使adxl345产生中断,实际上中断是产生了,但是我试图通过读取XYZ寄存器来获取这个产生中断的数据值,但是获取不到超过设定阀值的值。不知道怎么回事 |
|
|
|
光摄微针 发表于 2018-11-30 17:28 您好。active检测使用的数据和输出的数据并不完全一样,详细的阐述请您参考手册THRESHOLD部分。 但是您的设置条件和检测的结果相差较大。检测到中断后,中断是否清楚了,一直有active中断产生。实验环境中有没有振动等干扰条件。您可以将传感器电路静止平放在试验台,单独试验每个轴的中断情况。您试验过几颗传感器 |
|
|
|
st94wo 发表于 2018-11-30 17:35 每次有中断都清除了,目前测试了6个芯片,都是同一个批次的 |
|
|
|
楼主,目前我也遇到这样的问题请问你是如何解决的,看了手册阈值部分好像也没有具体说清楚。 |
|
|
|
st94wo 发表于 2018-11-30 17:35 你好,我也遇到同样的问题,我把阈值设定在2g手只要轻轻的要个晃动,就能够让ADXL345产生ACTIVITY中断,能给我解释一下这是什么问题吗?谢谢! |
|
|
|
jdjfuwegs 发表于 2018-11-30 18:27 您好。如果使用DC的活动检测,因为存在重力加速度,Z轴(和传感器放置有关)可能会有1g的加速度信号。到2g的阈值距离有1g。可以尝试改变阈值,使用AC方式,也可以连续读取加速度数值看实际加速度信号大小 |
|
|
|
st94wo 发表于 2018-11-30 18:32 你好!我最近在做adxl345相关的实验。做到相对阈值活动中断触发时遇到了问题。 有个疑问:相对阈值检测时,参考值是开始测试时的值。这个开始测试是如何界定的?是芯片上电时还是每个前一次中断被触发时的值? 下面是我的部分程序,你帮忙看看设置是否有问题。(测试现象时:x轴每次移动角度与前一次有一定的差值时才会触发中断,与上电时的初试状态位值无关。) ADXL345_SetRegisterValue(ADXL345_POWER_CTL,0x00); ADXL345_SetRegisterValue(ADXL345_INT_ENABLE,0x00); ADXL345_SetRegisterValue(ADXL345_DATA_FORMAT,0X0B); ADXL345_SetRegisterValue(ADXL345_BW_RATE,0x0A); ADXL345_SetRegisterValue(ADXL345_OFSX,0x00); ADXL345_SetRegisterValue(ADXL345_OFSY,0x00); ADXL345_SetRegisterValue(ADXL345_OFSZ,0x00); ADXL345_SetRegisterValue(ADXL345_THRESH_ACT, 0x01); ADXL345_SetRegisterValue(ADXL345_THRESH_INACT, 0x01); ADXL345_SetRegisterValue(ADXL345_TIME_INACT, 0x01); ADXL345_SetRegisterValue(ADXL345_ACT_INACT_CTL, 0xc0);// AC-x axis Enable ADXL345_SetRegisterValue(ADXL345_INT_MAP, 0x08);//activity -- INT1 ADXL345_SetRegisterValue(ADXL345_INT_ENABLE,0x18); ADXL345_SetRegisterValue(ADXL345_POWER_CTL,0x08); ADXL345_GetRegisterValue(ADXL345_ACT_TAP_STATUS); ADXL345_GetRegisterValue(ADXL345_INT_SOURCE); 中断触发后及时清中断: ADXL345_GetRegisterValue(ADXL345_ACT_TAP_STATUS); ADXL345_GetRegisterValue(ADXL345_INT_SOURCE); |
|
|
|
云汉007 发表于 2018-11-30 18:47 您好。使用AC活动检测,活动检测开始时的加速度值会取做参考值,"the acceleration value at the start of activity detection is taken as a reference value. New samples of acceleration are then compared to this reference value," 请参考数据手册ACT AC/DC and INACT AC/DC Bits部分。 |
|
|
|
st94wo 发表于 2018-11-30 19:03 您好! 首先谢谢您的回答。您提到的文档部分我阅读了好几遍。 对“at the start of activity detection”一直不能深刻理解。 它是指活动中断开始使能的那一刻吗? 顺便帮我看下,上面发的程序部分是否可以进行ACT AC检测? 谢谢!! |
|
|
|
云汉007 发表于 2018-11-30 19:19 您好。请参考链接中的讨论ADXL345: Question about reference values for AC... | EngineerZone |
|
|
|
Z轴方向一直会有1g的加速度,所以当你静止不动时,Z轴也会有比较大的数据,所以你阀值设为1g有中断就很正常了。
|
|
|
|
Z轴我禁用了,只使能xy轴的 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1700 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4094 浏览 2 评论
8802 浏览 1 评论
3020 浏览 1 评论
6935 浏览 2 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1151浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1451浏览 2评论
1372浏览 2评论
1122浏览 1评论
995浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 10:19 , Processed in 2.578054 second(s), Total 106, Slave 89 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191