Author Topic: DIY-SMU Project  (Read 79211 times)

0 Members and 1 Guest are viewing this topic.

Offline djericksonTopic starter

  • Regular Contributor
  • *
  • Posts: 72
  • Country: us
Re: DIY-SMU Project
« Reply #200 on: July 04, 2022, 12:28:12 pm »
Adding a 1A range to DIY-SMU is a pretty big change. Some good discussion of the issues have been made. I thought I'd outline what I think is needed. My solution to a high current / lower voltage SMU is to not contort DIY-SMU to do this: instead I plan to do some improvements to my PS-Load project http://www.djerickson.com/ps-load. It's a simpler, smaller, and cheaper 2/4 quadrant design that can do +/- 24V at 2+A easily. It needs quite a lot: better accuracy, UI, SCPI, packaging...

Here is some of what DIY-SMU needs for a 1A range:

1A range switch requires an armature relay. This may need some hardware / software magic to minimize transients during the ~10mS current range switching.  Maybe I'm overestimating the difficulty, but K236 uses a complicated analog ramp circuit to address even their 100mA range switch. I cheat on DIY-SMU with a modern SSR.  I see that K2400 does not use a relay for its 1A range. Still haven't found out how they do it. MOSFETS have too much leakage to switch 1A with << 1nA leakage to not affect their lowest range. That's why they get the big bucks.

Yes, do not use 5V drop on the 1A range, 5W on a shunt resistor is hard, 2V / 2W is hard enough drift-wise.

The amplifier can mostly be used at 1A, but a class G (diode switch) is needed like the K2400, to source the lower ~+/- 30V 1A supplies. And more FETs to manage the power. Maybe need a way to turn off the top FETS to prevent 170V / 100mA from dissipating that extra power on the 1A range?

The amplifier needs a lower value shunt resistor with range switching to handle the 1A currents in addition to the .1A / .01A switching. The K2400 amplifier diagram doesn't show any of that stuff. Probably some straightforward low-voltage Mosfet and CMOS switching.

The power supply transformer needs lower voltage, high current windings and diodes/caps (~30V, 1A). Since AC leakage current of the DIY-SMU design is already pretty high, a full custom transformer, preferably high frequency, is required. This is a significant design / production task. Again, why Keithley gets the big bucks.

The output path traces and output relay need to be beefed up to handle 1A. Hot-switching 1A with a relay is worse than .1A, so some type of relay sequencing (software) is likely needed. The extra beef may push the main board to 4 layers. Not a terrible idea to use 4L for DIY-SMU anyway.

None of this is impossible, but it's a fair amount of design / parts / cost / complexity on top of an already complex DIY project. Stack too many blocks on top and the tower will fall over.

Thanks,
Dave


 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #201 on: July 05, 2022, 03:43:49 pm »
So, would it not be best to concentrate on what is available and get the most out of it? Softwarewise (adding functionality, ease of use...) and hardwarewise ((why not 300mA or even 500mA? Such SSR's are available and not everyone really needs that pA precision).
And indeed, a final version of the control board might be a 4 layer.
But before all, Dave, what are the specifications you were aiming at in the beginning? What you have now is already far beyond that! Time to "respec" the DIY-SMU?
 

Online Kleinstein

  • Super Contributor
  • ***
  • Posts: 14217
  • Country: de
Re: DIY-SMU Project
« Reply #202 on: July 05, 2022, 04:31:36 pm »
It makes sense to have separate versions for low current / high voltage and high current low voltage. The design may share the control part (ADC and DAC), muich of the software and case, but would have a different power stage, range switching and supply.  Combining both in a single unit adds extra complications and this may not be worth the extra effort for a DIY project.

The current / voltage range effects multiple parts:
1) the current range switching:  high current fet switches just have more leakage
2) the voltage sensing: low bias amplifiers tend to have more noise / drift, though the OPA140 is quite good, but still not perfect. Sub µV precision would likely need AZ amplifiers instead.
    The divider at the input adds to this. So both a large voltage range and pA current resolution interfere with high precision with the voltage.
3) Higher current shunts essentially need a lower burden and better precision amplifiers. A combination with pA resolution ranges is at least tricky and may need extra effort (e.g. also switch the amplifier - not just the shunt and maybe the gain).
4) the power stage:  one can combine both in a class G design, but it is extra effort and it adds an extra winding to the transformer and some extra MOSFETs. This part can serve both, but separate parts are still a little easier.

I am afraid there is not much room for simply pushing the original circuit to much higher current - the power at the shunt just gets nasty and the transformer and heat sink gets bigger.
 
The following users thanked this post: 2N3055, Neomys Sapiens

Offline jbb

  • Super Contributor
  • ***
  • Posts: 1145
  • Country: nz
Re: DIY-SMU Project
« Reply #203 on: July 05, 2022, 08:50:59 pm »
I have been doing some poking around on a Class-G amplifier. It’s … a bit painful.

There are issues with:
- DC Safe Operating Area
- needing series devices to spread dissipation
- thermals in general - lots of
- voltage sharing over series devices
- required voltage headroom of series devices; this raises amplifier dropout voltage and pushes up required supply rails

I suspect it makes more sense to build two SMUs. A ‘high current’ SMU would have reduced voltage range, lower drop across current shunt, and skip the really low current ranges. A ‘low current’ SMU would have more output voltage capacity and lower current ranges.

The ‘high current’ SMU could possibly - gasp! - use a switch mode supply to save on giant 50 Hz transformers. Or even a switching pre-regulator (but that doesn’t help a whole lot with the sinking quadrants).
 

Offline atx

  • Contributor
  • Posts: 34
  • Country: us
Re: DIY-SMU Project
« Reply #204 on: July 05, 2022, 09:09:35 pm »
I built a 2 channel version SMU based on Dave's and jaromir's design with a different approach on the digital side.  Thanks guys!! I use jaromir's approach regarding the shunts with the 2V range and implemented the 1A shunts using the AQY221R6 just to see how far this can go but limited it to 350mA max (actually, my current toroidal transformer does not deliver more) and carefully watch the temperature of the transistors.  My version seems to works down into the 100 pA range, good enough for me.  Regarding leakage, the datasheet of the 1A SSR does not list a typical value for the leakage current but the datasheet has a graph showing the off state leakage current vs. load voltage characteristics.  As we are dealing with a maximum voltage of 2V in the shunt section, it looks like the AQY221R6 which can handle 1A  has a leakage of something around 10pA while the other AQY22R  are probably <2pA.   I think this is only a problem if you need accuracy down in the low pA and fA range.  I also have a R&S NGU 401 for comparison and while this unit can deliver 8A, its not usable for measurements below 10nA.

atx
 

Online Kleinstein

  • Super Contributor
  • ***
  • Posts: 14217
  • Country: de
Re: DIY-SMU Project
« Reply #205 on: July 05, 2022, 09:23:21 pm »
A kind of class G output stage can help also with the sinking quadrant. With the simple 4 quadrant output  the sinking case sees the external voltage plus the supply votlage. So quite some extra power compared to a simple electronic load. With a class G output stage one could have a considerably lower voltage (e.g. 15 V anyway used the amplfiers or maybe even less for the high current version) added to the external voltage. The lower (inner) power transistors would still need to accept the 15 V plus the externals voltage.   As far as I see it the class G autput stage does not save on the transistors, it just only gets about half the transistors hot at the same time. So it helps with the heat sink, but not really with the transistors needed. It gives a natural series connection, but usually no power sharing between the halves.

A totally aggree with 2 separate SMUs. The higher curent one would be more like a precision 4 quadrant lab supply. It may not need a much larger power transformer, as the voltage also gets smaller. So one may in this case get away without stacking multiple FETs for a higher voltage rating. For many uses some 1 or 2 A and some 20 V, maybe 30 V would be well large enough.
I don't think a preregulator is very practical - more like a simple class G power stage that otherwise gets away without a series connection. of 2 FETs.
The lower voltage makes the capacitive coupling in a 50 Hz transformer more acceptable - so one may even get away with an of the self transformer.
 

Offline BobSacamano

  • Newbie
  • Posts: 2
  • Country: us
Re: DIY-SMU Project
« Reply #206 on: July 13, 2022, 10:49:07 pm »
Can anyone help me figure out how this design permits current sensing with such high common-mode voltages (+/-150V)? The OPA2145 has an input voltage limit of (V+) - 3.5 & (V-) - 0.1....
 

Online Kleinstein

  • Super Contributor
  • ***
  • Posts: 14217
  • Country: de
Re: DIY-SMU Project
« Reply #207 on: July 14, 2022, 04:50:32 am »
The SMU circuit is a bit confusing as it uses 2(3) supplies and 2 "grounds" that move relative to each other. This is a bit like the floating regulator lab supplies.
The current measurement is at a potential close to the regulator circuit and thus more like the low side and not that special.

The more tricky part is how the voltage is measured and the regulation compensates for the drop on the shunts: for the voltage measurement there is a high impedance buffer amplifier (e.g. OPA140), that is powered from a 2nd supply that is relative to the other ouput (e.g. high side). Similar the output after the shunt if buffered. With the extra buffers one naturally gets the option for extra voltage sense inputs (4 wire terminals).  For the regulation than a differential amplifier (in this case with a divider first) is used for the buffered signals.
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #208 on: July 21, 2022, 07:31:16 pm »
Is there anyone else out there actually building Dave's (or Jaromirs) DIY-SMU and willing to share experiences?
I am having touble with the software. So far I have been able to solve most of the problems and I have a working, stable unit.
However, the "keyboard HMI input" as provided by Dave is not complete. That is: it is completed to the point where the input value is read into the Teensy and the value is printed out on the serial. No handling of the input value and of course no update  of the DACs.
I suppose Dave got kind of pissed off with the known Nextion (library) issue of intermittent "ERROR" messages Nextion .readStr() function. No solution found on the net but the error happens only about 5 times in a hundred. So, why not, for the time being, simply discard those error readings and retry or even re-input?
I tried to do the handling myself using Dave's functions setForce() and nDispClamps() but I only get the setForce working reliably in FV mode.
Can anyone help me out? Dave??
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #209 on: July 21, 2022, 07:40:02 pm »
Some thoughts on the UI:
When modifying a force value should the input be clamped to the actual range OR should the range be adapted to the input value? In my opinion when modifying a value trhroug SCPI the firmware should rely on the knowledge of the programmer and do no further checking. Programmer is reponsible, machine obeys. On the other hand, when an operator modifies a setpoint durng a testing sequence he (she) may not pay full attention to what he is inputting, probably causing some kind of disaster. There the "machine" should at least warn the operator of anomalies.
How is this handled by the big guys?
 

Online Roehrenonkel

  • Regular Contributor
  • *
  • Posts: 179
  • Country: de
Re: DIY-SMU Project
« Reply #210 on: July 22, 2022, 02:37:20 pm »
Hi RikV,
 
on the Keithley 237 when inputting via Wheel / Incremental encoder input is "clamped" at the range-limits (1.1V 11V and 110V).
Input via keyboard directly works from 0 to 1.1kV.
When controlling by GPIB the high-range has to be enabled by the command "V1".
Thats all, no more "machine-inteligence".
 

Offline djericksonTopic starter

  • Regular Contributor
  • *
  • Posts: 72
  • Country: us
Re: DIY-SMU Project
« Reply #211 on: August 03, 2022, 12:29:44 pm »
Is there anyone else out there actually building Dave's (or Jaromirs) DIY-SMU and willing to share experiences?
I am having touble with the software. So far I have been able to solve most of the problems and I have a working, stable unit.
However, the "keyboard HMI input" as provided by Dave is not complete. That is: it is completed to the point where the input value is read into the Teensy and the value is printed out on the serial. No handling of the input value and of course no update  of the DACs.
I suppose Dave got kind of pissed off with the known Nextion (library) issue of intermittent "ERROR" messages Nextion .readStr() function. No solution found on the net but the error happens only about 5 times in a hundred. So, why not, for the time being, simply discard those error readings and retry or even re-input?
I tried to do the handling myself using Dave's functions setForce() and nDispClamps() but I only get the setForce working reliably in FV mode.
Can anyone help me out? Dave??
Hi RikV.
Glad to hear you have a working and stable unit. Nice!
Did you resolve these? Where did you find references to keyboard HMI Input? I don't remember that function, it might be a stub. I did a quick search of my .INO's and .h for 'hmi' and couldn't see it.
As far as the Nextion readStr() I haven't seen these errors, but wasn't looking. Not that affects performance, anyway. If you have a fix I'd like to see it.
setForce() handles FI and FV modes, depending on the current instrument mode. maybe you're not in FI mode?
I'm currently on a sailboat in Maine for August, Harbor island to be exact, so don't have full access to tools.
Thanks,
Dave
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #212 on: August 03, 2022, 10:03:03 pm »
Well, Dave, happy sailing (or how do I have to say it?). We, over here in Belgium and all over Europe, we are struggling with heath and drought. And on top of that there is a war in our backyard. But, no doubt, all will be well in the end.
I cannot thank you enough for this project: it has kept me busy for over a year now and a working device is at sight.
Regarding the User Interface Keyboard. In the last version of the firmware I found on your site Teensy requests the value input on the Nextion keyboard with the getKeypadString() function and then this string is printed on the serial(USB port). Nothing more.
I have -so far- worked it out that I can fully handle force values, volt and amps. Clamping will be done one of these days.
Concerning the "myNex.readStr()" you added this comment:
"Get the keypad result, Works, but only if no 'Invalid variable' 0x1A errors"
Indeed, for some reason every now and then the function returns "ERROR". The www gives no solution, the guys at Nextion seem to be deaf. Perhaps I can work aroud it with a "while" loop...
Could you hint me how I can set a clamp value (in software) in the easiest way? Do you plan to integrate scpi commands to set clamps?
« Last Edit: August 03, 2022, 10:05:39 pm by RikV »
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #213 on: August 06, 2022, 03:57:03 pm »
As of today, I have made advancements.
The complete getKeypadString() works as I want it.
The problem around myNex.readStr() is solved: a while loop repeats the read until successfull. Works fine.
Only onething remains to be investigated: clamp voltage input in 15V range is limited to 15V? To protect the instrument or a bug that escaped your attention?

The way of handling user input is done the safe way: protect the SMU and the DUT: user input is clipped to the actual range selection, meaning tha in 1.5V rang you cannot accidentaly input 100V and release smoke all around. Environmental responsbility. Better safe than sorry.
One thing I dont' have a solution for: when changing ranges upwards (ie 1mA to 10mA) the set value is multiplied by 10!
Say I am increasing the voltage on a DUT 0V....15V. I need a bit more and change to 150V range. Bang! 150V at the terminals. Oops.
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #214 on: September 11, 2022, 09:55:55 pm »
Dave, as far as the clamping condition concerns: I made it such that Teensy changes the color of the Vm to red in case of clamping. No need for an LED (and a new PCB) I guess.
How do the big guys handle this?
 

Offline Hydron

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: gb
Re: DIY-SMU Project
« Reply #215 on: September 12, 2022, 09:31:52 am »
236(/7/8) shows a "Compliance" LED when it hits a current/voltage limit. No idea about the more modern units sorry.
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #216 on: September 13, 2022, 09:49:06 am »
I read through the KS B2900 and K2400 manuals and I found only "sideways mentioning" of the indication. I understand the B2900 has an on-screen indicator and the 2400 series (2460) has a "display label". Keithley simply names it "overcurrent and overvoltage". No pictures of either two, it looks to me that both are the same but definetely not an LED on the front panel.
Nobody out here who has access to the real thing?
« Last Edit: September 13, 2022, 01:37:48 pm by RikV »
 

Offline djericksonTopic starter

  • Regular Contributor
  • *
  • Posts: 72
  • Country: us
Re: DIY-SMU Project
« Reply #217 on: September 15, 2022, 02:38:38 pm »
One thing I don't have a solution for: when changing ranges upwards (ie 1mA to 10mA) the set value is multiplied by 10!
Say I am increasing the voltage on a DUT 0V....15V. I need a bit more and change to 150V range. Bang! 150V at the terminals. Oops.
Yeah, sorry about that. The code is simple that way. It should change the value setting for Range Up and Down changes.
For a Range-up, it should just probably keep the same voltage r current, no?
For a range-down, what to do? Keep the original setting if it's in range? Set to Range max? Turn off the output? set to 0V? I don't know.
I couldn't decide what to do, so you see the result.
Anyone with a K2400 etc. know the answer?
Dave
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #218 on: September 15, 2022, 03:11:44 pm »
I try to visualize the situation when this happens: While testing and full attention on the object under test. Ramping up or down the Force value. Suddenly you see you are approaching a range limit. Changing the range I would expect to have an output value as close as possible to the one before changing the range.
So: when ranging up, keep the last value, do not multiply by 10 or 100!. When ranging down same reasoning: same valu when it fits the range ore max value of the range in the other case. That is what I would feel intuitive. But, who am I?

"see the result"?? have you updated the soft? What part(s)?
Oh, I see. Some sarcasm? No need. This is an amazing project.
« Last Edit: September 15, 2022, 07:38:38 pm by RikV »
 

Offline Hydron

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: gb
Re: DIY-SMU Project
« Reply #219 on: September 16, 2022, 08:47:42 am »
Keithley 23[6/7/8] will keep the original setting when up-ranging, you just lose the last (least significant) digit. When down-ranging it will either keep the existing setting (when it fits in the new range) or if it does not fit, will set the output to the maximum the new lower range can handle (i.e. strictly less than the previous value).
This seems like the only reasonable way to handle range changes without nasty surprises.
 

Offline djericksonTopic starter

  • Regular Contributor
  • *
  • Posts: 72
  • Country: us
Re: DIY-SMU Project
« Reply #220 on: September 16, 2022, 05:13:49 pm »
Thanks much for the feedback. "Do no harm",  good idea. Should be simple enough to implement. Next time I'm working on the code...
Dave
 

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #221 on: October 10, 2022, 02:07:16 pm »
Dave, I don't know if you ever noticed: after reset the measured value (15V range) is incorrect until the first change in force setting or till changing range (the error is the size of the offset error).
This is due because after exiting "initDAC()" the following "setDAC()" simply forces the DAC output to midscale which does NOT correspond to 0V output! Offset error. I supposed that simply using "setForce()" would do the job but it doesn'. More investigation is necessary.
 

Offline aeonfor

  • Newbie
  • Posts: 1
  • Country: bs
Re: DIY-SMU Project
« Reply #222 on: October 25, 2022, 10:56:22 am »
In an SMU design, the Out- is the common of the power supply, driven by the +/- 150V supplies common.

Offline RikV

  • Regular Contributor
  • *
  • Posts: 130
  • Country: be
Re: DIY-SMU Project
« Reply #223 on: October 26, 2022, 03:48:34 pm »
What do you expect from this post?
 

Offline djericksonTopic starter

  • Regular Contributor
  • *
  • Posts: 72
  • Country: us
Re: DIY-SMU Project: Parts are available!
« Reply #224 on: December 14, 2022, 03:23:02 pm »
Good news about DIY-SMU, and the industry in general. All the parts for DIY-SMU are currently available from distribution or will by year-end at Digikey, Mouser, or both.

One Caveat: Teensy 3.2 is still out 'till March 2023. Teensy 4.0 is a substitute, but I have not tried it yet.

The problem children were Si8661, AD5686, AD7190, ADR421, OPA145, OPA2145, DG441, OPA2340, RS3-1215D. They are are all in stock.

I have bare boards, front and rear panels if anyone wants to build one. Email me.

Thanks, Dave
dave@djerickson.com
www.djerickson.com/diy_smu
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf