Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Equipment & Tools From test equipment to hand tools

DIY programmable dual channel bench PSU 0-50V/3A
DIY programmable dual channel bench PSU 0-50V/3A
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 6th February 2015, 05:08 PM   #21
rikkitikkitavi is offline rikkitikkitavi
diyAudio Member
 
Join Date: Dec 2001
Location: South Sweden
Thank you for sharing.

I have one question, what happens at the ouput terminals at switch on / off the supply?
Fex when using only manual control.
__________________
listen! Can you hear that ...
  Reply With Quote
Old 7th February 2015, 06:49 AM   #22
prasimix is offline prasimix  Croatia
diyAudio Member
 
prasimix's Avatar
 
Join Date: Feb 2009
Quote:
Originally Posted by rikkitikkitavi View Post
Thank you for sharing.

I have one question, what happens at the ouput terminals at switch on / off the supply?
Fex when using only manual control.
Don't know what fex means but if you asking about possible overshooting it is not present. In current design I added timer with relay to add power up delay and also power down cut off (Q4 gate is grounded). All this is tested with separate linear bias power supply (LM317/337) when on power down bias supply went out too early that Q4 control is lost what caused that remaining voltage from input capacitors (C12, C13) is present on the output (similar problem was with power up). With a new bias power supply which include SMPS pre-regulator IC3, and LDO'2 IC2 and IC4 and using Powergood signal to enable/start the main pre-regulator (IC1) possibly a timer+relay circuit will be redundant.
  Reply With Quote
Old 8th February 2015, 04:56 AM   #23
rikkitikkitavi is offline rikkitikkitavi
diyAudio Member
 
Join Date: Dec 2001
Location: South Sweden
Fex is swenglish (swedish + englsh) for example
Thanks for your clarification .
__________________
listen! Can you hear that ...
  Reply With Quote
Old 8th February 2015, 06:41 AM   #24
prasimix is offline prasimix  Croatia
diyAudio Member
 
prasimix's Avatar
 
Join Date: Feb 2009
Quote:
Originally Posted by rikkitikkitavi View Post
Fex is swenglish (swedish + englsh) for example
Good to know
  Reply With Quote
Old 11th February 2015, 12:21 PM   #25
prasimix is offline prasimix  Croatia
diyAudio Member
 
prasimix's Avatar
 
Join Date: Feb 2009
Default MCU board assembled ...

I know that this is not a correct order of presenting what is already done under PSU project but I didn't have a chance to make a lot of progress on power board (I got yesterday required inductor for bias ps) so I decide to test how MCU board is working.
The following pictures shows MCU board with minimum components required to make connection to ISP programmer (I'm using Arduino for that) and run simple test melody on buzzer. I reused the following code:

Code:
/*
 Melody
 
 Plays a melody 
 
 created 21 Jan 2010
 modified 30 Aug 2011
 by Tom Igoe 

This example code is in the public domain.
 
 http://arduino.cc/en/Tutorial/Tone
 
*/

#include "pitches.h"

// notes in the melody:
int melody[] = {
  NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 };

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second 
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(A1, melody[thisNote],noteDuration); // Arduino pin A1 is PF6 (Pin 37) assigned to BUZZER

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // stop the tone playing:
    noTone(A1);
  }
}

void loop() {
  // no need to repeat the melody.
}
... and required header file:

Code:
/*************************************************
 * Public Constants
 *************************************************/

#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978
Attached Images
File Type: jpg MCU_board min. populated.JPG (672.5 KB, 383 views)
  Reply With Quote
Old 11th February 2015, 12:24 PM   #26
prasimix is offline prasimix  Croatia
diyAudio Member
 
prasimix's Avatar
 
Join Date: Feb 2009
Default LCD display on the MCU board ...

... and some pictures where a fully assembled board with connected LCD 128x64 and test message (using u8glib) is showed. Here is the code:

Code:
#include "U8glib.h" // Universal 8bit Graphics Library, http://code.google.com/p/u8glib/

// Define LCD type
// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device
U8GLIB_ST7920_128X64_1X u8g(A0); // Arduino Pin A0 is PF7 (pin 36) assigned to LCD_SELECT 

void draw(void) {
  // graphic commands to redraw the complete screen should be placed here  
  //u8g.setFont(u8g_font_unifont);
  u8g.setFont(u8g_font_tpss);
  //u8g.setFont(u8g_font_osb21);
  //u8g.setFont(u8g_font_04b_03b);
  u8g.drawStr( 0, 10, "Welcome screen");
  u8g.drawStr( 0, 22, "PSU dual 0-50V/0-3A");
  u8g.setFont(u8g_font_04b_03b);
  u8g.drawStr( 0, 30, "- SMPS pre-regulator");
  u8g.drawStr( 0, 36, "- Linear post-regulator");
  u8g.drawStr( 0, 42, "- CC/CV, OCP");
  u8g.drawStr( 0, 48, "- 16-bit DAC, 15-bit ADC");  
  u8g.drawStr( 0, 54, "- Isolated USB and Ethernet");
  u8g.drawStr( 0, 60, "- Arduino sketches");
}

void setup(void) {
  // Set LCD brightness
  pinMode(11, OUTPUT); // Arduino Pin 11 is PB7 (pin 12) assigned to LCD_BRIGHTNESS
  analogWrite(11, 200); // (value from 0 to 255, 0=dark)

  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
  
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
}

void loop(void) {

  // Nothing to do
 
}
Attached Images
File Type: jpg MCU_board assembled with descriptions.jpg (804.7 KB, 376 views)
File Type: jpg MCU_board connected to 128x64 LCD.JPG (416.5 KB, 346 views)
File Type: jpg MCU board LCD test message.JPG (411.6 KB, 356 views)
  Reply With Quote
Old 12th February 2015, 07:45 AM   #27
prasimix is offline prasimix  Croatia
diyAudio Member
 
prasimix's Avatar
 
Join Date: Feb 2009
Default Aux power supply

Aux power supply PCB is assembled and tested. LM5574 works nicely and I choose it because it is also used for bias power supply on power board when input voltage could go up to 67V. The board is intended to provide separated +5V for MCU board and Binding posts board. Max. consumption is ~400mA (mostly consumed by binding posts LEDs and relays when all are active) which LM5574 is delivering without problem.

Here are some pictures of assembled board and basic measurements.
  Reply With Quote
Old 14th February 2015, 04:59 AM   #28
geopoothottam is offline geopoothottam  India
diyAudio Member
 
Join Date: Sep 2009
your project is superb. i am a hobbyist from India. I think it is a big project for an average hobbyist like me . Please post a version with manual controls only.
  Reply With Quote
Old 14th February 2015, 06:47 AM   #29
prasimix is offline prasimix  Croatia
diyAudio Member
 
prasimix's Avatar
 
Join Date: Feb 2009
Quote:
Originally Posted by geopoothottam View Post
your project is superb. i am a hobbyist from India. I think it is a big project for an average hobbyist like me . Please post a version with manual controls only.
For manual controls version you need circuits presents on sheets 1 to 3 and simply ignore the rest. For that you need only PCB presented in #17 (partially populated since it contains also Sheet 4 circuits). Also I think that further simplification is possible on the first three sheets i.e. I'll possibly replace current buck-boost pre-regulator built around LM5118 with buck using LM5088. Also bias power supply with LT3030 and TPS7A3001 could be done with simpler and cheaper components. It's still a work in progress and I'll present such derivatives in this or new thread.

Just one remark regarding LM5118: on the first sight it looks like an overkill but it opens a whole new possibility to use car battery (12V) or even solar panel on input instead of main transformer and then it starts to make much more sense. Of course boost mode is more noisy and require bigger components because currents could be a few times higher if we'd like to deliver a full monty (up to 50V, and 3A). But if working in boost mode is limited to i.e. 50W (instead of 150W) then I think it should be achievable without bigger modifications.
I don't know if possibility to source a PSU from car battery or solar panel make a lots of sense because with that we are leaving bench and become portable so I hope that I'll also get some feedback from forum members over the time what route is more desirable: "buck-boost" or "buck" only.
  Reply With Quote
Old 14th February 2015, 01:12 PM   #30
prasimix is offline prasimix  Croatia
diyAudio Member
 
prasimix's Avatar
 
Join Date: Feb 2009
Default Power pre-regulator inital testing

Power pre-regulator is located on the power PCB (post #17) and initially presented on the Sheet 1 (post #2). I'd like to share some information about initial testing of this part of the system.

First I'd like to starts with some mistakes. Input filter capacitors are located optimistically too close to the rectifier diodes D2 and D3. Since that diodes has to be mounted with screw to the main heatsink there is not many spaces for maneuvering with a screwdriver. It's so difficult to mount mentioned diodes but they could be more accessible.
Another mistake that cost me one LM5118 is that I forgot to add a small resistor in serial with P1. In normal operation a whole section P1, R1 and R2 is not necessary since PREG_FB signal (Sheet 2) will be used for controlling PREG_OUT. I added this section deliberately because in that way you can assemble and test power pre-regulator section without tracking control and the rest of the post-regulator (Sheet 2). So what's happened? P1 was initially set for Vout below 10V and I started to turn P1 too fast (approaching ground) and since LM5118 is buck-boost controller it has no problem to increase Vout to 100V! I heard click and the next action was removing LM5118 with rose's metal from the PCB and mounting another one .

In attachment you can see pre-regulator section of the power PCB. Power inductor (TR1) is Wishay IHTH1125MZEB101M5A. Selected heatsink is RAD-A52317/50 (painted in black). I'll play in the future with other inductors and try heatsink Fischer SK85/50/SA.

Currently I've measured the following temperatures on some key components under max. load when LM5118 enters buck-boost mode (@Iout=3A, Vin=48VAC, Load=16R4, Tabient=23oC):
  • Rsense (R12): 72oC
  • TR1: 53oC
  • L1: 51oC
  • Cout (3x180uF): 51oC
  • Cin (1x2200uf): 44oC
  • Heatsink: 56oC
When pre-regulator is in buck mode temp. figures are much better (@Iout=3A, buck mode, Vin=48VAC, Load=4x35W||4x35W lamp, Tabient=23oC):
  • Rsense (R12): 46oC
  • TR1: 32oC
  • L1: 51oC
  • Cout (3x180uF): 31oC
  • Cin (1x2200uf): 30oC
  • Heatsink: 34oC
  Reply With Quote

Reply


DIY programmable dual channel bench PSU 0-50V/3AHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
DIY Dual Channel Active Tube Tone Control HideawayStudio Tubes / Valves 1 1st November 2010 01:05 PM
Good DIY Bench PSU for Solid State Gavinator68 Solid State 18 25th August 2008 05:33 PM
Programmable Bench Power Supply? samsagaz Parts 1 22nd January 2008 02:21 AM
Bench PSU sorenj07 Tubes / Valves 5 19th February 2007 10:53 PM
ESP project 3A amp at +/-50V Freddie Solid State 6 6th January 2002 02:54 AM


New To Site? Need Help?

All times are GMT. The time now is 08:54 AM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 14.29%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Copyright ©1999-2018 diyAudio
Wiki