完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 nrf52832 和 LIS3DH 开发可穿戴智能设备。为了在设备未佩戴时关闭 MCU,我想使用带有中断的 LIS3DH 的运动检测功能,因此如果传感器在 n 分钟内未触发中断事件,则 MCU 关闭(进入非常低的功率模式)。
用户可以设置中断阈值和满量程作为配置选项。 这是我当前的配置 CTRL_REG1 = 0x2F //10Hz,低功耗模式,ZXY使能 CTRL_REG2 = 0x0 // 无 HP 过滤器 CTRL_REG3 = 0x40 //IA1使能 CTRL_REG4 = 0x00 //2g默认值,用户可配置 CTRL_REG5 = 0x00 CTRL_REG6 = 0x0 INT1_THS = 0x3A // 58 * 16 毫克 = 928 毫克 INT1_DURAtiON = 0x02 INT1_CFG = 0x2A 第一个问题是:为了根据用户偏好更新传感器的配置,MCU 是否可以在初始配置后写入 INT1_THS 和 CTRL_REG4 寄存器,而无需物理重启 LIS3DH?我必须先清洁它们吗? 问题:使用上面的配置和满量程 +/-2G 和阈值 = 58,传感器也会针对非常小的运动触发中断(当智能设备放在桌子上时我也可以看到中断),但是如果我将阈值设置为 22,我必须剧烈摇动设备才能产生中断。根据阈值为 22 的数据表,我应该对所有大于 16 * 22 = 352 mg 且小于 928 mg 的运动进行中断,因此我应该检测到非常小的运动。我哪里错了? |
|
相关推荐
1个回答
|
|
回答您的第一个问题:如果您只想更改 INT1_THS 和 CTRL_REG4 寄存器的内容,是的,您可以在不重启设备的情况下更改它们的值。
关于你的第二个问题,问题可能与 INT1_CFG (30h) 值有关,因为你在 Z 高事件位上启用 ZHIE 中断,并且 - 例如在设备在表面上是平面的情况下 -设备目前沿地球重力轴检测到约 1000 毫克。这可能导致 928 mg 阈值被感测到的 1g 的小运动所克服(你会看到这一点,因为你处于中断的 OR 配置、AOI 和 INT1_CFG (30h) 寄存器的 6D 位):这不是352mg 阈值的情况,因为它远离 bot 0g 和 1g。 一种可能的解决方案是禁用 Z 轴中断检测,仅使用 X 和 Y 轴,或通常不指向地球中心的轴。另一种解决方案是使用 HP 过滤器,如应用说明 AN3308 第25 页中所述。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2642 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3611 浏览 6 评论
5989 浏览 21 评论
940浏览 4评论
1317浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
585浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1304浏览 3评论
1362浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 09:07 , Processed in 1.295403 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号