Post Go back to editing

filter solution for an analog input to ADC

Dear community,

I built a simple circuit to collect information from a speed sensor, the signal is a sinusoidale signal between 0 and 10 volts. I converting it first to a 0 to 5volts signal before feeding it to an ADC.

However the signal is really sensible to the noise as you can imagine, and i am wondering is there is any way to remove/reduce its influence ? 

for information: the requirement is that i should not act on the speed sensor at all ( I am collecting the speed of a shaft in a gearbox, so the speed sensor is already implemented inside). I would like to protect the signal once it is connected to my small board.

If anyone as an idea or recommendation it would make my day :)

Best regards,

  • Hi Wickwick,

    This is a very open-ended question - what are your constraints?

    • Cost
    • Size
    • Power
    • Bandwidth - as in, how quickly do you need to sense changes in speed?
    • If bandwidth is low, how long can you average to produce a single speed reading?
    • Software development time?

    If you just need to take a single measurement on a single setup, then most digital scopes will be able to measure sinewave frequency, and you can use averaging to at least reduce high-frequency noise.

    We do not have a reference design specifically for this purpose, and to my knowledge there isn't an Analog Devices part that can do this directly.

    You say you are feeding it to "an ADC" - which ADC?

    Do a web search on "Arduino Frequency Counter" - that may turn up some ideas. You could use a comparator to detect zero-crossings of your sinewave, and measure the comparator output with an Arduino (or other microcontroller) timer input pin.

    If you need advice on comparator circuits, it looks like most support is in  Amplifiers  

    Hope this helps.


  • Hi Mark thanks a lot for your answer, 

    Well i don't have specific requirement, if possible I would like a solution which is not to expensive, and would take the less amount of space, the idea is to put the acquisition board near the gearbox.

    The design is using the ADC : MCP3221 from Microchip, it gives a sampe rate of  22.3 ksps at High speed I2C.

    My main concern is, it seems that the signal we receive is affected by the surrounding, and i was wondering if there is any type of filtering i could do on my input before feeding it to the ADC? Unfortunately i cant do anything on the speed sensor, but maybe there are solution i can implement once it is connected to my pcb? 

    The speed sensor deliver a signal with a frequency in the order of 100kHz maximum.

    Can i protect the input of the ADC in any way to reduce EMI effect? 

    i read this article but it seems to be more related to protection against overvoltage? Protecting ADC Inputs | Analog Devices

    Thanks a lot for your advices Slight smile

    best regards

  • Hi Wickwick,

    We cannot support products from other manufacturers, you should check with Microchip support.

    Also note that this forum is primarily for supporting ADI reference designs, Circuits from the Lab, etc. That said, we can certainly give advice.

    That article is a pretty good basic reference - Figure 2 is a good approach, although I'd typically recommend adding the main current-limiting resistor between the op-amp and the Schottky diodes, with a second resistor between the diodes and the ADC. As drawn, the op-amp will drive its short-circuit current into the Schottky diodes during a fault, and while most op-amps will tolerate that condition, why tempt fate? Also - the +5V supply must be able to SINK the fault current - I'd say that the 5.6V Zener is NOT optional, and should be placed on the +5V supply (which may be the intent of the figure, but it's not 100% clear that the REF=5V is the same as the +5V supply.)

    In order to design the filter, you really need to know what the characteristics of the noise are - frequency, amplitude, etc., either measured directly, or you could simulate in LTspice. LTspice will allow you to simulate your tachometer signal, superimpose worst-case noise, gain confidence that your protection circuit is adequate, and that the resulting signal is within the input range of the ADC.