智能手机和平板电脑等手持设备有触摸屏和很多功能按键,为了节省电能,如果用户在一定时间内没有操作触屏或按键,不管是否在运动,显示屏就会自动关闭;如用户想要再使用设备,就必须按按键打开屏幕。
一个数字MEMS加速度计通常有一个到两个中断输出引脚,可以连接外部微处理器的I/O引脚。加速度计可配置成后台监视加速度或运动,同时微处理器可以处理其它任务或进入低功耗的睡眠模式。当加速度计检测到一个中断信号时,微处理器将会从睡眠模式唤醒,检查是否需要处理这个中断请求。
本文论述使用加速度计的一个中断引脚执行唤醒和非运动检测并自动打开和关闭屏幕的方法。微处理器只需监测加速计中断输出引脚脉冲沿跳变,而无需读取中断信号源的寄存器。本文还附有加速度计配置代码示例。
1. 前言
MEMS加速度计可输出不同类型的中断信号,例如,数据就绪、自由落体、竖屏/横屏旋转、单击-双击、冲击力检测等[1]。某些加速度计还内置唤醒和无运动检测功能,能够根据运动强度,在低功耗的低输出速率(ODR)和正常模式的高数据速率之间自动转换,但是,这项功能只节省加速度计本身的功耗。
某些微处理器有两个或更多个GPIO引脚,用户可使用加速度计的两个中断输出引脚实现唤醒和运动检测两项功能。不过,在某些情况下,微处理器只有一个GPIO引脚用作中断处理,而用户想还用一个中断引脚实现两项功能。
下面我们论述如何在一个中断输出引脚上使用高通滤波器(HPF)和自动落体AND逻辑来检测唤醒运动和无运动条件,微处理器无需参与检测过程。当微处理器收到加速度计中断信号的上升沿,表示手持设备处于非运动状态,收到下降沿时,表示设备处于运动状态。
2. 硬件连接
图1是加速度计与主处理器或微控制器的典型硬件连接图。在初始化过程中通过I2C或SPI上电时,主处理器只需配置一次加速度计。然后,加速度计就会在后台连续监测运动事件,功耗非常低。
加速度计的INT1引脚是推挽输出,默认高电平有效。用户可根据自己的实际应用将其改为开漏输出或低电平有效。当高电平有效时,INT1引脚的最低电压是0.9 * Vdd_IO,而低电平有效时,最高电压是0.1 * Vdd_IO。加速度计Vdd_IO能够与主处理器的数字IO电压Vcc_IO灵活匹配。如果主处理器只有一个电源,可将加速度计的Vdd和Vdd_IO连在一起,直接连到电源。
图1:主处理器与加速度计之间的硬件连接
如果手持设备在静止状态超过规定时间,加速度计将会通过INT1引脚发出从低电平向高电平跳变的上升沿中断信号,主处理器将会关闭其它元器件,进入睡眠省电模式。
只要检测到运动事件,加速度计就会发送一个从高电平向低电平跳变的下降沿的中断信号。然后,主处理器被唤醒,并打开其它元器件,使设备正常工作。
如果手持设备在正常工作模式下保持运动状态,加速度计INT1引脚上的中断信号保持低电平。如果手持设备在任何倾斜位置始终保持静止状态,则加速度计中断信号始终保持高电平。因此,主处理器能够定期读取加速度计INT1引脚的电平,再次检查手持设备处于静止状态还是运动状态。
3. 代码示例
意法半导体开发的LIS3DH数字加速度计代码示例[2]
INT1_CFG配置与自由落体事件检测相同,不同之处是:(1) 自由落体中断无需使能HPF;(2) 自由落体时长在毫秒范围内。5秒相当于自由落体距离122.5米,手持设备很少出现这种情况。
上述代码示例如图2所示。
图2:加速度计INT1逻辑
● 当手持设备在任何倾斜位置保持静止状态超过5秒时,加速度计INT1引脚从低电平跳变高电平,因为高通滤波器使能后,X/Y/Z轴加速度同时在±125mg THS内。
● 手持设备的自由落体事件不会触发INT1引脚从低电平跳变高电平,因为X/Y/Z轴加速度同时在±125mg THS内的时间少于5秒。
● 如果因为运动的原因,X、Y和Z中任何一轴的加速度超过±125mg,且设备继续保持运动状态,INT1引脚就会从高电平跳变低电平。
● 如果设备进入静止状态还不到5秒再次进入运动状态,则INT1引脚继续保持低电平,如果设备再次静止,5秒时长将开始从50LSB倒计时,到0LSB终止,输出数据速率为10Hz。
4. 结论
内置HPF和自由落体检测功能的加速度计能够从一个中断引脚为微处理器提供可靠的唤醒和无运动检测中断信号。加速度计后台工作,无需微处理器参与。用户可按照自己的应用设计灵活配置加速度计的门限值和时长参数。在功耗方面,该解决方案的能效高于使用触摸屏、按键和微处理器定时器开闭屏幕的方法。