You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MC3635加速度计:Gs转delta及中断阈值多路复用配置问题

MC3635 MEMS加速度计嗅探模式阈值配置问题

概述

我正尝试为MC3635 MEMS加速度计编写用于配置低功耗嗅探/中断模式的库。目前已实现连续采样读取及基础中断配置,但无法精准设置各轴阈值。

我虽能修改阈值并观察到触发中断所需的力有变化,但不清楚阈值的正确计算方式。

据我理解,加速度计进入嗅探模式后,每个时钟周期会生成当前读数与初始读数的原始值delta,该delta为11位,会与用户设置的6位阈值对比。另有mux寄存器可选择11位delta中的位范围,以牺牲精度为代价支持更高触发值。

已尝试的操作

目前我假设delta计算是原始读数转加速度(G)的逆运算,即:

// 16为设置的量程,2048是最大12位有符号值,11位无符号值
x_delta = (x_g / 16.0) * 2048

并相应调整mux,使最高位1包含在6位范围内。

我尝试将期望阈值设为2G,计算得到delta为256(0b100000000),该值超出前6位范围,因此将mux设为4,并右移delta至适配范围:

// 0b100     = mux 4
// 0b1       = 使能
// th_select = 目标轴选择
char data = (0b100 << 4) | (0b1 << 3) | (th_select & 0b111);

res += write_register(ADDR, SNIFF_SEL, data); // 设置mux及选择轴
sleep(10);

res += write_register(ADDR, SNIFF_TH, 0b10100000); //C2B + 轴OR + 256右移后的值
sleep(10);

我预期上述代码会在加速度超过2G时触发中断,但实际在0.5G的小事件下就触发了中断。

我本可通过实验关联delta与冲击值,但需搭建能缓慢提升加速度的设备,因此先在此寻求建议。

相关信息见数据手册第55-59页。

感谢您的建议,
Ethan

内容的提问来源于stack exchange,提问作者Ethan Armstrong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:17:46