The instrumentation amplifier made up of U4, U5, and U6 is not needed. Reference current error amplifier U1 and its control voltage directly to the output current shunt.
Sorry, I didn't understand if you mean that I don't need that discrete configuration (this was going to be an instrumentation amplifier in any case), or if you mean that I don't need it AT ALL (in which case I don't know which architecture you suggest).
The 2 OPs left in the circuit are actually the ones that are not critical, as they are slowed down with the capacitor anyway. There the OP07 may be just fast enough, especially if the current signal already is amplified. The tricky part is the amplifier for the current signal, as here additional gain is wanted and this needs more GBW.
Regarding the simulations, OP07 didn't give me any problem either, even though it's not that fast. Mind also that this project is not an ultra precision source, but still needs to be accurate. I guess I chould try, OP07 seems to be still sufficient for the job (again, just according to various simulations), plus I can correct its offset (not that its maximum one should interfere much - it's 75 uV according to the datasheet).
Some thoughts:
In the while I re-thought a bit about a general overview, and I assuming the OP07 is a go for controlling the transistors, the problem shifts towards how to compare the output parameters and also how to generate them on the + pins (and made me also reconsider various things):
READING ON - PINSI'm considering two alternatives:
- go with this idea of using various kind of amplifiers and control it "classical"
- using an ADC
First idea:
FOR VOLTAGE: Modify the op-amp configuration in order to add a gain on that too (x10, x100)
FOR CURRENT: Go with the AD620 and work with different gains for different ranges (basically the same idea for voltage)
At least in the lower ranges (mV, mA) this should make output parameters easier to be generated with sufficient accuracy (since ex. 1 mV becomes 100 mV, more easily generated)
I'm wondering if it's better going with:
- a relay IC/various relays (or a switch in any case, so that it's controlled by an Arduino, for example) and some standard 1% resistor, and leave the rest to a calibration. Maybe I can add a trimmer in between too
- go with 0.1% resistors directly, but I don't know if at this level calibration is still needed (I'm not down to uV levels, but you know)
Second idea:
As stated before, using an ADC and going back to the controller.
GENERATING ON + PINSFor the higher ranges, (since I'd like to be able to set, for example, 5.000 and 5.001 differently -same idea for current-), I think the problem lies more on how to generate them on the + pins accurately. Also two ideas here:
- go with DACs and make it full digital
- use multi-turn pots from the buffered reference
First idea:
Go with simple DACs, and based on the fact that I think its a good idea be able to generate more or less one decade below my target accuracy (in other words: I want 1 mV -> being able to generate something with steps of around 100 uV), I have the following:
FOR VOLTAGE: Use a 16 bit DAC, as on 10 V range I would have every step on around 150 uV. I don't think I have some easily available choices (especially in through hole packages), so I think a module or an SMD part will have to fill the gap.
FOR CURRENT: Since here the value is more relaxed (1 mA in 1 A range), a lower bit DAC can still do, so I can also save some money.
Second idea:
Self-explained above, use multi-turn pots. Maybe also couple together a 1 turn and a 10 turn one (sort of coarse - fine).