set debounce during ac adapter interrupt

5
Debounce of AC interrupt on A510

Upload: stanley-chang

Post on 21-Jun-2015

64 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Set debounce during AC adapter interrupt

Debounce of AC interrupt on A510

Page 2: Set debounce during AC adapter interrupt

壹、 前言:A510(PicassoM)於DVT-1時因因電量回流之故,造成AC wakeup時錯誤辨視為USB cable。在由HW導入電容加裝的機制後,反而讓原本立即反應的AC interrupt(GPIO-PO4)產生延遲 2~3秒之現象,且中斷訊號呈不定時地連續發送。為達成SRS/PIS中定義的『插入AC於 1秒內顯示充電圖示』之需求,本設計將Debounce機制導入至 battery driver 中 interrupt source之判別。

貳、 原理:正常運作的AC source是可讓充電圖示立即反應,其行為非 1即 0並無任何延滯之必要下圖即為DVT-1時的示意圖:

Page 3: Set debounce during AC adapter interrupt

連續插拔AC adapter的行為示意圖:

DVT-2加裝電容後之AC adapter插拔示意圖:由下圖 a, b兩點間可發現,訊號由 1轉 0時有極為明顯的延滯時間,判斷為電容所導致。

連續插拔DVT-2 AC adapter示意圖:下圖可見在每次拔插AC時所造成的延滯時間會不斷地往後推,造成在次一驗證時,約略 5次後充電圖示就顯示不正常而產生 bug。

Page 4: Set debounce during AC adapter interrupt

從 kernel log裡亦可看見,在嘗試不斷插拔的情況下,原本只會觸發的一次中斷訊號,變成了不正常地連續噴發:

參、 設計:

1、 理念:由於每次拔出AC時都會有連續的 interrupt訊號產生,在計算出其規律性後,設計在每次GPIO-PO4為 0時讓該中斷之回報工作少做 80ms,並透過schedule_delayed_work的方式取代原本即觸即報模式。

Page 5: Set debounce during AC adapter interrupt

2、 建置: