早安
实际上,我们在 GPS 设备上使用 MMA8451,几分钟后我们就进入睡眠状态我们没有明显的移动,我们使用 INT1 在移动时唤醒 CPU。我们想在 INT2 上接收相同的中断信号,但无法成功。
此致,
吉安玛丽亚
你好,吉安玛丽亚、
无法定义中断引脚保持激活状态的时间。
顺祝商祺!
托马斯
你好,托马斯、
无法工作。但使用附件中的示例可以正常工作: https://www.nxp.com/docs/en/application-note/AN4072.pdf
我会用的。在这种情况下,我也可以避免读取源寄存器,因为每次检测到TAP时INT都会上升。
另一个问题是,我能否定义中断保持高电平的时间,实际上它非常快,是否有可能让 INT 保持高电平约一秒钟,然后再自动降低?
感谢您的帮助。我真的很感激。
吉安玛丽亚
你好,吉安玛丽亚、
您的代码似乎是正确的。我建议尝试将阈值从 ~3g (0x30) 降到例如~1g (0x10),也可以选择防抖计数器值。
为了将运动中断路由至 INT1 引脚,请确保 INT_CFG_FF_MT 位 = 0。
然后在 ISR 中清除 MCU 中断标志,并读取 FF_MT_SRC (0x16) 寄存器,以清除 SRC_FF_MT 状态位,并解除 INT1 引脚的保护。
顺祝商祺!
托马斯
早上好,托马斯、
我正在使用附件https://www.nxp.com/docs/en/application-note/AN4070.pdf 第 11 页的示例步骤。
下面是我的代码,也许我哪里出错了。
_____________________________________________________
//进入待机模式
resDue= i2c_smbus_write_byte_data(client, 0x2A, 0x18);
printk(KERN_INFO"ASI - set standby mode, res=%d\n",resDue);
resDue= i2c_smbus_write_byte_data(client, 0x15, 0xD8);
resDue= i2c_smbus_write_byte_data(client, 0x17, 0x30);
resDue= i2c_smbus_write_byte_data(client, 0x18, 0x0A);
resDue= i2c_smbus_write_byte_data(client, 0x2D, 0x04);
resDue= i2c_smbus_write_byte_data(client, 0x2E, 0x04);
value = i2c_smbus_read_byte_data(client, 0x2A);
value |= 1;
resDue= i2c_smbus_write_byte_data(client, 0x2A, value);
printk(KERN_INFO"ASI - exit standby mode, res=%d\n", resDue);
return 0;
____________________________________________________________
如果我用附件的TAP示例 https://www.nxp.com/docs/en/application-note/AN4072.pdf第 15 页一切正常,我看见 INT1 正在移动...
如上所述,我的想法是将这个TAP放在INT1上,将运动传感器的工作代码放在INT2上,但是我不清楚为什么示例中的代码不起作用以及如何放在INT2上,因为示例在INT1上。
此致,
gianmaria
你好,吉安玛丽亚、
是的,将TAP(脉冲)中断路由到 INT1 引脚(INT_CFG_PULSE = 1)和另一个中断(例如运动)连接到 INT2 引脚(INT_CFG_FF_MT = 0)。
另外,还可以将多个中断路由到同一个中断引脚,然后读取 INT_SOURCE 寄存器 (0x0C) 以了解是哪个事件导致了中断。
顺祝商祺!
托马斯
亲爱的托马斯
实际上,我们正在将TAP事件路由到INT1,而不是自动睡眠-唤醒事件,而且它工作正常。是否有可能将另一个"逻辑" 设置为将运动事件检测到 INt 2,并使其同时作用于两个相似的不同事件?如果我们错过了信号,我们将通过硬件来复制信号。
此致,
gianmaria
你好,吉安玛丽亚、
自动休眠/唤醒中断只能路由到 INT1 引脚(INT_CFG_ASLP = 1)或 INT2 引脚(INT_CFG_ASLP = 0)。在您的应用程序中,是否可以将其中一个中断引脚同时连接到 CPU 和调制解调器 GPI?
顺祝商祺!
托马斯
对不起,我忘了告诉大家,我们必须将 INT1 连接到 CPU GPIO,将 INT2 连接到调制解调器 GPIO。