WM8904
Pre-Production
STEP
1
2
3
4
5
6
7
8
9
10
DETAILS
Mic not inserted. To detect mic insertion, Host processor must initialise interrupts and clear MIC_DET_EINT_POL = 0. At
every step, the host processor should poll the interrupt status register.
Note that Mic Insertion de-bounce circuitry can be enabled by setting MIC_DET_EINT_DB = 1.
Mechanical bounce of jack socket during Mic insertion. Host processor may already detect a mic insertion interrupt
(MIC_DET_EINT) during this step. Once detected, the host processor can set MIC_DET_EINT_POL = 1 and then clear
the interrupt, unless mechanical bounce can last longer than the shortest possible TDET, in which case the host processor
should wait until step 3.
Mic fully inserted. If not already set, the host processor must now set MIC_DET_EINT_POL = 1. If not already cleared,
the host processor must now clear the MIC_DET_EINT interrupt. To detect Hook switch press, the host processor must
clear MIC_SHRT_EINT_POL = 0. At this step, the diagram shows no AC current swing, due to a very low ambient noise
level.
Mic fully inserted. Diagram shows AC current swing due to high levels of background noise (such as wind).
Mechanical bounce during hook switch press. The hook switch interrupt is unlikely to be set during this step, because 10
successive samples of the MICBIAS current exceeding the hook switch threshold have not yet been sampled.
Note that Hook Switch de-bounce circuitry can be enabled by setting MIC_SHRT_EINT_DB = 1.
Hook switch is fully pressed down. After TSHORT, 10 successive samples of the MICBIAS current exceeding the hook
switch threshold have been detected, hence a hook switch interrupt (MIC_SHRT_EINT) will be generated. Once
detected, the host processor can immediately set MIC_SHRT_EINT_POL = 1 and then clear the MIC_SHRT_EINT
interrupt.
Mechanical bounce during hook switch release. The hook switch interrupt is unlikely to be set during this step, because
10 successive samples of the MICBIAS current lower than the hook switch threshold have not yet been sampled.
Hook switch fully released. After TSHORT, 10 successive samples of the MICBIAS current lower than the hook switch
threshold have been detected, hence a hook switch interrupt (MIC_SHRT_EINT) will be generated. Once detected, the
host processor can immediately clear MIC_SHRT_EINT_POL = 0 and then clear the MIC_SHRT_EINT interrupt.
Mechanical bounce of jack socket during Mic removal. Host processor may already detect a mic removal interrupt
(MIC_DET_EINT) during this step. Once detected, the host processor can clear MIC_DET_EINT_POL = 0 and then clear
the interrupt, unless mechanical bounce can last longer than the shortest possible TDET, in which case the host processor
should wait until step 10.
Mic fully removed. If not already cleared, the host processor must now clear MIC_DET_EINT_POL = 0. If not already
cleared, the host processor must now clear the MIC_DET_EINT interrupt.
Table 96 Mic Insert and Hook Switch Detect: Example Sequence
Alternatively, utilising a GPIO pin to monitor the MICBIAS current detect functionality permits the host
processor to monitor the steady state of microphone detection or hook switch press functions.
Because the GPIO shows the steady state condition, software de-bounce may be easier to implement
in the host processor, dependant on the processor performance characteristics, hence use of the
GPIO is likely to simplify the rejection of mechanical bounce. Changes of state in the GPIO pin are
also subject to the time delays tDET and tSHORT.
w
PP, Rev 3.3, September 2012
184