The Harris IRF540 actually have a DC SOA spec that would work beautifully for you.
Next, the gate drive to Q3 and Q5 is inadequate. You only have 100K pull down. The gate-drain capacitance can be 40pF for the IR 540 or 100pF for the Harris 540. With two Harris devices, you have 200pf. The 100K resistor can only pull down with a current of about 30uA, and so that maximum slew rate on the drain that it can cope with is dv/dt = i/C = 30uA/200pF = 150,000V/sec. It sounds a lot until you realise that an application of 100V in less then 1.5ms can turn the mosfets hard on initially. You can easily get 10+ amps flowing for a short period even if the current limit is set to 1mA. The extent of this problem is affected by the size of the mosfet input capacitance and this gate input capacitance to reverse capacitance ratio varies from 14:1 for the Harris device to 50:1 for the IR device.
The other effect of the 100K resistor is that its time time constant with the mosfet gate capacitance can be as slow as 0.4ms.
The mosfets gates can drag the emitter of Q7 above the control supply voltage possibly to the point the emitter breaks down like a zener. This would happen by simply switching a 100V load on to the output of the constant current load.
The 100nF cap in the current limit regulator feedback is pretty high - it means your control loop has a low bandwidth and so it may not be able to handle non constant load transients very well. It may be adequate for your needs - I do not know. Getting a faster bandwidth control loop is hard work, but you get better transient response.
...If you go for mosfets designed DC use such as the IXYS Linear Power Mosfets
https://www.digikey.com/en/product-highlight/i/ixys/linear-l2-mosfets
you will probably have a better result....
I suggest that you look at this thread: https://www.eevblog.com/forum/projects/dynamic-electronic-load-project/msg288313/#msg288313.
This will help you get the analog part of the load stable.
You should use one op-amp per MOSFET. If you share an op-amp you cannot be sure that the MOSFETs will share the current.
Regards and good luck with your project !!
Jay_Diddy_B
D6 will prevent the MOSFETs saturating thus limiting the compliance of the load. The threshold voltage of the IR540 can be up to 4V so the minimum drain to source voltage could be as high as 3.5V. Adding to the .2 ohms of the sense resistors then the minimum output voltage could be 5.5V @ 10A which is rather high. I'm not sure that D6 offers any worth while protection anyway - especially given that D7 will clamp the drains to -1V or so if the load is reverse connected.
Similarly, what is the purpose of D8? I assume it's for protection, but I can't think of a scenario where it would serve a purpose - the gates are actively driven by Q7 and should never go below 0V. I suppose you could make it a zener to protect the mosfet from excessive Vgs in the event the main regulator failing.
The relays need diodes or some other snubbers across the coils to protect the drive transistors.
It would be better to get rid of D9 and Q8 and drive U1A's iset directly from imcu through a resistor to avoid the extra drift as the forward voltage drop of D9 and Q8 Vbe won't match perfectly over temperature. itrim could then be coupled in at iset, perhaps by putting D10 inside U2B's control loop.
The signal itrim seems to be mislabelled as it is actually a clamp, setting the maximum current. Is this really it's purpose? If it is actually intended to trim out zero current offsets, then you could use the trimmer to adjust iset by +/- 1mV and change the range of imcu from 0-2V to 1mV-2.001V. This is to allow for the +/-800uV (max) offset of U1A which equates to +/- 4mA load curent.
Feature:
-over voltage input relay cut off protection
-constant power current controlled by mcu
-mosfet damage cutoff check
-voltage level cut off (LiPo discharger)
D6 will prevent the MOSFETs saturating thus limiting the compliance of the load. The threshold voltage of the IR540 can be up to 4V so the minimum drain to source voltage could be as high as 3.5V. Adding to the .2 ohms of the sense resistors then the minimum output voltage could be 5.5V @ 10A which is rather high. I'm not sure that D6 offers any worth while protection anyway - especially given that D7 will clamp the drains to -1V or so if the load is reverse connected.
Similarly, what is the purpose of D8? I assume it's for protection, but I can't think of a scenario where it would serve a purpose - the gates are actively driven by Q7 and should never go below 0V. I suppose you could make it a zener to protect the mosfet from excessive Vgs in the event the main regulator failing.i'm not sure i can follow you fully, but... why you say "D6 will prevent the MOSFETs saturating"?
its gate is driven at 0-15V swing from Q7, pretty much anything it can do to whatever mosfet operation whether in linear or saturation, the feedback opamp U1A will do whatever necessary to ensure certain "constant current" will pass through shunt resistor 0.2ohm. the maximum Vs swing up will be 2V (ie at 10A), gate swing up to 10-15V (8 - 13V Vgs depending on my final decision), much more room than needed to operate it in Rdson mode (linear?), or as other expert says, in ohmic region. but this mosfet is no ohmic region, so Vgs should be controlled at much lower voltage by U1A + Q7.
D6 and D8 will protect the gate from inductive or transient kick in, its located near the gate, where Q7 driver can be substantially farther away. D6 will protect whenever Vg goes higher than Vd,
and D8 protect when Vg tries to go negative.
The relays need diodes or some other snubbers across the coils to protect the drive transistors.yeah this is something i missed, thanks for the reminder.It would be better to get rid of D9 and Q8 and drive U1A's iset directly from imcu through a resistor to avoid the extra drift as the forward voltage drop of D9 and Q8 Vbe won't match perfectly over temperature. itrim could then be coupled in at iset, perhaps by putting D10 inside U2B's control loop.
The signal itrim seems to be mislabelled as it is actually a clamp, setting the maximum current. Is this really it's purpose? If it is actually intended to trim out zero current offsets, then you could use the trimmer to adjust iset by +/- 1mV and change the range of imcu from 0-2V to 1mV-2.001V. This is to allow for the +/-800uV (max) offset of U1A which equates to +/- 4mA load curent.itrim mean, current that is set from a user "trim"pot, imcu is calculated from mcu which maximum allowable current based on source voltage input by user at Vp+. D9,D10+Q8 will select which one is smaller.. Q8 out = minimum(imcu, irim), i know there will be voltage drop drift, but i'm not aiming at super precise device. i can certainly output current limit set from mcu alone, but i try to offload the work to an analog trimpot. and i'm suspecting sallen key filter will not be as good as analog trimpot at producing pure DC voltage.
and i'm suspecting sallen key filter will not be as good as analog trimpot at producing pure DC voltage.
Actually I used the wrong term - instead of saturating I meant 'prevent the MOSFETs fully turning on'. (See next point)
But you *want* Vg to be able to go higher than Vd. To fully turn the MOSFETs on
I don't believe it matters if Vgs negative but I don't know if the reverse breakdown voltage is significantly different to the forward direction.
Vgs needs to be 10V or more - but when it is turned on fully, Vds will be close to 0V (Ids * Rds on).
Ok. itrim is badly labelled - signal labels should generally reflect their meaning or purpose - what if you change the trimpot to a standard potentiometer?
You could simplify and eliminate the transistor and diode drift for 'itrim' by feeding the imcu to the top of the imax potentiometer and use the pot's ouput as iset directly - eliminating U2B, R35, R32, R34, D9, D10 and Q8.
I think imcu should be pretty stable providing you are using hardware pwm in the mcu. You probably don't need to use an opamp to filter it - two consecutive RC filters should be adequate (at least one of the Chinese active loads generates the set current reference this way).
Actually I used the wrong term - instead of saturating I meant 'prevent the MOSFETs fully turning on'. (See next point)
But you *want* Vg to be able to go higher than Vd. To fully turn the MOSFETs onno. see attached picture. if i request the circuit to draw 0 - 10A (iset), Vgs only swings about 3.3 - 4.3V. MOSFET will never turned on fully.
I don't believe it matters if Vgs negative but I don't know if the reverse breakdown voltage is significantly different to the forward direction.it wont hurt putting it there would it?
Vgs needs to be 10V or more - but when it is turned on fully, Vds will be close to 0V (Ids * Rds on).anyway, the gate will be powered from different 10V rail, i still can fully turn the mosfet on if i put Vp+ = 5V
I think imcu should be pretty stable providing you are using hardware pwm in the mcu. You probably don't need to use an opamp to filter it - two consecutive RC filters should be adequate (at least one of the Chinese active loads generates the set current reference this way).i believe active sallen key will produce better output than passive RC filter and better output impedance. in the new design, vcut and isetr (sallen key outputs) will go to another voltage divider (R31+R46, R44+R45 maybe will be around 4Kohm load impedance), if i use RC filter, it will screw the vcut2 and iset2 values for display purpose, i have to do carefull tuning on that if i use RC filter. but yes i do agree with you that just for this i have to put one dual rail to rail opamp (additional cost), but i'm prepared for it since i want it to be better, thanks.
The relays only provide a limited degree of protection. Switching a mechanical relay is slow and with a high DC current a relay may not even reliably turn off. What is the purpose of the relays anyway.
If it is for protection, it might be worth considering two MOSFETs in a kind of kaskode configuration
Would you, for example, not like to be able to use it to test a 3V supply, or discharge a Ni-mh cell down to .8V?
No, but there are a huge number of other un-necessary components which you could include in your circuit; why choose this one?
It's not about the 10V rail - it's because D6 clamps Vgs to a maximum of .5V above Vds. If the threshold voltage of both FETs is 4V (Vth spec is 2V min, 4V max), then Vds can't drop below 3.5V without the FETs turning off
Also with a larger mcu then you could easily add communcations to allow remote control and logging via serial port/USB/blue tooth module etc. for very little extra cost making it a considerbly better piece of test gear.