完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 LIS2DH12 芯片来检测设备的方向(在 3D 空间中)。
为此,我在 6D 位置模式下使用 INT 引脚来生成中断信号,如果设备已经退出/进入已知位置区域,它将提醒我。 我的问题如下:为每个使用的轴设置阈值时,我无法使用低于 45 度的任何值。该应用程序的行为在 当阈值设置为高于或等于 45 度的参考角度时,我期待它的确切方式但是一旦我输入低于 45 度的值, 中断标志开始出现在比预期高得多的输出值处。 这是我的注册配置: (使用 INT2 且仅启用 Y 轴 HIGH 中断,正常模式,10 位分辨率,+/- 2g 满量程): CTRL_REG1 - 0x37 CTRL_REG2 - 0x0 CTRL_REG3 - 0x0 CTRL_REG4 - 0x0 CTRL_REG5 - 0x0 CTRL_REG6 - 0x20 INT2_CFG——0xC8 INT2_SRC——0x48 INT2_THS - 0x2D 使用此配置时,我观察到当 Y 轴加速度值低于 ~0xB5 时中断信号变低。 0xB5 = 181,等于 181*4mg = 724 mg 1g * sin(45) ~= 724 mg,这意味着一切都按预期工作 接下来,我只将 INT2_THS 寄存器修改为 0x20,并且我希望当加速度达到低于 ~ 0x80 的值时,Y 轴的中断变为低电平。 0x80 = 128, 128*4毫克 = 512 1g * sin(30) = 500 毫克 但是,在测试时,输出中断阈值似乎在 ~0xE0 左右,这比我使用 45 度作为参考角度时要高(但角度较低,所以没有任何意义?)。 我的问题是 - 这是预期的行为吗?在 6D 位置检测模式下,可以将中断参考角度设置为 45 度以下吗?如果是,那我做错了什么? 作为参考,这是我计算阈值的方式: 对于 45 度阈值角度 -> 724 mg,THS 中的 1LSB 为 16 mg,因此 724 / 16 = 45 (0x2D),预期输出阈值 @ 724/ 4 mg(输出寄存器中的 1 LSB = 4mg)= 181 (0xB5) 对于 30 度阈值角度 -> ~512 mg,THS 中的 1LSB 为 16 mg,因此 512 / 16 = 32 (0x20),预期输出阈值 @ 500/ 4 mg(输出寄存器中 1 LSB = 4mg)~= 128 (0x80) 任何帮助,将不胜感激。 |
|
相关推荐
1个回答
|
|
从我这边看,计算结果不错。
在 6D 方向检测中,45° 是一个方向和另一个方向之间的判别式,因为沿 x 的 44° 是沿 -x 的 46°。 所以我相信在任何情况下你都应该得到一个中断,但是在 INT1_SRC 寄存器中有不同的标志。 对于 6D 方向,INT1_THS 设置为 0x21 另请查看此设计提示说明:使用 ST 的 MEMS 加速度计设置 6D 方向检测。 为了对称,倾斜检测限制在 45°。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2247 浏览 1 评论
3033 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1611 浏览 1 评论
3424 浏览 6 评论
5756 浏览 21 评论
773浏览 4评论
1138浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
407浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1119浏览 3评论
1171浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 06:09 , Processed in 1.020781 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191