在LSM303AH感測器中,喚醒功能是使用斜率濾波器實現(如下圖一,加速度計斜率濾波器所示)。如果一定數量的連續斜率濾波數據超過配置的閾值,則會產生喚醒中斷信號(圖二)。
大大购相关商品 STEVAL-MKI173V1 >> 查询存货及售价
(圖一)
(圖二)
使用WAKE_UP_THS_A寄存器的WU_THS [5:0]定義。使用這6個位元中的1 LSB的值,取決於所選的加速度計full scale[1 LSB = FS / 64]。該閾值適用於正數據和負數據:對於產生喚醒中斷,三個軸中的至少一個必須大於閾值。
持續時間參數定義了要識別的喚醒事件的最小持續時間;它的值是使用WAKE_UP_DUR_A寄存器的WU_DUR [1:0]位元 [1 LSB對應 1 * ODR時間],其中ODR是加速度計的輸出數據速率。重要的是適當地定義持續時間參數,以避免由於輸入信號的假尖峰而引起的不必要的喚醒中斷。
通過CTRL4_A寄存器的INT1_WU位置,可以將該中斷信號驅動到INT1_XL中斷引腳。也可以通過讀取WAKE_UP_SRC_A寄存器的WU_IA位進行檢查。 WAKE_UP_SRC_A寄存器的X_WU,Y_WU,Z_WU位指示哪個軸觸發了喚醒事件。
如果禁用latch mode(CTRL3_A的LIR位置為0),則當濾波後的數據降至設定閾值以下時,中斷信號將自動復位。如果開啟latch mode,並且喚醒中斷信號被驅動至中斷引腳,則一旦發生喚醒事件並通知中斷引腳,則必須通過讀取WAKE_UP_SRC_A寄存器將其複位。如果開啟latch mode,但沒有將中斷信號驅動到中斷引腳,則latch mode將不起作用。
下面範例是透過軟體設定wake up function:
由於持續時間設置為零,因此對於每個超過配置閾值的X,Y,Z斜率數據都會產生喚醒中斷信號。 WAKE_UP_THS_A寄存器的WU_THS字段設置為000010b,因此喚醒閾值為62.5 mg(= 2 * FS / 64)。