Question: I am working on creating a circuit that will scale +/- 12v input to a unipolar 3.3v centered around 1.65v, in order to scale the kind of CV used in modular synthesis systems to work with the ADCs on the STM32F4 microcontroller, which want to see a 0-3.3v input.

I am encountering problems with noise, specifically a strange oscillation around 8.6 MHz. I have tried adding filtering capacitors, which helps somewhat, but does not completely eliminate the problem, so I think there is something wrong with my circuit. 

To accomplish the scaling of voltage I put the input through a 16k/100k voltage divider to scale the input to +/- 1.65v, which is sent into a buffer. I then add a 1.65v bias and send it through two unity gain inverting amplifiers. I get the 1.65v bias by dividing the power supply and sending it through a buffer in the same manner that I do the input. I am using the LM324 quad op-amp, which I power off a +/- 12v supply. 

Is there anything flawed in my methodology here that could be causing this unwanted noise, or a better/cleaner way I could be doing this? 

Here is the schematic:
[![Schematic](https://i.stack.imgur.com/yrRsm.jpg)](https://i.stack.imgur.com/yrRsm.jpg)

P.S. disregard where it says LT103 on the schematic, I am using the LM324, a quad op-amp

Answer: 
![schematic](https://i.stack.imgur.com/jOmD2.png)

[simulate this circuit](/plugins/schematics?image=http%3a%2f%2fi.stack.imgur.com%2fjOmD2.png) – Schematic created using [CircuitLab](https://www.circuitlab.com/)

You don't need any op amps, at all - maybe a single buffer.
![schematic](https://i.stack.imgur.com/UcJtG.png)

[simulate this circuit](/plugins/schematics?image=http%3a%2f%2fi.stack.imgur.com%2fUcJtG.png) – Schematic created using [CircuitLab](https://www.circuitlab.com/)

The above circuit could work for you if the input is a digital signal. The first stage converts the +12/-12V into +3.3V/0V. The second stage removes high frequency noise, set using R3/C1.

More details would be nice, to help determine the constraints.

* For example, is the input signal digital in nature? If so we can use a simpler comparator instead of linear amplifier.
* Do you care about the linearity of the output? If not, even if the input is a sine wave, we could drive the outputs rail to rail to achieve 0-3.3V.
* What is the frequency range of the inputs? Does this operate at DC voltage? Does this operate at 40kHz?

Depending on your needs this circuit could work (below is a linear-type amplifier):

[![voltage scaler](https://i.stack.imgur.com/4WEqT.png)](https://i.stack.imgur.com/4WEqT.png)

The first stage scales the 24V differential input voltage into a 3.3V differential voltage biased around Vb. The RC network forms a low-pass filter to help with the high frequency noise you mentioned.

The second stage is just an buffer to provide some drive current. You can replace this with inverting op-amp if you need to correct the polarity.

In practice I would probably generate the reference voltage using a trim-pot, since due to non-zero input offset voltages you may need to tweak it a little for a closer voltage range.