# Scaling amplifier, analog switch, fast response

simulate this circuit – Schematic created using CircuitLab

Hello everybody, I just try to design a scaling amplifier with different slopes and offsets. The problem is that the transient response became instable due to the capacitors of the analog switch. Do you have any idea to solve the problem?

Specifications design:

Input signal : Pulse with a frequency= 500kHz

In-out latency <= 100ns

• You can possibly mitigate the capacitance of the switches by putting them on the other side of the resistors so that they are away from the op-amp inputs. You may also want to put a series resistor directly at the output of the op-amp to prevent the output from "feeling" a purely capacitive load. – mkeith Nov 1 '16 at 15:54

To be perfectly honest, I'd just not do this with switchable feedback resistors – that's an approach that, even if everything was perfect, must lead to discontinuities.

Instead, I'd either go for something like approximating your curve with a combination of linear and exponential feedback (ie. resistors and diodes in parallel and series in the feedback path), or, and that's what I'd strongly recommend:

Take the digital route. A very simple microcontroller with an ADC, a tiny bit of firmware and a DAC or just a low-pass filtered PWM would do the trick for far less of the cost of your complex control scheme, with far less design effort, and, atop of that, far less surprises.

Update:

Based on our dialogue, I agree that a simple microcontroller probably doesn't cut it: Let's assume you've got something like an ARM Cortex-M4F ; these are available from a multitude of vendors, but it's very rare to see one with an ADC with a conversion time < 1µs. (compare the STM32F446); and then you'd have to add DMA transfer, application of the transfer function, and DMA transfer to the DAC as well as the conversion time of that to the equation. Sad.

So, the other digital path you can chose (and that's actually sometimes done in digital predistorters) is using separate ADC and DAC ICs (or one that combines both functions, e.g. the AD9860), and some kind of FPGA in between – considering you basically need to do one fixed point multiplication and two comparisons at a rate >= 10MHz to achieve your latency requirements, a cheap ICE40 FPGA might cut it here – bonus being that you can program that using a Free and Open Source toolchain, thus making the device easily adjustable in the field. My gut feeling tells me that your application is something among the lines of countering nonlinearities of a following system – and predistortion isn't underresearched :)

So, from the top of my head, something like the following might work; notice that I'm not overly concerned with quantization, because you'll end up oversampling your signal, anyway!

Signal -> ADC Buffer ----> ADC ----> FPGA ----> DAC -> DAC Buffer -> Signal
example:             -> ADC10321 -> ICE40HX -> DAC901 ->


But, of course, an FPGA-based system would then need some configuration memory, and you'll probably add a microcontroller to configure the ADC and DAC, and then, add power supplies etc. There we go exceed the complexity of the "approximate the transfer function by finding a suitable nonlinear feedback network" solution.

To be completely frank, I'd just try something like considering this:

simulate this circuit – Schematic created using CircuitLab

And then whip up a python script that just tries with few standard diode types and three or four decades of E24 resistors until I get a transfer curve that looks close enough to yours.

• Thanks Marcus, the problem is that digital path is not fast enough..may be I can reduce to only two region, but you are right the circuit has discontinuities in the intersection regions. May be copying the circuit 4 times and have a really fast analog switch to change the amplifier in each region could be effective, what do you think? – Micheal Flux Nov 1 '16 at 14:58
• Well, ok, but that would be a specification that you'd direly need to add to your question. Are you sure you want to switch signals in the multiple-MHz range? Are you sure you want a non-linear curve for these? You'll see intermodulations! – Marcus Müller Nov 1 '16 at 15:03
• Well..the input signal is provided by a TIA amplifier that receives pulses of an optical signal around 500kHz. The input signal is not really fast, but the response time of the circuit should be below than 100ns. – Micheal Flux Nov 1 '16 at 15:15
• So we need a bandwidth of >500kHz and an in-to-output atency < 100ns (btw, add this to your question!), correct? – Marcus Müller Nov 1 '16 at 15:17
• The question is modified, the parameters are set rigth now – Micheal Flux Nov 1 '16 at 15:22

The analogue switches are a problem in amplifiers like this but you can alleviate things by moving their circuit position. For the feed back resistors have the analogue switches connected to the op-amp output - now, their capacitance to ground is ineffective.

You can also try doing the same with the three Vref bypass switches - try grounding one end of each switch instead of having them at the op-amp node; insert resistors between switch and op-amp i.e. keep analogue switch pins away from sensitive op-amp inputs. It won't be perfect of course but it will be better.

• What would you change of the proposal to have a consistent design? – Micheal Flux Nov 1 '16 at 15:44
• Did you not understand my recommendations - swap positions of resistors and switches so that sensitive inputs are not connected directly to the switches. – Andy aka Nov 1 '16 at 15:51

Consider using low-capacitance RF (or microwave) diodes and resistors in the feedback path rather than analog switches.