Sensor generated external interrupt

I have a vertical geophone sensor that records seismic vibrations in the range 0-20 mV . I want to use this sensor to generate an external interrupt to wake up my arduino from PWR_DOWN mode.

So ,I will be needing a low level interrupt . From a previous experiment , I found out that to wake up an arduino from PWR_DOWN mode , you need a consistent high signal that rapidly changes to a low signal and stays low for some time before getting high again.

Basically , I have to amplify the signal input from the geophone and set a low threshold value(around 0.2 V) such that for inputs greater than 0.2 V , I get a logic value =1 and 0 otherwise .Then use a NOT gate to reverse logic and generate an effective low interrupt.

But , the problem is , what kind of comparators to use?No standard comparators work at such low thresholds . Is there any alternative?

20mV is well within the range of a standard comparator. Or is the threshold a lot less? In which case you
need to amplify the signal before the comparator.

I choose not to work with the direct signal output from the geophone. Because , in such a small scale , I would not be able to differentiate between a proper signal and garbage signal. But I know that for an amplified signal. If amplified signal <0.2 V , ignore (garbage). logic=0. If amplified signal >=0.2 V, logic=1. So , I need to set a threshold of 0.2 V.But as I found out , most comparators don’t work that way. They also have a region of indeterminacy in between , where they can give any logic value. That will kill me.

You are confused about comparators. Most go down to the negative rail and a bit beyond, have input
offsets of a few mV or less and are routinely used for this sort of thing. Checkout the extremely popular LM339's
datasheet for instance.

You normally add some extra hysteresis to the comparator to reduce multiple transitions due to noise,
by adding a little positive feedback.

Is your signal bipolar? That might cause a bit extra complexity.

Given you want to connect this to an interrupt pin you might want to consider gating the comparator output
during normal (awake) operation. Since comparater outputs are usually open-collector this is simply done
by calling pinMode(OUTPUT) on the comparator pin, holding it fixed until you release with pinMode(INPUT).