Section 5.4 Wake-up interrupt
Wakeup source 可以選 Hight-pass fileter 或 offset filter
選 offset filter 為 source 時..
三軸之中,任一軸的值大於 threshold
然後還要符合 duration,大於 threshold 的時間要超過 duration 的設定。
產生 interrupt 後的動作,如果沒有設定 latch mode,一旦 低於 threshold, interrupt 自動reset。
如果設定是 latch mode,一旦觸發 interrupt後,就會一直保持,直到 讀取了 WAKE_UP_SRC 或 ALL_INT_SRC
AN 中有使用 high pass filter 的設定範例,當sensor 有大幅度改變時..任一軸大於 threshold 後產生 interrupt。
write 64h in CTRL1(20h) write 04h in CTRL6(25h) write 20h in CTRL7(3fh) write 00h in WAKE_UP_DUR(35h) write 02h in WAKE_UP_THS(34h) write 20h in CTRL4_INT1_PAD_CTRL(23h)還有一個用USER OFFSET 做srce 的設定範例,採用 X-0. Y-0. Z-02 之後,大於 threshold 之後產生 interrupt (因為 duration 0)
write 04h in CTRL6(25h) write 34h in CTRL7(35h) write 00h in X/Y_OFS_USR(3ch,3dh) write 40h in Z_OFS_USR(3eh) write 00h in WAKE_UP_DUR(35h) write 02h in WAKE_UP_THS(34h) write 20h in CTRL4_INT1_PAD_CTRL(23h) write 64h in CTRL1(20h)發現 官方的 input driver 沒有宣告 CTRK7(3fh).
所以相關的 enable 也沒做,那個 input4/wake_up/enable 並沒有開啟 CTRK7 的 INTERRUPTS_ENABLE.
在 driver 的 i2c_write output log,開機有做的 register write..
[ 0.945939] lis2dwi2c w 21 4c [ 0.949619] lis2dwi2c w 20 1 [ 0.953205] lis2dwi2c w 22 10 [ 0.956880] lis2dwi2c w 21 c [ 0.960467] lis2dwi2c w 36 1 [ 0.964054] lis2dwi2c w 36 9 [ 0.968054] lis2dwi2c w 30 9 [ 0.971642] lis2dwi2c w 34 2 [ 5.170523] lis2dwi2c w 20 11 [ 5.175374] lis2dwi2c w 20 51enable input4/wake_up/enable 的話..
[ 198.030489] lis2dwi2c w 23 20所以wakeup需要的幾乎都沒設
所以要再 enable 的時候都設好...
為了檢查,可能要把 intertupt status 讀出來,27h
7 6 5 4 3 2 1 0 ----------------------------------------------------------------------------------------------- STATUS | 27h | FIFO_THS | WU_IA | SLEEP_STATE | DOUBLE_TAP | SINGLE_TAP | 6D_IA | FF_IA | DRDY |在sysfs input4/wake_up 下增加一個 regv
cat 內容就是 27h 的內容。
測試..
# echo 1 > enable [ 161.304567] --lis2dw12_enable_sensors-- [ 161.308934] --lis2dw12_update_drdy_irq-- [ 161.313552] lis2dwi2c w 23 20 [ 161.317201] lis2dwi2c w 20 64 [ 161.320851] lis2dwi2c w 25 4 [ 161.324128] lis2dwi2c w 3f 20 [ 161.327782] lis2dwi2c w 35 0 [ 161.331009] lis2dwi2c w 34 2 [ 161.334305] lis2dwi2c w 23 20 # # cat regv 1 # cat regv 0 # cat regv 1 # cat regv 0 ----- 敲打機器 ---- # cat regv 41 # cat regv 40WU_IA bit set,所以應該 OK
沒有留言:
張貼留言