Author
Topic: Lab Power Supply Design Part 5 (Read 43984 times)

I see you share the ISP and the DAC SPI (and plan to put the ADC on the same ISP bus, too). This can in principle be done. However, a lot of AVR ISP programmers are a little bit allergic when the ISP interface is shared. I recommend you have a look at Atmel's application note AVR042, section 4.1.1 http://www.atmel.com/atmel/acrobat/doc2521.pdf for the official way to handle this.

When all else fails, then a jumper to disconnect SCK from the rest of the bus, and only leave it connected to ISP helps, too.

Second, the reset pin should be handled differently, esp. if you are in a noisy environment. Most people don't try their luck and add a resistor and cap. Similar to what is also given in AVR042. However, most people skip the diode recommended in AVR042.

Third, and this might be a real issue, you have connected a LED to the reset pin. Presumably you want to drive the LED via PC6. However, that is not possible. AVR reset pins can either be used as a reset pins, or as a GPIO pin (here PC6). Which function the pin has can be set by a fuse, RSTDISBL.

But there is a catch! If you program the RSTDISBL fuse you no longer have the reset pin function. However, the reset pin function is needed for ISP programming. In other words, programming the RSTDISBL fuse is the last thing you can do via ISP. After that you don't have ISP any more. A workaround would be to program a bootloader via ISP into the AVR, then program RSTDISBL via ISP, and from that moment on do all further firmware updates via the bootloader. A bootloader, however, can not change (program or clear) the RSTDISBL fuse.

The other programming method for this AVR, high voltage serial parallel programming, HVSPP, is just a theoretical option. It would allow to clear RSTDISBL, thus again enabling ISP. But that method requires to wire up something like 18 pins of the AVR to the programmer and use a 12V programming impulse at some pins. This is nearly impossible while the AVR is in the circuit.

I would recommend you free the reset pin, too and use it exclusively for reset.

To protect the RESET line further from noise, it is an advantage to connect a capacitor from the RESET pin to ground. This is not directly required since the AVR internally have a low-pass filter to eliminate spikes and noise that could cause reset. Applying an extra capacitor is thus an additional protection.

I see you share the ISP and the DAC SPI (and plan to put the ADC on the same ISP bus, too). This can in principle be done. However, a lot of AVR ISP programmers are a little bit allergic when the ISP interface is shared. I recommend you have a look at Atmel's application note AVR042, section 4.1.1 http://www.atmel.com/atmel/acrobat/doc2521.pdf for the official way to handle this.

I only have input pins on other chips (DAC-D, DAC-CK, ADC-CS) connected to the SPI lines, so I can't see how they can interfere with the ISP?So it's only one extra CMOS gate input loading on each line, surely not an issue?

You can get issues with the opamps if their resistor values don't match since they control the gain.Less accurate resistors mean less accurate gain, so you introduce errors. (eg if it's supposed to be a gain of 5 you might end up with 5.05)But yes, it will work with 1%, just won't be as accurate

If you have lots of 1% resistors you could go through them and find ones with matching values to use on the opamps.That would be a good solution to your problem if you have lots of 1% resistors you want to use.

Sure.My aim with 0.1% is so that hopefully you won't have to trim any potential errors in software and there is as little absolute tolerance error as possible without fuss, i.e. their tolerance is better than the voltage reference used.As PSI said, you can hand match them if you like, or use 1% and be happy with any potential absolute error.

Could use a relay instead of the fet to bypass the ucurrent section and eliminate the fet rson drop.

However i don't really like things that click all the time when moving the controls.So i'd probably stick with the fet for now, the vdrop is so small its probably the best option.

Replacing it with a relay is simple enough if its ever needed

What kind of resistance might you expect across a typical relay contact? I have measured a high current mechanical switch at about 1.5 milliohms and an ordinary metal face-to-face contact point at about 5 milliohms. Would the relay need to have gold plated contacts to achieve a good low contact resistance?

Could use a relay instead of the fet to bypass the ucurrent section and eliminate the fet rson drop.

However i don't really like things that click all the time when moving the controls.So i'd probably stick with the fet for now, the vdrop is so small its probably the best option.

Replacing it with a relay is simple enough if its ever needed

What kind of resistance might you expect across a typical relay contact? I have measured a high current mechanical switch at about 1.5 milliohms and an ordinary metal face-to-face contact point at about 5 milliohms. Would the relay need to have gold plated contacts to achieve a good low contact resistance?

And just when I went ahead and ordered the IC's for your older videos! I guess I've got my work cut out for me.. I hope I can put it all together myself.. I guess everyone else is comfortable with this level of detail but it's a bit intimidating to me. I'll try it anyway though.

Again, thanks Dave, we all appreciate the hard work you put into this.

I was considering making my own uCurrent after the latest batch sold out so fast, but integrating it into a power supply is a brilliant idea

I too came across all the microchip ADC/DACs due to their low prices, but I was disappointed to see no quad input ADCs from them with I2C Using I2C is great from a modularity point of view. You can very easily expand to a dual/triple output supply without needing more microcontroller I/Os, and the code change is trivial (simple address change - no overlapping pins).

The Analog Devices AD7998 seems perfect for a dual output supply. Once setup you can read all 8 channels with one address/write byte + command byte, followed by one address/read byte and 16 read bytes (it just samples ch1, ch2, etc in order). For each output, I would sample current, uCurrent, output voltage BEFORE an output enable mosfet, and Vsense (either seperate terminal, or on the actual output connector, or switchable...). The AD7994 is a 4ch version.

Input voltage could simply be measured using the microcontrollers ADC as high accuracy isn't necessary.

For a i2c DAC I was going to go with the microchip MCP4728. Has an internal 2.048v Vref with a selectable x1 or x2 gain (handy for extended voltage ranges) but its accuracy is only +/- 2% with 45ppm/C...

For a micro I was going to go with a PIC18F4550 for a few reasons.

1) I've used them in the past 2) Hardware i2c, serial, and USB2.0 (all usable at once I believe)3) Microchip USB stack and bootloader make it incredibly easy to do firmware updates over usb, or emulate a COM/Serial port over USB. Their framework and examples make it incredibly easy to get USB comms working.4) Plenty of I/O leftover for "stuff"

Also comes in a DIP40 package although some of the other parts i've chose are SMD parts only. I'll be going for TQFP package myself since I've got a few of them leftover from a previous project.

I figured with I2C, you could build modular boards that have all the DAC/ADC/Vreg stuff, and a single control board. Thanks to Dave making his design open source other's can do things a little bit different

Also, for the main power supply, would it be reasonable to use something like an 15-18V switchmode supply? I want something I can mount internally instead of using an external jack, and AC transformers are so expensive!

Dave, one quick suggestion as you are running out of pins, if you have to use the reset pin to drive an LED ...

Your four switches (PB1 to PB4) ... one way of doing that without four pins is to set them up, via resistors as voltage dividers, to a single analog pin (you are using an analog pin anyway). The simple method (same value resistors) could give ambiguous results if multiples switches are pressed at once (I don't know if this would matter to you). With different value resistors (eg. powers of 2) you could deduce from the resulting analog level which combinations must have been pressed. So that frees up three pins.

Hi, this might be a wacky idea, but how difficult would it to add a function generator option that turns the dc output specs into an ac output with the same specs (like voltage 5 VDC to 5 V peak-to-peak at a set current).

Rutger

Logged

alm

( Using I2C is great from a modularity point of view. You can very easily expand to a dual/triple output supply without needing more microcontroller I/Os, and the code change is trivial (simple address change - no overlapping pins).

The Analog Devices AD7998 seems perfect for a dual output supply. Once setup you can read all 8 channels with one address/write byte + command byte, followed by one address/read byte and 16 read bytes (it just samples ch1, ch2, etc in order). For each output, I would sample current, uCurrent, output voltage BEFORE an output enable mosfet, and Vsense (either seperate terminal, or on the actual output connector, or switchable...). The AD7994 is a 4ch version.

One issue with this is that all outputs will share a common ground. In typical lab supplies, all outputs are floating. Isolating an I2C interface is somewhat complex. NXP has an appnote which basically involves two I2 transceivers with some optos in between. There are also some specialized I2C RF isolators by AD and others.

alm: Yeah all the outputs will have the same ground reference. So there'll be no option to do series or dual +/- rails. I was thinking more along the lines of simply having more separate outputs where the voltage and current can be monitored. It wouldn't be hard to add USB/RS232 datalogging capabilities, or even some onboard memory for logging (download it later).

Dave, 500 reads already! You have hit a "nerve" (in a good way) with this one. I have followed you through from the very first videos, and follow what you are doing well enough (sign of a good teacher )

You are no doubt going to get DOZENS of "how about this/that?" options. Here are mine.

>> 10V limit? That's fine, but for a number of projects I would like to look to at least the "industry standard" of 30V, even though I won't use it often. I will go though the circuit myself to see what limits higher voltage working (I can sacrifice some of the 2.5mV resolution!)

>> I would like to give some though to a twin channel supply, that the outputs can be paralleled/Serialed up. Hmm.. might need two complete identical PSUs, with some (digital opto) isolation between the two... That'll be "Power Supply Design part 17", then!

>> "I agree with Nick" (famous slogan in the UK General Election, last year; may not translate down under!) You can save three of your four switch pins PB1-PB4 using a simple switched resistor ladder. Make the resulting analogue voltages 2, 1, .5 and .25V. Then if some smart arse presses two buttons to produce an analogue output of 0.75V you will have the A>D resolution to detect and reject it. I have used this to good effect before - it is perfectly reliable with up to 5 switches.

>>With one of those freed up pins... how about a little bit of temperature feedback from the heat sink? (or is the LT3080 able to look after itself?)

>> 10V limit? That's fine, but for a number of projects I would like to look to at least the "industry standard" of 30V, even though I won't use it often. I will go though the circuit myself to see what limits higher voltage working (I can sacrifice some of the 2.5mV resolution!)

I'd like atleast 12V on mine. 2.048v ref voltage with a gain of 6 is 12.288v with 3mV resolution. This may not be enough to correct for losses to get 12v output at high current loads, but then you could just do a gain of 7, 8, etc You just need to adjust the resistor dividers on both the VSET opamp and the VSENSE input.

If I use the MCP4728 with its internal 2.048 Vreg and the switchable x1, x2 gain, it would allow me to dynamically change the output range. Any error could be calibrated using the ADC which will have a proper voltage reference source. Trade-off between an easy digitally controlled voltage range switch, and having to calibrate stuff in software.

Hi, this might be a wacky idea, but how difficult would it to add a function generator option that turns the dc output specs into an ac output with the same specs (like voltage 5 VDC to 5 V peak-to-peak at a set current).

Rutger

If ya wanted that sort of extra functionality it would be easier to use a 3A opamp direct.

What about start up, or if the software loses the plot, for some reason? what are the output states of U5 VoutA and VoutB? Do these default to a nice safe 0? at low impedance? We don't want the op amp inputs flapping about at hi-Z if the controller isn't, well, controlling... worth a couple of 100K pull down resistors on Vset and Iset?

I am thinking that the output voltage could be scaled up to 25V, while keeping an eye on V+, which mustn't go over 36V, or the main reg will be TOAST. Then it will also be necessary to put another (say) three-pin 12v reg down from V+ to run the op amps. Need to recalc voltage feedback gains, of course.

For this design, being how i would like to beef it up to 0-~30V (3x the gain), firstly, can you forsee any obvious issues that would come from this, and secondly, would there be any issue in using fets to switch tappings on a transformer, being how i would loose the majority of my current capability with over 12V difference in to out,

For this design, being how i would like to beef it up to 0-~30V (3x the gain), firstly, can you forsee any obvious issues that would come from this, and secondly, would there be any issue in using fets to switch tappings on a transformer, being how i would loose the majority of my current capability with over 12V difference in to out,

You can also charge a big capacitor until it is like 5 volts over the output voltage and then disconnect it from the transformer until the voltage of the rectified sine wave comes down to the same value, effectively making a very low frequency switching pre-regulator with a large ripple (4 V) which in turn is smoothed out by the rest of the circuit.Consider maximum output current, maximum dropout and the maximum power dissipation on the regulator you want to be energy efficient to calculate the capacitor and the voltage over the output to switch off the transformer.

You can also use a pre-built switching power supply like one of those adjustable laptop adapters and replace the switch and associated feedback divider resistors with a digital potentiometer under control of the microcontroller in order to dynamically keep the input voltage a just a couple of volts over the output voltage.

That is what i am going to try to do with mine, however, the laptop power supplies I have seen until today are adjustable up to 24V and I do not have any to open and check the circuit to see if if can go up to 32V or so in order to get 30V output.Since the DAC is 12 bit (4096 steps) I'd like mine to go up to 40.96 V in 10 mv steps to use the DAC's range accurately and fully, but i doubt I wil find any cheap switching power supplies on the generic market that can go up to 43V and supply at least 3 A (ideally over 4 amps to be able to make it go to 4.096 A in 1 mA steps).

I`v done some research and found that Atmel has a well suited for this project, in my opinion, microcontroler. There is ATxmega16/32/64/128A4 family. It has build-in 2-channel 12-bit DAC and 12-channel 12-bit ADC. It cost about 6 dollars. The only problem is that it is in 44-TQFP package. How about that?

The ATxmega would be good if you make it only for you, but the idea was that the PSU was a kit version, so the logic is to use a majority of THD parts. In some cases you can use only smd parts, but in a large package for easy soldering.

Watch out! You can't push the LT3080 beyond 36V Vin, and expect it to last you a long time.

I have tried "slow speed" switching of the mains transformer via a thyristor onto a big main supply cap before, to reduce the average voltage on the cap. Two mains cycles on, two off; that sort of thing All that happened is that the one or two mains cycles when the transformer was connected to the load caused it to get DAMN HOT (suspect the core was saturating).

Best bet is to have a transformer with a tap at around 2/3 of the total output voltage, and relay-switch between the 100% and 60-70% tap. This will reduce the peak power dissipation of the series regulator. Software (if you have an intelligent controller) or a simple comparator switches to the higher transformer tap, whenever the output voltage is higher than a pre-set point. Build in about 1 V hysteresis to prevent the relay chattering.

I'd be happy with ~15V output. I figure I can do that with a few gain resistor tweaks, a couple of voltage divider tweaks. I just have to watch out that the higher input voltage doesn't burn-up any components running directly from Vin. Then I'd just have to add an LM7812 to run the electronics Vin rail.

I’m not an expert, far from it but why reinvent the wheel?Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

I’m not an expert, far from it but why reinvent the wheel?Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

PIC18F46J50 only has 10bit ADCs. Atmel does the ATxMega series with 12bit ADC and DACs, but 1) they aren't available in a DIP package (Dave's making kits that customers assemble themselves) 2) Have you ever tried to reliably get stock of some of the Atmel chips.... its a bit of a joke sometimes. Not good for an open source design if nobody can get parts!

Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

Why don't you just do your own design and kit, if you know how to do it right?

There's one more AVR catch I've noticed in the schematic, AREF pin tied to Vcc. You're not supposed to do that, you can select internal reference to be AVcc in software (REFS bits in ADMUX register) and then you should put a decoupling cap from Aref to ground or just leave it disconnected if you're not using micro's ADC.

If you (or someone plaing with the kit) accidentally switch reference to internal 1.1V it'll appear on the AREF pin and get shorted with Vcc.

Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

Why don't you just do your own design and kit, if you know how to do it right?

Freeloading and a general lack of appreciation for the contributions that Dave has graced the community with, obviously.

Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

Why don't you just do your own design and kit, if you know how to do it right?

There's one more AVR catch I've noticed in the schematic, AREF pin tied to Vcc. You're not supposed to do that, you can select internal reference to be AVcc in software (REFS bits in ADMUX register) and then you should put a decoupling cap from Aref to ground or just leave it disconnected if you're not using micro's ADC.

If you (or someone plaing with the kit) accidentally switch reference to internal 1.1V it'll appear on the AREF pin and get shorted with Vcc.

Good catch and thanks for the reference. I'm simply of the disposition that any device-specific claim ought to be backed up with an appropriate reference in documentation.

If I do end up building one for shits and grins, I wouldn't use an Atmel uC anyways. I'm really more interested in Dave's analog thought stream, general system integration methodology, and how he intends to mitigate conducted susceptibility on board layout.

I've never had problems getting stock from MicroChipDirect, and shipping is always a flat ~$17 fee. Most of the time I consider getting an Atmel chip I get roadblocked with no stock at AU suppliers, and its $30+ shipping from the USA. MCD usually have pretty good pricing too. PIC18F4550 TQFP is $4.38 for 1-25 chips. Unless you need single units or parts overnight, MCD is always a better option for me in Australia

Looks like Digikey has plenty of atxmega's, so my quick search of local suppliers gave me the wrong impression of availability.

Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

Why don't you just do your own design and kit, if you know how to do it right?

Freeloading and a general lack of appreciation for the contributions that Dave has graced the community with, obviously.

No, that’s not at all what it is! Maybe you like it to be but it’s not.If we can’t discuss technical things and issues on this forum without getting personal about it what’s the point?

I’m not an expert, far from it but why reinvent the wheel?Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

PIC18F46J50 only has 10bit ADCs. Atmel does the ATxMega series with 12bit ADC and DACs, but 1) they aren't available in a DIP package (Dave's making kits that customers assemble themselves) 2) Have you ever tried to reliably get stock of some of the Atmel chips.... its a bit of a joke sometimes. Not good for an open source design if nobody can get parts!

OK, I made a mistake picked the 46J50 from memory when I should have picked the PIC18F46K80 part as an example. Or if USB is preferred the 18F4553 or 18F4458 however these two only runs at 48MHz.

I got very disappointed with Atmel, their products and the availability and had since moved to Microchip and I’m very pleased with the decision. I believe I get more bang for the bucks and I always find and get what I want and in time.

I’m not an expert, far from it but why reinvent the wheel?Why use so many peripheral chips when you can save space and money by using for example a reliable PIC18F46J50 or similar which got most of it onboard?Just drop the “full of nasty surprises” Atmel chip.

Don't say that! ALL chips have nasty surprises. I am a fond PIC user myself, but I have had projects where 5 patch wires were required because several GPIO was an I-only (or USB communication). Kinda annoying when you wire up the symbol saying 'D+/RD4' (or something). This also happened for the oscillator pins, apparently not capable of doing output kinda stuff.Yeah, should have read the datasheet, but it should be clear from the pin-out and I/O table diagrams what I can use as an I/O and what not.This also applies to some Altera FPGA's, where it said something like 148I/O pins on the datasheet. But as 10 of them were clock, it's more like '138 I/O, 10 optional I pins'. Unfortunately this project required 140 O's. Too bad the chips were already ordered..

Also, as Dave mentioned in the video, an internal ADC/DAC is nearly not as good as an external one. The Microchip parts are pretty bad at specificying noise, but the ADC used has an SNR of about 72dB there abouts. Considering THD is not an issue, you get about 11.6 effective number of bits. This means oversampling by 2-3x gets you 'noise free' readings (not free, but atleast not much left of it). I don't think an internal ADC can improve on that, in fact.. I've seen internal ADC's dancing around on 10-bits.

Also note that a direct USB connection is not nice, because you don't have an isolated supply any more.

I plan on building my own PC accessible dual power supply, but with some tweaked specs. I think 10.24V out is too low, rather see 18V maximum. I will probably be using a higher specified ADC for the readouts so I can get even more accuracy on current and voltage. Especially the current consumption functionally is neat, as I was designing a device that I approached the other way around (good current measuring with internal supply options). I don't think the uA range of 10mA may be wide enough, I'd rather get up to 20 - 25mA with a resolution of <1uA. Yes, that's about >20k counts, but a 16-bit ADC + oversampling should cope. Even more nicely would be to add an 'oscilloscope'-like feature to the PC (so USB communication actually has a good use!) so I can see the power consumption real time. It will require fast ADC's and a lot of post proccessing.

Will have to see how it goes. Especially streaming data to PC, isolated and fast is kinda hard to do. FTDI chips can only run so fast (like 2M-3Mbaud), so may have to resort to a FT232H chip (USB2.0 , up to 12MBaud). Auto ranging the uCurrent range is only useful when you can also lock it to on/off. If you have a device with a modem drawing 1Amp peaks during transmit, you don't want the PSU to be smart and think "hey I can switch to low current measuring range", but isn't responsive enough on the transients (how fast is checked whether it's not clipping? once every 10ms?)

But I guess this goes far beyond the average user this kit is meant for, as the uA measurement is a nice extra, and the rest of the supply is more than sufficient for someone playing with microcontrollers..

Using the external ADC and DAC gives builders not only the choice in their ADC (Microchip make pin compatible 10 and 12 bit versions), but also decouples the design from any particular processor or even brand, and lets people play with and maybe learn about some SPI devices.It's not a bad choice.

I just have to say it's a bit of a moot point to argue with a designer after he's already chosen the micro with which he's going to control a system. Dave, I'm not gonna question your choice; after all, it's your baby, you're the one that's gotta make it work, and you know what you're doing, so I'll just sit back and wait for the final product.

I got very disappointed with Atmel, their products and the availability and had since moved to Microchip and I’m very pleased with the decision. I believe I get more bang for the bucks and I always find and get what I want and in time.

It's almost as varied as products in the auto industry, regarding µCs: each brand and line has its ups and downs, and there is no "one solves all problems" chip. The combination of hardware qualities, development environment, support, tool availability/openness, part availability, etc., i.e. the 'biosphere' surrounding a chip, all play into the strengths and weaknesses of each.

Having said that, I'm still using AVRs because that's what I started with, there are many free and easy-to-use tools for the platform, and it's what I know best due to familiarity. NOT the f**king Arduino platform. Yes, there are many 'gotchas', but they're not show-stoppers if you're creative and RTFD. Microchip has rapidly learned why AVRs have such a rabid fan base, and their lineup reflects that knowledge, so I may give them another go when I have the opportunity. I've had the inkling to try out an ARM, a ColdFire, as well as a few oddball FPGAs, in addition to the PIC line. Just for kicks, I've tried my hand at some assembly on a VERY old 8051 recently. Wow, THAT was painful, but very enlightening!

My first experience with Microchip was in 2007; it was expensive and not much fun, involving MPLab and a PIC24F controlling a 3? BLDC CNC motor. Yes, my first endeavor in embedded system design was a trial by fire...or at least that's how I remember it. Nevertheless, I'm an intelligent guy (ha!), so I can accept that my point of reference may have been skewed by inexperience, stress, and 36-hour days.

just felt i would point out that this schematic is limited to a maximum input voltage of 14V due to IC's u3 and u12, apart from that it seems that all anyone would need to do is change the op amps and gains and they could run this supply upto ~32V (better to be safe than sorry)

dave any chance of a higher rated op amp after your proto board for the kit, being alot of the people that buy this kit will probably not catch on to that limitation, and hook it upto some 15V plug supply and blow them

I think this might have been covered in the videos, I can't remember, but what happens if you should connect a battery to the output, for example attempting to charge it? Is there a danger of damaging anything if the power supply is switched off or has a lower set point voltage than the battery?

ian, i test automotive based control systems, they need those higher voltages (yes they have a regulator stage but its good to test them aswell) also a number of users will try and repurpose this themselves,

so i am just laying out what i can see as the devices maximum capability

as for the op amps, they appear to be linked to input voltage, so it is a valid point about someone feeding in more than 14V

ian, from memory, aslong as the voltage being shove back into the supply doesnt exceed the input voltage of the supply you are good (please check this, i may be wrong)

I'm wondering what might happen if the supply was powered down with the battery connected. I recall that voltage regulators may not like having the voltage on their output pin raised above the input voltage.

in those cases there is usually a protection diode across the output and input supply pins, so that it never goes more than 0.7V above the input pin (regs can generally survive this, but for low droput may require a schottkey) and this protection generally goes the whole way up the chain until you hit your transformer (be it the plugpacks or your own)

and while i find it odd that it was left out while the negative protection was added, i feel dave may have had his reasones due to layout limitations or other potential issues we arent aware of at this time, (e.g. leakage current of the diode while testing down to half milli-amps)

ian, from memory, aslong as the voltage being shove back into the supply doesnt exceed the input voltage of the supply you are good (please check this, i may be wrong)

I'm wondering what might happen if the supply was powered down with the battery connected. I recall that voltage regulators may not like having the voltage on their output pin raised above the input voltage.

If the supply was powered on, the regulator feedback will compensate by adjusting the base voltage of the internal pass FET.

With the supply powered off, I don't see anything that would be an issue. The Schottky at the regulator's output is rated at 40V reverse breakdown, and reverse leakage is spec'd at 400uA@40V, so any leakage current will pass through the low side sense resistors. Assuming you're not charging 40V batteries, it'll eventually drain if you leave it hooked up, but that looks to be the extent of it.

mate, he is getting at a positive voltage within the devices normal operating area being connected before powering it up, that 40V diode is only good for negative voltages or ones exceeding 40V,

the point still falls back, what protection is in place when a voltage higher than the input is present on the output, be it the 10uF cap when you switch it off, or an external source of power e.g. his 9V battery,

the point still falls back, what protection is in place when a voltage higher than the input is present on the output, be it the 10uF cap when you switch it off, or an external source of power e.g. his 9V battery,

It will reverse bias the emitter base junction of the LT3080 pass transistor and possibly kill it. I don't see any relevant specification in the datasheet or mention of protection against reverse bias. So who knows?

mate, he is getting at a positive voltage within the devices normal operating area being connected before powering it up, that 40V diode is only good for negative voltages or ones exceeding 40V,

the point still falls back, what protection is in place when a voltage higher than the input is present on the output, be it the 10uF cap when you switch it off, or an external source of power e.g. his 9V battery,

before powering up, there is no power on the input stage, when powering down there is only what is held in the capacitance of the input stage,

while the output capacitance is less of a concern due to the constant current source, the micro, lcd adc and dac are all powered off the input side, likely to drain it faster than the constant current on the outside if no load is connected,

in short, i am saying unless there is some higher level reasoning i am missing, an extra protection diode between output and input of that reg would solve those potential issues, making it more robust, and as dave has been sporting on about, guild the lilly one more step with a small fix,

There's one more AVR catch I've noticed in the schematic, AREF pin tied to Vcc. You're not supposed to do that, you can select internal reference to be AVcc in software (REFS bits in ADMUX register) and then you should put a decoupling cap from Aref to ground or just leave it disconnected if you're not using micro's ADC.

If you (or someone plaing with the kit) accidentally switch reference to internal 1.1V it'll appear on the AREF pin and get shorted with Vcc.

Good point. AREF is usually left floating, but with the 100nF capacitor on it. So instead of the 2 x 100nF capacitors as shown, you really should have one on pin 7 (Vcc), one on pin 20 (AVcc) and one on pin 21 (ARef).

Using the external ADC and DAC gives builders not only the choice in their ADC (Microchip make pin compatible 10 and 12 bit versions), but also decouples the design from any particular processor or even brand, and lets people play with and maybe learn about some SPI devices.

Your project is very educational, and the ensuing discussion also. I am learning a lot about why you might choose to do this, rather than that, when designing electronics circuits.

None of the LT3080 apps show that traditional protection diode, even their lab power supply design, so I presumed it was somehow fairly well protected in that regard.Might be worthwhile testing that, or adding the diode perhaps...

Assuming this power supply is for testing electronic circuits and not power devices, for what kinds of circuit might a 10 V supply be inadequate?

In that line of thinking, just build a 3.3V/5V power supply, and perhaps a luxe-edition with 9V & 12V. That will be fine for 99.5% of all non-power circuits.

Most circuits that will be operated from batterypacks will need more than 10V; 3C lipo 11.1v, lead-acid 13.8v, and charging voltages even higher.Any circuit with a 7812 or similar inside needs some 14-15V to work properly.

I'd say a lab power supply needs to provide at least up to 15~20V to be reasonably universal. (Also matches higher power mains adaptors nicely, think 19V laptop power supplies).

The thing that concerns me the most about this design is the lack of an isolated RS232/USB.

Power supplies need floating outputs, and if you couple that with a USB cable internally connected to the power supply negative supply rail that is then plugged into a grounded PC, you have a nasty problem.

The thing I will be looking to do with some Arduino projects I am planning is to add an Arduino Ethernet shield to the instrument's board. Driving the LAN shield is extremely simple on the Arduino thanks to the smart WIZNet W5100 chip on the shield, and the Arduino Ethernet library functions.

1. Isolation to 1500VAC and 60pF total capacitance through the transformers.2. If the instrument is on the local LAN, then any other computer on the local LAN can talk to it. You do not need to have a computer within a USB cable length.3. You can talk to the instrument from Smartphones. This could be done using Telnet clients, or I know Android phones have several scripting apps available in languages like Python and Lua.4. Includes a microSD slot, so an internal SD memory for data logging and instruction sequencing could be added.5. Interfacing with a LAN port is simpler then with serial ports. Port number and IP address can be set in the instrument, and there is no baud rate issues.6. No drivers needed to talk to the instrument, so it will work with anything.

Using the SD card to store HTML and images, it is even possible to run a web server from the Arduino, so the instrument can have an Ajax/javascript smart web interface:

At the price, it is not probably not worth adding the parts to the main board - just buy the shield.

The cost is it uses the 3 ports on the ICSP connector, plus output 10 for Ethernet Select, and pin 4 for SD select (if you choose to use it). So that is 4 ports without a SD card and five ports with a SD card.

The thing that concerns me the most about this design is the lack of an isolated RS232/USB.

There's a mention at the end of the blog that there will going to be a separate board so it won't be a problem to do isolated RS232 or just any interfece you could imagine.

You are right, Dave did talk about the isolation at the end.

It is just that to add the Ethernet, the simplest way is to add it to the main micro, by freeing up pins with an additional multiplexer IC or something.

Otherwise to add Ethernet, you need a second micro, plus a protocol for the two micro's to talk to each other. Might need that to get an isolated USB too plus an additional isolated supply, and the point is that I believe the Ethernet is really a superior solution to USB with the virtual COM port, and it does not need an iadditional supply to get isolation.

issue with that is, there isnt really any way for him to free up pins, atleast not without significantly rethinking his design,

its open source hardware, if you want some arbitary function that daves not aiming for, then modify the schematic to fill your needs, and lay out the board,

as for the usb port on it, its just for use as a charger at this point, i am pretty certain that if you really wanted to use usb to watch and / or control the supply you would just need to add an isolated serial to usb daughter board to the thing,

issue with that is, there isnt really any way for him to free up pins, at least not without significantly rethinking his design,

I fully understand that, which is why I made the suggestion. There is always a way to free up pins - if you have to - and adding an Ethernet port would transform the design from "just a power supply" to something that could really evolve in the Open Source world to something that is more then a power supply.

Just had a quick look at Dave's RevA schematic, and freeing up extra ports is easy, if they are needed.

There is a lot of redundancy as Dave is using seperate clocks and chips selects and data in lines to the A/D, D/A and display. They could all share the one data line and perhaps share clocks. Also four ports are used for the four push button switches. It is possible to reduce that to one port using one of several methods.

In the case of the DAC, it looks like the chip select is also the shutdown. Is there any need to shutdown the chip - as opposed to just setting the outputs to zero?

Just had a quick look at Dave's RevA schematic, and freeing up extra ports is easy, if they are needed.

There is a lot of redundancy as Dave is using seperate clocks and chips selects and data in lines to the A/D, D/A and display. They could all share the one data line and perhaps share clocks. Also four ports are used for the four push button switches. It is possible to reduce that to one port using one of several methods.

Yes, I mentioned freeing up pins in the video.

Quote

In the case of the DAC, it looks like the chip select is also the shutdown. Is there any need to shutdown the chip - as opposed to just setting the outputs to zero?

I think the main board should stay the way it is for use as a kit, in my opinion youre trying to overcomplicate it here. Better to leave more freedom with the separate comm board which is perfect for adding modifications. For example it would be much easier to prepare different options for this separate board, from simple isolated RS232 to complex ones including a separate micro for isolated USB and sockets ready to plug arduino ethernet board. This way everyone can choose, but as for the kit it's enough to include just the basic one, the rest should be simple enough for etching at home.

Anyway if someone wants special features he can modify everything himself.

Anyway if someone wants special features he can modify everything himself.

I totally agree that is one sensible approach, but the point I was making is if the Ethernet Shield plugin pins are standard, it opens the supply up to being a real community software development project. Dave is already adding the ICSP pins to the board, which the Ethernet Shield uses.

If someone does a one off mod, you will not get community development happening, and it would be a pity to see forking of the project.

This is a device that has digital programming of output voltage and current, plus independant digital monitoring of output voltage and current plus Daves microCurrent circuit for measuring currents down into the microamps accurately.

Add a strong open source project developing the Ethernet interface, perhaps a web server, and PC software, the ability to log gigabytes of data to an SD card and it becomes a very powerful device. This would make it something different to any other power supply in the market. At the moment, it is just another power supply.

And I am not suggesting anything complicated - just free up some pins, add the socket for the shield. How is that complicated? The supply will work perfectly without the shield, and as the software improves, add the shield (looks like it is more like $20 delivered now) and you have this amazing device.

Whilst I agree with the shield sentiment, there are some practical limitations restricting this. The current case and heatsink design would not allow the shield to have access to the rear of the case for plugging in the ethernet cable. Sure, you could connect the cable internally and have it run out the back of the box, but that's not very pretty.Plus, there is a twist to this project that I haven't mentioned yet that may answer a lot of people's questions...

Hmm, I just remembered, the case has a taller version. Whilst still not allowing direct access, it does open up possibilities. Let me ponder it...

So, leave the current micro like it is, and just let the ethernet arduino talk to it via serial or i2c?That would let you do what you want and not limit yourself to working with the few free pins that are available.

From what i can make out, there are only 3 things i would like to see.

1. I would like one clear port brought out to an 8 pin header. (for a 4x4 matrix keypad for direct entry.)2. I would like to see a push button to toggle the output on/off.3. I would like to see the three led colors connected to the mcu to allow color selection via software.

A fan controller can be done off-board easily enough. To be honest, given the target client base for this project, i dont believe making a port available to a 8 pin header is a major change. My keypad idea was for my own use. It makes the kit more flexible for end users.

Code is easily adapted for users own setups according to there mods if the mcu is Arduino compatible.

I believe this design change would make this a very attractive kit. Given its ability to be customized via the available port and being able to select he screen back color. The back color can be set to change to indicate different conditions for example.

From what i can make out, there are only 3 things i would like to see.

1. I would like one clear port brought out to an 8 pin header. (for a 4x4 matrix keypad for direct entry.)2. I would like to see a push button to toggle the output on/off.3. I would like to see the three led colors connected to the mcu to allow color selection via software.

yep, totally agree, the whole point of us having access to the i2c and serial interfaces is so that we can tack on what ever we like to the thing and treat it like a platform design,

yes each person will hold small changes they want to implement, such as myself, but atleast i am approaching it objectivly by working out what is the smallest amount of change on the original side i can get away with to accomplish what i want,

as for the keypad, yes it could be run through a resistance matrix, being how 3 of the keypad buttons are already on an adc pin, but really all that would need to be done is software modification for it providing one can enable 1 adc port without conflict, giving 2 more adc pins and a gpio if its needed for modders, (who knows maybe put some thermocouples there and drive a fan with the last io)

I hear a lot of great ideas for functionality, but I think they exceed the scope of this project. I'm going to buy one of the kits however Dave develops it. Then with that experience I'm going to design my own with a much greater feature set based on Dave's analog design and control methods.

I also get one kit. Perhaps Dave can make a poll of who is wants to buy a kit. Then he knows in advance how many parts to order (and how many nights he has to worry ). Oh, I can make one. Just hang on for a few minutes....

We will need more PIN's, there is a need for a bigger micro, this means no arduino compatibility(maybe mega).

The Mega has an Arduino board (and therefore libraries), so you don't need to throw that compatibility out the window.

In any case, "more pins" can be obtained by connecting up your custom I2C devices to the existing I2C bus (I see currently used for the LCD device). Since I2C supports 119 individual device addresses (1 to 119), there is plenty of scope for adding in port expanders or similar.

I agree with this, which is why I personally prefer something simple, including a processor I can physically plug and unplug if necessary. The more complexity, like Ethernet, Bluetooth, USB that gets added, the more it gets out of the range of hobbyists to understand and alter.

A fan controller can be done off-board easily enough. To be honest, given the target client base for this project, i dont believe making a port available to a 8 pin header is a major change. My keypad idea was for my own use. It makes the kit more flexible for end users.

Code is easily adapted for users own setups according to there mods if the mcu is Arduino compatible.

I believe this design change would make this a very attractive kit. Given its ability to be customized via the available port and being able to select he screen back color. The back color can be set to change to indicate different conditions for example.

This is just an idea.

Regards

If you choose to measure the temperature and control a fan from the microcontroller it opens up for a number of options.Among other options it will be possible to increase the fan speed on increasing current instead of waiting for the heat to spread from the wafer to the outside of the case. All the required variables for this and more are already in the “house” its just a few more lines of code.

A limiting factor with the maximum voltage from Dave's supply is the power rating of the LT3080 IC.

If you want to be able to use it up to 40 degC ambient and you want to keep the junction temperature below a safe 90 degC, then even with an ideal heatsink, the maximum power that can be dissipated in the LT3080 is (90-40) / 3 deg/W = 17 watts.

If the power supply us designed with a maximum current of 1.0 A, that means a maximum output voltage of under 16V. With a real world heatsink, 10V output may be as good as can be done with a 1A output. The chip will thermally protect itself, but you really do not need a power supply that goes into thermal current limiting. If the output current was lowered to 500mA, then the output voltage could be increased.

If you have a switchable source voltage to the LT3080 (like many high end power supplies use) so that the voltage drop across the LT3080 is always less then 10V, then you could potentially go to over 30V out at a 1A current supply rating. This method usually requires custom power transformers, or a switching pre-regulator, plus a fair bit of design work.

You can parallel LT3080's but you have to add some series resistance that degrades regulation a little.

For those who wanted an Arduino header footprint on the board, I've looking into this.But there is of course a catch, to make it fully compatible, you have to have ALL the pins free on chip because you don't know what Shield may be used and what lines it will use. And if the micro in the PSU is using the lines, then they aren't available for use by the shield.So the only lines you can get away with using on the micro are the I2C lines to drive all the circuitry using port expander chips, and that's getting crazy.You could design it to make it compatible with a few key shields, but really, it's getting messy and lacks usefulness. Might as well just do a custom interface board like my original idea.

Not to mention there really isn't much room on the board for it all anyway (header + port expander chips)

Hi Dave, about the DAC you are using, there is a variant from the same series, the MCP4822, it has internal reference of 2.048 V, just like the one you are using, and i think its good to have less components. You can even choose to put gain to use 4.096 V

For example, the Arduino Mini comes in a very small package, including crystal. Or you might choose the Pro Mini.

For me, the "Arduino compatibility" is simply using an Atmega168/328 or similar chip, and preferably being able to program it "in situ" which means you don't turn off the functionality of the reset pin. Although even with that dedicated to driving an LED, you can probably program it with careful timing (ie. using power-on reset).

If you are reworking the processor part, I would free up the reset pin for resetting, and do something along the lines of my earlier suggestion for interfacing with the switches. You can probably save yourself some pain by choosing I2C compatible chips (like the DAC and ADC) rather than mixing SPI and I2C. After all, I2C can address 119 chips. That frees up more pins again.

Indeed, for polling the front panel switches, a simple I2C port-expander could handle that, allowing something like 8 switches and 8 LEDs, all off one I2C part. (And port-expanders can generate interrupts, so you don't even have to poll them).

For example, the Arduino Mini comes in a very small package, including crystal. Or you might choose the Pro Mini.

For me, the "Arduino compatibility" is simply using an Atmega168/328 or similar chip, and preferably being able to program it "in situ" which means you don't turn off the functionality of the reset pin. Although even with that dedicated to driving an LED, you can probably program it with careful timing (ie. using power-on reset).

If you are reworking the processor part, I would free up the reset pin for resetting, and do something along the lines of my earlier suggestion for interfacing with the switches. You can probably save yourself some pain by choosing I2C compatible chips (like the DAC and ADC) rather than mixing SPI and I2C. After all, I2C can address 119 chips. That frees up more pins again.

Indeed, for polling the front panel switches, a simple I2C port-expander could handle that, allowing something like 8 switches and 8 LEDs, all off one I2C part. (And port-expanders can generate interrupts, so you don't even have to poll them).

That's what I have done. I had to fix that reset pin and free up the crystal pins.

Jorge, that MCP4822 dual DAC and built in ref is a nice chip for sure, but look closer at the spec sheet for the "precision" voltage reference. It's 2.048 V, but +/- 40mV - that's +/- 2%. Hmm... "precision"?? It may well be better than that, but you can't know it.

Look at Dave's design philosophy. So far he has yet to introduce ANY hardware fine tuning in the form of variable trimmers, and so far has stated his abhorrence of software "tweaks" (we'll see how long that lasts!!) to calibrate the unit. Instead, he has adopted the approach of precision parts throughout (where it's critical), and is looking to produce an unadjusted close tolerance performance from the get-go.

Because it's a non-commercial project, and more about learning than making big bucks, Dave is quite OK to do that, just because he wants to. Were this a purely commercial design, the MCP4822 would have saved us the cost/space of a separate Vref chip, and the finished product would probably be calibrated as a quick operation on the production line with a pot or software tweak.

Having said that - a non-exhaustive check suggests that the MCP4822 is MORE expensive that the design's MC4922 AND Vref chip...

As ever in electronics, there are several ways to skin the cat!

Lots of great input on these blogs on how to tweak the project, and clearly there is no please-all-the-people-all-the-time combination of features, but this comes close.

WHAT I WANT is a loud Piezo sounder BLEEP that wakes the BLEEP dog up next BLEEP door, every time i change the BLEEP BLEEP voltage from 5.1 BLEEP to 5.0 volts... and where are the flashing lights, Dave? One little LED just doesn't cut it...

Dave, I have another question about protecting the LT3080, which you may have shown now is not necessary, but I was interested to understand it.

Rather than trying to introduce various fat diodes to shunt away any voltage applied back into the output from a charging battery or something similar, could you not introduce a forward-biased diode into the output of the LT3080, before the VSense signal? That way, the diode drop is inside the feedback loop. Would the feedback loop performance suffer? Yes, it loses us 3/4 volt, but that would not bother me...

It might even do away with the need for the reverse bias protection diode across the output?

(Learning the hard way - a while back I sent a 7812 to Silicon Heaven in a fairly loud and spectacular way, by forcing -20V into the output stage, from a HUGE charged capacitor bank. Kids - don't try this at home ).

ONE more question, if I may. The LT3080 spec sheet mentions doubling up devices (more device sales!) for double the output current, OR using a series pass transistor. What are the pros and cons of each approach?

There are some people who have suggested that I add Arduino Shield headers connectors to the board.That would be pointless without freeing up most of the pins.

Yes, I can't see the point to that. The boards-with-shields are basically a development/experimental environment. And many shields assume that (at least) some of the pins are there for them.

My personal view is that, if you make the I2C pins easily accessible (eg. SDA, SCL, VCC, GND) then anyone that wants to can connect up a device of some sort (eg. display, comms, switches, temperature sensor) and then modify the code on the main chip to address such device(s).

You might want to take a closer look at your I2C pull-ups (currently 10K). Screenshots here:

I believe that plain C is much better/beautiful/portable/cleaner/understandable (at least for engineers) than Arduino's "C" version. As far the easy printing you could always play with stdio's FILE stream and use printf.

Dave, I have another question about protecting the LT3080, which you may have shown now is not necessary, but I was interested to understand it.

Rather than trying to introduce various fat diodes to shunt away any voltage applied back into the output from a charging battery or something similar, could you not introduce a forward-biased diode into the output of the LT3080, before the VSense signal? That way, the diode drop is inside the feedback loop. Would the feedback loop performance suffer? Yes, it loses us 3/4 volt, but that would not bother me...

It may be a problem, the only way would be to try it, and I don't really wish to spend even more time doing that and refining this and that, I want to get something out the door before hell freezes over

Dave, I have another question about protecting the LT3080, which you may have shown now is not necessary, but I was interested to understand it.

Rather than trying to introduce various fat diodes to shunt away any voltage applied back into the output from a charging battery or something similar, could you not introduce a forward-biased diode into the output of the LT3080, before the VSense signal? That way, the diode drop is inside the feedback loop. Would the feedback loop performance suffer? Yes, it loses us 3/4 volt, but that would not bother me...

It may be a problem, the only way would be to try it, and I don't really wish to spend even more time doing that and refining this and that, I want to get something out the door before hell freezes over

I believe that plain C is much better/beautiful/portable/cleaner/understandable (at least for engineers) than Arduino's "C" version. As far the easy printing you could always play with stdio's FILE stream and use printf.

Alexander.

It depends on what you know better. For me the arduino C is easier to understand and i fly over it and know what it does. C is stiil something like "what the h*** is thes,....and this,...and..."(still learning)

Novice question: Is there any reason this couldn't be done with through hole?I know Dave wanted this to be done with SMD, but if I wanted to do this with through-hole/protoboard, would there be any special considerations?

That's back to front, I wanted it all through-hole from day 1.Can still do it all through-hole, but some parts were just much cheaper and more available in SMD, only 3 of them.

Homer DOH! Scratch my earlier question about a protection diode in series with the output - of course, there is no (linear) voltage feedback from the final output. So anything between pin 3 of the LT3080 and the load is only going to degrade the performance of the power supply.

There might be some voltage feedback in the software - but only one person knows that at the moment!

OHOH- so here is another question - Since the LT3080 is operating as a voltage follower, what would the circuit do if you had tied the high end of R16 to the OUTPUT, rather then Vset?

(Dave, I know that you have to freeze the design and cut some PCBs at some point, and no doubt that there will be versions 2, 3 and 4 of this project in the months to come!)

If you had a mosfet on the output to switch the output on/off (quite a handy feature) would you still even have to worry about voltage feedback from the output? If the PSU is powered down and the mosfet gate is tied to ground, no current should flow back into the voltage regulator?

Nick, I disagree. 5K (R31//R33) of a total of 25K (R30+R32+R31//R33) is one fifth...

And anyway, the DAC inputs will be diode clamped to supply and ground (see Microchip spec sheet, page 18). Anything much less than a lightning strike coming via 20K of R30+R32 isn't going to bother the DAC, I would suggest (though i am NOT about to try that!)

If you had a mosfet on the output to switch the output on/off (quite a handy feature) would you still even have to worry about voltage feedback from the output? If the PSU is powered down and the mosfet gate is tied to ground, no current should flow back into the voltage regulator?

MOSFETs are not ideal for this. Power MOSFETs have a body diode so that under reverse bias they conduct regardless of the gate voltage. A mechanical relay is still the best way to switch something actually off, although an SSR is pretty good as long as you want normally open contacts.

It isn't really a big deal though. The protection diode is only needed if the input can be shorted. If the total design does not have that as a failure mode you don't have to worry about it. If you do decide to care it should be no problem for a builder to wire a 5 amp discrete diode across the entire supply. Keep in mind that this might still damage the "load" that is supplying the fault current.

I wonder if anybody noticed current regulation limitation of current design?I will refer to Dave's schematics posted someplace (pdf file)Suppose we have 10V at the output and current limit is set to 0.1A. Loading power supply with 1 Ohm will activate current limit circuit U7 - U3B - Q2. Q2 will effectively short SET pin of LT3080 to ground via 100 Ohm resistor R12 (actually it is C-E of Q2 and R12 in parallel). At the same time output of opamp U3A will stay at 10V. These 10V will source ~9mA through R11 + (R12 || Q2). This current will develop voltage drop across R12 of approximately 0.4V-0.5 V meaning that output of LT3080 will not go to zero. Out load of 1 Ohm at 0.4V output is 0.4A, not 0.1A we want. Current regulation is limited to a certain degree. The problem is worse at high output voltages and lower end of current limit and virtually doesn't exists at low voltage/higher current settings. Not a big issue, but something to be aware of.

It is purely theoretical and I can't be 100% sure it behaves as described. At least on a LTSpice model it is.That is not to say that design is bad. Actually it is Dave's blog #221 that brought my attention to LT3080 and I think it is a brilliant device. I never seen such fast reaction to load transients without going into oscillation. And addition of pass-through PNP transistor(s) could really bring this stuff to the limit (like "standard" 30V/5A). On a model at least it really shines.

Thank you for an excellent project. Regarding freeing up some microcontroller pins, you could consider the following:

1) Share ADC-CLK with DAC-CK and share DAC-D with ADC-DIN. This saves two IO pins and retains functionality through the relevant chip-select control of the DAC and ADC chips.2) A further IO pin may be saved by Charlieplexing the keys, allowing up to six keys using just three IO lines. See http://pcbheaven.com/wikipages/Charlieplexing/3) Instead of 2) above, use one IO (ADC input) line for all keys such as: Interface multiple keys with one wire. This has a disadvantage in that only one key may be pressed at a time, but it could free up two more IO pins.

If you had a mosfet on the output to switch the output on/off (quite a handy feature) would you still even have to worry about voltage feedback from the output? If the PSU is powered down and the mosfet gate is tied to ground, no current should flow back into the voltage regulator?

MOSFETs are not ideal for this. Power MOSFETs have a body diode so that under reverse bias they conduct regardless of the gate voltage. A mechanical relay is still the best way to switch something actually off, although an SSR is pretty good as long as you want normally open contacts.

Agreed, but it will also depend upon what's 'upstream' of the MOSFET. Peronally, I don't depend upon the body diode to provide any sort of real-world protection; I know you were referring to its intrinsic property, so I'm not trying to nail you on this!

Then again, as long as there's an 'upstream' protection, i.e. a rectifier of some type, and the filter cap is protected/rated appropriately, there's nothing to worry about. The output should appear as an open, in 'default' or OFF condition. But again, we're back to your scenario of using a relay or SCR to switch the output connection.

Quote

It isn't really a big deal though. The protection diode is only needed if the input can be shorted. If the total design does not have that as a failure mode you don't have to worry about it. If you do decide to care it should be no problem for a builder to wire a 5 amp discrete diode across the entire supply. Keep in mind that this might still damage the "load" that is supplying the fault current.

AFAIK all Arduino compatible Ethernet variants use the Wiznet W5100 chip which is fine pitch SMD.Hardly suitable for a DIY kit.

Dave.

The microchip ENC28J60 is available in a 28pin DIP package. I'm sure there's an arduino library for it somewhere.

Look up EtherCard. There's an ENC28J60 in my Arduino-based power meter and it works nicely. It even has a clock output that can be used to clock microcontrollers. (In my design, it clocks the dsPIC that's doing the hard calculations.)

For a way to protect the low range current shunt, you could put in a diode to restrict the drop to 0.6V, or you can just turn the MOSFET around for a zero cost equivalent.

Logged

Cryptocurrency has taught me to love math and at the same time be baffled by it.

Another point about the suggested volts/amps range of Dave's original design (which has certainly got us all talking!).

I think the original design, while admittedly stretchable, was going to top out at 10-12V and at 1A... the argument being that nobody needed more than that.

Then right along comes this Rubidium frequency gizmo - what does that need? 15-18V at a couple of amps (Start up), AND 5V.

Ah...

This has been a fantastic tutorial, it really has. I may yet build one up "as-is", as a further part of the learning curve. But I remain convinced that I am going to need to push the specs a little further than the current design.

Another GOTCHA to watch out for, for those pushing the voltage up a bit... the LT3080 has some sort of "safe area" operating current, and will NOT allow you to get 5V regulated at 1A, while at the same time running a primary side high enough to give you 25V, output, say. Check out the "Current Limit" diagram in the centre of page six of the spec sheet. To get both high (1A) current AND high (25V) voltages ranges, it is going to be necessary to switch the primary voltage up and down, to minimise the voltage (and so power) drop across the LT3080. That could be done under software control, but that isn't really necessary. A voltage comparator and a relay to switch winding taps from the transformer will do it.

My guess is something to do with battery charging. Various battery charging algorithms for lithium ion or NiMH need accurate control of current and voltage and accurate measurement of current and voltage to decide when charging should finish. You don't need more than about 5 V to charge a single li-ion or li-poly cell (or parallel bank), and 12 V DC input caters for charging in the field when a car is nearby. Linking the whole thing to a micro permits accurate programming of the charge algorithms, and none of the commercial RC hobby style chargers are open enough to permit complete flexibility of the program.

So I'm thinking it might be something related to the quad-copter and battery power.

Another point about the suggested volts/amps range of Dave's original design (which has certainly got us all talking!).

I think the original design, while admittedly stretchable, was going to top out at 10-12V and at 1A... the argument being that nobody needed more than that.

No, that is not the argument.This is not meant to be the be-all end-all lab bench power supply, not even close.This is a niche power supply, with the design limitation there for reasons that will become obvious in future videos.Whether or not anyone agrees they are good or reasonable limitations, I don't really care, this is what I wanted to do, I'm doing this for me.If you don't like the limitations, feel free to go modify it or design your own.There may be future builds with greater capability, but not this time around.No, it's not designed to be a battery charger. What's the point in that when you can buy intelligent multi-chemisty multi-cell high current balanced battery chargers for $20-$30?

I could tell you now, but that would ruin the "Ta-Da, here it is" bit...It's not really that hard to guess anyway...

No, it's not designed to be a battery charger. What's the point in that when you can buy intelligent multi-chemisty multi-cell high current balanced battery chargers for $20-$30?

Fair enough, but you are making this a but of puzzle. You can't complain if people keep guessing

The cheap battery chargers from China are closed program and limited in their range of adjustments, though of course adequate for the purpose intended. Higher quality and more flexible chargers easily exceed $150 putting them in a different price bracket.

I know this is old but I would love to make a Power supply similar to yours with some differences but I cant find a lt3080 for sale on my favorite sites (jameco sparkfun mouser) where can I find one or two for sale. I would also be happy with a different regulator that has the same specs.