WM8904
Pre-Production
MICBIAS CURRENT DETECT FILTERING
The function of the filtering is to ensure that AC current spikes caused by ambient noise conditions
near the microphone do not lead to incorrect signalling of the microphone insertion/removal status or
the microphone hookswitch status.
Hysteresis on the current thresholds is provided; this means that a different current threshold is used
to detect microphone insertion and microphone removal. Similarly, a different current threshold is
used to detect hookswitch press and hookswtich release.
Digital filtering of the hookswitch status ensures that the MICBIAS Short Circuit detection event is
only signalled if the MICSHORT_THR threshold condition has been met for 10 consecutive
measurements.
In a typical application, microphone insertion would be detected when the MICBIAS current exceeds
the Current Detect threshold set by MICDET_THR.
When the MIC_DET_EINT_POL interrupt polarity bit is set to 0, then microphone insertion detection
will cause the MIC_DET_EINT interrupt status register to be set.
For detection of microphone removal, the MIC_DET_EINT_POL bit should be set to 1. When the
MIC_DET_EINT_POL interrupt polarity bit is set to 1, then microphone removal detection will cause
the MIC_DET_EINT interrupt status register to be set.
The detection of these events is bandwidth limited for best noise rejection, and is subject to detection
delay time tDET, as specified in the “Electrical Characteristics”. Provided that the MICDET_THR field
has been set appropriately, each insertion or removal event is guaranteed to be detected within the
delay time tDET
.
It is likely that the microphone socket contacts will have mechanical “bounce” when a microphone is
inserted or removed, and hence the resultant control signal will not be a clean logic level transition.
Since tDET has a range of values, it is possible that the interrupt will be generated before the
mechanical “bounce” has ceased. Hence after a mic insertion or removal has been detected, a time
delay should be applied before re-configuring the MIC_DET_EINT_POL bit. The maximum possible
mechanical bounce times for mic insertion and removal must be understood by the software
programmer.
Utilising a GPIO pin to monitor the steady state of the microphone detection function does not change
the timing of the detection mechanism, so there will also be a delay tDET before the signal changes
state. It may be desirable to implement de-bounce in the host processor when monitoring the state of
the GPIO signal.
Microphone hook switch operation is detected when the MICBIAS current exceeds the Short Circuit
Detect threshold set by MICSHORT_THR. Using the digital filtering, the hook switch detection event
is only signalled if the MICSHORT_THR threshold condition has been met for 10 consecutive
measurements.
When the MIC_SHRT_EINT_POL interrupt polarity bit is set to 0, then hook switch operation will
cause the MIC_SHRT_EINT interrupt status register to be set.
For detection of microphone removal, the MIC_SHRT_EINT_POL bit should be set to 1. When the
MIC_SHRT_EINT_POL interrupt polarity bit is set to 1, then hook switch release will cause the
MIC_SHRT_EINT interrupt status register to be set.
The hook switch detection measurement frequency and the detection delay time tSHORT are detailed in
the “Electrical Characteristics” section.
The WM8904 Interrupt function is described in the “Interrupts” section. Example control sequences for
configuring the Interrupts functions for MICBIAS current detection events are described in the
“Applications Information” section.
PP, Rev 3.3, September 2012
44
w